2015-04-01 2 views
7

Próbuję zrozumieć, dlaczego model skipgram word2vec ma 2 reprezentacje dla każdego słowa (ukryte przedstawienie, które jest osadzaniem słowa) i reprezentację wyjściową (zwaną również osadzaniem słowa kontekstowego). Czy jest to generalnie, gdy kontekstem może być cokolwiek (nie tylko słowa), czy jest bardziej fundamentalny powód?Dlaczego słowo 2vec używa 2 reprezentacji dla każdego słowa?

Odpowiedz

0

Model word2vec można uważać za uproszczony model sieci neuronowej z jedną ukrytą warstwą i bez aktywacji nieliniowej . Model podany w słowie próbuje przewidzieć słowa kontekstowe, w których się pojawia.

Ponieważ jest to sieć neuronowa, potrzebuje wejścia, wyjścia i funkcji celu. Dane wejściowe i wyjściowe to tylko jedno gorące kodowanie słów, a funkcją celu jest utrata krzyżowej entropii z aktywacją softmax na wyjściu.

Dane wejściowe do ukrytej macierzy masowej mnożą się za pomocą jednego, zaszyfrowanego wejścia kodującego, wybierając unikalną kolumnę dla każdego słowa. Podobnie, ukryta matryca wyjściowa okazuje się, że może być interpretowana jako wiersze odpowiadające każdemu słowu kontekstowemu (to samo gorące wyjście kodowania odtwarza tutaj część).

7

polecam przeczytać ten artykuł o Word2Vec: http://arxiv.org/pdf/1402.3722v1.pdf

Dają intuicję, dlaczego dwie reprezentacje w przypisie: nie jest prawdopodobne, że to słowo pojawia się we własnym kontekście, więc co chcesz zminimalizować prawdopodobieństwo p (w | w). Ale jeśli użyjesz tych samych wektorów dla kontekstu w niż dla w, jako słowa środkowego, nie możesz zminimalizować p (w | w) (obliczanego przez produkt kropkowany), jeśli chcesz utrzymać osadzanie słów w kole jednostki.

Ale to tylko intuicja, nie wiem, czy istnieje wyraźne uzasadnienie do tego ...

IMHO, prawdziwy powód, dla którego stosują różne reprezentacje dlatego manipulować podmioty o różnym charakterze. "pies" jako kontekst nie może być uważany za taki sam jak "pies" jako słowo kluczowe, ponieważ nim nie jest. Na ogół manipulujesz dużymi matrycami zdarzeń (słowem, kontekstem), próbując zmaksymalizować prawdopodobieństwo tych par, które faktycznie się zdarzają. Teoretycznie można użyć jako kontekstów bigrams, próbując zmaksymalizować na przykład prawdopodobieństwo (słowo = "za", kontekst = "zmaksymalizować"), a ty przypiszesz reprezentację wektorową do "maksymalizacji". Nie robimy tego, ponieważ byłoby zbyt wiele reprezentacji, aby obliczyć, i mielibyśmy rzadką matrycę, ale myślę, że idea jest tutaj: fakt, że używamy "1-gramów" jako kontekstu jest tylko szczególnym przypadkiem wszystkich rodzajów kontekstu, z których moglibyśmy skorzystać.

Tak to widzę, a jeśli jest źle, proszę poprawić!