K-среднее по косинусу сходства против евклидова расстояния (LSA)


10

Я использую скрытый семантический анализ для представления совокупности документов в пространстве меньшего размера. Я хочу сгруппировать эти документы в две группы с помощью k-средних.

Несколько лет назад я сделал это с помощью gensim Python и написал свой собственный алгоритм k-средних. Я определил кластерные центроиды, используя евклидово расстояние, но затем сгруппировал каждый документ на основе косинусного сходства с центроидом. Казалось, работает довольно хорошо.

Сейчас я пытаюсь сделать это в гораздо большем объеме документов. К-значит не сходится, и мне интересно, если это ошибка в моем коде. Недавно я прочитал, что вы не должны кластеризоваться, используя косинусное сходство, потому что k-means работает только на евклидовом расстоянии. Хотя, как я уже упоминал, в моем меньшем тестовом случае это работало нормально.

Теперь я сталкиваюсь с этим на странице Википедии LSA :

Документы и представления векторов терминов могут быть сгруппированы с использованием традиционных алгоритмов кластеризации, таких как k-средних, с использованием мер сходства, таких как косинус.

Так что это? Можно ли использовать косинусное сходство или нет?


Эта тема действительно долго задерживается на этом сайте. Просто недавний вопрос: stats.stackexchange.com/q/120085/3277 (см. Дальнейшие ссылки там). Что действительно интересно, так это то, как вы реализовали k-means, который обрабатывает косинусы Если вы опишите свой алгоритм в своем вопросе, он поможет людям, отвечающим на него.
ttnphns

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

I then assigned each document to a cluster based on cosine similarity- Косинус между доктором и центроидом? И после того, как все документы назначены, вы обновляете центроиды обычным (евклидовым) способом, потому что координаты документов в пространстве известны. Это так?
ttnphns

1
Только если сумма квадратов значений для каждого документа в вашем наборе данных одинакова , ваш подход будет работать и всегда будет сходиться. Потому что в этом случае (то есть, все одинаковой длины) косинусы между центроидами и документами будут строго монотонны с евклидовыми расстояниями между центроидами и документами. Но это будет означать, что использование косинусов для назначения ненужно, и тогда вы можете использовать стандартное назначение алгоритма k-средних на основе евклидовых расстояний. h
ttnphns

1
Я начинаю думать, что вы, возможно, ищете 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.