融合ERNIE和深度学习的文本分类方法

2023-12-14 00:40杨笑笑
关键词:特征提取注意力卷积

杨笑笑,陆 奎

(安徽理工大学 计算机科学与工程学院,安徽 淮南 232000)

文本分类是自然语言处理任务中的基础性任务,其目的是对文本信息进行整理和归类,同时也是解决文本信息过载问题的关键环节。由于其广泛的学术和实际应用价值,文本分类被应用于情感分析、新闻分类、问答系统、主题分类、社交网络等领域[1]。

文本分类的核心内容是文本表示、特征提取和分类。其中,文本表示和特征提取是文本分类的关键。文本表示是将文本表示成向量形式。词向量(word2vec)模型是常用的词嵌入模型,它是静态词向量方法,共有2种:连续词袋(continuous bag of words,CBOW)模型和skip-gram模型。但在不同语境下,word2vec生成的词向量存在语义问题。如对于“我爱吃苹果”和“他新买的苹果手机”,word2vec模型不能有效分辨出前者的“苹果”是指水果,而后者的“苹果”是指公司,因此无法提取到正确的语义信息。在2018年,Google公司提出来自Transformer的双向编码器表征量(bidirectional encoder representations from Transformer,BERT)模型[2],很好地解决了这一问题。该模型将双向 Transformer 用于语言模型,可以很好地学习上下文信息。最初,BERT模型预训练英文文本信息的效果更好,它能根据上下文预测词的信息,但其缺乏对更大语义单元的建模,这个问题在中文领域更加明显。对此,百度公司提出知识增强的语义表示(enhanced representation through knowledge integration,ERNIE)模型,在BERT模型的基础上进行改进,改变其掩码策略,通过对中文实体和字进行掩码,增强了通用语义的表示能力,在多项任务中均大幅度超越了BERT模型的效果。

随着深度学习的不断发展,研究发现在特征提取任务中,深度学习方法效果比传统方法好得多。卷积神经网络(convolutional neural networks,CNNs)模型被首次应用到微博情绪分类中,并取得了不错的效果[3],之后它开始被大量应用于文本分类领域。经典CNNs模型致力于提取文本的局部特征,但会出现局部特征提取不完善的问题;对此,有学者采用不同卷积和池化操作再组合的方式以提取更多的局部特征信息[4],但容易忽略局部信息之间的依赖关系。循环神经网络(recurrent neural network,RNN)模型[5]被广泛应用于处理序列信息问题,它可以提取全局特征信息,但存在梯度消失和梯度爆炸的问题。RNN模型的变体——长短期记忆(long short-term memory,LSTM)神经网络模型[6]通过引入门机制和细胞状态方法,不仅解决了梯度问题,还可以捕获到上下文长期依赖信息。门控循环单元(gated recurrent unit,GRU)[7]和LSTM模型的效果相近;不同的是,GRU只有2个门:更新门和重置门,其结构更加简单,需要训练的参数更少,相对更高效,因而被广泛应用。但是RNN模型及其变体将所有的特征信息看作同等重要,易丢失关键信息,而保留无关信息。针对不同模型各自存在的问题,将其融合在一起也表现出了较好的效果[8-13]。如雷景生等[14]为了更好地保留字的信息和多义性,在ERNIE模型后加入双向门控循环单元(bidirectional gated recurrent unit,BiGRU),得到了较好的实验效果。Guo等[15]通过结合ERNIE模型和双向长短期记忆(bidirectional long short-term memory,BiLSTM)网络模型的方法,保留了更多的中文语义信息,在分类任务中获得了良好的效果。齐梦娜等[16]融合ERNIE模型和多通道CNNs模型的方法,在在线评论情感文本分类上取得了较好的效果。但这类模型仅在一方面提取文本特征信息,要么忽略了上下文信息,要么忽略了句子中的关键信息。因此,针对现有模型存在的问题,提出了一种融合ERNIE、CNNs、BiGRU的注意力机制(integration of ERNIE and CNNs-BiGRU′s attention mechanism,ECBA)模型,通过组合局部特征信息和全局特征信息的方法,提高文本分类的准确性。具体过程如下。

