基于改进词性信息和ACBiLSTM的短文本分类

2021-12-14 01:28朱向其张忠林李林川马海云
计算机应用与软件 2021年12期
关键词:语义向量短文

朱向其 张忠林* 李林川 马海云

1(兰州交通大学电子与信息工程学院 甘肃 兰州 730070)2(天水师范学院电子信息与电气工程学院 甘肃 天水 741001)

0 引 言

当今信息传播主要还是依赖文本的形式,而短文本能够传达即时的信息,例如新闻标题、微博推送等。如何高效正确地分类中文短文本,一直受到广泛的研究。

中文短文本分类最重要的问题是如何表示短文本,传统的文本表示方法主要是基于词袋模型[1],但该方法未考虑词序和词语之间的语义信息,导致分类效果不理想。针对这个问题,有学者从外部引入语料库对文本进行特征扩展,进一步对人工标注好的短文本数据进行特征处理,丰富语义关系[2-3],但是该方法要求高质量的语料库。另外Phan等[4]通过pLSA和LDA等[5-7]模型挖掘文本的语义信息,利用支持向量机(SVM)同时在主题特征空间上构建短文本的空间向量进行分类,获得了较好的效果。虽然这些传统的分类方法可以在一定程度上提高文本分类的效果,但针对中文短文本分类固有的特征稀疏、语义不足和维度过高等问题效果不佳。

深度学习已广泛应用于自然语言处理领域。神经网络语言模型(NNLM)是由Bengio等[8]在2003年率先提出,Mikolov等[9]对此模型做出改进,并提出基于神经网络的Word2Vec模型。利用其生成的词向量引入了语义特征,解决文本特征表达问题,但是该模型会存在多义词的问题,不能区分多义词的不同语义。艾伦研究所在NAACL 2018年发布的ELMo模型提供了一种简洁的解决方案,根据当前上下文对词向量进行动态调整解决这个问题,处理了句法和语义信息。同年谷歌提出BERT模型,使用了新型的特征抽取器(双向Transformer)来增强特征提取和融合能力。

Kim[10]首次将卷积神经网络(CNN)应用于句子模型的构建中,实现CNN应用到文本分类。CNN可以捕捉空间的局部特征,图神经网络(GCN)能够捕捉全局词的协同信息,由于都忽视时间相关性,会导致部分重要信息丢失。而循环神经网络(RNN)可以读取和操作任意长度的文本序列,并获取长期依赖性。其变体长短时记忆神经网络(LSTM)[11]和图结构循环网络(G-LSTM)可以记忆和访问历史信息,但是不会考虑未来下文的语法和语义。由此,双向长短时记忆网络[12](BiLSTM)被设计出来以获取上下文信息。

近几年,注意力机制被引入用来对向量赋予注意力权重突出关键信息。使用注意力机制可以更好地表达特征,使训练出来的模型具有更高的精度,直观地看出不同词语的重要程度。

综上所述,传统的文本表示存在特征稀疏、语义不足、维度过高等问题,忽视了词性的影响力。因此,本文提出一种基于改进词性信息和ACBiLSTM的中文短文本分类模型。采用基于Transformer架构的BERT中文预训练模型,即BERT-Base,Chinese模型动态训练词向量,同时结合改进的TF-IDF模型将得到的词向量作为输入层的输入信息。由于本文的数据集都是中文短文本,为了突出与主题有关的信息,本文运用注意力机制结合CNN和BiLSTM,赋予关键词语不同特征权重,减少文本中主要信息的遗失,优化最终的特征表达,使分类的准确度得到提升。

1 相关知识

1.1 BERT模型

BERT模型是谷歌公司2018年发布的一种语言表示模型,其基于Transformer架构,通过训练Masked Language Model和预测下一句任务得到的模型。

1.2 卷积神经网络

