← Back to list
IntHQ

IntHQ: Task-Interactive Hierarchical Query on Dual-Stream Representations for Generative Recommendation

生成式推荐 Alibaba
Abstract 8 │ Reading 8 │ Rating —
2026-08-10
Junjie Sun, Longfei Xu, Huimin Yan, Wei Luo, Kaikui Liu, Xiangxiang Chu
DreamX, Alibaba Group
IntHQ 把多任务生成式推荐的病因诊断为 source/relational/hierarchical 三重坍缩,用双流解耦(任务 token 独立成参数不共享的第二条流)、任务交互建模(因果掩码的跨任务自注意力替代预定义漏斗)和分层查询(每个任务按深度注意力自适应选层)分别对治,在高德 IntTravel 的 4 编码器 × 4 多任务头网格上十项指标全优,线上全量部署拿到 UVCTR 相对 +1.60% 且 FLOPs 低于所有 baseline。
评分原因
摘要评分:把多任务学习真正接进生成式推荐范式,用双流解耦/任务交互建模/分层查询分别对治来源、关系、层级三类坍缩,问题拆解清楚;且已在高德首页出行推荐线上部署、服务数亿用户并拿到 UVCTR +1.60%,方法与工业验证俱全。
精读评分:把多任务学习接入生成式推荐这一空白问题拆成 source/relational/hierarchical 三重坍缩,用信息论定理与共享块折中代价的二次型上界给出可证伪诊断,三组件与三坍缩一一对应且消融退化模式与理论预测三点共线;高德全量上线、UVCTR +1.60% 且 FLOPs 低于所有 baseline。扣分在只用 IntTravel 单一数据集、主实验仅 3 层与 16 层诊断脱节、scaling 只给雷达图无数值、且未与问题高度同构的 OneRank 直接对比。
multi-task transformer industrial

IntHQ:用双流解耦 + 任务交互 + 分层查询把多任务学习真正接进生成式推荐

DreamX, Alibaba Group(Junjie Sun、Longfei Xu 通讯、Huimin Yan、Wei Luo、Kaikui Liu、Xiangxiang Chu),2026-08-10 挂 arXiv(2608.09634v1,cs.IR)。核心主张:生成式推荐(GR)正成为下一代推荐骨干,但多任务学习(MTL)如何接入生成式范式几乎还是空白。现有多任务推荐器都是同一套配方——把请求压成单一任务无关表征、挂一组条件独立的任务头、任务关系写死成预定义漏斗。作者论证这必然导致三重坍缩(source / relational / hierarchical),并用一条信息论定理把前两者拆成两个非负超额风险项,对应提出三组件:DSD 把任务 token 剥离成参数完全解耦的第二条流、TIM 用因果掩码的任务自注意力替代固定漏斗、HQ 让每个任务自适应地从不同深度取表征。在工业级 IntTravel 上跨 4 编码器 × 4 多任务头的网格中 IntHQ 于全部 10 个指标最优;已在高德全量上线,服务数亿用户、峰值 30k QPS,A/B 拿到 UVCTR 相对 +1.60%。


一、研究动机与背景

1.1 多任务推荐的三条既有路线

论文把已有 MTL 工作归为三条主线:容量分配路线,在任务间分配容量以缓解负迁移,从 shared-bottom 到 MMoE、PLE;任务关系路线,如 ESMM、AITM 利用动作间的转化依赖缓解稀疏与选择偏置;优化层面路线,GradNorm 重平衡 loss 尺度,PCGrad 投影掉梯度冲突分量,CAGrad 与 Nash-MTL 求解所有任务都能接受的更新方向。关键批评是:这些方法都是为多级级联里那个"判别式、重特征工程"的排序阶段设计的,无法自然迁移到统一的序列建模形式上。

1.2 生成式推荐带来的范式错配

GR 面向高基数、非平稳的流式数据,把历史行为、反馈、上下文、候选统一 token 化成一条序列,把碎片化级联坍缩成一个骨干并支持端到端扩参。但 GR 在单目标 next-item prediction 下训练,天然不支持多个异构目标的联合优化。已有多任务生成式推荐器要么在输出侧的头上做任务条件化(IntTravel),要么把任务 token 注进行为序列一起编码(OneRank、HGenPush)——无论哪种,任务信号都与共享表征纠缠在一起。

1.3 三重坍缩

  • 来源坍缩(Source collapse):任务信号注入太晚、在共享空间被稀释。上下文 token 作为连续流必须刻画跨场景行为、产出与意图耦合的高维表征;任务 token 则扎根于任务特定语义流形,需要不同的面向任务的侧重。
  • 关系坍缩(Relational collapse):任务依赖要么被骨干隐式吸收,要么被预定义漏斗(ESMM、AITM)静态写死。纠缠在共享流内的交互只能靠跨任务梯度隔离抑制,而这会丢掉有用的跨任务信号(作者点名 OneRank 的梯度解耦);且有些依赖无法先验指定。
  • 层级坍缩(Hierarchical collapse):深层骨干不同层以不同粒度编码上下文,异构任务在训练不同阶段依赖不同深度。只取最后一层、或用固定的逐层标量门控,都会把层级压平成一个所有任务共享的表征。

1.4 在地图与出行服务里的具体形态

作为 LBS 服务商,高德要在单个 session 内解决四个耦合决策:出发时间(when)、目的地(where)、出行方式(how)、途经点(via)。

Figure 1: Overview of IntHQ. Left: offline processing turns user logs into session-structured data with scenario/item/feedback (SIF) tokens. The context stream and the task-token stream are decoupled. Task tokens interact within task encoder and hierarchically query the context encoder. Right: online serving jointly produces the when, where, how, and via decisions for travel recommendation, varies with time and scenarios.

四个任务依赖的证据完全不同:where 与 when 由长期历史的粗粒度周期性决定;via 取决于当前 session 内一次瞬时需求(如加油);how 响应此刻实时路况。单一任务无关 embedding 只保留主导统计量、丢掉少数派证据,下游的任何东西都无法恢复被丢弃的信息,所以任务信号必须早注入。同时上下文计算是"把序列压缩成能持续的东西"、任务计算是"在当前情境下做判别",两种角色对同一组参数有不同最优点,因此必须活在解耦的参数空间里。此外任务耦合随场景漂移——通勤时目的地决定出行时间与方式,旅行中目的地不确定则依赖变松,没有固定顺序能跨场景成立;各任务在词表规模与信号稀疏度上差异巨大,按需路由不同尺度的表征是有益的。


