一种基于注意力机制的文本分类方法与流程

专利2022-05-09  98


本发明属于自然语言处理中的文本分类领域,提出了一种基于注意力机制的文本分类方法。



背景技术:

伴随着信息数据量的快速增长,自然语言处理在人工智能技术兴起的浪潮中有了快速地发展。文本分类是自然语言处理的基本任务,用于自然语言处理的各个领域,如信息检索,信息过滤和语义分析等方面,但是面对大数据时代涌现出的海量的短文本信息,如何划分新领域所属的类别,其训练的样本往往是不充分的。深度学习(deeplearning)[徐翼龙,李文法,周纯洁.基于深度学习的自然语言处理综述.中国计算机用户协会网络应用分会,2018.]不仅可以实现机器学习的自动化,减少了面对不同问题的人工设计成本,还增强了对数据中潜在信息的提取和分析能力。

深度学习主要通过深度神经网络(dnn)结构学习提取不同水平和不同维度的有效表示特征,以此提高在不同抽象层次上对数据的解释能力。dnn主要包括有循环神经网络(rnn)和卷积神经网络(cnn)。基于rnn的模型视文本为词序列,并可以捕获文本分类的词间依赖关系和文本结构。与rnn不同,cnn的卷积和池化结构能够很好地提取局部特征信息,因此也成功的应用到nlp中。collobert等人首次将具有端到端训练的卷积神经网络用于自然语言处理[ronancollobertandjasonweston.2008.aunifiedarchitecturefornaturallanguageprocessing:deepneuralnetworkswithmultitasklearning.inproceedingsofthe25thinternationalconferenceonmachinelearning.acm,newyork,ny,usa,icml’08,pages160–167.]。文章[shenli,zhezhao,taoliu,renfenhu,andxiaoyongdu.2017.initializingconvolutionalfilterswithsemanticfeaturesfortextclassification.inproceedingsofthe2017conferenceonempiricalmethods.]优化了传统的cnn,提出了一种新的cnn权重初始化技术,在训练开始时对语义特征进行编码的卷积过滤器用于文本分类。随着cnn网络层数的不断增加,网络出现了梯度消失和模型降级(modeldegradation)等新问题。文献[le,h.t.,cerisara,c.,&denis,a.(2017).doconvolutionalnetworksneedtobedeepfortextclassification?arxivpreprintarxiv:1707.04108.]提出了densenet模型通过将所有输入层连接到输出层,不仅改善了不同层的信息流问题,进一步减少了梯度消失和模型降级问题的产生。针对文本数据比较复杂,使用densenet只是通过增加网络层数对文本信息进行简单的特征提取,这不仅会导致网络参数冗余,甚至会出现网络退化现象。因此通过在神经网络densenet模型中加入注意力机制,能够进一步提取文本信息更深层次的特征,也可以自动选择和关注更为重要的文本特征,进一步提高文本分类的准确性。



技术实现要素:

本发明所要解决的技术问题是为了提高文本分类的效果,提出了一种基于注意力机制的文本分类方法。本发明基于densenet神经网络模型,在利用语义特征初始化的densenet权重的基础上,结合多层次局部注意力机制到densenet中,不同模块的注意力机制随着层数的变化而自适应变化,自动选择与文本分类更为重要的文本信息特征,提高了文本分类的效果。

为解决上述技术问题,本发明所采用的技术方案是:

一种基于注意力机制的文本分类方法,包含如下几个步骤:

步骤a,文本的表示,利用word2vec将文本中的单词转换成词向量,降低文本分类的复杂度,设定输入句子中每个单词被映射成一个向量xi∈rn×d(i=0,1,2,…,n),则输入句子对应的词向量矩阵为[x1,x2,…,xn],n为句子的最大长度,d为词向量的维数;

步骤b,构建文本分类器,对输入的文本进行类别划分,文本分类器的构建基于densenet的神经网络,由卷积层、基于注意力机制的密集块、转换层、池化层和分类层五个部分组成;

步骤b-1,卷积层的构建包括两个过程:权重初始化和卷积过程;

步骤b-1-1,权重初始化,将输入的词向量构建n-gram模型,设定m为文本中的任一类别,利用朴素贝叶斯法计算类别m中的n-gram的比重r,公式如下:

式中,α是平滑参数,pm表示在类别m中包含n-gram的文本数;

表示在除m类别外其他类别中包含n-gram的文本数;

||pm||1表示文本中的类别m的数量,||.||1表示l1范数;

分别表示文本中除类别m外其他类别的数量;

利用k均值算法对比重r大于1的n-gram进行聚类,将聚类的质心向量初始化卷积层的权重;

步骤b-1-2,卷积过程,利用权重初始化的卷积层相应位置的局部表示ci为:

ci=f(wc*xi:i m-1 bc)

式中,xi:i k-1表示从第i个词到第i k-1个词对应的词向量;

wc表示权值矩阵;

bc表示对应的偏置向量;

f表示激活函数relu;

卷积层的输出c表示为:

c=[c0,c1,…,ct]

式中,[c0,c1,…,cl]为整个句子的局部表示,t表示输入文本的长度;

步骤b-2,构建基于注意力机制密集块,进行文本信息特征的深层次提取,注意力密集块由主干模块和标记模块两部分组成,主干模块基于密集块,利用densenet神经元前层传递方式进行特征传递;标记模块由卷积模块和激活函数组成;

主干模块第0层到l-1层的输出特征图通道数目分别c0,c1,c2,…,cl-2,cl-1,则第l层的输出xt为:

xt=hl([c0,c1,c2,…,cl-1])

式中,xt表示第t个主干模块的输出;

[c0,c1,c2,…,cl-1]表示将0层到l-1层的输出特征图做通道的合并;

hl代表三种操作的组合函数,分别是bn、relu以及卷积操作;

标记模块,即基于注意力密集模块,注意力系数iatt表达式如下:

iatt=f(watt*c b)

式中,iatt表示当前文本信息的重要程度;

watt表示注意权重向量;

b表示偏置向量;

f为激活函数sigmoid;

基于注意力密集模块的输出为:

yt=iatt*xt xt

式中,yt表示第t个注意力密集块的输出;

步骤b-3,构建转换层,对文本提取的特征进行降维,转换层由卷积层和最大池化层两部分组成,卷积层的卷积核大小为1×3,最大池化层的卷积核大小为1×2;

步骤b-4,构建分类层,对提取的文本特征进行归类,分类层由最大池化层和分类层两部分组成,最大池化层卷积核大小为1×7,分类层利用softmax分类器计算各个分类的概率。

本发明的有益效果是:本发明提出了一种基于注意力机制的文本分类方法,所述方法:使用基于densenet的神经网络模型;在训练神经网络之前,利用语义编码来初始化densenet的卷积过滤器的权重,使网络在训练之前对重要的语义信息进行辨识,从而在卷积层能捕获每个句子的有效位置信息;通过局部注意力密集连接的模块进行文本信息的特征提取。仿真实验证明,本发明具有更强的特征提取能力,并保留文本信息的内容,在多个文本分类的任务(包括情感分类和主题分类)效果显著,有效地提高了分类的准确性。

附图说明

图1是本发明基于注意力机制densenet模型的结构图。

具体实施方式

下面结合附图与仿真结果,对本发明提出的一种基于注意力机制的文本分类方法进行详细说明:

一种基于注意力机制的文本分类方法,其实施过程如下:

实验环境为windows1064bit操作系统,cpu为inteli7-8700,gpu为nvidiageforcertx2070,内存为16gb,实验基于深度学习框架tensorflow上实现,实验的开发语言为python。

实验的超参数设置,批量设置为64,学习率设置为1,迭代次数设置为50,使用3个基于注意力密集块,对应的过滤器数量分别为64,128,256,基于注意力密集块的卷积核大小设置为1×3,转换层中卷积层的卷积核大小为1×3,最大池化层的卷积核大小为1×2,使用交叉熵函数作为损失函数,利用adam优化器优化模型的各个参数,为了从有限的数据中获取尽可能多的有效信息,实验采用十倍交叉验证法来评估模型的性能。

文本的表示,利用word2vec将文本中的单词转换成词向量,降低文本分类的复杂度,设定输入句子中每个单词被映射成一个向量xi∈rn×d(i=0,1,2,…,n),则输入句子对应的词向量矩阵为[x1,x2,...,xn],n为句子的最大长度,d为词向量的维数;

构建文本分类器,对输入的文本进行类别划分,文本分类器的构建基于densenet的神经网络,由卷积层、基于注意力机制的密集块、转换层、池化层和分类层五个部分组成;

卷积层的构建包括两个过程:权重初始化和卷积过程;

权重初始化,将输入的词向量构建n-gram模型,设定m为文本中的任一类别,利用朴素贝叶斯法计算类别m中的n-gram的比重r,公式如下:

式中,α是平滑参数,pm表示在类别m中包含n-gram的文本数;

表示在除m类别外其他类别中包含n-gram的文本数;

||pm||1表示文本中的类别m的数量,||.||1表示l1范数;

分别表示文本中除类别m外其他类别的数量;

利用k均值算法对比重r大于1的n-gram进行聚类,将聚类的质心向量初始化卷积层的权重;

卷积过程,利用权重初始化的卷积层相应位置的局部表示ci为:

ci=f(wc*xi:i m-1 bc)

式中,xi:i k-1表示从第i个词到第i k-1个词对应的词向量;

wc表示权值矩阵;

bc表示对应的偏置向量;

f表示relu函数,relu是一种激活函数;

卷积层的输出c表示为:

c=[c0,c1,...,ct]

式中,[c0,c1,...,cl]为整个句子的局部表示,t表示输入文本的长度;

构建基于注意力机制密集块,进行文本信息特征的深层次提取,注意力密集块由主干模块和标记模块两部分组成,主干模块基于密集块,利用densenet神经元前层传递方式进行特征传递;标记模块由卷积模块和激活函数组成;

主干模块第0层到l-1层的输出特征图通道数目分别c0,c1,c2,…,cl-2,cl-1,则第l层的输出xt为:

xt=hl([c0,c1,c2,...,cl-1])

式中,xt表示第t个主干模块的输出;

[c0,c1,c2,...,cl-1]表示将0层到l-1层的输出特征图做通道的合并;

hl代表三种操作的组合函数,分别是bn、relu以及卷积操作;

bn表示批量归一化,是神经网络的标准化方法;

标记模块,即基于注意力密集模块,注意力系数iatt表达式如下:

iatt=f(watt*c b)

式中,iatt表示当前文本信息的重要程度;

watt表示注意权重向量;

b表示偏置向量;

f为sigmoid函数,sigmoid是一种取值范围为(0,1)的激活函数;

基于注意力密集模块的输出为:

yt=iatt*xt xt

式中,yt表示第t个注意力密集块的输出;

构建转换层,对文本提取的特征进行降维,转换层由卷积层和最大池化层两部分组成,卷积层的卷积核大小为1×3,最大池化层的卷积核大小为1×2;

构建分类层,对提取的文本特征进行归类,分类层由最大池化层和分类层两部分组成,最大池化层卷积核大小为1×7,分类层利用softmax分类器计算各个分类的概率,其中softmax分类器是指分配给正确分类标签的归一化概率。

本发明采用七种数据集,即mr、sst1、sst2、subj、trec、cr和mpqa评估基于注意力机制densenet模型在文本分类方面的性能。基于注意力机制的densenet模型在七个数据集上的精度均优于传统的densenet,在mr,sst2,subj,trec和mpqa上精度上分别提升了2.3%,0.6%,0.6%,0.1%,0.2%,性能优于传统的densenet模型。

为了进一步评估于注意力机制densenet模型的性能,通过eda算法增强后的数据训练模型。在数据集mr、sst2、subj、cr上,文本分类的精度分别比之前提升了1.1%、1.2%,0.6%和3.9%。由此可知,在文本分类任务中,基于注意力机制densenet模型的性能优于densenet。

综上所述,本发明提出的基于注意力机制densenet模型的文本分类方法在文本分类方面的性能优于其他模型,且能自动选择与文本分类更为重要的文本信息特征,提高文本分类的效率。


