APP下载

基于LSTM结合注意力机制的长文本分类优化研究

2023-03-11于庆洋

互联网周刊 2023年3期
关键词:注意力机制文本分类

摘要:文本分类是指用计算机对文本(或其他实体)按照一定的分类体系或标准进行自动分类标记。伴随着信息的爆炸式增长,人工标注数据已经变得耗时、质量低下,且受到标注人主观意识的影响。因此,利用机器自动化对文本进行标注具有一定的现实意义,将重复且枯燥的文本标注任务交由计算机进行处理能够有效克服以上问题,同时所标注的数据具有一致性、高质量等特点。其应用场景众多,包括:情感分析、主题分类、意图识别等;其分类标签可以是:情感分析(积极、消极、中性)、主题分类(历史、体育、旅游、情感)等。传统的文本分类早期是通过模式词、关键词等,同时结合一些规则策略进行。此方法的缺点很明显,人工成本高,且召回率比较低。此后,使用经典传统的机器学习方法做文本分类任务初显成效,即“特征工程+浅层分类模型”,被称为传统机器学习方法。近些年,伴随深度学习的异军突起,基于深度学习的文本分类方法兴起,本文基于LSTM文本分类,针对LSTM网络结构的缺陷,引入注意力機制Attention,优化文本分类模型,在文本长度较长的情况下,效果尤为显著。

关键词:文本分类;LSTM;注意力机制;长文本

1. 背景

本文主要阐述的是基于机器学习、深度学习的文本分类算法,专家规则类不在讨论范围。传统的机器学习算法(浅层学习)做文本分类一般流程如图1所示。

文本预处理是通用的,可以看到除去文本预处理部分,最主要的两部分是“文本特征表示”和“分类模型”。而在基于浅层模型的文本分类任务中,由于模型往往是线性类的简单模型,表征与泛化能力较弱,并且由于模型的简单性,若想达到较好的效果,需要做很复杂的特征工程与精细化的文本处理,且强依赖算法工程师的工程经验,人工成本高。深度学习兴起后,大批量的文本分类任务开始使用深度学习。相较于传统的浅层学习,深度学习不需要过于繁重的手动特征工程。目前在深度学习中,主要用来做文本分类的网络有两种:递归神经网络(RNN)网络、LSTM网络。本文基于LSTM网络的针对长文本分类的结构性缺陷,提出引入注意力机制网络来进行重要信息的编码提取,显著提升了模型效果与性能。

2. 递归神经网络

由于文本类型的数据往往前后是有着很强的联系,故使用机器来对文本数据进行分析时,模型需要具备一定的记忆能力,由于传统神经网络结构的天然局限性,无法做到这点。递归神经网络(以下简称RNN)的出现解决了这个问题,通过在网络中添加循环,它能让信息被“记忆”得更长久。RNN是有循环的,简单来说就是允许信息从当前步骤传递到下一个步骤。其实RNN是由一个个与全连接网络相同的普通神经单元构成的,只不过这些神经单元在输出信息的同时,会将这些信息进行向后传递,这种网络结构天然满足序列类型数据的前后关联逻辑,可以说是为此类数据量身定做的特定模型结构。

3. LSTM网络

LSTM是RNN网络的一个升级版,它的提出是为了缓解RNN网络中存在的长期依赖导致的梯度消失问题。

3.1 长期依赖问题

RNN最具吸引力的一点,是它能把之前的信息连接到当前的任务上。比如我们可以用之前的词来理解现在这一步的词,如果能建立起这种潜在关联,RNN的前途将不可限量。那么,是否能真的做到?根据过往经验,不一定做得到,而且即便是做得到,效果大多数也会大打折扣。尤其是在较长的文本中,有时,相距较远的词语之间的关联性仍然是比较强的,例如,假设一段长文本有N个词(N为较大的数),在这段话中,很可能第N个词和第一个词也有比较强的相关性,此时,当我们要预测第N个词的时候,需要用到第一个词的信息,但由于文本很长,虽然RNN的特殊结构使其具备一定的记忆性,但第一个词与第N个词之间距离较长,此时已经超出了RNN的记忆能力范围,心有余而力不足,即RNN无法学习到这种长期的依赖性。此时,LSTM出现了。长期短期记忆网络,通常被称为“LSTM”也是一种RNN变体,只不过比较特殊,通过其特殊的网络结构,能缓解梯度消失问题,从而学习到长期依赖性。其结构设计的初衷完全是针对上述RNN的不足,具备序列长期依赖性的学习能力。其根本原因是由于其特殊的设计结构,缓解了梯度消失问题,将该记住的记住,该遗忘的遗忘。例如人类的大脑,如果将这个世界所有的信息均强行记住,那么一定会导致关键信息的遗忘丢失。LSTM相比于RNN的差异性是:标准RNN中只包含单个tanh层的重复模块。虽然LSTM也有与之相似的链式结构,但不同的是它的重复模块结构与RNN大不相同,是4个以特殊方式进行交互的神经网络,如图2所示。

如图3所示,从某个节点的输出到其他节点的输入,每条线都传递一个完整的向量。粉色圆圈表示pointwise操作,如节点求和,而黄色框则表示用于学习的神经网络层。合并的两条线表示连接,分开的两条线表示信息被复制成两个副本,并将传递到不同的位置。

3.2 LSTM背后的核心原理

LSTM的关键是神经单元cell的状态,即贯穿图2顶部的水平线。cell状态有点像传送带,它只用一些次要的线性交互就能贯穿整个链式结构,这其实也就是信息记忆的地方,因此信息能很容易地以不变的形式从中流过,为了增加/删除cell中的信息,LSTM中有一些控制门(gate)[1]。它们决定了信息通过的方式,包含一个sigmoid神经网络层和一个pointwise点乘操作。sigmoid层输出0到1之间的数字,点乘操作决定多少信息可以传送过去,当为0时,不传送;当为1时,全部传送[2]。像这样的控制门,LSTM共有3个,以此保护和控制cell状态,如此,便保证了LSTM可以学习到长期信息。

4. 注意力(Attention)机制

在深度学习领域,模型往往需要接收和处理大量的数据,然而在特定的某个时刻,往往只有少部分的某些数据是重要的,这种情况就非常适合Attention机制发光发热。举一个简单的小例子,在机器翻译中,例如要对“who are you”进行中文翻译,显然正确的答案是“你是谁”。那么仔细想一下,这个“你是谁”一定是一个词、一个词翻译出来的。继续思考,机器在翻译“谁”的时候,前面的“who are you”这三个词里面哪个词对此刻的翻译比较重要一些,还是说应该是同等重要,答案显然是“who”这个词此时比较重要,这就是注意力机制:对于不同的输入部分,经过注意力网络算子的计算,赋予不同部分(隐藏层或者输出层)动态权重,从而实现动态加权的效果。一般情况下,在深度学习中,注意力机制主要有两个主要部分构成:注意力打分函数与加权平均,后者理解起来不困难,前者比较难理解,通俗地讲,打分函数就是为后面的加权平均提供权的计算,不同的注意力机制主要区别就在于注意力打分函数的不同。假设现在我们要对一组输入H=[h1,h2,h3,...,hn],使用Attention机制计算重要的内容,这里往往需要一个查询向量query(这个向量往往和你做的任务有关) ,然后通过一个打分函数计算查询向量query和每个输入hi之间的相关性,得出一个分数。接下来使用softmax函数对这些分数进行归一化,归一化后的结果便是查询向量query在各个输入hi上的注意力分布 a=[a1,a2,a3,...,an],其中每一项数值和原始的输入 H=[h1,h2,h3,...,hn]一一对应。以ai为例,相关计算公式如下:

这里计算出的α即为注意力权值,为后面的加权平均提供了依据。

5. 基于LSTM网络结合注意力机制优化的长文本分类

上述提到,基于LSTM提取文本的语义,相较于基础RNN,在学习长距离依赖方面,具有明显的优势。但如果文本长度较长,LSTM网络也还是会出现将离当前词距离较远的词信息遗忘掉的情况,如果每一步骤或者大部分步骤都出现类似的问题,会造成对全文的理解出现较大的偏差,导致文本分类的准确性大大下降[3]。

如图4所示,假设文本长度为T,则在经过T个时间步骤后,LSTM会输出T个能表征对应文本信息的隐向量h,根据前述阐释,由于LSTM输出的每个隐向量都会送入下一个LSTM的神经单元,故最后一个时刻的输出hT是包含了全文信息的,可使用此hT来做分类,送入softmax函数,从而输出分类概率分布。如果我们在对长文本做分类时,完全按照此做的话,会出现前面提到的问题。经过深入分析,原因如下:

(1)虽然LSTM有更强的记忆能力,能较好地保留距离自己较远的词信息,但如果文本长度较长,效果也是有限的,随着文本长度的增加,蕴含的信息量也越发增大,会导致信息覆盖,导致LSTM可能因为一些不重要的信息,遗忘掉了对于文本理解更重要的某些重要的词信息。

(2)只使用最后一个时刻的输出向量来表征全文信息,致使LSTM丢掉了前面很多对理解全文有重要提示作用的信息。综上两点,不难想出对应的解决思路:将LSTM每个时刻的输出向量hi均用作分类任务,形成一个对全文的综合信息理解的向量h,那么这个h如何形成呢?最直接能想到的就是将所有时刻的hi做一个平均计算AVG。但有没有更好的方式呢?深度思考一下,每个时刻的隐向量对于全文的理解贡献度都是一样的吗?答案多半是否定的。那么如何做更好呢?结论呼之欲出,对于不同的文本,其每个位置的词语所含信息对于理解该文本的贡献度是不同的,针对此现象,如果我们能对这些词语对应的LSTM输出隐向量做一个加权平均,做到对于不同文本,每个位置的词对其权重不同,不仅能有效提取信息,并且解决了上述LSTM的一个大问题:能够将LSTM遗忘掉的信息重新输入回来,那么根据上面的阐述,很容易联想到注意力机制Attention。在LSTM基础上引入注意力机制作为长文本分类模型的优化原理如图5所示。

在LSTM网络的输出端加入Attention网络α(ht), 用于计算每个时刻输出隐向量的注意力权值αi, 注意力打分函数有以下几种选取:

1)加性模型:s (h,q)=vTtanh(Wh+Uq)

2)点积模型:s(h,q)=hTq

3)缩放点积模型:s(h,q)=hTqD

4)双线性模型:s(h,q)=hTWq

以上公式中的参数W、U和v均是可学习的参数矩阵或向量,D为输入向量的维度。下边我们来分析一下这些分数计算方式的差别。本文采用第一种加性模型的方式作为注意力打分函数,计算出注意力分值后,将加权平均后的h送入softmax函数,输出分类概率结果。

6. 实验结论

分别单独使用LSTM与引入注意力机制Attention后的LSTM做长文本分类的准确度评估实验结论如表1所示。

可见,引入注意力机制Attention的LSTM做长文本分类无论在召回率、精确率、F1方面,相比于与原始的LSTM,均有显著的效果提升。

结语

本文通过探究从原始的递归神经网络RNN到LSTM的核心原理,透过原理研究其本质特性,首先,通过分析得出RNN对于文本的长距离学习依赖问题;再次,通过对LSTM核心单元结构的剖析了解到,对于长文本而言,LSTM有时在长距离依赖方面的学习能力仍然是不足的,且很容易在全文理解上找不到重点而导致信息偏差。由此引出本文重点,即注意力机制Attention。由于Attention的结构特性,将其引入LSTM后完美地解决了上述问题。利用注意力机制的权值自动学习及加权平均,不但加强了LSTM对某些重点序列词语信息的记忆,更有针对性地看到了全文重点,使模型对长文本的理解更具备全局性及重点性,实验证明,引入注意力机制的LSTM在长文本分类方向的各项指标均显著高于单纯的LSTM,对长文本分类研究发展做出了重要贡献。

参考文献:

[1]张文静,张惠蒙,杨麟儿,等. 基于Lattice-LSTM的多粒度中文分词[J].中文信息学报,2019,33(1):18-24.

[2]关鹏飞,李宝安,吕学强,等.注意力增强的双向LSTM情感分析[J].中文信息学报.2019,33(2):105-111.

[3]胡朝举,梁宁.基于深层注意力的LSTM的特定主题情感分析[J].计算机应用研究,2019,36(4):1075-1079.

作者簡介:于庆洋,硕士,数据算法专业经理,研究方向:推荐系统、自然语言处理、深度学习、机器学习。

猜你喜欢

注意力机制文本分类
面向短文本的网络舆情话题
基于自注意力与动态路由的文本建模方法
基于深度学习的问题回答技术研究
基于LSTM?Attention神经网络的文本特征提取方法
基于注意力机制的双向LSTM模型在中文商品评论情感分类中的研究
InsunKBQA:一个基于知识库的问答系统
基于组合分类算法的源代码注释质量评估方法
基于贝叶斯分类器的中文文本分类
基于蚁群智能算法的研究文本分类
基于朴素贝叶斯分类的Java课程网络答疑反馈系统