type
Post
status
Published
date
Mar 30, 2026
slug
summary
tags
推荐算法
category
知行合一
icon
password
这里写文章的前言:
一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
Hyformer

该新架构引入了源自 序列建模 中原始“候选项” 的全局token,并通过基于 MLP-Mixer 的特征交互来增强长序列的查询能力,从而重新审视了长序列建模与特征交互的作用。它将长序列建模任务定义为一个交替优化过程,通过查询解码与查询增强模块的交替进行实现。
用类似Transformer的架构统一搜推模型的交互范式,结构上确实非常的简单优雅,但是对大规模搜推系统来说,这种结构对交互关系的建模不一定足够高效。我们已经验证了搜推领域和NLP大模型方向类似,也存在合适的结构可以支撑Scaling Law,但是这个结构不一定是Transformer,考虑到搜推本身的业务特点和场景规模,以及大规模请求下严格的算力限制,有可能存在比transformer更高效更合适的结构。因此我们针对上述问题,提出了HyFormer模型。我们在离线和线上都和Transformer这类统一架构做过严格对比,实验来看Hyformer无论是效果还是性能都有更显著的优势。
HyFormer 将推荐建模任务构建为一个交替优化的过程,核心包含以下几个关键模块:
- 查询生成(Query Generation): 模型首先将异构的非序列(Non-sequential)特征与全局序列的池化汇总信息拼接,通过多层感知机(MLP)转换为多个全局语义查询 Token(Global Tokens)。
- 查询解码(Query Decoding): 使用上述生成的全局查询 Token,通过多查询交叉注意力机制(multi-query cross-attention),对长行为序列的层级键值(K/V)表示进行解码。这一步使得全局的上下文信息能够直接引导和塑造序列的特征表示。
- 查询增强(Query Boosting): 解码后,查询 Token 已经融合了序列信息。此时,模型采用类似 MLP-Mixer 的轻量级 Token 混合(Token-mixing)操作,在解码后的查询 Token 与静态非序列 Token 之间强化交互。这有效补足了序列信息与异构特征之间的深度特征交叉
Query Generation

这里的 Tokenization 与 RankMixer 中的分词策略落类似:
输入token通过语义分组或自动拆分进行组织。
- 语义分组根据令牌的内在含义(例如用户、上下文或行为语义)对令牌进行划分
- 而自动拆分则将所有特征扁平化为单一嵌入,并在不进行明确语义区分的情况下应用统一拆分。
在实际应用中,鉴于本研究场景下输入特征具有明确的语义角色,HyFormer 采用语义分组以保留结构化的归纳偏置并提升可解释性。
处理过程
随后,模型将所有的非序列向量和序列摘要向量拼接在一起,构成全局信息。该过程的公式表示为:
拼接好的 Global Info 会通过 个不同的轻量级前馈神经网络(FFN)进行投影变换,从而生成 个独立的全局语义查询 Token。
这一步的核心公式为:
这里的 是超参数(代表全局 Query Token 的数量),这意味着模型构建了 个携带全局视角的探针(每个探针是一个 维向量),它们将被送入后续的 Query Decoding 模块,通过交叉注意力机制在长序列的键值对(K/V)中进行定向信息提取。
通过上述公式生成的矩阵 是第一层(浅层)的输入。当网络进入更深的 HyFormer 块时,模型不会再重新通过 MLP 生成查询,而是直接将上一层经过交叉注意力(Cross-Attention)和 Token 混合(MLP-Mixer)处理后输出的特征矩阵(形状依然是 ),作为当前层的查询输入。这种设计使得这些全局 Token 能够在多层网络中不断演进,以极为高效的方式吸收越来越复杂的交叉语义。
Query Decoding
在 HyFormer 架构中,Query Decoding(查询解码) 模块的作用是将非序列特征转化为的全局语义查询(即前一步生成的 Global Tokens),用于在长用户的行为序列中提取目标感知(target-aware)的信息。这一步使得全局的上下文信号能够直接介入并塑造序列的特征表示。
查询解码的过程主要分为两个核心步骤:序列表示编码(生成 K/V) 和 交叉注意力解码(计算 Q 与 K/V 的交互)。

1. 序列表示编码 (Sequence Representation Encoding)
在进行解码之前,模型首先需要对长行为序列进行编码,生成逐层的键-值对(Key-Value, K/V)表示。为了在计算能力和效率之间取得平衡,HyFormer 支持三种不同容量与效率的序列编码策略:
- Full Transformer Encoding: 使用完整的self-attention机制来捕捉序列内部细粒度的交互和长程依赖,拥有最高的建模能力。
- LONGER-style Efficient Encoding: 为了应对超长序列,用一个较短的序列作为查询去对完整的长序列进行cross attention计算,从而替代昂贵的全自注意力,将计算复杂度从 降至 。(在序列前面拼接多个 (通常远小于序列长度) 的additional token作为query)
- Decoder-style Lightweight Encoding: 针对延迟极其敏感的场景,直接使用无注意力机制的前馈操作(SwiGLU)来转换序列表示,用上下文容量换取极低的计算成本。(直接对序列所有元素映射 (例如使用SwiGLU) 成最终的K/V.)
无论采用哪种策略,生成的序列表示 都会通过线性投影,得到当前层 特定的键()和值()状态。
2. 基于交叉注意力的解码 (Query Decoding via Cross-Attention)
准备好序列的 K/V 表示后,Query Decoding 模块正式利用多查询交叉注意力机制(multi-query cross attention)进行解码。
对于第 层网络,模型将输入的全局查询 Token 集合设为 (在第一层时,它来自 Query Generation 模块;在更深层时,它直接复用上一层的输出 )。解码过程的具体公式如下:
在这里, 代表标准的多头交叉注意力操作。通过这一操作,全局的非序列特征(作为查询 )能够直接“审视”(attend to)长行为序列(作为 和 )。
3. 解码的意义与作用
- 注入全局上下文: 这一解码步骤允许静态的、非序列的异构特征直接参与到长行为序列的特征提取中,将全局的上下文信号注入到感知序列的查询表示中。
- 承上启下: 解码后输出的 已经融合了序列信息,它将作为语义接口,被送入下一个核心模块 —— Query Boosting(查询增强),以便进一步与非序列 Token 进行跨查询、跨序列的深度混合与交互。
在得到包含target item在内丰富信息的query表征和序列所有元素的key/value表征后,我们会在HyFormer的每一层通过Cross-Attention的方式进行query decoding. 该步骤能够进一步将上下文信号注入到具备序列感知能力的query表征中;随后,解码得到的query (对应为每条序列分配的Token) 会供后续的交互模块与增强模块使用。
Query Boosting
在 HyFormer 架构中,Query Decoding(查询解码) 虽然使得全局查询 Token 获得了长行为序列的上下文信息,但这些查询 Token 尚未与静态的、异构的非序列特征进行深度的直接交互。这就引出了架构的下一个核心模块——Query Boosting(查询增强)。

Query Boosting 的核心目的是通过一种高效的 Token 混合(Token-mixing)机制,强化不同查询之间(cross-query)、不同序列之间(cross-sequence)以及查询与非序列特征之间的异构交互。
以下是结合数据形状和底层运算机制的详细执行步骤:
1. 构建统一查询表示 (Unified Query Representation)
首先,模型将刚才经过 Query Decoding 模块输出的、融合了序列信息的查询 Token(记为 )与原始的 个非序列特征 Token()拼接在一起。
形状解析: 这里的 ,表示参与增强阶段的 Token 总数量, 为统一的嵌入维度。此时的矩阵 汇集了动态序列语义和静态全局特征。
2. 子空间划分与跨 Token 混合 (Subspace Partitioning & Token Mixing)
为了在不引入过高计算复杂度(如全自注意力机制带来的 复杂度)的前提下实现 个 Token 之间的全局特征交叉,HyFormer 借鉴了 MLP-Mixer 和 RankMixer 的设计,采用了轻量级的通道混合操作。
- 子空间划分(Partitioning): 将每个 Token 的 维向量均匀切分为 个通道子空间(channel subspaces):
其中,每个子空间的维度恰好为 。
- 跨 Token 拼接(Mixing): 对于每一个子空间索引 ,模型横向跨越所有 个 Token,将它们对应的第 个子空间提取出来并拼接在一起,重组为一个全新的 维向量 :
- 通过这种巧妙的转置与拼接,所有的 Token 混合形成了一个新的特征矩阵 。这一步强制全局查询与异构非序列特征进行信息交换。

这张图来自RankMixer,将图中的 H 替换为 T 即可。
3. 逐 Token 前馈细化 (Per-Token FFN Refinement)
得到混合后的矩阵 后,模型会使用一个逐 Token 的前馈神经网络(PerToken-FFN)对混合后的查询进行非线性特征提炼。
该网络对每个 Token 独立应用相同的前馈变换。这种设计在保持整体呈线性计算复杂度的同时,实现了子空间层面特定的特征细化。
4. 残差连接 (Residual Connection)
最后,为了稳定深度网络的优化过程并防止原始解码出的语义信息在混合过程中丢失,模块采用了一个标准的残差连接,将混合前的统一输入与混合提炼后的结果相加:
总结与架构意义
经过 Query Boosting 处理后, 中的查询 Token 不仅深度吸收了长序列的动态偏好,还充分完成了与上下文、用户画像等非序列特征的静态语义交叉。这些经过“增强”的 Token 将作为语义更加丰富的接口,被直接送入下一层(更深层)的 HyFormer 块中,作为新的 继续去“质询”和解码长序列。这种交替进行的解码与增强,使得模型能够提取出表达能力极强的多阶联合特征。
Reference
- Author:YelloooBlue
- URL:https://tangly1024.com/article/333e32f0-1b7f-800f-aee2-ca262b59b6f7
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!


