- Sinusukat ng cosine similarity ang directional alignment ng dalawang vector sa pamamagitan ng pagkalkula ng cosine ng anggulo sa pagitan ng mga ito, na hindi isinasaalang-alang ang kanilang kabuuang magnitude.
- Ang sukatang ito ay mahalaga para sa modernong AI, na nagbibigay-daan sa semantic search, mga personalized na sistema ng rekomendasyon, at pagproseso ng mga high-dimensional embedding.
- Bagama't itinuturing ng karaniwang pagkakatulad ng cosine ang mga tampok bilang independiyente, isinasama ng mga advanced na bersyon tulad ng Soft Cosine ang mga ugnayan ng tampok upang mapabuti ang katumpakan.
Naisip mo na ba kung paano tila alam ng Spotify kung aling kanta ang eksaktong patok o kung paano naiintindihan ng Google na ang iyong query sa paghahanap ay may partikular na kahulugan kahit na hindi mo ginagamit ang eksaktong mga salita? Karamihan sa mahika ay nangyayari sa likod ng mga eksena gamit ang mga vector embedding . Sa halip na ituring ang mga salita o item bilang simpleng teksto, binabago ng AI ang mga ito sa mga punto sa isang napakalaking at multi-dimensional na espasyo, at doon nagsisimula ang konsepto ng cosine similarity upang maunawaan ang lahat.
Sa madaling salita, ang matematikal na trick na ito ay nagbibigay-daan sa mga computer na malaman kung gaano "kalapit" ang dalawang bagay sa pamamagitan ng pagtingin sa anggulo sa pagitan ng kanilang mga vector . Hindi mahalaga kung ang isang vector ay mas mahaba kaysa sa isa; ang mahalaga lang ay kung nakaturo sila sa parehong pangkalahatang direksyon. Ito ay isang ganap na game-changer para sa Natural Language Processing (NLP) at mga recommendation engine dahil nakatuon ito sa semantic meaning sa halip na pagtutugma lamang ng mga character.
Ang mga Mani at Bolt ng Pagkalkula

Para maunawaan kung paano ito gumagana, kailangan mong maunawaan na ang bawat piraso ng datos—ito man ay salita o pelikula—ay kinakatawan bilang isang vector kung saan ang bawat dimensyon ay isang partikular na katangian. Para mahanap ang pagkakatulad, susundin natin ang ilang partikular na hakbang. Una, kinakalkula natin ang dot product , na kinabibilangan ng pagpaparami ng mga katumbas na halaga mula sa parehong vector at pagbubuod ng mga ito upang makita kung gaano sila nakahanay. Susunod, inaalam natin ang magnitude (o haba) ng bawat vector sa pamamagitan ng pagkuha ng square root ng kabuuan ng mga squared component nito.
Ang huling hakbang ay ang aktwal na pormula ng cosine similarity : kukunin mo ang dot product na iyon at hahatiin ito sa produkto ng dalawang magnitude. Sa matematika, mukhang ganito ang Cosine Similarity = (A · B) / (||A|| × ||B||) . Ang resulta ay isang iskor na karaniwang nagbabago sa pagitan ng -1 at 1. Ang iskor na 1 ay nangangahulugan na ang mga vector ay perpektong nakahanay , ang 0 ay nangangahulugan na ang mga ito ay orthogonal (ganap na walang kaugnayan), at ang -1 ay nangangahulugan na ang mga ito ay diametrically opposites.
Paglalagay nito sa Perspektibo: Mga Hari, Reyna, at Mansanas

