外卖首页列表排序介绍

一、产品形态与技术架构

1. 外卖首页列表产品形态

旧首页(2021.4以前)分为商家模式和菜品模式,新首页(2021.6以后)是混排瀑布流

  • 目标
    • 流量目标:UV_RPM(千人展示成交额)、UV_CXR(用户维度-转化率)、PV_CTR(卡片维度-点击率)
    • 用户运营目标:心智、留存
    • 商家运营目标:新店冷启动、品类扶持、KA商家扶持
  • 元素
    • 广告卡片:铂金广告、点金广告
    • 自然流量卡片:商家卡片、商品卡片、主题卡片

2.混排服务架构

混排服务

3. 商家排序服务架构

商家排序服务

二、商家排序预估模型

1. 召回策略

  • 主召回

    • XGBoost树模型,对LBS商家打分
    • 特征:数量30+,包括user特征、item特征(有限)user-item交叉特征、上下文特征
  • 旁路召回

    • 历史行为
    • 实时行为
    • 向量召回:基于向量相似度的i2i召回(trigger item:实时点击的商家,向量:word2vec训练、用户点击序列训练、同城负采样)
  • 合并

    • 各个旁路召回截断后插入至主召回头部,去重后整体截断200个

2. 精排模型演进路径

精排模型演进

3. 精排策略:行为序列模型

  • 实时点击序列+历史加购序列
    • 商家表示:商家向量、商家名关键词、商家品类、主营菜品向量
    • 上下文信息:小时差、停留时长、加购行为
    • 序列内部的多样性
  • 线上收益:PV_CTR + 1.23%
  • 重点方向:
    • 商家表示
    • 上下文信息
    • 序列抽取(长序列)
      行为序列模型

4.精排策略:多任务学习

  • PLE:Ctr和Cxr两个任务
  • 不同目标损失函数的权重
    • 等权重
    • UWL(Uncertainty to Weigh Losses)
  • 线上收益:PV_CTR+0.72%、UV_RPM+1.38%
  • 收益来源:
    • 多目标
    • 多任务
      多任务学习

5. 精排策略:大模型

  • 商家特征

    • 商家ID
    • 主要商品品类ID
  • 用户特征

    • 购买/点击/搜索的文本分词
  • 用户-商家交叉特征
    • 用户:购买/点击Top n商家品类、购买/点击top n商品类
    • 商家:商家品类、主要商品品类
  • 场景-商家交叉特征
    • 场景:城市、小区/楼宇、地址类型、geohash、时段
  • 2个月训练数据

三、机制层排序公式

1.机制层整体迭代路径

机制层整体迭代路径
  • 混排模型
    • 输入精排预估的pCTR、pCXR以及其他相关特征,回归价值函数
    • 价值函数:a click + b pay + c * 是否扶持
  • 为什么从混排模型迁移到排序公式
    • 未引入列表维度信息的情况下,二者等价(随机变量的期望)
    • 迭代效率与敏感性
  • 校准:分段线性校准,每天离线更新参数

2.排序公式:如何做流量扶持

  • 假设按照pCXR排序,同时要给KA商家做流量扶持
    • 方式1:常规商家公式pCXR,KA商家公式pCXR+0.01
    • 公式2:常规商家公式pCXR,KA商家公式1.1 * pCXR
  • 明确流量扶持的目的
    • 保证扶持对象的曝光量:如主题卡片,带来展示形式的多样化,关注能否给用户曝光到,进而提升对主题场景的认知
    • 保证扶持对象的订单量:如KA商家,保证重要客户的单量
  • 问题建模其中i:第i个曝光位,I:全部曝光位集合;j:第j个候选,J(i):第i个曝光位下全部候选集合;$x_{ij}$:第i个曝光位是否曝光第j个候选,0-1变量;$C^{ka}_{order}$:KA的最少成单量。

3.排序公式:如何做流量扶持

  • 结论:

    • 保订单的扶持:常规商家公式$pCXR$,KA商家公式$(1 + a ISKA) pCXR$
    • 保曝光的扶持:常规商家公式$pCXR$,KA商家公式$pCXR+a*ISKA$
  • 简单例子

    共2条请求,假设需要保证KA商家曝光(要求2条请求中至少一条曝光KA商家)

