Algorytmy osadzania słów pod względem wydajności

11

Próbuję osadzić około 60 milionów fraz w przestrzeni wektorowej , a następnie obliczyć podobieństwo między nimi. Używam sklearn's CountVectorizerz niestandardową wbudowaną funkcją tokenizera, która produkuje unigramy i bigramy. Okazuje się, że aby uzyskać sensowne reprezentacje, muszę pozwolić na ogromną liczbę kolumn, liniowych w liczbie wierszy. Prowadzi to do niewiarygodnie rzadkich matryc i zabija wydajność. Nie byłoby tak źle, gdyby było tylko około 10 000 kolumn, co moim zdaniem jest całkiem rozsądne w przypadku osadzania słów.

Zastanawiam się nad próbą użycia Google'a, word2vecponieważ jestem prawie pewien, że powoduje on znacznie mniejsze wymiary i gęstsze osadzanie. Ale czy są jeszcze jakieś osadzenia, które na pierwszy rzut oka mogą uzasadniać? Kluczowym wymaganiem byłaby możliwość skalowania około 60 milionów fraz (wierszy).

Jestem całkiem nowy w dziedzinie osadzania słów, więc każda rada by pomogła.

Powinienem również dodać, że już używam dekompozycji wartości pojedynczej, aby poprawić wydajność.

Kevin Johnson
źródło
Używasz Spark?
eliasah
1
To jeden z powodów, dla których zasugerowałem na początku Spark. Przepraszam, rozmawiam przez telefon. Nie mam dostępu do żadnych odniesień dotyczących wstępnego osadzania technik PCA.
eliasah
1
Nie jestem pewien, czy jest to przesada z taką ilością danych.
eliasah
1
Usunięcie zbędnych tokenów nie powinno znacznie zmniejszać wymiaru, ponieważ pracujesz nad tekstami. Biorąc pod uwagę słownik 150000 słów, usunięcie słów stop na przykład przyniosłoby ci kilkadziesiąt. To nie pomoże.
eliasah
1
W przeciwnym razie warto rozważyć modelowanie tematów za pomocą ukrytego alokacji Dirichleta, aby zmniejszyć rozmiar wektora tekstu na frazę.
eliasah

Odpowiedzi:

3

Ostatnio pracowano nad dynamicznym przypisywaniem wymiaru word2vec (pomiń gram) za pomocą maszyn Boltzmanna. Sprawdź ten artykuł:

„Nieskończone osadzanie słów” -Nalsnick, Ravi

Podstawową ideą jest pozwolenie, aby Twój zestaw treningowy dyktował wymiar twojego modelu word2vec, co jest karane przez termin regulacyjny związany z rozmiarem wymiaru.

Powyższy artykuł robi to dla słów i byłbym ciekawy, jak dobrze radzi sobie z frazami.

Alex R.
źródło