趋近智
尽管连接时序分类 (CTC) 提供了一种巧妙的方式来处理变长音频输入,且在训练时无需显式对齐 (alignment),但它作出了一个强条件独立性假设:在给定输入音频的情况下,每个时间步的预测独立于其他预测。这会限制它表示输出文本序列内部固有依赖的能力。
序列到序列 (Seq2Seq) 模型,特别是那些增强了注意力机制 (attention mechanism)的模型,提供了一种直接解决这一限制的替代方法。这些模型最初在机器翻译中得到推广,并被证实对ASR(自动语音识别)非常有效,它们直接将声学特征输入序列 映射到字符或音素输出序列 。
本质上,一个用于ASR的基于注意力机制 (attention mechanism)的Seq2Seq模型由两个主要部分构成:一个编码器和一个解码器,它们通过注意力机制连接。
ASR中基于注意力机制的编码器-解码器模型的基本架构。编码器处理输入音频特征,注意力机制根据编码器输出和当前解码器状态计算上下文 (context)向量 (vector),解码器逐个生成输出序列中的词元 (token)。
编码器: 该部分处理整个声学特征输入序列 ()。通常,它通过使用循环神经网络 (neural network) (RNN)(如LSTM或GRU,常为双向以捕捉过去和未来帧的上下文)或甚至堆叠卷积层后接RNN来实现。编码器的作用是将输入特征转换为一系列更高层的表示,通常称为隐藏状态或注释 ()。每个 理想情况下总结了输入音频中时间步 周围的相关信息。
解码器: 该部分逐个生成输出文本序列 ()。它通常是一个自回归 (autoregressive)循环神经网络(LSTM/GRU)。在每个输出步 ,解码器接收前一个生成的词元 及其自身的前一个隐藏状态 作为输入。非常重要地,它还接收一个上下文向量 ,这个向量由注意力机制提供。基于这些输入,它更新其隐藏状态 并预测词汇表 (vocabulary)(例如,字符、子词 (subword))中下一个输出词元 的概率分布。
早期Seq2Seq模型的定长上下文 (context)向量 (vector)限制(编码器将整个输入总结成一个单一向量)对于语音等长序列来说是一个问题。注意力机制通过允许解码器在生成每个输出词元 (token) 时动态地关注整个编码输入序列 () 的不同部分来解决这一问题。
在每个解码器步 ,注意力机制计算一个上下文向量 ,作为编码器隐藏状态 的加权和:
权重 (weight) 被称为注意力权重。它们决定了解码器在预测输出词元 时,应如何“关注”编码器状态 。这些权重是根据当前解码器状态 (作为“查询”)与每个编码器隐藏状态 (作为“键”)之间的相似度或对齐 (alignment)度计算的。
计算对齐分数: 一个对齐模型 评估时间 附近的输入与位置 的输出匹配的程度。一个常见选择是加性注意力(Bahdanau风格):
在这里,, , 和 是注意力机制的可学习权重矩阵和偏置 (bias)。另一个普遍采用的选择是点积注意力(Luong风格),如果维度匹配,其计算复杂度更低:
或者如果维度允许直接点积,也可以简单地表示为 。
将分数归一化 (normalization)为权重: 分数 使用softmax函数在所有输入时间步上进行归一化,以获得注意力权重 。这些权重的和为1。
计算上下文向量: 上下文向量 按照前面所示的加权和计算。该向量提供了与生成输出词元 特别相关的输入音频摘要。
这种动态加权使得模型在预测字符 'c' 时,可以关注对应音素 /k/ 的音频片段;接着将关注点转移到 'a' 对应的 /\u00e6/ 片段;最后在转录单词 "cat" 时,转移到 't' 对应的 /t/ 片段。
训练: 基于注意力机制 (attention mechanism)的模型通常采用最大似然估计进行端到端训练。目标是在给定输入音频的情况下,最大化正确输出序列的概率。损失函数 (loss function)通常是每个解码器步的交叉熵损失之和或平均值:
其中 是真实序列。在训练期间,通常使用一种称为教师强制的技术。它不是将解码器自身在前一步的预测 () 作为当前步的输入,而是提供真实词元 (token) ()。这稳定了训练并加速了收敛,尽管它可能导致训练和推理条件之间出现不匹配(称为曝光偏差)。
推理(解码): 在测试时生成输出序列需要逐个生成词元。由于真实值不可用,解码器使用自己先前预测的词元作为下一步的输入。找到最有可能的序列 需要在可能的输出序列空间中进行搜索。
优点:
缺点:
基于注意力机制的编码器-解码器模型代表了声学建模中的重要一步,它从具有强独立性假设的逐帧分类转向生成基于整个输入历史和音频输入相关部分的输出序列。尽管后续架构,如RNN转导器(将在下一部分讨论)和Transformer,提供了改进,特别是对于流式处理和并行化,但理解注意力机制是现代ASR的基本。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•