翻译之一种神经概率语言模型
1.摘要
统计语言建模的目的是学习单词序列的联合概率函数。 由于维度的复杂导致概率函数计算困难:我们建议用自己的方法来对付它。 在所提出的方法中,同时学习(1)每个单词的分布式表示(即单词之间的相似性)以及(2)用这些表示表示的单词序列的概率函数。 获得泛化是因为如果由与形成已经看到的句子的单词类似的单词形成的,以前从未被看到的单词序列获得高概率。 我们报告使用神经网络进行概率函数的实验,在两个文本语料库上显示,所提出的方法在最先进的三元模型上非常显着地改善。
2.介绍
造成语言建模和其他学习难题的根本问题是复杂的维度。 在这种情况下,当想要建立许多离散随机变量(如句子中的单词或数据挖掘任务中的离散属性)之间的联合分布时这种困难特别明显。 例如,如果想用10个大小为100000的词汇V的自然语言对10个连续词的联合分布进行建模,则可能存在(1)个自由参数。 语言的统计模型可以由所有先前句子序列中的下一个词条件概率表示,即(2),wt是第t个词,句子序列为(3).
当建立自然语言的统计模型时,可以通过利用单词排序来减少难度,并且单词序列中的时间上更接近的词在统计学上更具依赖性。因此,n-gram模型为大量上下文中的每一个构成下一个单词的条件概率表,即最后n个1个词的组合:p(wtlwf-1)〜P(WtIW!=〜+ l)只考虑实际发生在训练语料库中(或者经常发生的)连续单词的组合。当训练语料库中没有出现n个单词的新组合时,会发生什么情况?一个简单的答案是使用较小的上下文大小来查看预测的概率,如反向三叉模型[7]或平滑(或内插)三元模型[6]。那么在这样的模型中,泛化是如何从训练语料库中看到的单词序列到新的单词序列呢?简单地通过观察足够短的上下文,即通过在训练数据中经常足够地看到的长度为1,2或3个字的非常短的片段来获得长字符序列的概率。显然,序列中有更多的信息在单词预测之前,而不仅仅是前几个单词的身份。在这种方法中至少有两个明显的缺陷(尽管如此,很难被击败):首先,它没有考虑比1或2个字更远的语境,其次没有考虑到“相似性”之间的话例如,看过句子猫在训练语料库中走在盥洗室里应该有助于我们推广,使得句子在一个房间里几乎是可能的,只是因为“狗”和“猫”(分别是“和”一个“,”房间“和”卧室“等)具有相似的语义和语法作用。
1.1 用我们的方式来战胜维度难题
简而言之,拟议方法的思想可概括如下:
1.与词汇中的每个单词相关联的分布式“特征向量”(m维中的实数向量),从而创建词之间的相似性概念,2.根据序列中的单词的特征向量的词序列来表示单词的联合概率函数 ,以及3.同时学习单词特征向量和该函数的参数。
特征向量表示单词的不同层面:每个单词与向量空间中的一个点相关联。特征的数量(例如,实验中的m = 30,60或100)远小于词汇的大小。概率函数表示为给定前一个词的下一个词的条件概率的乘积(例如,在实验中使用多层神经网络)。该函数具有可以迭代调整的参数,以便最大化训练数据的对数似然性或正则化标准。通过加重减轻衰减。学习与每个单词关联的特征矢量,但可以使用先验知识进行初始化。为什么它能工作?在前面的例子中,如果我们知道dog和cat扮演着相似的角色(语义上和语法上),并且对于(t he,a),(bedroo m,room),
(is,was),(running,walking),我可以从猫在行动在一个房间里,一只狗在一个房间里运行自然地概括同样许多其他的组合。在所提出的模型中,由于“相似”的词应该具有相似的特征向量,因此概率函数是这些特征值的平滑函数,所以特征的小变化(获得相似的词)会引起一个概率的小变化::只看到上述句子之一将不仅会增加句子的概率,而且会增加句子空间(由特征向量序列表示)中的“邻居”的组合数。
1.2与以前工作的关系
在[3]中已经发现使用神经网络来模拟高维离散分布的想法是有用的,其中Zl ... Zn的联合概率被分解为条件概率的乘积:P(Zl = Zl, Zn = Zn)= Oi P(Zi = zilgi(Zi-1,Zi-2,...,Zl)),其中g(.)是由神经网络的一部分表示的函数,并且其产生表达ZI的分布.在四个VCI数据集上的实验表明,这种方法工作相对较好[3,2]。符号分布式表示的想法在连接主义的早期就提出了[5],最近,Hinton的方法被改进并成功地在一些代表关系中被证明[9],在语言模型上使用神经网络的思想也不是新的,例如[8],相比之下,我们把这个想法大量地推广到了词序分布的统计模型,而不是在句子中学习词。所提出的方法也与以前的方法有关
------(4)
3. 加速等技巧
缩短列表.
主要原理是将神经网络的努力集中在具有最高概率的单词的“缩短列表”上。这可以节省大量的计算,因为在所提出的两个结构中,计算观察到的下一个字的概率的时间几乎与词汇表中的单词的数量成线性关系的时间(因为与词汇表中的每个单词i相关联的分数hi必须用softmax计算正确的归一化概率)。加速技巧的思想如下:没有计算下一个单词的实际概率,神经网络用于计算该短列表中下一个单词的相对概率。短列表的选择取决于当前上下文(前面的n个单词)。我们使用我们平滑的三元模型来预先计算一个包含与前两个词相关联的最可能的下一个单词的简短列表。因此,条件概率P(Wt = ilht)如下计算,用ht表示在Wt之前的历史(上下文)。并且L t是用于预测Wt的短列表。如果i EL t,则概率为PNN(Wt = ilWt E Lt,ht)Ptrigram(Wt E Ltlht),否则为Ptrigram(Wt = ilht),其中PNN(Wt = ilWt EL t,ht)为归一化分数通过神经网络计算的单词,其中“softmax”仅对短列表Lt中的单词和Ptrigram(Wt E Ltlht)=〜iEL进行标准化。 Ptrigram(ilht),Ptrigram(ilht)代表由平滑三-gram计算的下一个字概率。请注意,Lt和Ptrigram(Wt E Ltlht)都可以预先计算(并存储在由最后两个字索引的哈希表中)。-----(5)
表查找以进行识别。
为了加快训练模型的应用,可以在哈希表中预先计算神经网络的输出,至少对于最常用的输入上下文这么做。在这种情况下,神经网络只会很少被调用,平均计算时间将非常小。注意,在语音识别系统中,仅需要计算每个语境中的声学歧义词的相对概率,也能大大降低了计算量。
随机梯度下降。
由于我们有数以百万计的例子,所以重要的是仅在数据传递之间进行汇总。对于非常大的数据集,随机梯度下降收敛时间似乎随着数据集的大小而线性增加(参见下面对Brown与Hansard的实验)。加速训练使用随机梯度三元组。在Brown最好的神经网络系统中,根据验证困惑度(在不同的体系结构中尝试,见下文),产生258的困惑度,而平滑的三-gram产生348的困惑度,大约差了35%。这是使用具有与三元组(条件混合)混合的直接架构的网络获得的,具有用SVD方法初始化的30个词特征,40个隐藏单元和n = 5个上下文单词。在“国会议事录”中,神经网络的相应数字为44.8,平滑三-gram的相应数字为54.1,相差20.7%。这是一个包含具有直接架构,100个随机初始化的字特征,120个隐藏单元和n = 8个上下文的字的神经网络。
更多的上下文是有用的
用Brown的循环架构做实验,这个架构包括30个单词特征和30个隐藏单元,改变上下文单词的数量:n = 1(n为2一样)产生302的测试困惑度,n = 3,困惑度291,n = 5困惑度281,n = 8困惑度279(平滑三-gram困惑度348)。
隐藏单元帮助。
用Brown的直接架构做实验(输入到输出直接连接),该架构具有30个单词特征,5个单词的上下文,改变隐藏单元数量:0产生275的测试困惑度,10困惑度267,20困惑度266,40困惑度265,80困惑度265.
共同学习单词特征是重要的。
用Brown的直接架构做实验(40个隐藏单元,5个上下文),其中单词特征用SVD初始化,同时在训练期间SVD方法保持固定,产生了345.8的测试困惑度,而如果单词特征与其余参数联合训练,则困惑度是265.
初始化不那么有用。
用Brown的两种架构做实验,实验表明,对于随机初始化,单词特征的SVD初始化没有带来太多的改进:它加速初始收敛(节省大约2个时期),并且产生小于0.3%的困惑度改善。
直接架构更好一点。
直接架构比循环架构大约要好2%。
有条件的混合有助于神经网络更好。
在布朗的架构实验中,没有混合的最佳神经网络产生了265的测试困惑度,平滑的三-gram困惑度348,并且它们有条件混合,困惑度为258(即比两者更好)。在Hansard的实验中,改进较少:神经网络产生46.7的困惑度,与三-gram混合(54.1),困惑度45.1。
5. 结论和未来研究
在两个语料库上实验,一个中等的一个0.2万字)和一个大的(3400万字)的实验表明,所提出的方法比最先进的方法产生更好的困惑度,平滑的三-gram为20%至35%不等。我们认为,这些改进的主要原因是,所提出的方法允许用我们的方法更好的利用所学习的分布式表示来抵抗维度灾难:每个训练句通知模型与其他句子的组合数量。请注意,如果我们为每个“上下文”(短序列)都有一个独立的特征向量,则该模型将具有更多的容量(可以像n-gram那样增长),但是它不会自然地在许多不同的方式之间推广可以使用一个字。更合理的替代方案是探索除单词之外的语言单元(例如,一些短单词序列,或者替代地,一些子词语单元)。
为了改进模型,还有很多需要做,包括在架构水平上,计算效率上,更好的利用先验知识。未来研究的一个重要优先事项应该是评估和改进这里提出的加速技巧,并设法在不增加培训时间的基础上增加能力.