Motivation
作者认为对话存在两个重要特性。
第一个特性:传统的文本摘要比如说新闻摘要,往往只关注新闻的前几句话,而对话摘要关注的焦点,则需要从对话的开始慢慢的转移到对话的结束,作者将这个特点称为supporting utterance flow。在这里,作者定义了supporting utterances这个概念,对于摘要中的每个句子,对话中包信息最多的utterances(与摘要句子的Jaccard相似度最高的utterances)被定义为supporting utterances。举个例子,下图给出了对话摘要SAMSUM数据集和新闻摘要CNN/Dairy数据集上supporting utterances的位置分布,S1代表摘要的第一个句子,S2代表摘要的第二个句子,position range代表utterances的位置范围,[0.1,0.2)代表前10%到前20%的utterances。从图中看出,对话摘要数据数据集上,摘要的第一条句子对应的supporting utterances主要分布在前10%到30%的范围,摘要的第二条句子对应的supporting utterances主要分布在前50%到前60%的范围,第三条句子对应的supporting utterances主要分布在80%后的范围。而在新闻摘要数据集上,摘要的三条句子对应的utterances主要分布在前30%的范围。
第二个特性,对话摘要相比一般的文本摘要,包含了更多的事实三元组结构(fact triplets,也就是主谓宾结构),利用好这些三元组,可以让生成的摘要具有更好的事实一致性。现有的方法没有很好的考虑到对话的这两个特点,因此这篇文章提出了一个端到端的模型,引入了 supporting utterance flow module和fact regularization module这两个模块,从而有效的利用了对话的这两个特点。
图1:
Method
总体架构如下图所示,包含三部分basic model,supporting utterance modeling(SUFM),Fact Regularization(FR)
basic model
基本模型是hierarchical encoder decoder
首先将所有utterance连接在一起,通过embedding得到词嵌入向量[ e x 1 e_{x_1} ex1??,… e x i e_{x_i} exi??,… e x L x e_{x_{L_x}} exLx???]。通过hierarchical encoder得到world-level的向量表示 [ h 1 , … , h j , … , h L x ] \left[\mathbf{h}_{1}, \ldots, \mathbf{h}_{j}, \ldots, \mathbf{h}_{L_{\mathbf{x}}}\right] [h1?,…,hj?,…,hLx??]以及utterance-level的向量表示 [ u 1 , … , u i , … , u L x ~ ] \left[\mathbf{u}_{1}, \ldots, \mathbf{u}_{i}, \ldots, \mathbf{u}_{L_{\tilde{\mathbf{x}}}}\right] [u1?,…,ui?,…,uLx~??]。hierarchical decoder通过层次化的注意力机制结合word-level和utterance-level的信息生成最终的summary y = [ y 1 , … , y t , … , y L y ] \mathbf{y}=\left[y_{1}, \ldots, y_{t}, \ldots, y_{L_{\mathbf{y}}}\right] y=[y1?,…,yt?,…,yLy??],相关计算公式如下:
解码器隐藏状态:
s t = GRU ? ( e y t ? 1 , s t ? 1 ) \mathbf{s}_{t}=\operatorname{GRU}\left(\mathbf{e}_{y_{t-1}}, \mathbf{s}_{t-1}\right) st?=GRU(eyt?1??,st?1?)
utterance_level的attention:
β t , i u = ( v u ) T tanh ? ( W 1 u s t + W 2 u u i + b u ) , α t , i u = exp ? ( β t , i u ) / ∑ k = 1 L x ~ exp ? ( β t , k ) c t u = ∑ i = 1 L x ~ α t , i u u i \begin{aligned} \beta_{t, i}^{u} &=\left(\mathbf{v}^{u}\right)^{T} \tanh \left(\mathbf{W}_{1}^{u} \mathbf{s}_{t}+\mathbf{W}_{2}^{u} \mathbf{u}_{i}+\mathbf{b}^{u}\right), \\ \alpha_{t, i}^{u} &=\exp \left(\beta_{t, i}^{u}\right) / \sum_{k=1}^{L_{\tilde{\mathbf{x}}}} \exp \left(\beta_{t, k}\right) \\ \mathbf{c}_{t}^{u} &=\sum_{i=1}^{L_{\tilde{\mathbf{x}}}} \alpha_{t, i}^{u} \mathbf{u}_{i} \end{aligned} βt,iu?αt,iu?ctu??=(vu)Ttanh(W1u?st?+W2u?ui?+bu),=exp(βt,iu?)/k=1∑Lx~??exp(βt,k?)=i=1∑Lx~??αt,iu?ui??
word-level attention类似,将u变成h
c t w = ∑ j = 1 L x α ˉ t , j w h j \mathbf{c}_{t}^{w}=\sum_{j=1}^{L_{\mathbf{x}}} \bar{\alpha}_{t, j}^{w} \mathbf{h}_{j} ctw?=j=1∑Lx??αˉt,jw?hj?
通过MLP把所有表示合在一起:
s ? t = Dropout ? ( W m [ s t ; c t u ; c t w ] + b m , r ) \overline{\mathbf{s}}_{t}=\operatorname{Dropout}\left(\mathbf{W}^{m}\left[\mathbf{s}_{t} ; \mathbf{c}_{t}^{u} ; \mathbf{c}_{t}^{w}\right]+\mathbf{b}^{m}, r\right) st?=Dropout(Wm[st?;ctu?;ctw?]+bm,r)
与pointer-generator一样,从原始输入中复制一部分词到输入中:
P ( y t ) = ( 1 ? g t ) P V ( y t ) + g t P X ( y t ) P\left(y_{t}\right)=\left(1-g_{t}\right) P_{\mathcal{V}}\left(y_{t}\right)+g_{t} P_{\mathcal{X}}\left(y_{t}\right) P(yt?)=(1?gt?)PV?(yt?)+gt?PX?(yt?)
g t = sigmoid ? ( W g s ? t + b g ) g_{t}=\operatorname{sigmoid}\left(\mathbf{W}^{g} \overline{\mathbf{s}}_{t}+b^{g}\right) gt?=sigmoid(Wgst?+bg)
P V ( y t ) = softmax ? ( W V s ? t + b V ) P_{\mathcal{V}}\left(y_{t}\right)=\operatorname{softmax}\left(\mathbf{W}^{\mathcal{V}} \overline{\mathbf{s}}_{t}+\mathbf{b}^{\mathcal{V}}\right) PV?(yt?)=softmax(WVst?+bV)
P X ( y t ) = ∑ j : x j = y t α ˉ t , j w P_{\mathcal{X}}\left(y_{t}\right)=\sum_{j: x_{j}=y_{t}} \bar{\alpha}_{t, j}^{w} PX?(yt?)=j:xj?=yt?∑?αˉt,jw?
使用负对数似然函数作为损失函数:
l G = ? ∑ t = 1 L y log ? P ( y t ∣ y 1 , … , y t ? 1 ; x ; F ) l_{G}=-\sum_{t=1}^{L_{\mathbf{y}}} \log P\left(y_{t} \mid y_{1}, \ldots, y_{t-1} ; \mathbf{x} ; \mathcal{F}\right) lG?=?t=1∑Ly??logP(yt?∣y1?,…,yt?1?;x;F)
SUFM
SUFM模块,包含两部分SUFM embedding和SUFM loss。
SUFM embedding表示utterance position和summary token position之间的correlation。在原来encoder输入的基础上增加了 e i u e_i^u eiu?,表示第i个utterance的position embedding,例如上图中,第一个token x 1 x_1 x1?第二个token x 2 x_2 x2?都属于第一个utterance,对应的position embedding就是 e 1 u e_1^u e1u?。在原来decoder输入的基础上增加了 e t s e_t^s ets?,代表了第t个summary token对应的position embedding。SUFM embedding提供了生成的summary tokens和dialogue utterances之间的word-level alignment。
SUFM loss提供了生成的summary tokens和input utterances之间的sentence-level alignment,使得模型可以平滑的转移其在dialogue上的focus。先通过计算Jaccard相似度得到每条summary sentence对应的supporting utterances。定义当前的summary sentence句子为 C S S k CSS_k CSSk?,当前summary sentence对应的supporting utterances为 C S U k CSU_k CSUk?,上一个summary utterance对应的supporting utterances为 P S U k PSU_k PSUk?,SUFM loss包含两部分 l C S U k l_{CSU_k} lCSUk??和 l P S U k l_{PSU_k} lPSUk??, l C S U k l_{CSU_k} lCSUk??使得模型关注当前summary sentence的supporting utterance,计算公式如下:
l C S U K = log ? ( ∑ t : y t ∈ C S S k ∑ j : y j ∈ C S U k α t , j w ˉ ∑ t : y t ∈ C S S k ∑ j : y j α t , j w ˉ ) l_{CSU_K}=\log {\left(\frac{\sum_{t:{y_t}\in{CSS_k}} \sum_{j:{y_j \in{CSU_k}}}\bar{\alpha_{t,j}^w}}{\sum_{t:{y_t}\in{CSS_k}}\sum_{j:{y_j }}\bar{\alpha_{t,j}^w}} \right)} lCSUK??=log(∑t:yt?∈CSSk??∑j:yj??αt,jw?ˉ?∑t:yt?∈CSSk??∑j:yj?∈CSUk??αt,jw?ˉ??)
l P S U k l_{PSU_k} lPSUk??使得模型忽略上一个summary sentence的supporting utterance,计算公式如下:
最终的 l S U F M l_{SUFM} lSUFM?计算公式如下:
l S U F M = ∑ k = 1 n ( λ 1 l C S U k + λ 2 l P S U k ) l_{SUFM}=\sum_{k=1}^n \left(\lambda_{1}{l_{CSU_k}}+\lambda_{2}{l_{PSU_k}}\right) lSUFM?=k=1∑n?(λ1?lCSUk??+λ2?lPSUk??)
FR:
FR模块,首先利用fact triplet extractor从gold summary中提取处fact triplets,同时在训练目标中增加一个正则项帮助模型提高生成摘要的事实一致性,fact triplet extractor基于dependency parse,增加的正则项计算公式如下:
s代表生成summary的hidden states,目标是使两项尽可能一致,类似于TransE的思想。 s u b j k subj_k subjk?代表第k个fact triples中的subj的index,sverb,sobj类似
模型最终loss表示为: