Speech Encoder / Memory Equipped Self-Attention

SAN-M 模型架构

自注意力能按当前语音动态读取全局上下文,却不一定会稳定学习局部声学连续性。SAN-M 在 Value 上并行加入 DFSMN 时序滤波,让一层同时保留内容相关的全局关系与数据集共享的局部模式。

Attention + Memory两条分支读取同一组 Value:一条动态注意整段序列,一条用可学习 FIR 滤波器聚合邻近帧,最后逐元素相加。
问题一句定义SAN-M BlockDFSMN Memory完整 ASR架构比较论文证据边界资料

一、自注意力已经看见全局,为什么还要 Memory

这篇文章面向正在阅读 FunASR、Paraformer 或流式 ASR 配置的工程师,回答一个具体问题:SAN-M 到底替换了 Transformer 的哪一部分,声音又怎样穿过它。

标准 Transformer 是合理的基线。自注意力为每段输入动态产生权重,能直接连接距离很远的帧,而且训练阶段可以并行。但语音有很强的局部连续性:音素不会在相邻 10 ms 帧之间任意跳变。SAN-M 论文观察到,声学 Encoder 的注意力虽然拥有全局感受野,实际学习到的权重仍常集中在对角线附近。

DFSMN 走的是另一条合理路线。它用跨时间的可学习有限冲激响应滤波器聚合邻近帧,不使用循环反馈,计算随序列长度线性增长;代价是滤波系数由整个训练集共享,不会针对每一句话重新计算。SAN-M 的出发点不是宣布其中一方过时,而是把两种互补的权重放入同一子层。

二、一句定义:在 Attention 的 Value 上增加记忆支路

SAN-M(Memory Equipped Self-Attention)是一种将多头自注意力输出与作用在 Value 投影上的 DFSMN memory 输出相加的时序建模模块。

Y = MultiHeadAttention(Q, K, V) + M(V)

这里的 M 不是一个额外 Decoder,也不是推理时不断扩张的 KV cache。它是一组训练得到的时间滤波参数。输入长度改变时,参数量不会随之改变。

动态Attention 权重由当前输入的 Q、K 计算。
固定Memory 滤波权重训练后对所有输入共享。
并行两条支路可以并行计算,再做逐元素融合。

三、单个 SAN-M Block 的数据流

SAN-M 编码块的数据流 输入归一化后投影成查询、键和值。查询和键进入多头注意力,值同时进入注意力与 DFSMN Memory,两路输出相加后经过残差连接和前馈网络。 输入 x[T, d] LayerNormPre-Norm Q / K / V线性投影共享输入表示 Multi-Head Attentionsoftmax(QKᵀ / √d) · V内容相关的全局关系 DFSMN Memory(V)过去帧 + 当前帧 + 未来帧共享的局部时间滤波 + 残差连接
概念图只突出 SAN-M 子层的关键融合。完整实现还包括 Dropout、残差、LayerNorm 和逐位置 FFN;具体前归一化顺序以 checkpoint 配置为准。

在常见 FunASR Encoder 中,一个块可概括为 LayerNorm → SAN-M → Residual → LayerNorm → FFN → Residual。因此 SAN-M 改动的是 Transformer Block 的时序混合部分,而不是删除 FFN 或整套 Encoder。

四、DFSMN Memory 怎样读取时间窗口

对时间位置 t,Memory 将当前 Value 与若干过去、未来位置相加。忽略层间投影后,可以写成:

M(Vt) = Vt + Σ ai ⊙ Vt-s₁i + Σ cj ⊙ Vt+s₂j
  • N₁ / N₂ 控制回看和前瞻的阶数;
  • s₁ / s₂ 是两侧的 stride,可以隔帧取样以扩大感受野;
  • aᵢ / cⱼ 是逐通道可学习系数,因此实现上接近 depthwise temporal convolution;
  • 多层堆叠后,局部感受野逐层扩大,而不需要 RNN 的串行反馈。
示例:look-back = 2,look-ahead = 1,stride = 1

位置 t 的 Memory 读取:V[t-2], V[t-1], V[t], V[t+1]

M(V[t]) = V[t]
        + a₂ ⊙ V[t-2] + a₁ ⊙ V[t-1]
        + c₁ ⊙ V[t+1]

离线识别可以使用未来帧;严格流式识别必须去掉或限制 look-ahead。

