协同过滤的矩阵分解 - 新用户和项目?

时间:2012-10-07 08:52:08

标签: python machine-learning recommendation-engine svd collaborative-filtering

我一直在阅读有关使用矩阵分解进行协同过滤的内容,但我似乎找不到一个处理向系统添加新用户或项目或让用户对新项目进行评级的示例。在这些情况下,需要重新计算项目用户矩阵和分解,是否正确?如何在大量用户和项目中表现良好?有办法吗?

谢谢

1 个答案:

答案 0 :(得分:5)

您的问题分为两部分:(A)如何处理新用户和项目,以及(B)如何处理新的互动(例如评分,点击等)。

(A)处理新用户和项目基本上有两种不同的策略(无论我们是否使用矩阵分解或其他):

  1. 从用户(人口统计,调查)或项目(价格,流派,文字说明,类别)属性估算用户/项目功能
  2. 主动学习:向与系统交互的所有用户显示新项目,或向系统的新用户显示某些项目,以平衡系统的个人用户体验和信息获取。
  3. 学术文献中有很多关于这两个问题的论文。

    (B)这确实没有问题 - 对矩阵分解模型的增量更新没有很高的计算成本。例如,参见本文:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.165.8010&rep=rep1&type=pdf

    MyMediaLite库(免责声明:我是主要作者)支持几种矩阵分解方法的增量更新:http://ismll.de/mymedialite