İçeriğe geç

Susam Sokağı’ndan Doğal Dil İşlemeye 🌈

Last updated on 2 Mayıs 2020

Sabahın erken saatlerinde hemen her gün televizyonun başına geçip Susam Sokağı’nı izleyerek kendi dilindeki temel bilgileri öğrenen 80’lerin çocukları, bugün bilgisayarlara dil öğretmek için yine Susam Sokağı’na sarıldı. 😊

Bizlerin Büdü olarak tanıdığı, orjinalinde ise BERT olarak tanınan karakter bugün doğal dil işleme alanında kilometre taşı olarak kabul edilen bir modele ismini veriyor. 🎈

2018 yılında derin öğrenmedeki gelişmelerden en çok dikkat çekenlerinden biri de doğal dil işleme için geliştirilen etkin transfer öğrenme metotları oldu. 2018 Ekim ayında Google tarafından tanıtılan BERT (Bidirectional Encoder Representations for Transformers) ise bu anlamda yılın son aylarında damgayı vuran bir model olarak karşımıza çıktı ⭐

Doğal dil işlemedeki zorlukları sıralamamız istense zannediyorum ki hemen herkes bu listenin en başına eğitim verisinin yetersizliğini yazacaktır. İşte bu noktada artık yaklaşımlar yön değiştirerek, küçük dil görevlerine ayrı modeller geliştirmek için efor sarf etmektense daha büyük bir çerçeveden bakılarak dilin modellenmesi yönüne doğru evrildi 🤓

BERT tamda bu motivasyonla, oldukça büyük bir veri ile eğitilen genelleştirilmiş dil modeli sunarak ilgili dildeki tüm dil bilimsel yapıyı bir çerçevede tutmuş, gerekli olduğunda diğer küçük dil işleme görevleri için transfer edilmesine olanak sağlamıştır. Böylece bu küçük dil görevleri için eğitimin minimal düzeye inmesinin yanı sıra, 11 doğal dil işleme görevi için state-of-the-art’ın üstünde başarı sergilemiştir.


📌 NLP’nin ImageNet anı geldi!

Doğal dil işleme alanında 2018 yılında peş peşe tanıtılan ELMo, ULMFIT, OpenAI transform ve son olarak BERT önceden eğitilmiş dil modelleri (pre-trained language models) çok farklı dil görevlerinde state-of-the-art’ın üstüne çıkılmasına yol açarak alanda bir sıçrama yaşanmasını sağladı!

Dahası DeepMind araştırmacılarından Sebastian Ruder paylaştığı blog yazısında ELMo, ULMFIT, OpenAI transform ve BERT’in araştırmacıları ‘dil için ImageNet’e çok yaklaştırdığını belirtiyor! Önceden eğitilmiş ImageNet modellerinin bilgisayarlı görü üzerindeki etkisinin benzer şekilde dil için geliştirilen bu önceden eğitilmiş dil modelleri ile sağlanmaya başlandığını da ekliyor.

Doğal dil işleme alanında yeni bir çağ açan bu modellerden BERT’i incelemeye başlayalım o zaman 🤩


📌 BERT’e Genel bir Bakış 👀

BERT’in modelinin mimarisi için en genel manada bir tanımlama yapmak gerekirse ‘çift yönlü dönüştürücü enkoder (Bidirectional Transformer Encoder)’ olarak ifade etmek mümkündür.

Transformer’in uzun süreli kelime bağımlılıklarının tespit etme yeteneği ve başarımının bir hayli yüksek olması, bu modelin mimarisinde de tercih edilmesine sebep olmuştur. Ayrıca çift yönlü kodlayıcı, BERT’i OpenAI GPT’den ve ELMo’dan ayıran bir diğer özellik olarak karşımıza çıkmaktadır.

✅ BERT, 24 Transformer bloğu, 1024 gizli katmanı ve 340M parametresi ile oldukça büyük bir modeldir.

✅ BooksCorpus (800 milyon kelime) ve İngilizce Wikipedia (2.5 milyar kelime) dahil, toplam 3.3 milyar kelimelik bir korpus üzerinden 40 epoch ile önceden eğitilmiştir.

