从此走进深度人生 Deep net, deep life.

Yoshua Bengio 等:一种神经概率语言模型

A Neural Probabilistic Language Model

1 引言

语言建模及其他学习问题面临的根本性难题是维度灾难。当需要建模多个离散随机变量(如句子中的单词或数据挖掘任务中的离散属性)的联合分布时,这一问题尤为明显。例如,若要用 10 万个单词的词汇表 V 建模自然语言中 10 个连续单词的联合分布,潜在参数数量高达 100000^10-1 个。对于连续变量建模,我们更容易获得泛化能力(例如通过多层神经网络或高斯混合模型等平滑函数类),因为待学习函数通常具有局部平滑特性。而在离散空间中,泛化结构并不明显:这些离散变量的任何变化都可能对目标函数值产生剧烈影响,当每个离散变量可能取值的数量较大时,大多数观测对象在汉明距离上几乎处于彼此最远的状态。

受非参数密度估计视角启发,一种直观理解不同学习算法如何泛化的有效方法是:设想最初集中于训练点(如训练语句)上的概率质量如何扩散到更大范围,通常以某种形式的训练点邻域分布在高维空间中,关键在于将概率质量精准分配至关键区域,而非均匀分散在每个训练点周围所有方向。本文将证明,当前提出的方法其泛化机制与以往最先进统计语言建模方法的泛化方式存在本质差异

语言统计模型可通过给定所有前序词汇条件下预测下一个词的条件概率来表示,因为

其中wt表示第t个单词,记子序列wji=(wi,wi+1,…,wj-1,wj)。这类统计语言模型已被证实对许多涉及自然语言的技术应用具有重要价值,例如语音识别、机器翻译和信息检索。因此,统计语言模型的改进可能对这些应用产生重大影响。

在构建自然语言的统计模型时,研究者通过利用词序规律以及时序相邻词语间存在更强统计依赖性的特点,大幅降低了建模难度。因此,n-gram语法模型会为大量上下文(即前 n-1 个单词的组合)构建下一单词的条件概率表:

我们仅考虑那些在训练语料库中实际出现或出现频率足够高的连续词组合。当出现一个训练语料库中未曾见过的 n 词新组合时会发生什么?我们不应给这种情况分配零概率,因为这类新组合很可能出现,且上下文窗口越大时出现频率会更高。一个简单的解决方案是参考更小上下文窗口预测的概率,如回退三元模型(Katz, 1987)或平滑(插值)三元模型(Jelinek and Mercer, 1980)所做的那样。那么在这类模型中,如何实现从训练语料库中观察到的词序列到新词序列的基本泛化?理解这一机制的方式是设想一个与这些插值或回退 n 元模型对应的生成模型。本质上,新词序列是通过”粘合”训练数据中高频出现的、长度为 1、2…至 n 的极短重叠片段而生成的。 获取下一个词块概率的规则隐含在回退或插值 n-gram 算法的具体实现中。研究者通常采用 n=3(即三元模型)并获得了最先进的成果,但 Goodman(2001 年)的研究表明,结合多种技巧可带来显著提升。显然,待预测词之前的序列信息远不止前几个词的身份标识。这种方法至少存在两个亟待改进的特征,而我们将在本文中重点探讨这些获得最先进成果的改进方向。首先,现有方法未能考虑超过 1-2 个词之外的上下文;其次,它忽略了词语之间的”相似性”。例如,当训练语料中出现过”猫在卧室里行走”这样的句子时,应当能帮助我们泛化推断出”狗在房间里奔跑”也具有相近的概率,这仅仅因为”狗”与”猫”(以及”the”与”a”、”room”与”bedroom”等)具有相似的语义和语法角色。

针对这两个问题,学界已提出多种解决方案。我们将在 1.2 节简要说明本文方法与早期某些方法的关系。首先阐述本方法的核心思想,随后在第 2 节通过基于共享参数多层神经网络的实现方案进行形式化表述。本文的另一贡献在于解决了海量参数神经网络(百万级参数)在超大规模数据集(千万级样本)上的训练难题。最后,本文的重要贡献在于证明:虽然训练这种大规模模型成本高昂但切实可行,能够扩展至大语境场景,并取得优异的对比实验结果(第 4 节)

