W jaki sposób model pomijania gramów Word2Vec generuje wektory wyjściowe?

11

Mam problemy ze zrozumieniem modelu pominięcia gramów algorytmu Word2Vec.

W ciągłym pakiecie słów łatwo jest zobaczyć, jak słowa kontekstowe mogą się „zmieścić” w sieci neuronowej, ponieważ w zasadzie uśrednia się je po pomnożeniu każdej z reprezentacji kodowania jednokrotnego z macierzą wejściową W.

Jednak w przypadku pominięcia gram, wektor słowa wejściowego uzyskuje się tylko przez pomnożenie kodowania „one-hot” przez macierz wejściową, a następnie należy uzyskać reprezentacje wektorów C (= rozmiar okna) dla słów kontekstu przez pomnożenie reprezentacja wektora wejściowego z macierzą wyjściową W '.

Chodzi mi o to, że mam słownik wielkości i kodowanie rozmiaru , i macierz jako macierz wyjściowa. Biorąc pod uwagę słowo z kodowaniem jednorazowym ze słowami kontekstowymi i (z jednokrotnymi powtórzeniami i ), jeśli pomnożymy przez macierz wejściową , otrzymamy , jak teraz generujesz z tego wektory score?N W R V × N W R N × V w i x i w j w h x j x h x i W h : = x T i W = W ( i , )R N CVNWRV×NWRN×VwixiwjwhxjxhxiWh:=xiTW=W(i,)RNC

crscardellino
źródło

Odpowiedzi:

7

Miałem ten sam problem ze zrozumieniem. Wydaje się, że wektor wyniku wyjściowego będzie taki sam dla wszystkich haseł C. Różnica w błędach dla każdego wektora reprezentowanego na gorąco będzie inna. Zatem wektory błędów są używane w propagacji wstecznej do aktualizacji wag.

Proszę popraw mnie jeżeli się mylę.

źródło: https://iksinc.wordpress.com/tag/skip-gram-model/

yazhi
źródło
więc ? WRN×(VC)
Fabich,
0

W obu modelach wynik wyjściowy zależy od używanej funkcji oceniania. Mogą być dwie funkcje punktowe: softmax lub próbkowanie ujemne. Więc używasz funkcji softmax score. Otrzymasz rozmiar funkcji punktowej N * D. Tutaj D jest wymiarem wektora słowa. N jest liczbą przykładów. Każde słowo jest jak klasa w architekturze sieci neuronowej.

Shamane Siriwardhana
źródło
0

W modelu pomijania gramów jedno zakodowane słowo jest podawane do dwuwarstwowej płytkiej sieci neuronowej. Ponieważ dane wejściowe są kodowane na gorąco, warstwa ukryta zawiera tylko jeden wiersz wejściowej macierzy ukrytej wagi (powiedzmy, że wiersz, ponieważ wiersz wektora wejściowego to jeden). k t hkthkth

Wyniki dla każdego słowa są obliczane według następującego równania.

u=WTh

gdzie h jest wektorem w ukrytej warstwie, a to ukryta macierz wyjściowej masy. Po obliczeniu obliczane są rozkłady wielomianowe, gdzie ma rozmiar okna. Rozkłady są obliczane według następującego równania. U C CWu CC

p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj

Jak widać, wszystkie dystrybucje są różne. (Aby uzyskać więcej informacji: https://arxiv.org/pdf/1411.2738.pdf ). W rzeczywistości byłoby to bardziej jasne, gdyby użyli czegoś takiego jak poniższy rysunek.C

Podsumowując, istnieje tylko jedno źródło wektora . Jednak różne rozkłady są obliczane przy użyciu funkcji softmax.C.uC

References:

  • Xin Rong, Wyjaśnienie nauki parametrów Word2Vec
użytkownik3108764
źródło
Czyli macierz W jest zasadniczo wektorem słów (wyjście algorytmu), a W 'to zupełnie inna macierz, którą wyrzucamy?
Nadav B,
W 'to także wektory słów, które są równie dobre.
user3108764,
1
To jest źle. Zobacz równanie (26) z Xin Rong, Wyjaśnienie uczenia się parametrów Word2Vec. W rzeczywistości . Wektor wyniku wyjściowego będzie taki sam dla wszystkich haseł C. p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj
siulkilulki