Gawin nating konkreto ito. Isipin ang isang LLM na nagpoproseso ng mga salitang "hari" at "reyna." Dahil ang mga terminong ito ay madalas na lumalabas malapit sa mga salitang tulad ng "trono" o "monarkiya," ang kanilang mga vector embedding ay halos tumuturo sa parehong direksyon, na magreresulta sa isang mataas na cosine similarity score . Ngayon, idagdag ang salitang "mansanas". Kahit na nasa parehong dokumento ito, nakakabit ito sa mga terminong tulad ng "prutas" o "taniman," kaya ang vector nito ay tumuturo sa ibang direksyon, na hahantong sa mas mababang similarity score.
Para maging mabilis ang mga bagay-bagay, hindi lang basta-basta kinakalkula ito ng mga kumpanya para sa bawat item. Gumagamit sila ng mga vector database . Ang mga espesyalisadong tool na ito ay ginawa para i-index ang mga high-dimensional vector, na nagbibigay-daan para sa napakabilis na pagkuha ng mga pinakakatulad na tugma nang hindi kinakailangang manu-manong i-scan ang buong dataset.
Paglampas sa mga Pangunahing Kaalaman: Malambot na Cosine at Iba Pang Metriks
May depekto ang karaniwang cosine similarity: ipinapalagay nito na ang bawat dimensyon ay independiyente. Gayunpaman, sa totoong mundo, ang mga salitang tulad ng "play" at "game" ay magkaibang dimensyon ngunit magkaugnay sa semantika . Dito pumapasok ang Soft Cosine Similarity . Nagpapakilala ito ng isang similarity matrix (madalas gamit ang Levenshtein distance o WordNet) upang isaalang-alang ang ugnayan sa pagitan ng mga tampok, na nagbibigay-daan sa modelo na gawing pangkalahatan ang mga konsepto nang mas epektibo, kahit na magkakaiba ang mga pormal na tampok.
Mahalaga ring ihambing ito sa iba pang karaniwang sukatan. Halimbawa, sinusukat ng Euclidean Distance (L2) ang distansyang tuwid sa pagitan ng dalawang punto, na mainam para sa spatial proximity. Kinakalkula ng Manhattan Distance (L1) ang distansya na sumusunod sa isang landas na parang grid. Bagama't sinusukat nito ang absolute distance , ang cosine similarity ay nakatuon lamang sa oryentasyon . Mayroon ding Dot Product Similarity , na isinasaalang-alang ang parehong anggulo at magnitude. Kung i-o-normalize mo ang iyong mga vector sa unit length, ang dot product at cosine similarity ay magiging pareho, ngunit ang dot product ay mas mura kalkulahin sa komputasyon.
Mga Praktikal na Aplikasyon sa Datos ng Graph at Paghahanap
Sa mundo ng mga database ng graph tulad ng Amazon Neptune at iba pang mga sistema ng graph , ginagamit ang cosine similarity upang mahanap ang cohesion sa pagitan ng mga grupo o tukuyin ang mga magkakatulad na user. Halimbawa, kung mayroon kang graph ng mga tao at ang kanilang mga paboritong lutuin, maaari mong katawanin ang kanilang mga kagustuhan bilang mga vector ng mga score. Sa pamamagitan ng paglalapat ng cosine similarity algorithm , maaari mong i-ranggo kung aling mga user ang may pinakakatulad na panlasa, kahit na ang isang tao ay nag-rate ng mas maraming restaurant kaysa sa iba.
Ang mga modernong search engine ay lumalayo na rin mula sa purong lexical search (tulad ng Ctrl+F) patungo sa vector search . Bagama't mahusay ang lexical search para sa tokenization, hindi nito natutugunan ang punto ng teksto. Nakukuha ng vector search ang pinagbabatayang layunin . Sa mga sistemang tulad ng Elasticsearch, ipinapatupad ito sa pamamagitan ng pag-convert ng mga query sa mga embedding at paghahanap ng pinakamalapit na mga kalapit na search engine gamit ang mga metric na ating tinalakay, na kadalasang binabago ang -1 hanggang 1 range sa isang positibong score para sa mas mahusay na ranking.
Gumagawa ka man ng movie recommender o isang complex AI agent, ang pagpili ng tamang similarity metric ay nakadepende kung ang vector magnitude ay may kahulugan. Kung ang "tema" o "direksyon" lang ng data ang mahalaga sa iyo, ang cosine similarity ang pinakamahusay na pagpipilian. Para sa mga nangangailangan ng raw spatial distance, ang Euclidean ang dapat mong piliin. Sa pamamagitan ng pagsasama-sama ng mga mathematical tool na ito sa mahusay na indexing algorithms , maaari nating gawing organisado at mahahanap na mapa ng kahulugan ng tao ang unstructured data.