✅ Model, eğitim için 16 TPU üzerinde çalışmıştır.


📌 Doğal Dil İşlemede Transfer Öğrenme

ELMo ve BERT gibi yöntemlerden önce doğal dil işlemede önceden eğitim Word2Vec ve GloVe gibi kelime gömmeleri (word embedding) ile sınırlıydı.

Kelime gömme işlemleri genellikle büyük, etiketsiz corpus (Wikipedia gibi) üzerinde eğitilir ve daha sonra duygu analizi gibi alt görevler için etiketli veriler üzerinde modeller geliştirmek için kullanılır. Bu yaklaşımın çok farklı görevler için neredeyse tüm araştırmacılar tarafından faydalı olduğu kabul gördüğü, ancak bir çok kısıtlaması olduğu da bir gerçektir.

Bu kısıtlardan ilki kelime gömmelerinin LSTM’lerin ve diğer karmaşık mimarilerin aksine, kelime kombinasyonlarını, olumsuz anlamlıları, vb. yakalamakta zorlanmasıdır.

Diğer bir önemli sınırlama ise kelime gömme modellerinin bağlamı dikkate almamasıdır. Örneğin, “bank” kelimesi, içeriğe bağlı olarak farklı bir anlama gelebilir (örneğin, “I stole money from the bank” ile “The bank of the river overflowed with water”).

Bu sınırlamalar transfer öğrenme için derin dil modellerinin (LSTM gibi mimarileri kullanan dil modellerini) kullanımı konusunda motivasyon sağlamıştır. Böylelikle her kelimeye bir vektör eşlemek için bir model eğitmek yerine, tüm cümleyi / çevresindeki içeriği temel alarak her bir kelimeye bir vektör eşlemek için daha karmaşık ve derin bir sinir ağını eğitme fikri yerleşmeye başlamıştır.

Bakış açıları tam olarak aynı olmasa da , ELMo, ULMFiT ve BERT bu fikri temel alan en iyi örnekler olarak gösterilebilir.

Temel yaklaşımı 2 adımla özetlersek:

🔴 Derin bir dil modeli eğitin ve ardından
🔴 Dil modeli tarafından öğrenilen gösterimleri alt görevlerde kullanın.


📌 Dil Modelleme Nedir?

Dil modelleme (language modelling) en basit şekliyle bir metin üzerinde eksik olan kelimenin tahmin edilmeye çalışılması görevidir.

Alışılageldik dil modellerinde önceki kelimelerden yararlanılarak bir sonraki kelimenin tahmin edilmesi (soldan-sağa) sağlanmakta iken BERT de bu yaklaşımın aksine hem önceki hemde sonraki kelimelerden faydalanılarak tahminleme yapılmaktadır.

Soldan sağa yaklaşım özellikle cümle oluşturulması gereken görevlerde, teker teker kelimeleri tahminleme yoluyla ilerleyerek görevi başarı ile tamamlanabilir. Fakat cümle içerisinde rastgele bir kelimenin tahmin edilmesi gerektiğinde, BERT’i klasik yaklaşımlardan ayıran özelliği — rastgele bir kelimeyi maskeleyerek tahmin etmeye çalışması — devreye girer.

Dil Modeli Mimarisinde Temel Transfer Öğrenme Yöntemleri Arasındaki Farklar

BERT’i bu noktada başarılı kılan şey, eksik bir kelimenin tahmin edilmesinde tüm cümledeki bilgiden faydalanıyor olmasıdır!

ELMo ve ULMFiT gibi çift yönlü LSTM kullanan modellerde, önceki ve sonraki belirteçleri aynı anda dikkate alınmaz.

Buna ek olarak BERT modelinde LSTM yerine 2017 yılının sonlarında yine Google araştırmacılarının tanıttığı ve büyük bir gelişmenin önünü açan Transformer kullanmaktadır. Ayrıntılı bilgi için Transformer mimarisini anlatan ‘Attention Is All You Need’ makalesine göz atabilirsiniz 😊


