说明了一般文本摘要模型存在的问题:
针对存在的问题提出对应解决之道,在标准seq2seq+attention的基础之上做了改进:
Abstract 部分的扩充,介绍了抽取式和生成式两种产生摘要的方式,并说明存在的问题,这里列出了三个,比Abstract部分多了一个:不能处理OOV(out-of-vocabulary)词汇。Pointer-Generator Network可以从原文中抽取内容,所以可以处理OOV问题,可以看作是抽取式和生成式的一个综合。coverage对于消除重复非常有效。
介绍了文章所采用的产生摘要的模型:
基线模型:
标准的seq2seq模型+Attention机制:
这里是一个标准的attention计算。是encoder的第i个hidden_state,
是t时刻decoder的状态,
,
,
是学习参数。attention计算一般使用
或者
,使用
说明是先经过decoder单元(LSTM或者GRU,这里使用的LSTM)之后,再使用其输出来计算attention。使用
则表示使用上一个单元(t-1时刻)的hidden_state先计算attention,得到context vector,将其作为t时刻单元的输入。
利用LSTM单元的输出和context vector计算词的概率,并定义其损失函数。
Pointer-generator network:
这部分主要介绍了Pointer-generator network的结构。
增加,区间范围[0,1],表示decoder网络生成一个vocab中的词,还是从原文本中抽取一个词的概率。
的计算公式如下所示:
包含了attention, t时刻decoder的输入, t时刻decoder的hidden_state
。
在生成下一个词时,综合考虑生成和抽取两种方式,而不是公式(4)表示的只考虑生成的情况。其计算公式如(9),第二部分表示从原文本中抽取一个词的分布概率,其中表示前式中attention的权重。
Coverage mechanism:
实现方式,在计算t时刻的attention,即context vector 时,不仅仅考虑t时刻的hidden_state, 同时考虑已经生成的内容,这里通过0到t-1时刻的计算attention的权重来体现,权重比较大的词表示已经考虑过了,在后面的计算过程中减少其比重。计算公式:
同时,式(1)中计算权重矩阵的公式也做了相应修改,如式(11)。
定义了coverage loss,这在实验部分被证明时非常有必要的。关于这个损失函数的定义,个人也不太理解,如果有比较好的理解,欢迎留言交流。
整体的损失函数:
这部分主要介绍了相关工作,并介绍了论文采用的结构和以前的工作的结构的不同之处。