![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
2017'de bir grup araştırmacı (Google ve Toronto Üniversitesi'nden) doğal dil işleme (NLP) görevlerini ele almanın yeni bir yolunu tanıttı. Devrim niteliğindeki " Dikkat Tek İhtiyacınız " başlıklı makaleleri, günümüzde birçok gelişmiş AI sisteminin temeli haline gelen bir mimari olan Transformer modelini sundu. Modelin performansı, ölçeklenebilirliği ve çok yönlülüğü, yaygın bir şekilde benimsenmesine yol açarak BERT (Çift Yönlü Kodlayıcı Gösterimleri) ve GPT (Üretici Önceden Eğitilmiş Transformatörler) gibi son teknoloji modellerin omurgasını oluşturdu.
Transformer modelinden önce, dili işleyen çoğu AI modeli, Tekrarlayan Sinir Ağı (RNN) veya geliştirilmiş versiyonu Uzun Kısa Süreli Bellek Ağı (LSTM) adı verilen bir sinir ağı türüne büyük ölçüde güveniyordu. Özellikle dil modelleme ve makine çevirisi (dizi transdüksiyonu olarak da adlandırılır) gibi sorunlar. Bu modeller, kelimeleri bir dizide, soldan sağa (veya tam tersi) tek tek işliyordu. Bu yaklaşım, bir cümledeki kelimelerin genellikle önceki kelimelere bağlı olması nedeniyle mantıklı olsa da, bazı önemli dezavantajları vardı:
Ana Fikir: Mimariye Dikkat
Transformer modelinin ardındaki temel fikir "dikkat" olarak adlandırılan bir şeydir. Basitçe ifade etmek gerekirse, dikkat, bir kelimenin anlamını/bağlamını anlamaya çalışırken modelin cümlenin belirli kısımlarına odaklanmasına yardımcı olur. "Garaja park edilmiş araba mavidir" cümlesini düşünün. Mavi kelimesini düşündüğünüzde, cümlenin başlarında geçen "araba" kelimesine doğal olarak odaklanırsınız çünkü size mavinin ne olduğunu söyler. Makine çevirisi modelleri, "mavi"nin arabaya mı yoksa garaja mı atıfta bulunduğunu belirlemekte zorlanırdı. Öz-dikkatin yaptığı şey budur - modelin cümlede nerede olursa olsun ilgili kelimelere odaklanmasına yardımcı olur.
Dikkatin yeni bir kavram olmadığını ve RNN'lerle birlikte zaten kullanıldığını unutmayın. Transformer, yalnızca dikkate dayanan ilk transdüksiyon modeliydi ve bu sayede sinir ağlarına olan ihtiyacı ortadan kaldırdı. Bu, aşağıdaki avantajları sağladı:
Gördüğünüz gibi, yeni model sadece sinir ağlarının tüm dezavantajlarını ortadan kaldırmakla kalmıyor, aynı zamanda makine çevirisinin performansını da artırıyor!
Orijinal makalenin anlaşılması biraz zor olabileceğinden, makalede açıklanan model mimarisinin daha basit bir açıklaması aşağıda verilmiştir.
Kodlayıcı ve Kod Çözücü Yığınları : Transformatör, bir kodlayıcı yığınından (solda) ve bir kod çözücü yığınından (sağda) oluşur. Kodlayıcı yığını, giriş dizisini (bir cümle gibi) sürekli gösterimler kümesine dönüştürürken, kod çözücü yığını bu gösterimleri bir çıktı dizisine (bir çeviri gibi) dönüştürür. Her yığın için, aşağıdan yukarıya doğru, modelin temel bileşenleri bir örnekle açıklanmıştır.
Kodlayıcıda Giriş Cümlesi İşleme
Girdiler : Çevirmek istediğiniz metin. Örn. "Garaja park edilmiş araba mavidir."
Giriş Gömme : Sözcükleri, gömme adı verilen sabit uzunluktaki sayısal gösterimlere (vektörler) dönüştürür. Bu gömmeler, sözcüklerin anlamsal anlamını modelin anlayabileceği şekilde yakalar. Örneğimizden:
"The" -> [0.9, -0.4, 0.2, ...]
"araba" -> [0,5, 0,1, -0,7, ...]
"o" -> [-0.8, 0.2, 0.8, ...]
ve yukarıdaki cümledeki her kelime için benzer şekilde.
Konumsal Kodlama : Model, herhangi bir sıralamaya sahip olmayan giriş yerleştirmelerini işlediğinden, bir cümledeki kelimelerin sırasını anlamak için bir yola ihtiyaç duyar. Konumsal kodlama, dizideki her kelimenin konumu hakkındaki bu bilgiyi yerleştirmesine ekler.
1. konumdaki "The" [0.9 + P1, -0.4 + P1, 0.2 + P1, ...] olarak ayarlanabilir, burada P1, ilk konum için konumsal kodlamayı temsil eder ve böylece P1 konumu için benzersiz olan yeni bir yerleştirme oluşturulur.
Öz-Dikkat Mekanizması : Daha önce açıklandığı gibi, bu, modelin bağlama bağlı olarak bir cümledeki farklı kelimelere odaklanmasını sağlar. Öz-dikkat mekanizması, her kelime için, geçerli kelimeyi kodlarken diğer kelimelere ne kadar odaklanılması gerektiğini temsil eden bir puan hesaplar.
"Araba" kelimesi için, öz dikkat, "park edilmiş", "garaj" ve "mavi" kelimelerinin bağlamını anlamada özellikle alakalı olduğunu belirleyebilir.
Çok başlı dikkat : Transformatör modelinin yeni bir parçası. Çok başlı dikkat, paralel çalışan ve doğrusal olarak birleştirilen birden fazla öz-dikkat katmanı/işlemidir.
Örneğin, bir kafa ana konuya ("araba") ve onun özelliklerine ("mavi") odaklanırken, bir başka kafa izafi cümleye ("garajda park edilmişti") odaklanabilir.
Çok başlı dikkat modülü, modele "mavi" renginin garaja kıyasla araba için daha alakalı olduğunu anlama yeteneği kazandırır.
İleri Beslemeli Sinir Ağları : Öz-dikkat katmanından sonra çıktı, her bir pozisyona ayrı ayrı ve aynı şekilde uygulanan ileri beslemeli bir sinir ağından geçirilir (tekrar ediyorum, paralel olarak çalıştırılabilir!). Bu, aralarında bir ReLU aktivasyonu bulunan iki doğrusal dönüşümden oluşur.
Ekle ve Norm : Kalan bağlantılar (ekle), bir katmanın girişini çıkışına eklemek için kullanılır, bu daha sonra normalleştirilir (norm). Bu, eğimlerin kaybolmasını veya patlamasını önleyerek derin ağların eğitilmesine yardımcı olur.
Kod Çözücüde Çevirinin Oluşturulması
NLP'de, dizi başlangıcı belirtecinin başlangıcını <SOS> özel karakteriyle ve dizinin sonunu <EOS> ile belirtmek yaygındır. Kod çözücü, işlenmiş girdiyi kodlayıcıdan alır ve Fransızca "La voiture qui était garée dans le garage est bleue" çevirisini üretir. Bu kısım şu şekilde çalışır:
Kod Çözücüye Giriş : Kod çözücü, kodlayıcıdan gelen İngilizce cümlenin kodlanmış gösterimiyle başlar. Dikkat ederseniz, kod çözücü kendi çıktısını da girdi olarak alır. Başlangıç kelimesi için bir girdisi olmayacağından, başa <SOS> belirtecini ekleriz (bu nedenle sağa kaydırılır) ve son kelimeyi kaldırırız. Bu kaydırılmış dizi, kod çözücüye beslenen şeydir.
Maskelenmiş Öz-Dikkat : Kod çözücüde, maskelenmiş bir öz-dikkat mekanizması, çıktı dizisindeki her bir kelimenin yalnızca kendisinden önceki kelimelere dikkat edebilmesini sağlar. Bu, modelin ileriye bakmasını önler ve çeviriyi soldan sağa doğru birer kelime olacak şekilde üretmesini sağlar.
Örneğin, kod çözücü “La” (Fransızcanın ilk kelimesi) kelimesini üretmek üzereyken yalnızca <SOS> ifadesinin bağlamını bilir ve “Voiture” gibi gelecekteki kelimeleri bilmez.
İleri Beslemeli Sinir Ağları : Kod çözücü, bu bilgiyi daha ileri işlemek için başka bir ileri beslemeli sinir ağı uygular ve çeviriyi adım adım iyileştirir.
Kod çözücüde, giriş cümlesini maskeli öz-dikkat, kodlayıcı-kod çözücü dikkati ve ileri beslemeli ağların çoklu katmanları aracılığıyla işledikten sonra, hedef cümledeki her bir konum için (bizim durumumuzda Fransızca) bir dizi sürekli gösterim (yüzer nokta vektörü) elde ederiz. Bu gösterimlerin gerçek kelimelere dönüştürülmesi gerekir. İşte son doğrusal ve softmax katmanının devreye girdiği yer burasıdır.
Kod çözücü esasen şunu yapar:
Bu adımları birleştirerek Transformer, tüm cümlenin yapısını ve anlamını önceki modellerden daha etkili bir şekilde anlayabilir. Öz-dikkat mekanizması ve paralel işleme, Transformer'ın hem kaynak hem de hedef dillerin nüanslarını ve yapısını etkili bir şekilde yakalamasını sağlayarak makine çevirisi gibi görevlerde oldukça yetenekli hale getirir.