Система рекомендацій веде журнал того, які рекомендації були зроблені конкретному користувачеві та чи приймає він рекомендацію. Це як
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 однаково , то система може не рекомендувати рекомендувати фільм зі славним BGM користувачеві 1, тоді як користувач 1 все ще любить фільм із славним BGM. Я думаю, що цієї ситуації слід уникати.