2019-iswc-Google基于学习的问答摘要模型

Summarizing News Articles using Question-and-Answer Pairs via Learning (iswc-2019)

Wang, X., & Yu, C. (2019). Summarizing News Articles using Question-and-Answer Pairs via Learning.

论文PDF地址:https://storage.googleapis.com/pub-tools-public-publication-data/pdf/6272e9babac8daa5211b27317a92da2533e8e3b5.pdf

1 概述

通过学习的方法,构建一个关于新闻文档的(Question-Answer)对的结构化摘要

例如:

原文问题答案
星巴克在周二进行反歧视训练,所以会暂停营业。星巴克问什么停业?进行反歧视训练
星巴克哪天停业?周二
  • 早期有研究者使用挖掘的方法

mining-based model

如图,这个方法将用户对某篇新闻的搜索记录作为问题,并将这些问题中相同主题的问题聚类到不同的Group中。每个Group选出一个代表性的表达方法作为输出,并在原文中抽取与各个Group相关的答案。

缺点:每一个进行摘要的文章都需要历史的搜索数据。如果某篇新闻刚刚发布或者无人问津,那么不会有足够的搜索记录作为Question。


  • 论文提出了一个基于学习的方法

(先通过前面的挖掘方法得到大量的训练数据)

神经网络,训练三个模型:

​ 第一个:对文档中的重要句子进行标记;

​ 第二个:根据这些句子生成对应其中信息的Question;

​ 第三个:然后再根据问题与这个句子生成答案

这样处理新的新闻文档的时候,就不需要依赖搜索记录了。

2 使用挖掘方法构造训练数据

要使用前面说的构造方法,有两个难点:

  1. 选择有代表性的Question。查询记录中不同用户同样的查询意图可能使用不同的表达方式,要避免最终的Questions中出现语义上重复的内容。

  2. 根据问题抽取出对应答案。类似于普通问答系统。

2.1 Question聚类与总结

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(Wtfidf1E1,Wtfidf2E2)
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(qCnq)i=1ksim(q,qi)
处理结果如图所例:

在这里插入图片描述

2.2 Answer抽取

这个部分就是一个标准的问答系统,直接使用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不同表达形式对答案造成影响,

  1. 要使用同一个类中的所有Question进行抽取

  2. 选择综合置信度最高的文章片段作为最终的答案。

3 搭建基于学习的模型

前面提到了,要解决依赖搜索记录的缺点,搭建一个学习模型,大致框架如下:

在这里插入图片描述

先使用挖掘方法构造数据集,然后用这个数据集进行训练。

3.1 文档权重图

实际上就是标记文档中的重要信息

为了提高计算结果,将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)=aiAs(aj)aiA,pais(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=(1wp)ylog(p)wp(1y)(1p)
其中 w p w_p wp 是数据集中答案A所占的比例。最终可以训练得到一个对文档中重要部分进行标记的模型,其效果如下:

在这里插入图片描述

3.2 生成Question

训练一个模型,根据答案文本(也就是上面模型标记出来的包含重要信息的文本片段)生成Question(反向的问答模型),训练数据使用SQuAD(Stanford Question Answer Dataset)其中是原始文本+(问题-答案)对的数据。先使用Stanford工具对其原始文本进行句。实际的模型输入就是 包含答案的句子、Answer、Answer的位置。Decoder中使用了Pointer Generator能够从原始文本中复制单词。模型如下:

question model

其中 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.3 总结Question

最后还有一个步骤,就是将3.2生成出来的问题,按照第二节中所说进行聚类和总结,以得到不重复、更有代表性的摘要结果。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值