Introductions
神经网络语言模型NPLM是在2003年被Bengio教授提出的,NPLM可以理解为是N-gram模型的延申与拓展的模型,神经网络语言模型可以用于浅层的神经网络。接下来就来介绍一下NPLM模型。
NPLM模型的样本是二元对,就和监督学习中的数据与标签对一样,但这里的数据点是词的上下文,实际上这里沿用的是N-gram模型,即使用前n-1个词作为上下文context,这里的标签是真实的词w,注意同一个网络只能训练同一个n,而不能同时训练不同的n,意思就是假如上下文有10个词,那我们不可以一会拿10个词训练,一会又拿15个词训练。
NPLM共有四层,分为两层有权重的网络和两层无权重的网络,分别是输入层,投影层,隐藏层和输出层,这里的隐藏层和输出层是有权重的层。
输入的训练样本包含着前n-1个词分别的向量,假定每个词的向量维度是m,投影层的作用是将n-1个词分别的向量都首尾拼接起来,即拼接后的向量大小是(n-1)*m,拼接后的向量会输入到隐藏层中,隐藏层使用的函数是tanh,最后会输入到一个规模为N的Softmax输出层中,从而得到词表中每个词作为下一个词的概率分布,事实上输出表示的是在已有上下文的情况下,预测的这个词是词库中第i个词的概率。m,n,h是超参数,m代表着词向量的维度,通常大小在10到100之间,n代表着取上下文的数量,即n-gram的规模,一般来说不大于5,h代表着隐藏层神经元的个数,一般在100左右,N是词表中的词的数量,词的数量一般在几十万。
相比于n-gram模型,NPLM模型中,单词之间的相似性可以通过词向量来体现。但是缺点是模型的运算量过大,主要集中在隐藏层和输出层附近,因此之后的优化就是围绕这个展开。