Косинусное сходство против точечного произведения как метрики расстояния

41

Похоже, что косинусное сходство двух признаков - это просто их точечное произведение, масштабированное произведением их величин. Когда косинусное сходство делает лучшую метрику расстояния, чем скалярное произведение? Т.е. имеют ли точечное произведение и косинусное сходство разные сильные или слабые стороны в разных ситуациях?

ahoffer
источник
Обратите внимание, что ни один из них не является правильной метрикой расстояния, даже если вы преобразуете их в значение, которое мало, когда точки «похожи». Это может иметь или не иметь значения для вашего варианта использования.
Шон Оуэн,

Ответы:

41

Думай геометрически. Косинусное сходство касается только разности углов, а точечное произведение заботится об угле и величине. Если вы нормализуете свои данные, чтобы иметь одинаковую величину, эти два неразличимы. Иногда желательно игнорировать величину, поэтому косинусное сходство хорошо, но если величина играет роль, точечное произведение будет лучше в качестве меры подобия. Обратите внимание, что ни один из них не является «метрикой расстояния».

Memming
источник
3
«Метрика расстояния» обычно используется как противоположность «сходству» в литературе: чем больше расстояние, тем меньше сходство, но в основном они представляют одну и ту же идею.
друг
1
@ffriend Ты имеешь в виду «различие». Метрика имеет точное определение.
Memming
8

Вы правы, косинусное сходство имеет много общего с точечным произведением векторов. Действительно, это точечный продукт, масштабированный по величине. А из-за масштабирования он нормализуется между 0 и 1. CS предпочтительнее, потому что он учитывает изменчивость данных и относительные частоты объектов. С другой стороны, продукт с простой точкой немного «дешевле» (с точки зрения сложности и реализации).

sobach
источник
Почему один точечный продукт (эквивалент не нормализации) не учитывает данные и частоту функций? Я не знаю, в чем разница.
Шон Оуэн,
2
Возможно, мне было не ясно. Я говорил о разнообразии данных. Например, у нас есть две пары документов. Внутри каждой пары документы идентичны, но документы пары-1 короче, чем документы пары-2. И мы вычислили сходство внутри каждой пары. Точечный продукт будет давать разные числа, хотя в обоих случаях ожидается максимальная оценка сходства.
Собах
5

Я хотел бы добавить еще одно измерение к ответам, приведенным выше. Обычно мы используем косинусное сходство с большим текстом, поскольку не рекомендуется использовать матрицу расстояний для абзацев данных. А также, если вы хотите, чтобы ваш кластер был широким, вы склонны использовать косинусное сходство, поскольку оно отражает сходство в целом.

Например, если у вас есть тексты длиной не более двух или трех слов, я чувствую, что использование косинусного сходства не достигает точности, достигнутой метрикой расстояния.

Вимал Чандра Гориала
источник
4

Существует отличное сравнение общих показателей подобия внутреннего продукта на основе здесь .

В частности, косинусное сходство нормализуется и лежит в пределах [0,1], в отличие от точечного произведения, которое может быть любым действительным числом, но, как говорят все остальные, это потребует игнорирования величины векторов. Лично я считаю, что это хорошо. Я думаю о величине как о внутренней (внутри-векторной) структуре, а угол между векторами - как о внешней (между вектором) структуре. Это разные вещи и (на мой взгляд) часто лучше всего анализировать отдельно. Я не могу представить ситуацию, в которой я бы предпочел вычислить внутренние произведения, а не вычислить косинусное сходство и просто сравнить величины после этого.

shadowtalker
источник
«Сходство косинусов нормализовано, чтобы лежать в пределах [0,1]». В числителе все еще есть скалярное произведение, я думаю, что диапазон должен быть [-1, 1]?
Кари
2

Икс,||Икс||2знак равноИкс,Иксзнак равно1φИкс,Yзнак равносозφφзнак равноагссозИкс,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
Вот и все: метрика должна соответствовать определенным аксиомам, а мера менее строго определена.
синтаксис