Совместная Программа Фильтрации: Что сделать для Счета Pearson, Когда Нет Достаточного количества Данных

Я создаю механизм рекомендации с помощью совместной фильтрации. Для очков подобия я использую корреляцию Pearson. Здорово большую часть времени, но иногда у меня есть пользователи, которые только совместно используют 1 или 2 поля. Например:

User 1{
a: 4
b: 2
}

User 2{
a: 4
b: 3
}

Так как это - только 2 точки данных, корреляция Pearson всегда была бы 1 (прямая линия или идеальная корреляция). Это, очевидно, не то, что я хочу, поэтому какое значение я должен использовать вместо этого? Я мог просто выбросить все экземпляры как это (дайте корреляцию 0), но мои данные действительно редки прямо сейчас, и я не хочу терять что-либо. Есть ли какой-либо счет подобия, который я мог использовать, который согласуется с остальной частью моих очков подобия (весь Pearson)?

6
задан Charles 9 December 2013 в 05:16
поделиться

3 ответа

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

.
0
ответ дан 17 December 2019 в 02:29
поделиться

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

Каноническое решение этой проблемы, описанное Херлокером и др. в работе "Эмпирический анализ выбора дизайна в алгоритмах коллаборативной фильтрации на основе соседства", заключается в "демпфировании" корреляции Пирсона для коррекции чрезмерно высокой корреляции между пользователями с небольшими наборами совместных рейтингов. По сути, вы умножаете корреляцию Пирсона на меньшее из 1 и cc/50, где cc - количество элементов, которые оценили оба пользователя. В результате, если у них не менее 50 общих предметов, сходство является сырым Пирсоном; в противном случае оно линейно масштабируется количеством общих предметов, получивших оценки. Это превращает надуманную корреляцию в 1 в сходство в 0,02.

50 может потребоваться адаптировать в зависимости от вашего домена и системы.

Вы также можете использовать косинусное сходство, которое не страдает от этого ограничения таким же образом. Однако для CF "пользователь-пользователь" корреляция Пирсона обычно предпочтительнее.

Обновление: В более поздней работе мы обнаружили, что косинусное сходство было преждевременно отвергнуто для МВ на основе пользователя. Косинусное сходство, когда оно выполняется на нормализованных данных (вычтите среднее значение пользователя из каждого рейтинга перед вычислением косинусного сходства --- результат очень похож на корреляцию Парсона, за исключением того, что он имеет встроенный член самозатухания), превосходит Пирсона в "стандартной" среде. Конечно, если возможно, вам следует провести тестирование на собственных данных и в собственной среде, чтобы увидеть, что работает лучше всего. Статья здесь: http://grouplens.org/node/479

Отказ от ответственности: я являюсь студентом в лаборатории, которая подготовила вышеупомянутую работу Херлокера.

5
ответ дан 17 December 2019 в 02:29
поделиться

Да, Пирсон часто упоминается в описаниях рекомендательных движков, и он работает разумно, но имеет некоторые причуды, как эта. (Кстати, в вашем примере корреляция равна 1, а не 0.)

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

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

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

Можно рассмотреть и другие метрики, которые не имеют таких проблем: корреляция Спирмена, расстояние Танимото (коэффициент Жаккара).

Где можно узнать больше и получить реализацию? Вуаля, Apache Mahout

1
ответ дан 17 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: