1.1什么是推荐系统
用户利用推荐系统发现自己感兴趣的信息;同时信息制造者用推荐系统将信息展现在对它感兴趣的用户面前。
关联用户和物品,解决信息过载的问题
tips:
信息过载
不需用户提供明确的需求
社会化推荐(social recommendation)
基于内容的推荐(content-based filtering)
协同过滤的推荐(collaborative filtering)
1.2推荐系统有那些实例
推荐系统 = 前台的展示页面 + 后台的日志系统 + 推荐算法系统
电子商务:亚马逊
FB好友购买过的
和历史购买相似的
浏览过该商品经常购买的
购买过该商品经常购买的
打包销售(cross selling):其他用户购买该商品时同时也会购买的几种商品,打包购买提供折扣。
电影和视频网站:Netflix
推荐要素:视频标题,缩略图,视频的平均分,推荐理由,用户反馈模块
个性化音乐网络电台:豆瓣FM,Pandora,Last.fm
Pandora:基于内容
Last.fm:综合算法
音乐推荐的特点:
物品空间大
消费每首歌的代价小
物品种类丰富
听一首歌耗时很短
物品重用率很高
上下文相关:用户心情,所处的环境,时间
次序很重要
播放列表资源
不需要全神贯注
高度社会化:用户和好友间的相互推荐
社交网络:Facebook,Twitter
利用用户的社交网络信息对用户进行个性化的物品推荐
信息流的会话推荐
给用户推荐好友
个性化阅读:鲜果,zaker,filpboard,zite
基于位置的服务:Foursquare
个性化邮件:Gmail的优先级邮箱
区分邮件的重要程度
个性化广告:
以广告为核心,将广告展现给对其感兴趣的用户。
上下文广告:通过用户正在浏览的广告内容,投放和网页相关的广告。Google Adsense。
搜索广告:分析用户在当前会话中的搜索记录,判断用户的搜索目的,投放和用户目的相关的广告。
个性化展示广告:根据用户的兴趣投放不同的展示广告。
1.3如何对推荐系统做评估
推荐系统的参与方:用户,推荐内容提供方,提供推荐系统的网站。三方受益共赢是评测的依据。
推荐系统评估指标:
准确度
覆盖度
新颖度
惊喜度
信任度
透明度
1.3.1 推荐系统实验方法
离线实验(offline experiment):
通过日志系统获得用户行为数据,生成按一定格式的标准数据集
将数据集按一定规则分成训练集和测试集
在训练集上训练用户兴趣模型,在测试集上进行预测
通过事先定义的离线指标评测算法在测试集上的预测结果

用户调查(user study)
真实用户在需要测试的系统上完成一些任务,观察并记录他们的行为,分析他们的行为和答案了解测试系统的性能。
tips:
控制成本,保证结果的统计意义,选择合理的测试用户(保证测试用户和真实用户的分布相同)
在线实验(Online experiment)
AB测试:用户分组,不同的组加载不同的算法,统计评测指标评估算法效果。
tips:
切分流量:不同层以及控制这些层的团队需要从一个统一的地方获得自己AB测试的流量,而不同层的六两应该是正交的。

一般来说,一个新的推荐系统上线需要完成以上三个实验:
首先,通过离线试验证明他很多离线指标优于现有算法
然后,通过用户调查确定它的用户满意度不低于现有算法
最后,在线AB测试确定在关键指标上优于现在的算法
1.3.2 评测指标
1. 用户满意度
用户满意度只能通过在线实验和用户调查获得。
用户调查采取问卷形式,注意问卷设计时考虑到用户各方面的感受,才能根据问题给出自己准确的回答
在线实验主要通过统计用户行为的方法和设计用户反馈界面收集用户满意度。
2. 预测准确度
预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。这个指标是最重要的推荐系统立宪评测指标。
评分预测
各网站的打分功能——得知用户的打分历史,习得兴趣模型——预测用户对某内容的评分
评分预测的准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。
关于RMSE和和MAE的优缺点。RMSE的系统评测更为严苛(平方项)。
TopN推荐
给用户一个个性化的列表,TopN预测的准确率一般通过准确率(precision)/召回率(recall) 度量。




3. 覆盖率(coverage)
覆盖率描述一个推荐系统对物品长尾的发掘能力。最简单的定义为推荐系统能够推荐出的物品占总物品集合的比例。
定义:系统的用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u)。那么覆盖率可通过下面公式计算:

信息熵
基尼系数
马太效应:强者越强,弱者越弱
评测推荐系统是否具有马太效应的简单方法就是使用基尼系数。若G1是从初始用户行为中计算出的商品流行度基尼系数,G2是采用推荐算法后计算出的商品流行度基尼系数。G2 > G1的话,说明推荐算法具有马太效应。


4. 多样性
多样性即推荐结果需要覆盖用户不同的兴趣领域。这样用户找到自己兴趣点的概率就会大很多。
多样性描述了推荐列表中物品两两之间的不相似性。
5. 新颖性
新颖的推荐是指推荐给用户他们一千年从来没有听说过的物品。
如果推荐物品列表的物品平均流行度(热门程度)低,那么推荐结果可能就具有新颖度。
tips:
平衡推荐精度和多样性,新颖度。
6. 惊喜度(serendipity)
惊喜度和新颖度的区别在于:如果推荐结果和用户的历史兴趣不相似,却让用户觉得满意,那么就可以说推荐的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听过这个推荐结果。
7. 信任度(trust)
度量推荐系统的信任度只能通过问卷调查的方式,询问用户是否信任推荐系统的推荐结果。
8. 实时性
推荐系统的实时性包括两个方面。首先,推荐系统需要实时的更新推荐列表来满足用户新的行为变化。第二,推荐系统需要能够将新加入系统的物品推荐给用户。(避免冷启动)
9. 健壮性(robust)
健壮性衡量了一个推荐系统防作弊的能力。
10. 商业目标
各个公司的商业目标不同,推荐系统的设计与评测就会不同。
网友评论