Jednym z częstych zagadnień związanych z Machine Learning jest budowa tzw. word embedding, czyli sposobu reprezentacji wyrazów w postaci liczbowej. Technika ta pojawiła się na początku lat 2000 za sprawą serii prac Yoshuy Bengio, jednak prawdziwy jej rozkwit nastąpił w 2013 roku za sprawą publikacji prac zespołu google pod przewodnictwem Tomasa Mikolova. Zespół opracował a następnie udoskonalił metodę zapisu znaczenia słów w postaci wektorów w wielowymiarowej przestrzeni. Typowo stosowane są przestrzenie 100 i 300 wymiarowe. Zapis ten określony został mianem word2vec. Do jego stworzenia stosuje się dwie metody Continuous Bag of Words (CBoW) oraz Continuous skip-gram. W pierwszej z nich model przewiduje aktualnie uczone słowo na podstawie słów otaczających bez uwzględnienia kolejności (bag of words). W drugiej model wykorzystuje aktualne słowo do prognozowania słów otaczających, przy czym słowom bliższym przyporządkowana jest wyższa waga. Według autorów CBOW jest szybszy ale algorytm skip-gram osiąga lepsze rezultaty dla rzadszych słów.
Reprezentacja wektorowa słów word2vec posiada bardzo ciekawą cechę, mianowicie pozwala ona przeprowadzać na słowach operacje arytmetyczne. Przykładowo:
brat - mężczyzna + kobieta = siostra
W powyższym wyrażeniu w słowie brat odjęty zostanie aspekt męski a dodany kobiecy co powoduje że w wyniku tej operacji otrzymujemy słowo siostra. Czytaj dalej Przygotowanie polskiego modelu word2vec z wykorzystaniem korpusu OpenSubtitles