Robocikowo>ROBOCIKOWO
Architektura

Embeddings (vector representations)

mature
Gęste, niskowymiarowe reprezentacje wektorowe obiektów (słów, tokenów, obrazów, użytkowników) w przestrzeni ciągłej, w której bliskość geometryczna odpowiada bliskości semantycznej.
Kategoria
Architektura
Poziom abstrakcji
Primitive
Poziom operacji
ModelInferencjaTreningDane
Zastosowania
Pierwsza warstwa modeli językowych (token embeddings + positional embeddings)Wyszukiwanie semantyczne i podobieństwo dokumentów (cosine similarity)Retrieval-Augmented Generation (RAG) — fundament etapu retrievaluBazy wektorowe (Pinecone, Weaviate, Qdrant, pgvector, Milvus)Systemy rekomendacyjne (user/item embeddings)Klasteryzacja i wizualizacja dokumentów (t-SNE, UMAP)Transfer learning — pretrenowane embeddings jako punkt startuEmbeddings multimodalne (CLIP) łączące tekst i obraz w jednej przestrzeni

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

Macierz embeddingów: tablica wektorów o kształcie [|V|, d], indeksowana przez ID tokenu
Podobieństwo kosinusowe i odległość euklidesowa jako miary semantyki
Trening kontrastywny — przybliżanie wektorów dla obiektów podobnych, oddalanie różnych
Word2Vec Skip-gram: predykcja kontekstu z centralnego słowa
Word2Vec CBOW: predykcja centralnego słowa z kontekstu
Negative sampling — efektywna aproksymacja softmaxu po dużym słowniku
GloVe: faktoryzacja globalnej macierzy współwystąpień (log-bilinear)
Embeddings kontekstowe — wektor pochodzi z aktywacji warstwy ukrytej w danym kontekście
Pooling (mean, CLS, last-token) do uzyskania embeddingu zdania/dokumentu
Matryoshka — embeddings o zagnieżdżonych poziomach wymiarowości

Mocne strony i ograniczenia

Mocne strony
Ciągłe, gęste reprezentacje — efektywna pamięć i operacje wektorowe
Zachowują relacje semantyczne (synonimia, analogie)
Uniwersalne — pasują do tekstu, obrazu, dźwięku, grafu, multimodalnie
Pretrenowane embeddings drastycznie obniżają zapotrzebowanie na dane downstream
Operacje na embeddings (similarity search) są bardzo szybkie — dot product
Skalowalność — bazy wektorowe obsługują miliardy embeddings z latencją <100 ms
Kompozycyjne — działania arytmetyczne mają interpretację semantyczną
Ograniczenia
Statyczne embeddings nie radzą sobie z polisemią (jedno znaczenie na słowo)
Wrażliwość na zbiór treningowy — odzwierciedlają biasy społeczne i kulturowe
Out-of-vocabulary — Word2Vec/GloVe nie obsługują nieznanych słów
Wysoka wymiarowość zwiększa koszt pamięci (np. 1536-D × miliony dokumentów)
Cosine similarity nie jest doskonałą miarą semantyki — wrażliwa na anizotropię
Embeddings kontekstowe wymagają drogiego pretrenowania dużego modelu
Brak interpretowalności pojedynczych wymiarów
Embeddings z różnych modeli nie są kompatybilne (różne przestrzenie)

Implementacja

Pułapki implementacyjne
Curse of dimensionality w podobieństwie kosinusowymŚrednia

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).

Domain shift — embeddingi z jednej domeny nie transferują do innejŚrednia

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.

Brak aktualizacji embeddingów po zmianie danychŚrednia

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

Oryginalny paper · 2013 · ICLR Workshop / arXiv · Tomas Mikolov
Efficient Estimation of Word Representations in Vector Space (Word2Vec)
Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean
1986
Rumelhart, Hinton i Williams wprowadzają pojęcie rozproszonej reprezentacji (distributed representations) jako alternatywy dla kodowania one-hot.
2003
Bengio et al. publikują "A Neural Probabilistic Language Model" — pierwszy neural language model z uczonymi embeddingami słów.
2013
Mikolov et al. wydają Word2Vec (CBOW + Skip-gram) — embeddings stają się standardowym narzędziem NLP.
2013
Mikolov et al. publikują rozszerzenie Word2Vec z negative sampling i hierarchical softmax — drastyczne przyspieszenie treningu.
2014
Pennington, Socher, Manning publikują GloVe (Global Vectors) — embeddings oparte na globalnej macierzy współwystąpień.
2016
Bojanowski et al. (Facebook AI) wydają fastText — embeddings n-gramowe radzące sobie ze słowami OOV.
2018
ELMo (Peters et al.) i BERT (Devlin et al.) wprowadzają embeddings kontekstowe — jeden wektor zależny od kontekstu zdania.
2019
Reimers i Gurevych publikują Sentence-BERT (SBERT) — efektywne embeddings zdaniowe do retrievalu i klasteryzacji.
2021
OpenAI wydaje pierwsze publiczne API embeddingów (text-embedding-ada-001/002) — początek ery komercyjnych modeli embeddingowych.
2024
Matryoshka Representation Learning (Kusupati et al.) oraz OpenAI text-embedding-3 udostępniają embeddings o regulowanej długości wektora.

Złożoność obliczeniowa

Charakterystyki obliczeniowe
Pamięć: |V| × d × 4 B (np. 50 000 × 1024 × 4 B ≈ 200 MB)
Inferencja embedding lookup: O(1) na token (indeksowanie tablicy)
Similarity search: O(N) naiwnie, O(log N) z ANN (HNSW, IVF, PQ)
Trening Word2Vec na korpusie ~1 mld tokenów: kilka godzin na CPU
Trening modelu kontekstowego (BERT-base): kilka dni na 16 TPU/GPU
Quantization (int8, binary) redukuje pamięć 4–32× kosztem niewielkiej utraty jakości
Wymiarowość typowa: 50–300 (statyczne), 384–1024 (zdaniowe), 1024–4096 (LLM)
Uwagi do benchmarku

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.