本文多数运算采用矩阵表示法:小写v表示列向量及其v’表示转置,Aj表示矩阵A的第j行,x.y表示x’y。

1.1 用分布式特征对抗维度灾难

本方法的核心思想可简要概括为:

  • 1. 为词汇表中的每个单词分配一个分布式词特征向量(即Rm空间中的实值向量),
  • 2. 根据序列中这些单词的特征向量来表达单词序列的联合概率函数,以及
  • 3. 同时学习词特征向量和该概率函数的参数。

特征向量表征了单词的不同方面:每个单词都与向量空间中的一个点相关联特征数量(例如实验中 m=30、60 或 100)远小于词汇表规模(例如 17,000)。该概率函数表示为给定前序单词条件下后续单词条件概率的乘积(例如实验中采用多层神经网络根据前序单词预测后续单词)。该函数具有可迭代调整的参数,旨在最大化训练数据的对数似然或正则化标准(例如通过添加权重衰减惩罚项)。与每个单词相关联的特征向量是通过学习获得的,但也可以基于语义特征的先验知识进行初始化

为什么这种方法有效?在前面的例子中,如果我们知道”dog”和”cat”扮演着相似的角色(在语义和句法上),同理(“the”,”a”)、(“bedroom”,”room”)、(“is”,”was”)也是如此,我们很自然能从中进行泛化(即转移概率质量):

“The cat is walking in the bedroom” to “A dog was running in a room”

同样的 “The cat is running in a room”、“A dog is walking in a bedroom”、“The dog was walking in the room”…

以及其他许多组合形式。在提出的模型中,这种泛化能力得以实现,因为“相似”词语预期会具有相似的特征向量且由于概率函数是这些特征值的平滑函数,特征的微小变化将引起概率的微小改变。因此,训练数据中只要出现上述任一语句,不仅会提升该语句本身的概率,还会提升其在句子空间(表现为特征向量序列)中组合数量的”邻近”语句概率

1.2 与之相关研究内容

利用神经网络建模高维离散分布的思想已被证明能有效学习 Z· · · Z 的联合概率,这是一组可能具有不同性质的随机变量(Bengio 和 Bengio,2000a,b)。该模型将联合概率分解为条件概率的乘积

其中 g(.)是由具有特殊从左到右结构的神经网络表示的函数,第 i 个输出块 g()计算用于表达 Z 在给定先前 Z 值条件下的分布参数(可按任意顺序)。在四个 UCI 数据集上的实验表明该方法表现相当出色(Bengio and Bengio, 2000a,b)。由于本文需处理可变长度数据(如句子),故需调整上述方法。另一重要区别在于:此处所有 Z(第 i 个位置的单词)均指向同类对象(单词)。因此本文提出的模型引入了跨时间参数共享机制——同一 g 函数在不同时间步复用,以及跨不同位置输入单词的共享。这是对联结主义早期理念(Hinton, 1986; Elman, 1990)——为符号数据学习分布式表示——的大规模成功应用,近期 Hinton 的方法经改进后,在学习多种符号关系方面取得了显著成效(Paccanaro and Hinton, 2000)。 使用神经网络进行语言建模的想法也并非首创(例如 Miikkulainen 和 Dyer,1991 年)。与之不同的是,我们将这一构想推向了大规模应用,并专注于学习词序列分布的统计模型,而非探究词语在句子中的角色。本文提出的方法还与先前基于字符的文本压缩方案相关——那些方案使用神经网络预测下一个字符的概率(Schmidhuber,1996 年)。Xu 和 Rudnicky(2000 年)也曾独立提出过用神经网络进行语言建模的设想,不过他们的实验网络既无隐藏单元又仅接受单个输入词,本质上只能捕获一元和二元统计量。

