Anasayfa / Genel bir bakış / Language Model

Language Model

Merhaba arkadaşlar, bugünkü yazım 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 3 öneri sunuyor. Burada olasılık olarak en iyi 3 sonucu size sunuyor ve seçme şansı veriyor.

Son yıllarda, dil modellemesinin doğal dil işlemede kullanılması, bir çok araştırmacının araştırmalarında bu noktaya yönelmesine neden olmuştur. Dil modellemesi iki farklı yöntem altında incelenmektedir, bunlar Count-Based LM ve Continuous-Space dil modellemesidir. Bugün bu konulara 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. Bunlara 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 dil modelleri ve tekrarlayan sinir ağ modelleri gibi continuous-space dil modelleri önerilmiştir. Continuous-Space 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.

p(w3|w1,w2)=count(w1,w2,w3)/ ∑w count(w1,w2,w3)

Bununla birlikte, bir cümlenin ortak dağılımını modellerken, basit bir n-gram modeli, eğitim 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, eğitim 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 sözdizimsel ve semantik özellikleri otomatik olarak öğrenme ümidiyle ve Neural Network’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 bunlar veri seyrekliği 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. Continuous-Space 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ış

Bu modelde, kelime dağarcığındaki her kelime bir dağıtık 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 seyreklik(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 eğitim ve test süreleridir.

Neural Language Model(NLM)’inin eğitim ve test hızı ile ilgilenen iki model önerilmiştir. 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ı dil modelinin 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ğ dil modeli olacaktır.

Çıkış katmanının faktörleştirilmesiyle uygulanan hesaplama karmaşıklığını azaltarak, orijinal Recurrent Neural Network Language Modeli(RNNLM) daha da geliştirmek için bir RNNLM varyantı sunuldu yani bir sonraki sürüm gibi düşünebilirsiniz. Kelimeler, oransal olarak sınıfa atanır. Modifiyeli RNN modeli, hem eğitim 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

Neural Language Model(NLM)in ş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 dil modelinin 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ğı(CNN) aracılığıyla karakter seviyesi girişlerine dayanıyor.

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 artık kelime bazlı değil harf bazlı olarak düşünüldüğünü bilmemiz gerekiyor. Yazının tamamını ve daha detaylısını okumak isterseniz lütfen referans kısmındaki ilk kaynağı okuyunuz. NLP üzerine yazılarım devam edicek.

SEVGİYLE KALIN

REFERANS

https://medium.com/syncedreview/language-model-a-survey-of-the-state-of-the-art-technology-64d1a2e5a466

https://towardsdatascience.com/learning-nlp-language-models-with-real-data-cdff04c51c25

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

Hakkında Oğuz Kırçiçek

Doğuş Teknoloji'de NLP Researcher olarak çalışmaktayım.

GÖZ ATMAK İSTEYEBİLİRSİNİZ

Veri Analizi – E-ticaret Uygulaması

Merhaba VBO okuyucuları! Bu yazımda, e-ticaret örnek verisi üzerinden veri analizi uygulaması yapacağız. Bir önceki …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir