- Kosinová podobnost měří směrové uspořádání dvou vektorů výpočtem kosinového úhlu mezi nimi, přičemž se ignoruje jejich celková velikost.
- Tato metrika je nezbytná pro moderní umělou inteligenci, umožňuje sémantické vyhledávání, personalizované doporučovací systémy a zpracování vysokorozměrných vkládání.
- Zatímco standardní kosinová podobnost zachází s prvky jako s nezávislými, pokročilé verze, jako je měkká kosinová metoda, integrují vztahy mezi prvky pro zlepšení přesnosti.
Přemýšleli jste někdy o tom, jak Spotify přesně ví, která písnička se trefí do černého, nebo jak Google chápe, že váš vyhledávací dotaz znamená něco konkrétního, i když nepoužíváte přesná slova? Spousta kouzel se odehrává v zákulisí pomocí vektorových vkládání . Místo toho, aby se slova nebo položky považovaly za jednoduchý text, umělá inteligence je transformuje na body v masivním, vícerozměrném prostoru, a právě zde se uplatňuje koncept kosinové podobnosti, který tomu všemu dává smysl.
V podstatě tento matematický trik umožňuje počítačům zjistit, jak „blízké“ jsou si dvě věci, a to na základě úhlu mezi jejich vektory . Nezáleží na tom, zda je jeden vektor mnohem delší než druhý; záleží mu pouze na tom, zda směřují stejným obecným směrem. Je to naprostý převrat v oblasti zpracování přirozeného jazyka (NLP) a doporučovacích systémů, protože se zaměřuje na sémantický význam, nikoli pouze na porovnávání znaků.
Základní principy výpočtu

Abyste pochopili, jak to funguje, musíte pochopit, že každý kus dat – ať už je to slovo nebo film – je reprezentován jako vektor, kde každý rozměr je specifickým atributem. Abychom našli podobnost, postupujeme podle několika konkrétních kroků. Nejprve vypočítáme skalární součin , což zahrnuje vynásobení odpovídajících hodnot z obou vektorů a jejich sečtení, abychom zjistili, jak jsou shodné. Dále zjistíme velikost (nebo délku) každého vektoru odmocninou ze součtu jeho druhých mocnin složek.
Posledním krokem je skutečný vzorec pro kosinovou podobnost : vezmete tento skalární součin a vydělíte ho součinem dvou veličin. Matematicky to vypadá jako Kosinová podobnost = (A · B) / (||A|| × ||B||) . Výsledkem je skóre, které se obvykle pohybuje mezi -1 a 1. Skóre 1 znamená, že vektory jsou dokonale zarovnané , 0 znamená, že jsou ortogonální (zcela nesouvisející) a -1 znamená, že jsou diametrálně odlišné.
Uvedení do perspektivy: Králové, královny a jablka

Ukažme to konkrétním. Představte si LLM, který zpracovává slova „král“ a „královna“. Protože se tyto termíny často objevují poblíž slov jako „trůn“ nebo „monarchie“, jejich vektorové vnoření bude směřovat téměř stejným směrem, což povede k vysokému skóre podobnosti kosinového typu . Nyní do směsi přidejte slovo „jablko“. I když je ve stejném dokumentu, vyskytuje se s termíny jako „ovoce“ nebo „sad“, takže jeho vektor bude směřovat úplně jiným směrem, což povede k mnohem nižšímu skóre podobnosti.
Aby si firmy udržely přehlednost, nepočítají to jen tak za běhu pro každou jednotlivou položku. Používají vektorové databáze . Tyto specializované nástroje jsou navrženy tak, aby indexovaly vysokorozměrné vektory, což umožňuje bleskově rychlé vyhledávání nejpodobnějších shod, aniž by bylo nutné ručně prohledávat celou datovou sadu.
Nad rámec základů: Měkký kosinus a další metriky
Standardní kosinová podobnost má jednu nevýhodu: předpokládá, že každý rozměr je nezávislý. V reálném světě jsou však slova jako „play“ a „game“ odlišné rozměry, ale sémanticky související . Zde přichází na řadu měkká kosinová podobnost . Zavádí matici podobnosti (často využívající Levenshteinovu vzdálenost nebo WordNet), která zohledňuje vztah mezi znaky, což modelu umožňuje efektivněji zobecňovat koncepty , i když se formální znaky liší.
Za porovnání s jinými běžnými metrikami stojí také euklidovská vzdálenost (L2) měří přímočarou vzdálenost mezi dvěma body, což je skvělé pro prostorovou blízkost. Manhattanská vzdálenost (L1) vypočítává vzdálenost podle trajektorie podobné mřížce. Zatímco tyto metriky měří absolutní vzdálenost , kosinová podobnost se zaměřuje výhradně na orientaci . Existuje také podobnost skalárního součinu , která zohledňuje úhel i velikost. Pokud normalizujete vektory na jednotku délky, skalární součin a kosinová podobnost se v podstatě stanou tou samou věcí, ale výpočet skalárního součinu je výpočetně levnější .
Praktické aplikace v grafových datech a vyhledávání
Ve světě grafových databází, jako je Amazon Neptune a další grafové systémy , se kosinová podobnost používá k nalezení soudržnosti mezi skupinami nebo k identifikaci podobných uživatelů. Pokud máte například graf lidí a jejich oblíbených kuchyní, můžete jejich preference reprezentovat jako vektory skóre. Použitím algoritmu kosinové podobnosti můžete seřadit uživatele s nejpodobnějším vkusem, bez ohledu na to, zda jedna osoba hodnotí více restaurací než jiná.
Moderní vyhledávače se také odklánějí od čistě lexikálního vyhledávání (jako Ctrl+F) směrem k vektorovému vyhledávání . Lexikální vyhledávání je sice skvělé pro tokenizaci, ale míjí pointu textu. Vektorové vyhledávání zachycuje základní záměr . V systémech, jako je Elasticsearch, se to realizuje převodem dotazů na vnoření a nalezením nejbližších sousedů pomocí metrik, o kterých jsme diskutovali, přičemž se rozsah -1 až 1 často transformuje na kladné skóre pro lepší umístění ve vyhledávání.
Ať už vytváříte doporučovač filmů nebo komplexního agenta s umělou inteligencí, výběr správné metriky podobnosti závisí na tom, zda velikost vektoru nese nějaký význam. Pokud vám záleží pouze na „tématu“ nebo „směru“ dat, je kosinová podobnost tou nejlepší volbou. Pro ty, kteří potřebují hrubou prostorovou vzdálenost, je euklidovská metoda tou správnou cestou. Kombinací těchto matematických nástrojů s efektivními indexovacími algoritmy můžeme nestrukturovaná data proměnit v organizovanou a prohledávatelnou mapu lidského významu.