1、language model(LM):估计token序列的可能性

2、对于HMM,固定需要P(Y)才符合公式;对于LAS,加上P(Y)能够使效果更好

P(Y|X)需要成对的数据,而P(Y)不需要成对,所以可以得到很多数据
3、N-gram
(1)估计P(Y),收集大量的样本,将整个评估token序列概率分成许多小块的序列概率相乘

(2)例子:wreck a nice beach

(3)3-gram等就是,给两个词预测下一个的概率,以次类推N
(4)有一个问题就是,给的样本虽然说很大,但是不可能涵盖所有的语言,所以有些P即使在样本中没有找到P也不应该写为0,给一个小概率。

4、continuous LM使用到一个推荐机制(个人理解就像是找相同特征认为有可能具有同样的行为)

(1)图中数字是指在样本中出现的次数
(2)h_i和v_j是属于token的特征,并且是我们想训练的向量参数
(3)训练条件是

也就是希望向量v_i与向量h_j相乘可以得到非常近似nij,使用梯度下降进行训练。
(4)训练结果就是:

(5)将DL引入:
a、输入为所有的token的h作为的输入向量(如果要训练dog,就只将dog的部分设为1,其他为0)
b、中间的层就只是一个线性层
c、输出预计的词汇个数,与训练集中的数据做对比
d、也就是单纯把这个网络看作为神经网络

5、NN-based LM是想用于取代N-gram,因为在NN中可以将分成小块的概率计算出来

6、RNN-based LM:可以用于处理非常长的N-gram

7、LM跟今天的DL based 的end to end 的model结合起来(以LAS为例)
(1)结合方式

(2)浅融合:将LM和LAS的输出的distribution通过权重(可训练的)进行加和。

(3)深融合:在Hiddenlayer的地方就进行融合,这个融合的Network是需要训练的

a、但如果更换LM,需要重新训练network;对于不同的输入情况,可能需要不同的LM,所以下面改进。

b、将LM训练到softmax之前的,dimension跟tokensize相同的输出放到Network中,这样就可以更换LM了。
c、有一个好处是,即使LM是输出关于token的概率的model,也能适应这种训练方式。
d、但是上述会有一个问题,加入vocabularysize很大,使用word作为token,dimension太大了,就有些问题
(4)cold fusion:需要关注什么时候将LM加入
a、LM已经训练好了,LAS还没训练好,再将Network训练好,这样可以加快LAS的训练速度
b、是因为LM已经处理好文字和文字之间的关系了,就让LAS更加专注于文字和语音之间的关系
c、有问题就是,LM就真的不能更换了,因为LAS一出生就跟LM绑定在一起