通过发现词语间相似性来实现从训练序列到新序列的泛化,这一思路早有先例。例如基于词语聚类学习的方法就运用了这一理念(Brown 等人,1992 年;Pereira 等人,1993 年;Niesler 等人,1998 年;Baker与 McCallum,1998):每个单词都以确定性或概率性与一个离散类别相关联,同一类别中的单词在某种程度上具有相似性。本文提出的模型中,我们不再使用离散随机变量或确定性变量(对应单词集合的软划分或硬划分)来表征相似性,而是为每个单词分配一个连续实值向量,即通过学习获得的分布式特征向量,以此表示单词间的相似性。本实验对比部分包含了基于类别的 n-gram语法模型(Brown 等人,1992;Ney 和 Kneser,1993;Niesler 等人,1998)的测试结果。

在信息检索领域,利用向量空间表示词语的概念已被充分探索(例如参见 Schutze 1993 年的研究),其中基于词语在同一文档中共现概率(潜在语义索引,参见 Deerwester 等人 1990 年研究)学习词语的特征向量。一个重要区别在于,我们在此寻求的词语表示方式需有助于紧凑地呈现自然语言文本中词序列的概率分布。实验表明,联合学习表示(词语特征)与模型非常有效。我们尝试(未成功)将每个词 w 与上下文共现频率的第一主成分作为固定词特征,这类似于信息检索中 LSI 对文档的处理方式。然而 Bellegarda(1997)在基于 n-gram文法的统计语言模型背景下成功应用了词语连续表示的思想,通过 LSI 动态识别语篇主题。

在神经网络背景下,符号的向量空间表示思想先前也被表述为参数共享层的形式,例如用于二级结构预测(Riis 和 Krogh,1996 年)以及文本到语音映射(Jensen 和 Riis,2000 年)。

2 神经网络模型

训练集是由词汇表V中的单词w构成的序列w1……wt,其中词汇表V是一个庞大但有限的集合。目标是通过学习得到一个优质模型  f(wt,…,wt-n+1)=^p(wt|wt-11),从样本外高似然度的角度来看,该模型表现优异。在实验中,我们将报告1/^p(wt|wt-11)  的几何平均数(即困惑度),该数值同时也是平均负对数似然的指数函数。模型唯一的约束条件是:对于任意 wt-11 ,必须满足    ∑|V|i=1f(i,wt,…,wt-n+1)=1 且 f>0 。通过这些条件概率的乘积运算,最终可以得到词序列联合概率的建模结果。

我们将函数 f(wt,…,wt-n+1)=^p(wt|wt-11)  分解为两部分:

  • 1. 一个从词汇表 V 中任意元素 i 到实数向量 C(i)∈Rm 的映射 C 。它表示与词汇表中每个单词相关联的分布式特征向量。实际应用中, C 由一个 |V|×m 的自由参数矩阵表示。
  • 2. 基于 C 定义的概率函数:函数 g 将上下文单词的特征向量序列  作为输入,映射到下一个单词  在词汇表  上的条件概率分布。如图 1 所示,g  的输出是一个向量,其第 i 个元素估计概率  。

函数  是这两个映射(  和  )的组合,其中  在上下文的所有单词间共享。这两个部分各自关联着一些参数。

图 1:神经网络架构, g 是神经网络, C(i) 是第 i 个词的特征向量

映射 C 的参数就是特征向量本身,用一个  |V|×m  的矩阵  表示,其第 i 行是词 i 的特征向量 C(i) 。函数 g 可以通过前馈神经网络、循环神经网络或其他参数化函数实现,参数为 ω 。整体参数集为 θ=(C,ω) 。

通过寻找使训练语料库惩罚对数似然最大化的θ来实现训练:

其中 R(θ) 是正则化项。例如在我们的实验中,R  是仅应用于神经网络权重和 C 矩阵的权重衰减惩罚项,不作用于偏置项。

在上述模型中,自由参数的数量仅与词汇表单词数 V 呈线性比例关系。同时其与阶数 n 也只呈线性比例:若引入更多共享结构(如使用时延神经网络或循环神经网络,或二者组合),该比例因子可降至次线性。

