英语原文共 10 页
上下文相关递归神经网络语言模型
托马斯·米科洛夫和杰弗里·茨威格
微软研究技术报告MSR-TR-2012-92 2012年7月27日
摘要
最近,递归神经网络语言模型(RNNLMs)在许多任务中都表现出了最先进的性能。在本文中,我们通过提供与每个单词相关的上下文实值输入向量来提高它们的性能。这个向量用于传递关于正在建模的句子的上下文信息。通过使用前面的文本块执行潜在的狄里克雷分配,我们实现了一个主题条件的RNNLM。这种方法的主要优点是避免了与在不同的数据子集上构建多个主题模型相关的数据碎片。我们在Penn Treebank的数据上报告了令人困惑的结果,在那里我们实现了一种新的最先进的技术。我们进一步将该模型应用到《华尔街日报》的语音识别任务中,在该任务中我们观察到单词错误率的改善。
关键词:递归神经网络;语言建模;主题模型
1介绍
递归神经网络语言模型(RNNLMs)[1,2]最近被证明在各种任务的困惑度和错误率方面都能产生最先进的结果[3,4]。这些网络与经典的前馈神经网络语言模型[5,6,7,8]不同之处在于,它们保持了一个神经元的隐藏层,这些神经元与它们自己先前的值有重复的连接。这个反复出现的特性使RNNLM有可能对长跨度依赖关系进行建模。然而,理论分析[9]表明,梯度计算变得越来越不规范的时间越远的错误信号必须传播,因此学习任意大跨度的现象将是不可能的。在实际应用中,与非常大跨度前馈神经网络[10]的性能比较表明,RNNLM类似于前馈网络,具有八到九个词的上下文。
托马斯·米科洛夫和杰弗里·茨威格
微软研究院,雷德蒙德,华盛顿州。电子邮件:{t-tomik, gzweig} @microsoft.com
2 Tomas Mikolov和Geoffrey ZweigMicrosoft Research technology Report msr - tr -2012- 927.27 2012
在过去,在传统的N-gram语言模型中,已经使用了许多技术来提供长跨度和上下文信息。其中最简单的可能是缓存语言模型[11],其中基于最后K个单词训练的模型的语言模型得分被插入到一般模型中。与基于缓存的模型在本质上相似的是[12,13]的基于潜在语义分析(LSA)的方法。这些方法将大跨度历史作为潜在语义空间中的一个向量,并基于假设词与历史的余弦相似度来估计词的概率。然后用n克概率插值这些基于相似性的概率。以主题为条件的语言模型,如[14,15],最常见的工作方式是将训练数据划分为子集,目标是使子集只包含一个主题的数据。然后训练单独的语言模型,并在运行时选择最合适的模型(或组合)。在语音搜索应用程序[16]中,大跨度上下文被用于最大熵N-gram模型[17,18],它通过创建特性来指示假设的单词何时出现在用户的历史记录中。最后,在全句语言模型[19,20]中,基于广泛分离的词对存在的触发特性也提供了大跨度的信息。
本文研究了大跨度上下文在RNNLMs中的应用。提高有效上下文的一种方法是改进学习算法,以避免[9]中识别的梯度消失问题。最近关于无hessia优化[21]的工作就是一个例子。另一种方法是修改模型本身,就像在长短时记忆神经网络[22]中一样,它使用门控神经元“锁定”错误信号,进行多个时间步长。与这些方法相反,我们选择根据句子历史显式地计算上下文向量,并将其作为附加输入直接提供给网络。这样做的好处是,我们可以使用复杂的和预先存在的主题建模技术来承担很少的开销,特别是潜在的Dirichlet分配(LDA)[23]。此外,在其他应用程序中,它允许我们使用文本之外的上下文(例如,在语音搜索中表示用户习惯的向量)。Chu和Mangu[24]最近也使用了潜在的Dirichlet分配来确定主题,但是对数据进行了硬分区,并建立了一组不连接的模型。
本文有几点贡献。首先,我们建议使用上下文向量来提高RNNLM的性能。其次,我们展示了复杂的改进,在以前的最先进的佩恩树银行。第三,提出了一种利用上下文滑动窗口计算上下文向量的有效方法。最后,我们通过重新提取语音识别器的n个最佳列表来评估我们的模型,并观察其中的改进。
本文其余部分的结构如下。第2节描述了我们使用的增广RNN模型。第3节描述了基于潜在Dirichlet分配构造上下文向量的方法。第4节和第5节给出了Penn Treebank和《华尔街日报》语音识别任务中的单词错误率的令人困惑的结果。我们在第6节中提供了一些未来的方向和结束语。
2模型结构
简单递归神经网络语言模型[1]由输入层、传输延时信号的递归连接隐含层和输出层以及相应的权矩阵组成。输入向量w(t)表示使用1-of-N编码(也称为单热编码)编码的t时刻的输入字,输出层产生概率分布
上下文相关递归神经网络语言模型 3.
在单词。隐藏层维护句子历史的表示。我们使用一个附加的特性层f(t)来扩展这个基本模型,它连接到隐藏层和输出层,如图1所示。特征层表示一个外部输入向量,它应该包含输入单词向量w(t)的补充信息。在本文的其余部分中,我们将使用表示主题信息的特性。然而,我们注意到外部特征可以是任何信息源,例如语音标记的一部分、关于当前单词w(t)的形态学信息,或者ASR上下文中特定于说话者的信息。
使用主题信息作为模型的额外输入,而不是构建许多单独的特定于主题的子模型,这可能有几个优势:主要是,训练数据将更少碎片化。此外,通过在模型输入处直接提供主题信息,我们巧妙地避免了长期存在的训练递归神经网络记忆较长期信息的问题(通常称为消失梯度问题,在[9,22]中已经讨论过)。
输入向量w (t)和输出向量y (t)维度的词汇(后来表示V)。网络是使用随机梯度下降训练后,向量y (t)代表一个概率分布在单词前面给出的词汇词w (t),上下文向量s (tminus;1)和特征向量f (t)。
隐藏层和输出层的值计算如下:
s(t) = f(Uw(t) Ws(t - 1) Ff(t)) (1)
y(t) = g(Vs(t) Gf(t)), (2)
神经网络语言模型的训练包括寻找权值矩阵U、V、W、F和G,使训练数据的似然性最大化。进一步的详细信息请参考[5,25]。
3用于上下文建模的潜在Dirichlet分配
我们使用潜在的Dirichlet分配(LDA)[23]来实现大跨度上下文的紧凑向量空间表示。这个过程将文档的袋装文字表示映射到一个低维向量,该向量通常被解释为主题表示。对于我们的目的,文档将由一个句子或连续的单词组成。每个诱导的主题都有一个单词上的单字母分布,并表示分布的集合。LDA是文本的生成模型,文档的生成过程如下:
1. 通过从泊松分布(Poisson distribution: Nsim;Poisson())中取样确定文档长度N。
2. 通过从参数为:sim;Dir()的Dirichlet分布中取样,确定文档主题上的多项分布。
3.对于每一个要生成的N个单词,首先确定一个主题,然后再确定单词本身:
bull;选择主题znsim;多项式()。
4 Tomas Mikolov和Geoffrey ZweigMicrosoft Research technology Report msr - tr -2012- 927.27 2012
图1基于递归神经网络的语言模型,附加特征层f(t)和相应的权重矩阵。
bull;从与主题相关的单字母分布中选择一个单词wn: p(wn|zn,)。
LDA中的一个关键参数是,它控制单个文档主题上的先验分布的形状。正如常见的那样,我们使用固定的跨主题。当小于1时,先验分布达到峰值,在任何给定文档中,大多数主题的概率都很低。= 1表示一个统一的先验,而gt; 1惩罚分配给特定文档中的任何一个主题高概率的分布。Blei等人描述了一种基于变分推理的方法,用于从一组文档中学习模型参数,我们的实验使用了它们的实现(http://www.cs.princeton.edu/blei / ldl -c/)。
LDA的结果是一个学习值,和一组主题分布。然后可以使用推理过程来获得给定文本中每个主题所占的预期字数,从而获得文本的主题分布。
在我们的实验中,我们使用了从当前单词前面的固定长度的单词块计算的主题分布。因此,有必要在每个单词之后更新上下文向量,这是一个非常昂贵的过程。因此,如下一节所述,我们开发了一种基于LDA矩阵输出计算上下文向量的有效替代方法。注意,这不是对LDA训练或推理程序的修改;相反,当RNN运行时,它是计算上下文的一种有效技术。
上下文相关递归神经网络语言模型 5
3.1快速近似主题表示
根据经验,我们观察到[23],LDA推理的运行时为O(kN2),其中N为单词数,k为主题数。因此,计算每个单词的句子前缀的LDA表示需要O(kN3)时间,这是不可取的慢。对于滑动窗口的单词计算也是如此。因此,我们开发了一种更有效的上下文计算方法。在此计算中,我们在训练RNN语言模型的过程中直接生成上下文向量,只使用LDA计算的矩阵。从矩阵中,我们使用归一化列向量为每个单词提取一个连续空间表示。由于主题在训练数据中的表示方式大致相同,因此得到一个表示P的条目向量tj wi (tj |wi)。
我们发现,通过将w中每个单词的主题分布乘以w中每个单词的主题分布,并对得到的分布进行重新正规化,可以计算出一个合理的w单词块的主题分布:
f(t) = 1z
K
prod;
我= 0
tw (tminus;我), (4)
其中tw(t)为表示单词w(t)的LDA主题分布的向量。为了使这个近似有效,重要的是通过添加一个小常数来平滑矩阵,以避免极小的概率。
正如我们在第4节中所看到的,可以进一步改进这一程序,方法是将最近的词的权重高于较远的过去的词。为了做到这一点,我们引入指数衰减的特征,在这里我们计算特征向量为
f(t) = 1z
f(t - 1) t(1)
w (t), (5)
控制主题向量变化的速度——接近1的值将强制特征向量缓慢变化,而较低的值将允许快速适应主题。
虽然这个过程不是LDA推理过程的近似,但是我们发现它仍然能够很好地表示上下文历史,并且允许增量更新,从而减少了运行时N2的因素。第4节对LDA主题后验值的使用进行了实证比较。
4佩恩树银行的结果
为了与之前的研究保持可比性,如[26,3],我们选择了华尔街日报语料库中著名的Penn Treebank (PTB)[27]部分进行实验。这个选择还允许快速评估不同的模型和参数设置。我们使用了与之前研究中常见的相同的数据预处理标准:10K词汇表之外的所有单词都映射到lt;unkgt;令牌;第0-20节用作训练集(930K令牌),第21-22节用作验证集(74K令牌),第23-24节用作测试集(82K令牌)。在[3]中给出了高级语言建模技术在此设置上的性能的广泛比较。
6 Tomas Mikolov和Geoffrey ZweigMicrosoft Research technology Report msr - tr -2012- 922012.7.27
模型 开发PPL测试PPL
5克,no count cutoffs 148.0 141.2 10个神经元,no feature 239.2 225.0 10个神经元,精确LDA特征1973.187.4 10个神经元,近似LDA特征2010.5 191.2 100个神经元,no feature 150.1 142.1 100个神经元,精确LDA特征132.3 126.4 100个神经元,近似LDA特征134.5 128.1
表2具有指数衰减特征的Penn Treebank语料库的困惑。模型开发PPL测试PPL
10个神经元,no特征为239.2 225.0 10个神经元,= 0 220.7 195.7 10个神经元,= 0.9 2014 190.5 10个神经元,= 0.95 1980.5 187.5 10个神经元,= 0.98 199.8 190.1
为了获得每个单词位置的额外特征,我们使用来自PTB训练数据的10个句子长且不重叠的文本块组成的文档来训练LDA模型。我们研究了几种配置,发现10到40个主题可以获得很好的结果。一旦LDA模型得到训练,我们就可以计算任何新文档主题上的概率分布。经过一些实验,我们使用前50个单词的滑动窗口来表示历史。虽然这常常超出句子的边界,但这是有意义的,因为PTB复制新闻故事,其中相邻的句子相互关联。生成的主题概率分布直接用作RNNLM的附加特性输入。
我们最初的实验是使用只有10个神经元的小RNN模型进行的。为了降低计算复杂
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。