Jaka jest macierz funkcji w word2vec?

10

Jestem początkującym w sieciach neuronowych i obecnie badam model word2vec. Trudno mi jednak zrozumieć, czym dokładnie jest matryca funkcji.

wprowadź opis zdjęcia tutaj

Rozumiem, że pierwsza matryca to jeden gorący wektor kodowania dla danego słowa, ale co oznacza druga matryca? Mówiąc dokładniej, co oznacza każda z tych wartości (tj. 17, 24, 1 itd.)?

Satrajit Maitra
źródło
Mam pytanie dotyczące W wygenerowanego przez Google, czy możesz podać mi więcej informacji na temat wartości podanych przez Google? jakie są używane te funkcje? dziękuję za pomoc.
hambi

Odpowiedzi:

8

Ideą word2vec jest reprezentowanie słów przez wektor rzeczywistych liczb wymiaru d . Dlatego druga matryca reprezentuje te słowa.

I -tym linii tej macierzy jest reprezentacją wektora ı -tym słowa.

Powiedzmy, że w twoim przykładzie masz 5 słów: [„Lew”, „Kot”, „Pies”, „Koń”, „Mysz”], a następnie pierwszy wektor [0,0,0,1,0] oznacza ciebie rozważają słowo „Koń”, a zatem przedstawienie „Konia” to [10, 12, 19]. Podobnie [17, 24, 1] to przedstawienie słowa „Lew”.

Według mojej wiedzy nie ma „ludzkiego znaczenia” konkretnie dla każdej liczby w tych przedstawieniach. Jedna liczba nie reprezentuje, czy słowo jest czasownikiem, czy nie, przymiotnikiem czy nie ... To tylko ciężary, które zmieniasz, aby rozwiązać problem optymalizacji i nauczyć się reprezentacji twoich słów.

Ten samouczek może pomóc: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/, chociaż myślę, że obraz, który umieściłeś, pochodzi z tego linku.

Możesz również to sprawdzić, co może pomóc w rozpoczęciu korzystania z wektorów słów w TensorFlow: https://www.tensorflow.org/tutorials/word2vec

Pierre L.
źródło
5

TL; DR :

Pierwsza macierz reprezentuje wektor wejściowy w jednym gorącym formacie

Druga matryca reprezentuje masy synaptyczne od neuronów warstwy wejściowej do neuronów warstwy ukrytej

Dłuższa wersja :

„czym dokładnie jest macierz funkcji”

Wygląda na to, że nie zrozumiałeś poprawnie reprezentacji. Macierz ta nie jest macierzą cech, ale macierzą wagi dla sieci neuronowej. Rozważ zdjęcie podane poniżej. Szczególnie zwróć uwagę na lewy górny róg, w którym macierz warstwy wejściowej jest mnożona przez macierz wagi. wprowadź opis zdjęcia tutaj

Teraz spójrz na prawy górny róg. To zwielokrotnienie macierzy InputLayer z iloczynem transpozycji wag to po prostu wygodny sposób na przedstawienie sieci neuronowej w prawym górnym rogu.

Tak więc, aby odpowiedzieć na twoje pytanie, równanie, które opublikowałeś, jest po prostu matematyczną reprezentacją sieci neuronowej używanej w algorytmie Word2Vec.

Pierwsza część, [0 0 0 1 0 ... 0] reprezentuje słowo wejściowe jako jeden gorący wektor, a druga matryca reprezentuje wagę połączenia każdego z neuronów warstwy wejściowej z neuronami warstwy ukrytej.

Gdy Word2Vec trenuje, przesuwa się ponownie do tych wag i zmienia je, aby zapewnić lepszą reprezentację słów jako wektorów.

Po zakończeniu treningu używasz tylko tej macierzy wagi, weź [0 0 1 0 0 ... 0] dla powiedzenia „pies” i pomnóż ją przez ulepszoną macierz wagi, aby uzyskać wektorową reprezentację „psa” w wymiarze = liczba neuronów warstwy ukrytej.

Na przedstawionym diagramie liczba neuronów warstwy ukrytej wynosi 3

Więc prawa strona to w zasadzie wektor słowa.

Kredyty obrazkowe: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks

aneesh joshi
źródło