1. 问题与动机
现代工业推荐排序对同一次请求里的 N 个候选,复用同一份用户/上下文特征逐一打分。主流实现(DLRM、DeepFM、DCNv2)在前向早期就把上下文特征广播开来,使 context-only 运算每请求重复 N 次。作者给出量化浪费:对 K 个上下文字段、M 个目标字段、嵌入维 D,仅 context-context 的 FM 交互每请求就白白消耗 (N−1)·C(K,2)·D FLOPs,且随上下文特征数 K 平方增长。随着系统引入更长用户历史、会话、页面特征,K 越来越大,这笔浪费随之扩大。对每天服务数十亿请求的生产系统(Taboola 的 CPU 推理基建),这直接换算成机器规模与成本。
2. 方法详解
核心是一条代数原理:任何作用在"按 rank 划分输入"上的线性/双线性运算,都存在精确块分解,可把 context-only 计算从 per-candidate(rank 3,[B,N,D])下放到 per-request(rank 2,[B,D]),且与原模型输出逐位等价。
- 线性层(FC、attention 投影):Wx = W_c·x_c + W_t·x_t,上下文项 W_c·x_c 算一次再广播,目标项按候选算。RankSplitDense 把首个 FC 层这样拆,节省 ΔFC=(N−1)·|x_c|·U;当上游 FM_ctx 输出(大小 C(K,2))喂进来时,节省进一步变成 (N−1)·C(K,2)·U,对 K 平方、跨阶段叠加。
- 双线性(FM 内积、attention 打分):x^T·W·y 拆成 cc/ct/tc/tt 四块,只有 context-context 块算一次;FM 拆成 FM_ctx(一次)与 FM_tgt(按候选)。
- DCNv2 cross 层:x_{l+1}=x_0⊙(W_l·x_l+b_l)+x_l,第 0 层的 W_cc·x_0^c、W_tc·x_0^c 是 rank 2 可预计算,节省比例 d_c²/(d_c+d_t)²。
- self-attention:Q/K/V 投影按线性拆;注意力矩阵 Q_c·K_c^T 块是 rank 2,softmax 的混合用 block-wise log-sum-exp 把预计算的上下文部分与按候选的目标部分以 O(1) 合并。
为何只在首层成立:cross network 与 attention 每层输出都会"混 rank"(如 cross 的上下文输出行含 W_ct·x_l^t,把目标耦合进本该是上下文的维度),经非线性后上下文与目标在每个神经元混合,后续层在纯目标依赖张量 [N,U] 上运算,秩分离被破坏。
3. 核心技术贡献
(1) 把"上下文特征冗余计算"形式化为 rank-partitioned 输入上的精确块分解,统一覆盖 FM/DCNv2/self-attention/FC 四类主流交互算子,且数学上恒等等价——不改预测、不需重训。
(2) 闭式分析证明节省随上下文特征数平方增长,并用受控实验验证。
(3) 提出 rDCN 架构变体:把 context×target 交互只加载到 target 流,context 流仅靠 context×context 演化(结构性删去 W_ct 块),从而跨深度保持秩纪律。target 流 T_{l+1}=T_0⊙(W_l^ct·c_l + W_l^t·T_l + b_l^t)+T_l 把一次性的上下文交叉项广播给按候选的目标项;rDCN 消去 baseline 中的 N·D_c² 项,使上下文驱动的扩展从平方降为线性(N·D_c·D_t),每层省 D_c·D_t 参数。
4. 实验结果分析
生产部署(DLRM 排序器,Table 4):仅 FM rank-aware 即 +25% RPS/pod、p50 −17%、p99 −26%;FM+FC 组合达 +87.5% RPS/pod、p50 −30%、p99 −33%,峰值 pod 数减少 47%,且预测逐位不变。FM 与 FC 收益相互叠加,说明 FC 拆解并非可有可无。
合成 DLRM 吞吐刻画:固定 M=4 变 K,vanilla RPS 从 K=8 的 1.00 退化到 K=24 的 0.34,rank-aware 从 1.13 退到 0.69,优势从 +13%(K=8) 扩大到 +105%(K=24),印证平方级 scaling;固定 K=8 变 M,两条曲线同步退化,rank-aware 优势稳定在 +7~+21%,说明节省以上下文为中心、对目标数不敏感。
精度(Table 3):DLRM(K=27,M=4) vanilla LogLoss 0.3875,FM 与 FM+FC rank-aware 均 0.3875(恒等等价,±0.0001 内),FM+FC 省 73% 总 FLOPs;DCN(K=26,M=16) DCNv2 0.3876,rDCN 0.3877(+0.05%)省 67% 总 FLOPs(交互层省 72%)。消融:rDCN 去掉并行 context 流后 LogLoss 退化约 0.001(到 0.3886),比恒等分解的扰动大一个量级,证明并行 context 流对捕捉高阶 ctx×ctx 动态必要。
5. 局限与未来方向
作者明确:(1) 恒等分解在 cross network 与 attention 只在首层成立,跨深度不叠加,须靠 rDCN 这类架构改动;(2) target-attention 模型(DIN、ETA、TWIN)用户表征按设计依赖目标,没有 context-only 路径,无法套用;TransAct 的 target-token 注入在第 0 层即破坏秩纪律;(3) 如何扩展到通过共享 self-attention 把目标早融到用户侧表征的架构,列为开放问题;(4) rDCN 牺牲严格恒等等价换取跨深度叠加节省,离线精度损失在训练噪声内;(5) rDCN 仅离线验证、尚未上线,因生产中 DLRM 的 FM+FC 变体已能以更低算力达到同等离线精度。
6. 工业实践意义
最直接的价值:这是"零精度损失、零重训、可直接替换"的推理优化,对推荐/搜索精排服务(一次请求打分成百上千候选)几乎是免费的吞吐红利。落地建议:(1) 先在 FM 与首个 FC 层套恒等分解,按 Taboola 经验单 pod 吞吐可近翻倍、峰值机器数砍掉约一半;(2) 上下文特征越多(长历史、会话、页面特征)收益越大,正契合特征不断膨胀的趋势;(3) 若用 DCNv2 且想跨深度获益,可评估 rDCN,但它非恒等等价、需离线验证精度;(4) 注意适用边界——DIN/TWIN 这类 target-attention 模型、以及把目标早融到用户侧的架构无法直接套用。部署上 Taboola 在 CPU(Intel Xeon Sapphire Rapids)+K8s 自动扩缩+TF Serving oneDNN 环境验证,说明对 CPU 推理同样有效。