Как кластеризовать наборы (пользователей/документов) с распределенным MinHash, используя метод объединения?

У меня есть большие сомнения по поводу того, как мне следует кластеризовать наборы с помощью MinHash вместе с техникой объединения.

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

Моя цель — использовать MinHash для кластеризации пользователей по сходству их подписей. В локальных, негруппированных настройках это было бы тривиально: если их хэш подписи одинаков, они входят в один и тот же кластер.

Если мы разделим сигнатуры на группы и обработаем их независимо, я смогу обработать группу, как я уже говорил, и сгенерировать группу кластеров для каждой полосы. У меня вопрос: как мне объединить эти кластеры? Просто объединить их, если у них есть хотя бы один общий элемент? Или я должен сделать что-то другое?

Спасибо


person Chobeat    schedule 24.05.2016    source источник


Ответы (1)


MinHash на самом деле не предназначен как автономный алгоритм кластеризации. Он предназначен в качестве фильтра-кандидата для обнаружения почти дубликатов.

При поиске похожих документов вы вычисляете минхэши для поиска кандидатов. Затем вам все равно нужно проверить этих кандидатов - они могут быть ложными срабатываниями! Чем больше подписей совпадают, тем больше вероятность, что они действительно совпадают.

Итак, если вы снова рассмотрите сценарий почти дубликата: если a является почти дубликатом b, а b является почти дубликатом c, то a также должен быть почти дубликатом c. Если это так, вы можете соединить все эти спички (после проверки) вместе. Если он не рассматривает иерархическую кластеризацию, подобную стратегии объединения (или не объединения) кандидатов.

person Has QUIT--Anony-Mousse    schedule 24.05.2016
comment
Это было то же самое рассуждение, происходящее в моей голове, но это сильное предположение, и мне бы хотелось получить какое-то подтверждение. Большое спасибо. - person Chobeat; 25.05.2016