datasheet

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

2019-07-24来源: eefocus关键字:神经网络  语言模型  NLP

作为自然语言处理(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,它可以学习从单词和特定的单词特征到连续空间的映射。

 

因式分解模型使得

[1] [2]

关键字:神经网络  语言模型  NLP

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/qrs/ic469003.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:曾被判了“死刑”的微软,十年后是如何重回“王者”的?
下一篇:华为发布8名天才少年的年薪方案:最低 89.6 万元

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

英伟达利用深度神经网络 精确探测车辆与其他物体间距离

(图片来源:英伟达官网)据外媒报道,在汽车上路之前,汽车需要具备的第一个基本能力就是判断该车与相邻汽车或是遇到的物体之间的距离。但是,当路上有事情打断时,甚至有电话打过来时,驾驶员的注意力往往会被分散。为了克服该问题,英伟达的研究人员提出了一个利用神经网络的解决方案。英伟达利用深度神经网络,从单个摄像头中提取数据,探测物体距离。可能有人会问为什么英伟达不利用大多数汽车上配备的双摄像头,提高物体距离检测效率,英伟达有充分的理由不这么做,因为虽然双摄像头能够主动判断各种参数,但是,如果其中一个摄像头不同步,就会导致“时间失调”的情况,从而得出不准确的探测结果,在危险情况下可能会导致严重的生命财产损害。英伟达利用基于雷达和激光雷达传感器
发表于 2019-07-19
英伟达利用深度神经网络 精确探测车辆与其他物体间距离

英特尔联合百度,共同开发Nervana神经网络训练处理器

在百度AI开发者大会上,英特尔公司副总裁兼人工智能产品事业部总经理Naveen Rao宣布,英特尔正与百度合作开发英特尔® Nervana™神经网络训练处理器(NNP-T)。这一合作包括全新定制化加速器,以实现极速训练深度学习模型的目的。                                              Naveen Rao表示:“未来几年,AI模型的复杂性以及对大规模深度学习计算
发表于 2019-07-03
英特尔联合百度,共同开发Nervana神经网络训练处理器

TI已集成!CAN FD让汽车神经网络强化升级

CAN FD通信协议是基于原始CAN总线标准(又称为“经典CAN”)而设计的,有助于确保多种车载网络数据传输率和吞吐量在继续演进的同时,汽车微控制器和连接的系统能够以各种速率高效通信。CAN FD协议支持高达5 Mbps的数据传输率和高达64字节的有效负荷,有效提升了设计师的能力,使其能够在其下一代汽车应用中更快速地移动数据。什么是CAN FD?随着电子、半导体、通讯等行业的快速发展,汽车智能化的诉求也越来越强。为了提高汽车的安全性和舒适性,实现汽车的电动化和智能化,以及增强网络连接,汽车制造商将越来越多功能集成到了汽车上,ECU(电子控制单元)大量地增加使总线负载率急剧增大。目前在市场上的商用车中广泛使用的是车载网络CAN
发表于 2019-06-27
TI已集成!CAN FD让汽车神经网络强化升级

特斯拉推“自动驾驶纠错”系统,AI原来还可以做这些

虽然刚刚被《消费者报告》批评最新Navigate on Autopilot的表现不佳,不过有资料显示特斯拉最近申请了一项最新的专利,名称为“处理车辆神经网络处理器错误的系统和方法(System and Method for Handling Errors in a Vehicle Neural Network Processor)”。具体一点来说,特斯拉希望系统在面临输入数据错误时,忽略掉那些错误的信息,消除做出延迟反应的风险,让系统可以像往常一样正常运行。在特斯拉自动驾驶模式运行时,一系列的实时数据会输入接受进系统,之后一方面用作训练系统的神经网络,另一方面则会触发系统对车辆进行下一步反应操作。但如果是这些实时的输入数据发生错误
发表于 2019-05-27
特斯拉推“自动驾驶纠错”系统,AI原来还可以做这些

DeepMind强大:用神经网络来生成音频

大名鼎鼎的AlphaGo想必大家都很熟悉吧,而开发他的公司就是DeepMind,作为Google旗下AI明星公司,DeepMind于18年公开了12项AI专利申请,真是让人叹为观止!DeepMind公布的其中一项专利,就是在某个位置或计算机上实现为计算机程序的系统如何能够生成包括在多个时间步骤中的每一处的相应音频样本的音频数据序列(申请号:PTC/US2017/050320)。正如 DeepMind 著名的 Wavenet 论文所表明,神经网络也可以应用于处理音频。神经网络是机器学习模型,它使用非线性单元层来预测所接收的内容。除了输出层之外,还可能有隐藏层。每个隐藏层输出内容成为下一层的输入,即下一个隐藏层或输出层。网络的每个层
发表于 2019-05-13
DeepMind强大:用神经网络来生成音频

C51编译器-语言扩展(1)-存储器模型和存储类型

Cx51对ANSI标准C进行了扩展。这些扩展的大部分是为了支持8051系统的构架。这些扩展有: 8051上的存储器类型和区域 l         存储器模型 l         存储器类型指示 l         变量类型指示 l         位变量和可位寻址数据 l   
发表于 2016-11-14

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved