Embeddings (vector representations)
Jak działa
Embeddings statyczne (Word2Vec Skip-gram): 1. Dla każdego słowa centralnego w oknie kontekstu przewiduj słowa otoczenia (Skip-gram) lub odwrotnie (CBOW). 2. Trening przez negative sampling: dla każdej prawdziwej pary (słowo, kontekst) dopasuj modele — podnieś P(kontekst|słowo) i obniż P(negatyw|słowo) dla losowych negatywów. 3. Wynikowe wektory embeddings = wiersze macierzy wag warstwy wejściowej.
Embeddings kontekstowe (Transformer): 1. Token Embedding Layer: każdy token ID mapowany do wektora d_model z macierzy [|V| × d_model]. 2. Do embeddingu tokenu dodawane jest positional embedding (sinusoidalne lub RoPE). 3. Kolejne warstwy Transformera transformują te reprezentacje kontekstowo — każdy token „widzi" wszystkie pozostałe przez self-attention. 4. Pooling wyjścia: CLS token, mean pooling lub last token dają embedding całego zdania/dokumentu.
Wyszukiwanie semantyczne: 5. Zapytanie i dokumenty są kodowane do przestrzeni embeddingów tym samym modelem. 6. Podobieństwo obliczane jako cosine similarity (lub dot product dla znormalizowanych wektorów) — HNSW lub IVF do ANN search.
Rozwiązany problem
Modele ML nie mogą operować bezpośrednio na obiektach dyskretnych (słowach, tokenach, kategoriach) — wymagają liczbowej reprezentacji wejścia. Kodowanie one-hot tworzy bardzo rzadkie, wysokowymiarowe wektory bez żadnej informacji o podobieństwie semantycznym (cosine distance między dowolnymi dwoma słowami wynosi 0). Embeddings rozwiązują oba problemy: reprezentują obiekty jako gęste wektory w ciągłej przestrzeni, gdzie bliskość geometryczna odzwierciedla bliskość semantyczną.
Kluczowe mechanizmy
Mocne strony i ograniczenia
Implementacja
Przy bardzo wysokich wymiarach (np. 4096D) różnice kosinusowe między wektorami maleją — wszystkie wektory wydają się podobne. Wymaga normalizacji i ewentualnej redukcji wymiarów (PCA, UMAP).
Model embeddingów uczony na tekstach ogólnych (np. Wikipedia) generuje słabe reprezentacje dla tekstów specjalistycznych (medycyna, prawo, kod). Wymaga fine-tuningu lub dedykowanego modelu.
Embeddingi są statyczne po wygenerowaniu — zmiana dokumentu źródłowego nie aktualizuje automatycznie jego embeddingu w wektorowej bazie danych. Wymaga systemu invalidacji i re-embeddingu.
Ewolucja
Złożoność obliczeniowa
Standardowe benchmarki: word-analogy (Google Analogy, 19 558 par; Mikolov 2013), word-similarity (WordSim-353, SimLex-999), MTEB (Massive Text Embedding Benchmark, ~58 zadań). Word2Vec 300-D na Google Analogy osiąga ok. 72% top-1. SBERT poprawia korelację Spearmana na STS Benchmark do ~0,85. W MTEB (2024) wiodące modele (Cohere Embed v3, OpenAI text-embedding-3-large, BGE-M3) osiągają średnią >65, podczas gdy klasyczne TF-IDF i Word2Vec-mean są wyraźnie niżej (~40).
Wymagania sprzętowe
Generowanie embeddingów dla dużych zbiorów dokumentów (batch encoding) jest znacznie szybsze na GPU — modele jak text-embedding-3 lub BGE-M3 korzystają z CUDA.