Language Model

--

Merhaba arkadaşlar , bugün ki yazım son yazımda olduğu gibi yine NLP üzerine olacak. Bugün sizlere dil modellemesinden bahsedeceğim. Nerede kullanılır, nasıl olur gibi benzeri sorulara cevap bulmaya çalışacağız. Bu yazıdaki amacım Dil Modellemesine bir bakış sağlamaktır…

Dil modellemesinin amacı , çeşitli dil birimlerinin örneğin sözcüklerin, cümlelerin vb. olasılık dağılımını tahmin etmektir. Şöyle düşünürsek daha akılda kalıcı olur. Telefonda bir mesaj yazdığınızı varsayalım , size bir sonraki kelime için size 3 öneri sunuyor. Burada olasılık olarak en iyi 3 sonucu size sunuyor ve seçme şansı veriyor.

Son yıllarda , dil modellemesi doğal dil işlemede kullanılması , bir çok araştırmacının dikkati çeken ilginç bir alan haline gelmiştir. Dil modellemesi iki farklı yöntem altında incelenmektedir, bugün Count-Based LM ve Continuous-Space LM konularına değineceğim arkadaşlar.

Continuous-Space LM dil modellerinin iyi performans elde edebileceği gösterilmiş olmasına rağmen çok uzun bir eğitim süresi ve bağlam sözcüklerinin sayısı üzerinde ki kısıtlamalarda dahil olmak üzere bazı önemli dezavantajları vardır. Bunları aşağıda detaylı çekilde değineceğim.

Count-Based modeller ise genellikle istatistiksel modeller gibi n.dereceden Markov varsayımı yapmayı ve daha sonra smoothing yoluyla n-gram olasılıklarını tahmin etmeyi içerir.

Son yıllarda , ileri beslemeli sinirsel olasılıksal dil modelleri(Feed Forward) ve tekrarlayan sinir ağ modelleri(Recurrent) gibi continuous-space dil modelleri önerilmiştir. Bu sinirsel dil modelleri , n-gram modelinin veri azlığı problemini , kelimeleri vektör olarak temsil ederek ve bunları Sinirsel dil modellerine girdi olacak şekilde kullanarak çözer. Parametreler eğitim sürecinin bir parçası olarak öğrenilir. Sinirsel dil modelleri yoluyla elde edilen word embeddingler semantik olarak indüklenmiş vektör uzayda benzer şekilde yakın olduğu görülür. Dahada iyisi , Sinirsel dil modelleri cümle düzeyinde , korpus düzeyinde hatta alt kelime düzeyinde bağlamsal bilgileride yakalayabilir.

1.Count-Based Language Models

Bir dil modelini tanımlamak için istatistiksel bir formulasyon kullanmak , bir kelime dizisinin ortak olasılık dağılımını oluşturmaktır. Örnek olarak , n-gram modelidir.Markov’un varsayımına dayanarak , n-gram dil modeli bu sorunu çözmek için geliştirilmiştir. N-gram modelinde bir kelime dizisi ön görme işlemi ,bir seferde bir kelimeyi tahmin etmeye ayrılmıştır. Dil modeli olasılığı p (w1, w2,…, wn), önceki kelimelerin geçmişine dayanan bir sözcük olasılıkları ürünüdür. Buna aynı zamanda önceki durumların sayısının (burada geçen kelimeler) modelin sırası olduğu bir Markov zinciri de denir.

N-gram LM için temel fikir, w_n, w_(n+1) oluşumlarının sayısını w_n’nin oluşum sayısına bölerek, önceki bağlamıyla w_(n+1) olasılığını tahmin edebileceğimizdir.Eğer sadece w_(n+1) in frekansına dayanacak olursak, bu bir unigram tahmincisi olacaktır. Bir trigram kelime tahmin olasılığının tahmini (çoğu zaman pratik NLP uygulamalarında LMs için kullanılır), bu nedenle maksimum olabilirlik tahmini aşağıdaki gibi hesaplanır.

Bununla birlikte, bir cümlenin ortak dağılımını modellerken, basit bir n-gram modeli, train korpusunda hiç karşılaşılmayan kombinasyonların hepsine sıfır olasılık verir.Büyük olasılıkla , test casedeki out-of-samplelara da sıfır olasılık vericektir.Ancak , train setinde görülmeyen n kelimelerinin yeni kombinasyonlarının ortaya çıkması muhtemeldir, bu nedenle bu gibi durumlara sıfır olasılık atamak tabiki istemeyiz. Bu sorun seyreklik( sparseness)olarak adlandırılır.

Yukarıda bahsettiğim smoothing tekniklerine ve n-gram dil modelinin pratik kullanımına rağmen , boyutlandırma sıkıntısı , burada giriş değişkenlerinin değerlerinin çok sayıda farklı kombinasyonlarının bulunması nedeniyle özellikle güçlüdür ve birbirinden ayırt edilmelidir.

Bu nedenle, derin öğrenme ve Sinir Ağlarını dil modeli problemine uygulama, bu sintaktik ve semantik özellikleri otomatik olarak öğrenme ümidiyle ve NN’lerle daha iyi genellemeler üreterek boyutsallık lanetini aşma fikrine yol açmıştır.

2.Continuous-Space Language Models

