当前位置: 首页 > news >正文

【第五章:计算机视觉-项目实战之推荐/广告系统】2.粗排算法-(4)粗排算法模型多目标算法(Multi Task Learning)及目标融合

第五章:计算机视觉-项目实战之推荐/广告系统

第二部分:粗排算法

第四节:粗排算法模型多目标算法(Multi Task Learning)及目标融合


一、为什么粗排必须是多目标模型?——动机与问题本质

粗排(Coarse Ranking)是推荐广告系统中承前启后的关键一环。它位于:

召回之后、精排之前,用较轻量模型在较大候选集合上筛掉价值不高的样本

然而,粗排与召回不同,它不能只追求“召回兴趣一致的物品”。粗排阶段引入多目标学习(Multi-Task Learning,MTL)是由业务必然性决定的,因为:

业务目标意义
CTR(点击率)衡量用户兴趣强度
CVR(转化率)衡量商业变现能力
GMV / 收益衡量整体推荐价值
停留时长 / 活跃度衡量用户长期留存
生态/内容多样性衡量推荐系统健康度

粗排不能只追求 CTR,否则系统会变成:

“骗点击”模型 → 短期数据漂亮 → 长期留存下降 → GMV、体验、DAU 变差

因此粗排多目标的核心任务是:

在可接受计算资源下,用一个共享模型同时优化多个业务目标,并最终形成统一排序分数

这就是多任务学习在粗排中的根本定位。


二、粗排阶段常见多任务结构对比

粗排的 MTL 模型常用 4 种结构:

模型结构优点缺点是否适合粗排
Hard Sharing简单、快、参数最少易梯度干扰,多个任务互相拖累一般不推荐
ESMMCTR & CVR 链路建模能力强不适用于多任务扩展有用但不够
MMoE任务间竞争+共享最平衡参数中等,结构略复杂✅ 粗排首选
PLE更精细任务隔离、效果更强训练略慢✅ 更高效果方案

粗排业界默认最佳选择:

MMoE(主流) → PLE(效果更极致)


三、多任务学习中的三大核心技术难点

难点现象MTL中的表现
梯度冲突Loss A 降 → Loss B 升CTR 和 GMV 互相“抢特征”
数据分布差异任务样本不均衡CVR 天然 1:2000,CTR 1:50
优化目标博弈短期 vs 长期目标矛盾点击爽 vs 留存差

MMoE/PLE 结构的存在,就是为了解决梯度冲突 + 特征共享失衡这两个本质问题。


四、目标融合(Multi-Objective Fusion)——粗排最后的关键一公里

多个任务得到多个输出,如:

  • ( p_{ctr} )

  • ( p_{cvr} )

  • ( gmv )

  • ( stay_score )

最终粗排必须融合为一个分数用于排序,核心融合方式:

方式一:线性加权 (经典 & 工业可控)
score = w_1 \cdot p_{ctr} + w_2 \cdot (p_{ctr} \cdot p_{cvr}) + w_3 \cdot gmv

优点稳定,缺点需要人工调参


方式二:基于收益的动态加权(效果更好)

根据实时 ROI / GMV 截断动态调整权重

适合广告粗排,收益最大化能力强


方式三:自适应融合(最智能)

利用权重网络(Gating Fusion)由模型学习权重,而不是人工设置

适用于推荐粗排,能够兼顾业务全面目标


五、TensorFlow 2.x + Keras 实战:MMoE 粗排多任务模型

以下为可直接训练的粗排多目标 MMoE Keras 代码(可运行 & 可扩展)

