Press "Enter" to skip to content

Info-Maximizing Hierarchical Conditional VAEs

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

Source: ACL 2020: Generating Diverse and Consistent QA pairs from Contexts with Information-Maximizing Hierarchical Conditional VAEs

 

Code: seanie12/Info-HCVAE

 

Key insight: 针对当前的QG模型生成的QA pairs普遍缺乏多样性和一致性的问题,作者提出了 带互信息正则化的层次条件变分自编码器(Info-HCVAE) ,其中的HCVAE提升了生成的QA pairs的多样性,互信息正则项提升了生成的QA pairs的语义一致性。为了更好地评估生成的多样性,作者在QAE指标的基础上提出了 Reverse QAE 指标,实验结果表明Info-HCVAE能够生成高质量、多样化且一致性好的QA pairs。

 

Introduction

 

抽取式问答(Extractive Question Answering)是NLU最基本的任务之一,目前不少基于 PTM 的QA模型已经在一些 基准数据集(SQuAD) 上超越了人类水平。然而,这些SOTA模型的成功很大程度上得益于大规模标注数据集,要将这些QA模型部署到现实世界的应用中,通常需要投入大量成本去构建大规模高质量的领域数据集来训练模型。因此, 标注数据的稀缺性是QA面临的主要挑战之一 ,自动问题生成(Question Generation)和问答对生成(Question-Answer pair Generation)任务应运而生,QG任务一方面提供了一类数据增强或半监督学习的方式辅助QA模型的训练,另一方面,QG任务本身也有可落地的应用价值。

 

近几年已经有不少QG模型被提出,但这些模型都忽略了一个重要的点,也就是从信息丰富的context中生成QA pairs本质上是一个 一对多 的问题,而众所周知的是, 由于Seq2Seq模型是用极大似然估计(MLE)训练的,因此基于Seq2Seq的QG模型生成的问题通常缺乏多样性。 许多QG模型尝试通过beam search来生成不同的问题来实现多样性,但这种方式通常是次优的。QG任务的另一个挑战是 如何保证生成的问题和答案之间的一致性 ,生成的问题和答案应该是语义一致的(answerable),这在QG模型里还没有得到深入研究。

 

针对上述问题,作者提出了一种深度概率生成模型: Info-HCVAE 。作者一方面通过层次条件变分自编码器(HCVAE)分别引入了question和answer的潜在空间来增强QA pairs的 多样性 ,另一方面通过互信息(MI)来衡量question和answer的 一致性 ,并设计了一个正则化项(InfoMax Regularizer)来鼓励模型生成语义一致的QA pair。在生成阶段,模型首先根据context生成一个answer,然后根据context和answer生成对应的question,这种依赖关系能够让模型生成专注于context的不同片段的QA pairs。

Related Work

 

Question and Question-Answer Pair Generation

 

基于encoder-decoder结构的QG主要起源于2017年的两篇论文: Learning to ask: Neural question generation for reading comprehension(ACL 17)Neural question generation from text: A preliminary study(NLPCC 17) ,而本文设定的Baseline是 Paragraph-level Neural Question Generation with Maxout Pointer and Gated Self-attention Networks(EMNLP 18) ,因此在生成网络的结构上本文很大程度上借鉴了这篇论文的设计。

 

比起QG任务,QAG任务受到的关注更少,QG与QAG的不同在于QG假设answer span是事先给定的,answer span可以是人工标注的,也可以是通过基于NER、RE之类的答案选择模型得到的,从这个角度来看,QAG任务似乎更general一些。

 

目前VAE已经被大量应用到了文本生成任务中,虽然已经有人将VAE用于QG任务( Teaching Machines to Ask Questions (IJCAI 18) ),但还没有人将其用于QAG任务。

 

Semi-supervised QA with QG

 

QG和QA是相辅相成的任务,在评估QG模型的时候,通常都需要QA模型的配合,它们也可以组合形成很多不同的半监督学习范式,这里仅举几例:

联合学习: Question Answering and Question Generation as Dual Tasks
对抗学习(GAN): Learning to Collaborate for Question Answering and Asking(NAACL-HLT 2018)
课程学习(Curriculum Learning): Self-Training for Jointly Learning to Ask and Answer Questions(NAACL-HLT 2018)

Method

 

QAG任务可以描述为给定一个包含 个token的context: ,我们想要生成QA pair: ,其中 分别表示问题和答案,模型需要从数据中学习条件联合分布 ,这样我们就可以采样该分布得到新的QA pairs:

 

 

Hierarchical Conditional VAE

 

作者采用VAE框架来近似 ,但作者并不是直接学习问题和答案联合的潜在空间,而是将其分解成了问题潜在空间 和答案潜在空间

 

 

作者假设条件先验 是各向同性的高斯分布(isotropic Gaussian distribution),而 是类别分布(categorical distribution),因为answer被限定为是context的一个span,所以answer的潜在空间适合用离散的类别分布来建模,又因为我们可以针对单一的context中提出几乎无限个有效的question,所以question的潜在空间更适合用连续的高斯分布来建模。

 

另外 并没有被假设是独立的两个潜在空间,在这里作者设计了一个question和answer的双向依赖关系,即强制answer潜在变量依赖于question潜在变量: ,并通过抽样过程来实现question和answer的反向依赖关系:

 

作者还进一步假设了 是条件独立的: ,这样就可以使用变分后验 来最大化ELBO(推导见原文附录):

 

 

其中 分别为生成网络、后验网络和先验网络的参数,上述模型便是HCVAE的整体结构,用概率图表达出来如下图所示:

生成的整体过程为:

采样问题潜在变量:

采样答案潜在变量:

生成答案:

生成问题:

下面分别讲解生成、后验和先验网络的具体结构。

Prior Networks

 

对于question的条件先验分布 ,我们首先使用BiLSTM对context的word embedding(由冻结的预训练BERT的词嵌入矩阵给出)进行上下文编码,然后通过一个MLP得到高斯分布的参数 ,对于answer的条件先验分布 ,我们联合问题潜在变量 和context的上下文编码经过另一个MLP来得到参数

 

Posterior Networks

 

我们分别使用两个条件后验网络 来近似question和answer的潜在变量的真实后验分布,首先使用两个BiLSTM分别来获取question和context的隐藏表示,然后将这两个隐藏表示通过一个MLP来获取高斯分布的参数 。由于采样过程 不可导,因此采用重参数技巧使得反向传播可行。

 

然后我们用另一个BiLSTM来编码附加answer信息的context(answer-aware context),附加方式是将answer以binary token type的方式像BERT的原始输入那样编码到context中,然后通过预训练好的BERT获取answer-aware context,最后将得到的隐藏表示联合 送进MLP计算出类别分布的参数 ,并采用 gumbel-softmax 技巧来重参数离散分布的采样过程。

 

Answer Generation Networks

 

我们可以将 分解为更简单的 分别表示answer span在context中的起始位置和结束位置,为了对它们做极大似然估计,我们首先用预训练好的BERT对context进行上下文编码 ,然后通过一个 heuristic matching layer 和一个BiLSTM计算出context和 的一个最终表示

 

 

最后将 分别输入到两个不同的线性层来预测 ,得到生成的answer。

 

Question Generation Networks

 

作者将问题生成网络设计为一个Seq2Seq结构,在编码阶段,使用预训练的BERT将answer-aware context编码为上下文词嵌入,然后用两层的BiLSTM将其进一步编码为上下文隐藏表示,并加入gated self-attention mechanism来更好地捕捉context内部的长距离依赖,由此获取一个新的隐藏编码表示

 

生成网络的解码器也是一个两层的LSTM,它将 作为初始状态,并采用了众所周知的attention mechanism,即利用每一步解码的隐藏表示 动态汇聚为上下文向量 ,然后将 一起送到带有Maxout激活单元的MLP中算出最终的解码隐藏状态

 

 

其中 是问题的词嵌入,每一步解码的生成概率分布为 是冻结的预训练词嵌入矩阵。另外模型还加入了copy mechanism,并在生成问题的时候采用greedy decoding以确保生成的QA pairs随机性全都来自于潜在变量的采样。

 

Consistent QA Pair Generation with Mutual Information Maximization

 

QAG任务最重要的挑战之一是 如何保证生成的问题和答案的语义一致性 ,即保证生成的问题是可以被答案所回答的,当前大多数QG模型经常会生成与上下文和答案不相关的问题,因此本文作者设计了一个鼓励QA pair语义一致的机制。作者假设可回答的QA pair具有更高的互信息(MI),然而MI的精确计算是intractable的,因此作者采用了神经网络来近似计算,MI有很多近似估计的方法,作者采用的是 QAInfomax 中基于Jensen-Shannon散度的估计:

 

 

其中 分别表示在正样本和负样本上的期望,而负样本是每个minibatch中的question和answer随机组合得到的。直观上来看, 和一个二分类器相似,即判别QA pair是否来自QA的联合分布。作者通过实验发现下面的 能够达到一致性的目标:

 

 

其中 ,将此MI的估计与HCVAE结合,便得到了Info-HCVAE的优化目标:

 

 

Experiment

 

作者在SQuAD v1.1、Natural Questions和TriviaQA数据集上训练并评估Info-HCVAE,其中QA模型采用原始的BERT-base。

 

Quantitative Analysis

 

文本生成模型面临的关键挑战之一是 缺少有效的定量评估指标 ,如何定量地衡量模型生成的QA pairs的质量呢?通用的一些指标(BLEU、ROUGE、METEOR)只会告诉我们生成的QA pairs和Ground Truth(GT) QA pairs有多相似,这与QA pair本身的质量不是直接相关的。因此,作者使用了 Zhang and Bansal 提出的衡量QA pair质量的指标: QAE,QAE的评估方式很简单,即 首先用QG模型生成的QA pairs训练QA模型,然后将人类标注的QA pairs作为测试集来评估QA模型,这同时也评估了QG模型。

 

QAE衡量了生成的QA pairs的分布和GT QA pairs有多相似,没有考虑QA pairs本身的多样性,但是在半监督学习的设定下,我们已经有了Ground Truth标注了,我们实际希望模型能够生成和Ground Truth不同的QA pairs,这样才能达到数据增强的效果,因此作者提出了一个新的指标 Reverse QAE(R-QAE) 来衡量生成的QA pairs的多样性。R-QAE与QAE恰好相反,即 用Ground Truth训练QA模型,用生成的QA pairs评估模型 。如果生成的QA pairs覆盖了比人类标注数据更大的语义空间,R-QAE将会偏小,也就是越多样化,不过需要注意的是R-QAE必须在QAE足够高的时候才有意义,因为生成的无效问题也会导致低的R-QAE。

 

Result

 

作者的实验表明Info-HCVAE具有明显更高的QAE(quality)和更低的R-QAE(diversity),这表明模型能够生成高质量、多样且语义一致的QA pairs,另外Info-HCVAE表现得比HCVAE更好,这表明作者提出的InfoMax Regularizer是有效的。

下图表明比起其他QG模型,Info-HCVAE能够生成更少的QA pairs来训练相同精度的QA模型。

下图表明Info-HCVAE生成的QA pairs有更高的互信息,即一致性更好。

Ablation Study

 

作者为了探索概率潜在变量建模和层次建模带来的增益,进行了消融实验。当我们去掉潜在变量时,模型便退化成了确定的Seq2Seq模型(Baseline),实验表明加上潜在变量之后,模型的QAE和R-QAE都会变得更好。

Qualitative Analysis

 

Human Evaluation

 

作者人工评价了Info-HCVAE和Maxout-QG生成的QA pairs的质量,评价方式为比较模型在同一个context上生成的QA pairs的多样性、一致性和整体质量(Overall),Info-HCVAE给出的结果在多数时候都更优秀。

One-to-Many QG

 

之前提到问题生成是一个一对多的问题,因此作者通过对问题潜在空间 多次采样来生成同一答案的不同问题,生成结果表明模型能够 针对一个答案生成一系列语义一致且更多样的问题 。

Latent Space Interpolation

 

为了验证Info-HCVAE是否学习到了有意义的潜在空间,作者采用对两个潜在编码插值的方法来分析模型的潜在空间。具体来说,首先用后验网络 将两个QA pair编码到 ,然后从先验网络 中采样插值后的 来生成QA pair。实验结果表明QA pair的 语义能够平滑地从一个潜在编码转换到另一个潜在编码 。

Semi-supervised QA

 

上面的实验主要是测试QG模型本身的性能,接下来作者将QG用于半监督学习中,即训练同时利用人工标注的QA pairs和生成的QA pairs来训练QA模型,以验证生成的QA pairs是否能帮助QA模型提升性能。实验结果表明QG模型能帮助QA模型小幅提升性能,同时在额外的数据集(H)上训练QG模型时,性能会进一步提升。

当目标任务的数据集没有任何标注信息时,QG模型才是最有用的。作者首先在SQuAD上训练Info-HCVAE,然后利用训练好的模型为NQ和TriviaQA数据集生成大量QA pairs,并用这些生成的QA pairs微调在SQuAD上预训练的QA模型。实验结果表明,生成的QA pair越多,QA模型的表现通常就越好,显着超越了单纯只在SQuAD上预训练的QA模型。不过由于源数据集和目标数据集的分布差异,这样训练出来的模型表现还是大幅落后于在人工标注的数据集上训练出来的QA模型。

Discussion

 

QG任务致力于解决的问题本质上和少样本学习,迁移学习有关,在作者的实验中我们也看到了用预训练的QG模型生成的目标领域的QA pairs来微调预训练的QA模型,带来的性能提升幅度还是有限的,这说明不同领域数据分布的差异是很难克服的,而元学习可能是解决模型在不同数据集上泛化问题的一种思路。

 

Reference

 

SlidesLive

 

问答对生成(QAG)| 你还在手工梳理问答对吗?

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注