2.5. Adım: Model Seçme

Bu noktada veri kümemizi bir araya getirdik ve verilerimizin temel özellikleriyle ilgili detaylı bilgi edindik. Ardından, 2. adımda topladığımız metriklere dayalı olarak, hangi sınıflandırma modelini kullanmamız gerektiğini düşünmeliyiz. Bu noktada, "Metin verilerini sayısal giriş olmasını bekleyen bir algoritmada nasıl sunarız?" (buna veri ön işleme ve vektörleme denir), "Ne tür bir modeli kullanmalıyız?", "Modelimiz için hangi yapılandırma parametrelerini kullanmalıyız?" gibi sorular sormanız gerekir.

Onlarca yıl süren araştırmalar sayesinde, çok sayıda veri ön işleme ve model yapılandırma seçeneğine erişebiliyoruz. Ancak, arasından seçim yapabileceğiniz çok büyük bir uygulanabilir seçenek dizisinin kullanılabilirliği, söz konusu sorunun karmaşıklığını ve kapsamını önemli ölçüde artırır. En iyi seçeneklerin belirgin olmayabileceği düşünülürse, sezgili bir çözüm sunmak, sezgi yoluyla bazı seçenekleri ortadan kaldırmak ve mümkün olan tüm seçenekleri ayrıntılı şekilde denemektir. Ancak bu durum çok pahalıya mal olabilir.

Bu kılavuzda, bir metin sınıflandırma modeli seçme işlemini önemli ölçüde basitleştirmeye çalışıyoruz. Belirli bir veri kümesi için amacımız, en yüksek doğruluk oranına ulaşan algoritmayı bulmak ve aynı zamanda eğitim için gereken işlem süresini en aza indirmektir. 12 veri kümesi kullanarak, farklı veri işleme süreçleri ile farklı model mimarileri arasında geçiş yaparak her bir veri kümesi için farklı türlerde (özellikle yaklaşım analizi ve konu sınıflandırma sorunlarında) çok sayıda (yaklaşık 450.000) deneme çalıştırdık. Bu, en uygun seçimleri etkileyen veri kümesi parametrelerini belirlememize yardımcı oldu.

Aşağıdaki model seçim algoritması ve akış şeması, denememizin bir özetidir. Bu terimlerde kullanılan tüm terimleri henüz anlamadıysanız endişelenmeyin. Bu kılavuzun aşağıdaki bölümlerinde bu konular ayrıntılı olarak açıklanmaktadır.

Veri Hazırlama ve Model Oluşturma Algoritması

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

Aşağıdaki akış şemasında sarı kutular, veri ve model hazırlama işlemlerini gösterir. Gri kutular ve yeşil kutular, her bir işlem için dikkate aldığımız seçenekleri belirtir. Yeşil kutular, her işlem için önerdiğimiz seçimi belirtir.

Bu akış grafiğini, düşük hesaplama maliyetlerinde iyi bir doğruluk sağlayacağından ilk denemenizi oluşturmak için bir başlangıç noktası olarak kullanabilirsiniz. Daha sonra, sonraki tekrarlara göre ilk modelinizde iyileştirmeler yapmaya devam edebilirsiniz.

Metin sınıflandırma akış şeması

Şekil 5: Metin sınıflandırma akış şeması

Bu akış şeması iki temel soruyu yanıtlar:

  1. Hangi öğrenme algoritmasını veya modelini kullanmalıyız?

  2. Metin ve etiket arasındaki ilişkiyi etkili bir şekilde öğrenmek için verileri nasıl hazırlamamız gerekir?

İkinci sorunun yanıtı, ilk sorunun yanıtına göre değişir. Bir modele beslenecek verileri önceden işleme yöntemimiz, hangi modeli seçtiğimize bağlı olarak farklılık gösterir. Modeller genel olarak iki kategoriye ayrılabilir: kelime sıralama bilgilerini kullanan diziler (dizi modelleri) ve metni yalnızca "paket" (küme) olarak gören modeller (ngram modelleri). Dizi modelleri, evrişimli nöral ağları (CNN'ler), tekrarlayan nöral ağları (RNN'ler) ve bunların varyasyonlarını içerir. N gram modellerinin türleri arasında lojistik regresyon, basit çok katmanlı algı (MLP veya tamamen bağlı nöral ağlar), gradyan takviyeli ağaçlar ve vektör makineleri bulunur.

Denemelerimizde, "örnek sayısı" (S) ile "örnek başına kelime sayısı" (K) oranının, modelin iyi performans gösterdiğiyle ilişkili olduğunu gözlemledik.

Bu oranın değeri küçük (<1500) olduğunda, n-gramı giriş olarak alan (A Seçeneği olarak adlandırılır) çok katmanlı küçük diziler, dizi modellerinin yanı sıra daha iyi veya en az performans gösterir. MLP'ler kolayca tanımlanır ve anlaşılır. Dizi modellerine kıyasla çok daha az işlem süresi sunar. Bu oranın değeri büyükse (>= 1500), bir dizi modeli kullanın (B Seçeneği). Sonraki adımlarda, örneklere/örnek başına kelime oranına göre seçtiğiniz model türü için ilgili alt bölümlere (A veya B olarak etiketlenmiştir) atlayabilirsiniz.

IMDb inceleme veri kümesimizde, örnek/örnek başına kelime oranı yaklaşık 144'tür. Bu, bir MLP modeli oluşturacağımız anlamına gelir.