Continuous-Space modeli , sinir modeli olarakta bilinir.İki ana sinir dili modeli vardır.Veri sparsity sorunlarının üstesinden gelmek için önerilen ileri-beslemeli sinir ağı tabanlı dil modeli ve sınırlı bağlam sorunu ele almak için teklif edilen tekrarlayan sinir ağı(recurrent) bazlı dil modelidir.Son zamanlarda tekrarlayan sinir ağı temelli yaklaşımlar en gelişmiş performansa ulaşmıştır.Önerilen sinir modelleri , yukarıda bahsedilen n-gram modellerinin iki ana problemini çözmektedir.

2.1 Feed-Forward Neural Network Based Models

Dil modellemesindeki ilk sinirsel yaklaşımdır, bir sonraki kelimenin n-1 kelimelerini üç kat ileri beslemeli bir sinir ağı kullanarak verilen koşullu olasılık dağılımının parametrelerini öğrenen bir nörol olasılıksal dil modelidir.

Nöral olasılıksal dil modelinin ağ mimarisine genel bir bakış
Nöral olasılıksal dil modelinin ağ mimarisine genel bir bakış

Bu modelde, kelime dağarcığındaki her kelime bir distrubuted kelime özellik vektörü ile ilişkilendirilir ve kelime dizisinin ortak olasılık fonksiyonu, bu kelimelerin özellik vektörlerinin bir dizilimdeki fonksiyonu ile ifade edilir. Model, özellik vektörleri kelimesini ve bu olasılık fonksiyonunun parametrelerini aynı anda öğrenebilir. Bu sinir ağı yaklaşımının sparseness problemini çözebileceği ve ayrıca kafa bulanıklığı açısından n-gram modellere kıyasla iyi genelleme yaptığı görülmüştür. Bununla birlikte, bu yaklaşımın önemli bir dezavantajı, çok uzun train ve test süreleridir.

Neural Language Model(NLM)’inin train ve test hızı ile ilgilenen iki model önerilmiştir. Bu makalelerde temel fikir , NN çıktı katmanında her kelime kümesi için yanlızca bir hesaplama yapmak için olasılıklarını hesaplamadan önce benzer sözcükleri kümelemektir. Bu öneri ışığında ileri-beslemeli dil modellerini burada sonlandırıyorum.Sırada Tekrarlayan Sinir ağı modelleri var.

2.2 Recurrent Neural Network Based Models

İleri beslemeli sinir ağı tabanlı LM’nin sabit uzunluklu bağlam kullanılıyor. Ancak, tekrarlayan sinir ağı sınırlı boyutta bağlam kullanmaz. Tekrarlayan sinir ağı tabanlı dil modellemesi daha fazla genelleme yapar. Sadece birkaç önceki kelimeyi düşünmek yerine, tekrarlayan bağlantılardan gelen girdilere sahip nöronlar kısa süreli belleği temsil eder. Özellikle, ağ mimarisine kısaca bakarsak :

  1. Giriş katmanı w ve çıkış katmanı y olacak şekilde , sözcüklerle (10K — 200K) aynı boyutlara sahiptir.
  2. Gizli katman(hidden layer) s , daha küçük büyüklükteki dizilerdir(50–1000 nöron).
  3. U , giriş ile gizli katman arasındaki ağırlık matrisi , V ise gizli ve çıkış tabakası arasındaki ağırlık matrisidir.
  4. Tekrarlayan ağırlıklar W olmadan , bu model bir bigram nöral ağ LM olacaktır.

Çıkış katmanının faktörleştirilmesiyle uygulanan hesaplama karmaşıklığını azaltarak, orijinal RNNLM’yi daha da geliştirmek için bir RNNLM varyantı sunuldu yani bir sonraki sürüm gibi düşünebilirsiniz. Bu çalışmada, sınıfları kullanarak çıktı katmanının basit çarpanlara ayrılması uygulandı. Kelimeler, oransal olarak sınıfa atanır. Modifiye RNN modeli, hem train hem de test sırasında daha küçük ve daha hızlı olabilir, temel modelden daha doğru sonuçlar verebilir.

2.3 Gelişmiş Modeller

NLM’nin şu ana kadar çoğunlukla kelime düzeyinde dil modelleri olduğunu unutmayın. Alt kelime bilgisine kördürler (örneğin, morfemler). Örneğin, ‘eventful’, ‘eventfully’, ‘uneventful’ and ‘uneventfully’ olarak vektör uzayında yapısal olarak ilişkili olması gerektiğini bilmezler. Daha yakın zamanlarda insanlar alt seviye LM alt seviyesine odaklanmaya başladılar ve karakter odaklı bir NLM önerildi. Bu NLM, çıkışı tekrarlayan bir NLM’ye girdi olarak kullanılan karakter düzeyinde bir evrişimsel sinir ağı aracılığıyla karakter seviyesi girişlerine dayanıyor. Deneyler, modelin kelime düzeyinde LSTM taban çizgilerini zengin morfolojili dilde (Arapça, Çekçe, Fransızca, Almanca, İspanyolca, Rusça) daha az parametre ile geride bıraktığını göstermektedir.

Bugünlük yazım bu kadar , bu yazıda Dil modellemesi üzerine konuştuk , hem count-based modellere hem continous-based modellere değindik avantaj dezavantajlara bakmış olduk. Gelişmiş modeller olarakta artık kelime bazlı değil harf bazlı olarak düşünüldüğüne dikkat etmek gerek önemli bir husus. Yazının tamamını ve daha detaylısını okumak isterseniz lütfen referans kısmında ki ilk kaynağı okuyunuz. NLP üzerine yazılarım devam edicek.

SEVGİYLE KALIN

REFERANS

https://www.slideshare.net/naist-mtstudy/paper-introduction-efficient-lattice-rescoring-using-recurrent-neural-network-language-models

--

--