Home/ Wiki/ AI/ Embedding e Vector DB

Embedding e Vector Database

Come il significato viene codificato in vettori numerici e come i database vettoriali abilitano la ricerca semantica, la RAG e le applicazioni AI moderne.

Illustrazione di embedding e database vettoriali
Indice dei contenuti
Aggiornato: Aprile 2026 9 min di lettura

Cos'è un embedding

Un embedding è una rappresentazione numerica densa di un concetto (parola, frase, documento, immagine) sotto forma di vettore a N dimensioni. L'intuizione fondamentale è che il significato può essere catturato dalla posizione nello spazio: concetti simili si trovano vicini, concetti diversi lontani.

Punti chiave

  • Un embedding trasforma testo, immagini o audio in un vettore denso dove la vicinanza geometrica equivale alla somiglianza di significato.
  • Gli embedding moderni sono contestuali: la stessa parola assume vettori diversi a seconda della frase, risolvendo la polisemia.
  • La similarità coseno è la metrica standard per misurare quanto due concetti siano semanticamente vicini.
  • I vector database (Pinecone, Weaviate, Chroma, Qdrant, pgvector) indicizzano milioni di vettori e li cercano con algoritmi ANN come HNSW.
  • Embedding e vector database sono i mattoni fondamentali della RAG e della ricerca semantica.

A differenza delle rappresentazioni sparse (one-hot encoding, dove ogni parola è un vettore con un solo "1" e migliaia di "0"), gli embedding sono densi (ogni dimensione contiene un valore floating-point significativo) e a dimensionalità relativamente bassa (tipicamente 256-3072 dimensioni vs centinaia di migliaia nel one-hot). Questo li rende leggeri da memorizzare e veloci da confrontare, anche su collezioni di milioni di elementi.

Gli embedding sono il ponte tra il linguaggio umano e la matematica. Trasformano testo, immagini e audio in punti di uno spazio geometrico dove le operazioni vettoriali corrispondono a relazioni semantiche.

Word2Vec e GloVe

Word2Vec (Mikolov et al., 2013) è stato il punto di svolta che ha reso gli embedding mainstream nel NLP. Due architetture:

  • CBOW (Continuous Bag of Words): predice una parola dal contesto circostante.
  • Skip-gram: predice le parole di contesto data una parola centrale. Funziona meglio con dati limitati e parole rare.

La scoperta sensazionale è stata che gli embedding catturano relazioni semantiche come operazioni aritmetiche: vec("re") - vec("uomo") + vec("donna") ≈ vec("regina"). Questo suggerisce che la rete ha appreso dimensioni di significato implicite come genere, regalità, tempo verbale.

GloVe (Global Vectors, Stanford 2014) combina le statistiche globali di co-occorrenza del corpus con l'apprendimento locale di Word2Vec, ottenendo embedding che catturano meglio le relazioni globali tra parole. La differenza pratica è il punto di partenza: Word2Vec impara scorrendo il testo finestra per finestra, mentre GloVe parte da una matrice di co-occorrenze costruita sull'intero corpus, bilanciando velocità e qualità su grandi raccolte.

Embedding moderni e contestuali

Word2Vec e GloVe producono embedding statici: ogni parola ha un unico vettore. Il limite è evidente: "pesca" (frutto) e "pesca" (attività) hanno lo stesso embedding. I modelli moderni risolvono questo con embedding contestuali:

Modelli di embedding attuali

OpenAI text-embedding-3-large: 3072 dimensioni, stato dell'arte commerciale.

Cohere embed-v3: ottimizzato per ricerca e classificazione multilingue.

BGE / E5 (open source): prestazioni competitive, eseguibili in locale.

Sentence-BERT: embedding a livello di frase, ottimo per similarita semantica.

Questi modelli, basati su Transformer, generano un vettore diverso per la stessa parola in base al contesto, risolvendo il problema della polisemia. Possono produrre embedding per singole parole, frasi intere o interi documenti. Per chi lavora nel marketing, questo significa poter raggruppare automaticamente recensioni, domande dei clienti o contenuti per affinità di significato, senza dipendere dalle sole parole chiave.

