1. What is Recommender System
推荐系统提出的动机是什么呢?
- 对于商家:更好的卖产品,更好的宣传
- 对于个人:有一个比较感兴趣导向,可以以引起多巴胺回路兴奋
- 对于信息:能够快速从大量信息中找到想要的
🎉 推荐系统
理念
- 使用历史数据,如用户过去的喜好(past preferences)或类似用户过去的喜好来预测未来的喜好
- 通过观察过去用户或群体的喜好,试着预测他们未来的喜好,然后就可以试着给他们一些推荐了
基本假设
- 用户的偏好可能会保持稳定,并随着时间的推移而平稳变化
- 品味相似的用户对某一物品的评价也相似
通过这个基本假设,我们可以发现,推荐系统是将人们的过去数据(喜好什么的)当作聚类点进行聚类了,相似的簇具有类似的行为,而且这个行为在时间序列上是平稳变化(或者周期性变化)
从形式上讲,推荐系统采用一组用户U和一组项目I,学习函数f使其满足关系R
f:U×I→R
推荐系统与搜索引擎最大的区别在于,搜索引擎并没有考虑用户的喜好,而是考虑内容的相关性。
2.Recommendation Algorithms
2.1 Content-based Method
核心思想
步骤
- 描述向用户推荐的项目
- 创建用户画像,描述用户感兴趣的内容
- 将项目与用户简介进行比较,以决定推荐什么
评价指标
-
我们用一组向量表示项目和用户属性:
-
Ij=(ij,1,ij,2,...,ij,k)
-
Ui=(ui,1,ui,2,...,uj,k)
-
他们之间(用户u和项目i)的相似性扩压用余弦距离度量:
-
sim(Ui,Ij)=cos(Ui,Ij)=∑l=1kui,l2∑l=1kij,l2∑l=1kui,lij,l
接着就是计算最接近的top(k)项目啦!
上面的算法只是用用户去评价一个商品,比较适合喜好推荐,并没有基于用户群体给出一个客观的评价。
我们知道,某些商品虽然描述的很好,但可能并不受到群体喜欢(比如某些盗版),除却考虑推荐内容的相关性,还需要考虑目标群体,那怎么办呢?
2.2 Collaborative Filtering Algorithm
协同过滤算法基于用户-项目矩阵:
举个例子:User-Item Matrix
|
Lion King |
Aladdin |
Mulan |
Anastasia |
| John |
3 |
0 |
3 |
3 |
| Joe |
5 |
4 |
0 |
2 |
| Jill |
1 |
2 |
4 |
2 |
| Jane |
3 |
? |
1 |
0 |
| Jorge |
2 |
2 |
0 |
1 |
在商品评价中,得分可以由用户显示打分给出(explicit)
也可以从其他用户的行为中推测得到(implicit)
算法的具体步骤为:
- 权衡所有用户/项目与当前用户/项目的相似性
- 选择用户/项(邻居)的一个子集作为推荐器
- 使用邻居对相同(或类似)物品的评级来预测用户对特定物品的评级
- 推荐预测排名最高的项目
评价指标
-
余弦距离
-
皮尔逊相关系数
-
sim(Ui,Uj)=∑k(ri,k−rˉi)2∑k(rj,k−rˉj)2∑k(ri,k−rˉi)(rj,k−rˉj)
-
相较于余弦距离,皮尔逊系数做了中心缩放
-
更新指数
-
ru,i=rˉu+∑v∈N(u)Sim(u,v)∑v∈N(u)sim(u,v)(rv,i−rˉv)
-
其中,ru,i表示用户u对商品i的得分,rˉu表示用户的平均分,v∈N(u)表示与用户u最相似的邻居组
举个例子
|
Lion King |
Aladdin |
Mulan |
Anastasia |
| John |
3 |
0 |
3 |
3 |
| Joe |
5 |
4 |
0 |
2 |
| Jill |
1 |
2 |
4 |
2 |
| Jane |
3 |
? |
1 |
0 |
| Jorge |
2 |
2 |
0 |
1 |
我们现在要评价Jane对Aladdin的评分,需要怎么做呢?
1️⃣ 计算用户之间的相似度
sim(Jane,John)=32+32+3232+12+023∗3+3∗1+3∗0=0.73 sim(Jane,Joe)=52+02+2232+12+025∗3+0∗1+2∗0=0.88 sim(Jane,Jill)=12+42+2232+12+021∗3+4∗1+2∗0=0.48 sim(Jane,Jorge)=22+02+1232+12+022∗3+0∗1+1∗0=0.84
2️⃣ 选择最相似的topk,并计算他们的平均分。例如,我们选两个:
rˉjoe=45+4+0+2=2.75
joe是个老好人
rˉjorge=42+2+0+1=1.25
jorge给分不咋样
3️⃣ 基于最近的邻居计算得分
rJane,Aladdin=rˉJane+sim(Jane,Joe)+sim(Jane,Jorge)sim(Jane,Joe)(rJoe,Aladdin−rˉJoe)+sim(Jane,Joe)+sim(Jane,Jorge)sim(Jane,Jorge)(rJorge,Aladdin−rˉJorge) =1.33+0.88+0.840.88∗(4−2.75)+0.84∗(2−1.25)=2.33
3.Evaluation of Recommender Systems
推荐系统偏向于数据导向,不同的算法在不同的数据集上会有不同的表现
早期的工作中,人们比较关注准确性,后来呢,也逐渐重视用户满意度和性能。所以说,决定在比较评价中应采用何种综合措施是一项挑战。
1️⃣ 平均绝对误差(MAE)
MAE=n∑ij∣r^ij−rij∣
2️⃣ 标准平均绝对误差(NMAE)
NMAE=rmax−rminMAE
3️⃣ 均方根误差(RMSE)
更加强调偏差
RMSE=n1i,j∑(r^ij−rij)2
4️⃣ 精度(Precision)
P=TP+NPTP
用来评价模型本身的性能
5️⃣ 召回率(Recall)
完整性(覆盖率)的度量,更像在数据上的性能
R=TP+FNTP
6️⃣ F-Score
精确率和召回率互相影响,理想状态下肯定追求两个都高,但是实际情况是两者相互“制约”,此时需要综合考虑二者
F=(1+β2)β2P+RP⋅R
β用于控制权重。
7️⃣ 斯皮尔曼相关系数
ρ=1−n3−n6∑i=1n(xi−yi)2
8️⃣ Kendall’s τ