Il calcolo della similarità del coseno richiede la misurazione del coseno dell'angolo (teta) tra due vettori diversi da zero in uno spazio di prodotto interno. Questa misurazione produce un punteggio di somiglianza del coseno. I valori di similarità del coseno variano da -1 a 1:
Pensalo come a un confronto fra frecce: se puntano nella stessa direzione, sono molto simili. Quelle perpendicolari non sono correlate, mentre due frecce che puntano in direzioni opposte sono diverse.
Questo approccio angolare è fondamentale per molti sistemi di machine learning (ML), elaborazione del linguaggio naturale (NLP) e intelligenza artificiale (AI). Queste tecnologie si basano su rappresentazioni vettoriali dei dati, il che significa che i dati vengono convertiti in forma numerica per acquisirne il significato e la similarità con altri.
Ad esempio, un chatbot può utilizzare tecniche di embedding di parole per convertire il testo in forma vettoriale, modelli di deep learning per comprendere algoritmi di ricerca di intenti e somiglianze per recuperare la risposta più pertinente da un database. La similarità del coseno abilita ciascuno di questi passaggi.
Newsletter di settore
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e altro con la newsletter Think. Leggi l'Informativa sulla privacy IBM.
L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.
Che si tratti di prevedere la parola successiva in una frase o di suggerire un posto vicino dove mangiare, molti dei sistemi che modellano la nostra vita digitale si basano sulla misurazione della similarità. Tecnologie come i motori di raccomandazione e i modelli linguistici di grandi dimensioni (LLM) utilizzano la similarità del coseno per identificare quali contenuti sono più pertinenti e quali risposte hanno più "senso".
Queste decisioni vengono prese analizzando le relazioni tra i punti dati in set di dati ad alta dimensione o sparsi. Nell'analisi del testo classica, i documenti vengono spesso convertiti in rappresentazioni numeriche utilizzando tecniche come Term Frequency-Inverse Document Frequency (tf-idf), una forma avanzata di bag of words (BoW). Mentre il BoW valuta la frequenza con cui un termine appare in un documento, il tf-idf aggiusta quel punteggio in base alla frequenza o alla rarità della parola in un set di dati più ampio.
I sistemi più avanzati utilizzano reti neurali per generare embedding, cioè rappresentazioni numeriche di punti dati che esprimono diversi tipi di dati come una matrice di numeri. Ad esempio, parole come "medico" e "infermiere" possono apparire vicine l'una all'altra nello spazio vettoriale, il che significa che il modello le vede come correlate. Questi embedding spesso richiedono passaggi aggiuntivi, come l'analisi delle componenti (PCA), per rendere i confronti su larga scala più rapidi ed efficienti.
In entrambi gli approcci, la similarità del coseno misura il grado di allineamento dei vettori risultanti, aiutando i sistemi a identificare modelli e relazioni attraverso set di dati complessi. Nell'NLP, nell'AI e nella data science la similarità del coseno gioca un ruolo centrale per:
I motori di ricerca utilizzano la similarità del coseno per abbinare le query degli utenti ai documenti pertinenti, migliorando sia la precisione che la qualità del posizionamento.
Le reti neurali e gli LLM confrontano gli embedding vettoriali utilizzando la similarità del coseno per valutare la vicinanza semantica tra gli input.
I sistemi di raccomandazione applicano tecniche di ricerca per similarità per suggerire prodotti, media o contenuti in linea con il comportamento e le preferenze degli utenti.
La similarità del coseno supporta la modellazione degli argomenti raggruppando i documenti con temi simili. Queste distribuzioni di argomenti vengono in genere generate utilizzando metodi come l'allocazione latente di Dirichlet (LDA).
Oltre ai casi d'uso del testo, la similarità del coseno supporta anche qualsiasi scenario in cui i modelli multidimensionali devono essere confrontati in modo rapido e accurato, come nel riconoscimento delle immagini, nel rilevamento delle frodi e nella segmentazione dei clienti.
Fondamentalmente, la similarità del coseno misura l'allineamento di due vettori calcolando il coseno dell'angolo tra essi.
Nelle applicazioni del mondo reale, come il confronto di documenti, i dati sono rappresentati come vettori in uno spazio multidimensionale. Ogni dimensione può rappresentare una parola, un attributo o un'azione specifica e il valore in tale dimensione riflette l'importanza o l'importanza dell'elemento.
Per calcolare la similarità del coseno:
La formula può essere rappresentata come:
Similarità del coseno = (A · B) / (||A|| × ||B||)
Dove:
Il punteggio risultante varia da -1 a 1.
Per fare un ulteriore esempio, immagina due parole: " re " e " regina. "
Entrambi vengono utilizzati in contesti simili. Quando viene elaborata da un LLM, ogni parola viene tradotta in un embedding che cattura il significato semantico di un termine in base al suo utilizzo in milioni di frasi. Poiché "re" e "regina" appaiono spesso accanto a parole come "reale", "trono" e "monarca", gli embedding risultanti punteranno quasi nella stessa direzione.
Consideriamo ora una terza parola: "mela". Sebbene possa comparire in alcuni degli stessi documenti, è più spesso associata a termini come "frutta", "frutteto" o "croccante". Il suo vettore punta in una direzione quasi opposta, determinando una similarità del coseno inferiore. Se tracciate su un grafico, le frecce di "re" e "regina" viaggerebbero quasi affiancate, mentre la freccia "mela" si allontanerebbe con un angolo notevole.
Per ottimizzare le prestazioni e supportare un recupero più rapido delle corrispondenze pertinenti, molte organizzazioni memorizzano questi embedding in database vettorialispecializzati, cioè strumenti progettati per indicizzare i vettori ad elevata dimensionalità per migliorare la ricerca e restituire risultati più simili.
La similarità del coseno è solo un approccio in un ecosistema di metriche più ampio. Ogni metrica è progettata per valutare la similarità in modi diversi ed è più adatta a tipi specifici di dati all'interno di uno spazio multidimensionale. Ecco alcuni esempi:
Questa metrica calcola la distanza in linea retta tra due punti in uno spazio vettoriale. È intuitiva e comunemente usata nell'analisi dei dati, soprattutto per confrontare dati numerici o caratteristiche fisiche. Tuttavia, negli spazi ad elevata dimensionalità in cui i vettori tendono a convergere a distanza, la distanza euclidea diventa meno affidabile per attività come il cluster o il recupero delle informazioni.
La somiglianza di Jaccard misura la sovrapposizione tra due set di dati dividendo la dimensione dell'intersezione per la dimensione dell'unione. Viene comunemente applicata a set di dati che coinvolgono dati categorici o binari, come tag, clic o visualizzazioni di prodotti, ed è particolarmente utile per i sistemi di raccomandazione. Sebbene Jaccard si concentri su presenza o assenza, non tiene conto della frequenza o della grandezza.
Il prodotto scalare dei vettori A e B riflette quanto da vicino puntano nella stessa direzione, ma senza normalizzare le grandezze. Questo fattore lo rende sensibile dal punto di vista scalare: i vettori con valori elevati possono apparire più simili anche se la loro direzione è diversa.
La similarità del coseno migliora questa metrica dividendo il prodotto scalare dei vettori per il prodotto delle grandezze dei vettori (la formula di similarità del coseno). La similarità del coseno è quindi più stabile per il confronto di vettori diversi dallo zero di lunghezze variabili, specialmente in set di dati ad alta dimensione.
In pratica, le organizzazioni utilizzano spesso misure di similarità del coseno insieme ad altre metriche a seconda della struttura del set di dati e del tipo di dissomiglianza che vogliono evitare.
Ad esempio, la ricerca per similarità nelle applicazioni di NLP o LLM spesso combina la distanza del coseno con l'embedding di modelli addestrati su deep learning. I calcoli della similarità del coseno sono integrati anche in strumenti open source come Scikit-Learn, TensorFlow e PyTorch, rendendo più facile per i data scientist calcolare la similarità del coseno su set di dati di grandi dimensioni.
Dato il suo ruolo in una miriade di sistemi, la similarità del coseno offre diversi vantaggi rispetto alle metriche di somiglianza tradizionali:
Nonostante i suoi vantaggi, la similarità del coseno non è priva di limiti, tra cui:
Per ottenere il massimo valore dalla similarità del coseno, le organizzazioni possono seguire questi passaggi:
Le organizzazioni possono normalizzare i vettori prima del calcolo per garantire coerenza di scala e risultati validi, soprattutto quando si utilizzano input ad elevata dimensionalità.
Le aziende devono pulire i set di dati per rimuovere o contrassegnare i vettori zero, poiché causeranno errori di "divisione per zero" durante i calcoli della similarità del coseno.
Le organizzazioni possono integrare la similarità del coseno con metriche aggiuntive come la somiglianza di Jaccard o la distanza euclidea quando sono necessarie più dimensioni di similarità.
Prima della distribuzione, le aziende devono valutare le prestazioni di similarità del coseno in ambienti che riflettono condizioni reali, in particolare se utilizzati in sistemi in tempo reale come le application programming interfaces (API).
Le organizzazioni possono utilizzare librerie mature e open source per eseguire in modo efficiente i calcoli di similarità del coseno su larga scala. Ad esempio, Scikit-learn fornisce una funzione di similarità del coseno pronta all'uso attraverso il percorso del modulo Python: sklearn.metriche.pairwise.
In alternativa, la formula può essere codificata direttamente in Python utilizzando NumPy:
“cosine_similarity = np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))”
Come le frecce, la similarità del coseno aiuta le organizzazioni ad allinearsi dal punto di vista direzionale. Che si tratti di abbinare i risultati di ricerca o di informare il processo decisionale basato sui dati, la similarità del coseno può fornire insight potenti e aiutare a personalizzare le esperienze in vari casi d'uso.
Per prosperare, le aziende devono utilizzare i dati per fidelizzare i clienti, automatizzare i processi aziendali e innovare con soluzioni basate sull'AI.
Sblocca il valore dei dati aziendali con IBM Consulting e crea un'organizzazione basata su insight in grado di generare vantaggi aziendali.
Introduzione a Cognos Analytics 12.0, insight basati sull'AI per prendere decisioni migliori.