Jak użyć osadzania wyrazów, aby zamapować dokument na wektor cech, odpowiedni do zastosowania w uczeniu nadzorowanym?
Słowo osadzanie odwzorowuje każdy wyraz w wektor , gdzie jest około niezbyt dużą ilość (na przykład 500). Popularne osadzanie słów to word2vec i Glove .
Chcę zastosować nadzorowaną naukę do klasyfikowania dokumentów. Obecnie mapuję każdy dokument na wektor cech za pomocą reprezentacji worka słów, a następnie stosuję gotowy klasyfikator. Chciałbym zastąpić wektor cech worka słów czymś opartym na istniejącym wstępnie wyszkolonym osadzaniu słów, aby skorzystać z wiedzy semantycznej zawartej w osadzaniu słów. Czy jest to standardowy sposób?
Mogę sobie wyobrazić pewne możliwości, ale nie wiem, czy jest coś, co ma największy sens. Podejścia kandydackie, które rozważałem:
Mógłbym obliczyć wektor dla każdego słowa w dokumencie i uśrednić je wszystkie. Wydaje się jednak, że może to spowodować utratę dużej ilości informacji. Na przykład, w przypadku reprezentacji worków słów, jeśli istnieje kilka słów, które są bardzo istotne dla zadania klasyfikacji, a większość słów jest nieistotna, klasyfikator może łatwo się tego nauczyć; jeśli uśrednię wektory dla wszystkich słów w dokumencie, klasyfikator nie ma szans.
Łączenie wektorów dla wszystkich słów nie działa, ponieważ nie prowadzi do wektora cech o stałym rozmiarze. Wydaje się to również złym pomysłem, ponieważ będzie nadmiernie wrażliwy na konkretne umiejscowienie słowa.
Mógłbym użyć słowa osadzania, aby zebrać słownictwo wszystkich słów w ustalony zestaw klastrów, powiedzmy, 1000 klastrów, gdzie używam podobieństwa cosinus w wektorach jako miary podobieństwa słów. Następnie zamiast woreczka słów mógłbym mieć worek klastrów: wektor cech, który dostarczam do klasyfikatora, może być wektorem 1000, gdzie ty składnik liczy liczbę słów w dokumencie, który są częścią klastra .
Biorąc pod uwagę słowo , te osadzenia słów pozwalają mi obliczyć zestaw 20 najbardziej podobnych słów w 1 , … , w 20 i ich wynik podobieństwa s 1 , … , s 20 . Za pomocą tego mógłbym dostosować wektor cech przypominający worek słów. Kiedy widzę słowo w , oprócz zwiększania elementu odpowiadającego słowu w o 1 , mogę również zwiększać element odpowiadający słowu w 1 o s 1 , zwiększając element odpowiadający słowu w 2 o i tak dalej.
Czy jest jakieś konkretne podejście, które może dobrze działać przy klasyfikacji dokumentów?
Nie szukam paragraph2vec ani doc2vec; te wymagają szkolenia na dużym korpusie danych, a ja nie mam dużego korpusu danych. Zamiast tego chcę użyć osadzania istniejących słów.