语言模型重打分

举报
可爱又积极 发表于 2022/03/16 17:24:01 2022/03/16
【摘要】 图1语音识别中的语言模型重打分从公式 (1) 中可以看出,语言模型 在语音识别任务中是作为一个先验项的,在贝叶斯公式中也确然如此。声学模型 是为了找出能产生声学信号 的最有可能的 ,但是在隐马尔科夫模型中我们可知实际上声学模型找到的是每一帧语音对应的最大概率的文本,因此只用声学模型得到文本序列是不考虑语义信息的,由于同音字词的存在识别结果往往很差;而语言模型就是在正常语料上训练,在声...

图1image.png

语音识别中的语言模型重打分从公式 (1) 中可以看出,语言模型 在语音识别任务中是作为一个先验项的,在贝叶斯公式中也确然如此。声学模型 是为了找出能产生声学信号 的最有可能的 ,但是在隐马尔科夫模型中我们可知实际上声学模型找到的是每一帧语音对应的最大概率的文本,因此只用声学模型得到文本序列是不考虑语义信息的,由于同音字词的存在识别结果往往很差;而语言模型就是在正常语料上训练,在声学模型得出的结果中选择出最符合语义和语法习惯的结果,因此语言模型虽然只是一个先验项,但在实际应用中是不可或缺的。在声学隐马尔科夫模型上得到我们想要的结果的过程称为语音识别的解码 (decoding),使用较多的方法有动态网络 (dynamic network) 解码,有限加权状态转换器 (weighted finite state transducer) 解码等。在利用声学模型和发音词典把音素等信息解码为单词信息后,我们会在进行剪枝等一系列操作后把结果存储在一张图之中,称为词图 (lattice),如下图2所示,词图 lattice实例:
image.png

对词图直接解码往往可以产生多条候选结果,我们可以利用性能更好的语言模型,重新评估所有的候选序列,得到最优的识别结果。在之前搜索与解码一节中,讲述了在解码初期通常会加入一些简单的 n 元语法模型作为先验,这是由于 n 元语法模型相对简单,历史序列较短且自带概率信息,而神经语言模型每次概率值都需要计算,其输出层的 Softmax 函数计算复杂度较高,且更适合长文本序列的建模,因此神经语言模型并不适用于早期解码过程,一般都是用于对初次解码结果进行重打分,有 N-best list 重打分和词图重打分 (lattice rescoring) 两种方法。N-best list 重打分N-best list 重打分较容易理解,就是直接在词图上进行解码得到 N 条最好的结果,称为 N-best list。然后引入一个神经语言模型对所有结果重新打分然后排序,选出最好的结果。由于神经网络语言模型对自然语言的建模能力比 n 元语法模型更强,因此,神经网络语言模型重打分对语音识别结果的准确率有较大的提升,如下图3所示N-best list rescoring:
image.png

然而 N-best list 重打分的性能很大程度上依赖于 N 的取值,当 N 取值较大时,会出现大量的冗余信息导致重复计算,而当 N 取值较小时,实际上的搜索空间很小,很难保证所取 N-best list 包含较好的结果,导致很多有用信息丢失,扩展性不强。而且这种方法需要将整个句子输入后才能得到最终识别结果,在实时语音应用场景中会出现一定延迟。词图重打分另一种方法是直接在词图上重打分,词图重打分是对于初始解码生成的词图进行遍历扩展,利用语言模型将词图中所有的边上的分数重新计算,存储为新的词图,取词图中的最优路径得到解码结果。这种方法采用拓扑排序的方式遍历词图的每一条边,并且在遍历时记录下从开始节点到当前节点路径上的词序列,作为当前词的历史信息,因此可以充分利用此图中所有信息。由于词图是一种图的表示形式,必然会出现某一个节点是多个节点的后继,可以称为汇聚节点,如图3 中两条边 the 汇聚到同一节点。对于汇聚节点,由于有存在多条路径于它和开始节点之间,使得当前词存在多个历史。在遍历到汇聚节点时,我们需要构造出该节点的拷贝节点,将其扩展成一系列节点,并将其连接的边全部复制过来,如下图 4所示,边 the 之后的节点会存在两条不同的序列。因此这种方法存在搜索空间巨大的问题,尤其是神经语言模型是基于长历史序列建模,为了在计算后面单词时考虑所有可能的路径,需要对词图进行扩展,而这种扩展会呈指数级增长,计算资源和内存消耗大,解码速度慢。为了解决这一问题,减小运算复杂度,可以使用一些历史聚类或剪枝等策略。所谓历史聚类 (history clustering),就是对于两个不同的历史向量,用一定的方法测量到两者的相似度,当两者相似度达到一定程度时,可以近似认为是同一路径。可以采用 n 元语法模型或其他方法进行聚类,把合并相似的路径,降低计算量。这种方法一定程度上借鉴了马尔科夫假设,即认为长距离的词其对当前词的影响会逐步减少,因此对最近的一段序列进行聚类,如下图4所示
image.png
可以看出,在图的原始词图进行回溯时,相似的路径 see the 和 sees the 可以视为相同的路径。历史聚类由于能在汇聚节点处将相似的历史通过聚类方法合并,因此对汇聚节点进行扩展时,可有效减少扩展次数,从而减少神经网络语言模型的计算量,这种在词图重打分的方法产生出的 1-best 路径可以取得和 n-best list 重打分相当的效果,而且可以在每一步都产生出当前最优的序列,因此也可以广泛用于实时语音识别等任务中。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。