二、问题形式化与 Pilot Study

2.1 问题形式化

给定用户交互集合 $\mathcal{A}$,系统联合求解一个分解为 $K$ 个耦合子决策的出行意图,$k\in\mathcal{K}=\{\text{when},\text{where},\text{how},\text{via}\}$,标签 $y=[\,y_k\mid k\in\mathcal{K}\,]$,每个 $y_k$ 取值于候选集 $\mathcal{I}_k$(可能极大,如 POI)。行为按 session 记录,$\mathcal{A}$ 是由三类 token 装配的有序序列:

$$\mathcal{A}_u=\big\{(S_t,I_t,F_t)\big\}_{t=1}^{T_u},\qquad S_t\in\mathcal{S},\ I_t\in\mathcal{I},\ F_t\in\mathcal{F}\tag{1}$$

场景 token $S_t$ 编码第 $t$ 次动作的时空状态,物品 token $I_t$ 表示交互的 POI 及属性,反馈 token $F_t$ 标记交互类型(点击、搜索)。一组画像 token $\mathcal{U}_u=(U_1,\dots,U_m)$ 编码长期静态属性,前置到序列开头作为对所有后续 token 可见的全局上下文。并行地定义任务 token 序列并把标签挂到对应任务:

$$\mathcal{Q}_u=\big\{(q^t_{\text{when}},q^t_{\text{where}},q^t_{\text{how}},q^t_{\text{via}})\big\}_{t=1}^{T_u},\qquad q^t_k\in\mathcal{Q}_k,\ k\in\mathcal{K}\tag{2}$$

模型把请求编码成 $z=\mathrm{Enc}_\Theta(\mathcal{A})$,用联合目标的极大似然训练:

$$\hat\Theta=\arg\max_{\Theta}\sum_{(\mathcal{A},y)\in\mathcal{D}}\log P\big([\,y_k\mid k\in\mathcal{K}\,]\mid \mathcal{A};\Theta\big)\tag{3}$$

2.2 坍缩分解定理

作者用结果元组的联合 log loss 打分,Bayes 最优为 $R^\star=H(y\mid\mathcal{A})$。传统做法把 $\mathcal{A}$ 压成单一任务无关码 $z$、用条件独立的头打分,预测律为 $\prod_k q_k(y_k\mid z)$,称为 任务无关编码(TAE),最优风险 $R_{\text{TAE}}(z)=\sum_k H(y_k\mid z)$。

定理 1(坍缩分解) 设每个 $\mathcal{I}_k$ 有限、$z=\mathrm{Enc}(\mathcal{A})$ 可测确定、各头遍历所有条件律且不共享参数,则

$$R_{\text{TAE}}(z)-R^\star=\underbrace{\sum_k I(\mathcal{A};y_k\mid z)}_{\Delta_{\text{src}}(z)}+\underbrace{\mathrm{TC}(y\mid\mathcal{A})}_{\Delta_{\text{rel}}}\tag{4}$$

其中 $I(\mathcal{A};y_k\mid z)=H(y_k\mid z)-H(y_k\mid\mathcal{A})$ 是编码丢弃的关于 $y_k$ 的信息,$\mathrm{TC}(y\mid\mathcal{A})=\sum_k H(y_k\mid\mathcal{A})-H(y\mid\mathcal{A})$ 为总相关。两项非负,故 $R_{\text{TAE}}(z)\ge R^\star+\Delta_{\text{rel}}$,取等当且仅当 $z$ 对每个任务边缘充分。

价值在于两项依赖关系不相交、因而需要不同结构来治:$\Delta_{\text{src}}$ 带着编码器走,更好的编码器能压缩它;$\Delta_{\text{rel}}$ 不含 $z$,无论编码器多大都从下方卡住任何因子化读出。故压缩 $\Delta_{\text{src}}$ 要求在编码器内部做任务条件化(→ DSD),缓解 $\Delta_{\text{rel}}$ 要求各决策互相条件化(→ TIM)。

2.3 支撑命题

命题 1(晚期条件化无能为力) 若每个任务特定计算都是共享码的函数 $h_k=g_k(z)$,则

$$\sum_k I(\mathcal{A};y_k\mid h_k)\ \ge\ \Delta_{\text{src}}(z)\tag{5}$$

取等当且仅当每个 $g_k$ 相对 $z$ 对 $y_k$ 充分。放在 $z$ 之上的任何东西都无法降低来源项——每个模块只是对被丢弃信息的统计量再粗化。任务条件化必须发生在编码器内部。

命题 2(共享块的代价) 设一权重块承担两种角色,风险按梯度来源拆成加性形式 $R(\Theta_c,\Theta_q)=L_c(\Theta_c)+L_q(\Theta_q)$,极小点 $\Theta^*_c,\Theta^*_q$、Hessian $H_c,H_q\succ0$,$\Theta_t$ 极小化绑定风险。则在 $\Theta_t$ 处 $\nabla L_c(\Theta_t)=-\nabla L_q(\Theta_t)$,两角色以等大反向的力拉扯、谁都不在自己最优点上,且绑定风险超出解绑风险

$$\tfrac12\,\Delta^\top H_c\,(H_c+H_q)^{-1}H_q\,\Delta\ \ge\ 0,\qquad \Delta:=\Theta^*_c-\Theta^*_q\tag{6}$$

当且仅当两角色最优点重合时为零。这个代价只取决于两种角色希望块待在多远,与它有多少参数无关——单纯把共享编码器加大并不能消除折中。这把 Monea 等人在单任务语言建模里的"状态与预测分离"推广到「$K$ 个任务角色对一个上下文角色」。

命题 3(因子化间隙与三条逃逸路线) 固定编码器上把最好的因子化读出换成最好的联合读出,风险恰减少 $\mathrm{TC}(y\mid z)$,且

$$\mathrm{TC}(y\mid z)-\mathrm{TC}(y\mid\mathcal{A})=\sum_k I(\mathcal{A};y_k\mid z)-I(\mathcal{A};y\mid z)\tag{7}$$

