目录
Recurrent neural network based language model
说明
这篇文章引自Mikolov 等人2010年经典论文,主要介绍了基于语言模型的RNN模型,详细描述了模型的训练及优化过程,并在WSJ和NIST RT05测试集上进行了论证,得到了较好的效果。本人在Tensorflow上实现了该模型,首先需要制作词表,词表的大小即为V;one-hot编码可通过词在词表中的位置表示,例如狗/在/室内/跑可以表示为:[509,128,812,373]。一般而言,该词在词表中的数字越小表示其出现的频率越高。在模型的训练过程中,当遇到语料过少时,特别是当语料规模远远小于模型参数大小时,应当减小embedding-size和hiding-size。总之,本文提出的RNNLM相比较Ngram模型,具有更强的上下文能力,使得模型可以做的很长(Ngram最长一般做到6Gram)。同时,动态模型也使得模型的训练和更新能够得以实时进行。本文比较基础,可以作为NNLM入门文献阅读。
引用文献
kolovT, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]// INTERSPEECH 2010, Conference of the International Speech Communication Association, Makuhari, Chiba, Japan, September. DBLP, 2010:1045-1048.
摘要
当前,一种新的基于语言模型的循环神经网络(RNNLM)被应用于语音识别中。其结果表明,采用几种混合RNNLM的方式,相比较最先进的基于回退的语言模型,可以大约降低50%的PPL(困惑度)。语音识别实验表明,在WSJT语料集上,相比较其他模型处理同等规模的数据,RNNLM可以降低近18%的词错率。而在更困难的NIST RT05语料集上,在基于回退的语言模型训练更多的数据条件下,RNNLM仍然降低了近5%的词错率。我们提供了充分的实验证据来表明,这种联结者语言模型,除了它计算复杂性较高以外,其相比较标准N-Gram模型更好。
绪论
序列类数据的预测一直被许多人认为是机器学习和人工智能的重要问题。统计语言模型的目标是在文本数据中,给定上文来预测下一个单词是什么。因此,当我们对语言模型进行建模时,可以将其处理为对于序列数据的预测问题。尽管如此,许多对于这种统计模型建模的尝试都涉及到语言领域非常具体的方法。例如,假设自然语言句子被描述为解析树,或者需要考虑语言的形态学,语法或者语义。甚至最广泛使用和通用的模型—基于N-Gram的统计语言模型,也假定语言是由各个基本符号--单词组成的序列组成。单词组成了句子,而句子结束的符号位置则扮演着重要或者特殊的角色。
值得怀疑的是,能否在简单的N-Gram模型上有任何显著的重大进展。如果我们通过模型更好地预测时序数据的能力来衡量这一进步,那么答案就是已经取得了相当大的进步——即通过引入cache模型和class-based的模型。与此同时,还有许多其他的技术也被提出,其效果几乎等同于cache模型和class-based模型。
如果我们通过实际应用来衡量高级语言建模技术的成功,我们就会有更多的怀疑。真实世界的语言模型,包括语言识别和机器翻译系统都建立在大量的数据基础上,流行的说法是,我们需要更多的数据。研究的模型趋于复杂,并且建立的系统能否较好的工作常常受限于大量的训练数据。事实上,大多数提出的先进的语言模型技术仅仅比简单的baselines有一点点的提升,以至于在实际中很少使用。