理想的大纲生成(Outline Generation, OG)模型能够很好地获取3个不同级别的一致性,即上下文段落之间的一致性、章节与章节标题的一致性、上下文标题之间的一致性。本文提出了一种新颖的层次结构神经网络生成模型(HiStGen),其先预测章节序列边界,然后相应地生成章节标题序列。
论文地址:
https://arxiv.org/abs/1905.10039
引言
为了解决OG任务中3个不同级别一致性的问题。首先,对于上下文段落,本文介绍了一种马尔科夫段落独立性机制(Markov paragraph dependency mechanism)来识别章节边界。其次,本文提出了一种章节感知注意力机制(section-aware attention mechanism)确保章节与章节标题之间的语义一致性。最后,本文利用马尔科夫标题独立性机制(Markov heading dependency mechanism)以及一种身材机制(review mechanism)提升上下文标题(context heading)的一致性,以及消除章节标题的重复。实验结果表明本文提出的模型性能超过了SOTA序列生成模型。
数据集
本文实验基于数据集WikiOG,文档以及标题中的词全是小写并以空格切分,数字与非英字符全被丢弃。WikiOG数据集包含名人、城市、音乐以及它们的混合数据,对于其中的每个数据集,本文随机将它们切分为训练集(80%)、开发集(10%)、测试集(10%)。本文为输入文档与目标标题构建了2个独立的词表,它们分别包含13000、16000个常用词汇。未出现词统一用unk代替。
基准数据集与模型
WikiOG
为了学习、评估OG任务,本文构建一个新的基准数据集WikiOG。由于Wikipedia是公开的且容易搜集,同时Wikipedia中的大多数文档都包含大纲,本文采用Wikipedia作为源数据来构建其数据集WikiOG。具体地,本文从Wikipedia上收集了名人、城市、音乐三类文档。本文仅仅用了一级标题作为真实标签,更深级别标题的生成用于模型的学习。没有标题的文档以及一级标题数超过10的文档会被移除,WikiOG数据集大概包含175万个文档。
HiStGen
HiStGen采用了encoder-decoder的网络结构,HiStGen利用层次encoder来获取文档的表征。HiStGen中的decoder也是层次化的,其用于探索3个不同级别的一致性。
Encoder
在HiStGen中,我们利用word encoder来编码段落 p m p_m pm中的词汇,利用paragraph encoder来编码文档 d d d中的段落。段落 p m p_m pm中的词$ w m , v 用 其 分 布 式 表 征 w_{m,v}用其分布式表征 wm,v用其分布式表征e_{m,v}$来表示,对于word encoder和paragraph encoder,我们都使用了双向GRU。
Word encoder
前向GRU: ( h → m , 1 , . . . , h → m , v m ) (\stackrel \rightarrow h_{m,1},...,\stackrel \rightarrow h_{m,v_m}) (h→m,1,...,h→m,vm),后向GRU: ( h ← m , 1 , . . . , h ← m , v m ) (\stackrel \leftarrow h_{m,1},...,\stackrel \leftarrow h_{m,v_m}) (h←m,1,...,h←m,vm)。段落 p m p_m pm的表征: r m = C o n c a t ( h → m , v m , h ← m , 1 ) r_m=Concat(\stackrel \rightarrow h_{m,v_m},\stackrel \leftarrow h_{m,1}) rm=Concat(h→m,vm,h←m,1),其中 v m v_m vm表示段落 p m p_m pm的长度, h m , t h_{m,t} hm,t表示段落 p m p_m pm中 t t h t^{th} tth词汇的隐层状态。
Paragraph encoder
每个段落的隐层表征
h
m
h_m
hm由前向段落编码(forward paragraph encoder)的隐层状态与后向段落编码(backward paragraph encoder)的隐层状态共同决定,具体如下:
h
m
=
C
o
n
c
a
t
(
h
→
m
,
h
←
m
)
h_m=Concat(\stackrel \rightarrow h_{m},\stackrel \leftarrow h_{m})
hm=Concat(h→m,h←m)
其中,
h
→
m
\stackrel \rightarrow h_{m}
h→m表示前向的隐层状态,
h
←
m
\stackrel \leftarrow h_{m}
h←m表示后向的隐层状态。
Hierarchical Decoder
层次decoder的目标是为输入文档生成大纲,其包含章节边界预测和章节标题生成。
Section Boundary Prediction
章节边界预测,即通过章节边界标签
{
l
1
,
l
2
,
.
.
.
,
l
M
}
\{l_1,l_2,...,l_M\}
{l1,l2,...,lM}把一个文档
{
p
1
,
p
2
,
.
.
.
,
p
M
}
\{p_1,p_2,...,p_M\}
{p1,p2,...,pM}切分为多个章节
{
s
1
,
s
2
,
.
.
.
,
s
M
}
\{s_1,s_2,...,s_M\}
{s1,s2,...,sM},其中
l
m
∈
{
0
,
1
}
l_m \in \{0,1\}
lm∈{0,1}。如果
l
m
=
0
l_m=0
lm=0,则
p
m
p_m
pm是内部段落;如果
l
m
=
1
l_m=1
lm=1,则
p
m
p_m
pm是章节的最后一个段落,需要生成相应的章节标题。本文提出了一中马尔科夫段落独立性机制来建模上下文段落的一致性,同时识别章节边界。马尔科夫段落独立性机制的关键在其假设上下文段落的一致性具有马尔科夫性,我们可以通过先前的段落来识别章节。如图2所示,我们使用当前段落
p
m
p_{m}
pm的隐层状态
h
m
h_{m}
hm、先前段落
p
m
−
1
p_{m-1}
pm−1的隐层状态
h
m
−
1
h_{m-1}
hm−1以及后一时刻段落
p
m
+
1
p_{m+1}
pm+1的隐层状态
h
m
+
1
h_{m+1}
hm+1来预测边界标签
l
m
l_m
lm:
p
(
l
m
=
1
∣
p
≤
m
=
σ
(
h
m
−
1
⋅
W
1
⋅
h
m
+
h
m
⋅
W
2
⋅
h
m
+
1
)
)
p(l_m=1|p_{\leq m}=\sigma(h_{m-1}\cdot W_1 \cdot h_m+h_m \cdot W_2 \cdot h_{m+1}))
p(lm=1∣p≤m=σ(hm−1⋅W1⋅hm+hm⋅W2⋅hm+1))
p
(
l
m
=
0
∣
p
≤
m
=
1
−
σ
(
h
m
−
1
⋅
W
1
⋅
h
m
+
h
m
⋅
W
2
⋅
h
m
+
1
)
)
p(l_m=0|p_{\leq m}=1-\sigma(h_{m-1}\cdot W_1 \cdot h_m+h_m \cdot W_2 \cdot h_{m+1}))
p(lm=0∣p≤m=1−σ(hm−1⋅W1⋅hm+hm⋅W2⋅hm+1))
其中, σ \sigma σ是sigmoid函数, W 1 , W 2 W_1,W_2 W1,W2是可学习的参数。
Section Heading Generation
如果
l
m
=
1
l_m=1
lm=1,我们需要基于检测到的章节
s
n
s_n
sn来生成标题
y
n
y_n
yn。我们利用section-aware attention mechanism来获取section-aware的上下文向量,其能确保更多的目标章节内容信息能被关注到。Markov heading dependency mechanism为新标题的生成维护先前生成标题的隐层状态,同时提升标题之间的一致性。Review mechanism利用生成标题的上下文向量于排除重复标题的出现。
y
n
y_n
yn中
u
t
h
u^{th}
uth词汇的隐层状态
h
n
,
u
s
h^s_{n,u}
hn,us定义如下:
h
n
,
u
s
=
f
s
(
w
n
,
u
−
1
,
h
n
,
u
−
1
s
,
c
n
,
u
D
,
c
n
,
u
)
h^s_{n,u}=f_s(w_{n,u-1},h^s_{n,u-1},c^D_{n,u},c_{n,u})
hn,us=fs(wn,u−1,hn,u−1s,cn,uD,cn,u)
其中,
f
s
f_s
fs是GRU单元,
w
n
,
u
−
1
w_{n,u-1}
wn,u−1是u-1步的词汇。选择词汇
w
n
,
u
w_{n,u}
wn,u的条件概率:
p
(
w
n
,
u
∣
w
≤
n
,
<
u
,
d
)
=
f
g
(
w
n
,
u
−
1
,
h
n
,
u
s
,
c
n
,
u
D
,
c
n
,
u
)
p(w_{n,u}|w_{\leq n, < u},d)=f_g(w_{n,u-1},h^s_{n,u},c^D_{n,u},c_{n,u})
p(wn,u∣w≤n,<u,d)=fg(wn,u−1,hn,us,cn,uD,cn,u)
其中,
f
g
f_g
fg是非线性函数,
c
n
,
u
c_{n,u}
cn,u表示section-aware上下文向量,
c
n
,
u
D
c_{n,u}^D
cn,uD表示heading-aware上下文向量。
对于章节感知上下文向量:
c
n
,
u
=
∑
k
=
1
K
n
a
u
,
k
⋅
h
K
1
+
K
2
+
.
.
.
+
K
n
−
1
+
k
c_{n,u}=\sum_{k=1}^{K_n}a_{u,k}\cdot h_{K_1+K_2+...+K_{n-1}+k}
cn,u=∑k=1Knau,k⋅hK1+K2+...+Kn−1+k
a
u
,
k
=
e
x
p
(
h
K
1
+
K
2
+
.
.
.
+
K
n
−
1
+
k
⋅
h
n
,
u
−
1
s
)
∑
i
−
1
K
n
e
x
p
(
h
K
1
+
K
2
+
.
.
.
+
K
n
−
1
+
i
)
⋅
h
n
,
u
−
1
s
a_{u,k}=\frac{exp(h_{K_1+K_2+...+K_{n-1}+k} \cdot h^s_{n,u-1})}{\sum_{i-1}^{K_n}exp(h_{K_1+K_2+...+K_{n-1}+i})\cdot h^s_{n,u-1}}
au,k=∑i−1Knexp(hK1+K2+...+Kn−1+i)⋅hn,u−1sexp(hK1+K2+...+Kn−1+k⋅hn,u−1s)
对于马尔科夫标题独立性机制:
如果
n
>
1
n>1
n>1,则
h
n
,
0
s
=
W
3
⋅
z
n
−
1
+
W
4
⋅
h
m
+
b
1
h^s_{n,0}=W_3\cdot z_{n-1}+W_4\cdot h_m + b_1
hn,0s=W3⋅zn−1+W4⋅hm+b1。如果
n
=
1
n=1
n=1,则
h
n
,
0
s
=
W
4
⋅
h
m
+
b
1
h^s_{n,0}=W_4\cdot h_m + b_1
hn,0s=W4⋅hm+b1。其中
W
3
,
W
4
,
b
1
W_3,W_4,b_1
W3,W4,b1,是可学习的参数,
h
m
h_m
hm是段落
p
m
p_m
pm的表征,
p
m
p_m
pm是章节
s
n
s_n
sn的最后一段。其中,
z
n
−
1
=
1
U
n
−
1
∑
u
=
1
U
n
−
1
h
n
−
1
,
u
s
z_{n-1}=\frac{1}{U_{n-1}}\sum_{u=1}^{U_{n-1}}h^s_{n-1,u}
zn−1=Un−11∑u=1Un−1hn−1,us
对于审查机制:
R
n
,
u
=
{
h
1
,
1
s
,
h
1
,
2
s
,
.
.
.
,
h
n
,
u
−
1
s
}
R_{n,u}=\{h^s_{1,1},h^s_{1,2},...,h^s_{n,u-1}\}
Rn,u={h1,1s,h1,2s,...,hn,u−1s}
c
n
,
u
D
=
∑
i
,
,
j
=
1
n
,
u
−
1
β
n
,
u
i
,
j
⋅
h
i
,
j
s
c^D_{n,u}=\sum_{i,,j=1}^{n,u-1}\beta^{i,j}_{n,u}\cdot h^s_{i,j}
cn,uD=∑i,,j=1n,u−1βn,ui,j⋅hi,js
β
n
,
u
i
,
j
=
e
x
p
(
e
n
,
u
i
,
j
)
∑
p
,
q
=
1
n
,
u
−
1
e
x
p
(
e
n
,
u
p
,
q
)
\beta^{i,j}_{n,u}=\frac{exp(e^{i,j}_{n,u})}{\sum^{n,u-1}_{p,q=1}}exp(e^{p,q}_{n,u})
βn,ui,j=∑p,q=1n,u−1exp(en,ui,j)exp(en,up,q)
e
n
,
u
i
,
j
=
v
T
t
a
n
h
(
W
5
h
i
,
j
s
+
W
6
h
n
,
u
−
1
s
+
b
2
)
e^{i,j}_{n,u}=v^T tanh(W_5h_{i,j}^s+W_6h_{n,u-1}^s+b_2)
en,ui,j=vTtanh(W5hi,js+W6hn,u−1s+b2)
R
n
,
u
+
1
=
R
n
,
u
⋃
{
h
n
,
u
s
}
R_{n,u+1}=R_{n,u}\bigcup \{h^s_{n,u}\}
Rn,u+1=Rn,u⋃{hn,us}
其中,
R
n
,
u
R_{n,u}
Rn,u是heading-aware审查集合,
W
5
,
W
6
,
b
2
W_5,W_6,b_2
W5,W6,b2是可学习的参数。
###实验
本文实验是基于数据集WikiOG,我们在一台k80上训练了12轮次,花费了将近2天的时间。实验中,我们采用了多个基线模型(HiStGen-P、HiStGen-S、HiStGen-H、HiStGen-R、HiStGen-PSHR)以及多种step-wise的基线模型,同时我们采用了EMoutline、EMsec、Rougehead做为评价指标。实验结果显示,在WikiOG数据集上,我们的模型明显优于其他模型。
###结论
本文将大纲生成任务作为一种层次结构预测问题,提出了一种新颖的层次结构神经网络生成模型(HiStGen)。同时本文也构建了一个基本数据集WikiOG,并在该数据集上对比了HiStGen模型与step-wise基线模型的性能。数据集WikiOG不是公开数据集,如果能在公开数据集上验证HiStGen的模型性能,则更有说服力。
扫码识别关注,获取更多新鲜论文解读