推荐系统的目标:根据用户的喜好,为不同的用户推荐不同的物品,促成更多的交易。
具有相似消费行为的人,可以相互推荐。比如用户a、b同时购买了手机,a又购买了手机壳,那么b也是手机壳的潜在买家。
往往需要一个物品评分矩阵R,元素 ri,j 表示用户i对物品j的评分。一般采用5分制,从1(非常不喜欢)到5(非常喜欢)。形如:
表1.1 一个评分矩阵示例
user | p1 | p2 | p3 | p4 | p5 |
---|---|---|---|---|---|
u1 | 5 | 3 | 4 | 4 | ? |
u2 | 3 | 1 | 2 | 3 | 3 |
u3 | 4 | 3 | 4 | 3 | 5 |
u4 | 3 | 3 | 1 | 5 | 4 |
u5 | 1 | 5 | 5 | 2 | 1 |
ui,pi
分别表示用户与物品编号。?
表示待评分。
基本思想:先算用户相似度,找到与用户u最邻近的n个用户。然后根据这些用户对物品p的评分,预测出u对p的评分。
用户相似度,即历史评分行为相似。这也可以说明爱好相似。
使用Pearson相关系数(可译为培生,皮尔逊等),计算a,b两个用户的相似度公式
N为与用户a打分行为最相似的n个用户的集合。大多数情况下,n取值为20~50比较合理。
基于物品的协同过滤,item-based collaborative filtering 。
基本思想:在购买了p1物品的用户集合中,很多也买了p2,那么其他p1的购买者也是p2的潜在购买者。
物品a,b的相似度计算:
U(p)
表示购买了物品p的用户集合。
基本思想:基于内容评估未购买物品与已购买物品的相似度,择优推荐。
为物品维护一些特征集合。 以图书为例:
表2.1物品属性
书名 | 体裁 | 作者 | 类型 | 价格 | 关键词 |
---|---|---|---|---|---|
The Lace Reader | fiction,mystery | Tom | Hardcover | 50.0 | detective,historical |
表2.2用户小明的偏好
书名 | 体裁 | 作者 | 类型 | 价格 | 关键词 |
---|---|---|---|---|---|
/ | fiction,romance | Selina | Paperback(平装) | 40.0 | school,youth |
用户偏好可以分析已购买物品的特征得到。
特征重叠相似度一般用Dice系数
计算。
a,b两物品的Dice系数计算为:
常用于机器学习的N-折交叉检验同样适用。
用户感知不到推荐评分,他看到的就是一个推荐列表,也就是评分后top-n的物品列表。所以可以定义 准确率=|命中集合||购买集合| :
Rec(u)
为生成的用户u的推荐列表;
Test(u)
为测试集中用户u的购买列表。二者的交集就是命中的物品集合。
可以定义 准确率=|命中集合||推荐集合| :
可以使用均方根误差来评估。