论文解读:COLING-2020(ccf-b)-Answer-driven Deep Question Generation based on Reinforcement Learning

1,问题

本文同样是针对QG中,由于答案信息的缺失或使用不当的导致的问题:

  1. 生成的问题与答案无关

  2. 如果在生成过程中没有适当的指导,尤其是在应用复制机制时,生成的问题中可能会包含答案。

基于以上问题,在本文中,作者提出了一个答案驱动的深度问题生成(ADDQG)模型,它更好地利用目标答案作为指导来促进深度问题的生成。该模型同样采用encoder-decode范式

2,创新

基于以上问题,作者提出两个创新点:

  1. 首先,提出了一个带有门控连接层的答案感知初始化模块,该模块将文档和答案信息引入解码器,从而有助于选择以答案为重点的问题词
  2. 其次,提出在encoder使用语义丰富的融合注意机制,它将答案与文档表示相结合,以促进在生成过程中正确处理答案信息
  3. 最后,应用强化学习来整合句法和语义度量,作为增强 ADDQG 训练的奖励

前面已经提到,作责提出的新模型是基于encoder-decoder框架,通过加入一些额外模块改进得来的答案驱动的深度问题生成(ADDQG)模型,本节基于基本的encoder和decoder框架对创新部分进行简单说明。
首先直接给出ADDQG 在生成步骤 t 的图示(后续公式都是在步骤t下的情况):

1 encoder

新模型分别对答案answer和文件document提出了两个encoder(作者称为词编码器Word encoder)来更精确地定位目标信息以进行后续操作,二者的输入分别为文档集合 \(X^{d}=\left(X_{1}^{d}, \ldots, X_{n}^{d}\right)\) 和对应的答案 \(X^{a}=\left(X_{1}^{a}, \ldots, X_{n}^{a}\right)\)。并且,结合“图编码器(Graph encoder)”来从文档中提取语义信息,构建基于解析的语义图。

此外,本文深度问题生成的灵感来自多跳问答,它聚合多个文档中分散的证据片段以预测正确答案,它的任务就是在给定的\(X^{d}\)\(X^{a}\)的情况下,得到最大化的\(\bar{Y}\)

\[\bar{Y}=\underset{Y}{\arg \max } P\left(Y \mid X^{d}, X^{a}\right) \]

下面分别对 Word encoder和Graph encoder进行介绍。

1.1 Word encoder

模型:来更精确地定位目标信息以进行后续操作,对于Word encoder 对答案和文档两个encoder,并且二者都选用双向LSTM。

输入:二者的输入源表示为嵌入向量序列,使用预训练的 GloVE 嵌入,分别得到词向量 \(\left(w_{i, 1}, w_{i, 2}, \ldots, w_{i, m}\right)\) 作为文档 \(X^{d}\)和答案\(X^{a}\)的输入。

输出:分别得到两个隐藏状态\(H^{A}=\operatorname{BiLSTM}\left(W_{e m b}\left(X^{a}\right)\right)\)\(H^{D}=\operatorname{BiLSTM}\left(W_{e m b}\left(X^{d}\right)\right)\)

1.2 Graph Encoder

实体之间的语义关系是确定包含的查询内容和推理类型的有力线索。为了从文档中提取语义信息,我们使用依赖关系构建基于解析的语义图\(H^{D}\)。因此,该模块的主要目的是更好的提取文档中的语义信息,最终得到语言丰富的文档表示\(H^{DK}\)以促使在后续能和答案信息更好结合,以达到增强答案与问题相关性的目的。

构建语义图主要需要一下四部:

  1. 首先对每个节点v进行第一次初始化,\(v=\left\{w_{j}\right\}_{j=m}^{n}\),其中\(w_{j}\)是该节点中单词的上下文表示,m/n 是文本跨度的开始/结束位置。即加入某一文本跨度内的所有单词到该节点v中

  2. 计算文档encoder的输出\(H^{D}\)对当前节点v中所有单词的权重\(\gamma_{j}^{v}\),其公式为\(\gamma_{j}^{v}=\operatorname{softmax}\left(\operatorname{ReLU}\left(W_{0}\left[H^{D} ; w_{j}\right]\right)\right)\),其中\(w_{0}\)是可训练参数。

  3. 对每个节点进行第二次初始化,即将加入的单词进行加权,那个该节点就对应了一段文本跨度中所有单词的总体表示\(h_{i}^{0}=\sum_{j=m}^{n} \gamma_{j}^{v} w_{j}\)

  4. 使用图注意力网络GAT(Graph Attention Network)的注意力机制,来动态确定消息传递中相邻节点的权重

