Dlaczego hierarchiczny softmax jest lepszy dla rzadkich słów, podczas gdy negatywne próbkowanie jest lepsze dla częstych słów?

Odpowiedzi:

10

Nie jestem ekspertem od word2vec, ale po przeczytaniu Rong, X. (2014). Wyjaśnienie uczenia się parametrów word2vec i z własnego doświadczenia NN uprościłbym rozumowanie do tego:

  • Hierarchiczny softmax zapewnia poprawę wydajności treningu, ponieważ wektor wyjściowy jest określony przez drzewiaste przejście warstw sieciowych; dana próbka szkoleniowa musi jedynie oceniać / aktualizować jednostki sieciowe , a nie . Zasadniczo zwiększa to ciężary do obsługi dużego słownictwa - dane słowo jest powiązane z mniejszą liczbą neuronów i odwrotnie.O(losol(N.))O(N.)
  • Negatywne próbkowanie to sposób na próbkowanie danych treningowych, podobny do stochastycznego spadku gradientu, ale kluczem jest szukanie negatywnych przykładów treningu. Intuicyjnie trenuje na podstawie próbkowania miejsc, których mógł oczekiwać od słowa, ale go nie znalazł, co jest szybsze niż trenowanie całego korpusu przy każdej iteracji i ma sens w przypadku zwykłych słów.

Te dwie metody nie wydają się być teoretycznie wykluczające, ale tak czy inaczej wydaje się, że byłyby lepsze w przypadku częstych i rzadkich słów.

Andrew Charneski
źródło
1

Rozumiem, że dzieje się tak z powodu kodowania Huffmana stosowanego podczas budowania hierarchii kategorii.

Hierarchiczny softmax wykorzystuje drzewo węzłów sigmoidalnych zamiast jednego dużego softmax, kodowanie Huffmana zapewnia zrównoważoną dystrybucję punktów danych należących do każdej strony dowolnego sigmoidalnego węzła. Dlatego pomaga wyeliminować preferencje częstych kategorii w porównaniu z użyciem jednego dużego softmax i negatywnego próbkowania.

dontloo
źródło
0

Hierarchiczny softmax buduje drzewo na całym słownictwie, a węzły liści reprezentujące rzadkie słowa nieuchronnie odziedziczą w drzewie reprezentacje wektorowe swoich przodków, na które mogą wpływać inne częste słowa w korpusie. Będzie to korzystne dla szkolenia przyrostowego dla nowego korpusu.

Negatywne próbkowanie jest opracowywane na podstawie estymacji kontrastowej szumu i losowo próbkuje słowa spoza kontekstu, aby odróżnić obserwowane dane od sztucznie generowanego szumu losowego.

Amey Yadav
źródło