Минимальный объем данных для совместного фильтра на основе элементов

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

Я использую скорректированное косинусное сходство между ресторанами.

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

В результате тестирования я обнаружил, что 1 группа пользователей, которые оценили оба ресторана, имеют плохое сходство (очевидно). Часто это -1 или 1. Поэтому я увеличил его до 2 групп пользователей, у которых есть оба ресторана, что дало мне большее сходство. Мне просто трудно определить, достаточно ли хорошо это сходство. Есть ли метод, который либо проверяет точность этого сходства, либо есть рекомендации о том, каков минимум?


person Community    schedule 09.11.2016    source источник


Ответы (1)


Короткий ответ — проверка параметров: попробуйте несколько значений «минимального количества пользователей, которые оценили оба ресторана» и измерьте результаты. С большим количеством пользователей вы лучше поймете сходство между объектами (ресторанами). Но ваша информация о сходстве будет более скудной. То есть вы сосредоточитесь на более популярных элементах и ​​у вас будет меньше возможностей рекомендовать элементы в длинном хвосте. Это означает, что у вас всегда будет компромисс, и вы должны измерять все, что позволит вам найти компромисс. Например, измерьте точность прогнозирования (например, RMSE), а также количество элементов, которые можно рекомендовать.

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

person Dan Jarratt    schedule 19.01.2017