赞
踩
Wang, X., & Yu, C. (2019). Summarizing News Articles using Question-and-Answer Pairs via Learning.
通过学习的方法,构建一个关于新闻文档的(Question-Answer)对的结构化摘要
例如:
原文 | 问题 | 答案 |
---|---|---|
星巴克在周二进行反歧视训练,所以会暂停营业。 | 星巴克问什么停业? | 进行反歧视训练 |
星巴克哪天停业? | 周二 |
如图,这个方法将用户对某篇新闻的搜索记录作为问题,并将这些问题中相同主题的问题聚类到不同的Group中。每个Group选出一个代表性的表达方法作为输出,并在原文中抽取与各个Group相关的答案。
缺点:每一个进行摘要的文章都需要历史的搜索数据。如果某篇新闻刚刚发布或者无人问津,那么不会有足够的搜索记录作为Question。
(先通过前面的挖掘方法得到大量的训练数据)
神经网络,训练三个模型:
第一个:对文档中的重要句子进行标记;
第二个:根据这些句子生成对应其中信息的Question;
第三个:然后再根据问题与这个句子生成答案
这样处理新的新闻文档的时候,就不需要依赖搜索记录了。
要使用前面说的构造方法,有两个难点:
选择有代表性的Question。查询记录中不同用户同样的查询意图可能使用不同的表达方式,要避免最终的Questions中出现语义上重复的内容。
根据问题抽取出对应答案。类似于普通问答系统。
Step1:根据简单的规则过滤掉无效的Question;比如太短太长…
Step2:使用凝聚层次聚类对Question聚类
初始状态每个Question都是一簇,然后重复合并最相近的两个
相似度计算方法:
c
o
s
_
s
i
m
(
W
t
f
i
d
f
1
∗
E
1
,
W
t
f
i
d
f
2
∗
E
2
)
cos\_sim(W_tfidf1∗E_1, W_tfidf2∗E_2 )
cos_sim(Wtfidf1∗E1,Wtfidf2∗E2)
E
=
(
e
1
,
e
2
,
…
,
e
n
)
E=(e_1, e_2,…,e_n )
E=(e1,e2,…,en) ,
e
e
e为词向量
Step3:从每个类簇中的非疑问句
C
n
q
C_nq
Cnq中选择具有代表性的问题
q
∗
q^∗
q∗
q
∗
=
a
r
g
m
a
x
(
q
∈
C
n
q
)
∑
i
=
1
k
s
i
m
(
q
,
q
i
)
q^∗=argmax(q∈C_{nq} ) ∑_{i=1}^ksim(q, q_i)
q∗=argmax(q∈Cnq)i=1∑ksim(q,qi)
处理结果如图所例:
这个部分就是一个标准的问答系统,直接使用QANet ,利用问题从原文中得到问题的答案。
QANet是一个问答模型:(Yu, A.W., Dohan, D., Luong, M.T., Zhao, R., Chen, K., Norouzi, M., Le, Q.V.: QANet: Combining local convolution with global self-attention for reading comprehension. In: ICLR (2018))
为了避免Question不同表达形式对答案造成影响,
要使用同一个类中的所有Question进行抽取
选择综合置信度最高的文章片段作为最终的答案。
前面提到了,要解决依赖搜索记录的缺点,搭建一个学习模型,大致框架如下:
先使用挖掘方法构造数据集,然后用这个数据集进行训练。
实际上就是标记文档中的重要信息
为了提高计算结果,将QANet对某个问题集合的全部答案A进行选择,只保留满足下面条件的作为训练集:
S
(
A
,
p
)
=
∑
a
i
∈
A
,
p
∈
a
i
s
(
a
i
)
∑
a
i
∈
A
s
(
a
j
)
>
0.5
S(A, p)=\frac{\sum_{a_{i} \in A, p \in a_{i}} s\left(a_{i}\right)}{\sum_{a_{i} \in A} s\left(a_{j}\right)}>0.5
S(A,p)=∑ai∈As(aj)∑ai∈A,p∈ais(ai)>0.5
其中
s
(
a
i
)
s(a_i)
s(ai)是指QANet输出的答案
a
i
a_i
ai的置信度得分。然后搭建如下模型:
模型的损失函数使用加权交叉熵:
l
o
s
s
=
−
(
1
−
w
p
)
y
log
(
p
)
−
w
p
(
1
−
y
)
(
1
−
p
)
loss=-\left(1-w_{p}\right) y \log (p)-w_{p}(1-y)(1-p)
loss=−(1−wp)ylog(p)−wp(1−y)(1−p)
其中
w
p
w_p
wp 是数据集中答案A所占的比例。最终可以训练得到一个对文档中重要部分进行标记的模型,其效果如下:
训练一个模型,根据答案文本(也就是上面模型标记出来的包含重要信息的文本片段)生成Question(反向的问答模型),训练数据使用SQuAD(Stanford Question Answer Dataset)其中是原始文本+(问题-答案)对的数据。先使用Stanford工具对其原始文本进行句。实际的模型输入就是 包含答案的句子、Answer、Answer的位置。Decoder中使用了Pointer Generator能够从原始文本中复制单词。模型如下:
其中 h ~ j t = tanh ( W c [ contex t j ; h j t ] ) . \tilde{h}_{j}^{t}=\tanh \left(W_{c}\left[\operatorname{contex} t_{j} ; h_{j}^{t}\right]\right). h~jt=tanh(Wc[contextj;hjt]).
最后还有一个步骤,就是将3.2生成出来的问题,按照第二节中所说进行聚类和总结,以得到不重复、更有代表性的摘要结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。