Attention 的权重会随句子变化,因此能跳到与当前声音相关的远处位置;Memory 的系数对不同句子相同,更像模型从整个数据集学到的平均局部声学模板。两者都是“加权求和”,区别在权重从哪里来。

五、SAN-M 在完整 ASR 系统中的位置

原始论文采用 Transformer 风格的 Encoder–Decoder 框架,并允许基础时序子层分别选择 SAN、DFSMN 或 SAN-M。论文在 AISHELL-1 上表现最好的组合是 SAN-M Encoder 加 DFSMN Decoder。今天更常见的 FunASR/Paraformer 用法,则是把多层 SAN-M 当作声学 Encoder。

SAN-M 在 Paraformer 类系统中的位置音频特征经过降采样和多层 SAN-M Encoder,随后进入 CIF 或 CTC 对齐模块,再由自回归或非自回归解码器输出文本。 Fbank + LFR帧级输入 SAN-M Encoder × NAttention + DFSMN Memory输出上下文化声学表示 对齐 / PredictorCIF、CTC 或 Transducer Decoder / HeadAR、NAR 或 CTC文本
概念图:SAN-M 决定声学编码方式,并不决定后端必须采用哪一种对齐目标或解码范式。

理解 “SAN-M Paraformer-v2”:SAN-M 是 Encoder,CTC posterior 负责把帧级表示压成 token embedding,双向非自回归 Decoder 再并行预测整句。三者是不同层次的设计选择。

六、与 Transformer 和 Conformer 同轴比较

比较轴TransformerSAN-MConformer
全局建模Multi-Head Self-AttentionMulti-Head Self-AttentionMulti-Head Self-Attention
局部模块没有显式时序卷积DFSMN FIR MemoryGLU + Depthwise Conv
融合顺序只有 AttentionAttention 与 Memory 并行相加Attention 后串行接 Conv
局部权重由当前输入动态产生训练后共享的逐通道滤波系数共享卷积核,含门控和非线性
典型 BlockMHSA → FFNSAN-M → FFN½FFN → MHSA → Conv → ½FFN
流式约束限制 Attention 右侧上下文同时限制 Attention 与 Memory 前瞻限制 Attention 并改用因果卷积

这张表描述结构,不直接推出准确率或速度赢家。真实结果还取决于降采样、层数、隐藏维度、训练数据、解码头、量化和推理引擎。

七、原始论文实际证明了什么

在 170 小时 AISHELL-1 实验中,作者报告 43M 参数的 SAN-M Encoder + DFSMN Decoder 在开发集/测试集得到 5.74%/6.46% CER;46M 参数的 SAN Encoder + SAN Decoder 基线为 6.58%/7.33%。测试集相对下降约 11.8%,且两者都没有外部语言模型。

在作者的 20,000 小时中文工业数据上,63M 的较深较窄 SAN-M 系统相对 59M SAN 基线,将 common/far-field CER 从 9.8%/15.0% 降到 8.3%/12.5%。这是作者报告的专有数据结果,外部读者无法仅凭论文完整复现数据分布。

证据边界:这些数字说明 SAN-M 在论文给定的中文 ASR 设置中优于其同代基线;它们不能证明 SAN-M 在任意语言、任意训练规模或现代 Conformer checkpoint 上必然更好。

八、工程边界:名称不能替代上下文预算

全局注意力仍可能是二次复杂度

加入 Memory 不会自动消除全局 self-attention 的 O(T²) 时间和显存成本。长音频仍需要降采样、分块、局部 Attention 或专门的缓存策略。

Memory 的前瞻决定最低算法延迟

离线模型可以读取未来帧;流式系统必须明确 look-ahead、chunk size、缓存长度和 partial 提交策略。只看到配置里的 SANMEncoder 不能推断端到端延迟。

Encoder 好坏不等于完整识别系统好坏

删除、插入、热词、时间戳和静音误识别还受到 CTC/CIF、Decoder、VAD、语言模型与后处理影响。比较时应固定解码方式,再测 WER/CER、RTF、首字延迟、显存和噪声集。

SAN-M 的 Memory 是不是等同于卷积?

计算形式很接近逐通道一维卷积,但 DFSMN 还强调时间阶数、stride、跨层残差和无循环的长上下文堆叠。把它视为“FIR 风格的 depthwise temporal filter”有助于理解,但不要据此假定所有实现与某个 Conv1D API 完全等价。

评论加载中...