Word Embedding ile One hot encoding arasındaki fark nedir?


#1

Word Embedding ile one- Hot encoding arasındaki fark nedir? Hangisi daha çok tercih ediliyor?


#3

One hot encoding sadece bir adet 1 içeren, diğer tüm elemanları 0 olan bit dizilerini ifade etmektedir. Genellikle kategorik değişkenleri vektör olarak temsil etmek için kullanılır. Aşağıdaki örnekte kategorik bir özellik one hot encoding yöntemi kullanılarak vektörleştirilmiştir. Böylelikle YSA gibi kategorik verilerle doğrudan çalışamayan yöntemler için girdi olarak kullanılabilir hale getirilmiştir.
öğrenci -> 001
çalışan -> 010
emekli -> 100

Doğal dil işlemede ise her bir kelime sözlükteki kelime sayısı uzunluğunda one hot vökterlerle gösterilmektedir. kullanımını ise şu örnek üzerinden ifade edelim:
Toplam 7 adet farklı sözcük (ev, otel, pansiyon, minibüs, otobüs, aldım, sürdüm) içeren bir sözlüğümüz olsun. Her bir sözcüğü one hot encoding ile aşağıdaki gibi gösterirebiliriz:
ev : 0000001
otel : 0000010
pansiyon : 0000100
minibüs: 0001000
otobüs : 0010000
aldım: 0100000
sürdüm : 1000000

Eğer doküman sınıflandırma gibi bir görevi yerine getirmeye çalışıyorsak doküman içerisinde geçen tüm sözcüklerin one hot vektörlerini toplayarak doküman vektörlerini elde edebilir ve bu vektörleri makine öğrenmesi yöntemlerinin girdisi olarak kullanabiliriz. Bu yöntem genellikle Bag-of-Words olarak isimlendirilmektedir:
ev aldım = 0000001 + 0100000 = 0100001
minibüs aldım = 0001000+ 0100000 = 0101000
otobüs aldım = 0010000+ 0100000 = 0110000

One hot encoding kullanmak temel bir yöntemdir fakat bazı sorunlara yol açmaktadır. İlk olarak bol 0’dan oluşan çok büyük vektörlerle çalışmak pek “efficient” değil.İkinci bir problem ise kelimeler arası benzerlik bilgisi yok sayılmakta. Bu da doğal dil işlemede sıklıkla rastlanılan veri seyrekliği (data sparsity) probleminin ortaya çıkmasına sebep olmaktadır. Örneğin bir sınıflandırma görevi yapıyorsanız veri kümenizde geçmeyen kelimeler ile ilgili modelinizin herhangi bir şey öğrenme şansı yok. Ya da bir arama motoru yaptınız ve İstanbul’daki otelleri aramak istiyorsunuz.Arama sonuçlarında otellerle birlikte pansiyonların da geçmesini istemeniz son derece doğal fakat pansiyon ve otel kelimelerinin one hot vektör temsillerinin arasındaki benzerlik ile otel ve minibüs sözcüklerinin one hot vektörlerinin arasındaki benzerlik eşit. Yukarıdaki örnekleri incelerseniz bag-of-words ile temsil edilen 3 dokümanın benzerlikleri birbirine eşit fakat anlamları gözönüne aldığınızda minibüs aldım ve otobüs aldım çok daha benzer cümleler.

Bu sebepten kelimelerin düşük boyutlu (low dimension) vekör temsilleri (word embeddings) son yıllarda oldukça sık kullanılmakta ve bu sayede kelimeler arası anlamsal ilişkileri de hesaba katmaktadır. Çeşitli yöntemler ile (word2vec, fasttext, lsa) öğrenilen bu kelime vektörlerini bir uzayda gösterecek olursak anlamca birbirine yakın olan kelimelerin uzayda birbirine yakın konumlandığını görmekteyiz. Kelime vektörlerini öğrenmek için kullanılan yöntemlerin ortak özelliği büyük düz yazı verilerini inceleyerek kelimelerin birlikte görülme istatistiklerini kullanmalarıdır.:

Sorunuza dönecek olursak sözcüklerin düşük boyutlu vektör temsilleri hem hesaplama ve hafıza açısından hem de anlamsal ilişkileri içerme ve başarım açısından çok daha iyi sonuçlar elde etmenize olanak tanır. One hot encoding ise çok daha temel bir gösterimdir. Sözcüklerin vektör temsillerinin öğrenilmesi işlemi yapılıren bile one hot encoding temsiller kullanılmaktadır.


#2

Bunlar çok geniş konular

one- Hot encoding : her farklı kelime için bir sutun demek
mesela 3 kelimeniz olsa w1,w2iw3
w1 -> 0 0 1
w2 -> 0 1 0
w2 -> 1 0 0
tahmin edeceğiniz gibi kelime sayısının fazlalığı ile vectör boyutu çok büyür. kullanılmaz hale gelir.

Word Embedding de kelime için sabit uzunlukta vektör üretiliyor. vectörün hesaplanış şekli metoda göre değişiyor.


#4

@ishak.dolek, soruların daha sonra arandığında kolay şekilde erişilebilmesi ve anlaşılabilmesi için “Word Representation” başlığı “Word Embedding ile One hot encoding arasındaki fark nedir?” olarak değiştirildi.


#5

herkese ek olarak şunu demek isterim embedding anlamsal ilişkilendirmeye ait daha geniş bir kavram, word embedding olabileceği gibi image embedding de olabiliyor örnek veermek gerekirse Waymo araç classificationlarında ( polis arabası, itfaye , ambulans ) image embeddingler kullanıyor, her eyalette ambulans tipi , itfaye tipi ayrı tüm hepsi hakkında yeterli data olmadığı gibi otonom araç bunların image embedding ile ambulansı tanıyıp bunların acil bir olaya yetişip yetişmediğini de değerlendirebiliyor vs…