CNN是一种前馈型的神经网络,它具有两个非常显著的特点,一是对局部感知较为明显,二是权值共享。由于本文的短文本数据集简短精悍,构造比较紧凑,在一定程度上可以释义,使得CNN在提取文本的特征上能够获得较好的结果。CNN主要是由输入层、卷积层和池化层组成,CNN结构如图1所示。其中,将短文本的字词映射到相应的词向量空间作为输入层,输入的词向量通过含有若干滤波器的卷积层,通过其卷积操作获得不同位置的特征,然后这些不同位置的特征经过池化层,提取出最具有代表性的特征,最后输入全连接层,求得不同类别的概率。

图1 卷积神经网络结构图

1.3 循环神经网络

循环神经网络目前也广泛应用,相比较CNN只能提取局部特征且不考虑时间的相关性,它对可变长度的输入序列进行操作,同时捕捉单词和上下文之间的语义联系,获得更广泛的特征信息。但在实际的处理过程中,常常遇到梯度消失和梯度爆炸的现象,而长短时记忆神经网络避免了这个结果,也能够更方便地访问和存储信息。Cheng等[13]运用LSTM,对上下文的信息也进行了更好的分类。

1.4 注意力机制

注意力机制的主要作用是让神经网络把“注意力”放在一部分输入上,即区分输入的不同部分对输出的影响。注意力机制主要涉及到Query、Key和Value三个概念,将目标字和上下文各个字的语义向量表示作为输入,首先通过线性变换获得目标字的Query向量表示、上下文各个字的Key向量表示及目标字与上下文各个字的原始Value表示,然后计算Query向量与各个Key向量的相似度作为权重,加权融合目标字的Value向量和各个上下文字的Value向量,作为Attention的输出,即目标字的增强语义向量表示。其模型结构如图2所示。

图2 注意力机制模型结构

2 模型构建

本文构建的基于改进词性信息和ACBiLSTM的中文短文本分类模型的结构如图3所示,主要由词向量输入层、CNN卷积层、BiLSTM层、注意力层和Softmax分类层五个基本部分组成。这个模型通过对BERT模型预训练得到的词向量引入词性因子进行改进,然后基于注意力机制结合CNN和BiLSTM来提取局部卷积特征和捕捉序列特征上的依赖关系来获得中文短文本的最终特征向量。

图3 模型结构图

2.1 词向量输入层

2.1.1文本预处理

未处理的中文短文本数据带有部分的干扰项,比如一些标点符号和字符等,词语的词性信息也没有标注出来,因此要在进行分类工作之前对数据集进行数据清洗。

本文使用Python中Jieba分词模块自带的精确模式对数据集进行分词,同时能够将每个词语对应的词性标注出来,然后根据处理好的停用词表(融合了哈尔滨工业大学停用词表、四川大学机器智能实验室停用词表、百度停用词表)对分词之后的中文短文本数据进行去除停用词操作,将无用的词及一些特殊符号去除。

2.1.2BERT模型预训练

本文使用的BERT模型由多层的双向Transformer编码器连接而成,其结构图如图4所示。其中:E表示词向量嵌入Word Embedding;Trm表示Transformer Encoder,它是BERT模型的核心部分,可以理解为将输入文本中各个字词的语义向量转化为相同长度的增强语义向量的一个黑盒;T表示输出的单词序列。

图4 BERT模型结构图

BERT模型的输入包括三个部分。(1) 字向量。通过查询字向量表将文本中的每个字转化为一维向量。(2) 文本向量。该向量的取值在模型训练过程中自动学习,用于刻画文本的语义信息,并与字和词语的语义信息融合。(3) 位置向量。由于出现在文本不同位置的字/词所携带的语义信息存在差异(比如:“我爱你”和“你爱我”),BERT模型对不同位置的字/词分别附加一个不同的向量以作区分。这三个部分的和作为BERT模型的输入,输出则是输入字和词语对应的融合语义信息后的向量表示。

2.1.3改进词性信息

通过BERT模型预训练得到词向量存在着两个问题,一是每个词语对整个文本的重要程度没有体现出来;二是在实现训练的过程中,每个词语作为被替换词进行双向编码来动态调整的时候都受到上下文词语的影响,因此每个词语的属性对训练的影响也很重要。针对这两个问题,本文分别提出了改进方法。

