1. 什么是推荐系统
information overload
代表性解决方案: 分类目录/搜索引擎
long tail
以看电影为例: social recommendation(朋友、专家提供)/content-based filtering/collaborative filtering
SUM TO: 推荐系统是自动联系用户和物品的一种工具
2. 个性化推荐系统应用举例
个性化推荐系统需要依赖用户的行为数据
个性化推荐系统主要作用是:分析大量用户行为日志,给不同用户提供不同的个性化页面展示提高网站的点击率和转化率
总而言之,基本由3个部分组成:前台的展示页面,后台的日志系统和推荐算法系统
2.1 电子商务
Amazon为例:
1.历史行为(可以对结果进行反馈、展示推荐原因)基本基于物品(item-based method)
2.FaceBook 好友推荐
- 相关推荐列表 (在亚马逊购买产品时会在信息下面展示相关商品)(最重要的是打包销售cross selling)
2.2 电影和视频网站
Netflix为例:
展示界面:电影标题和poster + 用户反馈模块(PLAY/rate/not interested) + 推荐理由
YouTube为例:
基于物品的推荐算法:给用户推荐和他们曾经喜欢的电影相似的电影
2.3 个性化音乐网络电台
个性化推荐应用所需两个条件:1.信息过载;2.用户大部分啥时候没有明确的需求
Pandora: 基于内容(专家对歌曲的不同特性进行标注,成为gene;根据gene进行内容相似度计算)
Last.fm: 基于用户历史行为
2.4 社交网络
社交网络中的个性化推荐技术主要应用在:
- 利用用户的社交网络信息对用户进行个性化的物品推荐
- 信息流的会话推荐
- 给用户推荐好友
最宝贵的数据包括:用户之间的社交网络关系;用户的偏好信息(Instant Personalization API)
2.5 个性化广告(目前对业务有效的方面)
Ad Targeting
广告推荐着重于帮助广告找到可能对他们感兴趣的用户
目前技术主要有三种:
1.上下文广告(分析用户正在浏览的网页内容,投放相关广告
2.搜索广告(分析用户在当前会话中的搜索记录判断搜索目的投放相关广告
3.个性化展示广告
3. 推荐系统评测
完整的推荐系统讯在3个参与方:用户、物品提供者、提供推荐系统的网站
最重要的指标:预测准确度
3.1 推荐系统试验方法
主要有3种评测推荐效果的试验方法:
1.offline experiment
通过日志系统获得用户行为数据,并按照一定格式生成标准数据集
将数据集按照一定的规则分成训练集和测试集
在训练集上训练用户兴趣模型,在测试集上进行预测
通过实现定义的离线指标评测算法在测试集上的预测效果
缺点:无法计算商业上关心的指标(点击率转化率等)
离线试验指标和商业指标存在差距
2.user study
离线指标和实际商业指标存在差距(预测准确率和用户满意度之间存在很大差别)
线上测试具有较高的风险,为此一般需要做一次用户调查测试
缺点: 成本很高;难以举行大规模的用户调查(一方面需要控制成本,一方面需要保证结果的统计学意义
测试用户不能随便选择,需要尽量保证测试用户的分布和真实用户分布相同(sex,age,activity level)
用户调查尽量进行双盲实验
3.online experiment
上线进行AB测试
AB测试是一种很常用对的在线评测算法的试验方法:通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法然后通过统计不同组用户的不同评测指标比较不同算法(统计不同组用户的点击率等)
一般不会使用测试测试所有算法,只用来测试在离线实验和用户调查中表现很好的算法
在大型网站上,因为架构的多重性,需要进行流量切分(不同层需要从一个统一的地方获得自己AB测试的流量,并且不同层之间的流量应当是正交的)
3.2 评测指标
1.用户满意度(不能离线,只能用户调查或者在线实验)
购买率/用户反馈界面等等
2.预测准确度(可以离线)。包括:
1. 评分预测:
一般使用RMSE和MAE
优缺点为:RMSE加大了对预测不准的用户物品评分的惩罚(平方项),过于严苛
如果评分系统是基于整数建立的,则MAE的误差会一定程度上减小
2. TopN推荐
一般使用(precision/recall)进行度量
有的时候为全面评测TopN的准确率和召回率,需要选取不同的推荐列表长度N,计算一组准确率/召回率,然后画出precision/recall curve
3.TopN推荐更符合实际的应用需求
3.覆盖率(coverage)
主要针对长尾挖掘能力
通过研究物品在推荐列表中出现次数的分布描述推荐系统挖掘长尾的能力。如果分布比较平,那么说明推荐系统的覆盖率较高
1. information Shannon
2. Gini Index (系统流行度平均,SA偏小,从而基尼系数很小)
推荐系统的初衷是消除马太效应。计算初始用户行为中的物品流行度基尼系数G1和推荐列表中得到的物品流行度基尼系数G2.如果G2>G1,说明推荐算法具有马太效应
4.多样性
5.新颖性
使用推荐结果的平均流行度,如果物品越不热门,用户越觉得新颖
多样性和新颖性越来越受到推荐系统改善方向的关注
6.惊喜度(serendipity)
如果推荐结果和用户的历史兴趣不相似却让用户觉得满意,惊喜度就很高
7.信任度(trust)
度量只能使用问卷调查的方式,询问用户是否信任推荐系统的推荐结果
提高trust主要有两种方法:1.增加推荐系统的透明度;2.考虑用户的社交网络信息
8.实时性
9.健壮性
实际做法包括:1尽量使用代价比较高的用户行为,包括购买等;2.在使用数据前进行攻击检测
3.3 评测维度
用户维度:人口统计学信息,活跃度,是否是新用户
物品维度:属性信息,流行度、average、是否新加入用品
时间维度:季节,工作日,周末,白天或者晚上等
如果能够在推荐系统评测报告中包含不同维度下的系统评测指标,可以更全面的了解推荐系统性能