content based recommendation 基于内容的推荐系统

基于内容的推荐系统的核心思想是:推荐给用户x那些与x给出高评价的物品近似的物品。

具体方法为:

  1. 为物品简历“档案” item profiles
  2. 根据用户对物品的打分建立用户“档案” user profiles
  3. 推荐时,根据用户档案与物品档案之间的相似程度进行推荐

之前的文档做例子,TF-IDF矩阵可以视为一个item profiles,

例子中的4个文档是四个待推荐给用户的物品,分别对应矩阵的4列,矩阵的每一行代表一个词语,矩阵的元素是TF-IDF值,代表的是各个词语在文档中占得重要程度。

如果推荐的物品是电影,那么可以每一列代表一个电影,每一行代表一个演员或者一个导演,或者电影的一种风格,元素值为1或0,代表电影中是否有该演员出演。同样的也需要对该二元矩阵进行标准化处理,例如:每一行的元素都除以该行的总和。

下面来了4个用户,分别对这四个物品中的一个至多个进行打分,分值在0~5范围内,每一列代表一个用户,每一行代表一篇文档,用我们上面item profile的矩阵与其做点积,获得的矩阵便是用户档案。可以理解为各个用户对文档的各个成分的喜好程度,如果是电影推荐的例子,则可以理解为是用户对各个演员、导演或者风格的喜好。

推荐时,我们需要一个距离的测量,来计算用户档案i与物品档案x之间的相似程度,例如:

QQ截图20150302224110

另外,根据item profile我们可以计算物品对之间的相似度(例如同上面一样的使用cosine距离),因而,可以找出用户打分很高的物品,然后找到与该物品相似度较高的物品作为推荐。

例如有三部电影,以及一位用户对3部电影的打分,计算两两电影之间的近似程度。矩阵的每一行代表一部电影,前5列代表电影的特征(演员、导演一类),最后一列代表用户A的评分。计算相似度时我们将用户的打分也算入其中,并且乘以一个系数a:

Leave a Reply

Your email address will not be published. Required fields are marked *