Comprendere i modelli semantici
Esaminiamo i concetti fondamentali della ricerca semantica:
- Differenze rispetto alla ricerca lessicale standard.
- Che cos'è l'incorporamento di vettori?
- Che cosa fanno i database vettoriali?
Che cos'è la ricerca semantica?
La ricerca lessicale standard, o la ricerca di parole chiave, esegue query sui documenti in base ai caratteri corrispondenti. Ad esempio, la query "light" si abbina al testo "bright light" perché il carattere light viene visualizzato nel documento.
La ricerca lessicale può essere aumentata con la corrispondenza fuzzy; Ad esempio, la query "lights" potrebbe comunque corrispondere al testo "bright light" o all'errato lihgts a causa di un carattere sbagliato (s, mancante o g e h scambiati). Anche se la corrispondenza fuzzy e altre tecniche come stemming sono utili, questa tecnica deve corrispondere a sinonimi o linguaggio semanticamente simile: formulazioni diverse, gergo, vocabolario tecnico e così via. Per fornire i risultati di ricerca più rilevanti con la ricerca lessicale, gli autori devono incorporare parole chiave nei metadati o nel testo stesso (che può essere un'esperienza utente scomoda).
Immettere la ricerca semantica. La ricerca semantica non usa la somiglianza dei caratteri. Usa invece rappresentazioni numeriche dei concetti in parole e frasi. Queste rappresentazioni numeriche sono denominate vettori di incorporamento o semplicemente incorporamenti.
Se due incorporamenti sono numericamente simili, sono anche semanticamente simili. Questa somiglianza è più generale rispetto alla sovrapposizione delle parole chiave di test perché è meno sensibile alla selezione o alla formulazione precisa delle parole chiave.
Per eseguire una ricerca semantica, generare innanzitutto il vettore di incorporamento della query. Confrontare quindi tale vettore con un database di vettori. Gli incorporamenti più vicini all'incorporamento della query sono i documenti più semanticamente simili alla query.
La maggior parte dei casi d'uso del database relazionale non comporta l'archiviazione di vettori n-dimensionali e il calcolo della distanza numerica tra di esse. Una ricerca semantica efficiente richiede funzionalità di database vettoriali .

Incorporamenti
Un embedding è una rappresentazione numerica della semantica. Gli incorporamenti sono rappresentati come vettori n-dimensionali: matrici di n numeri. Ogni dimensione rappresenta una qualità semantica determinata dal modello di incorporamento.

Se due vettori di incorporamento puntano in direzioni simili, rappresentano concetti simili, ad esempio "brillante" e "soleggiato". Se puntano l'uno dall'altro, rappresentano concetti opposti, ad esempio "triste" e "felice". La struttura del modello di incorporamento e i dati di training determinano ciò che viene considerato simile e diverso.
Gli incorporamenti possono essere applicati al testo e a qualsiasi tipo di dati, ad esempio immagini o audio. La parte critica sta trasformando i dati in vettori di incorporamento n dimensionali in base a un modello o a una funzione. La somiglianza numerica degli embedding funge da proxy per la somiglianza semantica dei loro dati corrispondenti.
La somiglianza numerica di due vettori n-dimensionali v1 e v2 viene data dal relativo prodotto scalare, scritto v1·v2. Per calcolare il prodotto scalare, moltiplicare i valori di ogni dimensione in base alla coppia, quindi sommare il risultato:
dot_product(v1, v2) = SUM(
v1[0] * v2[0],
v1[1] * v2[1],
...,
v1[n-1] * v2[n-1],
v1[n] * v2[n]
)
Poiché gli incorporamenti sono vettori unità (vettori di lunghezza 1), il prodotto scalare è uguale alla somiglianza del coseno dei vettori, un valore compreso tra -1 (direzioni esattamente opposte) e 1 (esattamente la stessa direzione). I vettori con una somiglianza coseno pari a zero sono ortogonali: semanticamente non correlati.
È possibile visualizzare spazi n-dimensionali proiettandoli in uno spazio tridimensionale usando l'analisi dei componenti principale (PCA). PCA è una tecnica standard per ridurre le dimensioni vettoriali. Il risultato è una proiezione semplificata ma visualizzabile dello spazio n-dimensionale. Il rendering degli incorporamenti dei documenti in questo modo mostrerà che i documenti più simili sono raggruppati in cluster, mentre i documenti più diversi sono più lontani.
Data queste definizioni, l'esecuzione di una ricerca semantica di una query su una raccolta di incorporamenti di documenti è matematicamente semplice:
- Generare l'incorporamento della query usando un modello linguistico.
- Prendere il prodotto scalare dell'incorporamento della query e confrontarlo con l'incorporamento precalcolato di ogni documento.
- Ordinare i prodotti con punti, i numeri da -1 a 1.
- I documenti più rilevanti (semanticamente simili) hanno i punteggi più alti e i documenti meno rilevanti (semanticamente diversi) hanno i punteggi più bassi.
Sebbene sia semplice matematicamente, questa non è una query semplice o efficiente in un database relazionale. Per archiviare ed elaborare questo tipo di query di somiglianza vettoriale, usare un database vettoriale.
Database vettoriali
Un database vettoriale ottimizza l'archiviazione e il calcolo di vettori molti-dimensionali, ad esempio incorporamenti. In particolare, i database vettoriali forniscono calcoli dot-product rapidi e accurati per eseguire una query di somiglianza vettoriale.
Le ricerche di somiglianza vettoriale hanno diversi casi d'uso:
- trovare immagini simili all'incorporamento dell'immagine di query
- trovare documenti semanticamente simili al testo della query
- trovare prodotti con caratteristiche e valutazioni simili per un sistema di raccomandazione
La ricerca semantica interroga il database vettoriale per ottenere la somiglianza dell'incapsulamento della query con ciascun incapsulamento archiviato. Le applicazioni possono quindi recuperare i dati corrispondenti agli incorporamenti.
Sono disponibili molti database vettoriali nativi e estensioni di database tra cui scegliere. I servizi di Azure seguenti consentono di soddisfare le esigenze del database vettoriale: