论文笔记Joint Learning of Answer Selection and Answer Summary Generation in Community Question Answering

论文链接



abstract

目前,社区问答(CQA)在学术界和工业界都备受欢迎。但是也存在问题:答案繁多、冗长,导致其在选择上给社区用户带来了很大的不便。为了解决这些问题,针对CQA特定任务的答案选择和生成答案摘要两大任务,本文提出了一种新的联合学习模型。具体来说,设计了一种问题驱动的指针生成器网络,该网络旨在利用问题答案对之间的相关信息来生成答案摘要。同时,在进行问题答案对相关性排序时,利用答案摘要去除原有答案中的噪声。此外,本文还构建了一个新的大型CQA语料库WikiHowQA.实验结果表明两点:首先在答案选择和文本摘要生成任务上都打到了SOTA的水平,此外,此模型具备强大的迁移能力,能在小型CQA任务上同样达到很好的效果。

一、Introduction

这一部分首先说了下CQA的重要性,以及CQA上有很多不同的任务都可以进行研究,比如答案选择,问题之间的相关性,答案分类等。但是目前CQA存在的主要问题在于:

  1. 答案过于冗长,噪声过多,导致在从候选答案集中寻找正确答案时,增加了难度
  2. CQA中的正确答案也好长,导致用于难以阅读和理解

关于答案选择的模型,大多是利用attention机制去找出问题答案对之间的重要相关信息。这类方法对于短的答案很有效,对于长的答案效果不太好

关于答案摘要的生成
阅读理解(RC),主要是从事实类QA中提取答案,比如利用某个单词或者剪短的短语来进行回答;生成式的RC,只能确定一个答案。但是CQA中,通常有多个有用的答案。
文本摘要:主要分为两类:摘要提取和抽象总结,主要应用点是文章。但是对于CQA,在生成答案摘要的时候,要充分利用问题和答案之间的相关信息。
因此本文打算利用来自源文本的上下文信息和问题答案对之间的关系进行答案摘要的抽取

本文的贡献如下:
1、提出了一种联合学习模型,去解决CQA中的长本文答案选择和答案摘要生成。ASAS,利用问题信息去生成答案摘要。同时,可以利用其减少答案的噪声,从而提高QA中的答案选择的精度
2、创建了一种新数据及WikiHowQA,可以同时进行答案选择和答案摘要生成任务。
3、为了解决CQA任务的少数据的问题,设计了一种迁移学习策略,使得那些没有参考答案摘要的任务可以提高实验性能。(中文表达能力有限,大概意思就是这样吧)

二、Related Work

1.CQA

在CQA中,答案选择至关重要。目前的研究主要有基于特征的方法,CNN、RNN等,为了捕获QA中的交互信息,也使用了各种注意力机制。
但是CQA的特定场景,导致答案过长,进而进入了很多噪声,分散了最重要的信息,无形中增加了答案选择的难度、也有一些研究利用其它的信息来平衡QA之间的信息:用户模型、潜在主题、外部知识库、以及问题的主题(CQA中有的问题分为subject和body两部分)

2.文本摘要

文本摘要技术主要分为两类:提取和摘要生成。提取的方法通常是将摘要看作是分类任务或者是序列标记任务,从文章中选择句子以形成摘要。方法主要是采用基于注意力机制的解码-编码模型。

3.多任务学习

主要是目前多任务学习已经在其他的NLP任务上取得了成功,因此也有很多研究者尝试用不同的任务来解决答案选择任务。本文联合学习答案选择和摘要会中,以生成更准确的答案。

三、Method

1.问题描述

给定一个问题 q i q_i qi,相对应的答案候选集为在这里插入图片描述
目标:从答案候选集 A i A_i Ai中找到正确的答案。并且从每个所选择的正确答案 a i ( ∗ ) a_i^{(*)} ai()中生成对应的答案摘要 β i ( ∗ ) \beta_i^{(*)} βi()
数据集 D D D,包含 N N N个问题 Q Q Q。对于每个问题 q i q_i qi,有 M i M_i Mi个候选答案,相对应也有 M i M_i Mi个人工答案摘要和 M i M_i Mi个label,1表示 a i ( j ) a_i^{(j)} ai(j) q i q_i qi的答案,0表示不是
在这里插入图片描述
数据集下载地址
以train.txt为例:
在这里插入图片描述
第一列为问题,第二列为id号,对应的在summary.txt文件里,第三列为label
summary.txt数据集:在这里插入图片描述
第一列为id号,第二列为answer,第三列为相对应的人工写的summary

2.模型

最核心的模型就是ASAS(Answer Selection and Abstractive Summarization),如下图所示;
在这里插入图片描述

整个模型主要分为四大模块;

  1. Shared Compare-Aggregate Bi-LSTM Encoder
    W q W_q Wq W a W_a Wa分别为问题和原始答案所对应的word embedding,利用论文《A COMPARE-AGGREGATE MODEL FOR MATCHING TEXT SEQUENCES》 的compare layer层获得 W ^ q \hat{W}_q W^q W ^ a \hat{W}_a W^a。关于这篇文章可以看下另外一篇阅读笔记
    然后用Bi-LSTM进行encoder
    在这里插入图片描述
  2. Seq2Seq Model with Question-aware Attention

接下来,就是利用基于Seq2Seq模型对答案进行解码,采用单向LSTM作为解码器, s t s_t st为t步骤解码所生成的hidden_state, w t − 1 w_{t-1} wt1为上一步骤的输入。得到了最终的 s t s_t st
在这里插入图片描述
在注意力机制上加入了问题,因此需要计算
在这里插入图片描述
最后得到具有问题感知的attention的系数:
在这里插入图片描述
生成context vector:
在这里插入图片描述
上述三个公式做的东西,可以结合图来进行说明,如下图所示
在这里插入图片描述
只不过不同的一点就是在计算注意力系数的时候,加入了问题和摘要的相关信息。

从这里可以看出, h ^ t \hat{h}_t h^t汇总了来自当前步骤的问题和答案的信息,将其与decoder状态的 s t s_t st做串联,过一个linear layer,即可生成答案摘要 h t s h_t^s hts ,也就是走到了图中的紫色部分。
在这里插入图片描述

  1. Question Answer Alignment with Summary Representations
    利用两种方法来生成 H q H_q Hq(图中左边下面的黄色部分)和 H s H_s Hs(图中的右边蓝色部分)之间的注意力系数
    在这里插入图片描述
    α q \alpha_q αq表示图中竖着的绿色部分, α a \alpha_a αa表示图中横着的绿色部分,然后将各自对应的 H q H_q Hq H s H_s Hs做点乘,得到问题和答案的表达形式
    在这里插入图片描述
    r q r_q rq就是图中左边上面的黄色部分, r a r_a ra就是图中左边上面蓝色的部分。最后做串联、softmax即可
    至于为啥没有用 H a H_a Ha结合 H q H_q Hq来做attention,可能是因为 H s H_s Hs本身就是由 H q H_q Hqdecoder得来的,而且更加简洁,聚合的信息量更多,我的理解就是:相同的信息量,肯定是长度较短的信息量更密集。因此这样来做attention了。
  2. Question-driven Pointer-generator Network
    这一部分,说实在的,看第一遍论文的时候我就没看懂,云里雾里的,可能接受能力不太行。。。下面只是个人的理解,如有偏差,还请批评指正。
    首先,概率分布 P v o c a b P_{vocab} Pvocab 是由summary representation h t s h_t^s hts过一个softmax得到。可以看做是形成了一个词汇表。
    在这里插入图片描述
    然后,用问题感知指针网络从包含有问题信息的源答案中复制单词。问题感知生成的概率 P g e n P_{gen} Pgen是在[0:1]之间的
    在这里插入图片描述
    说白了,就是对单词表进行了一个扩充,将问题和原答案中的单词都加入其中了。
    最后,在从源答案中所获取的词汇和单词之间获得概率分布
    在这里插入图片描述
    问题信息不仅仅在问题驱动的PGN中,参与了生成过程,还参与复制过程。对于PNG不懂的,可以去看下这篇博客的介绍
    下面是我根据理解所画的本文所描述的Question-driven Pointer-generator Network
    在这里插入图片描述
    这样做的目的是:
    问题信息指导所生成概率是从词汇表中生成单词还是直接从源文本中进行复制
    加入问题的注意力机制可以整个问题信息,以便于从源文本中获取重要的单词,进而用于copy
  3. Handling Resource-poor Datasets
    下面介绍了一种如何将模型用于解决少量数据集的相似任务上,以此来证明本文的模型具备迁移学习的能力。主要通过两个步骤来进行迁移学习的实现:
    首先,在源数据集上进行预训练,初始化模型的参数
    接着,将模型用于目标数据集上。也就是所谓的微调。关于微调有两种:
    一种是微调所有的预训练模型的参数
    另外一种在微调阶段固定部分参数。在这种情况下,首先在源数据集上预训练联合学习模型,然后微调答案选择模块
    固定摘要部分不仅能减少对注释类摘要数据的需求,还能防止模型的过拟合。

四、Datasets and Experimental Setting

在这里插入图片描述
上图就是关于本文提出来的WikiHowQA的数据集
在这里插入图片描述StackExchange数据集是用于对本文提出来的联合学习模型的迁移学习能力的检验
实验的设置:
预训练(也就是联合学习模型):
word embedding: Glove 100dim
将文章最大长度设为400
生成的摘要最大长度为100
训练模型进行答案选择:epoch=5
答案摘要生成: epoch=20
lr = 0.15
初始化累加器值=0.1
dropout= 0.5
hidden unit size=150
batch_size = 32
所有的参数随机初始化在[-0.05, 0.05]之间

五、Experimental Result

首先是在WikiHow数据集上的实验结果:

Answer Selection Result

在这里插入图片描述
实验方法主要分为三类:
单个的方法、联合的方法、本文的方法
消融实验也证明了双向注意力机制(增强了问题和解码的答案摘要之间的信息)和指针网络(有助于生成更好的摘要)都有助于最终的结果

Answer Summary Generation Result

在这里插入图片描述
关于ROUGE的计算,可以看这里
由于本文强调的就是答案长度对答案选择和答案摘要生成的影响,因此,下面对各个模型随着答案长度的增加,其性能的比较
在这里插入图片描述
就可以看出,ASAS适合长文本,其他两个模型当文本长度增加的时候,性能会有所下降
上面的指标都是客观计算出来的。当然,提取出来的摘要最终还是要给人来阅读理解的,因此,本文增加了主观的评价标准:Information(从原文本中所捕捉到的关键信息量)、Conciseness(摘要的简洁性)、Readability(摘要的可读性,也就是流畅度如何)、Correlatedness(摘要和问题的关联程度)从这四个方面进行了评价,随机抽取了50个样本,用三个不同的模型生成了摘要,请人工对其进行1-5的打分。结果如下;
在这里插入图片描述
为了证明ASAS模型生成的摘要和问题的相关程度较高,论文中给出了一个具体的例子
在这里插入图片描述

Resource-poor CQA Results

接下来为了证明ASAS模型的迁移学习能力,也就是可以将其作为预训练模型,直接用于其他同类型的小型数据集上,在StackExchange上进行了实验
在这里插入图片描述
大概分为三类:第一种-,表示没有进行预训练和微调的;第二种No,表示直接在源数据上进行预训练,然后没有在目标数据上进行微调直接使用;第三种Yes,表示现在源数据上进行预训练,然后在目标数据上进行微调的结果。可以看出ASAS -5个领域,有4个优于其他的模型。ASAS/NO也能实现较好的结果,表明该模型不仅仅只适用于一种数据集。ASAS/Yes的结果全部由于其他,表明微调策略能有效克服数据的跨领域差异性。

六、Conclusion

总结部分,大概和abstarct相同了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值