Definizione
Un word embedding è una rappresentazione numerica di testo (parole, frasi, documenti) in uno spazio vettoriale ad alta dimensionalità (tipicamente 256-3072 dimensioni), dove testi semanticamente simili sono posizionati vicini tra loro.
A differenza delle rappresentazioni simboliche tradizionali (one-hot encoding), gli embedding catturano relazioni semantiche complesse. Questa proprietà geometrica permette di fare operazioni matematiche su concetti linguistici: calcolare similarità, trovare analogie, raggruppare contenuti per significato.
Come funziona
Gli embedding vengono appresi tramite reti neurali addestrate su grandi corpus testuali. L’evoluzione principale:
Embedding statici (2013-2017)
- Word2Vec (Mikolov et al., 2013): due architetture, Skip-gram (predice il contesto data una parola) e CBOW (predice la parola dato il contesto). Vettori di 100-300 dimensioni.
- GloVe (Pennington et al., 2014): basato su statistiche globali di co-occorrenza. Performance comparabili a Word2Vec.
- FastText (Bojanowski et al., 2017): considera sub-word (n-grammi di caratteri), utile per lingue morfologicamente ricche e parole fuori vocabolario.
Limite: un vettore fisso per parola. “Banco” ha lo stesso embedding in “banco di scuola” e “banco di nebbia”.
Embedding contestuali (2018+)
BERT, GPT e i modelli successivi generano rappresentazioni che dipendono dall’intera frase: la stessa parola produce vettori diversi in contesti diversi.
I modelli di embedding moderni (OpenAI text-embedding-3, Cohere embed-v3, BGE, E5) sono ottimizzati specificamente per retrieval e similarità semantica, con performance misurabili su benchmark come MTEB.
Casi d’uso
RAG (Retrieval-Augmented Generation): documenti indicizzati come embedding in un vector database, query convertita in embedding, retrieval per cosine similarity, contesto passato al LLM.
Ricerca semantica: superare il keyword matching. Una query come “problemi di liquidità” trova documenti su “cash flow negativo” senza match esatto.
Classificazione e clustering: embedding come feature per modelli ML tradizionali o clustering non supervisionato.
Deduplicazione: identificare contenuti quasi identici in grandi corpus.
Considerazioni pratiche
Dimensionalità: 768-1024 dimensioni sono sufficienti per la maggior parte dei casi. Un vettore float32 a 1536 dimensioni occupa 6KB. A scala, storage e latenza diventano rilevanti.
Scelta del modello: dipende da task, lingua, dominio. I benchmark MTEB aggregano 56 task, ma le performance variano per dominio. Modelli open-source (BGE, E5) permettono fine-tuning e deployment on-premise.
Costi API: OpenAI text-embedding-3-small costa ~$0.02/milione di token. Per volumi elevati, self-hosting può ridurre i costi significativamente.
Fraintendimenti comuni
”Embedding simili = sinonimi”
Embedding vicini indicano co-occorrenza contestuale frequente, non sinonimia. “Ospedale” e “paziente” hanno embedding vicini perché appaiono spesso insieme, non perché significano la stessa cosa.
”Un embedding per parola è fisso”
Solo nei modelli statici (Word2Vec, GloVe). Nei modelli moderni come BERT, “banco” ha embedding diversi in “banco di scuola” vs “banco di nebbia”.
”Più dimensioni = sempre meglio”
Oltre 768-1024 dimensioni, i guadagni di accuratezza sono marginali rispetto ai costi aggiuntivi di storage e compute.
Termini correlati
- Vector Database: database ottimizzati per storage e query su embedding
- RAG: pattern architetturale che usa embedding per retrieval
- Tokenization: pre-processing che precede la generazione di embedding
- Transformer: architettura alla base dei modelli di embedding moderni
- NLP: campo più ampio che utilizza embedding come building block
Fonti
- Mikolov, T. et al. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781
- Pennington, J. et al. (2014). GloVe: Global Vectors for Word Representation. EMNLP
- Devlin, J. et al. (2018). BERT: Pre-training of Deep Bidirectional Transformers. arXiv:1810.04805
- MTEB Leaderboard: benchmark per confronto modelli di embedding