Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Junyi Li作者Haojin Yang编辑

集众之长,一种包含多种语言模型的混合框架

卡内基梅隆大学和 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 个词有关。

我们需要知道两点(至少对这篇论文而言):

  1. 给定之前的词,如何使用 n-gram 模型来估计一个 n-gram 中最后一个词的概率
  2. 如何为整个序列分配概率

(注:由于 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 来理解该公式。

图 1:作为线性方程的 MODLM根据上述公式,这篇论文创造了一种可将基于计数的语言模型和神经语言模型的所需特性结合到一起的全新方法。

3. MODLM

3.1 作为线性混合的现有语言模型

图 2:将现有模型解释为分布的混合


作为分布混合的 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 的全新应用

图 3:MODLM 框架让对 n-gram 和神经语言模型的两种新扩展成为了可能

神经插值式 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 给出了这两个数据集的详情。

表 1:PTB 和 ASPEC 语料库的数据规模表 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

工程语言模型
1
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

最大似然估计技术

极大似然估计是统计学中用来估计概率模型参数的一种方法

时间递归神经网络技术

时间递归神经网络 (aka.循环神经网络, RNN) 是一类擅长处理序列数据的神经网络,其单元连接形成一个有向环。一般人工神经网络(ANN)由多层神经元组成,典型的连接方式是在前馈神经网络中,仅存在层与层之间的互相连接,而同层神经元之间没有连接。RNN在此基础上结合了隐藏层的循环连接,从而能从序列或时序数据中学习特征和长期依赖关系。RNN隐藏层的每一单独计算单元对应了数据中某个时间节点的状态,它可以是简单神经元、神经元层或各式的门控系统。 每一单元通过参数共享的层间顺序连接,并随着数据序列传播。这一特性使得RNN中每一单元的状态都取决于它的过去状态,从而具有类似“记忆”的功能,可以储存并处理长时期的数据信号。 大多数RNN能处理可变长度的序列,理论上也可以建模任何动态系统。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

前馈神经网络技术

前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。在它内部,参数从输入层经过隐含层向输出层单向传播。与递归神经网络不同,在它内部不会构成有向环。FNN由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。这种连接是 FNN 架构的关键,具有两个主要特征:加权平均值和激活函数。

神经语言模型技术

语言模型是估计单词序列的联合概率函数,比如给一个长度为m的单词序列,通过使用语言模型,可以获得这m个单词分布的概率P(W1,...,Wm)。对于许多的自然语言处理的应用,可以估计不同短语的概率是极具应用价值的。语言模型可以应用于语音识别,机器翻译,语音标记,解析,手写识别,信息检索等领域。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

暂无评论
暂无评论~