公开/公告号CN112733498A
专利类型发明专利
公开/公告日2021-04-30
原文格式PDF
申请/专利权人 北京工业大学;
申请/专利号CN202011226337.6
申请日2020-11-06
分类号G06F40/126(20200101);G06F40/242(20200101);G06F40/44(20200101);G06F40/58(20200101);G06N3/04(20060101);G06N3/08(20060101);
代理机构11203 北京思海天达知识产权代理有限公司;
代理人沈波
地址 100124 北京市朝阳区平乐园100号
入库时间 2023-06-19 10:48:02
技术领域
本发明属于计算机自然语言处理技术领域。其中主要涉及的知识包括一些attention运用、词向量表示、句子抽取生成、Transformer模型使用方法、深度学习自动文本摘要方法等。
背景技术
随着互联网产生的文本数据越来越多,文本信息过载问题日益严重,近几年文本信息的爆发式增长,人们每天能接触到海量的文本信息,如新闻、博客、聊天、报告、论文、微博等。从大量文本信息中提取重要的内容,已成为我们的一个迫切需求,而自动文本摘要(automatic text summarization),对各类文本进行一个“降维”处理,为文本的简约化提供了良好的手段。
自动文本摘要有非常多的应用场景,如自动报告生成、新闻标题生成、搜索结果预览等。
在自然语言处理领域,Bahdanau等人在14年发表的论文《Neural MachineTranslation by Jointly Learning to Align and Translate》中,第一次将Attention机制应用于NLP中。Attention机制是一种注意力(资源)分配机制,在某个特定时刻,总是重点关注跟它相关的内容,其他内容则进行选择性忽视,这样的对齐能让文本翻译或者摘要生成更具针对性。Romain Paulus等人在2017年提出了内注意力机制(intra-attentionmechanism)和新的训练方法,通过架构创新和若干tricks提升模型概括长文本的能力,在CNN/Daily Mail、New York Times数据集上达到了新的state-of-the-art,有效地提升了文本摘要的生成质量。Google团队2017年发布了名为《Attention Is All You Need》的文章,即不用CNN和RNN单元,只用Self-Attention和Encoder-Decoder Attention,就完全实现了端到端的翻译任务。并且在WMT-14英德、英法翻译任务中,BLEU值达到了28.4和41.0的高分。因为同样可以并行计算,模型的训练及生成速度也有所提升。Self-Attention相比于之前的模型更加关注句子的内部结构。
目前,传统的Transformer模型以及attention机制运用在文本摘要方向仍然存在一些问题。Tranformer-based模型在处理长文本时有着天然的劣势。因为传统模型采用的是“全连接”型的attention机制,即每一个“token”都要与其他所有“token”进行交互。其attention复杂度高达O(n
发明内容
基于上述分析,本发明主要设计了一种进行中文文本摘要时,改进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,K
上进行加工,模型的输入序列为X,
X=(x
其中Q
最后再利用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模型规则添加position id。
作为优选,步骤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、选择损失函数为交叉熵损失函数(Cross Entropy Loss):
步骤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计算local attention以及添加随机attention,虽然只计算localattention会让计算稍简单,但是增加随机attention能更好的提升上下文的关联度。在原attention计算矩阵的时间复杂度为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模型规则添加position id。
作为优选,步骤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、选择损失函数为交叉熵损失函数(Cross Entropy Loss):
步骤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(n
表1
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
机译: 用于与文本建立语音联系的方法和计算机,用于生成和读取文档的方法和计算机,用于复制文本文档的声音的方法和计算机以及用于编辑和评估文档中文本的方法
机译: 自动计算机控制语言翻译系统中文本的术语列表方法,涉及使用文本识别程序来处理扫描仪提供的数据
机译: 基于结构化网络知识自动生成的中文本体数据库的方法,系统,计算机设备和计算机可读介质