Content-based Recommendations
Content-based Recommendations
Introduction to RecSys
一 CBF包括以下三方面:
1. Item Representation:从items的contents中抽取特征,建立描述该item的特征向量.
类似文档的Vector Space Model,以item的tags的TF-IDF作为item的特征.
2. Profile Learning:从用户对items的rating记录,建立描述用户偏好的特征.
根据用户的rating data,对用户rating过的全部item的各个特征分别求和并归一化,作为用户profile
3. Recommendation Prediction:通过1和2得到的用户profile与候选item的特征,为此用户推荐相关性最大的item list
求用户profile和item的cosine,取Top-N个items作为推荐的item list返回.
二 CBF 优缺点
参考自推荐阅读1
优点:
用户之间的独立性(User Independence):既然每个用户的profile都是依据他本身对item的喜好获得的,自然就与他人的行为无关。而CF刚好相反,CF需要利用很多其他人的数据。CB的这种用户独立性带来的一个显著好处是别人不管对item如何作弊(比如利用多个账号把某个产品的排名刷上去)都不会影响到自己。
好的可解释性(Transparency):如果需要向用户解释为什么推荐了这些产品给他,你只要告诉他这些产品有某某属性,这些属性跟你的品味很匹配等等。
新的item可以立刻得到推荐(New Item Problem):只要一个新item加进item库,它就马上可以被推荐,被推荐的机会和老的item是一致的。而CF对于新item就很无奈,只有当此新item被某些用户喜欢过(或打过分),它才可能被推荐给其他用户。所以,如果一个纯CF的推荐系统,新加进来的item就永远不会被推荐.
缺点:
item的特征抽取一般很难(Limited Content Analysis):如果系统中的item是文档(如个性化阅读中),那么我们现在可以比较容易地使用信息检索里的方法来“比较精确地"抽取出item的特征。但很多情况下我们很难从item中抽取出准确刻画item的特征,比如电影推荐中item是电影,社会化网络推荐中item是人,这些item属性都不好抽。其实,几乎在所有实际情况中我们抽取的item特征都仅能代表item的一些方面,不可能代表item的所有方面。这样带来的一个问题就是可能从两个item抽取出来的特征完全相同,这种情况下CB就完全无法区分这两个item了。比如如果只能从电影里抽取出演员、导演,那么两部有相同演员和导演的电影对于CB来说就完全不可区分了。
无法挖掘出用户的潜在兴趣(Over-specialization):既然CB的推荐只依赖于用户过去对某些item的喜好,它产生的推荐也都会和用户过去喜欢的item相似。如果一个人以前只看与推荐有关的文章,那CB只会给他推荐更多与推荐相关的文章,它不会知道用户可能还喜欢数码。
无法为新用户产生推荐(New User Problem):新用户没有喜好历史,自然无法获得他的profile,所以也就无法为他产生推荐了。当然,这个问题CF也有。
三 本节课程材料
- Vedio
- Slides
- Code
推荐阅读:
- 基于内容的推荐 by BreezeDeus
这篇文章介绍得更加全面,特别是Profile Learning部分. - Pazzani M J, Billsus D. Content-based recommendation systems[M]//The adaptive web. Springer Berlin Heidelberg, 2007: 325-341.
- Coursera course: Introduction to Recommender Systems