×
工业控制 > 工业自动化 > 详情

从经典NNLM结构到改进方法,神经网络语言模型综述

发布时间:2020-06-04 发布时间:
|

作为自然语言处理(NLP)系统的核心组成部分,语言模型可以提供词表征和单词序列的概率化表示。神经网络语言模型(NNLM)克服了维数的限制,提升了传统语言模型的性能。本文对 NNLM 进行了综述,首先描述了经典的 NNLM 的结构,然后介绍并分析了一些主要的改进方法。研究者总结并对比了 NNLM 的一些语料库和工具包。此外,本文还讨论了 NNLM 的一些研究方向。

 

 

什么是语言模型

语言模型(LM)是很多自然语言处理(NLP)任务的基础。早期的 NLP 系统主要是基于手动编写的规则构建的,既费时又费力,而且并不能涵盖多种语言学现象。直到 20 世纪 80 年代,人们提出了统计语言模型,从而为由 N 个单词构成的序列 s 分配概率,即:

 

 

其中 w_i 代表序列 s 中的第 i 个单词。一个单词序列的概率可以被分解为在给定下一个单词的前项(通常被称为上下文历史或上下文)的条件下,与下一个单词的条件概率的乘积。

 

考虑到很难对上述模型中超多的参数进行学习,有必要采取一种近似方法。N 元(N-gram)模型是一种最为广泛使用的近似方法,并且在 NNLM 出现之前是最先进的模型。一个(k+1)元模型是由 k 阶马尔科夫假设推导出的。该假设说明当前的状态仅仅依赖于前面的 k 个状态,即:

我们用极大似然估计来估计参数。

 

困惑度(PPL)[Jelinek et al., 1977] 是一种用来衡量一个概率模型质量的信息论度量标准,是评价语言模型的一种方法。PPL 越低说明模型越好。给定一个包含 N 个单词的语料库和一个语言模型,该语言模型的 PPL 为:

 

 

值得注意的是,PPL 与语料库相关。可以用 PPL 在同一个语料库上对两个或多个语言模型进行对比。

 

为什么要给 LM 加上神经网络?

然而,N 元语言模型有一个明显的缺点。为了解决这个问题,我们在将神经网络(NN)引入到了连续空间的语言建模中。NN 包括前馈神经网络(FFNN)、循环神经网络(RNN),可以自动学习特征和连续的表征。因此,人们希望将 NN 应用于 LM,甚至其他的 NLP 任务,从而考虑自然语言的离散性、组合性和稀疏性。

 

第一个前馈神经网络语言模型(FFNNLM)由 Bengio 等人于 2003 年提出,它通过学习一个单词的分布式表征(将单词表征为一个被称为「嵌入」的低维向量)来克服维数诅咒。FFNNLM 的性能要优于 N 元语言模型。随后,Mikolov 等人于 2010 年提出了 RNN 语言模型(RNNLM)。从那时起,NNLM 逐渐成为了主流的语言模型,并得到了迅速发展。

 

2012 年,Sundermeyer 等人提出了长短期记忆循环神经网络语言模型(LSTM-RNNLM)用于解决学习长期依赖的问题。为了降低训练、评估以及 PPL 的开销,人们提出了各种各样的改进方案,例如分层的 Softmax、缓存(caching)模型等。最近,为了改进 NNLM,人们引入了注意力机制,取得了显著的性能提升。

 

经典的神经网络语言模型

FFNN 语言模型

Xu 和 Rudnicky 等人于 2000 年试图将神经网络(NN)引入到语言模型(LM)中。尽管他们的模型性能比基线 N 元模型语言模型要好,但是由于没有隐藏层,他们模型的泛化能力较差,无法捕获上下文相关特征。

 

根据公式 1,LM 的目标等价于对条件概率 P(w_k|w_1 · · · w_(k−1)) 进行估计。但是前馈神经网络(FFNN)不能直接处理变长数据(variable-length data),也不能够有效地表征历史上下文。因此,对于像 LM 这样的序列建模任务,FFNN 必须使用定长的输入。受到 N 元语言模型的启发(见公式 2),FFNNLM 将前 n-1 个单词作为了预测下一个单词的上下文。

 

如图 1 所示,Bengio 等人于 2003 年提出了原始 FFNNLM 的架构。这个 FFNNLM 可以写作:

 

 

其中,H、U 和 W 是层与层之间连接的权重矩阵;d 和 b 是隐藏层和输出层的偏置。

 

图 1:Bengio 等人于 2003 年提出的 FFNNLM。

 

FFNNLM 通过为每个单词学习一个分布式表征来实现在连续空间上的建模。单词表征是语言模型的副产品,它往往被用于改进其它的 NLP 任务。基于 FFNNLM,Mikolov 等人于 2013 提出了两种词表征模型:「CBOW」和「Skip-gram」。FFNNLM 通过将单词转换为低维向量克服了维数诅咒。FFNNLM 引领了 NNLM 研究的潮流。

 

然而,FFNNLM 仍然具有一些缺点。在训练前指定的上下文大小是有限的,这与人类可以使用大量的上下文信息进行预测的事实是严重不符的。序列中的单词是时序相关的。而 FFNNLM 没有使用时序信息进行建模。此外,全连接 NN 需要学习许多可训练的参数,即使这些参数的数量比 N 元 少,但是仍然具有很大的计算开销,十分低效。

 

