排序算法总结

目录

  • 1. 排序模型
  • 2. 多任务学习模型
    • 2.1 多任务介绍
    • 2.2 多任务模型(精排)
      • 2.2.1 视频播放时长建模
    • 2.3 粗排
      • 2.3.1 粗排 vs 精排
    • 参考资料

1. 排序模型

  1. GBDT+LR
  2. FM、FFM、 DeepFM架构详解
  3. DCN
  4. DIN详解和Dice介绍 和 DIN模型详解、DIEN
  5. Wide&deep模型框架详解 以及为什么要设计wide和deep相结合的模型;wide&deep模型中如何确定哪些特征适用于wide侧哪些特征适用于deep侧
  6. MaskNet|更充分提取特征的CTR模型

2. 多任务学习模型

2.1 多任务介绍

目标:点击率、点赞率、收藏率、转发率
训练困难:类别不平衡问题

  1. 每100次曝光,约有10次点击,90次无点击
  2. 没100次点击,约有10次收藏,90次无收藏

解决方案:负样本降采样:保留一小部分负样本,让正样本数量平衡,节约计算

预估值校准:由于负样本变少,预估点击率大于真实点击率。

融合预估分数:

  1. 简单的加权: w超参数,需要根据线上AB实验进行调参,选出最合适的值.
    在这里插入图片描述

  2. 点击率乘以其他项的加权和
    排序算法总结_第1张图片
    排序算法总结_第2张图片
    假如 a1,a2,a3,a4 =1,上述最终的融合分数就是电商的营收.

2.2 多任务模型(精排)

模型:MMOE:Multi-gate Mixture-of-Experts
特征:用户特征、物品特征、统计特征、场景特征

  1. 用户画像
    • 用户id:在召回、排序中做embedding:通常32|64维
    • 人口统计学属性:性别、年龄
    • 账户信息:新老用户、活跃度等
    • 感兴趣的类目、关键词、品牌:用户填写|算法提取
  2. 物品画像:
    • 物品id
    • 发布时间|年龄
    • GeoHash经纬度编码|所在城市
    • 标题、类目、关键字、品牌等
    • 字数、图片数、视频清晰度、标签数。。。
  3. 用户统计特征:
    • 用户最近30天(7天、1天、1小时)的曝光量、点击数、点赞数、收藏数 (表示用户的长短期兴趣和实时兴趣)
    • 按照笔记图文、视频分桶(比如用户最近7天,该用户对图文笔记的点击率、对视频笔记的点击率)
    • 按照笔记类目分桶(比如最近30天,用户对美妆笔记的点击率、对美食笔记的点击率等)
  4. 专辑统计特征
    • 专辑最近30天(7天、1天、1小时)的曝光量、点击率、点赞数、收藏数(表示专辑的受欢迎程度,不同的时间粒度表示时效性)
    • 按照用户性别分桶、按照用户年龄分桶(例如:男性的点击率)
    • 作者特征:发布笔记数、粉丝数、消费指标(曝光数、点赞数、收藏数等)(反映作者的受欢迎程度和作品的质量高低)
  5. 场景特征context:
    • 用户定位、城市
    • 当前时刻(分段,做embedding)
    • 是否是周末、是否是节假日
    • 手机品牌、型号、操作系统
  6. 特征处理
    • 离散特征:用户id,笔记id,作者id, 类目、关键词、城市、手机品牌做embedding
    • 连续特征:
      • 做分桶、变成离散特征:年龄、笔记数、视频长度
      • 曝光数、点击数、点赞数等数值做log(1+x)| 转化为点击率、点赞率等值,并做平滑

关注特征覆盖率,默认缺失值处理。

2.2.1 视频播放时长建模

  • 图文笔记排序的主要依据: 点击、点赞、收藏、转发、评论…

  • 视频排序的依据还有播放时长和完播:

    • 直接用回归拟合播放时长效果不好,建议用YouTube的时长建模 Deep Neural Networks for YouTube Recommendations
    • 视频完播建模:
      回归模型: 使用交叉熵损失函数
      例: 视频时长10分钟,实际播放4分钟,则实际播放率为y=0.4
      让预估播放率p拟合y: loss = y* logp + (1-y)log(1-p)
      二元分类方法
      定义完播指标:比如完播80%,例如:视频时长10分钟,播放>=8min的作为正样本,播放时长<8min作为负样本.
      排序算法总结_第3张图片
      线上预估完播率,然后做调整:
      排序算法总结_第4张图片

2.3 粗排

2.3.1 粗排 vs 精排

粗排 精排
给几千篇笔记打分 给几百篇笔记打分
单次推理代价必须小 单次推理代价很大
预估的准确性不高 预估的准确性更高

精排模型

  • 前期融合:先对所有的特征做concatenation,再输入神经网络.
  • 线上推理代价大:如果有n篇候选笔记,整个大模型要做n次推理

排序算法总结_第5张图片
双塔模型

  • 后期融合: 把用户、物品特征分别输入不同的神经网络,不对用户、物品特征做融合.

  • 线上计算量小:

    • 用户塔只需要做一次线上推理,计算用户表征a
    • 物品表征b事先储存在向量数据库中,物品塔在线上不做推理.
  • 预估准确性不如精排模型

排序算法总结_第6张图片

参考资料

  • 代码实现

  • 模型讲解

    • 阿里CVR预估模型之ESMM
    • 推荐系统中的多目标学习
    • 基于ESMM模型的多目标优化实践——蘑菇街商城篇
    • MMOE模型原理及代码实现

你可能感兴趣的:(推荐系统,深度学习)