卡内基梅隆大学和 DeepMind 的研究者曾提出了一种包含多种语言模型的单个框架。机器之心技术分析师对该论文进行了解读。
论文地址:https://www.aclweb.org/anthology/D16-1124
项目地址:https://github.com/neubig/modlm
引言
这篇论文展示了一种名为“分布语言模型的混合(MODLM:Mixture Of Distribution Language Models)”的框架,其提供了一个包含多类广泛使用的语言模型(LM)的单个数学框架。这篇论文描述了两种将传统的 n-gram 模型和神经语言模型的所需特性组合到一起的全新方法:神经插值式 n-gram 语言模型和神经/n-gram 混合式语言模型。研究者在两个语料库上执行了实验:Penn Treebank(PTB)数据集和 ASPEC 语料库英语方面的前 10 万个句子 [1,2]。在完成这两个实验之后,他们还在更大规模的数据集(WSJ 和 GW)上进行了实验并与静态插值法(Static Interpolation)做了比较。结果表明他们的新框架在组合模型方面表现出色,并且实现了比已有模型更好或相近的结果。该框架也许能为我们改进语言模型带来一些启发。
1.背景
也许有的读者不知道什么是 n-gram 模型,这里我会给出一些有助于理解这篇论文的材料。
语言模型(LM)是指能学习到一个函数的函数或算法,并使得所学习到的函数能获取某个自然语言词序列的分布的显著统计特征。通常来说,我们可以进行查询来得到我们的“查询”的概率。比如,如果我查询“I like”,那么我就会得到 P(X | I like) 的概率。X 可以是任意词。
1.1 n-gram 语言模型与对数概率
首先,我将简要介绍一些基本概念:
n-gram 语言模型 [12]
能为词序列分配概率的模型被称为语言模型(LM)。n-gram 是最简单的语言模型。对于一个有 n 个词的序列,2-gram(bi-gram)是两个词构成的词序列(比如“please turn”),3-gram(tri-gram)是三个词构成的词序列(比如“please turn your”)。n 表示被视为单个“单位”来求取概率的词的数量。词的概率将与其前面的 n-1 个词有关。
我们需要知道两点(至少对这篇论文而言):
- 给定之前的词,如何使用 n-gram 模型来估计一个 n-gram 中最后一个词的概率
- 如何为整个序列分配概率
(注:由于 n-gram 这个术语有些模糊,我们通常不会使用“模型”这个词,因此 n-gram 既可表示词序列本身,也可指代为其分配概率的预测模型。)
对数概率
为什么要为语言模型使用对数概率?因为概率从定义上来说总是小于或等于 1,所以我们乘到一起的概率越多,得到的积就越小。当将足够多的 n-gram 乘到一起时,会导致数值下溢。通过使用对数概率而非原始概率,我们得到的值不会那么小。对数空间中的相加相当于线性空间中的相乘,所以我们可以通过相加来组合对数概率。所有计算过程都在对数空间完成,结果也存储在对数空间中;如果之后我们需要报告结果,我们只需将结果转换成概率即可;那么我们只需取对数概率的指数:p1 × p2 × p3 × p4 = exp(log p1 +log p2 +log p3 +log p4)
1.2 神经语言模型
神经语言模型是指基于神经网络来完成每个操作。比如,你的查询的概率会是神经网络的输出,而非静态方法的输出。3.1 节会给出一些讨论(更多信息请参阅 [13,14,15])。
2.该论文的动机
对于基于计数的语言模型,平滑化的(由于数据稀疏性 [3])n-gram 是最传统且使用很广泛的语言模型。神经网络的表现已经超越了基于计数的语言模型。但是,神经语言模型在训练时间和测试时间都有计算复杂度的问题,即使研究者报告的最大型的神经语言模型所使用的训练数据量也仅有基于计数的语言模型一小部分。[4,5,6]
这篇论文关注的是分布语言模型的混合(MODLM),研究者定义了以下形式:给定之前的上文 c,根据多个分量概率分布 的混合,计算句子 wi 中下一个词的概率:
其中,是控制每个 P_k 的权重的函数。并且所有 λ 的和为 1。则公式 (1) 可转换成下面的矩阵-向量乘法形式:
其中 p_c 是长度等于词汇表大小的向量。我们可以根据图 1 来理解该公式。
根据上述公式,这篇论文创造了一种可将基于计数的语言模型和神经语言模型的所需特性结合到一起的全新方法。
3. MODLM
3.1 作为线性混合的现有语言模型
作为分布混合的 n-gram 语言模型
这篇论文解释了最大似然估计、插值(interpolation)和折扣(discounting)。[7,8]
众所周知,最大似然估计是一种计算概率的常用方法:
其中 c 是计数在训练语料库中的频率。
由于数据稀疏性,最大似然估计可能给计数非常小或等于 0 的词序列分配 0(或接近 0) 的概率。插值是解决这一问题的一种常用方法。
(如图 2(a) 所示)
使用基于上下文频率计数的启发式方法来动态地计算 λ(c) 可以提升结果表现:
其中 是 n 阶模型的一个语境敏感型回落概率(context-sensitive fall-back probability)。
折扣是另一种被广泛使用的技术,这会定义一个固定折扣 d 并在计算概率之前将其从每个词的计数中减掉:
对平滑技术的解释可参阅 [7],其中包括加法平滑(Additive smoothing)、Good-Turing 估计、Jelinek-Mercer 平滑(插值)、Katz 平滑(backoff)、Witten-Bell 平滑、绝对折扣(Absolute discounting)、Kneser-Ney 平滑。
作为分布混合的神经语言模型
这篇论文解释了前馈神经网络语言模型和循环神经网络语言模型。
p=softmax(hW+b) (其中 h 是之前的仿射层的输出)
神经语言模型(包括前馈网络和 RNN)不会直接计算 p,而是会计算混合权重 λ=softmax(hW+b) [wupan1]并会将 MODLM 的分布矩阵 D 定义为一个 J×J 的单位矩阵。(图 2(b))
3.2 MODLM 的全新应用
神经插值式 n-gram 语言模型
基于上一小节描述的现有方法,这种模型没有使用启发式的插值系数 λ,而是使用了 3.1 节描述的方法来替代图 2(a) 中的启发式插值系数,由此得到了图 3(a).
神经/n-gram 混合式语言模型
与上一个模型类似。但使用 J×J 的单位矩阵对矩阵进行了增强,如图 3(b) 所示。但我认为这张图说得不清楚。
这个方法会读取神经和 n-gram 语言模型所使用的所有信息,并会像搅拌机一样将 n-gram 和神经网络的结果组合到一起。直观而言,该模型获得的信息越多,其表现就会越好。后面的实验结果也表明了这一点。
该论文描述的在 NMT 上的插值类似于这篇论文:https://www.aclweb.org/anthology/D16-1162
4.学习和 block dropout
训练目标
这里的训练目标是在语料库 W 中的每个句子 w 中的词 wi 上总结的负对数似然损失:
其中 c 表示 w 中 wi 之前的所有词,这些词会被用于概率计算。除了这个训练目标,其它都类似于标准的神经网络语言模型。
用于混合模型的 block dropout
在神经/n-gram 混合模型中,n-gram 的概率已经很好了,J×J 矩阵的权重还不能提供准确的概率,所以这个模型将会学习将混合比例设置为接近于 0 并主要依赖于基于计数的 n-gram 分布。
Ammar et al. (2016) [10] 提出了一种名为 block dropout 的方法,该方法会随机丢弃整个网络节点的一部分(标准 dropout [11] 会丢弃单个节点,它们的处理单位不同)。因此,对于整个训练数据中随机某块(他们这里使用了 50%),他们通过将对应于 n-gram 分布的 λ(c) 中的所有元素归零而禁用这部分 n-gram,从而让整个模型都只依靠 J×J 矩阵。
5 结果
实验结果如下:
首先,他们选择了两个相对较小的数据集:PTB 和 ASPEC。表 1 给出了这两个数据集的详情。
表 2 给出神经插值式 n-gram 语言模型的结果。如表 2 所示,这些技术实际上有 10 种不同的组合。其中 ML 指最大似然估计,KN 指 Kneser-Ney,C 指计数,CR 指计数+词,HEUR 指启发式,FF 指前馈神经网络,LSTM 是长短时记忆 RNN。
表 2: 使用 ML 或 KN 分布和计数(C)或计数+词表征(CR)特征的传统启发式方法(HEUR)和所提出的神经网络(FF 或 LSTM)插值方法的 PTB/ASPEC 困惑度
表 3 给出了神经/n-gram 混合式语言模型的结果。表中的 δ 是 Kronecker δ 分布,这等价于我们之前提及的 J×J 单位矩阵。
表 3:传统 KN (1)、LSTM 语言模型 (2)、神经插值式 n-gram (3) 以及没有 (4) 和有 (5) block dropout 的神经/n-gram 混合式模型的 PTB/ASPEC 困惑度
图 6 展示了它们在更大型的 WSJ 和 GW 数据集上的结果。这张图有点让人眼花缭乱。总体而言,神经/n-gram 混合式模型的表现优于传统神经语言模型。数据的类型和规模也会对方法的表现产生影响。对于 WSJ 数据,在所有数据上训练的结果优于添加分布的方法;但当加入 GW 数据时,这个趋势却正好相反。因此,对于不同的数据集,针对领域选择插值方法也很重要。
图 6:在 PTB (1,2)、PTB+WSJ (3,4,5) 或 PTB+WSJ+GW (6,7,8) 上使用标准神经语言模型 (1,3,6) 、在所有数据上训练过的神经/n-gram 混合式模型 (2,4,7)、或通过额外的 n-gram 分布在 PTB 上训练过的混合模型 (5,8) 训练得到的模型
最后,他们使用 EM 算法将单独训练的模型与基于验证集调整过的静态插值权重组合到了一起,即表格中 Lin. 对应的结果。这是使用 modlm 工具包中的 interp-probs 程序完成的。“+WSJ”是指额外添加了大型的 WSJ 数据。
表 4 给出了与静态插值法的比较结果。结果表明新提出的方法能实现相近或更好的表现。
表 4:神经(δ)语言模型和基于计数的模型之间的插值的 PTB 困惑度
分析师简评
这篇论文提出了一种语言模型框架,将不同语言模型的所需特性组合到了一起。因为语言模型可被用在很多相关领域中(比如机器翻译和自动语音识别),所以这是一种结合不同技术的新方法(这里是结合了神经网络和静态方法),这可能会引发一个提升现有技术的新趋势。
参考文献(除了上面提到的论文)
[1] Tomas Mikolov, Martin Karafiat, Lukas Burget, Jan Cernocky, and Sanjeev Khudanpur. 2010. Recurrent neural network based language model. In Proc. InterSpeech,pages 1045–1048.
[2] Toshiaki Nakazawa, Hideya Mino, Isao Goto, Graham Neubig, Sadao Kurohashi, and Eiichiro Sumita. 2015. Overview of the 2nd Workshop on Asian Translation. In Proc. WAT
[3] 1,S. F. Chen and J. Goodman. 1999. An empirical study of smoothing techniques for language modeling. Computer Speech & Language, 13(4):359–393.
[4] Chen, Welin, David Grangier, and Michael Auli. "Strategies for training large vocabulary neural language models." arXiv preprint arXiv:1512.04906 (2015).
[5] Williams, Will, et al. "Scaling recurrent neural network language models." Acoustics, Speech and Signal Processing (ICASSP), 2015 IEEE International Conference on. IEEE, 2015.
[6] Brants, Thorsten, et al. "Large language models in machine translation." U.S. Patent No. 8,332,207. 11 Dec. 2012.
[7] https://nlp.stanford.edu/~wcmac/papers/20050421-smoothing-tutorial.pdf
[8] Ney, Hermann, Ute Essen, and Reinhard Kneser. "On structuring probabilistic dependences in stochastic language modelling." Computer Speech & Language 8.1 (1994): 1-38.
[9] Arthur, Philip, Graham Neubig, and Satoshi Nakamura. "Incorporating discrete translation lexicons into neural machine translation." arXiv preprint arXiv:1606.02006 (2016).
[10] Ammar, Waleed, et al. "Many languages, one parser." arXiv preprint arXiv:1602.01595 (2016).
[11] Srivastava, Nitish, et al. "Dropout: a simple way to prevent neural networks from overfitting." Journal of Machine Learning Research 15.1 (2014): 1929-1958.
[12] https://lagunita.stanford.edu/c4x/Engineering/CS-224N/asset/slp4.pdf
[13] http://www.scholarpedia.org/article/Neural_net_language_models
[14] http://mt-class.org/jhu/slides/lecture-nn-lm.pdf
[15] http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf