Ricerca vettoriale (ricerca semantica)
Definizione rapida
La ricerca vettoriale è un metodo di recupero che restituisce gli elementi i cui embedding sono più vicini all'embedding della query, quindi i risultati corrispondono per significato piuttosto che per parole chiave condivise. È il motore abituale della ricerca semantica.
In questa pagina
Come funziona la ricerca vettoriale
Ogni documento, passaggio o prodotto viene trasformato in un embedding e memorizzato in un indice. Al momento della query, la domanda viene embedded con lo stesso modello, e l'indice restituisce i vettori più vicini, solitamente misurati tramite similarità coseno. Un cliente che chiede “qualcosa di caldo per sciare” può trovare una giacca descritta come “shelter invernale isolato e impermeabile” anche se nessuna parola corrisponde.
Confrontare una query con milioni di vettori uno per uno sarebbe lento, quindi gli indici utilizzano algoritmi di vicinato approssimato. HNSW, un grafo stratificato descritto da Malkov e Yashunin nel 2016, è uno dei più utilizzati; scambia una piccola perdita di accuratezza per una ricerca molto veloce. Estensioni open-source come pgvector portano questi indici a PostgreSQL.
Ricerca semantica vs ricerca per parole chiave
La ricerca per parole chiave (BM25, testo completo, corrispondenza trigrammi) è precisa sui termini esatti: un riferimento di prodotto, un marchio, un codice di errore. Fallisce sui sinonimi e sulle parafrasi. La ricerca vettoriale è l'opposto: forte sul significato, debole sulle stringhe esatte e sugli identificatori rari.
Ecco perché la maggior parte dei sistemi di produzione utilizza la ricerca ibrida: esegui entrambe, quindi unisci o riordina i risultati. La ricerca sul recupero denso, come il lavoro del 2020 di Karpukhin e colleghi sulla risposta a domande, ha dimostrato quanto il recupero semantico migliori il richiamo, e i professionisti hanno da allora imparato quanto ancora benefici da un partner di parole chiave.
Trappole
La ricerca vettoriale restituisce sempre qualcosa, anche quando non esistono risultati pertinenti, quindi un sistema ha bisogno di una soglia di rilevanza o di un controllo prima di utilizzare i risultati. Non comprende numeri o vincoli: “sotto i 50 euro, disponibile, taglia M” necessita di filtri reali su dati strutturati. E la qualità dipende da come è stato suddiviso il contenuto: passaggi troppo lunghi offuscano il significato, passaggi troppo brevi perdono il contesto.
Ricerca vettoriale in AI SmartTalk
AI SmartTalk memorizza gli embedding in PostgreSQL con pgvector, con un indice HNSW sui documenti dei prodotti, e combina la similarità vettoriale con la ricerca trigram e full-text. Per i prodotti, lo strumento di ricerca dell'assistente aggiunge filtri strutturati su prezzo, disponibilità, marca, categoria e attributi variante, in modo che una domanda semantica e un vincolo preciso possano essere risposti insieme.
Domande frequenti
La ricerca semantica è la stessa cosa della ricerca vettoriale?
La ricerca semantica è l'obiettivo: trovare risultati per significato. La ricerca vettoriale sugli embedding è il modo più comune per raggiungerlo, spesso combinata con la ricerca per parole chiave.
Ho bisogno di un database vettoriale dedicato?
Non necessariamente. Estensioni come pgvector aggiungono indici vettoriali a PostgreSQL, il che è sufficiente per molte applicazioni e mantiene i vettori accanto al resto dei dati.
Cos'è la ricerca ibrida?
Una ricerca che esegue insieme la ricerca vettoriale e la ricerca per parole chiave e unisce i risultati, in modo da gestire sia domande parafrasate che termini esatti come riferimenti ai prodotti.