Zastanawiam się, dlaczego pominięcie gram jest lepsze dla rzadkich słów niż CBOW w word2vec. Przeczytałem roszczenie na https://code.google.com/p/word2vec/ .
źródło
Zastanawiam się, dlaczego pominięcie gram jest lepsze dla rzadkich słów niż CBOW w word2vec. Przeczytałem roszczenie na https://code.google.com/p/word2vec/ .
W CBOW wektory ze słów kontekstowych są uśredniane przed przewidywaniem słowa środkowego. W skip-gramie nie ma uśrednienia wektorów osadzania. Wygląda na to, że model może nauczyć się lepszych reprezentacji rzadkich słów, gdy ich wektory nie są uśredniane z innymi słowami kontekstu w procesie prognozowania.
Oto moje uproszczone i raczej naiwne zrozumienie różnicy:
Jak wiemy, CBOW uczy się przewidywać słowo na podstawie kontekstu. Lub zmaksymalizuj prawdopodobieństwo słowa docelowego, patrząc na kontekst. I to jest problem dla rzadkich słów. Na przykład, biorąc pod uwagę kontekst, yesterday was really [...] day
model CBOW powie ci, że najprawdopodobniej słowo to beautiful
lub nice
. Słowa takie delightful
będą znacznie mniej zwracać uwagę na model, ponieważ jest on zaprojektowany do przewidywania najbardziej prawdopodobnego słowa. Rzadkie słowa zostaną wygładzone na wielu przykładach za pomocą częstszych słów.
Z drugiej strony skip-gram służy do przewidywania kontekstu. Biorąc pod uwagę to słowo delightful
, musi je zrozumieć i powiedzieć nam, że istnieje duże prawdopodobieństwo, kontekst yesterday was really [...] day
lub inny istotny kontekst. W przypadku pominięcia gram słowo delightful
nie będzie próbowało konkurować ze słowem, beautiful
ale zamiast tego delightful+context
pary będą traktowane jak nowe obserwacje. Z tego powodu skip-gram będzie potrzebował więcej danych, aby nauczyć się rozumieć nawet rzadkie słowa.
Właśnie natrafiłem na artykuł, który pokazuje coś przeciwnego: że CBOW jest lepszy w przypadku rzadkich słów niż pomiń gram https://arxiv.org/abs/1609.08293 . Zastanawiam się, jakie są źródła tego roszczenia na https://code.google.com/p/word2vec/ .