1) 通过ERNIE模型生成动态词向量。

2) 组合多尺度卷积核:设置3个不同大小的卷积窗口,再经过最大池化层处理融合特征,在一定程度上解决局部特征提取不完善的问题。

3) 为BiGRU模型引入注意力机制:使ECBA模型关注重要信息或关键信息,丢掉不重要信息或干扰信息。

1 模型介绍

ECBA模型架构如图1所示。由图1可知,ECBA模型的结构分为文本表示层、特征提取层和全连接层3个部分。首先在文本表示层,通过ERNIE模型预训练出词向量作为模型的文本表示;然后在特征提取层,使用CNNs模型提取局部特征,为获取更全面的局部特征信息,改变CNNs的模型结构,设置3个不同大小的卷积窗口;同时使用BiGRU模型提取全局特征,为能提取到重要信息,在该模型的前向GRU和反向GRU中加入注意力机制,加大重要信息权重,之后融合局部特征和全局特征;最后,通过全连接层输出结果。

图1 ECBA模型的架构Fig.1 ECBA model structure

1.1 文本表示层

文本表示层目的是将输入的文本信息转换成向量表示。ECBA模型采用ERNIE模型生成文本表示。和其他词向量模型不同,ERNIE模型是由双向Transformer组成,可以很好地解析中文文本并且学习文本中上下文的语义信息,将中文文本转化为动态词向量。

BERT和ERNIE模型的掩码策略对比如图2所示。由图2可知,原生的BERT模型是对单个字进行掩码,忽略了字与字之间的关系,会使1个词被迫分开;而ERNIE模型在BERT模型的基础上对掩码策略进行了改进,对中文实体或词进行掩码操作,考虑了上下文之间的联系,从而提取到更完整的语义信息,增强了语义表示能力。

(a) BERT的掩码机制 (b) ERNIE的掩码机制图2 BERT模型和ERNIE模型掩码策略对比Fig.2 Comparison of mask policies between BERT model and ERNIE model

ERNIE模型的核心是基于Transformer的编码结构,编码方式在结构上一样,且不共享权重。ERNIE模型的单个编码结构如图3所示。由图3可知,编码层输入的是初始文本向量,经过1个位置信息的嵌入,输出到多头自注意力机制层,进行多头自注意力计算。然后,ERNIE模型编码结构的输出会经过1个连接-正则化层,连接表示对来自多头自注意力机制层的输入和输出进行残差连接,正则化表示对输入和输出进行归一化处理。归一化处理后的结果会传入前馈神经网络层,然后再经过1个连接-正则化层,进行同样的处理后会输出归一化的词向量列表。

图3 单个编码的结构Fig.3 Single encoder structure

ERNIE模型的编码层堆叠中,除最下面的编码层外,其他编码层的输入都是其邻接编码层的输出,最终经过16个编码层输出文本向量表示作为特征提取层的输入。

产生文本向量的基本过程为:1个文本按照句号划分成n个文本段,T=[t1,t2,…,tn],ti=[e1,e2,…,ew],i=1,2,…n,w表示1个文本段的词数。其中,ERNIE模型输入为T,将文本段ti经ERNIE模型训练后得到输出词向量X=[x1,x2,…,xw],xi的维度为d,即词向量的维度,X作为特征提取层的输入。

1.2 特征提取层

在特征提取层,使用BiGRU模型提取全局特征信息,使用CNNs模型提取局部特征信息。为解决可能出现的重要特征信息丢失问题,为BiGRU模型引入注意力机制,然后融合局部特征和全局特征并将其作为ECBA模型的特征表示。

