0%

推荐系统:总结与算法优缺点分析

推荐系统评估

推荐系统的评估方法主要有两种:
offline: 是用传统的机器学习方法在已知数据集上进行预测和评估,主要流程为:Data-> Train/Test -> Evaluation
online: 根据数据设计算法,部署到线上根据用户反馈情况评估算法性能:Data-> Algorithm -> User’s Click/Rating

推荐系统本质上是一个商业系统,必须考虑其商业价值

回顾性评估方法

回顾性评估方法是有确定的训练集和数据集,离线地进行模型的设计和评估,最常用的就是机器学习的相关方法。

交叉验证

划分数据

缺点分析

离线的评估方法无法预测该方法是否实际可行,并且与商业层面上关注的指标能力联系较弱

预测性评估方法

预测性评估方法部署在线上,利用实际的用户数据来反应算法的性能和收益,更为关注其商业价值,常用的方法就是 $A/B\;TEST$。

A/B TEST
把各种变量随机分配到特定的用户组中,分析各个用户组的结果进而得到变量选择的最优方案。

常见评价指标

在数值数据的评价时,首先要进行归一化操作,解决多用户或者多物品之间评分刻度不同的问题。

MAE:Mean Absolute Error

MSE:Mean Squared Error

均方误差在数值上没有对数据的直观反映

RMSE:Root Mean Squared Error

一元数据评价

缺点:只能基于用户打过分的 $item$ 做评估,对于用户没有打过分的认为用户不喜欢,实际上可能并非如此。

Precision and Recall

MRR:Mean Reciprocal Rank

$$MRR = \frac 1 {|Q|} \sum_{i=1}^{|Q|} \frac 1 {rank_i}$$

nDCG:Normalized Discounted Cumulative Gain

$$DCG(r) = \sum disc(r(i))u(i) $$$$nDCG(r) = \frac {DCG(r)} {DCG(r_{perfect})} $$

评价指标总结

推荐系统的构建与运营

  • 系统初期
    • 考虑系统冷启动问题
    • 非个性化推荐、人工编辑推荐
    • 收集 Implicit Feedbacks
    • 逐渐考虑设计 Explicit Feedbacks
  • 系统运营
    • 考虑用户冷启动和物品冷启动问题
    • 仍然不放弃人工编辑
    • 考虑引入个性化推荐、设计个性化推荐的场景
    • 逐渐引入用户社区

常用推荐系统算法的优缺点分析

基于内容的推荐

基于内容的推荐需要有用户的历史数据,考察用户资料与待预测物品的相匹配程度,用户资料模型可能随着用户的偏好改变而发生变化。

优点:

  1. 不需要其它用户的数据,能为具有特殊兴趣爱好的用户进行推荐
  2. 能推荐新的或不是很流行的项目,没有物品冷启动问题
  3. 通过列出推荐项目的内容特征,可以直观地解释为什么推荐那些项目
  4. 技术灵活且已经相对成熟

缺点:

  1. 要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性
  2. 用户偏好必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况
  3. 只是单纯的寻找替代品而不是补充品

基于协同过滤的推荐

协同过滤推荐一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,

优点:

  1. 能够过滤难以进行机器自动内容分析的信息,如艺术品,音乐等
  2. 共享其他人的经验,避免了内容分析的不完全和不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤
  3. 有推荐新信息的能力。可以发现内容上完全不相似的信息,可以发现用户潜在的但自己尚未发现的兴趣偏好
  4. 能够有效的使用其他相似用户的反馈信息,加快个性化学习的速度

缺点:
虽然协同过滤作为一种典型的推荐技术有其相当的应用,但协同过滤仍有许多的问题需要解决。最典型的问题有冷启动问题(Cold Start)和稀疏问题(Sparsity)。

组合推荐方法

由于各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation)经常被采用。研究和应用最多的是内容推荐和协同过滤推荐的组合。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法 去产生一个推荐预测结果,然后用某方法组合其结果。组合推荐一个最重要原则就是通过组合后要能避免或弥补各自推荐技术的弱点。

在组合方式上,有研究人员提出了七种组合思路:

  1. 加权(Weight):加权多种推荐技术结果
  2. 变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术
  3. 混合(Mixed):同时采用多种推荐技术给出多种推荐结果为用户提供参考
  4. 特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用
  5. 层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步作出更精确的推荐
  6. 特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到另一种推荐技术的特征输入中
  7. 元级别(Meta-level):用一种推荐方法产生的模型作为另一种推荐方法的输入。

参考文献:
[1] 罗平,《网络数据挖掘》,中国科学院大学2017年秋季研究生课程
[2] http://www.36dsj.com/archives/9519