- Kosinuslikhet måler den retningsbestemte justeringen av to vektorer ved å beregne cosinus til vinkelen mellom dem, og ignorere deres totale størrelse.
- Denne metrikken er viktig for moderne AI, og muliggjør semantisk søk, personlige anbefalingssystemer og behandling av høydimensjonale innebygginger.
- Mens standard cosinuslikhet behandler funksjoner som uavhengige, integrerer avanserte versjoner som myk cosinus funksjonsrelasjoner for å forbedre nøyaktigheten.

Har du noen gang lurt på hvordan Spotify ser ut til å vite nøyaktig hvilken sang som treffer blink, eller hvordan Google forstår at søket ditt betyr noe spesifikt selv om du ikke bruker de nøyaktige ordene? Mye av magien skjer bak kulissene ved hjelp av vektorinnebygging . I stedet for å behandle ord eller elementer som enkel tekst, forvandler AI dem til punkter i et massivt, flerdimensjonalt rom, og det er der konseptet med cosinuslikhet kommer inn for å gi mening til det hele.
I bunn og grunn lar dette matematiske trikset datamaskiner finne ut hvor «nære» to ting er ved å se på vinkelen mellom vektorene deres . Det spiller ingen rolle om den ene vektoren er mye lengre enn den andre; det spiller bare rolle om de peker i samme generelle retning. Det er en total revolusjon for naturlig språkbehandling (NLP) og anbefalingsmotorer fordi det fokuserer på den semantiske betydningen i stedet for bare å matche tegn.
Nøttene og boltene i beregningen

For å få et grep om hvordan dette fungerer, må du forstå at alle data – enten det er et ord eller en film – er representert som en vektor der hver dimensjon er en spesifikk attributt. For å finne likheten følger vi noen spesifikke trinn. Først beregner vi prikkproduktet , som innebærer å multiplisere tilsvarende verdier fra begge vektorene og summere dem for å se hvor justerte de er. Deretter finner vi ut størrelsen (eller lengden) til hver vektor ved å ta kvadratroten av summen av dens kvadrerte komponenter.
Det siste trinnet er selve cosinuslikhetsformelen : du tar prikkproduktet og deler det på produktet av de to størrelsene. Matematisk ser det slik ut: Cosinuslikhet = (A · B) / (||A|| × ||B||) . Resultatet er en poengsum som vanligvis svinger mellom -1 og 1. En poengsum på 1 betyr at vektorene er perfekt justert , 0 betyr at de er ortogonale (helt urelaterte), og -1 betyr at de er diametralt motsatte.
Setter det i perspektiv: Konger, dronninger og epler

La oss gjøre dette konkret. Se for deg en LLM som behandler ordene «konge» og «dronning». Fordi disse begrepene ofte dukker opp i nærheten av ord som «trone» eller «monarki», vil vektorinnfellingene deres peke i nesten samme retning, noe som resulterer i en høy cosinus-likhetspoengsum . Kast nå ordet «eple» inn i miksen. Selv om det er i samme dokument, henger det sammen med begreper som «frukt» eller «frukthage», så vektoren vil peke i en helt annen retning, noe som fører til en mye lavere likhetspoengsum.
For å holde det raskt, beregner ikke bedrifter dette bare for hvert enkelt element. De bruker vektordatabaser . Disse spesialiserte verktøyene er bygget for å indeksere høydimensjonale vektorer, noe som muliggjør lynrask henting av de mest like treffene uten å måtte skanne hele datasettet manuelt.
Går utover det grunnleggende: Myk cosinus og andre målinger
Standard cosinuslikhet har en svakhet: den antar at alle dimensjoner er uavhengige. I den virkelige verden er imidlertid ord som «lek» og «spill» forskjellige dimensjoner, men semantisk relaterte . Det er her myk cosinuslikhet kommer inn i bildet. Den introduserer en likhetsmatrise (ofte ved bruk av Levenstein-avstand eller WordNet) for å ta hensyn til forholdet mellom funksjoner, slik at modellen kan generalisere konsepter mer effektivt, selv om de formelle funksjonene er forskjellige.
Det er også verdt å sammenligne dette med andre vanlige målinger. For eksempel måler euklidsk avstand (L2) den rette linjeavstanden mellom to punkter, noe som er flott for romlig nærhet. Manhattan-avstand (L1) beregner avstand etter en rutenettlignende bane. Mens disse måler absolutt avstand , fokuserer cosinuslikhet utelukkende på orientering . Det finnes også punktproduktlikhet , som tar hensyn til både vinkel og størrelse. Hvis du normaliserer vektorene dine til enhetslengde, blir punktproduktet og cosinuslikheten effektivt det samme, men punktproduktet er beregningsmessig billigere å beregne.
Praktiske anvendelser i grafdata og søk
I grafdatabaser som Amazon Neptune og andre grafsystemer brukes cosinuslikhet til å finne kohesjon mellom grupper eller identifisere lignende brukere. Hvis du for eksempel har en graf over folk og deres favorittkjøkken, kan du representere preferansene deres som vektorer av poengsummer. Ved å bruke cosinuslikhetsalgoritmen kan du rangere hvilke brukere som har mest lik smak, uavhengig av om én person vurderer flere restauranter enn en annen.
Moderne søkemotorer beveger seg også bort fra rent leksikalsk søk (som Ctrl+F) og over mot vektorsøk . Selv om leksikalsk søk er flott for tokenisering, bommer det på poenget med teksten. Vektorsøk fanger opp den underliggende intensjonen . I systemer som Elasticsearch implementeres dette ved å konvertere spørringer til innebygde elementer og finne nærmeste naboer ved hjelp av beregningene vi har diskutert, og ofte transformere området -1 til 1 til en positiv poengsum for bedre rangering.
Enten du bygger en filmanbefalingstjeneste eller en kompleks AI-agent, avhenger valget av riktig likhetsmåling av om vektorstørrelsen bærer mening. Hvis du bare bryr deg om dataenes «tema» eller «retning», er cosinuslikhet det beste alternativet. For de som trenger rå romlig avstand, er euklidisk veien å gå. Ved å kombinere disse matematiske verktøyene med effektive indekseringsalgoritmer kan vi gjøre ustrukturerte data om til et organisert, søkbart kart over menneskelig mening.