Transformer 的自注意力强在数据依赖——每个位置的"滤波器"由内容实时决定;SSM 强在效率——固定卷积核 $O(n\log n)$ 甚至 $O(n)$,但数据无关。Hyena(Poli et al., 2023)的提问很直接:能不能造一个既是长卷积(参数少、训得快)、又带数据依赖(表达力强)的算子?
结构:三层算子的组合
Hyena 算子作用在长度为 $n$ 的序列 $x$ 上,由两种原语交替堆三层:
$$ y = x * h_{\theta}\;\odot\; g(x)\;\;(\text{再重复两次,滤波器与门控逐层更新}), $$
其中 $*$ 是长卷积,$\odot$ 是逐元素乘(门控),$h_\theta$ 与 $g$ 都是隐式生成的:不存 $n$ 个值的核向量,而是训练一个小 MLP,输入位置坐标(归一化到 $[-1,1]$),输出该位置的核值:
$$ h_\theta(i) = \mathrm{MLP}_\theta\big(\tfrac{2i}{n}-1\big). $$
参数量从 $O(n)$ 降到 MLP 的大小($O(\log n)$ 量级),换序列长度不用重训核,外推长度时只需在更密的坐标网格上求值。这是从神经辐射场(NeRF)借来的思路:把信号表示成"坐标到值"的函数,而不是值的数组。
为什么需要门控 $g(x)$?纯长卷积是线性时不变算子,所有位置共享同一个核——表达能力上限就是固定滤波,做不了"按内容选择"。门控把输入的逐位置函数 $g(x)$ 乘进卷积输出,相当于给卷积引入逐位置、数据决定的幅度调制。注意力的优势(内容自适应)在低价形式下被部分找回;三层交替则是为了增加非线性的复合深度,单层等价于一个"内容调制的 FIR 滤波器"。
成本账:FFT 卷积与召回的陷阱
长卷积用 FFT 实现:
$$ x * h = \mathcal F^{-1}\big(\mathcal F(x)\odot\mathcal F(h)\big), $$
时间 $O(n\log n)$,且训练天然并行(不像递归 scan 需要专门设计)。代价藏在常数里:FFT 把序列当周期信号处理,直接卷是循环卷积,要得到因果线性卷积必须先 pad 到 $2n$;更重要的是,频域方法对"精确拷贝"类任务先天不友好——注意力可以在任意距离上精确搬运一个 token 的表示(召回误差只受 softmax 分辨率影响),而卷积核对远处位置的作用被压进一个权重值里,数值精度随距离稀释。Hyena 论文自己的合成任务评测(associative recall)里,它需要靠更深的层数才能逼近注意力的召回精度。
这正是后来各路线分化的地方:Mamba 用输入自适应的状态转移补内容选择,线性注意力用特征映射保 softmax 形式,Hyena 则押注"长卷积 + 门控"在真实语言分布上的性价比——其下游实测(The Pile 预训练 + 下游平均)在同等规模下确实追平了 Transformer,且序列越长优势越大($n > 8\text{k}$ 后吞吐差距拉开)。
小结
Hyena 的聪明之处在两点:用坐标条件 MLP 把卷积核变成隐式函数,参数量 $O(\log n)$ 且天然支持长度外推;用门控把数据依赖注入线性时不变卷积,三层交替复合出接近注意力的内容自适应。代价是精确召回任务上需要更深才能追平注意力——频域方法对"远距离逐位拷贝"不友好。三条无注意力路线到这里齐了:线性注意力保 softmax 换线性复杂度,SSM 保状态空间换选择性,长卷积保算子效率换门控表达。它们没有分出胜负,反而共同逼出了一个混合共识:全注意力太贵,全替代太亏,层间按任务混合配比才是实用答案。