RNN 语言模型

第一个 RNN 语言模型由 [Mikolov et al., 2010; Mikolov et al., 2011a] 提出,如图 2 所示,在第 t 个时间步,RNNLM 可以写作:

 

 

其中 U、W、V 是权值矩阵;b、d 分别是状态层和输出层的偏置。在 Mikolov 2010 年和 2011 年发表的论文中,f 代表 sigmoid 函数,g 代表 Softmax 函数。RNNLM 可以通过基于时间的反向传播算法(BPTT)或截断式 BPTT 算法来训练。根据他们的实验结果,RNNLM 在困惑度(PPL)方面要显著优于 FFNNLM 和 N 元语言模型。

 

图 2:Mikolov 等人于 2010 年和 2011 年提出的 RNNLM。

 

尽管 RNNLM 可以利用素有的上下文进行预测,但是训练模型学习长期依赖仍然是一大挑战。这是因为,在 RNN 的训练过程中,参数的梯度可能会发生梯度消失或者梯度爆炸,导致训练速度变慢或使得参数值无穷大。

 

LSTM-RNN 语言模型

长短期记忆(LSTM)RNN 解决了这个问题。Sundermeyer 等人于 2012 年将 LSTM 引入到了 LM 中,并且提出了 LSTM-RNNLM。除了记忆单元和 NN 的部分,LSTM-RNNLM 的架构几乎与 RNNLM 是一样的。为了控制信息的流动,他们将三种门结构(包括输入门、输出门和遗忘门)加入到了 LSTM 的记忆单元中。LSTM-RNNLM 的常规架构可以写作:

 

 

其中,i_t,f_t,o_t 分别代表输入门、遗忘门和输出门。c_t 是单元的内部记忆状态。s_t 是隐藏状态单元。U_i、U_f、U_o、U、W_i、W_f、W_o、W、V_i、V_f、V_o 以及 V 都是权值矩阵。b_i、b_f、b_o、b 以及 d 是偏置。f 是激活函数,σ 是各个门的激活函数(通常为 sigmoid 函数)。

 

对比上述三种经典的 LM,RNNLM(包括 LSTM-RNNLM)的性能要优于 FFNNLM,而且 LSTM-RNNLM 一直是最先进的 LM。当下的 NNLM 主要都是以 RNN 或 LSTM 为基础的。

 

改进的技术

降低困惑度的方法

为了降低困惑度,人们将一些新的结构和更有效的信息引入到了经典的 NNLM 模型中(尤其是 LSTM-RNNLM)。受到语言学和人类处理自然语言的方式的启发,研究者们提出了一些新的、有效的方法,包括基于字符的(character-aware)模型、因式分解模型、双向模型、缓存模型、注意力机制,等等。

 

基于字符的(Character-Aware)模型

在自然语言中,一些形式相似的词往往具有相同或相似的意思。例如,「superman」中的「man」和「policeman」中的「man」有着相同的含义。Mikolov 等人于 2012 年在字符级别上对 RNNLM 和 FFNNLM 进行了探究。字符级 NNLM 可以被用来解决集外词(OOV)问题,由于字符特征揭示了单词之间的结构相似性,因此对不常见和未知单词的建模有所改进。由于使用了带有字符级输出的小型 Softmax 层,字符级 NNLM 也减少了训练参数。然而,实验结果表明,训练准确率高的字符级 NNLM 是一项具有挑战性的工作,其性能往往不如单次级的 NNLM。这是因为字符级 NNLM 必须考虑更长的历史数据才能正确地预测下一个单词。

 

人们已经提出了许多将字符级和单词级信息相结合的解决方案,它们通常被称为基于字符(character-aware)的语言模型。一种方法是逐个单词组织字符级特征,然后将它们用于单词级语言模型。Kim 等人于 2015 年提出了用于提取单词字符级特征的卷积神经网络以及用于在一个时间步内接收这些字符级特征的 LSTM。Hwang 和 Sung 于 2016 年使用一个分层 RNN 架构解决了字符级 NNLM 的问题,该架构包含具有不同时间规模的多个模块。

 

另一种解决方案是同时将字符级别和单词级别的特征输入给 NNLM。Miyamoto 和 Cho 等人于 2016 年提出使用 BiLSTM 从单词中提取出的字符特征向量对单词的特征向量进行插值,并且将插值向量输入给 LSTM。Verwimp 等人于 2017 年提出了一种「字符-单词」LSTM-RNNLM,它直接将字符和单词级别的特征向量连接起来,然后将连接结果输入给网络。基于字符的 LM 直接使用字符级 LM 作为字符特征提取器,应用于单词级 LM。这样一来,LM 就具有丰富的用于预测的「字符-单词」信息。

 

因式分解模型

NNLM 基于 token 定义了单词的相似度。然而,相似度还可以根据单词的形式特征(词缀、大写字母、连字符,等等)或者其它的注释(如词性标注(POS))导出。受到因式分解 LM 的启发,Alexandrescu 和 Kirchhoff 等人于 2016 年提出了一种因式分解 NNLM,这是一种新型的神经概率 LM,它可以学习从单词和特定的单词特征到连续空间的映射。

 

 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
紫金桥监控组态软件在冶金自动化生产线上的应用