一种改进中文自动文本摘要自注意力计算的方法

文档序号:24875081发布日期:2021-04-30 12:49阅读:80来源:国知局
一种改进中文自动文本摘要自注意力计算的方法

本发明属于计算机自然语言处理技术领域。其中主要涉及的知识包括一些attention运用、词向量表示、句子抽取生成、transformer模型使用方法、深度学习自动文本摘要方法等。



背景技术:

随着互联网产生的文本数据越来越多,文本信息过载问题日益严重,近几年文本信息的爆发式增长,人们每天能接触到海量的文本信息,如新闻、博客、聊天、报告、论文、微博等。从大量文本信息中提取重要的内容,已成为我们的一个迫切需求,而自动文本摘要(automatictextsummarization),对各类文本进行一个“降维”处理,为文本的简约化提供了良好的手段。

自动文本摘要有非常多的应用场景,如自动报告生成、新闻标题生成、搜索结果预览等。

在自然语言处理领域,bahdanau等人在14年发表的论文《neuralmachinetranslationbyjointlylearningtoalignandtranslate》中,第一次将attention机制应用于nlp中。attention机制是一种注意力(资源)分配机制,在某个特定时刻,总是重点关注跟它相关的内容,其他内容则进行选择性忽视,这样的对齐能让文本翻译或者摘要生成更具针对性。romainpaulus等人在2017年提出了内注意力机制(intra-attentionmechanism)和新的训练方法,通过架构创新和若干tricks提升模型概括长文本的能力,在cnn/dailymail、newyorktimes数据集上达到了新的state-of-the-art,有效地提升了文本摘要的生成质量。google团队2017年发布了名为《attentionisallyouneed》的文章,即不用cnn和rnn单元,只用self-attention和encoder-decoderattention,就完全实现了端到端的翻译任务。并且在wmt-14英德、英法翻译任务中,bleu值达到了28.4和41.0的高分。因为同样可以并行计算,模型的训练及生成速度也有所提升。self-attention相比于之前的模型更加关注句子的内部结构。

目前,传统的transformer模型以及attention机制运用在文本摘要方向仍然存在一些问题。tranformer-based模型在处理长文本时有着天然的劣势。因为传统模型采用的是“全连接”型的attention机制,即每一个“token”都要与其他所有“token”进行交互。其attention复杂度高达o(n2)。此前的解决办法是将长文切分为若干个较短的textspan,然后逐个处理。这就导致不同的textspan之间无法进行交互,因而必然存在大量informationloss。当然,我们也可以通过添加一些其他机制来加强这种textspan之间的交互。但这种新增机制实现起来通常比较复杂,而且往往是限定于特定任务的,通用性不强。



技术实现要素:

基于上述分析,本发明主要设计了一种进行中文文本摘要时,改进attention注意力计算的方法。整体网络模型借助transformer模型,主要包含两个部分:文本编码器以及文本解码器。本发明希望将中文自动文本摘要attention机制运用在中文文本摘要时计算的复杂度。在对模型进行训练时,为了弥补训练数据的不足,需要进行多组微博数据的标注补充。模型训练与测试所用的数据来自于lcsts开源数据集

首先对数据集划分为训练集与测试集。可用的摘要不仅需要保证生成的摘要是语言通顺的,还需要保证摘要表达的意思是文章的主要内容,且摘要表达了一个完整的语义。

在训练集上,对文本数据首先去除空格以及特殊字符,并根据频率去除低频词或字,然后构建出我们所需要的字典,字典的key为词,value为每个词的对应的id。然后将需要处理的文章根据字典转换为相应的id,根据transformer模型规则构建文本位置信息。attention方法的设计机制是对于每一个token,只对固定窗口大小的附近token计算localattention,同时运用空洞卷积的理论以及添加随机attention分布进行计算在对每一个进行token编码时,普通机制只能考虑到长度为s的上下文。本发明改进借鉴了空洞卷积的思想,提出空洞随机滑窗机制,在不增加计算负荷的前提下,拓宽模型视野。其做法中被attend到的两个相邻token之间会存在大小为d的间隙。当transformer的层数为n时,则视场范围可达到s*d*n。由于考虑了更加丰富的上下文信息,空洞随机窗口机制比普通attention机制表现更佳。计算attention矩阵时先建立空洞窗口注意力矩阵以及随机注意力矩阵,之后将两个矩阵结合得到试验用矩阵。

为个实现上述目的,本发明采用以下技术方案:为了更好的实现整个方法,首选python作为方法编写语言。模型的实现与训练主要使用了pytorch进行实现。在设计空洞卷积矩阵时,规定空洞率为2,对每一个“token”随机两个随机注意力。在原有的attention计算公式,

attention(q,k,v)=softmax(q,kt,v)

上进行加工,模型的输入序列为x,

x=(x1,x2,...,xn)∈r

其中qds,kds,vds表示本发明中使用的空洞随机窗口qkv矩阵,ni表示所有需要计算attention的个数。

最后再利用rouge-n来进行结果优劣的评分,rouge是评估自动文摘以及机器翻译的一组指标。它通过将自动生成的摘要或翻译与一组参考摘要(通常是人工生成的)进行比较计算,得出相应的分值,以衡量自动生成的摘要或翻译与参考摘要之间的“相似度”。其中rouge-n的公式,

一种改进中文自动文本摘要自注意力计算的方法主要包括:

步骤1、收集微博文章摘要数据集,并对微博文本摘要数据进行清洗。

步骤2、构建attention计算矩阵。

步骤3、fine-tuning新的attention-based网络,直至模型收敛。

步骤4、对步骤3构建的模型进行训练相同数据集,分别使用原有attention和改进后的空洞随机窗口attention进行训练

步骤5、使用步骤4的训练结果,选择在测试集上rouge评分最优作为结果并计算。

作为优选,步骤1采取以下步骤:

步骤1.1、将微博文章摘要划分为训练集和测试集。

步骤1.2、在训练集上,对文本数据首先去除空格以及特殊字符,并根据频率去除低频词或字,然后构建出我们所需要的字典,字典的key为词,value为每个词的对应的id。

步骤1.3、使用词嵌入向量对数据进行编码。

步骤1.4、根据transformer模型规则添加positionid。

作为优选,步骤2具体包括以下步骤:

步骤2.1、使用在transformer定义的attention矩阵的基础上建立attention计算矩阵。

步骤2.2、借助空洞卷积的思想对于每个“token”定义空洞率为2的空洞卷积局部attention矩阵

步骤2.3、对每个“token”给予随机2-3个attention计算块,得到随机attention矩阵。

步骤2.4、将每个“token”的空洞卷积attention矩阵和随机attention矩阵相结合得到空洞窗口随机矩阵

作为优选,步骤3具体包括以下步骤

步骤3.1、选择损失函数为交叉熵损失函数(crossentropyloss):

步骤3.2、加载预训练模型,训练新的attention-based网络

步骤3.3、设置预训练模型后接的全连接网络节点个数为1024

步骤3.4、dropout值设置为0.8

步骤3.5、观察loss和accuracy,当loss与accuracy收敛时停止迭代

作为优选,步骤4具体包括以下步骤

步骤4.1、对于每一个input做embedding,得到n个embedding矩阵后分别计算attention。

步骤4.2、使用相同的embedding,换成本发明的空洞随机窗口attention计算矩阵计算attention。

作为优选,步骤5具体包括以下步骤

步骤5.1、使用rouge-n评分作为两种attention计算矩阵得到的最终结果的优劣。

步骤5.2、对比两种attention矩阵模型训练结果的rouge-n评分,得到最终结论。

与现有技术相比,本发明具有以下优势:

