什么是NNLM:
NNLM(Nerual Network Language Model,神经网络语言模型)是指利用神经网络训练语言模型,得到一个字符串s作为一个句子出现的概率。
最早提出NNLM:
用神经网络来训练语言模型的思想最早由百度 IDL (深度学习研究院)的徐伟提出,《Can Artificial Neural Networks Learn Language Models?》[论文链接, 论文链接]发表在2000年10月举办的第六届International Conference On Spoken Language 会议上。
最经典的NNLM模型:
NNLM(Nerual Network Language Model)是这方面的一个经典模型,具体可参考Bengio在2001年发表的论文《A Neural Probabilistic Language Model》,不过Bengio 2003年又在JMLR上发表了同名论文,一般都参考03年的这一篇[论文链接] 。
2011年:
《RNNLM - Recurrent Neural Network Language Modeling Toolkit 》[论文链接]
2013年:
《Statistical Language Models Based on Neural Networks 》[论文链接]
2016年6月:
《Wide & Deep Learning for Recommender Systems》[论文链接]
2016年9月:
《Deep Neural Networks for YouTube Recommendations 》[论文链接]
为什么之前的模型不引入NN到LM:
已有的标准统计方法用于解决语言模型训练问题已经很成熟,使用已有的标准统计方法顺理成章合情合理无容置疑;
如果使用NN到LM训练的问题中,神经网络的size会非常巨大,训练到神经网络收敛将会在时间、空间上有巨大的开销。
为什么NNLM:
2000年徐伟:通过将NN引入LM进行实验,(意外地?)发现NNLM和已有的标准统计方法比起来表现更优。
2001年Bengio:learn a distributed representation for words 学习分布式的表征(embedding)to fight the curse of dimensionality 为了克服维度灾难;能够更好地利用更长的上下文。
如何实现NNLM:
神经概率语言模型可以分为四层,即输入层,embedding层,隐藏层,输出层。
也可以分为三层,即把input层和embedding层合在一起当做输入层,然后隐藏层、输出层,其实在实际操作中实际的输入就是embedding层(词向量)