Косинусна схожість проти крапкового продукту як метрики відстані


41

Схоже, що косинусна схожість двох ознак - це лише їх крапковий продукт, який масштабується добутком їх величин. Коли подібність косинуса робить кращу метрику відстані, ніж крапка добутку? Тобто, чи крапка точкового і косинусного подібності мають різні сильні сторони або слабкі місця в різних ситуаціях?


Зауважте, що жодна з цих показників не є належною метрикою відстані, навіть якщо ви перетворите їх на значення, яке є малим, коли точки "схожі". Це може не мати значення для вашого випадку використання.
Шон Оуен

Відповіді:


41

Мисліть геометрично. Подібність косину дбає лише про різницю кутів, тоді як крапковий виріб піклується про кут та величину. Якщо ви нормалізуєте, щоб ваші дані мали однакову величину, ці два не відрізняються. Іноді бажано ігнорувати величину, отже, косинусна схожість є приємною, але якщо величина відіграє певну роль, крапковий продукт буде кращим як міра подібності. Зауважте, що жоден з них не є "метрикою відстані".


3
"метрика відстані" зазвичай використовується як протилежність "подібності" в літературі: чим більша відстань, тим менша схожість, але в основному вони представляють одну і ту ж ідею.
подруга

1
@ffriend Ви маєте на увазі "несхожість". Метрика має точне визначення.
Спогад

8

Ви маєте рацію, подібність косинусу має багато спільного з крапковим продуктом векторів. Дійсно, це крапковий виріб, масштабований за величиною. А через масштабування він нормалізується між 0 і 1. CS є кращим, оскільки він враховує мінливість даних та відносні частоти функцій. З іншого боку, звичайний крапковий продукт трохи «дешевший» (з точки зору складності та реалізації).


Чому тільки крапковий продукт (еквівалентний нормалізації) не враховує дані та частоту функцій? Я не знаю, що в цьому різниця.
Шон Оуен

2
Можливо, мені було не ясно. Я говорив про різноманітність даних. Наприклад, у нас є дві пари документів. У кожній парі документи однакові, але документи пара-1 коротші, ніж пара-2. І ми обчислюємо схожість всередині кожної пари. Точковий продукт давав би різні цифри, хоча в обох випадках очікується максимальна оцінка подібності.
собач

5

Я хотів би додати ще один вимір до наведених вище відповідей. Зазвичай ми використовуємо схожість косинуса з великим текстом, тому що використовувати матрицю відстані на абзаци даних не рекомендується. А також, якщо ви плануєте бути вашим кластером широким, ви схильні до косинусної подібності, оскільки він фіксує схожість в цілому.

Наприклад, якщо у вас є тексти, довжиною яких є два або три слова, максимум я відчуваю, що косинусна схожість не досягає точності, досягнутої метрикою відстані.


4

Існує відмінне порівняння загальних показників подібності внутрішнього продукту на основі тут .

Зокрема, подібність косину нормалізується в межах [0,1], на відміну від крапкового продукту, який може бути будь-яким реальним числом, але, як говорять всі інші, це вимагатиме ігнорування величини векторів. Особисто я вважаю, що це добре. Я вважаю величину як внутрішню (всередині векторної) структуру, а кут між векторами як зовнішню (між векторною) структуру. Це різні речі і (на мою думку) часто найкраще аналізувати окремо. Я не можу собі уявити ситуацію, коли я б швидше обчислював внутрішні продукти, ніж обчислював схожість косинусів і просто порівнював величини після цього.


"Подібність косину нормалізується, щоб лежати в межах [0,1]" У чисельнику все ще є крапковий добуток, я думаю, натомість діапазон повинен бути [-1, 1]?
Карі

2

x,||x||2=x,x=1ϕx,y=cosϕϕ=arccosx,y

Візуально всі ваші дані живуть на одиничній сфері. Використання точкового добутку як відстань дасть вам хордальну відстань, але якщо ви використовуєте цю відстань косинуса, це відповідає довжині шляху між двома точками на сфері. Це означає, що якщо вам потрібно середнє значення двох точок, вам слід взяти точку проміжку на цьому шляху (геодезичну), а не середню точку, отриману з "середнього арифметичного / крапкового продукту / евклідової геометрії", оскільки ця точка робить не жити на сфері (отже, по суті, не той самий об’єкт)!


1

Як зазначали інші, це не дистанційні "метрики", оскільки вони не відповідають метричним критеріям. Скажіть замість "міра відстані".

У будь-якому випадку, що ти вимірюєш і чому? Ця інформація допоможе нам дати більш корисну відповідь для вашої ситуації.


Я завжди цікавився різницею між мірами та показниками. За словами уряду (NIST): "... ми використовуємо міру для більш конкретних або об'єктивних атрибутів і метрику для більш абстрактних, вищих рівнів або дещо суб'єктивних атрибутів. ... Надійна, якість (як у" високій якості "), та ефективність - це важливі ознаки, до яких ми маємо певну послідовність, але їх важко визначити об'єктивно. Отже, це показники ". Але контекст - це інженерія програмного забезпечення, а не математика. Що ти приймаєш?
ahoffer

1
Вікіпедія була кориснішою. відстань (x, y) має бути невід’ємною; d (x, y) = 0, тільки якщо x = y; d (x, y) = d (y, x); і задовольнимо нерівність трикутника- d (x, z) ≤ d (x, y) + d (y, z)
ahoffer

1
Це майже все: метрика повинна відповідати певним аксіомам, а міра менш чітко визначена.
sintax
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.