在以下多数实验中,神经网络除词特征映射外还包含一个隐藏层,并可选择性地包含从词特征到输出的直接连接。因此实际存在两个隐藏层:无非线性变换的共享词特征层 C(因其不会带来有用增益),以及普通的双曲正切隐藏层。更准确地说,该神经网络通过保证概率为正且求和为 1 的 softmax 输出层计算如下函数:

 yi是每个输出词 i 的非归一化对数概率,计算方式如下,参数包括b 、W、U、d 和 H :

其中双曲正切函数 tan h 逐元素作用,W  可设为零(表示无直接连接), x 是词特征层的激活向量,由矩阵 C 中的输入词特征拼接而成:

设 h 为隐藏单元数量,m  为每个单词关联的特征数量。当不需要单词特征直接连接输出时,矩阵 W 设为 0。该模型的自由参数包括:输出偏置  b(含 h 个元素)、隐藏层偏置  b(含 |V| 个元素)、隐藏层到输出的权重  U(|V|×h矩阵)、单词特征到输出的权重  W(a|V|×(n-1)m 矩阵)、隐藏层权重  (  矩阵)以及单词特征  C(a|V|×m矩阵):

自由参数总量为 |V|(1+nm+h)+h(1+(n-1)m) ,主导因子为  |V|(nm+h) 。理论上,若对权重 W 和 H 进行权重衰减而不对 C 衰减,可能导致 W 和 H 趋近于零而 C 无限增大。但在实际采用随机梯度上升训练时,我们并未观察到这种现象。

神经网络的随机梯度上升法表现为:在呈现训练语料库第 t 个单词后执行以下迭代更新:

其中 ε 为”学习率”。需要注意的是,大部分参数在每处理完一个样本后无需更新或访问:即所有未出现在输入窗口中的单词 j 所对应的词特征 C(j) 

模型混合。在我们的实验中(见第 4 节),我们发现将神经网络的概率预测与插值三元组模型的概率预测相结合能提升性能,可以采用简单的固定权重 0.5、学习权重(在验证集上通过最大似然估计获得)或一组根据上下文频率调整的条件权重(采用与插值三元组中结合三元组、二元组和一元组相同的混合程序)。

3 并行实现

尽管参数数量具有良好的扩展性——即与输入窗口大小呈线性关系,与词汇表规模也呈线性关系——但获取输出概率所需的计算量远大于 n-gram 模型。主要原因是:在n-gram模型中,由于相对频率的线性组合具有便捷的归一化特性(在模型训练时已完成),获取特定 P(wt|wt-1,…,wt-n+1)  时无需计算词汇表中所有单词的概率,而神经网络实现的主要计算瓶颈在于输出层激活值的计算

并行计算机上运行模型(包括训练和测试)是减少计算时间的有效方法。我们已在两种平台上探索了并行化方案:共享内存处理器机器和配备高速网络的 Linux 集群

3.1 数据并行处理

在共享内存处理器的情况下,由于处理器之间通过共享内存实现的极低通信开销,并行化可以轻松实现。为此我们选择了数据并行实现方案,其中每个处理器处理数据的不同子集。各处理器计算其分配样本的梯度,并对存储在共享内存区域的模型参数执行随机梯度更新。我们的初始实现效率极低,依赖于同步指令来确保不同处理器不会同时对上述参数子集进行写入操作。每个处理器的大部分周期都耗费在等待其他处理器释放参数写入访问锁上。

我们选择了一种异步实现方式,其中每个处理器可以随时在共享内存区域进行写入。有时,某个处理器对参数向量的部分更新会被另一个处理器的更新覆盖而丢失,这会在参数更新中引入一些噪声。然而,这种噪声似乎非常小,并且显然没有减慢训练速度。

遗憾的是,大型共享内存并行计算机非常昂贵,且其处理器速度往往落后于可连接成集群的主流 CPU。因此,我们能够在快速网络集群上实现更快的训练。

3.2 参数并行处理