首先,构建一个基于TF-IDF的加权BERT模型结构,对词向量进行权重计算,使得词向量体现出当前词语在整个文本中的重要程度,更好地体现词语之间的语义信息。TF-IDF作为一种加权技术,经常被用来评价某一字词对某一文件的重要性。词频TF和逆文档频率IDF组成了TF-IDF方法,其计算式为:

TF-IDF=TF×IDF

(1)

式中:TF表示某一确定词语在所属文件中出现的频率;IDF衡量了一个词语的常见程度。

其次,不同词性的词语具有不同的表征能力,黄贤英等[14]提出中文短文本主要依靠四种词性来进行表达,即动词、名词、副词和形容词。在一个文本当中,动词、名词能够主要反映出文本内容,对文本分类具有大的影响;形容词和副词的表达效果略差一筹,对文本分类的影响也稍低一些;其他词性的词语影响程度更小。而经典的TF-IDF计算方法并没有体现词语词性的影响,文献[15]考虑到了词性的影响,但是对词性的影响分配不够合理。因此,本文决定根据词语的不同词性提供不同的词性因子,并且对上述文献的办法进行改进,为词性因子根据影响程度合理赋值,再与传统的TF-IDF模型结合计算词向量的权重。

改进之后的TF-IDF模型本文称为ITF-IDF模型,其计算式为:

ITF-IDFt=TF-IDFt×θ

(2)

式中:t为当前分词;θ为根据当前分词的词性提供的词性因子;令α+β+γ=1,且γ<β<α∈[0,1]。

综上所述,本文对BERT模型引入词性因子进行改进,在训练词向量的基础上结合词性权重,得到改进词性信息的词向量作为输入层的输入。词性信息加权的词向量表达如下:

Wt=wt×ITF-IDFt

(3)

式中:wt代表BERT模型训练的分词t的词向量;ITF-IDFt代表分词t对应的词性权重;Wt代表分词t对应的改进加权词向量,并将其作为词向量输入层的输入进行分类。

2.2 基于注意力机制的ACBiLSTM模型

2.2.1结合CNN模型提取特征

对于输入层的输入信息,下一步还需要使用CNN模型对这些信息进行特征提取,本文使用一维卷积,假设xi∈Rd是句子中的第i个词语的d维向量,句子x1:n=(x1,x2,…,xn)经过卷积层通过长度为k的滤波器进行卷积操作生成特征映射cj∈Rn-k+1,n表示句子长度。而对于句子中的每一个位置j,从词语xi到xi+k-1会生成k个连续词向量的特征cj,计算式表示为:

cj=f(W×xi:(i+k-1)+b)

(4)

式中:b∈R是一个偏置项;f(·)是一个非线性的激活函数。本文使用SeLU函数[20]作为激活函数,能够预防梯度爆炸和梯度消失的现象,其公式如下:

(5)

上述的每个特征映射进行列向量之间的连接得到整个句子的特征表达C为:

C=[c1,c2,…,cj]

(6)

有n个长度一样的滤波器,会产生n个特征映射F,再将其重新排列为特征表达为:

F=[C1⊕C2⊕…⊕Cn]

(7)

式中:⊕表示列向量之间的连接;Ci是第i个滤波器生成的特征映射;F∈Rn-k+1中的每行Fj是在位置j使用n个滤波器的特征表达。

一般情况下,在卷积之后要进入池化层来选择最重要的特征,然而CNN模型提取的只是局部的特征,忽视了时序的相关性。本文决定在卷积之后不进入池化层,而是使用BiLSTM生成中间词表示,然后结合注意力机制获得句子在CNN中的最终表示。

2.2.2利用BiLSTM模型生成中间向量

LSTM可以学习长期依赖关系、记忆和访问历史信息。LSTM模型结构包括输入门it、遗忘门ft和输出门ot,对于一个给定的序列在各个门和状态中更新方式如下所示:

it=σi(Wxixt+Whiht-1+bi)

(8)

ft=σf(Wxfxt+Whfht-1+bf)

(9)

ct=ft·ct-1+it·tanh(Wxcxt+Whcht-1+bc)

(10)

ot=σo(Wxoxt+Whoht-1+o)

(11)

ht=ot·tanh(ct)

(12)

式中:xt是当前时间t的输入;σ()表示[0,1]内的Sigmod函数;tanh代表[-1,1]之间的双曲正切函数;符号·表示乘法运算;ht是时间t的输出向量。

单向的LSTM只能读取历史信息,没有利用未来下文的语法语义信息,因此本文使用BiLSTM。对上述序列分别进行正向和反向的处理,既能获得历史信息,又能读取未来的信息。经过BiLSTM处理之后,在时间t的输出ht更新为:

(13)

图5 BiLSTM计算过程

2.2.3利用注意力机制计算最终向量

CNN提取的是局部特征,但忽视了时序的相关性;BiLSTM虽然可以处理历史和未来的时序信息,却会丢失某个位置在某个时间的局部信息。而注意力机制又可以对输入序列的不同局部赋予不同的权重,突出其影响程度。因此,本文运用注意力机制,将CNN和BiLSTM结合,期望可以同时获得局部和时序信息。

利用注意力机制,最终特征表达的具体计算式为:

ui=cos(ht,wi)

(14)

(15)

(16)

式中:ht表示通过BiLSTM模型计算的中间向量表示;wi表示通过改进的CNN模型得到的局部特征,通过它们的余弦相似度ui来计算vi对应的权重值αi,其值越高,说明局部卷积和中间向量越相似,分配的注意力就越多;v表示最终的特征表达。最终向量计算过程如图6所示,其中:x表示输入向量,h表示经过CNN卷积和BiLSTM处理过的中间向量,α表示注意力权重,v表示最终句子向量。

图6 最终向量计算过程图

2.3 Softmax分类层

将最终的句子向量表示输入到Softmax层进行分类,首先计算属于某个类别i的概率pi:

(17)

然后判断输入句子的类别,选择概率最大的作为分类类别c:

c=arg max(pi)

(18)

本文模型为了避免出现过度拟合的现象,还采用了Dropout技术和L2正则化。

3 实 验

3.1 实验环境和数据

本文实验是在Windows 7 64位操作系统下进行的,PC的处理器是Intel(R)Core(TM)i7- 3520M 2.90 GHz,内存大小为8 GB,实验使用的编程语言是Python 3.6,开发的工具为PyCharm,深度学习框架为TensorFlow 1.12.0。

实验的新闻标题数据集来源有三个:(1) 复旦大学搜集公开的文本分类数据,下称FudanNews。原始的文本数据一共有20个类别,但是某些类别所包含的文档数目过少,因此选取文档数目大于1 000的5个类别共6 500条数据。(2) 搜狗实验室提供的Sougou新闻语料库,下称SougouNews。选取完整数据中的9个类别共27 000条数据。(3) 清华NLP小组提供的新浪新闻文本分类数据集的子集,下称THUCNews。选取其中10个类别共65 000条新闻数据。将这些数据中的新闻标题提取出来,作为本文实验的数据集,并且按照8 ∶1 ∶1的比例分配训练集、验证集和测试集。

3.2 参数设置

本文提出的模型的参数中包含了CNN和BiLSTM模型的参数,主要的参数设置如表1所示。

表1 参数设置表

3.3 分类性能评价指标

本文采用常用的准确率Acc和F1值作为评价指标来评价本文提出模型的分类结果。根据实验结果建立的分类评价指标含义如表2所示。

表2 分类评价指标含义

准确率Acc的计算式如下:

(19)

式(19)的分子表示分类正确的文档数目,分母表示总的文档数目。F1值的计算式如下:

(20)

式中:P和R分别代表精确率和召回率。P和R的计算式为:

(21)

(22)

3.4 最佳词性因子的确定

为了验证本文引入的词性因子对分类效果的影响,确定最佳的词性因子,在其他参数相同的条件下,以在FudanNews数据集上进行实验为例,选取准确率最高时的数值作为最佳词性因子。如前文所述,动词和名词能够主要反映出文本内容,由此可见动词(短语)和名词(短语)的影响超过50%,按照α+β+γ=1且γ<β<α的原则,α从0.5开始取值,按照0.1的步长依次改变γ<β<α∈[0,1]的值。实验结果如表3所示。

