基于GRU—Attention的中文文本分类
2019-09-10孙明敏
摘 要:传统的GRU分类模型是一种基于LSTM的模型变体,它在LSTM的基础上将遗忘门和输入门合并成更新门,使得最终的模型比标准的LSTM模型更简单。可是LSTM和GRU均没有体现每个隐层输出的重要程度。为了得到每个输出的重要程度,本文在GRU的基础上加入了注意力(Attention)机制,设计了GRU-Attention分类模型,并通过对比实验的方式说明了增加了Attention的GRU模型在分类效果上有了一定程度的提升。
关键词:自然语言处理;文本分类;GRU;注意力机制
中图分类号:TP183;TP391.1 文献标识码:A 文章编号:2096-4706(2019)03-0010-03
Chinese Text Classification Based on GRU-Attention
SUN Mingmin
(Yangzhou University,Yangzhou 225000,China)
Abstract:The traditional GRU classification model is a model variant based on LSTM. It combines forgetting gate and input gate into update gate on the basis of LSTM,which makes the final model simpler than the standard LSTM model. However,LSTM and GRU do not reflect the importance of each hidden layer output. In order to get the importance of each output,Attention mechanism is added to GRU,and GRU-Attention classification model is designed,and the comparison experiment shows that the GRU model with Attention improves the classification effect to a certain extent.
Keyword:natural language processing;text classification;GRU;Attention mechanism
0 引 言
隨着互联网行业的蓬勃发展,大数据时代已然来临。每天互联网中产生大批量的新闻文本数据,给这些文本数据进行系统的分类变成了一项重要且极具挑战的任务[1]。文本分类[2]是自然语言处理的重要应用,也是最基础的应用。因此,在大批量的新闻文本数据中,如何精准地进行文本分类成为一项极具价值的研究课题。
最初的文本分类基于规则,其分类规则需要人为定义,再按照定义的分类规则去构建分类器,该方法的弊端是需要耗费大量的时间和精力。在今天,一个人工智能技术[3]、自然语言处理技术[4]已经取得重大成果的新时代,文本分类也翻开了机器学习的新篇章。目前,文本分类又朝着深度学习方向在更新迭代。区别于传统机器学习方法,深度学习最大的优势就是避免了繁琐的特征提取过程,经过预处理的文本可以使用词向量的方法表示,然后使用深度学习方法进行特征提取,最后再进行分类。本文主要从深度学习的角度分析中文文本分类。
1 相关研究工作
在文本表征方面,通常首先将文本数学化,因为计算机只认识数字。词向量就是用来将文本中的词进行数学化的一种方式,顾名思义,词向量就是把一个词表示成一个向量。一种最简单的词向量方式是One-Hot Representation,就是用一个很长的向量来表示一个词,向量的长度为词典的大小,向量的分量只有一个1,其他全为0,1的位置对应该词在词典中的位置。但这种表示方法有两个缺点:(1)容易受维数灾难的困扰;(2)不能很好地刻画词与词之间的相似性。为了克服这些缺点,Hinton于1986年提出Distributed Representation这种表示,其基本想法是直接用一个普通的向量表示一个词,这种词向量需要经过训练,其典型的训练方法是Word2Vec。Word2Vec就是将文本中的词表征为实数值向量的算法模型,使用的词向量是Distributed Representation的词向量表示方式。Word2Vec一般分为CBOW(Continuous Bag-of-Words)与Skip-Gram两种模型。CBOW模型的训练输入是某一个特征词的上下文相关的词对应的词向量,输出就是这特定的一个词的词向量。Skip-Gram模型和CBOW的思路是相反的,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。CBOW对小型数据库比较合适,而Skip-Gram在大型语料中表现更好。
在分类模型方面,深度学习中最常见的两大类模型,即卷积神经网络(CNN)和循环神经网络(RNN),它们在文本分类中有很多应用。卷积神经网络(CNN)早期更多地应用在计算视觉领域。在2011年,Collobert等人首先提出使用CNN解决词性标注(POS)、命名实体识别(NER)和语义角色标注(SRL)等自然语言处理领域的问题。CNN模型在捕捉长句依赖信息时,往往需要加深CNN的层数。与之相比,RNN模型更适合处理长距离依赖问题,但是RNN在建模过程中存在梯度消失的问题,所以后来的研究人员又提出了LSTM和GRU等RNN的变体,使LSTM和GRU成为解决自然语言处理领域问题的主流模型。
2 GRU模型
GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network,RNN)的一种。与LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆依赖和反向传播中的梯度消失等问题而提出来的。相比LSTM,使用GRU能够达到相当的效果,并且更容易进行训练,能够很大程度上提高训练效率,因此,很多时候研究人员会更倾向于使用GRU。
2.1 GRU的整体结构
GRU的输入输出结构与普通的RNN是一样的。有一个当前的输入xt,和上一个节点传递下来的隐状态(hidden state),ht-1这个状态包含了之前节点的相关信息。结合xt和ht-1,GRU会得到当前隐藏节点的输出和传递给下一个节点的隐状态ht。GRU的结构如图1所示。
2.2 GRU的内部结构
首先,通过上一个传输下来的状态ht-1和当前节点的输入xt来获取两个门控状态。如下计算公式所示,其中rt为控制重置的门控(reset gate),zt为控制更新的门控(update gate)。
rt=σ(Wr·[ht-1,xt])
zt=σ(wz·[ht-1,xt])
得到门控信号之后,首先使用重置门控来得到重置之后的数据ht-1*rt,再将ht-1*rt与输入xt进行拼接,通过一个tanh激活函数将数据放缩到-1~1的范围内。即得到如下公式所示的ht:
ht=tanh(wh·[ht-1*rt,xt])
这里的ht主要包含当前输入的xt数据。有针对性地将ht添加到当前的隐藏状态,相当于记忆了当前的状态。在这个阶段,同时进行了遗忘和记忆两个步骤。我们使用了先前得到的更新门控zt(update gate)。
更新计算公式:ht=(1-zt)*ht-1+zt*ht
门控信号(zt)的范围为0~1。门控信号越接近1,代表记忆下来的数据越多;而越接近0则代表遗忘的越多。GRU的优点在于可以使用同一个门控zt同时进行遗忘和选择记忆(LSTM要使用多个门控)。结合上述,这一步的操作就是忘记ht-1中的某些维度信息,并且加入当前输入的某些维度信息。可以看到,这里的遗忘zt和选择1-zt是联动的,也就是说,对于传递进来的维度信息,会进行选择性遗忘,则遗忘所占的权重zt,就会使用包含当前输入的ht中所对应的权重进行弥补(1-zt),以维持一种恒定状态。
3 GRU-Attention模型
注意力机制(Attention)最早是在视觉图像领域提出来的,能够使深度学习模型在处理视觉图像领域问题时更好地提取重要特征,从而提升模型效果。近些年来,注意力机制逐渐被应用到自然语言处理领域,并且能够有效提高自然语言处理任务的效果,比如机器翻译、情感分析等任务。注意力机制是一种类似人脑的注意力分配机制,通过计算不同时刻词向量的概率权重,能够使一些词得到更多的关注,从而提高隐藏层特征提取的质量。
在GRU模型中,由于输入的词向量是文本分词预处理后的结果,所以词向量之间会具有一些联系,基于注意力机制的深度学习模型能够通过训练词向量识别文本中词语的重要程度来提取文本中的重要特征。在GRU-Attention模型中,通过注意力机制所起的作用,可以找出文本中的关键词,这些词语往往是分类的重要信息。GRU-Attention模型的结构如图2所示。
图2 GRU-Attention模型结构
图中的输入为文本预处理后的各个词的向量表示x1,x2,x3,…,xi,这些输入会进入GRU模型中,经过GRU模型计算之后会得到对应输出h1,h2,h3,…,hi,然后在隐藏层引入Attention,计算各个输入的注意力概率分布值a1,a2,a3,…,ai,进一步提取文本特征,突出文本的关键词语。其中,Attention机制的计算公式如下:
v=Σaihi
ei=witanh(Wihi+bi)
其中,ei是由Babdanau等人提出的一种校验模型,ei表示第i时刻隐层状态向量hi所决定的注意力概率分布值,wi和Wi表示第i时刻的权重系数矩阵,bi表示第i时刻相应的偏移量。通过上面的公式可以计算出最后包含文本信息的特征向量v。输出层的输入为上一层Attention层的输出。最后利用softmax函数对输出层的输入进行相应计算,从而进行文本分类,其计算公式如下:
y=softmax(wiv+bi)
其中:wi表示Attention机制层到输出层待训练的权重系数矩阵,bi表示待训练相对应的偏置量,y为输出的预测标签。
4 实验过程
4.1 实验环境
本实验采用Windows10操作系统,i5四核处理器,运行内存为16GB的运行环境。编程语言为Python3.6,并在Jupyter Notebook平台上配合Tensorflow1.6版本深度学习框架进行开发。
4.2 实验数据
为验证本文提出的文本分类方法,本文采用Python爬虫从腾讯新闻爬取的中文新闻文本数据进行实验。实验数据一共包括科技、汽车、娱乐、军事和运动五大类别。数据量一共为87595条,并将数据集的75%作为训练集,25%作为验证集来验证算法的效果。所有数据均采用Jieba分词工具进行分词,去停用词的操作之后,再将文本使用word2vec转化成词向量作为算法的输入。
4.3 实验设计
本文采用对比实验的方式分别对GRU-Attention和GRU深度学习模型进行中文新闻文本分类实验,用来说明注意力机制对文本分类结果的影响,然后在同样的数据集上使用传统的机器学习方法,包括支持向量机(SVM)、朴素贝叶斯(NB),并与前面的深度学习模型的分类效果做对比,来说明采用GRU深度学习模型的优势。本文的文本分类效果的评价指标采用准确率(Precision)、召回率(Recall)和F1值作为综合评价指标。各个评价指标的计算公式如下:
4.4 实验结果分析
实验结果如表1所示,从中可以看出,在相同的数据集中,GRU-Attention模型的表现性能优于经典的GRU模型。另外,GRU模型以及GRU-Attention模型的性能效果要比传统机器学习分类模型好,是因为注意力机制計算了文本中每个词的注意力概率值,这样可以更好地提取文本特征,从而提高文本分类的准确率。这说明Attention对GRU文本分类模型性能的提升起到了一定的作用。
5 结 论
本文提出了一种新颖的混合模型GRU-Attention,将其在文本分类任务上进行实验,并与当前主流的深度学习模型以及经典的机器学习模型进行对比,表明基于GRU-Attention模型可以体现文本中每个输入词的重要程度,从而可以更加精确地提取文本特征。不仅如此,加入注意力机制后,模型既可以计算每个输入词的注意力概率分布值,也减少了特征提取过程中的信息丢失问题,缺点是在引入Attention机制后,需要消耗一定的计算成本,如果文本输入长度增加,随之而来的计算量也会呈倍增长。在下一步的工作中,需要继续探究优化Attention的计算方法,减少计算量,进一步提高文本分类的效率和准确率。
参考文献:
[1] 相海泉.大数据时代 [J].中国信息界(e医疗),2013(5):36-37.
[2] 张磊.文本分类及分类算法研究综述 [J].电脑知识与技术,2016,12(34):225-226+232.
[3] 彭健.人工智能的关键性技术 [J].互联网经济,2018(12):46-51.
[4] 黄昌宁,张小凤.自然语言处理技术的三个里程碑 [J].外语教学与研究,2002,34(3):180-187+239.
作者简介:孙明敏(1993.07-),男,汉族,安徽巢湖人,硕士,研究方向:自然语言处理。