1、N-Gram
在深度学习之前最常用的技术是N-gram语言模型
问题:N-gram的问题是训练资料仍然不足,会限制精度,即某种N-gram没有出现并不能代表它们出现几率是0,language model smoothing的技术可以用来解决这一问题
解决方法:
方法来源于推荐系统中的矩阵分解,通过最小化目标函数来估计单词向量,如果两个单词向量越接近,则这两个单词后面接某个单词的概率应相似,通过h向量和v向量相乘来计算连续语言模型中的表格中的值。
连续语言模型和深度学习的关系,即相当于只有一层的神经网络模型:
因此可以拓展到多层神经网络模型来学习在若干序列后产生某个token的概率
上面的语言模型的问题在于不好利用语境信息,即太多的输入会产生大量的参数,因此有了基于RNN的语言模型,这样就可以用非常长的n-gram技术