今天我们来看看language model(简称LM)在speech recognition中的应用。
首先来看上图,LM主要可以预测token sequence 的几率,虽然我们的LAS中其实只需要P(Y|X)的数值即可,但在实际操作中我们还是会加上P(Y)的数值,我们知道P(Y|X)需要的都是成对的数据,但是P(Y)非常容易去收集。
我们可以看看,Google的语音训练模型一共使用了12500个小时的声音讯号,而这些基本就有一亿个词汇,相当于100套哈利波特的字数!这也说明数据量会非常的大。而如果知道BERT的话,我们可以知道BERT就可以看作一个非常大的LM,它里面会有30亿个词的样子。
在接下来我们介绍一种N-gram的方法,比如我们收集到了一句话“wreck a nice beach”,要计算它的P(y1,y2,……,yn),如果我们选择用N-gram的方法,那么我们可以选择2-gram,就可以把P(“wreck a nice beach”)拆成P(wreck|START)P(a|wreck)P(nice|a)P(beach|nice),就比较便于我们的计算了,但是N-gram也有它的问题。
如果我们的文本数据库中没有出现一些用法的话我们的模型就会将这些搭配产生的几率设置为0,但这很明显是不对的,因此我们使用一种叫做language model smoothing的东西,来给没有出现过的词汇设置一个很小很小的几率即可。
我们再来介绍Continuous LM,这就是预测模型了,比如我们通过收集数据发现,A,C喜欢第一部凉宫春日的忧郁的同时也很喜欢第二部电磁炮,那么我们看到B很喜欢凉宫春日的忧郁,那么我们就可以给他推荐电磁炮,很有可能这也是他很喜欢的番。
我们由上图可以看出我们设置h1,h2……和v1,v2……然后可以将每一种搭配用n以及下边I,j来表示,比如n12=v1∙h2,然后呢,我们只需要分析loss函数,就是上图中L的那个式子。
如果我们发现两列的h向量非常的相似,那么我们就可以使用上文提到的language model smoothing来根据一列的来预测另一列的。
上图就是具体的模式的。
下面我们再来介绍NN -based LM,它就可以来预测下一个词汇是什么通过自己的数据库。
上图也说明了该过程,每一个单词都有一个1-of-N encoding,然后通过Neural Network,就可以得到P(next word is “****”)的几率了。
其实上述操作在03年就有科学家已经尝试过了,但是一直没有被很重视。
上面都是一些科学家的研究成果,人们最后发现其实LM并不一定需要极其复杂的模型也可以有很好的效果,所以现在的研究方向基本都不会设置一个非常复杂的模型。
下面是最后一个问题,怎样使用LM来改善LAS呢?我们有3中方法,根据什么时候来整合数据,以及如何整合数据可以分成3类。下面我们看图来分析这三类。
LM在speech recognition中的应用
最新推荐文章于 2024-10-10 13:39:49 发布