基于图的自动摘要相关论文选读
- AMR 生成式摘要
- AMR 多文档摘要两篇
- pagerank in encoder attention
- 基于主题建模构建图,使用 ILP 做抽取式摘要
- 基于 GCN 的多文档抽取式摘要
- STRUCTURED NEURAL SUMMARIZATION
Toward Abstractive Summarization Using Semantic Representations
- 探讨了如何从原文的 AMR 图构建摘要的 AMR 图,即 graph summarization
- 三步走,source graph construction, subgraph prediction, text generation
¶Source Graph Construction
- 这一步是将多句 graph 合并为 source graph,一些 concept node 需要合并
- 首先 AMR 不会重复建模提到的 concept,而是将提到的频次作为特征补充进 node embedding 当中
- 节点合并包含两步:把一些节点的子树合并,接着把相同的概念节点合并
- 子树合并之后的节点名称里包含了所有子树节点的信息,之后只有完全相同的节点才能合并,因此经过一次子树合并之后的节点很难再次合并(很难完全相同),这里需要做一些共指消解的工作 (future work)
- 一些节点之间会有多条边,取出现次数最多的两个边的 label,合并,抛弃其他边
- 相同的概念节点直接合并
- 加一个总的 root 节点连接各个句子的 root 节点
- 这样连接出来的 source graph 对于 gold summary graph 的边覆盖度不高,因此对于 source graph 还后处理一下,将所有节点之间加入 null 边,提高覆盖率
¶Subgraph Prediction
- 子图预测问题是一个 structured prediction problem
- 作者构建子图打分函数为模型参数线性加权边和节点的特征:
- decoding:基于 ILP 选出得分最大的子图。这里的约束条件是选出的子图必须合法且是联通的,可以通过指示函数 v,e 和流量 f 来描述。
即第 i 个节点被选中, 即 i,j 两个节点之间的边被选中, 代表从 i 流向 j 的流量,那么合法即:
- 联通即:从根流出的流量到达选中的每一个概念节点,每一个概念节点消耗一个流量,只有边被选中时流量才可能通过,这三个约束用数学描述为:
- 另外作者只假设了每一个概念只有一个父节点,即构建为树的形式
$$
\sum j e{i,j} \leq 1, \quad \forall i, j \leq N
$$ - 这种形式的 ILP 在 sentence compression 和 dependency parsing 中都出现过,作者使用 gurobi 的 ILP 算法完成最优化
- 可以附加一个约束来限制摘要的长度,例如选中的边总数不大于 L
- 以上是 decoding,即选子图,但选图基于分数,而分数由参数加权,因此还包含了一个参数的优化。我们需要一个损失函数来衡量 decoded graph 和 gold summary graph 之间的差距,然而 gold summary graph 可能不在 source graph 当中,作者借鉴了机器翻译中的 ramp loss,作者对比了感知机所用的 perceptron loss, structured SVM 中的 hinge loss 以及 ramp loss,其中
是 source graph,$G^{} $
\begin{array}{ll}{\text {perceptron loss: }} & {-\text { score }\left(G^{}\right)+\max _{G} \text { score }(G)} \ {\text {hinge loss: }} & {-\text { score(G^{} ) }+\max _{G}\left(\text {score}(G)+\operatorname{cost}\left(G ; G^{}\right)\right)} \ {\text {ramp loss: }} & {-\max _{G}\left(\text {score}(G)-\operatorname{cost}\left(G ; G^{}\right)\right)+\max _{G}\left(\text {score}(G)+\operatorname{cost}\left(G ; G^{}\right)\right)}\end{array}
$$ - cost 对多余的边惩罚
- perceptron loss 很简单,就是希望缩小 gold graph 与 decoded graph 之间的分数差距
- hinge loss 在 ILP 中加入对多余边的惩罚,使得 decoded graph 的分数尽可能大,而不仅仅是和 gold graph 接近,这里 decoded 的 graph 会比直接计算分数得到的 graph 分值上差一点
- ramp loss 相比 hinge loss 就是在前面一项加了一个反向的惩罚,实际 ramp loss 依然是在缩小两个图的分数差距,只不过一个图比 best decoded graph 分值高一点,另一个比 best decoded graph 低一点,放宽松了条件
¶Generation
- 作者目前只统计了 decoded graph 中概念节点对应的 text span,并没有生成可读的摘要,因此只计算了 ROUGE-1
Abstract Meaning Representation for Multi-Document Summarization
- 这是上一篇的扩展
- 用 AMR 构建有根有向无环图,节点是概念,边是语义关系:
- 节点:可能是 PropBank 里的一个 frameset(命题),一个普通英语单词,一个特殊类别词,一个字符串,
- 边:可以是 PropBank 里的命题关系,或者魔改之后的关系
- 整个系统三个部分
- source sentence selection:输入一系列文章,然后挑出关于某一主题不同方面的句子
- content planning:输入一系列句子,输出摘要图
- surface realization:将图转换为可读的摘要句
- 三个组件可分别用领域内小语料优化
¶Source Sentence Selection
- 因为是多文档摘要,因此对每一个输入样例(多篇文档),做谱聚类,每个簇再挑若干句子
- 这样就有多个句子组,之后和更改了输入的摘要模型一样,需要重新构造训练对,这里是要构造接下来提供给 content planning 的训练对,即句子组和对应的 gold summary 的 AMR graph。就对 gold summary 里的每一句,和句子组算一个平均相似度,选相似度大的作为训练对里的句子组。平均相似度有:
- LCS
- VSM
- Smatch 方法,参考了论文 Smatch: an evaluation metric for semantic feature structures
- Concept Coverage,即最大覆盖 gold summary AMR graph 里的 concept
- 四种相似度也做了 ablation
¶Content Planning
- 训练对是句子组和 summary 的 AMR graph,自然这个部分就是学习这个转换过程
- 首先要把句子组里的 summary 转成 AMR graph,作者试用了两种 AMR Parser,JAMR 和 CAMR
- 之后把句子组里的每一句也转成 AMR graph,并且做合并(这一部分论文描述并不清楚)
- 相同概念节点合并?
- 做共指消解,把相同指代概念节点合并
- 一些特殊节点需要把子树整合进节点信息里,叫 mega-node,其实就是取消不必要的展开,将展开的具体信息直接写进节点里,例如 date entity :year 2002 :month 1 :day 5。这些 mega-node 只有完全相同时才能合并
- 最后生成一个 root 节点,把各个子图的 root 节点连起来
- 通过最后一个操作貌似相同概念节点合并是同一子图内相同节点合并?
- 接下来设计算法,从源 AMR graph 中识别出摘要的 AMR graph,包含两部分
- graph decoding:通过整数线性规划 (ILP) 识别出一个最优摘要图:首先构造一个参数化的图打分函数,将每一个节点特征和边特征通过参数加权并累加得到分数,这里的特征是手工构造,参考 Fei Liu 他的一系列 AMR summarization 的论文;接下来做一个 ILP,要求找一个子图,使得得分最大,限制为 L 个节点而且子图是连接的。
- parameter update:最小化系统解码出的摘要图和 gold summary 图之间的差距。这一步优化的是上一步打分函数中的特征加权参数。构造损失函数来衡量 decoded graph 和 gold graph 之间的差距。有时 gold graph 不能从 source graph 中解码出来,这时就采用 structed ramp loss,不仅仅考虑 score,还考虑 cost,即 gold graph 和 decoded graph 就是否将某个节点或者边加入摘要达成一致的程度
¶Surface Realization
- 将图转成句子
- AMR 图并不好转成句子,因为图并不包含语法信息,一个图可能生成多句不合法的句子,作者两步走,先将 AMR 图转成 PENMAN 形式,然后用现有的 AMR-to-text 来将 PENMAN 转成句子
Towards a Neural Network Approach to Abstractive Multi-Document Summarization
- 这篇论文是上篇论文的扩展,从单文档摘要扩展到多文档摘要,主要是如何将大规模单文档摘要数据集上预训练好的模型迁移到多文档摘要任务上
- 相比单文档模型,编码端又加了一层文档级别的编码,文档之间并没有依存或者顺序关系,因此没必要用 RNN,作者直接用了线性加权,值得注意的是这个加权的权重不应该是固定或者直接学习出来的,而应该根据文档本身决定,因此作者给权重加了一个依赖关系学习出来,依赖文档本身和文档集的关系:
$$
w_{m}=\frac{\mathbf{q}^{T}\left[\mathbf{d}{m} ; \mathbf{d}{\Sigma}\right]}{\sum_{m} \mathbf{q}^{T}\left[\mathbf{d}{m} ; \mathbf{d}{\Sigma}\right]}
$$ - 注意力的机制基本不变,decoder 的初始状态从单文档变成多文档编码,注意力加权从单篇文档句子数量到多篇文档句子数量。这里带来的一个问题是多文档的句子数量太大了,很多注意力被分散的很均匀,加权之后包含的信息量太大。因此作者将 global soft attention 给截断了一下,只有 top k 个句子可以用权重加权,其余的句子直接在编码中被抛弃
- 单文档到多文档的迁移其实并不是论文的重点,作者在 CNN/DM 上训练单文档的模型部分,之后在少量 DUC 数据集上训练多文档的部分,但是这两个数据集挺一致的,很多工作在 CNNDM 上训练在 DUC 上测试也能取得不错的效果。
- 论文的 ablation 做的非常详细,对比了多种功能图模型方法下的效果,包括 Textrank,Lexrank,Centroid
- 值得注意的是作者使用了编辑距离来衡量文摘的抽象程度
Abstractive Document Summarization with a Graph-Based Attentional Neural Model
- 万老师团队的一篇论文,想法非常的好,重要的部分在两点:
- hierarchical encoder and decoder:由于需要在句子级别上做编解码以适应图打分的操作,所以采用了分层的 seq2seq,无论编码解码都是 word-level 加 sentence-level
- graph-attention:这里用的图是其实是 pagerank 里的全连接图,相似度直接用 enc-dec 的隐层向量内积来衡量,然后利用 topic-aware pagerank 来重新计算句子级别注意力权重。
- 在编解码阶段,我们利用隐层来计算相似度,这和原始的 attention 是一样的,只不过原始的 attention 加了一个参数矩阵(现代的 attention 连参数矩阵都懒得加了)使得这个相似度能够体现出注意力权重(分数),那么 graph-attention 就是在这个相似度上直接计算 pagerank 的 markov 链迭代,认为马氏链的稳定分布
就是重新 rank 之后的句子分数,这里有一点论文里没讲,作者做了一个假设,即编解码时拿到的已经是稳定状态,而不是从头迭代,因此可以令 ,直接算出稳定分布:
$$
\mathbf{f}(t+1)=\lambda W D^{-1} \mathbf{f}(t)+(1-\lambda) \mathbf{y} \
\mathbf{f}=(1-\lambda)\left(I-\lambda W D{-1}\right){-1} \mathbf{y} \
$$ - 基本形式与 pagerank 一致,一部分是基于相似矩阵的 salience 分配,另一部分补上一个均匀分布
保证马氏链收敛 (这里感觉应该是简略了了,把均匀转移矩阵乘以 f 直接写成了均匀分布),值得注意的是这是在 sentence-level 的编解码隐层状态做的计算,因此是计算给定某解码句下,各个编码句的 graph attention score,如何体现这个给定某解码句?那就是用 topic-aware pagerank,将解码句看成 topic,把这个 topic 句加入 pagerank 的图里,并且 y 从均匀分布改成 one-hot 分布,即保证了解码句在 graph 中的影响力,并借此影响其他句子。 - 之后借鉴了 distraction attention 使得注意力不重复:
$$
\alpha_{i}^{j}=\frac{\max \left(f_{i}{j}-f_{i}{j-1}, 0\right)}{\sum_{l}\left(\max \left(f_{l}{j}-f_{l}{j-1}, 0\right)\right)}
$$ - 在解码端也做了一些小技巧,包括:
- OOV 的处理,用 @entity + 单词长度来作为标签替换所有容易成为 OOV 的实体,并尝试把解码句中生成的实体标签还原,根据单词长度在原文中查找
- hierarchical beam search:word-level 的 beam search 打分考虑了 attend to 的原文句子和当前生成部分的 bigram overlap,希望这个 overlap 越大越好;sentence-level 的 beam search 则希望生成每一句时 attend to 的原文句子不相同,这一段描述不是很清楚,应该是生成每一句时会 attend N 个不同的原文句产生 N 个不同的 decoded sentence
- 本文的层次编解码其实起到了很关键的作用,作者并没有一股脑用单词级别的注意力,还是根据句子关系构件图并重排序,在 beam search 也充分利用了两个层次的信息
- 从 ablation 来看,graph attention 和 sentence beam 的效果其实不大,影响 ROUGE 分数最大的是考虑了 bigram overlap 的 word-level beam search,这也暴露了 ROUGE 的问题,即我们之前工作中提到的 OTR 问题
Topical Coherence for Graph-based Extractive Summarization
- 基于主题建模构建图,使用 ILP 做抽取式摘要
- 作者使用了二分图,一边是句子节点,一边是主题节点,两组节点之间用边连接,边的权值是句子中所有单词在某一主题下概率的对数和,除以句子长度做归一化
- 使用 HITS 算法在二分图上计算句子的重要程度
Graph-based Neural Multi-Document Summarization
- 用 GCN 做抽取式摘要,在这里 GCN 起到了一个特征补充的作用,原始的做法就是一个 two-level GRU,documents cluster 做一个 embedding,其中每一个 sentence 有一个 embedding,然后类似 IR,拿 sentence embedding 和 documents embedding 做一个比较算出 salience score,之后再用一个贪心的方法根据分数抽句子,大框架依然是打分 - 抽取的思路
- GCN 加进了两层 GRU 之间,即句子的 embedding 在一个句子关系图下做了三层 GCN,之后再由 documents 层次的 GRU 生成 documents embedding
- 这里就关注两点:句子关系图如何构建
- 句子关系图作者试了三种:
- 最 naive 的,tfidf 的 cosine 距离
- Towards Coherent Multi-Document Summarization 一文中的 ADG
- 作者在 ADG 上改进的 PDG
- 之后直接套 GCN 传播就行了
v1.4.14