GRU是循环神经网络的变体,为门控网络结构,解决了长时记忆和反向传播中梯度消失的问题。与LSTM模型相比,GRU的结构更加简单,只有更新门和重置门2个门;因此,需要训练和计算的参数更少,训练效率更高,常被应用于自然语言处理任务中。为了捕获到更加全面的特征信息,ECBA模型采用BiGRU模型提取特征信息,该模型可以在前向GRU和反向GRU中提取文本序列特征,然后在前向GRU和反向GRU中引入注意力机制,使模型关注到重要信息。BiGRU模型和注意力通道层(BiGRU-attention mechanism,BiGRU-A)的模块结构如图4所示。

图4 BiGRU-A模块的结构Fig.4 BiGRU-A module structure

(1)

(2)

注意力机制认为在不同的网络层中不同特征的重要性也不同,越向后的网络所包含的重要信息越多、不重要信息越少。注意力机制通过为每个特征赋予权重的方法逐渐摒弃不重要的特征;权重越大,所对应的特征越重要。在文本分类任务中,影响分类结果的特征信息才应该是被关注的重点。所以在BiGRU模型的正向GRU和反向GRU中引入注意力机制,可以提高重要信息的权重,抑制不重要信息的权重。注意力机制的计算如下所示:

ut=tanh(wwht+bw),

(3)

其中,ut是隐藏层ht的向量表示,ww表示权重系数,bw表示偏置系数,tanh表示激活函数。

αt=softmax(utuw),

(4)

其中,αt表示得到的权重,uw是在训练阶段随机初始化的上下文向量。ut的重要性可以通过点积计算ut和uw得到的相似度来表示,另外,

(5)

其中,s表示所有隐藏状态的加权组合。

(6)

其中,Ht表示融合注意力机制的前向GRU和反向GRU的特征信息;fatt表示注意力机制的计算。

CNNs模型的结构如图5所示。由图5可知,该模型主要包含卷积层和池化层,卷积核是CNNs模型的核心,用于提取文本特征;池化层是为了降低卷积向量维度,避免过拟合,有最大池化和平均池化2种方法。选用最大池化法,以便保留更重要的信息。

图5 CNNs模型的结构Fig.5 CNNs model structure

由图5可知,ECBA模型设置3个不同大小的卷积核,卷积窗口分别是3、4、5,然后经过最大池化层得到特征图进行拼接。由于融合后的特征维度过大,加1个隐藏层进行降维处理,得到CNNs模型的输出。最后,将得到的BiGRU-A模块输出和CNNs模型输出拼接在一起,作为ECBA模型最终的特征表示。

c3,c4,c5=fConv(x),

(7)

其中,c3、c4、c5表示卷积后的词向量结果,x为文本表示,fConv表示卷积操作。

(8)

(9)

(10)

(11)

其中,c表示不同大小卷积核经最大池化处理后拼接的特征向量。

BiGRU-A模块和CNNs模型特征提取分别得到了BiGRU-A模块的全局特征向量FB_A和CNNs模型的局部特征向量FCNNs,然后对这2个特征向量进行融合拼接,得到合并后的特征向量F,F=FB_A⊕FCNNs,⊕表示拼接计算。

1.3 全连接层

在全连接层先对F进行降维处理,另外在全连接层加入随机失活层,避免出现过拟合,提高模型的泛化能力。最后经softmax分类器来预测文本的类别,计算公式如下:

y=softmax(WconF+bcon) ,

(12)

其中,y为文本属于所有类别的概率,Wcon为权重矩阵,bcon为偏置矩阵。

ypre=max(y),

(13)

其中,ypre为y中最大的概率,最后将ypre作为预测结果。

2 实验与分析

2.1 实验准备

2.1.1 实验数据集 选用清华大学中文新闻(Tsinghua Chinese news, THUCNews)数据集进行实验,部分样本如表1所示。由表1可知,由于该数据集所含数据样本较多,从中抽取体育、娱乐、家居、房产、教育、时尚、时政、游戏、科技和财经10个类别的数据,每个类别选用8000条作为训练集、2000条作为测试集,共计10万条数据。

2.1.2 实验环境 实验在Windows操作系统下进行,实验平台选用PyCharm、Python3.7,使用Pytorch框架构建模型。实验中的大部分参数为模型的默认参数。ERNIE模型的隐藏层数设置为768,BiGRU模型的隐藏层数设置为256,卷积核的个数为256,随机失活参数设置为0.1,学习率设为0.00001,激活函数选用ReLU非线性激活函数。

2.2 实验过程

1) 使用自然语言处理工具包(natural language toolkit,NLTK)对原文本进行预处理,依次分句、分词、去除停用词;

2) 使用ERNIE模型对文本进行预训练,得到增强语义的词向量;

5) 将预训练的词向量输入到CNNs模型中,进行3×k、4×k、5×k的卷积操作,将卷积结果分别送入最大池化层,对得到的结果进行拼接操作,然后降维得到CNNs模型的输出FCNNs;

6) 融合FB_A和FCNNs得到F,送入全连接层,通过softmax函数判断类别;

7) 使用训练集训练模型,测试集验证模型。

2.3 评价指标

实验采用准确率(precision,P)、召回率(recall,R)、F1值来衡量分类模型的性能,计算公式如下:

(14)

(15)

(16)

其中,NTP表示预测是正类、实际也是正类的文本个数;NFP表示预测是正类、实际是负类的文本个数;NTN表示预测是负类、实际也是负类的文本个数;NFN表示预测是负类、实际是正类的文本个数。

2.4 实验结果

为了更好地比较不同模型的性能,在THUCNews数据集上设置了对照实验,包括了BERT[2]、融合BERT和深层金字塔卷积神经网络(fusion of BERT and deep pyramid convolutional neural networks, BERT-DPCNN)模型[16]、BERT-BiLSTM[17]、ERNIE-LSTM-CNN[18]、ERNIE-BiGRU[14]模型。比较准确率、召回率、F1值3种评价指标,结果如表2所示。由表2可知,相比其他模型,ECBA模型的准确率、召回率、F1值都有不同程度的提升,分别达到了95.07%、95.01%、95.03%;其中,相较于BERT模型,性能提升最大。

表2 模型的比较Tab.2 Comparison of models

2.5 消融实验

为了验证ECBA模型的局部模块对分类效果的影响,在相同参数和相同实验环境的情况下,在THUCNews数据集上设计了一系列的消融实验,结果如表3所示。其中,ERNIE-BiGRU-A模型去除CNNs模块,以验证CNNs对模型的影响;ERNIE-CNNs模型去除BiGRU-A模块,以验证BiGRU-A对模型的影响;CNNs-BiGRU-A模型改变词嵌入模块,使用word2vec模型,验证词向量对模型的影响。

表3 消融实验比较Tab.3 Comparison of ablation experiments

由表3可知,ERNIE-BiGRU-A模型的分类效果有所降低,这说明CNNs模块提取的局部特征有利于分类;ERNIE-CNNs模型实验结果表明了在双向GRU引入注意力机制,能保留重要特征,提高分类效果;CNNs-BiGRU-A模型实验结果验证了ERNIE模块生成的词向量可以提取到更多的语义信息。消融实验的结果最终说明,缺少现有任何模块都会影响ECBA模型的分类准确率,导致其降低。

3 结论

针对中文语义提取不充分、特征提取不完善的问题,提出了一种融合ERNIE、CNNs、BiGRU的注意力机制ECBA模型。针对文本表示中的词向量在不同语境下的词语多义问题,使用ERNIE模型预训练出词向量,增强中文文本的语义表示能力。在特征提取层,通过卷积神经网络模型提取局部特征,利用双向GRU模型提取全局特征;为解决局部特征提取不完善和丢失关键特征信息的问题,设置多个不同大小的卷积窗口提取局部信息,并在双向GRU中引入注意力机制捕获关键信息,再融合局部特征和全局特征。最后通过全连接层输出分类结果。最终实验表明,相较于其他对照模型,ECBA模型在准确率、召回率、F1值上都得到了一定程度的提升。

猜你喜欢
特征提取注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
Bagging RCSP脑电特征提取算法
A Beautiful Way Of Looking At Things
基于MED和循环域解调的多故障特征提取
一种基于卷积神经网络的性别识别方法