您的位置:首页 > 其它

【论文阅读】A Neural Probabilistic Language Model

2017-11-24 11:07 323 查看

《A Neural Probabilistic Language Model》

Yoshua Bengio 2003

Abstract

统计语言模型建模(Statistical Language Modeling)目标是学习一种语言中单词序列的联合概率函数。维度限制会导致:模型中测试的单词序列与训练集中的单词序列不同。本文提出通过学习单词的分布式表示来解决维度问题。模型通过训练语句对指数级语义相关的句子进行建模。同时学习(1)每个单词的分布式表示(2)单词序列的概率函数。泛化(Generalization)是指从未出现的单词序列,可以通过类似的词的组成的已经出现的句子来获得较高的概率。本文介绍了使用神经网络的概率函数的实验,改进了n-gram模型,可以利用更长的上下文,并在两个文本预料上都显示了很好的效果。

关键词: 统计语言模型 人工神经网络 分布式表示 维数灾难

1 Introduction

当要模拟许多离散的随机变量之间的联合分布时,如句子中的单子和数据挖掘中的离散属性,维度灾难尤其明显。对于离散空间,泛化结构不明显:任何离散变量的变化都可能对估计函数造成重大影响。而每个离散变量的取值数目很大时,大多数观察对象的汉明距离就几乎是最远的。

根据给定的前t−1个词,统计语言模型可以由第t个词的条件概率表示

P^(wt1)=∏t=1TP^(wt=i|wt−11)

其中,wt是第t个单词,将子序列写为wji=(wi,wi+1,...,wj−1,wj)。这种统计语言模型被证明在设计自然语言的许多技术应用中非常有用,如语音识别、语言翻译个信息检索。

建立自然语言模型时可以利用词序显著降低建模问题的难度。对于大量上下文中的n−1个单词组合,n-gram模型为下一个单词构造条件概率函数:

P^(wt|wt−11)≈P^(wt|wt−1t−n+1)

我们只考虑语料库中实际出现的连续词组合,或者频繁出现的连续词组合。

对于语料库中未出现的n元单词新组合,为避免为其分配零概率,考虑back-off trigram models (Katz, 1987)或者smoothed (or interpolated) trigram models(Jelinek and Mercer, 1980)中使用的方法:使用更小的语料进行概率预测。获得新的单词序列的方法主要是与插值(interpolated)或者n元回退(backoff n-gram)模型相关的生成模型,通过“粘合(gluing)”训练数据中短且重复的长度为1,2甚至n个频繁出现的单词来生成新的单词序列。

1.2 Previous Work

利用神经网络对高维离散的分布进行建模,对于学习Z1...Zn的联合概率分布有很大用处(Bengio and Bengio, 2000a,b)。在该模型中,联合概率分布被分解为条件概率的乘积:

P^(Zt=z1,...,Zn=zn)=∏iP^(Zi=zi|gi(Zi−1=zi−1,Zi−2=zi−2,...,Z1=z1))

使用神经网络进行语言建模:Miikkulainen and Dyer, 1991;基于字符的文本压缩,利用神经网络预测下一个字符的概率(Schmidhuber, 1996);模型由于没有隐藏单元和单个输入词而被限制为捕获单数据和二元数据统计(Xu and Rudnicky, 2000)

发现单词相似关系获得新序列的泛化:基于学习词汇聚类的方法(Brown et al., 1992, Pereira et al., 1993, Niesler et al., 1998, Baker and McCallum, 1998)

向量空间表示方法在文本中的使用:信息检索(Schutze, 1993)

2 A Neural Model

模型: f(wt,...,wt−n+1)=P^(wt|wt−11)

其中,训练集由w1...wt序列组成,wt∈V,单词V是有限的集合。将模型分解为两个部分:

将词汇表V中的元素i映射到实向量C(i)∈R中,该向量表示词汇表中每个词的分布式特征向量。C(i)是一个大小为|V|×m的自由参数矩阵。

函数g将上下文单词的特征向量(C(wt−n+1),...,C(wt−1))作为输入序列,将它们映射为V中下一个单词wt的条件概率分布。g的输出是第i个单词的估计概率向量P^(wt=i|wt−11)。如下图所示



f(i,wt−1,...,wt−n+1)=g(i,C(wt−1),...,C(wt−n+1))

