Calcolatore della similarità del coseno
Dati di input
| Componente a₁ | 0,5 |
|---|---|
| Componente a₂ | 0,1 |
| Componente a₃ | -0,3 |
| Componente b₁ | 0,4 |
| Componente b₂ | 0,2 |
| Componente b₃ | -0,1 |
Calcolatore della similarità del coseno
Calcola la similarità del coseno e l'angolo tra due vettori a partire dalle loro componenti — il modo standard per misurare quanto due embedding testuali si assomigliano.
Dati di input
Vettore A
Vettore B
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
Similarità del coseno
La similarità del coseno misura quanto due vettori puntano nella stessa direzione. È il coseno dell'angolo compreso tra di essi, quindi dipende solo dal loro orientamento e non dalla loro lunghezza. Il punteggio varia da meno uno, per vettori che puntano in direzioni esattamente opposte, passando per zero, per vettori ad angolo retto, fino a più uno, per vettori allineati nella stessa direzione. È il modo predefinito per confrontare gli embedding testuali, dove la direzione di un vettore codifica il significato e la sua lunghezza è per lo più incidentale. Questo calcolatore opera in tre dimensioni così che l'aritmetica sia facile da seguire, ma la formula e la sua interpretazione sono identiche nelle centinaia o migliaia di dimensioni che un embedding reale occupa.
Come si calcola
Due ingredienti si combinano per dare il punteggio. Il prodotto scalare misura quanto i vettori concordano componente per componente, mentre i moduli ne misurano la lunghezza. Per i vettori e il prodotto scalare è
a⋅b=a1b1+a2b2+a3b3e il modulo di un vettore è la radice quadrata della somma dei quadrati delle sue componenti,
∥a∥=a12+a22+a32Dividere il prodotto scalare per i due moduli annulla l'effetto della lunghezza e lascia soltanto l'angolo:
cosθ=∥a∥∥b∥a⋅bL'angolo stesso si ottiene invertendo il coseno, , il che è talvolta più facile da interpretare del punteggio grezzo: una similarità di 0,92 è più difficile da immaginare di un angolo di circa ventitré gradi.
Esempio svolto
Si confronti con . Il prodotto scalare è
a⋅b=(0,5)(0,4)+(0,1)(0,2)+(−0,3)(−0,1)=0,20+0,02+0,03=0,25I moduli sono
∥a∥∥b∥=0,25+0,01+0,09=0,35=0,5916=0,16+0,04+0,01=0,21=0,4583quindi la similarità del coseno è
cosθ=0,5916×0,45830,25=0,27110,25=0,9221che corrisponde a un angolo di . I due vettori sono vicini ma non identici: puntano nettamente nella stessa direzione, con poco più di venti gradi di separazione. In una ricerca basata su embedding, un punteggio così alto segnalerebbe i due elementi come una forte corrispondenza.
Note e varianti
Quando i vettori vengono normalizzati in anticipo a lunghezza unitaria, entrambi i moduli sono pari a uno e la similarità del coseno si riduce al solo prodotto scalare — motivo per cui i database vettoriali archiviano embedding normalizzati e ordinano i risultati con una singola moltiplicazione e somma. La similarità del coseno è inoltre strettamente legata alla distanza euclidea sulla sfera unitaria: per vettori unitari, una similarità del coseno più alta implica sempre una distanza in linea retta più piccola, quindi i due ordinamenti coincidono. I punteggi sono confrontabili solo all'interno di uno stesso modello di embedding; un valore di 0,8 di un modello non significa la stessa cosa di un 0,8 di un altro.
Applicazione
La similarità del coseno è il passaggio di scoring alla base della ricerca su embedding, che sorregge la generazione aumentata dal recupero. I passaggi che confronta sono prodotti da una fase di suddivisione — si veda Calcolatore del chunking per RAG — e trasformati in vettori il cui costo è stimato da Calcolatore del costo degli embedding. Il numero di questi vettori che un sistema deve confrontare determina la dimensione dell'indice calcolata da Calcolatore della dimensione di un database vettoriale.
Domande frequenti (FAQ)
In che cosa la similarità del coseno differisce dalla distanza euclidea?
La distanza euclidea misura lo scarto in linea retta tra le punte di due vettori ed è sensibile alla loro lunghezza. La similarità del coseno misura soltanto l'angolo tra di essi e ignora del tutto la lunghezza.
Due embedding che puntano nella stessa direzione ma differiscono per modulo hanno una grande distanza euclidea e tuttavia una similarità del coseno vicina a 1. Per gli embedding testuali è la direzione a portare il significato, mentre il modulo è per lo più incidentale, quindi l'angolo è di solito il confronto più informativo.
Quale intervallo assume la similarità del coseno?
Varia da −1 a +1. Un valore di +1 significa che i vettori puntano esattamente nella stessa direzione, 0 che sono ortogonali e non condividono alcuna direzione comune, e −1 che puntano in direzioni opposte.
I modelli di embedding sono spesso addestrati in modo che i testi non correlati si collochino vicino a 0 e i testi correlati ottengano valori ben superiori, anche se la scala esatta dipende dal modello e molti modelli producono raramente valori fortemente negativi.
Perché le ricerche basate su embedding usano la similarità del coseno?
Un embedding codifica il significato come una direzione in uno spazio ad alta dimensionalità, e due passaggi hanno significati simili quando i loro vettori puntano in direzioni simili, indipendentemente dalla loro lunghezza. La similarità del coseno cattura esattamente questo confronto basato sulla sola direzione.
È inoltre economica da calcolare su larga scala: una volta normalizzati i vettori a lunghezza unitaria, la similarità del coseno si riduce a un singolo prodotto scalare, che i database vettoriali possono valutare rapidamente su milioni di voci.
Avvertenze legali
Un punteggio di similarità del coseno ha senso solo rispetto ad altri punteggi dello stesso modello di embedding. Non esiste una soglia universale che marchi due elementi come «simili»; conviene tarare il confronto su esempi tratti dai propri dati prima di trarre conclusioni.
Da provare dopo
Calcolatore del costo degli embedding
Stima il costo una tantum per generare gli embedding di un corpus di documenti partendo dal numero di documenti, dai token per documento e dal prezzo per milione di token del modello di embedding.
Calcolatore della dimensione di un database vettoriale
Stima lo spazio di archiviazione occupato da un indice di embedding partendo dal numero di vettori, dalla dimensione del vettore, dai byte per valore e dal sovraccarico dell'indice aggiunto dalle strutture di ricerca approssimata del vicino più prossimo.