表3 准确率和词性因子关系表

可以看出,不同的词性的确对短文本分类存在重要的影响,恰当的词性因子赋值能够提高分类的效果,不恰当的赋值反而会降低分类效果,验证了引入词性因子的有效性。当α、β、γ分别取0.6、0.3、0.1时分类效果最好,准确率达到最高,即为最佳词性因子。

3.5 结果分析

通过在相同数据集上和其他模型进行对比实验,验证本文模型的有效性。对比的模型主要类别有传统模型、CNN模型、LSTM模型、CNN+LSTM混合模型和基于注意力机制的LSTM模型等。表4-表6分别是本文模型和其他模型在FudanNews、SougouNews和THUCNews数据集上的实验结果。

表4 不同模型在FudanNews上的实验结果(%)

表5 不同模型在SougouNews上的实验结果(%)

续表5

表6 不同模型在THUCNews上的实验结果(%)

从表4可以看出,本文提出的模型在FudanNews数据集上的分类效果要优于大多数的模型,准确率和F1值分别能够达到95.62%和94.23%,只比文献[21]使用胶囊神经网络的效果略差,较CNN模型提升了6.21百分点和5.96百分点。

从表5可以看出,在SougouNews数据集上,本文模型的准确率和F1值分别能够达到98.15%和95.23%,只比文献[20]中使用的VDCNN+LSTM混合模型的准确率和F1值低0.81百分点和0.41百分点,优于其他模型。

从表6可以看出,本文提出的分类模型相比其他的模型在THUCNews数据集上表现最好,准确率和F1值分别达到97.43%和95.24%,明显优于其他模型。

对比表4和表5发现,文献[21]使用胶囊神经网络模型在FudanNews上的准确率高达97.00%,在SougouNews上却是最低的89.80%;文献[20]中的VDCNN+LSTM混合模型在SougouNews上的准确率最高,达到98.96%,在FudanNews上的准确率只有93.10%;说明这两个模型在不同数据集上的实验结果波动都比较大,而本文模型在这两个数据集上的实验结果分别为95.62%和98.15%,实验结果比较均衡,说明本文模型的分类效果更加稳定,普适性和泛化性更好。

综上所述,本文模型能够有效地提升中文短文本分类效果,主要表现在三个方面:(1) 较传统的SVM等分类模型,可以更好地提取文本特征;(2) 较CNN、LSTM等单个神经网络模型,本文将CNN和BiLSTM相结合,同时引入注意力机制,不仅可以提取局部特征,获取历史和未来的时序信息,还能够防止主要信息的丢失,突出局部特征的关键信息;(3) 较使用注意力机制的神经网络模型,本文使用BERT模型动态预训练词向量,并引入改进的词性因子,可以更好地学习词向量的语义和句法信息,有效地优化词向量。

4 结 语

本文针对传统的文本表示方法存在的特征稀疏、语义不足等问题,提出一种基于改进词性信息和ACBiLSTM的混合神经网络模型。改进BERT模型预训练的词向量,利用CNN卷积层初步提取特征,输入到BiLSTM网络中进一步获得上下文时序信息,结合注意力机制获得文本最终特征表示。在三个公共数据集上进行实验验证,结果表明本文模型取得了良好的效果,不仅考虑词性信息的影响,还可以捕捉短文本的局部特征和上下文的时序信息,防止主要信息丢失,突出关键信息,有效地提高短文本分类精度,具有一定应用价值。

本文提出的算法在使用BERT模型和BiLSTM模型的过程中,由于都是进行双向操作,会消耗较多的时间,因此未来研究将对这一问题进行改进,在不影响分类精度的前提下,尝试优化时间复杂度。

猜你喜欢
语义向量短文
真实场景水下语义分割方法及数据集
向量的分解
KEYS
Keys
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
汉语依凭介词的语义范畴
短文改错
短文改错