Я ищу методы для создания "соседей" (людей со схожим вкусом) для пользователей на сайте, над которым я работаю; что-то похожее на способ last.fm работает.
В настоящее время у меня есть функция совместимости для пользователей, которые могут вступить в игру. Он оценивает пользователей, имеющих 1) рейтинг аналогичных предметов 2) оценил элемент аналогичным образом. Функция весит больше 2 баллов, и это было бы самым важным, если бы мне пришлось использовать только один из этих факторов при создании "соседей".
Одна из моих идей заключалась бы в том, чтобы просто рассчитать совместимость каждой комбинации пользователей и выбрать пользователей с самым высоким рейтингом для соседей для пользователя. Недостатком этого является то, что по мере того, как число пользователей увеличивается, этот процесс кулаков занимает очень много времени. Для 1000 пользователей требуется 1000C2 (0,5 * 1000 * 999 = = 499 500) вызовов функции совместимости, которая также может быть очень тяжелой на сервере.
Итак, я ищу любые советы, ссылки на статьи и т.д. о том, как лучше всего достичь такой системы.