要达到 $R^\star$,读出必须在给定 $\mathcal{A}$ 时非因子化,而获得它恰好只有三条路:在 $\prod_k\mathcal{I}_k$ 上开显式联合头、用按边缘似然打分的隐变量头、或采用链式法则因子化——每个决策条件于已实现的前驱结果。

命题 4(条件于已实现结果时的残差) 设 $\prec$ 是漏斗序的线性扩展,每个头条件于 $\mathrm{pa}(k)\subseteq\{y_j:j\prec k\}$ 的已实现标签,则相对 $R^\star$ 的最优超额风险为

$$\sum_k I\big(y_k;\,y_{\prec k}\setminus \mathrm{pa}(k)\ \big|\ y_{\mathrm{pa}(k)},\mathcal{A}\big)\tag{8}$$

它与线性扩展的选择无关,父集为完整前驱集时为零、全为空时等于 $\Delta_{\text{rel}}$。TIM 正是把每个决策放在其结果于 session 内被实现的位置并屏蔽反向;ESMM/AITM 也条件于前驱,但把顺序与耦合强度事先固定,跨任务注意力则为每个实例学出这个强度。

支撑上述的两个引理分别是 Gibbs 不等式($u$ 为预测器可观测的一切,log loss 是严格恰当评分规则)与因子化读出的最优风险:

$$\underbrace{\mathbb{E}\big[-\log q(y\mid u)\big]}_{\text{预测的损失}}=\underbrace{H(y\mid u)}_{\text{真值不确定性}}+\underbrace{\mathbb{E}_u D_{\mathrm{KL}}\big(p(\cdot\mid u)\,\|\,q(\cdot\mid u)\big)}_{\text{与真值的距离}}\ \ge\ H(y\mid u)\tag{9}$$

$$R_{\text{TAE}}(z):=\inf_{q_1,\dots,q_K}\mathbb{E}\Big[-\sum_k\log q_k(y_k\mid z)\Big]=\sum_k H(y_k\mid z)\tag{10}$$

层级坍缩没有理论刻画,在 §4.1 用逐层线性探针实证建立。


三、核心方法:IntHQ

Figure 2: The detailed architecture of IntHQ. IntHQ is composed of three components, Dual-Stream Decoupling, Task-Interactive Modeling and Hierarchical Querying. The two streams are encoded separately and never concatenated. The mask between task tokens and context tokens is illustrated in the figure below, while visibility within the context tokens follows standard causal attention.

图中三条计算清晰可见:左侧蓝色 DSD: Contextual Encoder 对 U/S/I/F 序列逐层自注意力(Step 1);中间 Cross-Attention Layer $\ell$ 以上下文为 Key & Value、任务表征为 Query(Step 2);右侧橙色 TIM: Self-Attention Unit 在任务 token 间自注意力(Step 3);顶部 HQ 把每个任务在 Layer 1..L 收集的表征堆起来在深度轴上做注意力后进 Multi-Task Prediction。底部 Causal Mask 小图显示:画像与场景 token 对所有任务可见,承载"已实现结果"的物品与反馈 token 只对因果序更靠后的任务可见;任务 token 之间是下三角掩码——via 能看到已定的 where/when/how,反向被屏蔽。

3.1 DSD:双流解耦

序列构造。 每个决策在可观测上下文下做出、落到具体物品、以某种反馈结束,于是把每个 session 映射成三类上下文 token($S$ 编码时间/位置/天气,$I$ 编码被消费的 POI 及属性,$F$ 编码点击/搜索/下单),画像 token $U$ 每序列追加一次。序列按 session 按时序组织,同一 session 内所有 token 共享同一时间戳——session 才是决策的自然单位:一次出行同时实现"何时出发、去哪、怎么去、途经何处"。每个任务 token $q_k$ 是跨所有序列共享的可学习参数、充当任务 $k$ 的 query 模板。

解耦的双流注意力。 两条流由参数不相交的独立注意力核编码。上下文自注意力从行为历史蒸出任务无关的意图摘要:

$$\tilde H^{(\ell)}_{\text{ctx}}=\mathrm{Attn}_{\text{ctx}}\big(H^{(\ell)}_{\text{ctx}},\,H^{(\ell)}_{\text{ctx}}\big)\tag{11}$$

任务—上下文交叉注意力让每个任务 token 查询上下文流:

$$\tilde H^{(\ell)}_{q}=\mathrm{Attn}_{q}\big(H^{(\ell)}_{q},\,H^{(\ell)}_{\text{ctx}}\big)\tag{12}$$

于是 $\mathrm{Attn}_q$ 的 Q/K/V 投影只从任务 token 的梯度里学。关键在于 KV 取自当前层输入 $H^{(\ell)}_{\text{ctx}}$ 而非自注意力输出 $\tilde H^{(\ell)}_{\text{ctx}}$,因此层内两步计算独立(既可并行,也避免任务流被上下文流的层内更新串行卡住)。

因果可见性。 所有注意力遵守同一规则:$p_q$ 的 query 可注意 $p_k$ 的 key 当且仅当 $c(p_k)\le c(p_q)$,$c(\cdot)$ 是标量因果索引,同时编码跨 session 因果性(更早 session 对所有更晚 token 可见)与 session 内顺序(一个 token 只看到因果上先于它的侧面,如 via 能看到已实现的 where、反之不行)。画像 token 拿最小索引因而对每个 query 可见。还加了由同一位置结构索引的可学习相对位置偏置与时间差偏置。

3.2 TIM:任务交互建模

DSD 给每个任务 token 配了上下文条件化表征,但它们各自独立算出、任务 token 彼此还看不见。真实依赖并不平凡:目的地约束可行交通方式,方式又收窄出发时间;把这类依赖丢给共享流隐式吸收正是关系坍缩。TIM 用与 Eq. 12 相同的解耦核 $\mathrm{Attn}_q$ 在任务 token 上加一步自注意力:

$$\hat H^{(\ell)}_{q}=\mathrm{Attn}_{q}\big(H^{(\ell)}_{q},\,H^{(\ell)}_{q}\big)\tag{13}$$

