1. 好的推荐系统
1.1. 个性化推荐系统应用
- 电子商务
- 电影和视频网站
- 个性化音乐网络电台
- 社交网络
- 个性化阅读
- 基于位置的服务
- 个性化邮件
- 个性化广告
1.2. 推荐系统评测
1.2.1. 推荐系统实验方法
1.离线实验
步骤:
- 日志构造用户行为数据集
- 数据集划分
- 训练模型
- 在测试集上查看离线评测指标
优缺点:
优点
- 不需要对实际系统的控制权
- 不需要用户参与实验
- 速度快,可以测试大量算法
缺点
- 无法计算商业上关心的指标,点击率、转化率
- 离线实验的指标和商业指标存在差距
例如预测准确率和用户满意度之间存在很大差别,高准确率并不意味着高用户满意度
2.用户调查
用户调查可以直接获得用户主观感受的指标,比如推荐结果是否使用户惊喜、满意
优缺点
优点
- 获得很多体现用户主观感受的指标
- 相对在线实验粉线很低,出错后容易弥补
缺点
- 招募测试用户代价大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足
- 用户在测试环境下的行为和真实环境的行为可能有多不同,导致在真实环境无法复现某些测试指标。
3.在线实验
在线实验常用的试验方法为AB测试。通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后比较不同组下的评测指标。
优点:
优点:AB测试的优点是可以公平地获得不同算法在实际在线使用时的性能指标。
缺点:缺点是周期比较长,必须通过长期的实验才能得到可靠的结果。
一般来说,一个新的推荐算法最终上线,要完成上述三个实验:
- 首先通过离线实验证明它在很多离线指标上优于现有算法
- 然后通过用户调查确定它的满意度不低于现有算法
- 最后通过在线的AB测试确定它在我们关心的指标上优于现有算法。
1.2.2. 评测指标
1.用户满意度
无法通过离线实验获得,只能通过用户调查和在线实验获得
用户调查:从不同侧面询问用户对结果的不同感受得到
在线实验:对用户行为的统计得到
- 例如是否购买了推荐的商品(购买率)
- 通过满意(不满意)按钮来收集用户的满意度
- 点击率
- 用户停留时间
- 转化率
2.预测准确度
离线指标
- 评分预测:评价指标为均方根误差 R M S E RMSE RMSE,平均绝对值误差 M A E MAE MAE
- TopN推荐:准确率,召回率
3.覆盖率
覆盖率描述了推荐系统对物品长尾的发掘能力,定义为推荐系统能够推荐出来的物品站总物品的比例。
记系统的用户集合为
U
U
U,推荐系统给每个用户推荐一个长度为
N
N
N的物品列表
R
(
u
)
R(u)
R(u),覆盖率的计算公式为:
Coverage
=
∣
⋃
u
∈
U
R
(
u
)
∣
∣
I
∣
\text { Coverage }=\frac{\left|\bigcup_{u \in \mathrm{U}} R(u)\right|}{|I|}
Coverage =∣I∣∣∣⋃u∈UR(u)∣∣
可以通过物品在推荐列表中出现次数的分布描述推荐系统挖掘长尾的能力。如果分布比较平,说明推荐系统的覆盖率较高;如果分布较陡峭,说明推荐系统的覆盖率较低。
信息熵
H
=
−
∑
i
=
1
n
p
(
i
)
log
p
(
i
)
H=-\sum_{i=1}^{n} p(i) \log p(i)
H=−i=1∑np(i)logp(i)
p
(
i
)
p(i)
p(i)是物品
i
i
i的流行度除以所有物品流行度之和。流行度是物品在推荐列表出现的次数
基尼系数
G
=
1
n
−
1
∑
j
=
1
n
(
2
j
−
n
−
1
)
p
(
i
j
)
G=\frac{1}{n-1} \sum_{j=1}^{n}(2 j-n-1) p\left(i_{j}\right)
G=n−11j=1∑n(2j−n−1)p(ij)
现将物品按流行度从小到大排序,纵坐标是物品累计流行度,横坐标是物品累计占比。
基尼系数为
S
A
/
(
S
A
+
S
B
)
SA/(SA+SB)
SA/(SA+SB),如果物品流行度分配很平均,则黑色曲线会趋于对角线,即SA会很小,基尼系数就会很小。
4.多样性
描述了列表物品两两之间的不相似性。
5.新颖性
- 过滤用户用过(看过)的物品
- 推荐物品的平均流行度,流行度越低新颖性可能较高
6.惊喜度
7.信任度
如果用户信任推荐系统,就会增加用户和推荐系统的交互
8.实时性
- 推荐系统需要实时地更新推荐列表来满足用户新的行为变化
- 推荐系统需要能够将新加入系统的物品推荐给用户
9.健壮性
推荐系统抗击作弊的能力。常用的作弊方法如行为注入作弊,如恶意刷好评。
健壮性的评测主要通过模拟攻击来评测。向数据集中注入噪声数据,对比注入前后算法的表现。
提高健壮性的方法:
- 使用代价比较高的用户行为
- 在使用数据前,进行攻击检测,对数据进行处理
10.商业目标
销售额、广告点击总数