Тлумачення негативної косинусної подібності


17

Моє запитання може бути дурним. Тому я заздалегідь прошу вибачення.

Я намагався використовувати модель GLOVE, попередньо підготовлену групою Stanford NLP ( посилання ). Однак я помітив, що результати моєї подібності показали деякі негативні цифри.

Це відразу ж підштовхнуло мене переглянути файл файлів даних word-vector. Мабуть, значення у векторах слова мали бути негативними. Це пояснило, чому я бачив негативні косинусні подібності.

Я звик до поняття косинусної подібності векторів частот, значення яких обмежені в [0, 1]. Я знаю на факт, що крапка добутку та косинус можуть бути позитивними чи негативними залежно від кута між вектором. Але мені справді важко зрозуміти та інтерпретувати цю негативну косинусну подібність.

Наприклад, якщо у мене є пара слів, що дають подібність -0,1, чи вони менш схожі, ніж інша пара, схожість якої становить 0,05? Як щодо порівняння подібності від -0,9 до 0,8?

Або варто просто подивитися на абсолютне значення мінімальної різниці кутів від ? Абсолютне значення балів?nπ

Велике спасибі


1
Тег подібності косину говорить: An angular-type similarity coefficient between two vectors. It is like correlation, only without centering the vectors.Єдина відмінність між ними полягає в тому, що у кореляційних відхиленнях (моменти), які перетинаються множиною, - від середнього значення, тоді як у косинусних відхиленнях від початкового 0 - тобто вони є такими, якими вони є значення. .
ttnphns

2
(продовження) Розуміння позитивного чи негативного коефіцієнта однакове в обох випадках. Негативний коф. означає, що позитивні відхилення / значення одного вектора мають тенденцію до пари з негативними відхиленнями / значеннями іншого. Чи означає це, що вектори "схожі" чи навпаки "сильно відрізняються", залежить від того, який для вас значення позитивних та негативних відхилень / значень.
ttnphns

@ttnphns Дуже дякую за ваш коментар! Це мене надихає по-новому думати про подібність косинусу. У моєму випадку використання, можливо, я можу вважати це різницею в кінцевих результатах: якщо співвідношення Doc A і B є негативним, а одноманітний журнал X включає Doc A, то менше ймовірність, що X включає B як ну з якоїсь середньої ймовірності. Чи звучить це тлумачення для вас?
Май

Не наважуюся сказати, тому що я не знаю ваших даних, значення цінностей у них та вашого дослідження.
ttnphns

Відповіді:


2

Нехай два вектори і , кут отриманий скалярним добутком і нормою векторів:abθ

cos(θ)=ab||a||||b||

Оскільки значення знаходиться в діапазоні :cos(θ)[1,1]

  • 1 значення буде вказувати на сильно протилежні вектори
  • 0 незалежних (ортогональних) векторів
  • 1 подібних (позитивних колінійних) векторів. Проміжні значення використовуються для оцінки ступеня подібності.

Приклад : Нехай двоє користувачів та та схожість між цими двома користувачами відповідно до їх смаку до фільмів:U1U2sim(U1,U2)

  • sim(U1,U2)=1 якщо два користувачі мають абсолютно однаковий смак (або якщо )U1=U2
  • sim(U1,U2)=0 якщо ми не знаходимо жодної кореляції між двома користувачами, наприклад, якщо вони не бачили жодного загального фільму
  • sim(U1,U2)=1 якщо користувачі протиставили смаки, наприклад, якщо вони оцінили ті ж фільми протилежним чином

0

Не використовуйте абсолютні значення, оскільки негативний знак не є довільним. Щоб придбати значення косинуса між 0 і 1, слід використовувати таку косинусну функцію:

(Код R)

cos.sim <- function(a,b) 
{
  dot_product = sum(a*b)
  anorm = sqrt(sum((a)^2))
  bnorm = sqrt(sum((b)^2))
  minx =-1
  maxx = 1
  return(((dot_product/anorm*bnorm)-minx)/(maxx-minx))
} 

(Код Python)

def cos_sim(a, b):
    """Takes 2 vectors a, b and returns the cosine similarity according 
to the definition of the dot product"""
    dot_product = np.dot(a, b)
    norm_a = np.linalg.norm(a)
    norm_b = np.linalg.norm(b)
    return dot_product / (norm_a * norm_b)

minx = -1 
maxx = 1

cos_sim(row1, row2)- minx)/(maxx-minx)
```

Де ви встановлюєте minx і maxx? Ви можете застосувати цю нормалізацію min-max до векторних розмірів замість обчисленої відстані.
emre може

0

Подібність косину подібна до співвідношення Пірсона, але без обмеження засобів. Таким чином, ви можете порівняти відносну силу двох схожих косинусів, поглянувши на абсолютні значення, подібно до того, як ви порівняли б абсолютні значення 2 кореляцій Пірсона.


0

Правильно, що косинусне схожість між векторами частоти не може бути негативним, оскільки підрахунок слів не може бути негативним, але при вкладенні слів (наприклад, рукавичка) ви можете мати негативні значення.

Спрощений вигляд побудови, вбудованої у Word, полягає в наступному: Ви присвоюєте кожне слово випадковому вектору в R ^ d. Далі запустіть оптимізатор, який намагається підсунути два подібні вектори v1 і v2 близько один до одного або запустити два різних вектори v3 і v4 далі один від одного (на деяку відстань, скажімо, косинус). Ви запускаєте цю оптимізацію для достатньої кількості ітерацій, і наприкінці у вас є вбудовування слів з єдиним критерієм, що подібні слова мають ближчі вектори, а різні вектори розташовані далі. Кінцевий результат може призвести до того, що деякі значення розмірності будуть негативними, а деякі пари мають негативну косинусну схожість - просто тому, що процес оптимізації не піклувався про цей критерій. Це, можливо, підштовхнуло деякі вектори до негативних значень. Розміри векторів не відповідають підрахункам слів,

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