Bu bölümde, yerleştirme oluşturmanın çeşitli yöntemlerinin yanı sıra statik yerleştirmeleri bağlama dayalı yerleştirmelere dönüştürme işlemi açıklanmaktadır.
Boyut indirgeme teknikleri
Yüksek boyutlu uzayın önemli yapılarını düşük boyutlu uzaya yansıtmanın çeşitli matematiksel teknikleri bulunur. Teorik olarak, makine öğrenimi sisteminde yerleştirme oluşturmak için bu tekniklerden herhangi biri kullanılabilir.
Örneğin, kelime yerleştirmeleri oluşturmak için temel bileşenler analizi (TBA) kullanılır. TBA, bag of words (kelime torbası) vektörleri gibi bir veri kümesi üzerinde çalıştırıldığında tek bir boyuta indirgenebilecek yüksek korelasyonlu boyutları bulmaya çalışır.
Yerleştirmeyi nöral ağın parçası olarak eğitme
Hedeflediğiniz göreve yönelik bir nöral ağı eğitirken yerleştirme oluşturabilirsiniz. Bu yöntem, sisteminize göre özelleştirilmiş bir yerleştirme elde etmenizi sağlasa da yerleştirmeyi ayrı olarak eğitmeye kıyasla daha uzun sürebilir.
Genel olarak, nöral ağınızda yerleştirme katmanı görevi gören d boyutlu gizli bir katman oluşturabilirsiniz. d, hem gizli katmandaki düğüm sayısını hem de yerleştirme uzayındaki boyut sayısını temsil eder. Bu yerleştirme katmanı, diğer özellikler ve gizli katmanlarla birlikte kullanılabilir. Tüm derin nöral ağlarda olduğu gibi ağın çıkış katmanındaki düğümlerde kaybı en aza indirmek için parametreler eğitim sırasında optimize edilir.
Yiyecek önerme uygulaması örneğimize geri dönelim. Hedefimiz, kullanıcının sevdiği yiyeceklere göre beğenebileceği yeni yiyecekleri tahmin etmekti. İlk olarak, kullanıcılarımızın en sevdiği ilk beş yiyecek hakkında ek bilgiler toplayabiliriz. Ardından, bu görevi denetimli öğrenme problemi olarak modelleyebiliriz. Bu ilk beş yiyecekten dördünü özellik verisi olarak alır, beşinciyi ise rastgele ayırıp modelimizin tahmin etmeye çalıştığı pozitif etiket olarak kullanırız. Böylece modelin tahminleri, softmax kayıp fonksiyonuyla optimize edilir.
Nöral ağ modeli, eğitim sırasında yerleştirme katmanı görevi gören ilk gizli katmandaki düğümler için en uygun ağırlıkları öğrenir. Örneğin ilk gizli katmanda üç düğüm yer alıyorsa model, yiyeceklerle ilgili en alakalı üç boyutun sandviçlik, tatlılık ve sıvılık olduğuna karar verebilir. 12. şekilde "sosisli" giriş değeri için yapılan one-hot kodlamanın üç boyutlu vektöre dönüştürülmüş hâli gösteriliyor.
![12. şekil. One-hot kodlama yapılmış "sosisli" değeriyle çalışan nöral ağ. İlk katman 5 düğümün yer aldığı giriş katmanıdır. Her birine temsil ettiği yiyeceğin simgesi eklenmiştir (borş çorbası, sosisli, salata, ... ve döner). Bu düğümler sırasıyla [0, 1, 0, ..., 0] değerlerine sahiptir. Bu değerler, "sosisli" değerinin one-hot kodlamasını temsil eder. Giriş katmanı, 3 düğümlü yerleştirme katmanına bağlanmıştır ve bu katmandaki düğümler sırasıyla 2,98; -0,75 ve 0 değerlerine sahiptir. Yerleştirme katmanı 5 düğümlü gizli katmana bağlıdır ve bu katman da 5 düğümlü çıkış katmanına bağlıdır.](https://developers.google.com/static/machine-learning/crash-course/embeddings/images/one_hot_hot_dog_embedding.png?hl=tr)
hot dog
değerinin one-hot kodlaması. Yerleştirme katmanı, one-hot kodlamayı üç boyutlu yerleştirme vektörüne dönüştürür [2.98, -0.75, 0]
.
Eğitim sırasında yerleştirme katmanının ağırlıkları optimize edilerek benzer örneklere ait yerleştirme vektörlerinin birbirlerine yakın olması sağlanır. Daha önce belirttiğimiz gibi gerçek bir modelin yerleştirmeleri için seçtiği boyutlar büyük ihtimalle bu örnekteki gibi kolay anlaşılır olmayacaktır.
Bağlama dayalı yerleştirmeler
word2vec
statik yerleştirme vektörlerinin dezavantajı, kelimelerin farklı bağlamlarda farklı anlamlara gelmesidir. "Kesin" kelimesinin tek başına kullanıldığındaki anlamı "Kesin öyledir." cümlesindeki anlamıyla tamamen zıttır. "Yüz" kelimesi "surat", "yüz sayısı", "yüzey", "taraf", "kesici araçlarda ağız", "suyun içinde ilerlemek", "bir şeye bulanmak" ve daha birçok anlamı ifade edebilir.
Ancak statik yerleştirmelerde, farklı anlamlara sahip olsa bile her kelime, vektör uzayında tek bir noktayla temsil edilir.
Bir önceki alıştırmada, hem meyve hem de renk anlamına gelebilecek orange (portakal/turuncu) kelimesiyle ilgili kısıtlamaları gördünüz. Tek bir statik yerleştirmesi olan orange word2vec
veri kümesiyle eğitildiğinde, juice (meyve suyu) kelimesi yerine her zaman diğer renklere daha yakın olacaktır.
Bağlama dayalı yerleştirmeler bu sorunu çözmek için geliştirilmiştir. Bağlama dayalı yerleştirmeler, kelimenin birden fazla yerleştirmeyle temsil edilmesini sağlar. Bu yerleştirmeler, kelimenin kendisinin yanında birlikte kullanıldığı diğer kelimeler hakkında da bilgi içerir. Orange kelimesi, veri kümesinde bu kelimeyi içeren her bir cümle için farklı bir yerleştirmeye sahip olur.
ELMo gibi bağlama dayalı yerleştirmeler oluşturan bazı yöntemler, kelimenin statik yerleştirmesini (ör. cümledeki bir kelimenin word2vec
vektörünü) alıp birlikte kullanıldığı diğer kelimelerle ilgili bilgiler içeren bir fonksiyonla bu yerleştirmeyi dönüştürür. Sonuç olarak bağlama dayalı yerleştirme elde edilir.
Bağlama dayalı yerleştirmeler hakkında daha ayrıntılı bilgi için burayı tıklayın.
- Özellikle ELMo modellerinde statik yerleştirme, cümlenin baştan sona ve sondan başa okumalarını kodlayan diğer katmanlardan alınan yerleştirmelerle birleştirilir.
- BERT modelleri, modelin giriş olarak aldığı dizinin bir kısmını maskeler.
- Dönüştürücü modelleriyse öz dikkat katmanını kullanarak dizideki her bir kelimenin diğer kelimelerle alaka düzeyinin ağırlığını belirler. Ayrıca konuma dayalı yerleştirme matrisindeki (bkz. konuma dayalı yerleştirme) ilgili sütun daha önce öğrenilen her bir jeton yerleştirmesine öğe öğe eklenir. Bu yöntemle oluşturulan giriş yerleştirmesi, analiz için modelin geri kalanına aktarılır. Her bir metin dizisi için benzersiz olan bu giriş yerleştirmesi bağlama dayalı yerleştirmedir.
Yukarıda dil modelleri açıklanmış olsa da bağlama dayalı yerleştirmeler, resimler gibi üretmeye yönelik diğer görevler için de kullanışlıdır. Örneğin, bir at fotoğrafındaki piksel RGB değerlerinin yerleştirmesi, her bir pikseli temsil eden konuma dayalı matris ve pikselin etrafındaki diğer piksellerin kodlamasıyla birleştirilip bağlama dayalı yerleştirmeler oluşturulabilir. Böylece yalnızca RGB değerlerinin statik yerleştirmelerine kıyasla daha fazla bilgi elde edilir.