UniCon:把展示上下文作为CTR模型的基本单元
原文:arXiv全文,版本v1,2026-09-03。以下方法及实验数据来自正文第3、4节和附录A、B;业务迁移建议为本报告分析。论文页中的KDD 2027模板信息不能作为已被会议接收的证据。
1. 问题与动机
传统推荐排序把历史行为看成序列,把当前候选、用户属性及请求信息看成非序列特征。即便用统一Transformer处理这些输入,模型仍可能丢失一个事实:用户是在某次展示所提供的候选集合中作出选择,而不是孤立地评价每件物品。连续点击两个对象,既可能意味着长期兴趣相同,也可能只是两次展示中的替代品不同。
UniCon把这个问题具体化为“同次展示的局部关系”和“不同展示之间的状态变化”。原文以咖啡店选择说明:用户在其他店更贵或更远时点击某家店,不代表其无条件偏好该店。如果日志只保留点击对象,就难以区分条件选择与稳定兴趣。货架、瀑布流以及搜索结果页尤其依赖这种上下文。
模型因此不只增加一个上下文向量,而是重新组织输入:历史展示列表和当前候选集合采用相同的字段结构,并显式保存展示边界。这里的同构是一种表示约定,当前候选并不等于最终曝光列表;作者用潜在目标上下文描述这种尚未观察到的展示状态。对社区搜索而言,这直接对应“用户为何点击这个帖子,而没有点击同屏的其他帖子”。
2. 方法详解
每个上下文单元包含物品token、若干上下文token和一个用户token。物品字段包括身份、顺序和静态属性;上下文包含意图、query、类别倾向、时间、位置和设备等信息;用户token聚合动态统计特征及少量静态属性。各组特征先拼接,再经线性映射进入统一维度。历史物品token含已记录的点击反馈,当前候选在对应位置使用可学习的占位向量,避免将未来点击标签作为输入。
一个UniConBlock先独立处理每个上下文单元内部的token,再把本次输入中所有单元的输出连接起来进行跨单元注意力。前者学习同屏竞争、互补和共享环境,后者使当前候选能够参考历史展示及兴趣变化。两层都采用预归一化、残差、自注意力和SwiGLU稠密专家混合。附录说明所有专家都参与加权求和,因此这里不是按top-k稀疏激活专家的架构;主干中的专家混合也不同于输出端的MMoE多任务预测头。
预测端包括点击、曝光和绝对位置三个任务,总损失为点击损失加上两个加权辅助损失。曝光任务监督整个候选集合;点击和位置任务仅监督实际曝光候选。点击头还接收位置嵌入,线上对可行位置计算位置条件下的CTR。曝光预测值不会直接传给点击头,点击损失也不会通过位置预测头反传。这些约束帮助控制任务间的信息路径,但不能消除既有曝光策略造成的选择偏差。
长历史的压缩发生在完整执行第一块之后。每层对当前目标单元的query向量取均值,对每个历史单元的key向量取均值,用缩放点积估计相关性,然后保留一部分历史单元。不能直接复用完整注意力矩阵,是因为所用变长注意力遵循FlashAttention式计算,并不显式存储该矩阵。训练采用Gumbel-TopK及直通估计,前向实际裁剪;推理采用硬TopK。整个目标单元始终保留,裁剪以历史上下文为单位。
主实验使用每层保留一半历史单元的Large配置。训练资源为16张A100、batch size 1600和AdamW,token维度512、4个注意力头;Small、Mid、Large分别堆叠3、6、12个块。数据为一整年美团搜索广告生产日志,紧随其后的两天分别验证与测试,用户和物品量级均达数亿。作者没有披露精确样本数、完整优化器超参数及训练步数,复现时不能把这些空缺当成已知配置。
3. 核心技术贡献
第一项贡献是把展示边界纳入模型结构。把环境字段直接加到物品表示上,仍不足以明确哪些物品处于同一次选择中。作者通过保留字段但移除边界的消融隔离这一因素,AUC由0.8697降到0.8687;这表明组织方式本身有贡献,而不仅是增加了输入字段。
第二项贡献是将局部和跨上下文交互交替执行。完全用参数匹配的平坦全局主干替换层次结构时,AUC降到0.8637;仅移除单元内交互,并用额外跨单元层保持深度和参数量时,AUC降到0.8673。后一组对照使“只是层数更多”的解释较难成立,但这些结论仍限定在该生产数据和模型配置中。
第三项贡献是用辅助任务修正当前候选与最终展示之间的差异。当前候选初始化的目标单元尚不包含真实展示结构,曝光和位置监督帮助其学习生产日志中的展示规律。去掉曝光损失导致的AUC损失为0.0032,去掉位置损失为0.0004,说明在这个场景下,学习哪些候选会共同展示比进一步拟合绝对位置提供了更大的附加收益。
第四项贡献是结构与执行方式配合。变长注意力通过连续token段和偏移量定义边界,单元内按上下文分段,单元间按整条请求分段;压缩也沿同一边界操作。这使统计建模和系统实现共享一个组织单位。实际部署还涉及特征收集、MMoE并行计算及图编译,不能把吞吐提升全部归因于某一个注意力机制。
4. 实验结果分析
下表取自正文表1。AUC、GAUC越高越好,LogLoss越低越好;GFLOPs为平均输入长度下的计算量,不是实际延迟。
| 模型 | AUC | GAUC | LogLoss | 参数/计算量 |
|---|
| Base | 0.8558 | 0.8076 | 0.2084 | 0.09B / 9.69G |
| OneTrans | 0.8647 | 0.8158 | 0.2021 | 0.21B / 195.61G |
| RankMixer+DSIN+CIM | 0.8661 | 0.8171 | 0.2013 | 0.40B / 171.46G |
| UniCon-Small | 0.8683 | 0.8184 | 0.2001 | 0.09B / 201.60G |
| UniCon-Mid | 0.8693 | 0.8190 | 0.1995 | 0.17B / 401.35G |
| UniCon-Large,压缩 | 0.8697 | 0.8194 | 0.1991 | 0.33B / 197.14G |
Large对Base的AUC提升为0.0139个绝对值单位,不能写成CTR提升1.39%。与更强的RankMixer+DSIN+CIM相比,AUC差距为0.0036。Small也超过该强基线,支持上下文设计具有独立价值;但Small的计算量显著高于Base,参数接近不代表部署开销接近。
正文表2中,去掉上下文组织、目标上下文统一、上下文层次建模后的AUC分别为0.8687、0.8690、0.8637;去掉曝光、位置和全部辅助损失后分别为0.8665、0.8693、0.8663。移除层次建模是这些实验里损失最大的一项。作者把不超过0.0003的AUC差异视为正常运行波动,因此位置任务0.0004的贡献应谨慎解读,不能与曝光任务0.0032的贡献同等强调。
压缩将Large的计算量从801.29降到197.14 GFLOPs,减少75.4%,AUC从0.8698变为0.8697,差异在作者给出的波动范围内。简单时间截断的AUC为0.8691,支持按目标相关性选择历史。保留率过低也有代价:0.4和0.3时AUC分别为0.8695和0.8692,后几层接近只剩一个历史单元,削弱了跨上下文信息。
候选分片体现了另一个不能忽略的权衡。生产上限为300个候选,超过后按哈希分片;160至300之间相对最佳AUC的差距在0.0004以内,但64和16个候选时AUC下降到0.8683和0.8670。过小分片会把原本有关联的候选拆开,使同屏关系建模失效。训练与服务使用相同分片规则,并随机排列片内候选,未把上一模型的分数或排名当作输入。
线上测试持续七天,实验流量占20%,CTR提升2.07%、RPM提升3.09%、总收入提升2.95%,双侧检验均达到p≤0.01。变长注意力使吞吐相对定长未压缩实现提升64.5%,再加入压缩后提升258.1%;后者对应吞吐约为原来的3.581倍。线上延迟比Base增加但仍满足SLA,文中没有给出绝对延迟或P99数值。
5. 局限与未来方向
作者在方法部分明确说明:曝光和位置标签来自现有生产策略,辅助任务学习的是日志中的展示分布,不是与策略无关的最优展示结构。因此这套训练不能被解释为已经完成反事实去偏。若产品调整召回、曝光位或展示策略,辅助监督所代表的规律也可能改变。
原文还用实验直接揭示两个限制:过强历史压缩会丢失跨上下文信息,过小候选分片会削弱竞争关系。部署虽然满足SLA,但延迟相对旧模型上升。结论没有宣称获得零成本提升,也没有专门的Limitations章节;上述约束是从正文与附录提取的作者已披露事实。
本报告另行观察到,证据集中在一个商业平台的搜索广告任务,未提供公开数据复现和社区UGC搜索实验。GAUC仅对同时存在正、负曝光标签的请求计算,不能代表所有无点击请求的质量。七天实验也不足以直接回答长期满意度、内容生态或用户兴趣收窄的问题。这些是迁移时待验证的问题,而不是作者报告的失败结果。
6. 工业实践意义
社区搜索最可先行借鉴的是日志组织:为同一次展示保存帖子集合、展示位置、请求query、环境及当时反馈,并确保所有特征只来自请求之前。当前候选应使用反馈占位,不应把最终曝光结果提前输入模型。若现有日志只存点击帖,先补齐同屏未点击内容及稳定展示边界,通常比直接扩大模型更接近论文要解决的问题。
可采用逐步实验:用现有CTR模型验证显式上下文分组,加入曝光辅助任务,再引入单元内和跨单元交互。评估应同时报告请求级CTR、nDCG、无点击率和不同活跃度用户的表现;广告收益不能替代UGC相关性。对于曝光政策频繁变化的业务,还应跨策略版本验证,观察模型是否仅模仿旧排序器的展示偏好。
系统预算必须计入前处理和完整服务链路。原文把特征提取集中到可导出的FeatureColumnCollector,第一层专家投影融合为矩阵乘法,经过SwiGLU后再用批量矩阵乘法完成第二层;不能因两次线性映射就忽略中间非线性。最终通过AOTInductor导出动态形状图,并由C++运行,线上路径移除Python。
对没有16张A100训练资源的团队,先复现组织方式和辅助监督比照搬0.33B Large更现实;这是本报告建议,论文没有验证小资源配置能取得相同收益。还需按真实请求长度和候选规模进行压力测试,单独记录P50、P95、P99、显存与特征处理时间。候选分片大小和历史压缩率应共同调节,并把相关性下降作为明确约束,不能只追求吞吐。