ML Atlas

08 · LLM · 4 min czytania · Interaktywne · aktualizacja

Czym są embeddingi słów i dlaczego podobne słowa mają podobne wektory?

W skrócie

Embedding słowa to wektor liczb, w którym słowa używane w podobnych kontekstach leżą blisko siebie. To podstawa, na której LLM buduje znaczenie.

Co to jest

Embedding słowa (zanurzenie, wektor słowa) to gęsty wektor kilkuset liczb przypisany słowu lub tokenowi, wyuczony tak, by słowa o podobnym użyciu miały podobne wektory. Podobieństwo mierzy się zwykle cosinusem kąta między wektorami. W LLM pierwsza warstwa to właśnie tablica embeddingów: numer tokenu wybiera z niej wiersz.

Wcześniej słowa kodowano „gorącojedynkowo” (one-hot): słownik 50 000 słów to wektor 50 000 zer z jedną jedynką. Taki zapis nie niesie żadnej informacji o znaczeniu — „kot” jest tak samo daleko od „psa”, jak od „parlamentu”. Embedding upycha słowo w kilkuset wymiarach i przez to zmusza model do uogólniania: co wie o „kocie”, częściowo przenosi na „psa”.

Pojedyncze wymiary zwykle nie mają nazw. Znaczenie siedzi w kierunkach i odległościach w całej przestrzeni, a nie w osobnych współrzędnych.

Mechanizm — dlaczego tak działa

Hipoteza dystrybucyjna. Słowa występujące w podobnych kontekstach mają podobne znaczenie — „poznasz słowo po towarzystwie”. Jeśli „kot” i „pies” pojawiają się obok „karmić”, „weterynarz”, „sierść”, to model, który przewiduje kontekst ze słowa (albo słowo z kontekstu), osiągnie niższą stratę, gdy da im podobne wektory. Podobieństwo wektorów jest więc skutkiem ubocznym zadania predykcyjnego, a nie czymś, czego uczymy wprost.

word2vec. Mikolov i in. (2013) zaproponowali dwa proste modele: CBOW przewiduje słowo ze średniej wektorów sąsiadów, a skip-gram przewiduje sąsiadów ze słowa. Uczenie zbliża wektory słów, które naprawdę współwystępują, i oddala je od losowo wylosowanych „negatywnych” słów. GloVe (Pennington i in., 2014) dochodzi do podobnych wektorów inną drogą — przez faktoryzację macierzy współwystąpień. Oba podejścia w gruncie rzeczy kompresują statystykę „kto z kim występuje”.

Arytmetyka znaczeń. Słynny wynik: wektor(król) − wektor(mężczyzna) + wektor(kobieta) leży blisko wektora(królowa). Działa to, bo różnica „mężczyzna → kobieta” jest w przybliżeniu stałym kierunkiem, powtarzającym się w wielu parach. Trzeba jednak uczciwie dodać, że w standardowej ewaluacji wyklucza się słowa wejściowe z odpowiedzi; bez tego najbliższym słowem często jest po prostu „król” (Nissim i in., 2020). Analogie są więc tendencją, nie prawem.

Embeddingi statyczne a kontekstowe. word2vec daje jeden wektor na słowo, więc „zamek” do drzwi i „zamek” królewski dzielą wektor. W LLM tablica embeddingów też jest statyczna, ale już po pierwszych warstwach samouwagi wektor tokenu zależy od otoczenia — to embedding kontekstowy. Właśnie te kontekstowe reprezentacje wykorzystuje się w wyszukiwaniu semantycznym.

Ograniczenia. Embeddingi dziedziczą uprzedzenia z tekstu: Bolukbasi i in. (2016) pokazali, że w popularnych wektorach zawody układają się wzdłuż osi płci. Rzadkie słowa mają słabo wyuczone wektory. Podobieństwo dystrybucyjne nie odróżnia synonimów od antonimów — „gorący” i „zimny” występują w bardzo podobnych kontekstach.

Na przykładzie

