Recommender System 推荐系统
由于网络电商的兴起,商品由实体中有限的个数到互联网时代无数商品可以购买,使得长尾理论被广泛关注。这些都是推荐系统兴起的条件。推荐有多种类型,我们关注的是对个体用户的定制推荐。
Formal Model
Utility Matrix
上图是一个Utility Matrix的例子,A-D表示用户,矩阵中是用户对不同电影的评分。推荐系统的目标就是推测出空白处的评分。当然在现实场景中这个矩阵肯定是极其稀疏的,我们没必要推测所有空白栏的值,而是计算一部分评分较高的电影,作为根据用户喜好做出的推荐。
Key Problem
- 如何获取Utility Matrix中的R,即上例中的评分。
- 如何根据已有的用户评分推断用户对未评分item的喜好度。(主要关注高分部分)
- 如何评价推荐系统的推荐方法
下面来解决上述问题:
Gathering Ratings获取评分
explicit
ask people to rate items
doesn’t scale: only a small fraction of users leave ratings and reviewsimplicit
Learn ratings from user actions- E.g., purchase implies high rating
What about low ratings?
Extrapolateing Utilities推断未知项
主要的问题是utilities Matrix是非常稀疏的,而且许多用户没有对物品进行评分。
推荐系统的推荐方法主要有三种:基于内容的,协同过滤以及基于隐含元素的。具体的方法实现在后面详细讲解。Evaluation将在后面的讲解。
Content-Based Recommendations
Main idea: 将与用户X打高分的物品相似的物品推荐给用户X。例如,有相同演员或导演的电影用户可能都喜欢,相似内容的文章或新闻用户可能都感兴趣以及将有共同好友的人推荐为好友等。
Item Profiles
item profile 就是特定物品的特征,如电影的演员,导演,类型等特征就是电影的profile。
For each item,create an item profile.将item profile看作是一个向量。
因此,profile可以看成是item(document)的重要的特征或词。这个重要特征的选取往往使用的是TF-IDF。(TF-IDF的解释就不说了,可自行百度之)
User Profiles
根据已有的item profiles得到user profiles
More Sophisticated aggregations possible
对于Boolean utilities Matrix,user profile的计算直接求平均即可。
但是对于任意数字评分,如1-5,由于不同用户的评分标准不同,则需要对数据进行一个归一化处理,图例:
有了这user profile x和item profile i后,要预测用户对于i的喜好,可以通过计算余弦相似度求得,即U(x, i)= con( θ)=(x⋅i)/(|x||i|)