此时表征既被 embedding $e_k$ 做了任务标识、又被累积的交叉注意力历史做了 session 接地,因此这是一次从数据里学出来、而非由预定义结构规定的显式任务交互。自注意力同样服从 $c(p_k)\le c(p_q)$:via 可注意同 session 的 where/when/how,反向被阻断——在防标签泄漏的同时允许下游侧面利用上游决策,正是命题 4 的链式读出。两次注意力都从层输入算起、进入同一个残差更新:

$$H^{(\ell+1)}_{q}=H^{(\ell)}_{q}+\underbrace{\tilde H^{(\ell)}_{q}}_{\text{context}}+\underbrace{\hat H^{(\ell)}_{q}}_{\text{cross-task}},\qquad H^{(\ell+1)}_{\text{ctx}}=H^{(\ell)}_{\text{ctx}}+\tilde H^{(\ell)}_{\text{ctx}}\tag{14}$$

注意上下文流的残差更新里完全没有任务项——上下文流是 task-free 的,信息单向从上下文流到任务流。这正是命题 2 要求的"两个角色各自到达自己的最优点"。

3.3 HQ:分层查询

最有信息量的深度因任务而异且在训练中移动,单一最后层读出会把差异压平。HQ 让每个任务只用任务流选它需要的深度。逐层收集:每层任务流输出跨残差路径聚合、归一化后存下,得到表征库 $\{h^{(1)}_q,\dots,h^{(L)}_q\}$。作者特意说明从任务流而非上下文流收集——任务 token 已被交叉注意力按各任务信息需求条件化过,深度聚合因此只需选"哪个深度重要",不必再选"哪些信息与任务相关"。深度注意力:把 $L$ 个层状态堆成 $Z_k=[H^{(1)}_{q,k};\dots;H^{(L)}_{q,k}]\in\mathbb{R}^{L\times d}$,query 由任务身份构成,每层映成 key/value 并加可学习深度 embedding $d_\ell$ 标记来源层:

$$ \begin{aligned} Q_k&=W_Q\,q_k, & K_\ell&=W_K\,Z_k[\ell]+d_\ell, & V_\ell&=W_V\,Z_k[\ell],\\[4pt] \alpha^{(k)}_\ell&=\frac{\exp\big(\langle Q_k,K_\ell\rangle/\sqrt{d_a}\big)}{\sum_{\ell'=1}^{L}\exp\big(\langle Q_k,K_{\ell'}\rangle/\sqrt{d_a}\big)}, & z_k&=\mathrm{LN}\Big(H^{(L)}_{q,k}+\textstyle\sum_{\ell=1}^{L}\alpha^{(k)}_\ell V_\ell\Big). & & \end{aligned} \tag{15}$$

打分通过 $q_k$ 依赖任务、通过每层上下文依赖 $\kappa_\ell$,所选深度随任务、session、用户变化而非被固定调度写死;输出保留 $H^{(L)}_{q,k}$ 作残差基底,深度注意力只是在其上加一个跨层加权和。

3.4 训练与损失

每个任务用自己的 InfoNCE 损失训练,HQ 输出过任务特定头得到最终表征;IntHQ 是 head-agnostic 的(Table 1 用四种头验证)。总损失为各任务损失之和:

$$\mathcal{L}=\sum_{k\in\mathcal{K}}-\frac{1}{|\mathcal{A}|}\sum_{u\in\mathcal{U}}\sum_{a\in\mathcal{A}_u}\log\frac{\exp(\hat y^{\,i^+}_k)}{\sum_{i\in\mathcal{I}_k}\exp(\hat y^{\,i}_k)}\tag{16}$$

候选集按任务构建:小标签空间任务(how、when) 取全类别集、退化为标准 softmax 交叉熵;极大标签空间任务(where、via) 用采样 softmax,$\mathcal{I}_k$ 为真值加采样负例。Algorithm 1 概括为:

输入: H_ctx^(0),H_q^(0)(H_q^(0)[t,k] = e_cls + e_k),层数 L,
      解耦核 Attn_ctx / Attn_q,因果掩码 M_cc / M_qc / M_qq
1  for ℓ = 0 .. L-1 do            ▷ 下面三次调用读同一个层输入,可并行
2      H̃_ctx ← Attn_ctx(H_ctx^(ℓ), H_ctx^(ℓ); M_cc)      ▷ 上下文自注意力
3      H̃_q   ← Attn_q  (H_q^(ℓ),   H_ctx^(ℓ); M_qc)      ▷ 任务→上下文交叉注意力
4      Ĥ_q   ← Attn_q  (H_q^(ℓ),   H_q^(ℓ);   M_qq)      ▷ 任务自注意力
5      H_ctx^(ℓ+1) ← H_ctx^(ℓ) + H̃_ctx                   ▷ 残差更新,task-free
6      H_q^(ℓ+1)   ← H_q^(ℓ) + H̃_q + Ĥ_q
7      h_q^(ℓ+1)   ← LN^(ℓ+1)(H_q^(ℓ+1))                 ▷ 存下供分层查询
8  end for
9  L ← 0
10 for each task k ∈ K do
11     z_k ← DepthAttn(e_k, {h_q^(ℓ)[·,k]}_{ℓ=1..L})      ▷ 分层查询,Eq.15
12     o_k ← Head_k(z_k);  L ← L + InfoNCE(o_k, i^+; I_k) ▷ Eq.16
13 end for
14 用 ∇L 更新参数;返回 L

第 2–4 行的注释很重要:三次注意力读同一个层输入因而可并行,这是 IntHQ 增加一条流仍能降低 FLOPs 的前提。

3.5 计算复杂度

设 $N_s$ 为 session 数、$N_c$ 为上下文 token 数、$N_q=KN_s$ 为任务 token 数、$d$ 为宽度、$L$ 为深度。统一单流编码器要在 $N_c+N_q$ 个位置做注意力,代价 $O\big(L(N_c+N_q)^2d\big)$;IntHQ 每层做三次注意力,总计:

$$O\big(L(N_c^2+N_qN_c+N_q^2)\,d\big)\tag{17}$$

相比 $(N_c+N_q)^2=N_c^2+2N_qN_c+N_q^2$ 严格更省(少一份 $N_qN_c$ 交叉项)。读出侧差异也是渐近的:单流的因子化头要在全部 $N_c+N_q$ 个位置求值,IntHQ 每个任务头只消费自己的 $N_s$ 个任务 token,代价从 $O(KNd_{\text{head}})$ 降到 $O(KN_sd_{\text{head}})$。

