Motivation
人与人之间的对话互动是无结构和复杂的,给生成式对话摘要造成困难。无结构性体现在一段对话的关键信息往往分散在对话的不同部分的多个语句中,并且对话中经常存在很多的干扰(repetition,hesitation,false start);复杂性体现在一段对话往往存在多个说话人,并且每个说话人有不同的说话风格,难以识别出每个说话人的动作(action)。现有的生成式摘要方法存在两个问题,一方面,没有显示的建模语句(utterance)之间的依赖关系,而语句之间的依赖关系可以帮助模型更好的识别和关注对话中的主要部分。另一方面,难以识别不同说话人的动作(action)以及不同说话人之间的互动和指代关系,容易生成错误的指代和推理,进而生成不符合事实的摘要。本文设计了一个struct-aware的seq2seq模型,首先通过discourse relation graph和action graph来显示地建模不同语句之间的关系和语句中包含的动作,再利用一个多粒度的解码器来结合各方面信息,生成最终的摘要。
Methods
上图给出了模型的总体架构,首先构建Discourse Relation Graphs和Action Graphs来建模对话中的结构信息,然后利用编码器编码对话语句和构建的图,最后在解码阶段通过一个多粒度的解码器利用不同层面的信息生成最终摘要。
Structured Graph Construction
Discourse Relation Graph
构造语句关系图,可以帮助模型更好的理解对话并关注于主要内容。将每句对话作为一个EDU(基本对话单元),这里对话之间的关系一共有16种(参照参考文献里的论文2),包括评论关系,问答对关系,解释关系等等。首先预训练一个对话关系编码器,对数据集上的对话关系进行标注,再构建discourse relation graph, G D = ( V D , E D ) \mathcal{G}^{D}=\left(\mathbf{V}^{D}, \mathbf{E}^{D}\right) GD=(VD,ED),其中 V D [ k ] \mathbf{V}^{D}[k] VD[k]表示第k个语句,如果第i个语句和第j个语句之间有对话关系r,那么 E D [ i ] [ j ] = r \mathbf{E}^{D}[i][j]=r ED[i][j]=r
下图给出了Discourse Relation Graph的一个示例
Action Graph
构造为who-doing-what的三元组形式,首先从对话中抽取出who-doing-what的三元组,然后构建Action Graph G A = ( V A , E A ) \mathcal{G}^{A}=\left(\mathbf{V}^{A}, \mathbf{E}^{A}\right) GA=(VA,EA),其中 V A \mathbf{V}^{A} VA代表(who,doing,what), E A [ i ] [ j ] = 1 \mathbf{E}^{A}[i][j]=1 EA[i][j]=1如果 V A [ i ] \mathbf{V}^{A}[i] VA[i]和 V A [ j ] \mathbf{V}^{A}[j] VA[j]在三元组中相邻,下图给出了一个Action Graph的示例
Encoder
Utterance Encoder
BART模型
{ h i , 0 U , … , h i , l U } = F U ( { x i , 0 , … , x i , l } ) (1) \left\{h_{i, 0}^{U}, \ldots, h_{i, l}^{U}\right\}=F_{U}\left(\left\{x_{i, 0}, \ldots, x_{i, l}\right\}\right) \tag{1} {
hi,0U?,…,hi,lU?}=FU?({
xi,0?,…,xi,l?})(1)
x i , 0 x_{i,0} xi,0?是添加的特殊符号
Graph Encoder
先对图节点的权值进行初始化,对于Discourse Relation Graph,使用 h i , 0 U h_{i, 0}^{U} hi,0U?初始化节点,对于Action Graph使用Utterance Encoder编码每一个节点作为初始值
使用图注意力网络,编码图
α i j = exp ? ( σ ( a T [ W v i ∥ W v j ∥ W e e i , j ] ) ) ∑ k ∈ N i exp ? ( σ ( a T [ W v i ∥ W v k ∥ W e e i , k ] ) ) (2) \alpha_{i j}=\frac{\exp \left(\sigma\left(\mathbf{a}^{T}\left[\mathbf{W} v_{i}\left\|\mathbf{W} v_{j}\right\| \mathbf{W}_{\mathbf{e}} e_{i, j}\right]\right)\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(\sigma\left(\mathbf{a}^{T}\left[\mathbf{W} v_{i}\left\|\mathbf{W} v_{k}\right\| \mathbf{W}_{\mathbf{e}} e_{i, k}\right]\right)\right)} \tag{2} αij?=∑k∈Ni??exp(σ(aT[Wvi?∥Wvk?∥We?ei,k?]))exp(σ(aT[Wvi?∥Wvj?∥We?ei,j?]))?(2)
h i = σ ( ∑ j ∈ N i α i j W v j ) (3) h_{i}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j} \mathbf{W} v_{j}\right) \tag{3} hi?=σ???j∈Ni?∑?αij?Wvj????(3)
{ h 0 D , … , h m D } = F D ( { v 0 D , … , v m D } , E D ) { h 0 A , … , h n A } = F A ( { x 0 A , … , x n A } , E A ) (4) \begin{aligned} &\left\{h_{0}^{D}, \ldots, h_{m}^{D}\right\}=F_{D}\left(\left\{v_{0}^{D}, \ldots, v_{m}^{D}\right\}, \mathbf{E}^{D}\right) \\ &\left\{h_{0}^{A}, \ldots, h_{n}^{A}\right\}=F_{A}\left(\left\{x_{0}^{A}, \ldots, x_{n}^{A}\right\}, \mathbf{E}^{A}\right) \end{aligned} \tag{4} ?{
h0D?,…,hmD?}=FD?({
v0D?,…,vmD?},ED){
h0A?,…,hnA?}=FA?({
x0A?,…,xnA?},EA)?(4)
Decoder
利用编码的信息生成摘要
y ^ = G ( y 1 : s ? 1 , F U ( C ) , F D ( G D ) , F A ( G A ) ) (4) \hat{y}=G\left(y_{1: s-1}, F_{U}(\mathbf{C}), F_{D}\left(\mathcal{G}^{D}\right), F_{A}\left(\mathcal{G}^{A}\right)\right) \tag{4} y^?=G(y1:s?1?,FU?(C),FD?(GD),FA?(GA))(4)
P ( y ~ s ∣ y < s , C , G D , G A ) = Softmax ? ( W p y ^ ) (5) P\left(\tilde{y}_{s} \mid y_{<s}, \mathbf{C}, \mathcal{G}^{D}, \mathcal{G}^{A}\right)=\operatorname{Softmax}\left(W_{p} \hat{y}\right) \tag{5} P(y~?s?∣y<s?,C,GD,GA)=Softmax(Wp?y^?)(5)
在BART的基础上增加了Discourse Attention和Action Attention,分别作用于 discourse relation graphs 和action graphs编码的表示
Code
https://github.com/GT-SALT/Structure-Aware-BART