谢谢洪老师的分享。
按照网上的信息,这里列一下传统的协同过滤常见问题
稀疏性(Sparsity)问题:用户和项目的数量非常大时评分矩阵会极度稀疏,对算法的效率产生消极影响;同时由于这个问题的存在,两个用户的之间的相似度很有可能为零,产生“邻居传递损失”现象。
同义词(Synonymy)问题:在实际应用中,不同的项目名称可能对应相似的项目,基于相似度计算的推荐系统不能发现这样的潜在关系,而是把它们当不同的项目对待。
新用户/项目(New User/Item)问题:对于新用户问题,由于没有对项目产生任何评分,因此也无法计算相似度,当然也就不能产生推荐。对于新项目,同样存在类似问题,系统在开始时推荐品质较差。也就是另一个评论中提到的“冷启动问题”。从一定角度可以看成是稀疏问题的极端情况。
可扩展(Scalability)问题:基于最近邻算法在项目和用户的维数增加会导致计算量非常大,算法的可扩展性(即适应系统规模不断扩大的问题)会影响模型的训练时间。基于模型的算法虽然可以在一定程度上解决算法的可扩展性问题,但是该类算法往往比较适于用户的兴趣爱好比较稳定的情况,因为它要考虑用户模型的学习过程以及模型的更新过程,对于最新信息的利用比全局数值算法要差些。KNN方法可以对整个数据集的子集进行实验,依据他们的统计数据来获得最近邻居,但有可能会引入误差。
个性化(Personalization)问题:也就是如何推荐给用户小众独特的商品,而不是都只推荐主流的商品。我个人认为还有如何推荐新的商品,让用户有惊喜。但又要保持平衡。我感觉去年netflix的"artwork-personalization"就是朝这个方向努力的
传统的推荐系统出了文中提到的方法外,还有把内容推荐(老师的下篇文章)和协同推荐组合在一起的算法和基于聚类的协同过滤推荐算法。
展开