1、什么是推荐系统?
推荐系统作用可以解决信息过载的问题
- 帮助用户发现对自己有价值的信息
- 让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢
推荐系统和搜素引擎是互补工具
- 搜索隐形满足了用户有明确目的时的主动查找需求
- 推荐系统能在用户没有明确目的时候帮助他们发现感兴趣的内容
推荐算法的本质是通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式。
- 基于内容的推荐
- 基于协同过滤
- 。。。
2、个性化推荐系统的应用
几乎所有的推荐系统应用都是由前台的展示页面,后台的日志系统以及推荐算法系统三部分构成的。
2.1 电子商务
对象:亚马逊(20%-30%)
- 个性化推荐
- 展示页面
- 推荐结果的标题、缩略图以及其他内容属性
- 推荐结果的平均分
- 推荐率
- fix the recommendation(修正推荐):加入购物车,加入心愿单,给书打分,我已经有这本书了,对这本书枚兴趣
- 推荐算法
- 基于物品,推荐和用户之前喜欢的物品相似的物品
- 按照用户在Facebook的好友关系,给用户推荐他们的好友在亚马逊上喜欢的物品
- 展示页面
- 相关推荐
- 展示页面
- 产品缩略图,标题,打分,价格
- 推荐算法
- 购买了这个商品的用户也经常购买的商品
- 浏览了这个商品的用户也疆场购买的物品
- 应用:打包销售
- 展示页面
2.2 电影和视频网站
Netflix
- 展示界面
- 电影的标题和海报
- 用户返回模块:播放、评分、不感兴趣
- 推荐理由
- 推荐算法:基于物品的推荐算法
YouTube、Hulu
2.3 个性化音乐网络电台
为什么音乐很适合推荐?
- 用户往往面临着信息过载的问题
- 用户没有明确的要求
Pandora
- 展示界面:不允许用户点歌,允许用户(喜欢,不喜欢,跳过),经过用户的反馈,从历史信息中学习用户的新区模型
- 推荐算法:人工对歌曲进行标注,基于专家标注的基因计算歌曲的相似度
- 推荐算法:没有进行专家标注,而是利用用户的行为计算歌曲的相似度
- 社交网络:用户可以和其他用户建立联系,并推荐喜欢的歌曲
音乐推荐的特点
- 物品空间大
- 消耗每首歌的代价小
- 物品种类丰富
- 听一首歌耗时很少
- 物品重用率很高
- 用户充满激情
- 上下文相关
- 次序很重要
- 很多播放列表资源
- 不需要用户全神贯注
- 高度社会化
2.4 社交网络
主要应用场景(以Facebook为例):
- 利用用户的社交网络信息对用户进行个性化的物品推荐:开发了Instant Personalization的API来实现网站的个性化
- 信息流的会话推荐:开发了EdgeRank算法对会话进行排序
- 给用户推荐好友
2.5 个性化阅读
- google reader:允许用户关注自己感兴趣的人,看到所关注的用户分享的文章
- Zite:收集用户对文章的偏好信息
- Digg:推荐和用户兴趣相似的用户喜欢的文章
2.6 基于位置的服务
往往和社交网络结合在一起
位置是一种很重要的上下文信息
2.7 个性化邮件
Tapestry:分析用户阅读邮件的历史行为和习惯对新邮件进行重新排序,从而提高用户的效率
谷歌:将用户感兴趣的邮件专门放到衣蛾专门的收件箱里
2.8 个性化广告
个性化广告推荐着重于帮助用户找到可能令他们感兴趣的物品,而广告推荐着重于帮助广告找到可能对它们感兴趣的用户。
个性化广告投放技术有三种:
- 上下文广告
- 搜索广告
- 个性化展示广告
3、推荐系统测评
测评一个推荐算法需要同时考虑三方的利益
- 推荐系统存在三个参与方:用户、物品提供者和提供推荐系统的网站。一个好的推荐系统,要满足用户的需求;要让所有提供商的物品都能够被推荐给感兴趣的用户;要让推荐系统本身收集到高质量的用户反馈,从而不断完善推荐的质量。
好的推荐算法并不是仅仅是准确的预测
3.1 推荐系统实验方法
离线实验
- 优点:不需要真实用户参与,可以直接快速地计算出来,不需要有对实际系统的控制权
- 缺点:无法获得很多商业上关注的指标,找到和商业指标非常相关的离线指标也很困难
用户调查
- 优点:可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后容易弥补
- 缺点:招募测试用户的代价太大,很难组织大规模的测试用户,还需要保证用户的分布尽量真实
在线实验
- 优点:可以公平获得不同算法实际在线时的性能指标
- 缺点:周期比较长;大型网站的AB测试系统的设计也是复杂的工程,不同层的AB测试还会互相干扰
3.2 测评指标
用户满意度
- 收集方法
- 调查问卷:从不同的侧面询问用户对结果的不同感受
- 在线实验:对用户的行为的统计,如用户满意度,点击率,用户停留时间,转化率
预测准确度
-
评分预测(Netflix认为RMSE更为苛刻)
-
TopN推荐
-
比较来看:TopN更符合实际的应用需求
覆盖率:尽可能覆盖更多的物品,并且热门和冷门推荐出现的次数差不多
- 推荐系统的初衷是消除马太效应,但是很多研究表明现在主流的推荐算法是具有马太效应的。
多样性:覆盖用户不同的兴趣领域
新颖性:给用户推荐他们以前没有听说过的物品
- 把用户之前有过行为的物品从推荐列表中过滤掉,越不热门越有可能让用户觉得新颖
- 准确统计需要用户调查
- 重点是在不牺牲精度的情况下提高多样性和新颖性
惊喜度(serendipity):推荐结果和用户的历史兴趣不相似,但却让用户觉得满意
- 目前没有公认的惊喜度指标定义方式,基本思路是需要定义历史兴趣相似度和满意度指标
信任度
- 只能用问卷调查
- 增加信任度的方法
- 增加推荐系统的透明度(提供推荐解释)
- 考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并且利用好友进行推荐解释
- 例子:Epinion网站
实时度
- 推荐系统需要实时更新推荐列表来满足用户新的行为变化,测评方案:推荐列表的变化速率
- 推荐系统需要更改将新加入系统的物品推荐给用户,主要和物品冷启动有关,测评方案:推荐列表中有多大比例是当天新加的
健壮性:一个推荐系统抗击作弊的能力
- 测评方法:模拟攻击,并比较攻击前后推荐列表的相似度来进行测评
- 其他方法:
- 设计推荐系统时尽量使用代价比较高的用户行为
- 使用数据前,进行攻击检测,从而对数据进行清理
商业目标
- 需要注重网站的商业目标是否达成
- 不同的网站具有不同的商业目标
如何优化离线指标来提高在线指标?
- 在给定覆盖率、多样性、新颖性等限制条件下,尽量优化预测准确度
3.3 测评维度
通过不同的测评维度,可以知道一个算法在什么情况下性能最好,为融合算法提供参考。
- 用户维度
- 物品维度
- 时间维度