若并行计算机由多个 CPU 构成网络架构,由于参数交换量庞大(最大规模网络下参数规模接近 100MB),频繁在处理器间传输全部参数将超出本地网络带宽的承受能力。为此我们采用参数并行化策略,重点针对输出单元参数进行划分——这正是我们架构中计算最密集的环节。每个 CPU 负责计算部分输出单元的非归一化概率,并更新对应输出单元的权重参数。该方案实现了通信开销极低的高效并行随机梯度上升,各 CPU 仅需交换两类关键数据:(1)输出层 softmax 的归一化因子;(2)隐藏层(下文记作 a )与词特征层(下文记作 x )的梯度信息。 所有 CPU 都会重复计算输出单元激活前的运算,包括词特征选择、隐藏层激活  的计算,以及相应的反向传播和参数更新步骤。不过对于我们的网络架构而言,这些计算量仅占总计算量的极小部分。

以美联社(AP)新闻数据实验采用的架构为例:词汇表大小 |V|=17964 ,隐藏单元数 h=60 ,模型阶数 n=6 ,词特征维度 m=100 。处理单个训练样本所需的总运算量约为  |V|(1+nm+h)+h(1+nm)+nm(其中各项分别对应输出单元、隐藏单元和词模型阶数 n=6 的特征单元计算)。在此例中,输出单元加权求和计算量约占整体计算量的比例约为99.7%。这个计算是近似值,因为不同操作实际消耗的 CPU 时间存在差异,但它表明并行化输出单元的计算通常具有优势。对于本文追求的并行化程度(即几十个处理器)而言,所有 CPU 重复执行极小部分计算并不会显著影响总计算时间。如果隐藏单元数量庞大,并行化其计算也将变得有利可图,但我们在实验中未对该方法进行深入研究。

该策略的实施是在一个由 1.2 GHz 主频 Athlon 处理器(32 台×2 CPU)组成的集群上完成的,这些处理器通过 Myrinet 网络(一种低延迟千兆位局域网)连接,并使用 MPI(消息传递接口)库(Dongarra 等人,1995 年)进行并行化处理。以下简要描述针对单个样本 (wt-n+1,…,wt) 的并行算法,该算法由集群中 M 个处理器中的第 i 个 CPU 并行执行。CPUi (i  的范围从 0 到M-1  )负责从编号 starti=i×[|V|/M]开始的输出单元块,该块的长度为 min([|V|/M,|V|]- starti) 。

4 实验结果

我们在布朗语料库上进行了对比实验,该语料库包含 1,181,041 个单词的文本流,涵盖各类英文文本和书籍。前 800,000 个单词用于训练,随后的 200,000 个单词用于验证(模型选择、权重衰减和早停策略),剩余的 181,041 个单词用于测试。语料库包含 47,578 个不同单词(含标点符号、区分大小写,以及用于分隔文本段落的语法标记)。将出现频率 ≤3 的低频词合并为单一符号后,词汇量缩减至 |V|=16383 

另在 1995-1996 年美联社(AP)新闻文本上进行了实验。训练集是一个约 1400 万(13,994,528)词的连续语料流,验证集约为 100 万(963,138)词,测试集同样约为 100 万(963,071)词。原始数据包含 148,721 个不同词汇(含标点符号),通过仅保留高频词(及标点)、将大写字母转为小写、数字形式映射为特殊符号、罕见词映射为特定符号以及专有名词映射为另一特殊符号,最终将词表规模缩减至  |V|=17964  。

在神经网络训练过程中,初始学习率设为  ε0=10-3(经过小规模数据集多次试验后确定),并按照以下方案逐步衰减: εt0/(1+rt) ,其中 t 表示已完成的参数更新次数, r 为启发式选择的衰减因子,根据启发式方法设定为 r=10-8 

4.1  N-gram模型

神经网络的首个对比基准是插值或平滑三元语言模型(Jelinek 与 Mercer,1980)。设 qt=l(freq(wt-1,wt-2)) 表示输入上下文 (wt-1,wt-2) 的离散化出现频率,则条件概率估计采用条件混合形式:

