RescoreBERT:使用BERT模型改进ASR重打分
知识蒸馏和判别式训练使得基于BERT的模型能够有效地对自动语音识别假设进行重打分。
语音识别流程
当用户与语音助手交互时,自动语音识别(ASR)模型将语音转换为文本。核心ASR模型通常在有限数据上训练,因此在处理罕见词和短语时可能表现不佳。因此,ASR模型的假设通常会传递给语言模型——一种编码词序列概率的模型,该模型在更大规模的文本语料上训练。语言模型重新对假设进行排序,旨在提高ASR准确率。
在自然语言处理中,最广泛使用的语言模型之一是BERT(来自Transformer的双向编码器表示)。要使用BERT作为重打分模型,通常需要掩码每个输入标记,并根据其余输入计算其伪对数似然(PLL),然后对这些分数求和产生总分。然而,这种计算非常昂贵,使得其在实时ASR中不实用。大多数ASR模型在重打分时使用更高效的长短时记忆(LSTM)语言模型。
RescoreBERT模型
在实验中,RescoreBERT相对于传统的基于LSTM的重打分模型,将ASR模型的错误率降低了高达13%。同时,得益于知识蒸馏和判别式训练的结合,它保持了足够的效率以适应商业部署。
重打分价值示例
为了理解重打分的价值,假设ASR模型输出以下假设,按可能性从高到低排列: (a) “is fishing the opposite of fusion” (b) “is fission the opposite of fusion” (c) “is fission the opposite of fashion”
如果没有第二遍重打分,ASR将给出错误输出:“is fishing the opposite of fusion”。如果第二遍语言模型表现良好,它应该优先选择假设"is fission the opposite of fusion"并正确重新排序假设。
模型架构
RescoreBERT模型中,每个ASR假设由CLS(分类)标记分隔,然后由BERT编码。CLS标记本身的编码是整个句子的表示,该表示传递给前馈神经网络。该网络计算句子级别的第二遍分数,然后与第一遍分数进行插值以进行重新排序。
知识蒸馏
为了减少计算PLL分数的计算开销,我们采用了先前的研究,将BERT模型的输出通过一个神经网络,该网络经过训练以模仿更大"教师"模型分配的PLL分数。我们将此方法命名为MLM(掩码语言模型)蒸馏,因为蒸馏后的模型经过训练以匹配教师模型对掩码输入的预测。
蒸馏模型输出的分数与原始分数进行插值以产生最终分数。通过将PLL分数从大型BERT模型蒸馏到更小的BERT模型,这种方法降低了延迟。
判别式训练
由于第一遍和第二遍分数是线性插值的,仅让重打分模型为正确假设分配更好(在这种情况下更低)的分数是不够的;正确假设的插值分数还必须在所有假设中最低。
因此,在训练第二遍重打分模型时考虑第一遍分数是有益的。然而,MLM蒸馏旨在蒸馏PLL分数,因此不考虑第一遍分数。为了考虑第一遍分数,我们在MLM蒸馏后应用判别式训练。
具体来说,我们训练RescoreBERT的目标是,如果使用第一遍和第二遍分数之间的线性插值分数来重新排序假设,它将最小化ASR错误。为了捕捉这一目标,先前的研究使用了损失函数MWER(最小词错误率),最小化从ASR假设分数预测的词错误期望数。
我们引入了一个新的损失函数MWED(匹配词错误分布)。该损失函数将假设分数的分布与单个假设的词错误分布相匹配。我们证明MWER是MWED的有力替代方案,在英语中提高了性能,尽管在日语中性能略有下降。
最后,为了证明判别式训练的优势,我们展示了虽然使用MLM蒸馏训练的BERT相对于LSTM可以将WER提高3%-6%,但在相同测试集上,使用判别式目标训练的RescoreBERT可以将其提高7%-13%。