【paper reading】基于重编辑机制的文本生成算法

今天分享一篇基于重编辑机制的文本生成论文
paper:Paper Abstract Writing through Editing Mechanism(发表于ACL2018)
code:源码

概述:这篇论文解决的问题是使用paper的title来生成abstract。论文使用了一种重编辑机制(参考人类写论文的过程:先写一个草稿出来,再不断的修改),是一个信息量由少到多的过程。

本次分享希望能让你:

  1. 了解重编辑机制的工作原理;
  2. 学会编写主体框架。

1. 模型总体框架

1.1 encode-decode框架

encoder-decoder模型,也就是编码-解码模型。所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。
在这里插入图片描述

1.2 Model Overview

在这里插入图片描述

2. 模型细节

论文主要包括两部分:撰写网络和编辑网络。
撰写网络:使用title作为输入,生成初稿;
编辑网络:联合title和初稿作为输入,多次编辑生成终稿。

2.1 Writing Network

在这里插入图片描述
在这里插入图片描述
两张图的红框处表示对title进行encode编码;
蓝框处表示对初稿进行encode编码;
绿框处表示解码输出。

2.2 Editing Network

在这里插入图片描述
在这里插入图片描述
即前文的self.decoder函数
红框:单向解码;
蓝框:对title的encode结果与解码器输出做attention;
绿框:对初稿的encode结果与解码器输出做attention;
黄框:对上述两个attention结果做一个基于注意力的修改门(控制要修改哪一部分)

2.3 注意力机制

对注意力机制不了解的,可以看一下这篇论文(开山之作,soft-alignment attention):
Neural Machine Translation By Jointly Learning To Align and Translate.
在这里插入图片描述

2.3.1 本文使用的方法

在这里插入图片描述
因为encoder部分为双向RNN,假设隐藏层变量维度为512维,那么encoder之后的变量维度为1024(双向);
因此,decoder部分的隐藏层变量必须设为1024维,以满足上述要求。

2.3.2 Attentive Revision Gate

这部分是对上述两个attention结果做一个基于注意力的修改门(控制要修改哪一部分),类似于GRU的门控结构:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4. 重编辑机制

这里的重编辑是指,每一次编辑都计算一次损失,比如设置编辑次数为3,那么计算一个样本可以得到三个Loss,分别对应第一,二,三次编辑:
在这里插入图片描述

3. 结果分析

Datasets: 10,874 paper title and abstract pairs.
We randomly dividing them into training (80%),
validation (10%), and testing (10%) sets.
在这里插入图片描述
小声BB:其实感觉提升不是很明显,不过人工验证部分确实要好很多,说明更符合人的观感。
个人想法:我在自己的数据集上测试过(不同任务),效果不太好。这么小的数据量,扔到预训练模型中进行fine-tune是更好的方法。不过本文是18年提出来的,那时候bert家族还没有大行其道,这种方法也不失为一种好的改进。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章