Во всех современных рекомендательных системах, которые я видел, которые основаны на факторизации матрицы, неотрицательная матричная факторизация выполняется для матрицы фильма пользователя. Я могу понять, почему неотрицательность важна для интерпретируемости и / или если вам нужны редкие факторы. Но если вас интересует только прогнозирование, как, например, в конкурсе на призы netflix, зачем вводить ограничение на неотрицательность? Казалось бы, это строго хуже, чем допускать отрицательные значения в вашей факторизации.
Эта статья является одним из наиболее цитируемых примеров использования неотрицательной матричной факторизации в совместной фильтрации.
Ответы:
Я не специалист по рекомендательным системам, но, насколько я понимаю, предпосылка этого вопроса неверна.
Неотрицательность не так важна для совместной фильтрации.
Приз Netflix был выигран в 2009 году командой BellKor. Вот статья, описывающая их алгоритм: Решение BellKor 2008 для премии Netflix . Как легко видеть, они используют SVD-подход:
См. Также эту более популярную статью, написанную той же командой. Матричные методы факторизации для рекомендательных систем . Они много говорят о СВД, но вообще не упоминают NNMF.
См. Также это популярное сообщение в блоге Обновление Netflix: попробуйте это дома с 2006 года, также объясняющее идеи SVD
Конечно, вы правы, и есть некоторая работа по использованию NNMF для совместной фильтрации. Так что работает лучше, SVD или NNMF? Я понятия не имею, но вот заключение сравнительного исследования алгоритмов совместной фильтрации 2012 года:
источник