其中条件权重满足 ai(qt)≥0 且 Σai(qt)=1 。基础预测器分别为:p0=1/|V|  (词汇表大小的倒数), p1(i) 是一元模型(训练集中词 i 的相对频率),p2(i|j)  是二元模型(前一个词为 j 时词 i 的相对频率),p3(i|j, k)  是三元模型(前两个词为 j 和 k 时词 i 的相对频率)。其原理在于:当 (wt-1,wt-2) 出现频率较高时,三元模型最可靠;而当频率较低时,低阶统计量的二元模型、一元模型甚至零元模型会更可靠。针对 qt 中的每个离散值(即上下文频率区间),分别设有不同的混合权重 α 集合。这些权重可以通过 EM 算法在大约 5 次迭代内轻松估计得出,且在一组未用于一元、二元和三元相对频率的数据集(即验证集)上完成。由于多层感知器似乎以截然不同的方式产生”误差”,因此采用插值 n-gram 模型与之形成混合模型

我们还与其他最先进的 n-gram 模型进行了比较:采用 ModifiedKneser-Ney 算法的回退 n-gram  模型(Kneser 和 Ney,1995;Chen 和 Goodman,1999),以及  class-based 的 n-gram  模型(Brown 等人,1992;Ney 和 Kneser,1993;Niesler 等人,1998)。验证集用于选择 n-gram 的阶数以及   class-based 模型的词类数量。我们使用了 SRI 语言建模工具包中这些算法的实现,该工具包由 Stolcke(2002)提供,并可在 http://www.speech.sri.com/projects/srilm/获取。这些算法用于计算下文报告的回退模型困惑度,需注意的是,在计算对数似然时,我们并未给予句子结束标记特殊地位,这与我们神经网络困惑度的处理方式一致。所有标记(单词和标点符号)在对数似然平均化(从而获得困惑度)时均被同等对待。

4.2 结果

以下是不同模型在测试集上的困惑度衡量指标(  1/^p(wt|wt-11)的几何平均值)。在布朗语料库上,随机梯度上升过程约经过 10 到 20 轮迭代后显现出收敛迹象对于美联社新闻语料库,我们未观察到过拟合现象(基于验证集),这可能是因为仅运行了 5 轮迭代(使用 40 个 CPU 耗时超过 3 周)。验证集采用早停策略,但仅在布朗语料实验中启用。布朗实验中采用  的权重衰减惩罚系数,美联社新闻实验则使用 10-5 的权重衰减(通过少量试验基于验证集困惑度选定)。表 1 汇总了布朗语料库上的实验结果,表中所有回退模型均为 ModifiedKneser-Ney 算法的 n-gram ,其表现显著优于标准回退模型。当表格中回退模型标注  值时,表示采用 class-based 的 n-gram (m 为词类别数量)。词特征值采用随机初始化(类似于神经网络权重的初始化方式),但我们推测基于知识的初始化可能获得更好效果

表 1:布朗语料库上的对比结果。删除插值三元组的测试困惑度比具有最低验证困惑度的神经网络高出 33%。最佳 n-gram 模型(基于500个词类的 class-based 模型)的差异为 24%。  n:模型阶数。 c :class-based的n-gram的词类数量。 h:隐藏单元数量。 m :MLP 的词特征数量/class-based的n-gram的类别数量。direct  :是否存在从词特征到输出的直接连接。mix :神经网络输出概率是否与三元模型输出混合(各占 0.5 权重)。最后三列分别给出训练集、验证集和测试集的困惑度

主要结果表明,与表现最佳的 n-gram 模型相比,使用神经网络能显著提升效果——在布朗语料库上测试困惑度降低约 24%,在美联社新闻语料库上降低约 8%(比较对象均为验证集表现最优的  模型)。数据还显示神经网络能有效利用更长上下文(在布朗语料库中,上下文窗口从 2 词扩展到 4 词时神经网络持续改进,而  模型无此效果)。实验同时证实隐层单元具有实际价值(对比 MLP3 与 MLP1、MLP4 与 MLP2),且将神经网络输出概率与插值三元语法混合总能降低困惑度。简单平均法表明,神经网络与三元模型会在不同位置产生预测误差(即对实际出现词语赋予过低概率)。 实验结果无法确定输入到输出的直接连接是否有用,但表明至少在较小语料库上,不采用直接输入输出连接能获得更好的泛化性能代价是训练时间更长,没有直接连接的模型收敛耗时翻倍(20 个周期而非 10 个周期),尽管困惑度略低。合理的解释是,直接输入输出连接提供了稍强的容量,并更快的从单词特征到对数概率映射的“线性”部分的学习。另一方面,若没有这些连接,隐藏单元会形成严格的瓶颈,这可能迫使模型获得更好的泛化能力。

