• 排序算法总结


    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. 点击率乘以其他项的加权和
      在这里插入图片描述
      在这里插入图片描述
      假如 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作为负样本.
        在这里插入图片描述
        线上预估完播率,然后做调整:
        在这里插入图片描述

    2.3 粗排

    2.3.1 粗排 vs 精排

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

    精排模型

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

    在这里插入图片描述
    双塔模型

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

    • 线上计算量小:

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

    在这里插入图片描述

    参考资料

  • 相关阅读:
    Golang GMP调度模型:实现高效协程调度和执行
    制作 U 盘操作系统安装盘后空间变小如何解决
    JVM的原理与性能
    opencv dnn模块 示例(23) 目标检测 object_detection 之 yolov8
    springboot实现主从数据库动态切换(注解式)
    WinScope跟踪window/layer pb文件
    spring实现AOP
    Android EditText输入限制及字符编码
    基础会计学模拟卷
    算法-单词搜索 II
  • 原文地址:https://blog.csdn.net/qq_43283527/article/details/126392047