原文

全文目录

关联规则算法, 由于限制较大, 所以相关性较强, 但覆盖率较低;

协同过滤算法, 覆盖率更高, 相关性较差;

以上两者基于行为, 有冷启动问题, 所以需要内容相关性算法来托底;

三种算法的融合得出最终的结果;

数据血统: 对数据的来源进行记录与分析的相关数据和过程;

线性加权融合

[score_i = sum_j(w_j times score_{j,i}) ]

  • w, 对该推荐物品使用的推荐算法的权重;
  • score, 在该推荐算法下该物品的得分;

如果推荐算法下没有直接给出得分(score), 只有一个排序, 则可以选择平均点击率作为拟合目标:

[ctr_i = w_i times order_i + b ]

  • ctr_i, 该算法在该位置的平均点击率, 作为该算法下该物品的分数;
  • order_i, 位置编号;
  • b, 偏置项;

存在两个问题:

  1. 平均点击率和编号之间未必是线性关系;
  2. 编号相同, 得分就会相同, 不合理;

(w_j) 可根据不同算法的 CTR, CVR 等客观指标来分配权重,

[w_j = frac {ctr_j} {sum_k ctr_k} ]

平均点击率必须是不同算法在同一位置上的平均点击率;

或者采用网格搜索;

优先级融合/交叉融合

使用一组规则将来自不同推荐算法的结果进行融合, 规则的核心要素:

  • 推荐算法之间的相对优先级;
  • 每种算法要占到的比例;

优先级高的算法一般具有以下特点:

  • 准确率高
  • 覆盖率低
  • 实时性好

基于机器学习的排序融合

线性加权融合和优先级融合, 均是粗粒度的算法级融合, 不是细粒度的物品级融合; 模型结构简单, 优化空间小; 融合方法没有结合用户反馈;

机器学习的排序融合, 在某个衡量指标(CTR)的指引下, 基于物品本身的特征, 当前场景的特征以及物品和场景的组合特征, 为当前场景下的每个参与排序的候选物品计算该指标(CTR), 并使用该估计值进行排序;

融合策略的选择

  1. 优先级融合方法, 适合使用者对算法的效果, 覆盖率等方面相对熟悉, 不同算法之间有明确的效果差异时使用; 系统建立初期;
  2. 线性加权融合方法, 适合不同算法之间没有那么大的效果差异, 主要用来提高覆盖率和多样性;
  3. 机器学习模型排序方法, 第一优先级的方法, 需要具备条件: 1. 已有一些推荐算法, 有一定比例的优质覆盖率; 2. 有数量足够准确的样本数据;
  4. 混合的融合方法

融合时机的选择

  • 实时融合
  • 离线融合, 计算能力强, 可以处理复杂逻辑和大量数据;
  • 近实时融合, 分离用户对推荐数据的请求和推荐数据的计算生成, 二者通过数据存储服务进行交互, 实现解耦;

时效性要求不高, 策略多样复杂, 召回数据量大的情况时, 并不一定需要实时融合;

数据血统

  • 每个推荐物品来源于哪种算法;
  • 每个推荐物品在该算法中的得分和排序;

融合策略正确性验证

计算每种策略在结果中的占比分布, 每种策略平均能贡献多少个结果, 以及这些结果的平均分数如何;

系统效果监控

  • 不同策略在请求, 曝光, 点击等多个维度上的绝对数量和数量占比;
  • 分策略的点击率, 转化率;
  • 分策略的平均排序位置;

策略效果分析

  • 统计在 topN 结果中, 不同策略的曝光, 点击, 下单数据占比, 以此确定主要起作用的是哪些策略;
  • 统计不同策略的点击率和转化率, 以此确定策略的效果好坏; 统计不同策略的排序位置分布;
  • 分析在每种策略的被点击/下单的结果中, 策略的打分和排序的分布如何;
  • 对以上两种数据进行交叉分析, 即分析效果好的策略和效果不好的策略在结果中的占比;
内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/memento/p/14485447.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!