表 2 展示了在更大语料库(美联社新闻)上的结果,尽管困惑度差异较小(8%),仅进行了 5 轮训练(约三周时间使用 40 个 CPU)。在此情况下,class-based  模型并未提升 n-gram 模型性能,但高阶 modifiedKneser-Ney 回退模型在 n-gram 模型中表现最佳。

5 扩展和未来工作

在本节中,我们将描述对上述模型的扩展以及未来工作的方向。

表 2:美联社新闻语料库的对比结果。各列标签含义请参阅前表。

5.1 能量最小化网络

上述神经网络的一个变体可被解释为遵循Hinton’s近期关于专家乘积(Hinton, 2000)研究的能量最小化模型。在前文描述的神经网络中,分布式词特征仅用于”输入”词而不用于”输出”词(下一个词)。此外,输出层扩展了极大量参数(占大多数),且未利用输出词之间的语义或句法相似性。此处描述的变体中,输出词同样由其特征向量表示。该网络接收单词子序列(映射为其特征向量)作为输入,并输出能量函数 E ——当单词构成可能子序列时 值较低,不可能时值较高。例如,该网络输出的”energy”函数为:

其中 b 是偏置向量(对应无条件概率), d 是隐藏单元偏置向量,v  是输出权重向量,H  是隐藏层权重矩阵。与先前模型不同,此处输入词和输出词共同构成 x :

能量函数 E(wt-n+1,…,wt) 可解释为 (wt-n+1,…,wt)  联合出现的非归一化对数概率。要获得条件概率  ,只需^P(wt|wt-1t-n+1)(尽管计算代价较高)对 w 的可能值进行归一化处理,具体如下:

需要注意的是,总计算量与之前提出的架构相当,且若参数  通过目标词(  )的标识进行索引,参数量也能保持一致。需注意在上述 softmax 归一化后仅保留  bwt(任何关于i>0  时 wt-1 的线性函数都会被  softmax 归一化消除)。与之前相同,模型参数可通过随机梯度上升法在 log ^P(wt|wt-1,…,wt-n+1上进行调优,计算过程类似

在专家乘积框架中,隐藏单元可视为专家:子序列 (wt-n+1,…,wt) 的联合概率正比于与每个隐藏单元 j 相关联的项 vjtanh(dj+Hjx) 的指数和。值得注意的是,由于我们选择将整个序列的概率分解为每个元素的条件概率,梯度的计算是可行的。例如,在乘积隐马尔可夫模型(Brown and Hinton, 2000)中就不具备这一特性——该模型对处理整个序列的专家进行乘积运算,并可通过对比散度算法(Brown and Hinton, 2000)等近似梯度算法进行训练。值得注意的是,该架构与专家乘积公式可视为最大熵模型(Berger et al., 1996)的扩展形式,但不同之处在于:其基函数(或称”特征”,此处指隐单元激活状态)是通过惩罚最大似然法与凸组合参数同步学习的,而非采用贪婪特征子集选择方法在外层循环中学习。

我们已实现并实验了上述架构,同时基于重要性采样开发了神经网络训练的加速技术,该技术可带来 20 倍的训练速度提升(Bengio and Senécal, 2003)。

未登录词处理。该架构相较于前一架构的优势在于,它能轻松处理未登录词(甚至能为它们分配概率值!)。其核心思想是:首先通过加权凸组合的方式,为这类词汇推测初始特征向量——即对可能出现在相同上下文中的其他词汇特征向量进行加权求和,权重与其条件概率成正比。假设网络在上下文 wt-1t-n+1 中为词汇表 V 中的词 i 分配了概率 ^P(wt|wt-1t-n+1) ,而在此上下文中我们观测到新词 j∉V 。我们按以下方式初始化 j 的特征向量 C(j) :←C(j) )Σi∈VC(j)^P(wt|wt-1t-n+1)   。随后可将 j 纳入词汇表 V ,并为这个略微扩大的集合重新计算概率(仅需对所有词进行归一化处理,唯独词 i 需要通过神经网络重新计算)。当预测后续词汇概率时,这个特征向量 C(j) 便可作为输入上下文部分的特征使用。

