Zastanawiam się, dlaczego hierarchiczny softmax jest lepszy dla rzadkich słów, podczas gdy negatywne próbkowanie jest lepsze dla częstych słów, w modelach CBOW i skip-gram w word2vec. Przeczytałem roszczenie na https://code.google.com/p/word2vec/ .
Zastanawiam się, dlaczego hierarchiczny softmax jest lepszy dla rzadkich słów, podczas gdy negatywne próbkowanie jest lepsze dla częstych słów, w modelach CBOW i skip-gram w word2vec. Przeczytałem roszczenie na https://code.google.com/p/word2vec/ .
Odpowiedzi:
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:
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.
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.
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.