Zbudujmy zabawkowe wektory 4-wymiarowe (wymiary: władza, męskość, kobiecość, jedzenie): król = (0,9; 0,8; 0,1; 0), królowa = (0,9; 0,1; 0,8; 0), mężczyzna = (0,1; 0,9; 0,1; 0,1), kobieta = (0,1; 0,1; 0,9; 0,1), jabłko = (0; 0,1; 0,1; 0,9). Cosinus „król–mężczyzna” wynosi 0,74, „król–królowa” 0,66, a „król–jabłko” tylko 0,08. Słowa o wspólnych cechach są blisko, niezwiązane — prawie prostopadle.

Teraz analogia: król − mężczyzna + kobieta = (0,9; 0; 0,9; 0). Cosinus tego wektora z „królową” to 0,995, z „kobietą” 0,77, z „królem” 0,59. Odjęcie „męskości” i dodanie „kobiecości” przeniosło nas dokładnie tam, gdzie trzeba. W prawdziwym modelu wymiary nie mają nazw i jest ich kilkaset, ale geometria działa podobnie. Skalę pokazuje GPT-2 small: tablica 50 257 tokenów × 768 wymiarów to 38,6 mln parametrów, blisko jednej trzeciej całego modelu.

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: zabawkowe wektory słów z 48 ręcznie napisanych polskich zdań (współwystąpienia w oknie ±2, PPMI, PCA do 8 wymiarów): mapa, najbliżsi sąsiedzi według cosinusa i analogia król − mężczyzna + kobieta ≈ królowa (cos 0,913).

W praktyce

  • Klasyczne wektory słów trenuje się w gensim (Word2Vec, FastText); fastText składa wektor z n-gramów znakowych, co dobrze działa dla polskiej fleksji.
  • W PyTorch tablica embeddingów to torch.nn.Embedding(num_embeddings, embedding_dim) — zwykła macierz wag uczona gradientem.
  • Do wyszukiwania zdań i dokumentów używa się dziś modeli embeddingowych zdań (np. przez sentence-transformers), a nie uśrednionych wektorów słów.
  • Przed porównywaniem normalizuj wektory do długości 1; wtedy iloczyn skalarny jest równy cosinusowi.
  • Typowy błąd: wizualizowanie embeddingów w 2D (t-SNE, UMAP) i wyciąganie wniosków z odległości między odległymi skupiskami — te metody zachowują głównie lokalne sąsiedztwo.

Najczęstsze pytania

Ile wymiarów powinien mieć embedding?
Klasyczne wektory słów mają zwykle 100–300 wymiarów, modele zdaniowe 384–1024, a ukryte stany dużych LLM kilka tysięcy. Więcej wymiarów to większa pojemność, ale też więcej danych potrzebnych do nauki i więcej pamięci w indeksie.
Czym różni się embedding od kodowania one-hot?
One-hot jest rzadki, ogromny i nie zawiera podobieństw. Embedding jest gęsty, krótki i wyuczony tak, by podobieństwo wektorów odzwierciedlało podobieństwo użycia słów.
Czy embeddingi rozumieją znaczenie?
Kodują statystykę współwystępowania, która częściowo pokrywa się ze znaczeniem. Dlatego dobrze łapią tematykę i podobieństwo, a gorzej negację, liczby i relacje logiczne.

Źródła

  • Mikolov T. i in., 2013, „Efficient Estimation of Word Representations in Vector Space”, arXiv:1301.3781.
  • Mikolov T. i in., 2013, „Distributed Representations of Words and Phrases and their Compositionality”, NeurIPS 2013.
  • Pennington J., Socher R., Manning C., 2014, „GloVe: Global Vectors for Word Representation”, EMNLP 2014.
  • Bolukbasi T. i in., 2016, „Man is to Computer Programmer as Woman is to Homemaker? Debiasing Word Embeddings”, NeurIPS 2016.
  • Nissim M., van Noord R., van der Goot R., 2020, „Fair Is Better than Sensational: Man Is to Doctor as Woman Is to Doctor”, Computational Linguistics 46(2).

Zobacz też