BERT Mimarisinde Biraz Daha Derine 💎

Mimarinin genel yapısını biraz daha derinden incelersek ilk göze çapan özelliklerini aşağıdaki gibi sıralayabiliriz:

✅Kelimeler yerine kelime parçaları kullanılır(ör. Playing -> play + ## ing).

✅Transformer mimarisini temel alır. Bu mimari tekrarlayan bağlantılar (recurrent connections) kullanmayan ve dizi (sequence) yerine dikkat (attention) kullanan bir modeldir.

✅Transformer birden fazla dikkat bloğundan oluşur. Her blok, girişi doğrusal katmanları kullanarak dönüştürür ve sıralamaya dikkat eder.

📍Giriş Gösteriminin (Input Representation) Oluşturulması

BERT simge gömmelerinin (token embeddings) yanı sıra, bir cümle içindeki kelimelerin konumunu ifade etmek için konumsal (positional) ve cümle çiftlerini girdi olarak alan görevlerde cümleler arasında ayrım yapılmasına yardımcı olmak için birinci ve ikinci cümle için benzersiz bir yerleştirme öğrenerek bölüm (segment) ek gömmelerini de giriş gösteriminde barındırır.

BERT için Girdi Gösteriminin Oluşturulması

📍ÖN-EĞİTİM GÖREVLERİ (PRE-TRAINING TASKS)

✨MASKELENMİŞ DİL MODELİ EĞİTİMİ (MASKED LANGUAGE MODEL TRAINING)

Maskelenmiş dil modeli eğitimi, cümle içerisindeki bir kelimenin [MASK] etiketiyle kapatılıp, dil modelinin bu maskelenmiş olan kelimeyi tespit etmeye çalışması olarak düşünülebilir. Göreceli olarak kolay görünen bu görevle ilgili dikkat edilmesi gereken bazı incelikler elbette ki mevcut 😊

En basit yaklaşımla belli bir yüzdelik diliminde (%15) kelimelerin rastgele seçilerek maskelenmesi gerçekleştirilmiş ve modelin bu kelimeleri tahmin etmesi sağlanmak istenmiştir. Fakat bu yaklaşım modelin yalnızca [MASK] etiketi bulunan alanlara yoğunlaşılması sonucunu doğuracağından dolayı araştırmacılar işi biraz daha zorlu kılmışlardır.

🔸 %80 oranında seçilen kelimeler [MASK] etiketi ile yer değiştirilmiştir, örneğin : my dog is hairy ➡ my dog is [MASK]

🔸 %10 oranında seçilen kelimeler rastgele bir kelime ile yer değiştirilmiştir, örneğin : my dog is hairy ➡ my dog is apple

🔸 %10 oranında seçilen kelimeler değiştirilmeden aynen bırakılmıştır, örneğin : my dog is hairy ➡ my dog is hairy

Transformer kodlayıcı, hangi kelimelerin tahmin edileceğini veya hangilerinin rastgele kelimelerle değiştirildiğini bilmediğinden, her girdi belirtecinin (input token) dağıtımsal bağlamsal gösterimini elinde bulundurmak zorunda kalır.

✨ SONRAKİ CÜMLE TAHMİNİ EĞİTİMİ (NEXT SENTENCE PREDICTION TRAINING)

İki cümle arasında ilişkilerin anlaşılması ihtiyacı bulunan soru cevaplama gibi görevler için ise maskelenmiş dil modeli haricinde sonraki cümleyi tahminleme de BERT’in bir diğer ön-eğitim görevidir.

Girdi olarak iki cümle alınırken, BERT cümleleri özel bir [SEP] belirteci ile ayırır. Eğitim sırasında, BERT iki cümle ile beslenir ve bu esnada verilerin,

🔸 %50’sinde ikinci cümle, birinciden sonra gelirken

🔸diğer %50’si ise ikinci cümle rastgele seçilmiş bir cümledir.

Bu noktada BERT’in üstlendiği görev, ikinci cümlenin rastgele olup/olmadığını tespit etmektir.

Sonraki Cümlenin Tahmini Görevi için Girdi Örneği

📍İNCE AYAR (FINE TUNNING)

BERT kodlayıcı bir gizli durum (hidden states) dizisi meydana getirir ve bilindiği üzere sınıflandırma görevlerinde bu dizinin tek bir vektöre indirgenmesi gerekmektedir.

Cümlenin gösterimini bir diziden tek bir vektöre indirgemek için maksimum/ortalama ortaklama (max/mean pooling) gibi klasik yolların haricinde dikkat mekanizması (attention) uygulamak da alternatif bir yoldur.

BERT araştırmacıları ise bu yöntemlerin haricinde daha basit bir yöntem olarak ilk token’e karşılık gelen gizli durumu almayı tercih etmişlerdir. Bu ortaklamayı gerçekleştirebilmek ve aynı zamanda cümlenin başlangıç token’ı da olabilecek bir [CLS] etiketi (“sınıflandırma (classification)” nın kısaltması olarak) yerleştirilir.


SONUÇLAR 🎯

2018 yılında doğal dil işleme görevlerindeki başarımın dil modelleri yaklaşımıyla büyük bir gelişim sağladığı bir gerçek!

ELMo, ULMFIT ve OpenAI transform ile temel sayılabilecek hemen her dil görevinde state-of-the art da büyük bir sıçrayış yaşandı. BERT ise bu artışa bir yenisini daha ekledi.

11 doğal dil işleme görevinde test edilen BERT ile elde edilen başarıları özetlersek:

🔸The Stanford Question Answering Dataset (SQuAD 1.1) üzerinde soru cevaplama görevi için %93,1 F1 skoru elde ederek %91,2 ‘lik insan seviyesini aşmıştır.

🔸 GLUE veri kümesi üzerinde farklı 8 görevin her birinde %4,7 ila %6,7 arasında başarım oranında artış sağlanmıştır. Bu görevlerin ayrıntılarına BERT’in tanıtıldığı ilgili makaleden ulaşabilirsiniz.

GLUE değerlendirme sunucusu tarafından puanlanan GLUE Test sonuçları

🔸 CoNLL 2003 veri kümesi ile Adlandırılmış Varlık Tanıma (Named Entity Recognition) görevinde 0.2’lik bir başarım artışı görülmüştür.

🔸 Situations With Adversarial Generations (SWAG) veri kümesinde, verilen bir cümleden sonra gelebilecek (4 cümle arasından) en uygun cümlenin seçilmesi görevinde BERT, kendinden önce en yüksek başarım sağlayan ESIM+ELMo modelinden %27,1 daha yüksek bir başarım elde etmiştir.

⭐ Türkçe OSCAR korpus, Wikipedia dump, OPUS korpora ve Prof.Dr. Kemal Oflazer hocanın paylaştığı bir korpusun birleşimi ile oluşturulan, yaklaşık 35GB ve 44,04,976,662 jeton içeren bir korpusla eğitilen BERTürk yayınlandı ❗❗


Doğal dil işleme alanında bakış açısının değişmesine ve birçok görevde elde edilen başarımların oldukça yükselmesine, en önemlisi ise her görev için büyük eğitim kümesi ihtiyaçlarının azalmasına yol açan dil modellerinden biri olan BERT’in tanıtıldığı bu blog yazısında Google araştırmacıları tarafından kaleme alınan “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”makalesi referans alınmıştır.

Ayrıca kullanılan kaynaklar aşağıda listelenmiştir:

Google Research GitHub Reposu

Google AI Blog : Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing

⭐ Carnegie Mellon University’de master öğrencisi olan Keita Kurita tarafından yapılan inceleme blog postu

⭐DeepMind araştırmacılarından Sebastian Ruder tarafından kaleme alınan dil modelleri inceleme blog postu


🍀 Yazı hakkında görüşleriniz, önerileriniz ve katkılarınız için şimdiden teşekkürler! Keyifli okumalar

Tarih:Doğal Dil İşlemeTeknik Yazılar

İlk Yorumu Siz Yapın

Bir cevap yazın

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