论文阅读 | Interconnected Question Generation with Coreference Alignment and Conversation Flow Modeling

论文地址 :https://www.aclweb.org/anthology/P19-1480/

作者 : Yifan Gao, Piji Li, Irwin King, Michael R. Lyu

机构 :香港中文大学,腾讯AI lab

研究的问题:

关注的是会话问题生成。如下图所示,从一片文章中生成相互关联的问题,第一轮之后的每个问题都取决于对话历史记录。

 

所以任务就是,给定一篇文章P,一段对话历史C_i-1={(Q_1,A_1),…, (Q_1-1,A_1-1)},目标是产生Q_i。公式描述如下:

 

在已有的研究工作中,有基于模板的方法,它依赖于设计良好的规则,难以扩展。基于神经网络的方法使用的是端到端模型,有针对如何利用答案来提出问题的相关工作,有利用交互来获得正确答案和在开放域中提问的相关研究。

本文的方法是端到端模型+attention。使用一个multi-source编码器来编码历史信息。使用coreference alignment将会话历史中的相关信息和生成的问题中的相关信息关联。通过建立会话流模型来保证对话的连贯性。

研究方法:

首先是模型的整体框架。

 

模型包括四个部分:多源编码器、有copy、attention机制的解码器、对齐机制、会话流建模。

多源编码器:包括以下两个部分

(1)文章编码器:Bi-LSTM。词编码w和答案位置编码a的串联作为输入x_i = [w_i; a_i]。用Bi-LSTM编码器的隐藏状态表示整个段落。

(2)会话编码器:对话历史是一系列问答对{{Q_1,A_1),…,(Q_i-1,A_i-1)}。 我们使用分段器<q> <a>将每个问答对(Q,A)连接成一个QA序列。先使用词级Bi-LSTM生成关于上下文的隐藏状态,再使用上下文级Bi-LSTM生成关于上下文之间依赖的隐藏状态。

有copy、attention机制的解码器:

LSTM网络,预测单词概率分布。将文章编码器和会话编码器合并作为该解码器的输入: ,其中是文章的表示,是会话的表示。

对于解码器,本身应决定在每个解码时间步长更多地关注段落隐藏状态还是对话历史记录的隐藏状态。在文章上,使用标准的注意力机制,在会话上,使用分层注意力机制。如下所示:

 

最终的输出是上下文向量c_t和生成结果P_V。

 

对齐机制:

对齐机制是告诉解码器在对话attention分布中查看正确的非共指代词,生成公指代词的参考词。比如将“他”这样的代词与具体一个指代的人“克林顿”对应。

首先通过一个共指消解系统(cleark等2016)来找到共指关系,在训练时,引入一个新的损失函数,目的是当模型需要引用共指词时,模型的attention正确地关注到先行词(“克林顿”)上,在输出词汇中最大化该代词(“他”)的概率。

 

会话流建模:

目的是让连贯的对话在转折时有平滑的过渡,作者做了一个实验,发现随着对话的进行,大多数提问者将注意力从段落的开头转移到结尾。遵循这个规律来对对话流程进行建模,以学习对话各阶段之间的平滑过渡。

(1)流嵌入:输入部分包括前边提到的词嵌入w、答案位置a,增加了两个额外的信息。

t-对话轮数

c-将文章划分为大小相同的若干的块,c用来表示每个token在第几个块中,这是为了编码相对位置信息

所以总的输入就是:

之后是门控self-attention模块。具体就是将文章编码器的表示H_p和它自身做attention,得到u_p,再和原始的表示H_p相结合,这样做是为了进一步提取文章的信息,公式如下:

 

之后,对于这部分,再经过一个门控模块:

 

(2)损失函数

首先定义两种句子。

句子对当前问题有所帮助,我们将其称为当前证据句(CES)。

句子对会话历史中的问题有帮助,并且与当前问题无关,我们将其称为历史证据句(HES)。

模型目标是关注当前证据句而忽视历史证据句:

联合训练:

这里的第一项是序列学习中负对数似然损失。

实验部分:

数据集:CoAQ

评估指标:BLEU、ROUGE-L

实验结果如下:

 

PGNet是指针生成器网络

NQG与PGNet类似,但它在编码过程中采用了与单词嵌入相结合的当前答案功能

MSNet是多源编码器解码器网络;CorefNet是对齐机制模型;FlowNet是对话流模型;CFNet是完整模型。

此外作者还做了人工评估,结果比较类似就不放了。

下面是一个具体的例子。

 

评价:

从BLEU等指标上来看确有不少的提升,模型整体还是一个基于attention的端到端框架,不过这里的输入包括了文章本身和对话历史,然而直接使用端到端模型肯定会存在很多问题,作者这里用了共指消解的方法寻找正确的指代关系,通过会话流建模来加强对话的连贯性。

不过本文的场景是限定在一篇文章中,也就是所有的问题和答案都来自于这篇文章,而真实的场景下答案可能有各个来源。而且问题都比较简单,不涉及内容的理解。

猜你喜欢

转载自www.cnblogs.com/bernieloveslife/p/12748903.html