推荐系统实践笔记(一)

第一章:好的推荐系统算法

1.1 什么是推荐系统网络

  当用户没有明确需求的时候(有明确需求的时候,经过搜索引擎通常都可以解决问题),若是周末想去看电影,可是不肯定看什么电影(不肯定的需求),这时候须要一个自动化的工具,它可以根据你的历史行为分析出你可能会喜欢哪些系统.推荐系统是自动联系用户和物品的一种工具.工具

1.2  个性化推荐系统测试

  (1) 电子商务 (item_base)优化

  (2) 电影以及视频网站
网站

  (3) 个性化的音乐电台 (Pandora对音乐进行专家标注,embedding的思想,在推荐的时候利用其专家标注来计算类似度)搜索引擎

  (4) 社交网络spa

    a. 利用社交网络信息对用户进行个性化的物品推荐(你的好友近期的动态做为你的历史行为的一个参考,也就是你可能会感兴趣的部分)设计

    b. 信息流的会话推荐(facebook的EdgeRank算法尽可能保证用户能看到熟悉的好友的最新会话)日志

    c. 给用户推荐好友

  (5) 个性化阅读

  (6) 基于位置的服务

  (7) 个性化邮件

  (8) 个性化广告

1.3  推荐系统评测

  一个好的推荐系统须要考虑三个参与方:用户,物品提供者,提供推荐系统的网站.好的推荐系统不只仅要可以准确的预测用户的行为,并且可以扩展用户的视野,帮助用户发现那些他们可能会感兴趣,却不容易发现的东西.

1.3.1 推荐系统实验方法

  1. 离线实验.

  (1) 经过日志系统得到用户行为数据,并按照必定格式生成一个标准的数据集;

  (2) 将数据集按照必定的规则分红训练集和测试集;

  (3) 在训练集上训练用户兴趣模型,在测试集上进行预测;

  (4) 经过事先定义的离线指标评测算法在测试集上的预测结果。

  好处: 实验在日志系统提供的数据集上进行,不须要用户参与,可以方便,快速的测试大量不一样的算法.

  缺点: 没法得到不少商业上关注的指标,如点击率、转化率等,而找到和商业指标很是相关的离线指标也是很困难的事情.

  2. 用户调查

  离线实验和实际的商业指标有着必定的差距,而直接上线测试有着比较高的风险,通常在实际上线以前有一个用户调查.

  3. 在线实验

  AB测试简单来讲,就是为同一个目标制定两个方案(好比两个页面),让一部分用户使用 A 方案,另外一部分用户使用 B 方案,记录下用户的使用状况,看哪一个方案更符合设计目标。切分流量是AB测试中的关键,不一样的层以及控制这些层的团队须要从一个统一的地,方得到本身AB测试的流量,而不一样层之间的流量应该是正交的。

  一个推荐系统在上线以前须要通过上述三个实验:

  (a) 首先,经过离线实验证实一个算法优于现存的算法.

  (b) 其次,须要经过用户调查肯定该算法的用户满意度不低于现有算法

  (c) 经过在线的AB测试肯定它在研究人员关心的指标上优于现有的算法.

1.3.2 评测指标

  1. 用户满意度(经过在线的反馈获取,能够是用户的点击率,用户停留时间和转化率)

  2. 预测准确度

  推荐系统或者算法预测用户行为的能力,是重要的离线数据.

  (a) 通常用RMSE(均方根偏差)和平均绝对偏差(MAE)计算.RMSE因为有平方项的计算,会加大对预测不许用户评分的惩罚,其训练出来的系统会更加严苛一些,若是评分系统是基于整数创建的(即用户给的评分都是整数),那么对预测结果取整会下降 MAE 的偏差.

  (b) TopN推荐.网站在提供推荐服务的时候,通常是给用户一个个性化的推荐列表,TopN的预测准确率通常经过(precision/recall)来度量.recall是从全部实际为真的样本中被正确分类的比例,precision是全部被预测为真的样本中实际是真样本的几率.

  3. 覆盖率 (内容提供商关注的评价指标)

  描述一个推荐系统对物品长尾的挖掘能力.最简单的定义方法为推荐系统可以推荐出来的物品占总物品的比例.主要评价指标有两个,一个是信息熵:

 另外一个是基尼指数:.若是各个物品都在推荐系统的列表中,且出现的次数差很少,那么推荐系统的长尾发掘能力就很好(每一个物品都要推荐给适合的人,对于那些不热门的物品,一个好的推荐系统也要有推荐的能力)

(这里p(i)是物品i的流行度除以全部物品流行度之和,$i_j$是按照流行度p()从小到大排序的物品列表中第j个物品)

 

  马太效应: 强者更强,弱者更多.一个系统会增大热门与非热门物品流行的差距,那么这个系统就是有马太效应.主流的推荐系统算法是有马太效应的,判断是否有马太效应的方法,比较推荐先后物品流行度的gini指数,若是推荐后gini指数增大,那么该系统有马太效应.

  4. 多样性

  5. 新颖性 (推荐用户没有接触过的物品)

  6. 惊喜度 (推荐结果与用户历史兴趣不类似但却让用户以为满意,那么能够说该推荐的惊喜度比较高)

  7. 信任度 (用户对系统信任程度)

  8. 实时性 (实时更新推荐列表;可以将新加入系统的物品推荐给用户)

  9. robust (抗击做弊的能力)

  处理方法:

  (1) 在训练的时候模拟攻击注入噪声

  (2) 设计推荐系统的时候尽可能使用代价比较高的用户行为

  (3) 在使用数据以前, 进行攻击检测,从而对数据进行清理

指标总结:(1)

  (2)离线实验优化的目标:

  最大优化预测精准度

  使得 覆盖率 > A  
  多样性 > B  
  新颖性 > C
  其中, A 、 B 、 C 的取值应该视不一样的应用而定。

相关文章
相关标签/搜索