一、背景
本博客只记录了个人认为有益的知识要点,不适用所有人。
二、学习
第一章
-
推荐算法分类
1.1 社会化推荐:好友推荐1.2 基于内容的推荐:基于用户本身的喜好内容进行相关推荐
1.3 基于协同过滤的推荐:兴趣爱好交叉导向型,推荐喜好交叉其他用户的内容给用户
-
个性化广告投放的技术
2.1 上下文广告:分析用户正在浏览的网页内容,投放和网页内容相关的广告。谷歌adsense2.2 搜索广告:通过分析用户在当前会话中的搜索记录,判断用户的搜索目的,投档和用户目的相关的广告
2.3 个性化展示广告:根据用户的兴趣对不同的用户投放不同的展示广告。代表:雅虎。
-
推荐系统评测
3个参与方:用户、物品提供者和提供推荐系统的网站
目标:能够让推荐系统本身收集到高质量的用户反馈,不断完善推荐的质量增加用户和网站的交互,从而提高网站的收入。因此,最终目标是实现一个令三方共赢的系统。
3.1 评测推荐效果的试验方法
a. 离线实验
获取用户行为数据->分测试集和训练集->训练集上测试,测试集上预测->在测试集上进行结果预测
缺点:无法计算商业上关心的指标,和实际应用存在差距
b. 用户调研
让用户体验推荐系统,设置双盲实验(在试验过程中,测验者与被测验者都不知道被测者所属的组别(实验组或对照组))
c. 在线实验
ABtest
算法上线的三个实验:1.离线实验证明离线指标上优于现有的算法;2.用户调研确定用户满意度不低于现有的算法;3.ABtest确定关心的指标优于现有的算法。
3.2 评价指标的建设
- 用户满意度
方法1:问卷调查,从具体引起不满意的点进行询问;
方法2: 指标,点击率、用户停留时间和转化率
- 预测准确度
方法1 :评分预测,用户打分,利用数学手段RMSE和MAE对数据进行处理回估
方法2 :Top N推荐, 预测准确率 = 准确率/召回率 (更为推崇)
- 覆盖率:一个推荐系统对物品长尾的发掘能力
两个指标来定义:信息熵和基尼系数
a. 信息熵:特定信息出现的概率
b. 基尼指数:用于评判一个推荐系统是否有马太效应(强者更强,弱者更弱。算法如pagerank,协同过滤算法)
G1:从初始用户行为中计算出物品流行度的基尼指数
G2:从推荐列表中计算出的物品流行度的基尼指数
G2>G1,则说明有马太效应
case典型: 抖音和快手的推荐机制
-
多样性:满足用户的广泛需求
-
新颖性
定义:给用户推荐他们以前没有听说过的物品,但是基于原本用户的兴趣,比如喜欢周星驰,推荐了一个周星驰不知名的电影
评测方式:推荐结果中物品的平均热门程度较低,那么推荐结果就可能有比较高的新颖性(千人千面) + 用户对结果的满意程度
- 惊喜度
定义:不基于原本用户的兴趣,和历史兴趣不相似但是用户觉得满意,比如喜欢周星驰,推荐张艺谋
评测方式:和历史兴趣的相似度 + 用户对结果的满意程度
case:淘宝
- 信任度
调研方法:通过问卷调查询问用户是否信任推荐系统的推荐结果。
提高系统的信任度的方法:
a. 增加推荐系统的透明度:提供推荐解释, 让用户了解推荐系统的运行机制。
b. 考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并用好友进行推荐解释。
case:即士多,epinion
- 实时性
a. 推荐系统需要实时地更新推荐列表来满足用户新的行为变化。
b. 推荐系统需要能够将新加入系统的物品推荐给用户
- 健壮性:衡量一个推荐系统抗击作弊的能力
提高的方法:
a. 选择健壮性高的算法
b. 在涉及推荐系统时尽量使用代价比较高的用户行为
c. 使用数据前进行攻击检测从而对数据进行清理。
- 商业目标:是否达成网站的商业目标,和网站的盈利模式。
评测指标的各种途径
指标 | 离线实验 | 问卷调查 | 在线实验 |
---|---|---|---|
用户满意度 | x | √ | ◯ |
预测准确度 | √ | √ | x |
覆盖率 | √ | √ | √ |
多样性 | ◯ | √ | ◯ |
新颖性 | ◯ | √ | ◯ |
惊喜度 | x | √ | x |
3.3 评测维度
增加评测维度的目的可以知道一个算法在什么情况下性能最好。
三种评测维度
a. 用户维度: 用户的人口统计学信息,活跃度以及是不是新用户
b. 物品维度: 物品的属性信息、流行度、平均分以及是不是新加入的物品
c. 时间维度: 工作日or周末,白天or晚上。