Table 3:固定 STAR 头(L=3, d=96, batch size 1)下的实测代价(只统计编码器、读出门控与头的稠密参数,不含稀疏 embedding 表;FLOPs 为算子级统计)

Encoder Params FLOPs
IntTravel 1.54M 448.8M
OneTrans 3.43M 432.3M
HGenPush 1.71M 561.6M
IntHQ (Ours) 1.70M 297.9M

IntHQ 参数量与 HGenPush 持平、只有 OneTrans 的一半,FLOPs 比最省的 OneTrans 还低 31%、比 HGenPush 低 47%——"多加一条流"并不必然更贵。


四、实验

4.1 诊断层级坍缩

为对齐线上系统,作者按 IntTravel 实现训了一个 $L=16$ 层 baseline,在生产数据上挂逐层线性探针:对每层 $\ell$,探针从 $z_\ell$ 预测 $y_k$。

Figure 3: Per-layer probed accuracy over training. Color is the per-layer probed accuracy z-scored along training (warm=high, cool=low). The black curve is the smoothed best layer. For different tasks, the reliance on features of different scales varies at different stages of training.

四张热力图(Where / Via / How / When)纵轴是上下文层(0 浅 → 15 深)、横轴是训练步($\times10^3$,约 82 万步),颜色是沿训练方向 z-score 后的探针准确率(暖高冷低),黑线是平滑后的最佳层 $\arg\max_\ell$。三点观察:(1) 最可解码的层在任务间系统性不同——细粒度检索(Where、Via)峰值在浅层($\ell\approx1\text{–}3$),粗粒度意图(How、When)依赖更深更抽象的特征($\ell\approx5\text{–}7$);(2) 每个任务的最佳层全程漂移(Where/Via 初期从 $\ell\approx7$ 快速下坠到 $\ell\approx2$ 后小幅震荡,How 在 6–9 间反复),即便只看一个任务也没有固定深度全程最优;(3) 深度由任务消费的上下文跨度决定——浅层保留 session 级高分辨率即时信号、深层把行为聚合成长程模式:出行方式预测受益于跨多 session 的通勤规律,目的地检索则靠浅层的即时时空场景。这就是 HQ 的直接动机。

4.2 实验设置

数据集。 采用 IntTravel,由真实工业地图与导航平台日志构建,含约 41 亿次交互、1.63 亿用户、730 万 POI,比先前基准大 2–3 个数量级;§4.1 的生产数据与该公开基准格式相同、仅规模有别。

Baseline 沿两条正交轴组织。 序列编码器决定任务信号是否及如何进入编码计算,四者构成"任务信号注入程度"的递进:IntTravel 是为出行定制的 HSTU 风格骨干,编码时完全没有任务 token、任务只在编码后分叉;OneTrans 把序列与非序列特征用混合参数化统一成一条 token 序列;HGenPush 用逐分支 [cls] token 把任务 token 插进主序列,但与上下文 token 共享一条流、一套参数。多任务头:PLE(渐进分层抽取)、STAR(星型拓扑,任务特定权重乘共享中心网络)、DSFNet(作者的生产头,共享专家池之上放逐任务私有专家)、HoME(分层 MoE + 自门控残差)。

评估指标沿用 IntTravel 协议,每任务配正向指标 + 一个负向指标:when 报 Accuracy(出发时间精确匹配率↑)与 MAE↓;how 报出行方式 Accuracy↑ 与 Bad Case Rate(BCR↓,top-3 未命中率——导航 App 主屏只展示三种方式);where / via 报 HitRate@{1,5}↑ 与 Category Inconsistency Rate(CIR↓,top-1 既不匹配真值 POI、也不与其共享类目的比率)。

实现细节。 所有模型共享完全相同的配置:embedding 维度 96、最大序列长度 120、batch size 64/worker、8 张 PPU GPU;沿用 IntTravel 设置,所有编码器堆 3 层;AdamW(lr $8\times10^{-4}$,weight decay $10^{-6}$)训 1 个 epoch;POI 检索用采样 softmax,每正例 64 负例:14 个全词表均匀采样 + 50 个基于距离的困难负例;两条流用完全解耦的注意力参数,分层查询注意力维度 64、单头;baseline 编码器用 4 头注意力 + FFN,头采用原论文超参;所有组合用相同数据顺序与随机种子训练。

4.3 主实验结果

Table 1:四编码器 × 四多任务头在 IntTravel 上的离线性能(↑ 越高越好,↓ 越低越好;每个头内最佳编码器加粗,t-test p < 0.01)

Encoder Head When Acc↑ When MAE↓ How Acc↑ How BCR↓ Where HR@1↑ Where HR@5↑ Where CIR↓ Via HR@1↑ Via HR@5↑ Via CIR↓
IntTravel PLE 0.8333 8.0003 0.6779 0.0691 0.6731 0.8652 0.2474 0.6760 0.8659 0.2459
IntTravel STAR 0.8327 8.0301 0.6735 0.0708 0.6931 0.8752 0.2327 0.7032 0.8785 0.2259
IntTravel DSFNet 0.8331 8.0127 0.6740 0.0714 0.6956 0.8757 0.2305 0.7050 0.8788 0.2242
IntTravel HoME 0.8328 8.0249 0.6769 0.0702 0.6720 0.8645 0.2484 0.6778 0.8663 0.2445
OneTrans PLE 0.8314 8.0910 0.6374 0.0942 0.6443 0.8583 0.2716 0.6765 0.8663 0.2455
OneTrans STAR 0.8310 8.1135 0.6147 0.0995 0.6750 0.8694 0.2480 0.7034 0.8772 0.2252
OneTrans DSFNet 0.8311 8.1048 0.6338 0.0863 0.6679 0.8687 0.2532 0.7034 0.8776 0.2248
OneTrans HoME 0.8315 8.0895 0.6480 0.0849 0.6474 0.8589 0.2691 0.6800 0.8672 0.2430
HGenPush PLE 0.8310 8.1119 0.5677 0.1236 0.6556 0.8538 0.2643 0.6724 0.8639 0.2494
HGenPush STAR 0.8310 8.1114 0.5657 0.1253 0.6724 0.8603 0.2531 0.7025 0.8763 0.2270
HGenPush DSFNet 0.8310 8.1123 0.5654 0.1284 0.6672 0.8601 0.2562 0.7019 0.8765 0.2268
HGenPush HoME 0.8309 8.1116 0.5674 0.1242 0.6537 0.8528 0.2657 0.6773 0.8656 0.2452
IntHQ (Ours) PLE 0.8348 7.9289 0.6907 0.0652 0.6842 0.8707 0.2395 0.6839 0.8706 0.2400
IntHQ (Ours) STAR 0.8347 7.9366 0.6899 0.0654 0.7050 0.8819 0.2239 0.7129 0.8830 0.2188
IntHQ (Ours) DSFNet 0.8347 7.9341 0.6896 0.0656 0.7050 0.8828 0.2232 0.7119 0.8841 0.2190
IntHQ (Ours) HoME 0.8345 7.9433 0.6896 0.0657 0.6839 0.8712 0.2397 0.6818 0.8699 0.2424

