基于RNN和Transformer模型的自然语言处理研究综述

2021-02-14 08:23李华旭
信息记录材料 2021年12期
关键词:门限梯度神经网络

李华旭

(广西民族大学电子信息学院 广西 南宁 530000)

1 引言

人工智能[1](artificial intelligence)起源于20世纪50年代,是计算机科学研究的重点之一。目前,人工智能已经成为计算机科学领域不可或缺的一部分,其在科技领域也受到广泛重视,如机器人控制[2]、智能图像处理、轨道卫星定位等。

深度学习(deep learning)是人工智能的深层次理论。深度学习是通过训练数据参数来达到学习训练样本的内部规律以及样本的表示层次。深度学习的神经网络由输入层、隐藏层和输出层所构成。深度学习与普通的浅层次学习最大的不同就在于其神经网络的层数更深,通过对输入特征进行逐层地变换并向更深层次传播,这样就能够将特征从原空间转换到一个新的特征空间从而使数据分析更加容易,当增加网络层数后,网络可以进行更加复杂的特征模式的提取,所以当模型更深时理论上可以取得更好的结果。

但更深的网络层数并不一定会有更好的性能,当网络深度不断增加时,网络的准确度就会出现饱和,甚至出现下降,即过拟合,为解决这一问题,何凯明提出了著名的深度残差网络[3](deep residual network,ResNet)。由于ResNet对减轻深层网络退化有着重要作用,ResNet这一网络结构对后来的各种网络模型的构建都有着重要的影响。目前深度学习的主要研究方向有数字图像处理(digital image processing)和自然语言处理(natural language processing,NLP)等,后文将对自然语言处理方向的技术进行综述并对NLP相关技术进行说明。

2 自然语言处理

2.1 自然语言处理定义

自然语言处理(NLP)是一门用来分析人类语言以及对相关信息进行处理的人工智能方向技术。通过对NLP的研究,我们能够实现人类和计算机系统之间使用自然语言进行交互,由于NLP本身需要运用语言学、数学以及计算机科学等方面的技术,所以NLP是一门综合性的人工智能技术。NLP并不是简单去研究人所使用的自然语言,而是着重于人和计算机系统的交互,通过分析语义来给出相应的结果。

自然语言处理的工作大致可划分为下面几个步骤:首先,接受人类的自然语言;其次,通过信息提取,将自然语言转换为结构化数据;最后,通过分析数据得出结果并输出。自然语言处理应用广泛,其中包括人机对话交流、语言翻译、情感分析、语音识别、搜索引擎、社交网站推送等。

自然语言处理(NLP)的研究主要是运用计算机科学与语言学这两门学科的有关技术和知识。通常的计算机程序是由相关的算法和其对应数据结构所组成,而自然语言处理则是由语义结构与计算机模型所构成。所以,NLP的主要任务也就和语言学所研究的内容相似,主要就是分析单词、词性、语法、上下文的语义等,而为了实现语言的分析就必须要对神经网络模型和优化算法进行设计。

2.2 循环神经网络

循环神经网络(recurrent neural network,RNN)始于20世纪80年代,于21世纪初发展成为深度学习的重要神经网络结构之一。RNN的输入是一连串的序列型数据,这些序列就像人的语言,是一整句话,甚至是一篇文章。对于人所表达的语句来说,要想理解一句话的意义就必须要结合语句中的上下文,对于理解文章的意思就更是如此,而且也更加的复杂。

通常的神经网络主要由输入层、隐藏层和输出层所构成,其结构见图1。

图1 简单的神经网络

在神经网络训练过程中,给定输入并通过反向传播和优化算法(如梯度下降算法)对模型进行调整,最终输出结果。但这种简单的网络只能简单处理每一个输入的数据,而并没有在输入的数据之间建立起它们相互的关系,即先后输入的数据之间是完全独立的。所以这种网络结构就不能满足对自然语言处理的需求,为了解决这一问题于是就出现了RNN模型。

与普通的神经网络相比,RNN最大的优点便是能将每个单词同它所处的语句中上下文部分都联系起来,这就不仅仅是对独立的单词做处理而是将其所处的语境也一起纳入计算的步骤当中,从而让整个模型更好地去理解自然语言。RNN相比图1中的全连接神经网络,加入了循环核(Cell)来提取特征,结构见图2。

图2 RNN循环核

循环核通过不同时刻对于参数W进行共享,实现了对时间序列的特征提取。在图2a中Xt与Yt分别对应数据的输入和输出特征,Ct用于存储不同时刻的状态信息,U、V、W均为参数矩阵,其中:

注:Bc、By为偏置项,Ct-1表示上一时刻Cell中存储的状态信息。

在神经网络的前向传播过程当中,Cell中存储的状态信息在不同的时刻都会根据上式进行修改,而参数矩阵U、V、W是固定的,并不会随时刻的变化而改变。在反向传播的过程中,参数矩阵U、V、W会依据梯度下降算法产生更新。把循环核按照时间轴方向展开就能得到图2b所示的情形,能更加直观地理解整个训练过程。同样的,在不同时刻Cell中的信息依据公式计算而被刷新,U、V、W保持不变。通过训练对参数矩阵U、V、W进行优化,在训练结束之后选择效果最好的一组U、V、W参数矩阵来执行前向传播,并输出结果,即可得到最终的预测值。

2.3 长短期记忆人工神经网络

传统的RNN可以通过记忆体实现短期记忆,从而达到实现连续数据的预测效果。但是,在数据变得较长的时候,会导致序列展开时间过长。而在反向传播更新参数矩阵的过程中,由于梯度会根据时刻的变化来进行连续相乘,这样就会导致梯度的消失。