技术特征:

1.一种基于注意力机制的文本分类方法,其特征在于,包含步骤如下:

步骤a,文本的表示,利用word2vec将文本中的单词转换成词向量,降低文本分类的复杂度,设定输入句子中每个单词被映射成一个向量xi∈rn×d(i=0,1,2,…,n),则输入句子对应的词向量矩阵为[x1,x2,…,xn],n为句子的最大长度,d为词向量的维数;

步骤b,构建文本分类器,对输入的文本进行类别划分,文本分类器的构建基于densenet的神经网络,由卷积层、基于注意力机制的密集块、转换层、池化层和分类层五个部分组成;

步骤b-1,卷积层的构建包括两个过程:权重初始化和卷积过程;

步骤b-1-1,权重初始化,将输入的词向量构建n-gram模型,设定m为文本中的任一类别,利用朴素贝叶斯法计算类别m中的n-gram的比重r,公式如下:

式中,α是平滑参数,pm表示在类别m中包含n-gram的文本数;

表示在除m类别外其他类别中包含n-gram的文本数;

||pm||1表示文本中的类别m的数量,||.||1表示l1范数;

分别表示文本中除类别m外其他类别的数量;

利用k均值算法对比重r大于1的n-gram进行聚类,将聚类的质心向量初始化卷积层的权重;

步骤b-1-2,卷积过程,利用权重初始化的卷积层相应位置的局部表示ci为:

ci=f(wc*xi:i m-1 bc)

式中,xi:i k-1表示从第i个词到第i k-1个词对应的词向量;

wc表示权值矩阵;

bc表示对应的偏置向量;

f表示激活函数relu;

卷积层的输出c表示为:

c=[c0,c1,…,ct]

式中,[c0,c1,…,ct]为整个句子的局部表示,t表示输入文本的长度;

步骤b-2,构建基于注意力机制密集块,进行文本信息特征的深层次提取,注意力密集块由主干模块和标记模块两部分组成,主干模块基于密集块,利用densenet神经元前层传递方式进行特征传递;标记模块由卷积模块和激活函数组成;

主干模块第0层到l-1层的输出特征图通道数目分别c0,c1,c2,…,cl-2,cl-1,则第l层的输出xt为:

xt=hl([c0,c1,c2,…,cl-1])

式中,xt表示第t个主干模块的输出;

[c0,c1,c2,…,cl-1]表示将0层到l-1层的输出特征图做通道的合并;

hl代表三种操作的组合函数,分别是bn、relu以及卷积操作;

标记模块,即基于注意力密集模块,注意力系数iatt表达式如下:

iatt=f(watt*c b)

式中,iatt表示当前文本信息的重要程度;

watt表示注意权重向量;

b表示偏置向量;

f为激活函数sigmoid;

基于注意力密集模块的输出为:

yt=iatt*xt xt

式中,yt表示第t个注意力密集块的输出;

步骤b-3,构建转换层,对文本提取的特征进行降维,转换层由卷积层和最大池化层两部分组成,卷积层的卷积核大小为1×3,最大池化层的卷积核大小为1×2;

步骤b-4,构建分类层,对提取的文本特征进行归类,分类层由最大池化层和分类层两部分组成,最大池化层卷积核大小为1×7,分类层利用softmax分类器计算各个分类的概率。

技术总结
本发明提出了一种基于注意力机制的文本分类方法。所述方法使用基于DenseNet的神经网络模型;在训练神经网络之前,利用语义编码来初始化DenseNet的卷积过滤器的权重,使网络在训练之前对重要的语义信息进行辨识,从而在卷积层能捕获每个句子的有效位置信息;通过局部注意力密集连接的模块进行文本信息的特征提取。本发明文本分类方法具有更强的特征提取能力,并保留文本信息的内容,在包括情感分类和主题分类等多个文本分类的任务时,效果显著,有效地提高了分类的准确性。

技术研发人员:于舒娟;蔡梦梦;吴梦洁;毛新涛;黄橙;徐钦晨;张昀;王秀梅
受保护的技术使用者:南京邮电大学
技术研发日:2021.04.02
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-8830.html

最新回复(0)