结论分析:

  1. 在每种头下 IntHQ 于全部十个指标上都优于所有编码器 baseline,正负向指标同时改善——收益是质量前沿的一致外扩而非任务间此消彼长,多任务工作里常见的"某任务涨某任务跌"没有出现。
  2. 编码器轴的递进恰好复现三重坍缩的预测:IntTravel 既无任务 token 也无任务交互,两种坍缩原封不动;OneTrans 把所有特征统一进一条流、任务信号根本没进编码器,单一深度读出让深度谱两端直接竞争、损失被大词表任务主导,依赖抽象长程特征的 How 与 When 退化最重(How Acc 0.6735→0.6147,STAR 头下 −8.7% 相对);HGenPush 插了任务 token 但共享一条流,正如来源坍缩所预测两角色互相稀释,它恰好在同一任务 How 上最差(0.5657,比 IntTravel 低 16%)。这条单调趋势是对命题 2 相当漂亮的经验佐证。
  3. IntHQ 完成了这条递进,恰好在 baseline 失败最厉害处拿到最大 margin——How Acc 相对 HGenPush+STAR 提升 21.96%、相对 OneTrans+STAR 提升 12.23%。
  4. IntHQ 内部四种头的性能差显著收窄(How Acc 极差仅 0.0011,而 IntTravel 0.0044、OneTrans 0.0333),说明编码器侧任务条件化吸收了大部分特化工作,优势来自结构本身而非某个头,印证 head-agnostic 主张。
  5. 一个细节:When 上所有 baseline 几乎无差异(0.8309–0.8333)而 IntHQ 拉到 0.8345–0.8348、MAE 从 8.0+ 降到 7.93。When 是小词表任务、被大词表任务的损失压制最厉害,能同时改善说明 HQ 的按任务选深度确实缓解了"损失被大词表主导"。

4.4 消融实验

Table 2:IntHQ 在四任务上的消融(when/how 报 Acc,where/via 报 HR@1)

Task (Metric) IntHQ (full) w/o DSD w/o TIM w/o HQ
When (Acc↑) 0.8347 0.8329 0.8347 0.8330
Where (HR@1↑) 0.7050 0.6893 0.7049 0.7004
How (Acc↑) 0.6896 0.6728 0.6867 0.6757
Via (HR@1↑) 0.7119 0.6991 0.7102 0.7030

三组件逐一必要,且退化模式与各自针对的坍缩精确对齐:w/o DSD 在四任务上造成显著且均匀的下滑(−0.0018 / −0.0157 / −0.0168 / −0.0128),正是来源坍缩预期的形态——稀释效应是全局的而非任务特定的,DSD 也是贡献最大的组件。w/o TIM 让驱动任务(When、Where)几乎纹丝不动,却明显伤到 How 与 Via(−0.0029、−0.0017)——恰恰是那些决策条件于其它任务的侧面;这个不对称性是"收益来自跨任务耦合建模而非单纯多加参数"的直接证据(若只是容量效应,四任务应均匀受益)。w/o HQ 四任务全退化(−0.0017 / −0.0046 / −0.0139 / −0.0089),证实单一读出深度无法服务粒度异构的任务;How 的退化幅度接近 w/o DSD,与 §4.1 中 How 依赖深层且最佳层漂移最剧烈的观察吻合。

4.5 Scaling Law

固定其它超参,扫编码器深度 $L\in\{2,4,8,16,32\}$ 与宽度 $D\in\{24,48,96,192,384\}$,每个变体在同一数据流上训练。

Figure 4: Scaling with encoder depth and embedding dimension. Total loss, accuracy and hit rate of IntHQ with L ∈ {2, 4, 8, 16, 32} layers and D ∈ {24, 48, 96, 192, 384} dimensions. Deeper and wider encoders converge to better performance, exhibiting clear depth-wise and width-wise scaling trends.

两行雷达图(上行扫 $L$、下行扫 $D$),五个轴为 How(top1)、Where(top1)、Total loss(lower=better)、When(top1)、Via(top1)。多边形随 $L$ 与 $D$ 增大单调外扩:$L=2$ 是瘦长尖片(只有 When 轴还有长度),$L=8$ 起撑成较饱满五边形,$L=32$ 逼近外圈;$D=24$ 同样退化,$D\ge192$ 后接近满幅。更深更宽的编码器收敛到更好性能,双流结构无需修改即可 scaling。机制上,增容同时扩大了上下文流对长程模式的容量与分层查询可取用的表征库——"如何表征历史"与"如何按深度选表征"两条路径能一起增长。但论文只给雷达图、未给数值或拟合的 scaling 指数。

4.6 线上部署

服务 IntHQ 必须调和两个冲突需求:模型要跟上每天在变的出行行为,而每个请求必须在很紧的延迟预算内被响应。

Figure 5: Online deployment architecture of IntHQ on Amap. Solid arrows denote the real-time serving flow. Dashed arrows denote the offline training loop that redeploys updated models to the serving engines.

解法是把所有重的用户级计算移出请求路径:(1) 离线任务把每个用户的 session 结构化历史预先物化到 KV 存储;(2) 请求时模型服务按 user ID 取这段前缀;(3) 序列在 GPU 节点打分,where 与 via 的任务表征与 POI 索引做 ANN 检索;(4) response 与反馈写回日志,下一轮训练从中装配、刷新后的模型再发布回服务引擎(图中虚线环)。规模与延迟:序列长度 300(覆盖最近 100 次行为),峰值 30k QPS,部署在 150 张 NVIDIA PPU GPU(96GB) 上,平均 RT 40ms、P99 100ms。线上 A/B:高德出行推荐场景对比线上 baseline,每桶 20% 流量、7 天,UVCTR 相对提升 1.60%,逐日切片一致;已全量上线服务该场景全部流量,支撑 App 启动地图、终点推荐、出行方式推荐、沿途推荐等关键产品。


五、核心贡献总结

  1. 新的多任务生成式推荐范式:识别三重坍缩,用定理 1 把超额风险严格分解为 $\Delta_{\text{src}}$ 与 $\Delta_{\text{rel}}$,再用命题 1、2 论证"任务信号必须早注入、且必须放在解耦参数上",三组件与三坍缩一一对应,形成少见的"诊断—定理—结构"闭环。
  2. 完整的实验验证:IntTravel 上 4×4 网格 10 个指标一致最优;消融退化模式与各组件所治的坍缩精确对齐;深度/宽度双向 scaling 且 FLOPs 低于所有 baseline。
  3. 部署与评估:高德全量上线,数亿用户、30k QPS、数千万 POI,UVCTR 相对 +1.60%,平均 40ms / P99 100ms。

六、与已归档相关工作的对比

OneRank OneRank: Unified Transformer-Native Ranking Architecture for Multi-Task Recommendation(人大高瓴 + Shopee + NTU, 2026-06-15)

关系:显式引用但原文未展开对比(仅在关系坍缩一段与 related work 以 Tang et al., 2026 一笔带过,未进 Table 1 baseline)· 已加载对方精读

  • 共同关注的问题:root cause 几乎逐字对应。OneRank 说编码器–预测器分离让共享表示 $\mathbf{Z}=\mathcal{F}(\mathbf{X})$ 成为任务无关信息瓶颈、任务特异信号被纠缠丢失并诱发跷跷板;IntHQ 把同一件事写成 $\Delta_{\text{src}}(z)=\sum_k I(\mathcal{A};y_k\mid z)$ 并用命题 1 证明"放在 $z$ 之上的模块无法降低它"。两者也都不满足于 ESMM/AITM 的固定漏斗。
  • 相近的技术骨架:都用跨样本共享的可学习任务 token 作 query 模板、都在输入层就注入、都用结构化注意力掩码控制可见性、都在读出前做一次跨任务注意力——"任务 token → 掩码注意力 → 跨任务交互 → 任务特定读出"这条主干完全重合。
  • 本文的差异与推进:分歧恰落在 IntHQ 批评之处。(i) OneRank 的任务 token 与上下文 token 在同一序列、同一套参数里编码,IntHQ 视其为来源坍缩、用命题 2 量化折中代价后彻底解开两条流;(ii) OneRank 让任务 token 在编码阶段互不可见、把跨任务信息流推迟到预测层并用梯度解耦变成"只读记忆",IntHQ 点名这"会丢掉有用的跨任务信号",转而每层做因果掩码的任务自注意力、梯度正常回传,靠因果序(where ≺ when ≺ how ≺ via)防泄漏;(iii) OneRank 的 Parallel/Null/Cascade/Hybrid 四种 mask 是手工配置的,IntHQ 主张强度应 input-adaptive 学出;(iv) OneRank 未处理层级坍缩、表征取自最后一层,HQ 是 IntHQ 独有的第三轴。
  • 可比的方法 / 实验差异:OneRank 在 Shopee 做电商漏斗型排序(click/cart/purchase),7 天 A/B 拿 GMV/UU +1.01%、Paid GMV/UU +1.17%;IntHQ 在高德做四个非漏斗、耦合随场景漂移的决策,拿 UVCTR +1.60%。这恰解释取舍分歧:电商漏斗有稠密→稀疏级联,手工 Cascade mask 够用;出行四任务无跨场景稳定顺序,才逼出学习式交互。两篇未互跑实验,数值不可直接比较。

UniFormer UniFormer: Efficient and Unified Model-Centric Scaling for Industrial Recommendation(Kuaishou, 2026-06-25)

关系:独立并发(本文未引用 UniFormer,两者殊途同归)· 已加载对方精读

  • 共同关注的问题:UniFormer 指出当前 SOTA(OneTrans、HyFormer/MixFormer)的统一扩参"仍局限在特征空间,任务建模作为一等公民被忽略";IntHQ 说 MTL 接入生成式范式仍是空白、病因是任务信号在共享表征里被稀释。两者指向同一 root cause:统一序列骨干把任务当成挂在末端的读出,而非骨干里的一等计算对象。OneTrans 同为两篇的对照物。
  • 相近的技术骨架:UniFormer 的 TIM(Task-space Interaction Module) 与 IntHQ 的 DSD+TIM 算子层面几乎同构——先以任务 token 为 query 对特征 token 做 cross-attention(对应 Eq. 12),再对任务 token 做自注意力捕捉任务间关系(对应 Eq. 13),都把任务 token 输出作下一层 query、都把任务侧层数当独立扩参轴。两支互不知情的团队在短视频 CTR 多目标与出行四决策两种形态上独立收敛到同一骨架。
  • 本文的差异与推进:(i) UniFormer 是串行的——$M$ 层 FIM 跑完,TIM 第一层 KV 才取自 $\mathbf{F}^{\text{feat},(M)}$;IntHQ 是逐层并行交织。用 IntHQ 的语言说,UniFormer 的读出正是"只取最后一层"、属层级坍缩,HQ 恰恰针对这点。(ii) UniFormer 的任务自注意力不带掩码(CTR 多目标无 session 内实现顺序),IntHQ 用因果索引强制单向可见。(iii) UniFormer 是判别式 CTR 排序(加权 BCE),IntHQ 是生成式序列推荐(InfoNCE / 采样 softmax)。(iv) UniFormer 是 scaling 矩阵图式的工程叙事,IntHQ 给了信息论分解与二次型上界。
  • 可比的方法 / 实验差异:UniFormer 额外配 lazy 设计、user-level common compression、多视角 FFN 等效率优化,在快手双场景 A/B 拿一致收益;IntHQ 的效率优势来自"任务 token 移出主序列后二次项变小"这一结构性事实。两者都未在公开学术数据集上评测,工业数据不可比。

