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 CountVectorizer
z 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, word2vec
ponieważ 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ść.