- Similaritatea cosinusului măsoară alinierea direcțională a doi vectori prin calcularea cosinusului unghiului dintre ei, ignorând magnitudinea lor generală.
- Această metrică este esențială pentru inteligența artificială modernă, permițând căutarea semantică, sistemele de recomandări personalizate și procesarea încorporărilor de înaltă dimensiune.
- În timp ce similaritatea standard a cosinusului tratează caracteristicile ca fiind independente, versiunile avansate, precum Soft Cosine, integrează relațiile dintre caracteristici pentru a îmbunătăți precizia.
V-ați întrebat vreodată cum pare să știe Spotify exact ce melodie va fi potrivită sau cum înțelege Google că interogarea dvs. de căutare înseamnă ceva anume, chiar dacă nu folosiți cuvintele exacte? O mare parte din magie se întâmplă în culise, folosind încorporări vectoriale . În loc să trateze cuvintele sau elementele ca text simplu, inteligența artificială le transformă în puncte într-un spațiu masiv, multidimensional, și aici intervine conceptul de similaritate cosinus pentru a da sens la toate acestea.
Practic, acest truc matematic permite computerelor să determine cât de „aproape” sunt două lucruri uitându-se la unghiul dintre vectorii lor . Nu contează dacă un vector este mult mai lung decât celălalt; contează doar dacă indică în aceeași direcție generală. Este o schimbare totală pentru Prelucrarea Limbajului Natural (NLP) și motoarele de recomandare, deoarece se concentrează pe sensul semantic, mai degrabă decât doar pe potrivirea caracterelor.
Elementele de bază ale calculului

Pentru a înțelege cum funcționează acest lucru, trebuie să înțelegeți că fiecare element de date - fie că este vorba de un cuvânt sau de un film - este reprezentat ca un vector, unde fiecare dimensiune este un atribut specific. Pentru a găsi similaritatea, urmăm câțiva pași specifici. Mai întâi, calculăm produsul scalar , care implică înmulțirea valorilor corespunzătoare din ambii vectori și însumarea lor pentru a vedea cât de aliniate sunt. Apoi, determinăm magnitudinea (sau lungimea) fiecărui vector luând rădăcina pătrată a sumei componentelor sale la pătrat.
Pasul final este formula propriu-zisă de similaritate a cosinusului : se împarte produsul scalar la produsul celor două magnitudini. Matematic, se calculează similaritatea cosinusului = (A · B) / (||A|| × ||B||) . Rezultatul este un scor care oscilează de obicei între -1 și 1. Un scor de 1 înseamnă că vectorii sunt perfect aliniați , 0 înseamnă că sunt ortogonali (complet fără legătură), iar -1 înseamnă că sunt diametral opuși.
Punând lucrurile în perspectivă: Regi, Regine și Mere

Să concretizăm acest lucru. Imaginați-vă un LLM care procesează cuvintele „rege” și „regină”. Deoarece acești termeni apar frecvent lângă cuvinte precum „tron” sau „monarhie”, încorporările lor vectoriale vor indica aproape aceeași direcție, rezultând un scor de similaritate cosinus mare . Acum, adăugați cuvântul „măr” în amestec. Chiar dacă se află în același document, apare alături de termeni precum „fruct” sau „livadă”, astfel încât vectorul său va indica o direcție complet diferită, ducând la un scor de similaritate mult mai mic.
Pentru a menține lucrurile rapide, companiile nu calculează acest lucru din mers pentru fiecare element în parte. Ele folosesc baze de date vectoriale . Aceste instrumente specializate sunt construite pentru a indexa vectori de înaltă dimensionalitate, permițând recuperarea extrem de rapidă a celor mai similare potriviri fără a fi nevoie să scaneze manual întregul set de date.
Dincolo de elementele de bază: cosinusul moale și alte metrici
Similaritatea cosinus standard are un defect: presupune că fiecare dimensiune este independentă. Cu toate acestea, în lumea reală, cuvinte precum „joc” și „joc” sunt dimensiuni diferite, dar semantic înrudite . Aici intervine similaritatea cosinus moale . Introduce o matrice de similaritate (adesea folosind distanța Levenshtein sau WordNet) pentru a ține cont de relația dintre caracteristici, permițând modelului să generalizeze conceptele mai eficient, chiar dacă caracteristicile formale diferă.
De asemenea, merită comparat acest lucru cu alte metrici comune. De exemplu, distanța euclidiană (L2) măsoară distanța în linie dreaptă dintre două puncte, ceea ce este excelent pentru proximitatea spațială. Distanța Manhattan (L1) calculează distanța urmând o traiectorie asemănătoare unei grile. În timp ce acestea măsoară distanța absolută , similaritatea cosinusului se concentrează exclusiv pe orientare . Există, de asemenea, similaritatea produsului scalar , care ia în considerare atât unghiul, cât și magnitudinea. Dacă normalizați vectorii la unitatea de lungime, produsul scalar și similaritatea cosinusului devin practic același lucru, dar produsul scalar este mai ieftin de calculat.
Aplicații practice în date grafice și căutare
În lumea bazelor de date grafice precum Amazon Neptune și alte sisteme grafice , similaritatea cosinusului este utilizată pentru a găsi coeziune între grupuri sau pentru a identifica utilizatori similari. De exemplu, dacă aveți un grafic al oamenilor și bucătăriile lor preferate, puteți reprezenta preferințele lor ca vectori de scoruri. Prin aplicarea algoritmului de similaritate cosinus , puteți clasifica utilizatorii care au cele mai similare gusturi, indiferent dacă o persoană evaluează mai multe restaurante decât alta.
Motoarele de căutare moderne se îndepărtează, de asemenea, de căutarea pur lexicală (cum ar fi Ctrl+F) și se îndreaptă spre căutarea vectorială . Deși căutarea lexicală este excelentă pentru tokenizare, aceasta ratează esența textului. Căutarea vectorială surprinde intenția fundamentală . În sisteme precum Elasticsearch, acest lucru este implementat prin convertirea interogărilor în elemente încorporate și găsirea celor mai apropiați vecini folosind metricile pe care le-am discutat, transformând adesea intervalul -1 la 1 într-un scor pozitiv pentru o clasare mai bună.
Indiferent dacă construiești un instrument de recomandare a filmelor sau un agent complex de inteligență artificială, alegerea metricii de similaritate potrivite depinde de dacă magnitudinea vectorială are semnificație. Dacă te interesează doar „tema” sau „direcția” datelor, similaritatea cosinus este cea mai bună opțiune. Pentru cei care au nevoie de distanță spațială brută, metoda euclidiană este calea de urmat. Prin combinarea acestor instrumente matematice cu algoritmi de indexare eficienți , putem transforma datele nestructurate într-o hartă organizată și ușor de căutat a semnificației umane.