为了解决普通循环神经网络中存在的长期依赖问题所导致的梯度消失问题,于是诞生了长短期记忆人工神经网络[4](long short-term memory,LSTM)。LSTM的结构见图3。

图3 LSTM结构图

LSTM引入了门限的概念,分为输入门限(It)、遗忘门限(Ft)和输出(Ot)门限,具体公式如下:

在公式(2)中,Vt为当前的输入特征,Yt-1为上个时刻的输出,Wi、Wf、Wo是每个门限所对应的参数矩阵,Bi、Bf、Bo则是相应的偏置项,这一点与图2a中类似。

这种神经网络最重要的部分便是提出了长期记忆(Ct)与短期记忆(Yt),以及把两者相结合所得出的新记忆(Xt)。Ct、Yt、Xt的计算公式如下:

注:Wx为参数矩阵,Bx为偏置项。

长期记忆(Ct)由上个时刻的长期记忆与新记忆乘以不同的门限,即取不同的比例然后相加所得,而短期记忆(Yt)则是从当前输出的长记忆中经过输出门(Ot)过滤后所剩下的内容,对于新记忆(Xt)则是由之前的短期记忆与当前输入的新特征(Vt)组合而成。

3 Transformer模型

3.1 Attention机制

注意力机制(Attention)最初是产生于对人类视觉相关的研究,模仿人类观察事物时会有选择地去关注事物的一分特征,而忽略事物的其他一些信息。传统的sequence-to-sequence模型自身存在一些缺点,例如,对较长的输入序列进行压缩时会导致其中一些关键信息的丢失,这种模型也没办法在输入和输出序列之间的对齐进行建模,这也会导致输出结果由于受输入序列的某些部分的影响而与期望结果相差许多。

Attention机制就是查询(query)到主键(key)和值(value)对的映射,见图4。在这里首先计算Query和每个Key进行点乘计算(MatMul),然后再使用Softmax函数进行归一化从而来得到Q与K之间的相关性即权重,最后再用所得权重与V进行点乘得到最终值。

图4 Attention结构图

3.2 Multi-head Self-attention机制

如图5所示:对于普通的Attention而言,在寻找Q与K之间的相关性时总是单个地去对应,即Q、K只有一个,而对于较为复杂语音或语言而言,通常不同字句之间有很多种不同的关系,所以这是单个Q、K之间的对应关系就不太能过够完整推导出语句的完整意义,所以就增加了Q、K、V的数量,即Multi-head Self-attention[5]。

图5 Multi-head Self-attention结构图

图5a为多头注意力的结构示意图,图5b为多头注意力中按比缩放的点积注意力部分的内部结构。Transformer使用的多头注意力机制有3个输入:Q、K、V,其中按比缩放的点积注意力所对应的公式如下:

由于当深度(dK)比较大的时候会导致点积结果增大,就会让Softmax函数向梯度较小的方向变化,从而产生梯度的消失,在公式(4)中,通过将点积注意力(QKT)除以深度(dK)的平方根,就解决了这一问题。

对于Multi-head Self-attention而言,它与LSTM的计算方式完全不一样,它在计算的时候总是将全部的信息同时进行点乘,而LSTM则是按顺序一次进行运算,这样做虽然提高了并行计算的效率,但是却缺少了有用的相关位置信息。

3.3 Positional Encoding

由于Transformer模型中的Multi-head Selfattention[6]机制没有包含不同元素之间的位置信息,于是就给输入数据加上了一种位置编码,对应公式如下:

在公式(5)中,pos代表每个词在语句之中的位置,dmodel表示词向量的维度,i为词向量的位置。通过将位置信息除以10002i/dmodel,就能让sin和cos的表示范围从2π扩展到1000π,最后在将其与源数据相加即可得到包含有位置编码的数据。当输入的pos值为50,dmodel为100时,编码效果见图6。

图6 Positional Encoding

3.4 Transfomer小结

与之前的LSTM模型相比,Transformer模型完全采用Self-attention机制代替了LSTM所使用的RNN模型结构,并在自然语言翻译方面取得了更好的效果。Transformer进行并行计算,而不是和RNN那样序列化地计算,提高了计算效率,Transformer能够学习长距离元素之间的关系依赖,并解决了传统RNN在序列过长时产生的梯度消失问题,同时Selfattention机制也能更好地解释模型。但Transformer也有一些缺点,如计算量相对巨大,多头机制中的无效信息有很多等。

4 结语

自然语言处理作为人工智能领域的一个重要方向,相关的技术已经得到了越来越广泛的应用。从全连接神经网络到RNN再到Transformer,然后是基于Transformer框架的BERT[7-8],无疑让自然语言处理的能力更近了一步。虽然Transformer模型计算量巨大,但随着计算机计算能力的提高便能够对更加庞大的数据加以处理。未来的自然语言处理研究仍要围绕算法的优化,运用语言学以及其他学科的技术进行更深层次的语义分析等方面进行。相信,随着越来越多新技术的出现,自然语言处理的研究将取得更高的成就。

猜你喜欢
门限梯度神经网络
基于规则的HEV逻辑门限控制策略
一个改进的WYL型三项共轭梯度法
一种自适应Dai-Liao共轭梯度法
随机失效门限下指数退化轨道模型的分析与应用
神经网络抑制无线通信干扰探究
一个具梯度项的p-Laplace 方程弱解的存在性
基于Neyman-Pearson准则的自适应门限干扰抑制算法*
一类扭积形式的梯度近Ricci孤立子
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用