Система рекомендаций ведет учет того, какие рекомендации были сделаны конкретному пользователю и принимает ли этот пользователь рекомендацию. Это как
user_id item_id result
1 4 1
1 7 -1
5 19 1
5 80 1
где 1 означает, что пользователь принял рекомендацию, а -1 означает, что пользователь не ответил на рекомендацию.
Вопрос: Если я собираюсь давать рекомендации группе пользователей на основе описанного выше вида журнала и хочу максимально увеличить баллы MAP @ 3, как мне поступить с неявными данными (1 или -1)?
Моя идея состоит в том, чтобы рассматривать 1 и -1 как рейтинги и прогнозировать рейтинг, используя алгоритмы машинного типа факторизации. Но это не кажется правильным, учитывая асимметрию неявных данных (-1 не означает, что пользователю не нравятся рекомендации).
Редактировать 1 Давайте подумаем об этом в контексте подхода матричной факторизации. Если мы будем рассматривать -1 и 1 как рейтинги, возникнут некоторые проблемы. Например, пользователю 1 нравится фильм А, который получает высокие оценки по одному фактору (например, имеет великолепную фоновую музыку) в пространстве скрытых факторов. Система рекомендует фильм B, который также имеет высокие оценки в «великолепной фоновой музыке», но по какой-то причине пользователь 1 слишком занят, чтобы рассмотреть рекомендацию, и у нас есть фильм с рейтингом -1, равный -1. , тогда система может отговорить рекомендовать фильм с великолепной фоновой музыкой пользователю 1, в то время как пользователь 1 все еще любит фильм с великолепной фоновой музыкой. Я думаю, что этой ситуации следует избегать.