请求1 请求2
KA 10 5
非KA 18 10
a. 公式(1 + a * ISKA) * pCXR:调节系数到a=1.9即可曝光1次KA,总收益10+10
b. 公式pCXR+a* ISKA:调节系数到a=6即可曝光1次KA,总收益18+5
  • 看待排序公式的视角:如何用最小的成本置换
    • 单词请求视角:两种公式都是将KA的序往前提,不影响每种商家内部的序
    • 全局视角:公式的形式会决定哪些请求适合曝光KA,或者将KA的曝光/订单需求分配到哪些请求
  • 线上效果:目标是扶持曝光,曝光扶持公式 vs 订单扶持公式UV_CXR+0.66%,PV_CTR+0.17%

    4.排序公式:多目标

  • 加法公式 vs 乘法公式

    • 举例:均衡PVCTR、PVCXR两个目标的时候,以下两个公式哪个好?排序公式1:$apCTR + b pCXR$;排序公式2:$pCTR^{a}*pCXR^{b}$
  • 目标分解到每个曝光位

  • 什么样的目标是帕累托最优?

    • 两个目标相加是帕累托最优:$a PVCTR + b PVCXR = a \sum(pCTR) + b \sum(pCXR) = \sum(a pCTR + b pCXR)$
    • 两个目标相乘帕累托最优:$PVCTR^{a} PVCXR^{b} = [\sum(pCTR)]^{a} [\sum(pCXR)]^b$,乘法目标的情况下不可进一步分解。
  • 分场景个性化调节系数a,b是否有空间?

    • 比如高峰期时间段增大pCXR系数,其他时间段增加pCTR系数
  • 简单例子

    两个请求,每个请求内:从两个候选中选择一个曝光

pCTR pCXR
请求1 候选1 4 1
候选2 2.1 2.1
请求2 候选1 1 4
候选2 2.1 2.1
a. 公式pCTR + pCXR:两次请求都选择候选1,pCTR总收益5,pCXR总收益为5
b. 公式pCTR*pCXR:两次请求都选择候选2,pCTR总收益4.2,pCXR总收益为4.2
  • 模拟实验:画图(alpha metricA + metricB 优于 power(metricA, alpha) metricB)

  • 线上收益:加法 vs 乘法,UV_CXR+0.60%,PV_CTR+0.15%

5.排序公式:目标不可分

  • 什么目标不可分:难以直接建模
    • 列表维度的指标:UVCXR等
    • 全局入口下的指标
  • From 模型做预估 to 模型做决策
    • 原因:解空间爆炸
  • 参数搜索:ES、CEM、强化学习
  • 方案介绍
    • State:用户特征、上下文特征
    • Action:排序公式的参数
    • Reward:列表维度的权益(也可以从全局入口归因label)
    • 先在线上随机做action,收集数据,学习critic网络(输入state、action、输出reward)
    • 接下来固定actor网络参数,学习actor网络(输入state,输出action)

四、总结与思考

  • 总结-收益分析
    • 用户兴趣建模
    • 多任务学习
    • 大模型
    • 混排模型/排序公式
  • 思考
    • 对上界的分析
    • 化繁为简
    • 保持认知迭代

   转载规则


《外卖首页列表排序介绍》 ForwardPeng 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
动态内存管理机制 动态内存管理机制
占用块和空闲块对于计算机中的内存来说,称已经分配给用户的的内存区统称为“占用块”;还未分配出去的内存区统称为“空闲块”或者“可利用空间块”。 系统的内存管理对于初始状态下的内存来说,整个空间都是一个空闲块(在编译程序中称为“堆”)。但是随
下一篇 
推荐排序机制在品类新客优化上的探索与实践 推荐排序机制在品类新客优化上的探索与实践
一、引言 基于算法的推荐系统存在一个被广为诟病的特性就是“信息茧房”效应:算法通常根据用户在平台的历史行为建模用户兴趣,并在此基础上给用户推荐新的内容,而新推荐的内容又影响到用户接下来的行为。在这种机制上,推荐系统不断强化之前观察
  目录