基于BiGRU 和注意力机制的多标签文本分类模型
2020-03-05饶竹一张云翔
饶竹一,张云翔
(深圳供电局有限公司,深圳518001)
0 引言
情感识别是自然语言处理重要课题之一。在互联网高度发达的今天,人们通过微博、新闻网站、论坛等线上发表言论。这些言论的发表,篇幅不定,词汇量不限且没有严格的语法规则,具有较强的主观倾向。其中,负面言论是急需关注的重要课题,若无法正确对言论情感进行识别,就无法及时阻止网络暴力的发生,防范危害到个人乃至企业信誉的行为。同时,正确的言论情感识别能够帮助政府了解民众意见,企业聆听用户声音。在这样的背景下,电网相关的网络文本情感识别就具有很高的研究意义。
文本的情感识别主要基于两种方法:情感极性词典和传统机器学习方法,其中包括对情感资源的构建、语句分割、特征信息提取、质量分析等[1]。网络时代的到来促进许多新词汇的诞生,对基于情感极性词典的情感分类模型有着很大的影响,现有的情感极性词典有限,且模型无法有效识别新近产生的单词或流行词。Manek 和Shenoy 使用传统的机器学习算法来分析评论的情感。他们主要从准确率以及F 值上比较朴素贝叶斯,ME 和SVM 的性能。结果表明,支持向量机具有最好的分类效果,随着深度学习研究的发展,深度神经网络在自然语言处理中有着出色的表现[2]。Kim 使用卷积神经网络(CNN)解决情感识别问题,取得了良好的效果[3]。Santos 使用深度卷积神经网络来分析文本包含的情感,Irsoy 证明长短期记忆网络(LSTM)作为一种递归神经网络模型,也是一种解决文本情感识别的有效方法[4]。Bahdanau 将最初应用于机器翻译的注意力模型用于NLP 中[5]。Qu 和Wang 提出了一种基于分层注意网络的情感分析模型,较传统递归神经网络效果有着较大的改善[6]。田生伟等人将双向LSTM 与注意力机制相结合,在维吾尔语时序事件上的识别取得了不错的效果[7]。张玉环等人则将GRU 与LSTM 相结合,使得文本情感分类模型能在短时间内达到较高的准确率[8]。成璐使用注意力机制和BiLSTM 构建的的神经网络模型,对用户评论文本进行情感分析,使用Bi-LSTM 提取词向量中的文本特征,再放入注意力机制层突出文本分类中的重点信息[9]。
针对上述问题,提出了一种基于BiGRU 和注意力机制的多标签文本分类模型。BiGRU 模型是基于BiLSTM 模型的改进,将LSTM 模块替换为GRU,在保证分类准确度的情况下大大提高了网络的训练速度。注意力机制的使用使得神经网络可以聚焦于对分类效果有提升的重要信息,相比LSTM 进一步提高了分类的准确度。除此之外,我们使用了预训练的词向量和迁移学习技术,进一步缩短了训练时间并获得了更好的词向量表示,可以用于电网相关的网络文本情感识别。
1 算法实现
1.1 双向长短时记忆网络
BiLSTM 是普通RNN 的一种延伸[10],RNN 与普通神经网络区别在于神经元不仅接受当前时刻的输入,同时也接受前一个神经元的输出,这就解决了文本中需要考虑前文信息的问题。实际应用中,仅仅考虑前文的信息是不够的,前文也需要添加下文的信息,为了解决这一问题,双向RNN(BiRNN)诞生了。BiRNN 在普通RNN 基础上添加了反向运算,即将输入的序列反转后再计算一遍输出,最后的结果是正向RNN 与反向RNN 结果的堆叠。理论上BiRNN 可以考虑到上下文的信息,但实际应用中发现BiRNN 很难处理具有长期依赖关系的信息,一个简单的例子是在英文句子生成时,如果句子很长,在生成谓语动词时,RNN 无法记住主语的单复数形式并选择合适的谓语动词。为了解决这一问题,LSTM 引入了门控机制,包括遗忘门(forget gate)、输入门(input gate)和输出门(output gate)。其中,遗忘门用于控制前一时刻输入信息通过的比例,具体的计算方式如下:其中,y 表示输出向量,xt∈Rd是t 时刻的d 维输入向量,W 是权重矩阵,b 是偏置向量,hf∈Rd和hb∈Rd分布表示LSTM 前向和后向的输出向量。
1.2 双向门控循环神经网络
双向门控循环神经网络(BiGRU)可以看做双向长短时记忆网络(BiLSTM)的一种拓展,将BiLSTM 中的LSTM 模块替换为GRU[11]。GRU 将LSTM 中隐藏状态和细胞状态合并成一种状态,因此显著缩短了训练时间,在大型语料文本的训练速度上有显著的提升。更明确地说,GRU 读取词嵌入向量t_i 以及隐藏层状态向量h_(i-1)后,经过门控计算产生输出向量c_i 和隐藏层状态向量h_i,具体计算方法参考下列公式:
其中,z ∈Rd,r ∈Rd分别表示接受d 维向量的输入门与重置门,{Wz,Wr,W,Vz,vr,V}表示权重矩阵,{bz,br,b}为偏置向量,⊙表示矩阵点乘。
1.3 注意力机制
注意力机制首先在计算机视觉中提出,它受到人类视觉处理过程的启发,即人脑时不会处理全部视觉信息,而是聚焦于特定的部分。这一机制已经被广泛应用于多种领域,包括图像标题生成、文本分类、语音识别和机器翻译[12]。
在神经网络中,注意力机制可以被视为一种资源分配方案,对重要的信息分配更多的注意力或者计算资源,这有利于解决信息超载问题。在实践中,注意力机制通常可以分为两种:一种是自上而下的聚焦式注意力,通常是有意识的并且是任务相关的,主动聚焦于某一对象。另一种是自下而上的无意识注意力,这类注意力和任务无关,主要由外界驱动,又称为基于显著性(Saliency-based)的注意力。例如,在卷积神经网络(CNN)和LATM 中,池化(Pooling)和门控机制可以被视为基于显著性的注意力机制。
神经网络的输入数据使用向量表示,我们用[x1,…,xN]表示任务相关的输入向量,为了给特定的数据更多的权重,注意力机制引入了查询向量q(Query Vector),通过打分函数计查询向量和输入向量直接的相关性,同时引入了一个注意力变量t ∈[1,N]代表选择的索引位置。具体计算方式如下:
这里,αi是注意力分布,是注意力打分函数。注意力打分函数可以有多种定义方式,在本文中,我们采用基于缩放点积的自注意力模型,缩放点积定义如下:
d 表示输入向量的维度。缩放点积模型是基于点积模型的一种改进,区别在于缩放点积模型除以向量维度d 的平方根。当d 很大时,点积模型的值会出现较大的方差,因此导致Softmax 的梯度变小,缩放点积模型的提出解决了这一问题。
2 实验
2.1 数据集介绍
实验采用著名数据竞赛Kaggle 上的数据集测试模型,该数据集由维基百科上的评论构成,标签均由人工标注,共定义了6 类标签,分别是“toxic”、“severe_toxic”、“obscene”、“threat”、“insult”和“identity_hate”。每个评论可能有多个标签,也可能没有标签,模型需要给出每个评论在6 类标签上的概率,因此这是一个多标签文本分类问题。所有类别在数据集上的分布如图1所示。
图1 评论种类以及数量
2.2 实验设计
在实验中我们的网络架构设计如图2。
图2 网络架构
其中,输入层包含200 个神经元,即每个评论取前200 个字符,不足200 的话则自动补全。Embedding层,attention 层和BiGRU 神经元数目分别为100、128和256,输出层为6 个神经元组成的全连接层,计算每个评论在6 类标签上的概率。我们使用Embedding 层作为一种迁移学习技术加载预训练的词向量,以此缩短训练时间并获得针对评论数据的更好表示。Attention 层用来训练对特定的词向量给予更高权重以提高分类的准确率,输出层则将常见的Softmax 替换为全连接层,每个神经元均输出一个[0,1]范围内数值代表特定类别的分类准确度。
为了让神经网络充分学习到文本的特征,我们采用了预训练词向量和自注意力机制。在实验中,我们使用了GloVe 词向量[13],基于共现矩阵分解实现,每个词使用100 维向量表示,向量之间的距离越短,表示两个词的相似度越高。该词向量集合使用了60 亿单字(Token)语料库训练,共包含400K 的字符,由斯坦福大学的研究团队提供。自注意力模型引入了Q、K 和V三个查询向量序列,采用缩放点积作为打分函数,可以“动态”地生成不同连接的权重,可以用来处理变长的信息序列。我们将数据集分割为训练集与验证集,其中验证集评论数目占20%,训练集数目占80%。
实验平台的具体配置如下:
操作系统:Windows 10
CPU:Intel i7-6700
RAM:32G
深度学习框架:TensorFlow 1.13.1
开发工具:Visual Studio Code
编程语言:Python 3.6
3 实验结果与分析
3.1 实验结果
Adam 是一种基于随机梯度下降(SGD)的一阶优化算法,与SGD 不同在于SGD 在训练过程中学习率不会改变,而Adam 通过计算梯度的一阶和二阶矩估计动态改变学习率,是一种自适应学习率优化算法,同时结合了AdaGrad 和RMSProp 两种算法的优点。Adam优化算法被用于训练神经网络,实验结果显示Adam算法效果卓越,如图3 所示,使用Adam 算法后在训练集和测试集上的loss 均能够降低到0.05 左右。
图3 训练集和测试集损失
在实验中,我们设置batch 大小为128,通过4 个epoch 后算法已经接近收敛并在测试集上获得了超过98%的准确率,如图4 所示。
3.2 实验结果分析
综合来说,采用了预训练词向量和BiGRU 后大大缩短了训练神经网络所需时间,在本次实验中并未采用GPU 加速计算,CPU 耗时在10min 左右。同时embedding 层和自注意力机制的使用提高了分类的准确度,相比基线模型BiLSTM 有2%的准确度的提升。Bi-GRU 与自注意力机制的融合在标杆数据集上的测试结果显示我们的模型适合执行多标签文本分类任务,可以在电网文本信息中进行应用与部署。
4 结语
本文给出了一种基于BiGRU 和注意力机制的多标签文本分类模型。相较于BiLSTM 模型,在使用更少的训练时间下取得了同样高的准确率;通过使用注意力机制让神经网络可以聚焦于对分类效果有提升的重要信息;除此之外,预训练的词向量和迁移学习技术,进一步缩短了训练时间并获得了更好的词向量表示。实验结果显示模型在公开数据集上有着良好的表现,同时适用于包括电网相关的网络文本情感识别等应用场景。