函数f是映射C和g的组合,C在上下文所有单词间共享。矩阵C的第i行对应第i个单词的特征向量C(i)。函数g通过带有参数w的前馈或递归神经网络或其他参数化函数来实现。整体参数集θ=(C,w)。

训练通过最大化训练语料库的惩罚似然估计θ来实现:

L=1T∑tlogf(wt,wt−1,...,wt−n+1;θ)+R(θ)

其中R(θ)是正则项。在模型中自由参数的数量至于单词数量V线性相关

在本文的大部分实验中,神经网络具有一个隐藏层,单词特征到输出的直接连接是可选的。因此实际存在两层隐藏层:共享的单词特征层C,和普通的双曲正切隐藏层。神经网络使用softmax输出层计算以下函数以保证正概率总和为1:

P^(wt|wt−1,...,wt−n+1)=eywt∑ieyi

yi是对于每个输出单词i计算的未归一化对数概率:

y=b+Wx+Utanh(d+Hx)

W=0时C与输出层不直接连接,x是单词特征层激活向量(word features layer activation vector)

x=(C(wt−1),C(wt−2),...,C(wt−n+1))

另h为隐藏单元的数量,m是每个单词特征的数量。当单词特征向量与输出之间不直接连接时,W被设置为0。模型的自由参数有:输出偏差b|V|×1,隐藏层偏差dh×1,隐藏层到输出层的权重U|V|×h,单词特征到输出层的权重W|V|×(n−1),隐藏层权重Hh×(n−1),和单词特征C|V|×m:

θ=(b,d,W,U,H,C)

自由参数的个数是|V|(1+nm+h)+h(1+(n−1)m)。注意理论上来说,如果W和H存在权重衰减而C没有,那么W和H可以向零收敛,而C将会爆炸(blow up)。在实践中,当使用随机梯度
16d58
上升来训练时,我们没有观察到这种现象。神经网络中的随机梯度上升执行以下迭代更新:

θ←θ+ϵ∂logP^(wt|wt−1,...,wt−n+1)∂θ

其中ϵ是学习效率。

混合模型:我们通过实验发现将神经网络中的概率预测与插值三元模型相结合可以获得提高的效果。

3 Parallel Implementation

4 Experimental Results

语料1: Brown corpus 布朗语料库

内容: 1,181,041 words(80w用于训练集,20w用于验证集,181,041用于测试集)

单词数量(无重复): 47,578(包括标点符号,区分大小写,包括用于分割文本和段落的语法标记)

将出现次数<3的单词合并成为一个单一的符号,将词汇量减少到16,383。

语料2: the Associated Press (AP) News from 1995 and 1996。

内容: 训练集(13,994,528),验证集(963,138),测试集(963,071)

4.1 N-Gram Model

用于与神经网络比较的第一个基准是基于插值法或者平滑法的trigram模型。令qt=l(freq(wt−1,wt−2))代表作为输入的上下文(wt−1,wt−2)出现的离散频率。条件概率估计:

P^(wt|wt−1,wt−2)=α0(qt)p0+α1(qt)p1(wt)+α2(qt)p2(wt|wt−1)+α3(qt)p3(wt|wt−1,wt−2)

其中,条件权重αi(qt)≥0,∑iαi(qt)=1

4.2 Result

所有的back-off model 都是改进的Kneser-Ney n-grams,这比标准的back-off model做的更好。词特征由随机初始化完成(类似神经网络权重的初始化),但是利用基于知识的初始化可能会获得更好的结果。



上表中是布朗语料库的比较结果。其中——

n: 模型的顺序

c: 基于类的n-grams中类的数量

h: 隐藏单元的个数

m: MLP的单词特征数量,基于类的n-grams的类别数量

direct: 单词特征向量是否与输出直接相连

mix: 神经网络的输出概率是否与三元组的输出相混合(权重分别为0.5)

由结果可看出,神经网络同困惑度(perplexity)值最低的n-grams相比都可以取得明显更好的效果。同时,神经网络可以利用更多的上下文。由MLP3和MLP1、MLP4和MLP2可看出隐藏单元也是有意义的。

根据结果不能看出字特征与输出的直接连接是否有用,但是在更小的预料上,没有直接连接可以获得更好的泛化,代价是更长时间的训练。



上表给出了较大的语料库APNews的结果,perplexity相差较小(8%),
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: