0Pricing
AI Agents · Lezione

Similarità coseno per il retrieval

La similarità coseno misura l'angolo tra due vettori: è la metrica di distanza standard per la ricerca semantica.

Similarità coseno per il retrieval è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Misurare la somiglianza

Quanto sono vicini due vettori? Tre metriche di distanza comuni:

  • Similarità coseno — angolo tra i vettori
  • Prodotto scalare — proiezione
  • Distanza euclidea (L2) — distanza in linea retta

Per gli embedding testuali, il coseno è l’impostazione predefinita.

Formula della similarità coseno

Per i vettori A e B:

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

Il risultato è compreso tra -1 e 1:

  • 1 = direzione identica
  • 0 = ortogonali (non correlati)
  • -1 = opposti

In Python con NumPy

Implementazione semplice:

import numpy as np

def cosine_similarity(a, b):
    a = np.array(a)
    b = np.array(b)
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

print(cosine_similarity(vec_apple, vec_orange))   # high
print(cosine_similarity(vec_apple, vec_car))      # low

Vettori già normalizzati

Se i Suoi embedding sono già normalizzati (come quelli di OpenAI), la similarità coseno coincide con il prodotto scalare e può saltare la divisione:

def cosine_normalized(a, b):
    return np.dot(a, b)   # faster

Recupero Top-K

Per trovare i K documenti più simili a una query, calcoli la similarità con ogni documento e ordini i risultati:

def topk(query_vec, doc_vecs, k=5):
    scores = [(np.dot(query_vec, v), i) for i, v in enumerate(doc_vecs)]
    scores.sort(reverse=True)
    return scores[:k]

Scalabilità

Il recupero Top-K ingenuo ha complessità O(N) per query: va bene per 10k documenti, ma è lento con 10M. Per corpora di grandi dimensioni, utilizzi indici approximate nearest neighbour (ANN): HNSW, IVF, FAISS.

Perché non la distanza euclidea?

La distanza L2 considera significativa la LUNGHEZZA del vettore. Per gli embedding, la direzione conta più della magnitudine: ecco perché la similarità coseno è preferibile.

(Per i vettori normalizzati, L2 e coseno producono lo stesso ordinamento, quindi è indifferente.)

Prodotto scalare e coseno

Se i vettori sono già normalizzati, il prodotto scalare = coseno ed è più veloce (non richiede divisioni). La maggior parte dei sistemi in produzione usa il prodotto scalare su vettori normalizzati.

A Tiny End-to-End Retrieval

docs = ['Python is a programming language', 'Pizza is Italian food', 'The Eiffel Tower is in Paris']
doc_vecs = [embed(d) for d in docs]

query_vec = embed('What is Python?')
scores = [(cosine_similarity(query_vec, v), d) for v, d in zip(doc_vecs, docs)]
scores.sort(reverse=True)
for s, d in scores:
    print(f'{s:.3f}  {d}')
# 0.83  Python is a programming language
# 0.45  Pizza is Italian food
# 0.41  The Eiffel Tower is in Paris

Recupero ibrido

Combini la similarità coseno con la ricerca per parole chiave (BM25) per ottenere il meglio di entrambi: ricerca semantica e corrispondenza esatta. Oggi la maggior parte dei sistemi in produzione usa il recupero ibrido.

Filtraggio basato su soglia

Scarti i risultati al di sotto di una soglia di similarità per evitare di fornire all'LLM contesto irrilevante:

results = [r for r in retrieved if r.score > 0.7]

Intervallo della similarità coseno

Qual è l'intervallo dei valori della similarità coseno?

Riepilogo

La similarità coseno è la metrica standard per il recupero basato su embedding. La combini con la ricerca ibrida e con ANN per sistemi su scala produttiva.

Domande Frequenti

La lezione «Similarità coseno per il retrieval» è gratuita?

Sì — il testo completo di «Similarità coseno per il retrieval» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Similarità coseno per il retrieval»?

La similarità coseno misura l'angolo tra due vettori: è la metrica di distanza standard per la ricerca semantica. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Similarità coseno per il retrieval»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Cosa sono gli embedding (rappresentazioni vettoriali)
  2. Generare embedding con text-embedding-3
  3. Similarità coseno per il retrieval
  4. Confronto tra modelli di embedding (OpenAI, Cohere e OSS)
← Torna a AI Agents