Добрый всем день.
Внесу свои 5 копеек.
Меня, как системного аналитика, этот вопрос больше привлекает из "спортивного" интереса.
И так. Есть выборка оценок пользователя, которую можем считать экспертной оценкой. Есть множество других "экспертов" со своими выборками. Задача - оценить "близость" мнений этих экспертов.
Очевидно, что сначала стоит определить, что есть "близость". Этот вопрос тут так или иначе поднимался, но т.к. он - краеугольный камень всей проблемы, рассмотрю его снова.
Во-первых, каждый видит "близость" по-своему. Кто-то хочет дифференциации, кто-то хочет универсальности. Но, т.к. мы не можем (технически) позволить себе индивидуализировать эту систему, то будем отталкиваться от психологического стремления человека к индивидуализму, а, значит, дифференциации вкусов.
Во-вторых, не все критерии близости равнозначны для всех людей (это перекликается с предыдущим), значит, желательно учесть не только наличие дифференциации вкусов, но и ввести взвешенную оценку для каждого "эксперта" (не просто учитывать, что Вася может любить комедии, а ужасы - ненавидеть, но и то, с какой силой лично он это делает).
И сразу о втором: тут можно применить обыкновенную выборочную оценку частоты появления признака (год, жанр и т.д.) с размытием Лапласа, которая часто применяется в тех же спам фильтрах при составлении словарей.
Кстати, какие признаки существенны, а какие нет, можно проанализировать по уже имеющимся данным без особых проблем, применив, хотя бы, простейшие методы факторного анализа.
Далее, в-третьих, необходимо унифицировать выбор экспертом оценки постфактум, т.к. нет и не может быть в данных условиях априорной унификации правил оценивая.
Лучший способ здесь, на мой взгляд, построение шкалы относительности для конкретных двух экспертов: тут все просто, опять же обыкновенная выборочная частота появления одинаковой разницы в одинаковых оценках одинаковых фильмов, последующее применение полученных нормирующих коэффициентов.
Уже на этом этапе мы получаем относительно унифицированную систему соотношения оценок экспертов с индивидуальным учетом их предпочтений.
Далее дело за малым, оценить численно "близость" оценок. Проще всего использовать относительное среднеквадратичное отклонение (ну или медиану, как кому больше нравится). Что допустимо, т.к. мы уже "привели" оценки к единому виду.
П.С. Понимаю, что это нормальная такая доп. нагрузка на сервер: хранить и пересчитывать все коэффициенты, учитывая, что речь идет о взаимосвязи "каждый с каждым" - это не мало. Но, проведя правильную предобработку данных 1 раз, сделав адаптивную систему расчета, можно существенно снизить нагрузку на сервера и добиться адекватной работы системы. Вопрос лишь в том, надо ли это кому-то: вложение ресурсов (человеко-часов) в то, что прямой прибыли не принесет, т.к. больший процент пользователей никак не оценит изменений в системе рекомендаций сайта.
П.П.С. Прежде чем использовать оценку корреляции Пирсона (о ней тут говорилось, как о той, что лежит в основе действующей системы) - кто-нибудь проверял выборочные данные на наличие нелинейных связей? По-моему, использовать оценку корреляции (любую) на таких данных, как экспертная оценка тысяч людей, - не самый правильный подход изначально, если нет прямых данных, указывающих на наличие именно линейной природы взаимосвязей этих оценок.