K - означає косинусну схожість проти евклідової відстані (LSA)


10

Я використовую латентний семантичний аналіз для представлення корпусу документів у просторі нижчих розмірів. Я хочу класифікувати ці документи на дві групи за допомогою k-засобів.

Кілька років тому я робив це, використовуючи gensim Python і писав власний алгоритм k-означає. Я визначив центроїди кластера за евклідовою відстані, але потім згрупував кожен документ на основі подібності косинусу до центроїда. Здавалося, це працює досить добре.

Зараз я намагаюся зробити це на набагато більшому корпусі документів. K-засоби не збігаються, і мені цікаво, чи це помилка в моєму коді. Нещодавно я читав, що не слід кластеризувати подібність косинусу, оскільки k-означає працює лише на евклідовій відстані. Навіть незважаючи на те, що, як я вже згадував, у моїй меншій тестовій справі це виявилося чудово.

Зараз я натрапив на це на сторінці Вікіпедії LSA :

Документи та термінові векторні подання можуть бути згруповані за допомогою традиційних алгоритмів кластеризації, таких як k-засоби, використовуючи заходи подібності, як косинус.

Так що це? Чи можу я використовувати косинусну схожість чи ні?


Ця тема справді довго затримується на цьому сайті. Лише недавнє запитання: stats.stackexchange.com/q/120085/3277 (див. Подальші посилання там). Що жахливо цікаво, це те, як ви реалізували k-означає, який обробляє косинуси. Якщо ви опишите свій алгоритм у своєму запитанні, він допоможе людям відповісти на нього.
ttnphns

@ttnphns Я фактично генерував центроїди кластера, використовуючи евклідову відстань (середнє значення для кожного виміру). Однак тоді я призначив кожен документ кластеру на основі схожості косинусів, а не евклідової відстані.
Джефф

I then assigned each document to a cluster based on cosine similarity- Косинус між док і центроїдом? І після того, як всі документи будуть призначені, ви оновлюєте центроїди звичайним (евклідовим) способом, оскільки координати документів у просторі відомі. Невже це так?
ttnphns

1
Тільки якщо сума квадратних значень для кожного документа у вашому наборі даних однакова , ваш підхід буде працювати і завжди збігатиметься. Тому що в такому випадку (тобто всі однакової довжини) косинуси між центроїдами та документами будуть суворо монотонними з евклідовою відстані між центроїдами та документами. Але це буде означати, що використовувати косинуси для призначення не потрібно, і ви можете потім використовувати стандартне призначення алгоритму k-означає, засноване на евклідові відстані. h
ttnphns

1
Я починаю вважати, що ви можете шукати k-засоби, виконані на сфері, а не в просторі. Кутовий k-означає, так би мовити. Я думаю, це можливо, але я ніколи такого не читав і не використовував.
ttnphns

Відповіді:


4

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

Насправді ви можете просто використовувати будь-яку відстань. Дуже приємне дослідження властивостей функцій дистанції у просторах високих розмірів (як це зазвичай відбувається у пошуку інформації) - " Про дивну поведінку метрики відстані у просторі великого розміру" . Однак він не порівнює Евклідова з косинусом.

Я зіткнувся з цим дослідженням, де вони стверджують, що у просторах високих розмірів обидві відстані мають тенденцію поводитись однаково.


1
Ця відповідь може бути вдалою, якщо в ній описується як Yes, you can use it . (Чи ідея перетворення косинуса на евклідову відстань схожа на мою відповідь ?)
ttnphns

Моє розуміння k-засобів різне. Це не обов'язково обмежується евклідовою дистанцією ( stat.uni-muenchen.de/~leisch/papers/Leisch-2006.pdf ). Також дивіться мою другу посилання або цей пакет R ( cran.r-project.org/web/packages/cclust/cclust.pdf ). Я мав на увазі, що це дуже подобається на сайті вікіпедії. Потрібно просто функцію відстані. Вони називають це "кутовою подібністю".
jpmuc

1
Можливо (і спасибі за те, що поділився документом!). Але тоді всі такі "модифікації" k-засобів, які відрізняються від k-засобів тим, що вони визначають центроїд не як середнє арифметичне в евклідовому просторі, не слід називати k-засобами.
ttnphns

1

Евклідова відстань не підходить для порівняння документів або кластерів документів. При порівнянні документів одним із ключових питань є нормалізація за довжиною документа. Подібність косину досягає такого роду нормалізації, але евклідова відстань не робить. Більше того, документи часто моделюють як багаточленове розподіл ймовірностей (так званий мішок слів). Подібність косину - це наближення до JS-розбіжності, що є статистично обґрунтованим методом подібності. Одним із ключових проблем у документах та косинусах є те, що слід застосовувати належну нормалізацію tf-idf до підрахунків. Якщо ви використовуєте gensim для отримання представлення LSA, gensim це вже робить.

Ще одне корисне спостереження у випадку використання 2 кластерів - це те, що ви можете отримати хорошу не випадкову ініціалізацію, оскільки LSA - це просто SVD. Ви робите це наступним чином:

  • Візьміть лише перший компонент кожного документа (якщо перший компонент - верхній сингулярний вектор).
  • Сортуйте ці значення, відстежуючи ідентифікатори документа для кожного значення.
  • кластер 1 = ідентифікатори документа, відповідні верхньому, наприклад, 1000 (або більше) значень
  • кластер 2 = ідентифікатори документа, відповідні нижньому, наприклад, 1000 (або більше) значень
  • просто середні вектори для кожного кластеру і нормалізуються за довжиною вектора.
  • Тепер застосуйте k-засоби до цієї ініціалізації. Це означає просто повторити (1) присвоєння документів поточному найближчому центроїду та (2) усереднення та нормалізацію нових центроїдів після перепризначення

1

Так, працює те саме оновлення центроїдів за середніми показниками.

Дивіться m = 1 випадок у Розділі 2.2 цього документу . w - ваги, а ваги всі 1 для базових k-середніх алгоритмів.

У роботі використовуються властивості нерівності Коші-Шварца для встановлення умови, яка мінімізує функцію витрат для k-середнього.

Також пам’ятайте, що косинусність косинусу - це не векторна відстань. Косинусна дисиміліарність є. (Це має бути хорошим пошуковим терміном.) Отже, оновлюючи розділ, ви шукаєте, на arg maxвідміну від arg min.

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