import tensorflow as tf
from tensorflow.keras import layers, Modelclass MMoE(layers.Layer):def __init__(self, units, num_experts, num_tasks):super().__init__()self.experts = [layers.Dense(units, activation="relu") for _ in range(num_experts)]self.gates = [layers.Dense(num_experts, activation="softmax") for _ in range(num_tasks)]def call(self, inputs):expert_outputs = tf.stack([expert(inputs) for expert in self.experts], axis=1)task_outputs = []for gate in self.gates:gate_weights = tf.expand_dims(gate(inputs), axis=-1)task_output = tf.reduce_sum(expert_outputs * gate_weights, axis=1)task_outputs.append(task_output)return task_outputs# 构建粗排模型
inputs = layers.Input(shape=(128,))
mmoe_outputs = MMoE(units=64, num_experts=8, num_tasks=2)(inputs)ctr_output = layers.Dense(1, activation="sigmoid", name="ctr")(mmoe_outputs[0])
cvr_output = layers.Dense(1, activation="sigmoid", name="cvr")(mmoe_outputs[1])model = Model(inputs=inputs, outputs=[ctr_output, cvr_output])
model.compile(optimizer="adam",loss={"ctr": "binary_crossentropy", "cvr": "binary_crossentropy"},loss_weights={"ctr": 1.0, "cvr": 2.0}
)
model.summary()

你会看到几个关键点:

✔ Experts 共享
✔ Gates 控制任务分离
✔ Loss 加权影响业务重点
✔ 结构轻 → 适合粗排


六、线上粗排架构与多任务融合的工程落地

部署到粗排线上,一般遵循:

特征服务 → 粗排模型(MTL) → 得分融合 → TopN → 精排 → 召回补充 → 重排序 → 展示

监控指标必须包含:

  • AUC(CTR/CVR)

  • GMV / ROI

  • 分层曝光比例

  • 长短期目标平衡度


七、本节总结(写在节尾的小结)

粗排阶段真正任务对应 MTL 作用
平衡点击与收益CTR + CVR + GMV 多目标
在有限曝光中控权分数融合策略
保证结构健康多任务避免“骗点击”
追求轻量高效MMoE / PLE 是最佳选择

一句话总结本节:

粗排不是优化单一目标,而是通过多任务学习最大化整体系统价值,而目标融合是粗排能否真正跑起来的决定性步骤。

http://www.dtcms.com/a/524176.html

相关文章:

  • Prometheus 监控系统全维度指南
  • Gradle 增量构建与构建缓存:自定义 Task 如何实现 “只构建变化内容”?
  • 【笑脸惹桃花】1024,阶段性回望与小结
  • 农产品网站建设策划方案网站获取qq号码 代码
  • 网站服务器的作用和功能有哪些福田欧辉是国企吗
  • R语言高效数据处理-变量批量统计检验
  • 云图-地基云图
  • R语言基于selenium模拟浏览器抓取ASCO数据-连载NO.03
  • 多分组火山图绘制-Rscript_version1.0
  • 【开题答辩全过程】以基于Hadoop的电商数据分析系统为例,包含答辩的问题和答案
  • 申威服务器安装Java11(swjdk-11u-9.ky10.sw_64.rpm)详细操作步骤(附安装包)
  • UVa 1596 Bug Hunt
  • 企业数据仓库
  • 如何用 HTML 生成 PC 端软件
  • Apache Spark算法开发指导-特征转换Normalizer
  • 泗洪网站建设变化型网页网站有哪些
  • 渭南哪家公司可以做网站小程序开发制作价格
  • 广州城市建设规划局网站我想给网站网站做代理
  • 蓝蜂 MQTT 网关打通 120 台设备数据,助汽车零部件厂降本 40%​
  • C++异常详细介绍
  • AKKO 3180键盘插到联想笔记本无法使用问题
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第六天)
  • 从项目中学习CAN和CANFD报文结构(新手入门)
  • SpreadJS 赋能在线 Excel:协同编辑与精细化权限管控的技术实现
  • RabbitMQ 持久性详解
  • cms网站栏目介绍html免费模板下载
  • 太原网站建设培训班wordpress购买按钮插件
  • 北斗导航 | 接收机自主完好性监测(RAIM)在列车中的应用:原理、现状、挑战与案例
  • 前端Sass完全指南:从入门到精通
  • 网站建设地域名高校网站建设 网站群