Similarità coseno

La similarità coseno è la metrica standard per confrontare embedding. Misura il coseno dell'angolo tra due vettori, indipendentemente dalla loro lunghezza:

cos(A, B) = (A . B) / (||A|| * ||B||)

Valore 1: vettori identici (semanticamente uguali).

Valore 0: vettori ortogonali (non correlati).

Valore -1: vettori opposti (semanticamente opposti).

Alternative includono la distanza euclidea (sensibile alla magnitudine) e il prodotto scalare (dot product, più veloce ma meno robusto). In pratica, per embedding normalizzati (norma = 1), coseno e dot product coincidono. La scelta della metrica deve essere coerente con quella usata in fase di indicizzazione: mescolare metriche diverse tra creazione dell'indice e query porta a risultati inattendibili.

Vector database

Un vector database è un sistema di archiviazione ottimizzato per memorizzare, indicizzare e cercare vettori ad alta dimensionalità in modo efficiente. A differenza di un database relazionale che cerca per corrispondenza esatta, un vector DB trova i vettori più "simili" a una query tramite ricerca Approximate Nearest Neighbor (ANN).

Gli algoritmi di indicizzazione principali sono:

  • HNSW (Hierarchical Navigable Small World): grafi navigabili multilivello. Ottimo rapporto velocita/accuratezza, alto consumo di memoria.
  • IVF (Inverted File Index): partiziona lo spazio in cluster. Veloce con molti vettori, richiede training dell'indice.
  • PQ (Product Quantization): comprime i vettori per ridurre la memoria. Utile per miliardi di vettori.

Confronto: Pinecone, Weaviate, Chroma

DatabaseTipoIdeale perCaratteristiche
PineconeCloud managedProduzione, scalabilitaFully managed, serverless, filtraggio metadati, nessuna infrastruttura
WeaviateOpen source / CloudRicerca ibrida, GraphQLRicerca vettoriale + keyword (BM25), moduli di embedding integrati
ChromaOpen sourcePrototipazione, localeSemplicissimo da usare, in-memory, ideale per sviluppo e POC
QdrantOpen source / CloudPerformance, filtraggioRust-based, molto veloce, filtraggio avanzato su metadati
pgvectorEstensione PostgreSQLIntegrazione con DB esistenteNessun database aggiuntivo, ideale se hai già PostgreSQL

La scelta dipende dal contesto: per un prototipo rapido, Chroma in locale è perfetto; per produzione enterprise, Pinecone o Weaviate offrono scalabilità e gestione semplificata; se hai già PostgreSQL, pgvector evita infrastruttura aggiuntiva. Oltre alle prestazioni pure, conviene valutare il filtraggio sui metadati, i costi a regime e la facilità di backup: in molti progetti reali questi fattori pesano più della velocità di ricerca grezza.

Uso in RAG e ricerca semantica

Embedding e vector database sono i mattoni fondamentali della RAG (Retrieval Augmented Generation). La pipeline è:

  1. I documenti vengono suddivisi in chunk e trasformati in embedding (fase offline).
  2. Gli embedding vengono indicizzati nel vector database.
  3. Quando arriva una query, viene convertita in embedding con lo stesso modello.
  4. Il vector database restituisce i chunk più simili (ricerca per similarità coseno).
  5. I chunk recuperati vengono inseriti nel prompt del LLM come contesto.

Oltre alla RAG, gli embedding alimentano la ricerca semantica (trovare risultati per significato, non solo parole chiave), i sistemi di raccomandazione (prodotti simili in e-commerce), il clustering di documenti e il rilevamento di duplicati o plagio.

La qualità degli embedding determina la qualità del retrieval, che a sua volta determina la qualità delle risposte del LLM. Investire nella scelta del modello di embedding è spesso più impattante della scelta del LLM generatore. Per comprendere come i testi vengono trasformati in token prima di diventare embedding, consulta l'articolo dedicato.

Vuoi imparare ad applicarlo davvero?

Scopri i corsi e la formazione di Federico Boggia su AI, dati e digitale.

Vai ai corsi