fbpx

Ewaluacja polskich word embeddingów

 In Python, Technicznie

Czym jest word embedding?

W wielkim skrócie jest to zapis słów w postaci wektorów. W mniejszym skrócie są to słowa umieszczone w przestrzeni wektorowej, przy uwzględnieniu znaczenia wyrazów. Tworzyć embeddingi można za pomocą sieci neuronowych, modeli probabilistycznych, macierzy współzależności itp. Najpopularniejszą formą embeddingów jest Word2Vec, który jest zbiorem dwuwarstwowych modeli sieci neuronowych.

Testowane będą dwa typy word embeddingów: Word2Vec oraz FastText. Najważniejszą różnicą tych dwóch typów modeli jest to, że jeżeli wprowadzimy słowo niebędące w słowniku danego modelu, to Word2Vec zwróci nam błąd, a FastText wygeneruje na bazie podobnych słów nowy wektor.

Procedura ewaluacji

Ewaluacja word embeddingów odbywała się przy pomocy biblioteki gensim. Zapisane one były w formacie Word2Vec, czyli w postaci dokumentu, w którym w każdej linii mamy para: słowo, wektor. Użyte modele zostały udostępnione przez IPIPAN, Facebook reaserch team oraz na repozytorium Kyubyong. Testowanie word embeddingów odbywało się głównie na podstawie analogii słów oraz dodatkowo na parach słów, przy pomocy współczynników korelacji Pearsona i Spearmana.

Do testów analogii został użyty plik udostępniony przez Facebook FastText, a do ewaluacji podobieństw słów wykorzystaliśmy polską wersję dokumentu SimLex999 stworzoną przez IPIPAN. Potrzebował on odrobiny modyfikacji, aby podczas ewaluacji gensim mógł odczytać i dobrze zinterpretować plik. Z pliku zostały też całkowicie usunięte columny ‘nr’ oraz ‘relatedness’. Linki do tych plików można znaleźć na dole artykułu.

Ewaluacja poprzez analogie

Ewaluacja poprzez analogie jest najprostszą i w zasadzie jedną z lepszych technik na sprawdzanie poprawności word embeddingów. Ta metoda analizuje dwie pary słów np.: Polska i Warszawa, Ukraina i Wilno, sprawdzając dystans w przestrzeni wektorowej pomiędzy dwoma wyrazami w każdej możliwej parze i liczy różnice dystansu pomiędzy nimi. W perfekcyjnym modelu ta różnica powinna wynosić 0, ale jednak życie nie jest perfekcyjne, więc zawsze mamy jakiś margines. W pliku udostępnionym przez Facebooka jest 1000 linii po dwie pary słów porozmieszczane po kategoriach takich jak np.: stolica_kraj.

Wczytanie embeddingu i przetestowanie analogii:

Ewaluacja przez pary słów

Ewaluacja par słów odbywa się na obliczeniu korelacji modelu z ocenami podobieństwa ludzi. Metrykami wyjściowymi są dwa współczynniki: Pearsona i Spearmana oraz procent słów poza słownikiem.

Wczytanie embeddingu i przetestowanie par słów:

 

Rezultaty

Top 10 z 110 przetestowanych modeli word embeddingów posortowanych wg poprawności analogii

Lp.NameVocab sizeVector sizeTotal analogy accuracyPearsonSpearmanOut of vocab %
1.facebook-fastext-cc-300.txt20000003000,660,3690,39344,004
2.nkjp+wiki-lemmas-restricted-300-skipg-ns.txt14077623000,620,38750,44441,6016
3.nkjp+wiki-lemmas-all-300-skipg-ns.txt15493223000,610,39730,45671,6016
4.nkjp+wiki-lemmas-restricted-300-cbow-ns.txt14077623000,590,41320,45411,6016
5.nkjp-lemmas-restricted-300-skipg-ns.txt11628453000,580,40310,45081,6016
6.wiki-lemmas-restricted-300-skipg-ns.txt4466083000,580,33110,38932,1021
7.wiki-lemmas-all-300-skipg-ns.txt4730003000,560,34560,40252,1021
8.nkjp-lemmas-all-300-skipg-ns.txt12826213000,560,41270,46341,6016
9.wiki-lemmas-restricted-300-cbow-ns.txt4466083000,550,36470,40442,1021
10.wiki-lemmas-restricted-100-skipg-ns.txt4466081000,530,30080,3482,1021

Jak widać powyżej, najlepszym modelem jest ten od Facebook Fasttext, uczony na zbiorze Common Crawl. Wśród topowych modeli można ponadto zauważyć parę zależności:

  • Embeddingi były uczone na zlematyzowanym datascie (nie znalazłem jednak informacji, czy Facebook Fasttext uczono w ten sam sposób),
  • Mają rozmiar wektorów 300,
  • Występuje tu algorytm sieci neuronowej opartej na Skip-Gram,
  • Algorytm uczący oparty jest na Negative-Sampling.

Na podstawie embeddingów nr 5 i 6 oraz 7 i 8 można stwierdzić, że powiększanie słownika nie ma wpływu na polepszenie poprawności analogi, ponieważ te pary modeli były trenowane na takich samych parametrach. Jednak można zauważyć, że powiększenie słownika polepsza metryki korelacji.

Użyte word embeddingi

IPIPAN Models (others):

Facebook FastText (facebook-fastext-cc-300.txt):

Embeddings from Kyubyong (kyubyongfasttext.txt, kyubyong_word2vec.txt):

Zbiór testowy

Polish Word Analogy:

MSimLex999 Polish:

Zdjęcie pobrane z https://www.pexels.com/photo/view-of-a-row-256428/

Recent Posts

Leave a Comment