Возможно, вы захотите использовать косинусное сходство, а не корреляцию Пирсона. Он не страдает от этой проблемы и широко используется в литературе по системам рекомендаций.
Каноническое решение этого, описанное Herlocker et al. в «Эмпирическом анализе вариантов проектирования в алгоритмах совместной фильтрации на основе соседства» - «ослабить» корреляцию Пирсона, чтобы скорректировать слишком высокую корреляцию между пользователями с небольшими наборами совместного рейтинга. По сути, вы умножаете корреляцию Пирсона на меньшее из 1 и cc / 50, где cc - количество элементов, которые оценили оба пользователя. Эффект состоит в том, что, если у них есть по крайней мере 50 общих элементов, сходство - сырой Пирсон; в противном случае он масштабируется линейно с количеством общих предметов, которые они имеют. Оказывается, что ложная корреляция 1 в подобие 0,02.
50, возможно, потребуется адаптировать в зависимости от вашего домена и системы.
Вы также можете использовать косинусное сходство, которое таким же образом не страдает от этого ограничения. Однако для CF пользователя-пользователя корреляция Пирсона обычно предпочтительна.
Обновление: В более поздней работе мы обнаружили, что сходство косинусов преждевременно отклонено для пользовательского CF. Сходство по косинусу, когда выполняется на нормализованных данных (вычтите среднее значение пользователя из каждого рейтинга до вычисления сходства по косинусу - результат очень похож на корреляцию Парсона, за исключением того, что он имеет встроенный самозатухающий термин), превосходит Пирсона в «стандартная» среда. Конечно, если это возможно, вам следует провести некоторое тестирование ваших собственных данных и среды, чтобы увидеть, что работает лучше всего. Бумага здесь: http://grouplens.org/node/479
Отказ от ответственности: я студент в лаборатории, которая произвела вышеупомянутую газету Херлокера.