DUET DUET: Dual User Embedding Transformers for Offsite Conversion Prediction(Meta, 2026-06-08)

关系:独立并发(本文未引用 DUET)· 已加载对方精读

  • 共同关注的问题:DUET 的"信号主导下的机制错配"——单个上游模型同吃稠密点击流与稀疏站外转化流,必被稠密信号主导、欠拟合最相关的转化模式——与来源坍缩是同一件事的两种说法:一组共享参数被迫在统计性质截然不同的两种角色间折中。DUET 的"架构同质性"几乎就是命题 2 的经验版;反过来 Eq. 6 给了它闭式刻画:超额风险只取决于两角色希望参数待在多远、与参数量无关。
  • 相近的技术骨架:都走"把纠缠的单流拆成两条统计同质的流、各配解耦参数、再让两者通过注意力交互"。DUET 用多层自注意力的 ClickAUN 处理稠密点击流、交错交叉/自注意力的 ConvAUN 处理稀疏转化流;IntHQ 的上下文核与任务核参数不相交、任务核只从任务 token 梯度里学。
  • 本文的差异与推进:(i) DUET 沿数据域/标签语义拆,IntHQ 沿计算角色拆——同一条日志同时喂两条流、只承担不同职能;(ii) DUET 是两阶段解耦的(上游离线预训练产出静态嵌入异步喂下游 ranker),IntHQ 两条流同一次前向逐层交织、端到端联合优化——DUET 嵌入固化后限制下游表征空间,IntHQ 扩参时两条流一起长;(iii) DUET 两流独立编码、下游并列消费,无跨任务显式条件化,IntHQ 的 TIM 显式建模"已实现结果 → 后续决策"的链式依赖;(iv) 深度维度 DUET 亦未涉及。
  • 可比的方法 / 实验差异:DUET 在 6 个下游 OCVR 模型上以归一化熵(NE)评估并做 A/B,IntHQ 在 IntTravel 上做 4×4 网格 + 高德 A/B,指标不可比。价值在于同一个"共享块折中"病因在广告转化预估与出行多任务推荐两个迥异场景里被独立诊断出来,且都收敛到"拆流 + 参数解耦"。

七、讨论与局限性

值得借鉴的设计

把病因诊断做成可证伪的分解。 定理 1 明确 $\Delta_{\text{src}}$ 随编码器走、$\Delta_{\text{rel}}$ 是编码器无关的地板,直接推出"两项必须用不同结构治";更难得的是消融退化模式与理论预测三点共线(DSD 缺失时均匀掉、TIM 缺失时只有被条件化的下游任务掉、HQ 缺失时依赖深层的任务掉最多)。

命题 2 的"共享代价与参数量无关" 对工业实践很有指导性:两个功能在同一组参数上打架时,扩参不是解药,解耦才是;它也解释了"HGenPush 把任务 token 塞进主序列反而在 How 上最差"。

把任务 token 移出主序列反而更省。 FLOPs 比单流 OneTrans 低 31%、比 HGenPush 低 47%,因为多余的 $N_qN_c$ 项被拆掉、且任务头只消费 $N_s$ 个 token——"解耦更贵"的直觉在这里是错的。

因果索引 $c(\cdot)$ 的双重编码。 一个标量同时表达跨 session 因果性与 session 内 facet 顺序、让三种注意力共用一条可见性规则;用因果序而非梯度截断防泄漏,比 OneRank 的 detach 保留了更多可用信号。

局限与争议

  1. 只在一个数据集上评测,无任何公开学术基准结果。四个任务是高德场景高度定制的,三组件在电商 click/cart/purchase 这类漏斗型任务上是否同样有效完全未验证——而那恰是多任务推荐最主流的场景。TIM 的因果序设计依赖"session 内 facet 有明确实现顺序",在漏斗型任务上会退化成接近 ESMM 的固定级联,相对 OneRank 手工 Cascade mask 的优势可能大幅缩水。
  2. 主实验只用 3 层编码器,与诊断实验的 16 层脱节。§4.1 的诊断在 $L=16$ 上做(最佳层在 1–7 间漂移),Table 1 却只堆 3 层——3 层里 HQ 能选的深度只有 3 个,收益机制与 16 层的漂移图景并不严格对应;w/o HQ 的退化更像"多了一条跨层残差路径"的收益。
  3. Scaling 实验只给雷达图、无数值:无刻度、无指标值、未拟合指数,无法判断 $L=32$ 是否已进入收益递减,也无法与 HSTU 等工作横向比较。
  4. 缺少与最相关工作的直接对比。OneRank 被引用却没进 baseline,同期 UniFormer、UniR² 完全未提;三个 baseline 里 IntTravel 是自家前作、另两个都不是为多任务坍缩设计的,"编码器轴上一致最优"的对手强度有折扣。
  5. 消融不够细。只做整块 w/o,未验证内部设计:交叉注意力 KV 取自 $H^{(\ell)}_{\text{ctx}}$ 而非 $\tilde H^{(\ell)}_{\text{ctx}}$ 的收益多大?任务自注意力换成全可见会怎样?深度 embedding $d_\ell$ 是否必要?
  6. 理论与实现之间有缝。命题 2 假设风险可加且用二次近似,真实多层非凸耦合并不满足;定理 1 假设各头不共享参数,而 PLE/STAR/HoME/DSFNet 恰恰共享专家。理论给的是方向性设计原则,不是紧的界。
  7. 在线 A/B 的对照不明确:只说"against the online baseline",未说明是哪个编码器—头组合,+1.60% UVCTR 的归因不够精确。

工业落地价值

工业成色相当足:全量上线(非灰度)、数亿用户、30k QPS、数千万 POI、150 张 PPU GPU、平均 RT 40ms / P99 100ms,UVCTR 相对 +1.60% 且逐日一致。工程上最值得抄的是把 session 结构化历史离线物化到 KV 存储、请求时按 user ID 取前缀这一把重计算移出请求路径的做法,它让"序列长度 300 / 100 次行为"的模型能塞进 40ms 预算。加上实测 FLOPs 低于所有 baseline,IntHQ 在"效果更好且更省"上给出了少见的双赢证据,对同类 LBS / 出行多任务场景有直接可复制性。