本发明除了关注改进attention的计算复杂度的同时,让其能够更好的运用在中文文本摘要领域方向。改进了transformer的传统attention机制对于每一个token,只对空洞窗口大小的附近token计算localattention以及添加随机attention,虽然只计算localattention会让计算稍简单,但是增加随机attention能更好的提升上下文的关联度。在原attention计算矩阵的时间复杂度为o(n2)的基础上,将时间复杂度降低至o(n),同时该方法通用型也较强,能够运用在多种任务,不限于中文文本摘要。

附图说明:

图1:本发明流程结构图

图2:encoder-decoder结构图

图3:attention计算矩阵示例以及形成过程

表1:不同attention矩阵计算出的结果在rouge-n上的评分结果

具体实施方式:

以下结合具体网络模型实例,并参照附图,对本发明进一步详细说明。

本发明所用到的硬件设备有pc机一台,1080显卡1块;这一部分,我们进行了广泛的实验,以探讨我们提出的方法的影响。本发明设计的网络架构运行流程图如图1所示,具体包括以下步骤:

步骤1、收集微博文章摘要数据集,并对微博文本摘要数据进行清洗。

步骤2、构建attention计算矩阵。

步骤3、fine-tuning新的attention-based网络,直至模型收敛。

步骤4、对步骤3构建的模型进行训练相同数据集,分别使用原有attention和改进后的空洞随机窗口attention进行训练

步骤5、使用步骤4的训练结果,选择在测试集上rouge评分最优作为结果并计算。

作为优选,步骤1采取以下步骤:

步骤1.1、将微博文章摘要划分为训练集和测试集。

步骤1.2、在训练集上,对文本数据首先去除空格以及特殊字符,并根据频率去除低频词或字,然后构建出我们所需要的字典,字典的key为词,value为每个词的对应的id。

步骤1.3、使用词嵌入向量对数据进行编码。

步骤1.4、根据transformer模型规则添加positionid。

作为优选,步骤2具体包括以下步骤:

步骤2.1、使用在transformer定义的attention矩阵的基础上建立attention计算矩阵。

步骤2.2、借助空洞卷积的思想对于每个“token”定义空洞率为2的空洞卷积局部attention矩阵

步骤2.3、对每个“token”给予随机2-3个attention计算块,得到随机attention矩阵。

步骤2.4、将每个“token”的空洞卷积attention矩阵和随机attention矩阵相结合得到空洞窗口随机矩阵

作为优选,步骤3具体包括以下步骤

步骤3.1、选择损失函数为交叉熵损失函数(crossentropyloss):

步骤3.2、加载预训练模型,训练新的attention-based网络

步骤3.3、设置预训练模型后接的全连接网络节点个数为1024

步骤3.4、dropout值设置为0.8

步骤3.5、观察loss和accuracy,当loss与accuracy收敛时停止迭代

作为优选,步骤4具体包括以下步骤

步骤4.1、对于每一个input做embedding,得到n个embedding矩阵后分别计算attention。

步骤4.2、使用相同的embedding,换成本发明的空洞随机窗口attention计算矩阵计算attention。

作为优选,步骤5具体包括以下步骤

步骤5.1、使用rouge-n评分作为两种attention计算矩阵得到的最终结果的优劣。

步骤5.2、对比两种attention矩阵模型训练结果的rouge-n评分,得到最终结论。

图1表示了本发明的研究方法,图2表现了transformer中的encoder-decoder核心结构。本发明研究核心在图3展现,图3左上方为原transformer的attention计算矩阵,右上方为随机attention计算矩阵,左下方为空洞窗口attention计算矩阵,右下方为两矩阵结合得到的空洞窗口随机attention计算矩阵。表1展示了不同attention计算矩阵在rouge-n上的表现,能够看出本发明在lcsts数据集上rouge-n评分超越了transformer原有的attention机制,同时在训练中复杂度也从o(n2)降低至o(n)。

表1

以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1