Negatif örnekleme word2vec'de nasıl çalışır?


19

Word2vec bağlamında negatif örnekleme kavramını anlamaya çalışıyorum. [Negatif] örnekleme fikrini sindiremiyorum. Örneğin Mikolov gazetelerinde olumsuz örnekleme beklentisi şu şekilde formüle edilmiştir:

logσ(w,c)+kEcNPD[logσ(w,cN)].

\ Log \ sigma (\ langle w, c \ rangle) terimini anlıyorum logσ(w,c), ancak negatif kelime-bağlam çiftlerini örnekleme fikrini anlayamıyorum.


4
Word2vec için belgelerin ne kadar dağınık olduğu çok saçma. Negatif örnekleme türevlerini burada bulabilirsiniz: arxiv.org/pdf/1402.3722v1.pdf
Alex R.

Bahsettiğiniz ve arkasındaki matematiği anladığınız açıklamadan geçtim. Ama örneklemenin ardındaki sezgiyi sindiremiyorum.
Upendra Kumar

Yanıtlar:


27

Sorun

"Standart" bir sinir ağı kullanarak sözcük vektörlerini öğrenmekle ilgili bazı sorunlar vardır. Bu şekilde, ağ vektörleri, bir kelime penceresi (ağın girişi) verilen bir sonraki kelimeyi tahmin etmeyi öğrenirken öğrenilir .

Bir sonraki kelimeyi tahmin etmek sınıfı tahmin etmek gibidir. Yani, böyle bir ağ sadece "standart" çok terimli (çok sınıflı) bir sınıflandırıcıdır. Ve bu ağ, sınıflar kadar çıkış nöronuna sahip olmalıdır. Sınıflar gerçek kelimeler olduğunda, nöron sayısı, iyi, büyük .

"Standart" bir sinir ağı genellikle çıkış nöronlarının değerlerinin olasılıkları temsil etmesini gerektiren çapraz entropi maliyet fonksiyonu ile eğitilir - yani her sınıf için ağ tarafından hesaplanan çıktı "skorlarının" normalleştirilmesi, her sınıf için gerçek olasılıklar. Bu normalleştirme adımı, softmax fonksiyonu ile gerçekleştirilir. Softmax, büyük bir çıktı katmanına uygulandığında çok masraflıdır.

(A) çözümü

Bu sorunla başa çıkmak için, yani softmax'ın pahalı hesaplaması için, Word2Vec gürültü-kontrast tahmini olarak adlandırılan bir teknik kullanır . Bu teknik, etiketlenmemiş doğal dil metninden kelime düğünlerini öğrenmek için [C], [D], [E] 'de kullanılan [A] ([B] tarafından yeniden formüle edilmiştir) tarafından tanıtıldı.

Temel fikir, çok terimli bir sınıflandırma problemini (bir sonraki kelimeyi tahmin etme problemi olduğu için ) bir ikili sınıflandırma problemine dönüştürmektir. Yani çıktı kelimesinin gerçek olasılık dağılımını tahmin etmek için softmax kullanmak yerine, bunun yerine ikili bir lojistik regresyon (ikili sınıflandırma) kullanılır.

Her eğitim örneği için, geliştirilmiş (optimize edilmiş) sınıflandırıcıya gerçek bir çift (bir orta kelime ve bağlamında görünen başka bir kelime) ve bir dizi rasgele bozuk çift (orta kelime ve rastgele seçilen bir kelime kelime). Sınıflandırıcı, gerçek çiftleri bozuk olanlardan ayırt etmeyi öğrenerek nihayetinde vektör sözcüklerini öğrenecektir.k

Bu önemlidir: optimize edilmiş sınıflandırıcı bir sonraki kelimeyi ("standart" eğitim tekniği) tahmin etmek yerine basitçe bir çift kelimenin iyi mi kötü mü olduğunu tahmin eder .

Word2Vec işlemi biraz özelleştirir ve negatif örnekleme olarak adlandırır . Word2Vec'de, negatif örneklerin sözcükleri (bozuk çiftler için kullanılır), daha sık çizilecek daha az sık kullanılan sözcükleri destekleyen özel olarak tasarlanmış bir dağıtımdan çizilir.

Referanslar

[A] (2005) - Kontrastlı tahmin: Etiketlenmemiş veriler üzerinde log-lineer modellerin eğitimi

[B] (2010) - Gürültü kontrastlı tahmin: Normalleştirilmemiş istatistiksel modeller için yeni bir tahmin ilkesi

[C] (2008) - Doğal dil işleme için birleşik bir mimari: Çok görevli öğrenmeye sahip derin sinir ağları

[D] (2012) - Sinir olasılıklı dil modellerinin eğitimi için hızlı ve basit bir algoritma .

[E] (2013) - Gürültü-kontrastlı tahmin ile kelime düğünlerini verimli bir şekilde öğrenmek .


Cevabım bazı eski notlarıma dayanıyor - umarım doğrulardı :)


2
Bahsettiniz "in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often". Acaba bu doğru mu? Çünkü diğer bazı kaynaklar negatif örnek olarak daha sık kelimelerin örneklendiğini söylüyor. Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.
Tyler 傲 来 国 主


BTW, negatif örnek olarak yüksek veya düşük sık kullanılan kelimeler arasından seçim yapma nedeniniz nedir? Bağlamsız sözcüklerden rastgele örnekleme yeterli değil mi?
Tyler 傲 来 国 主

@Tyler 傲 来 国 主 Anladığım kadarıyla, daha az sık kullanılan kelimeler içeriğe özgü olma eğiliminde oldukları için daha bilgilendiricidir. Daha sık kullanılan sözcükler diğer birçok kelimeyle ilişkilendirilme eğilimindedir (uçtaki "the" örneğini alın). Bu, nadir kelimeleri doğru elde etmek için "zor" hale getirir (daha hızlı öğrenirsiniz) ve ayrıca aslında negatif bir örnek olmayan bir kelimeyi seçme şansını azaltır (çünkü büyük corpora'da bunu kontrol etmek pahalıdır ve genellikle dışarıda bırakılır).
drevicko

@drevicko Daha az sık kullanılan kelimeler daha bilgilendiricidir, ancak daha az sıklıkta kullanılan kelimeler negatif örnek olmak daha az bilgilendiricidir. Bilgi teorisine göre, olasılık ne kadar yüksekse, öz bilgi o kadar küçük olur. Belirli bir hedef sözcük için sık kullanılan kelimelerin negatif örnek olması durumunda, olasılık daha düşük olmalıdır, bu da daha yüksek miktarlarda bilgi anlamına gelir.
Tyler 傲 来 国 主
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.