A Survey of Collaborative Filtering Techiques (1)
Collaborative filtering (CF)
协作过滤这个词自从被Tapestry发明出来之后,被推荐系统圈子里面的人广泛采用,尽管这个词有点词不达意--推荐引擎并没有和接受者协作,也不是通过过滤掉那些不该推荐的物品(其实是挑选出来那些接受者感兴趣的)。
CF的最基本的假设是如果用户X和Y都对n个物品的评价类似,或者拥有相同的行为(购买,观看,听),那么他们也会对其他的东西有类似的评价或者行为。
什么是所谓的评价?一可以是显式的打分(1-5分),也可以是隐式的指示,比如说购买或者点击。
CF有很多challenge:1,sparsedata;2,实时性,3,同义词困扰(类似的物品的名字也同样类似);4,shillingattack(欺诈攻击);5,数据噪音;6,隐私保护问题。
早期的CF使用用户评价数据来计算相似度或者用户/物品之间的权重,仅以进行预测或者推荐。这就是所谓的memory-basedCF,著名的亚马逊就是采用这种方法的。但是这种方法也有明显的局限性,因为他是基于commonitems,所以当数据很稀疏或者数据很少的时候就不能有效的预测了。人民的智慧是无穷的,绞尽脑汁又搞出来model-basedCF,他使用评价数据来估计或者学习模型来做预测,这里的模型可以是数据挖掘或者机器学习的模型。比较著名的又贝叶斯信任网络CF,聚类CF,潜在语义CF,还有压倒一切既有系统的马尔科夫决策过程CF。
其实除了CF之外,还有一类方法叫做content-basedfiltering,它是通过分析文本内容来找到内容里面的规则,挖掘出用户和物品的特征来预测和推荐。还有一种,他把memory-basedfiltering和content-based filtering合起来,成为混合cf。