5.2 其他未来工作

这项工作的后续仍面临诸多挑战。短期内需要设计和评估加速训练与识别的方法。长期来看,除本文采用的两种主要方式外,还应引入更多泛化途径。以下是我们计划探索的方向:

  • 1.将网络分解为子网络,例如通过对词汇进行聚类实现。训练多个小型网络将更简单高效
  • 2.采用树形结构表示条件概率,每个节点应用神经网络计算词类在上下文中的概率,叶节点计算具体词汇在上下文中的概率。此类表征有望将计算复杂度从 |V| 降至 |V|/log|V| 量级(参见 Bengio,2002 年研究)。
  • 3.仅从输出词的一个子集传播梯度。这个子集可以是基于更快速模型(如三元模型)条件概率最高的词汇(Schwenk 和 Gauvain 在 2002 年应用了这一理念),也可以是三元模型表现较差的词汇子集。若语言模型与语音识别器结合,则只需计算声学模糊词汇的分数(未归一化概率)。
  • 4.引入先验知识。可以引入多种形式的先验知识,例如:语义信息(来自 WordNet 等资源,参见 Fellbaum 1998 年的研究)、底层语法特征信息(例如使用词性标注)以及高级语法信息(例如将模型与随机语法耦合)。长距离上下文的影响可以通过在神经网络中引入更多结构和参数共享来捕捉,例如使用时延神经网络或循环神经网络。在这种多层网络中,针对连续小词组的计算无需在输入窗口移动时重复执行。类似地,可以使用循环网络来捕捉更长距离的文本主题信息。
  • 5.解释(并可能利用)神经网络学习到的词特征表示。简单的第一步可从 m=2 的特征开始,这样更易于可视化。我们认为更有意义的表示需要大规模训练语料,特别是对于较大的 m 值。
  • 6.多义词可能无法很好地适应当前模型,因为该模型为每个词在连续语义空间中分配单一位置点。我们正在研究该模型的扩展版本,其中每个词将关联空间中的多个位置点,每个点对应该词的不同语义。

6 结论

在两个语料库(一个包含超过百万例句,另一个包含超过 1500 万词)上的实验表明,所提出的方法比最先进的平滑三元语言模型获得了更优的困惑度,困惑度差异达到 10%至 20%。

我们认为这些改进主要源于:该方法能够利用学习到的分布式表征,以其人之道还治其人之身地对抗维度灾难——每个训练句子都能为模型提供关于组合数量级其他句子的信息

在模型改进方面,可能还需要从架构、计算效率以及利用先验知识等层面开展大量工作。未来研究的重要方向应包括优化加速技术,以及探索在不显著增加训练时间的前提下提升模型容量的方法(以应对包含数亿甚至更多词汇的语料库)。一个利用时间结构并扩展输入窗口以涵盖整段内容(同时避免参数数量或计算时间大幅增加)的简单思路是采用时延神经网络或循环神经网络。此外,在应用场景中对本文所述模型类型进行评估也将大有裨益,不过可参考 Schwenk 与 Gauvain(2002)已开展的关于降低语音识别词错误率的研究成果。

更广泛地说,本文提出的内容为统计语言模型的改进开辟了新途径——通过用基于分布式表示的更紧凑、更平滑的表征来替代”条件概率表”,这种表征能够容纳更多条件变量。传统统计语言模型(如随机语法)为避免过拟合,往往需要耗费大量精力来限制或汇总条件变量;而本文描述的这类模型将难点转移至其他方面:虽然需要更多计算量,但计算和内存需求仅随条件变量数量呈线性增长,而非指数级增长