\[\begin{aligned} &\eta_{i j}=W_{1}^{t-1}\left(\operatorname{ReLU}\left(W_{2}^{t-1}\left[h_{i}^{t-1} ; h_{j}^{t-1}\right]\right)\right) \\ &\alpha_{i j}=\frac{\exp \left(\eta_{i j}\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(\eta_{i k}\right)} \\ &h_{i}^{t}=\sum_{j \in \mathcal{N}_{i}} \alpha_{i j} W^{t_{e_{i j}}} h_{j}^{t-1} \end{aligned}\]

其中,第一个公式计算了相邻节点vj与当前节点vi的相关性,第二个公式对所有相邻节点对当前节点vi的相关性进行类似于softmax的运算,得到各相邻节点对当前节点的权重,也即是不同文本跨度之间的相关性。其中\(mathcal{N}_{i}\)代表节点vi的相邻节点。\(W_{1}^{t-1}\)\(W_{2}^{t-1}\)都是可训练参数。第三个公式就是在当前步骤t下,节点vi的最后值,可以看到将考虑了上一时刻状态及周围节点与其的相关性。
最后,应用门控循环单元(GRU)来合并聚合的相邻信息并获得语义图表示\(H^K\)

2 Decoder

新模型的decoder同样选用双向LSTM,并且同样使用了复制机制。

2.1 应答感知初始化模块Answer-Aware Initialization Module

其实就是对decoder进行初始化的模块,相比于普通的QG模型使用encoder的最后的隐藏状态进行初始化,本模型(ADDQG)使用答案驱动的初始化方法(将Word Encoder中的两个结果\(H^{A}\)\(H^{D}\)进行处理),可以明确引导问题词的选择,生成更注重答案的问题。下面进行说明。

  1. 首先设计了一个融合门来控制文档和答案的信息流率。\(g=\sigma\left(W_{z}\left[H^{A} ; H^{D} ; H^{D} \odot H^{A} ; H^{D}-H^{A}\right]+b_{z}\right)\),可以看到分别考虑了二者单独、二者分量乘法(对应相乘)以及相减三种情况,以便更好的融合二者信息。其中\(\odot\)代表分量乘法(对应相乘)。

  2. Z是解码器的最终初始化,是答案和文档特征的深度融合,\(Z=g \odot H^{D}+(1-g) \odot H^{A}\)。Z将用于初始化decoder的初始时刻的隐藏状态。

2.2 语义丰富的融合注意力Semantic-Rich Fusion Attention

作为decoder中的复制机制做了准备。语义丰富的融合注意力将答案与文档和语义图相结合,以更好地支持生成过程。 下面详细说明。

  1. 首先,语义图表示\(H^{K}\)与文档表示\(H^{D}\)相结合,得到语义丰富的文档表示\(H^{DK}\)。具体来说,如果节点\(v_i\)包含单词\(w_i\),则将单词表示\(H_{i}^{D}\)和节点表示\(H_{v_i}^{K}\)连接起来得到融合表示\(H_{i}^{DK}\)(如果没有对应的 \(v_i\),则填充一个特殊的向量),\(H_{i}^{D K}=F\left(\left[H_{i}^{D} ; H_{v_{i}}^{k}\right)\right]\),其中F(.)是标准非线性转换函数。

  2. 融合答案表示\(H^{A}\)和语义丰富的文档表示\(H^{DK}\),为了模拟输入源之间的复杂交互,我们应用了协作注意机制

  • 首先计算相关矩阵 \(L=H^{D K^{\top}} H^{A}\),其中包含所有对的相似度分数。

  • 针对相关矩阵L,分别按行和按列计算两个注意力权重\(A^{H^{A}}=\operatorname{softmax}(L), A^{H^{D K}}=\operatorname{softmax}\left(L^{\top}\right)\),其中softmax默认是按行的,所以第二个参数为L的转置。对于文档中的每个单词,注意力权重\(A^{H^{A}}\)在答案中,而对于答案中的每个单词,注意力权重\(A^{H^{D K}}\)在文档中。所以第一次按行对答案进行计算求得文档中每个单词的权重\(A^{H^{A}}\),转置后对文档进行计算,求得答案中每个单词的权重\(A^{H^{D K}}\)

  • 接下来,类似于论文呢(Cui et al., 2017),计算问题和文档的相互依赖表示\(C^{H^{DK}}\),公式如下:

\[C^{H^{A}}=H^{D K} A^{H^{A}}, C^{H^{D K}}=\left[H^{A} ; C^{H^{A}}\right] A^{H^{D K}} \]

可以看到,首先对文档中的单词进行加权计算,然后将结果与答案中联合起来进行加权计算得到最终的相互依赖表示。

  • 然后,将语义丰富的文档信息和以及其与答案信息的相互依赖表示进行融合,得到融合表示:\(H^{D K A}=\left[H^{D K} ; C^{H^{D K}}\right]\)

  • 最后,应用语义丰富的表示 HDKA 来获得上下文向量 \(c_t\),以便为复制机制做准备。

\[\begin{aligned} &e_{t}=v_{a}^{T} \tanh \left(W h_{t}^{*}+U H^{D K A}\right) \\ &\alpha_{t}^{*}=\operatorname{softmax}\left(e_{t}\right) \\ &c_{t}=H^{D K A} \alpha_{t}^{*} \end{aligned}\]

其中 W、vT a 和 U 是可训练的参数,\(h_{t}^{*}\)为t时刻decoder的隐藏状态,其公式为\(h_{t}^{*}=L S T M_{D e c}\left(\left[w_{t} ; c_{t-1}\right], h_{t-1}^{*}\right)\),其中\(w_{t}\)为输入(应该为文件encoder的最后输出)上面是t时刻的,初始时\(h_{t}^{*}\)=Z,并据此不断计算每一时刻。

2.3 复制机制和 Maxout 指针Copy Mechanism and Maxout Pointer

为了解决词表外 (OOV,out of vocabulary ) 问题(即目标任务中可能出现一些罕见词或是派生词,词的复数或者其他的一些组合词的规则而产生的词无法用现有词向量模型表示。),decoder使用了复制机制 。该机制允许将标记从输入源复制到解码步骤 t。下面对实现进行简单说明。

  • 该机制利用原始注意力分数 \(\alpha_{t}^{*}\) 来作为复制概率\(p_{\text {copy }}\left(y_{t}\right)\)。采用maxout指针机制,将重复词的分值限制在最大值,解决重复问题。

  • 由词表生成词概率为 \(p_{\text {gen }}\left(y_{t}\right)=\operatorname{softmax}\left(W^{T}\left[h_{t-1}^{*} ; c_{t}\right]\right)\) ,其中\(W^{T}\)为可训练参数。

  • 复制开关k决定产生的字是从词汇表采样还是从输入源复制,其公式为\(k=\sigma\left(W^{c} h_{t}^{*}+U^{c} c_{t}+b^{c}\right)\),其中未指明各项均为可训练参数。

  • t时刻得到的词最后的概率为:
    \(p_{\text {final }}\left(y_{t} \mid y_{<t} ; \theta\right)=k p_{\text {copy }}\left(y_{t}, \theta_{1}\right)+(1-k) p_{\text {gen }}\left(y_{t}, \theta_{2}\right)\),其中\(\theta\)\(\theta_{2}\)分别为复制机制和生成机制的参数。

2.4 用于微调的强化学习Reinforcement Learning for Fine-Tuning

其实就是利用损失函数进行调整

问题生成的损失函数最小化输出生成词的负对数似然为:\(\operatorname{Loss}_{C E}=-\sum_{t} \log P\left(y_{t} \mid y_{<t}, X^{d}, X^{a}, \theta\right)\)

  • 然而,在序列预测模型中使用上述交叉熵损失可能会使过程变得脆弱,因为在特定单词分布上训练的模型用于具有潜在不同分布的测试数据集,以在给定当前预测单词的情况下预测下一个单词。这会在训练过程中产生“暴露偏差”(简单来讲是因为文本生成在训练和推断时的不一致造成的。不一致体现在推断和训练时使用的输入不同,在训练时每一个词输入都来自真实样本(GroudTruth),但是在推断时当前输入用的却是上一个词的输出),强化学习被广泛用于处理问题生成中的“暴露偏差”,并被证明是有效的。 我们将 r 定义为奖励,它是通过将输出序列 Y 与基于度量的相应真实问题 Y∗进行比较来计算的。

  • 使用 BLEU-4 作为奖励 \(r\left(Y, Y^{*}\right)_{\mathrm{BLEU}-4}\),它直接针对评估指标进行了优化,使用词移动距离 (WMD) 作为奖励\(r\left(Y, Y^{*}\right)_{\mathrm{WMD}}\),这使得模型更有效和强壮的。

\[\begin{aligned} &r\left(Y, Y^{*}\right)_{\mathrm{WMD}}=f_{\mathrm{WMD}}\left(Y, Y^{*}\right) \\ &r\left(Y, Y^{*}\right)_{\mathrm{BLEU}-4}=f_{\mathrm{BLEU}-4}\left(Y, Y^{*}\right) \end{aligned}\]

  • 本文没有使用\(r\left(Y, Y^{*}\right)_{\mathrm{BLEU}-4}\)\(r\left(Y, Y^{*}\right)_{\mathrm{WMD}}\)的加权组合,而是应用多奖励优化策略来训练具有两个混合损失的模型,因为很难在其中找到复杂的缩放和权重平衡。因此,本文遵循有效的 SCST 策略,并以贪婪搜索结果 DQG(深度问题生成) 的奖励为基准 b:\(\operatorname{Loss}_{R L}=\left(b-r\left(Y^{s}, Y^{*}\right)\right) \log P\left(y_{t}^{s} \mid y_{<t}^{s}, X^{d}, X^{a}, \theta\right)\)。其中\(Y^{s}\)是采样出书。

  • 按一定比例交替训练两个混合损失\(\operatorname{Loss}_{\text {mixed }}^{W M D}\)\(\text { Loss }_{\text {mixed }}^{B L E U-4}\)

\[\begin{aligned} &\operatorname{Loss}_{\text {mixed }}^{W M D}=\alpha^{W W D} \operatorname{Loss}_{R L}^{W M D}+\left(1-\alpha^{W M D}\right) \operatorname{Loss}_{C E} \\ &\text { Loss }_{\text {mixed }}^{B L E U-4}=\alpha^{B L E U-4} \operatorname{Loss}_{R L}^{B L E U-4}+\left(1-\alpha^{B L E U-4}\right) \operatorname{Loss}_{C E} \end{aligned}\]

其中 α 是控制交叉熵损失\(\operatorname{Loss}_{C E}\) 和强化学习损失\(\operatorname{Loss}_{R L}\) 之间权衡的比例因子。
最后给出自己做的笔记给自己做参考:

3,实验

  • 数据集:对于深度问题生成,常用的如SQuAD数据集的问题都比较浅,不太适用。因此选择HotpotQA ,其中的问题是通过对多个支持文档进行推理来回答的。

  • 对比模型:S2S-Att,NQG,s2s-mcp-gsa,ASs2s-a,SemQG,SGGDQ

  • 评价指标:自动评估(BLEU,METEOR,ROUGE-Lis),人工评估(Naturalness,Complexity,Relevance)。

  • 实验结果:ADDQG 模型在 HotpotQA 数据集上取得了最先进的结果(stateof-the-art )。

4,总结与展望

深度问题生成旨在生成需要对多条信息进行推理的复杂问题。 在本文提出了一种基于强化学习的答案驱动的端到端深度问题生成模型(ADDQG)。 具有门控连接层和语义丰富的融合注意机制的答案感知初始化模块旨在将文档和答案信息纳入生成过程。 进一步应用强化学习来整合句法和语义度量,作为增强 ADDQG 训练的奖励。 实验表明,ADDQG 在具有挑战性的 DQG 数据集上优于最先进的系统。 消融研究证明了设计的有效性,人工评估表明提出的模型可以产生更连贯且以答案为重点的问题。

未来研究可以在几个方向上进行。 首先,尝试使用深度图卷积编码器来获取更深层次的语义信息,并探索更精细的文档和答案信息集成机制。 其次,将应用预训练的多跳问答模型来生成奖励来优化 ADDQG,从而进一步增强该 DQG 模型的推理能力。

posted @ 2021-11-03 20:06  xingye_z  阅读(364)  评论(0编辑  收藏  举报