《Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model(ACL-2019)》论文阅读

前言

Abstract

本文要解决的是通过文章生成评论,对与传统 encoder-decoder 的模型来说,文章通常过长,所以作者提出一个 Graph-to-Sequence 的模型来生成评论。

1、Introduction

说了一些生成评论面临的一些问题:

  • 新闻可能很长,用经典的 sequence-to-sequence 效果不一定好;另外标题又太短,提供不了足够的信息。
  • 新闻标题有时使用与文章内容语义不同的 hyperbolic expressions。
  • 用户评论时关注的点不同,评论具有多样化。

然后表示本文有三个贡献点:

  • 提出用一个主题交互图来表示文章。
  • 提出一个 grahp-to-sequence 的模型来从图中生成评论。
  • 发布了一个数据集,包括标题、内容、评论。

2、Related Work

这部分提了一些图卷积神经网络的应用,没什么好说的,过。

3、Graph-to-Sequence Model

3.1 Graph Construction

构建图大致过程如下:

先使用现成的工具(如Stanford CoreNLP)对新闻文章进行分词和命名实体识别。由于单独的命名实体识别不足以涵盖文档的主要重点,我们进一步用了关键字提取算法,如TextRank来获取额外的关键字。

在得到新闻的关键字κ之后,我们将文档的每个句子与其对应的关键词相关联。这里使用一种简单的策略,如果k出现在句子中,则将句子s分配给关键字k。请注意,一个句子可以与多个关键字相关联,这隐含地表示两个主题之间的关联。不包含任何关键字的句子被放入一个名为“Empty”的特殊顶点。因为文章的标题对理解新闻至关重要,所以我们还添加了一个名为“Title”的特殊顶点,其中包含文章的标题句子。

如果顶点vi和vj共享至少一个句子,我们在它们之间添加边缘eij,其权重由共享句子的数量计算。这种设计背后的直觉是,将两个关键词组合在一起的句子越多,这两个关键词越接近。还可以使用基于内容的方法,例如vi和vj的内容之间的tf-idf相似性。

3.2 Vertex Encoder

将图中的每个顶点编码为一个向量 vv,顶点编码器由两部分组成,一是嵌入模块,二是用 multi-head self-attention。

对于单词序列中的第 ii 个单词 wiw_i,先查找其词嵌入 eie_i(文章中关键词和非关键词共享一个嵌入表),然后将位置信息 pip_i 添加到单词中,其中,关键词的位置信息为 p0p_0
ϵi=ei+pi\epsilon_i = e_i + p_i

得到了每个词向量后,扔进一个 multi-head self-attenton 模块得到每个词的 hidden vector aia_i,(ps:关于 self-attention 可以去看我的 Transformer 那篇博客),最后使用 a0a_0 作为整个顶点的向量,也就是关键词的那个向量(因为关键词在最前面,位置信息为 p0p_0)。

3.3 Graph Encoder

在得到每个顶点的向量后,然后用 GCN 进行一个常规的卷积操作,这里就不展开了,直接放论文里的公式:

《Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model(ACL-2019)》论文阅读
A 为邻接矩阵,D 为度矩阵, W 为需要学习的参数,H 为特征矩阵。为了避免 over-smoothing 问题(个人理解是,堆叠的层数越多,节点考虑的领域个数越多,导致最终所有节点的表示会趋于一致),使用了 residual connection :

gl+1=Hl+1+Hlg^{l+1} = H^{l+1} + H^l

由于新闻标题是一个重要的信息,我们使用编码器标题顶点的隐藏输出作为解码器的初始状态 t0t_0。也可以使用其他池方法,如最大池或平均池。

3.4 Decoder

解码是一个标准的 RNN+Attention,给定初始状态 t0t_0GCN<g0,gi,,gn>GCN的输出<g_0, g_i, \cdots, g_n> ,论文中公式如下:

《Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model(ACL-2019)》论文阅读
《Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model(ACL-2019)》论文阅读

cic_i 即 context vector,是对 encoder 输出的 hedden states 的一个加权平均。嗯…不展开讲了,自行百度 seq2seq+attention。

4、Experiment

4.1 Corpus

作者发布了一个语料,地址:https://pan.baidu.com/share/init?surl=b5zAe7qqUBmuHz6nTU95UA,数据信息如下:

《Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model(ACL-2019)》论文阅读
4.2 Experiment Settings

说了一些超参的设置。

4.3 Evaluation Metrics

作者选了三个评价指标:

  • Coherence:这个指标评估对新闻文档的评论的一致性。
  • Informativeness:多样性?
  • Fluency:句子流畅度。
4.4 Baseline Models

作者选了三个 baseline,然后 Decoder 全都是用 RNN+Attention:

  • Seq2seq:这里是引用的18年的论文,我没看过。
  • Self-attention: 用 self-attention 做encoder
  • Hierarchical-Attention:同上,引用的论文我没看过。
4.5 Results

实验结果如下:
《Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model(ACL-2019)》论文阅读

5、Conclusion

过。