论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi

1 问题

下载点此,关于seq2seq和encoder-decoder的一些基础可以参考这里:参考1参考二

当前的QG模型普遍有以下两个问题:

  • 1 错误的关键词和问题词:模型可能会用错误的关键字和错误的疑问词提出问题
  • 2 复制机制不完善:复制与答案语义无关的上下文词

作者认为以上两个问题,主要是由于缺乏完整的问题语义和答案位置信息没有利用好不好。

2 创新点

对于以上问题,该文共有三个创新:

  • 1 使用具有两个模块分别实现句子级语义匹配和答案位置推断。
  • 2 通过利用应答感知门控融合机制(answer-aware gated fusion mechanism.)提供改进的答案感知句子向量,以此来增强解码器的初始状态。

下面对带有两个模块和门控结构的新模型进行简单介绍:
论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi

下面分别对带门控的seq2seq模型、句子级语义匹配模块和答案位置推断模块进行简单说明。

1. 带门控的seq2seq模型

  • 输入:输入是由答案位置嵌入向量、词汇特征嵌入向量、词嵌入向量组成。

  • encoder:采用双向LSTM,同时不同于直接将最后一个隐藏状态作文encoder给decoder的输入,使用门控融合形成一个用于解码器的改进的答案感知句子向量 z其原理如下:

\[{\begin{aligned} g_{m} &=\sigma\left(W_{m}^{T} *\left[h_{m}, h_{a}\right]+b_{m}\right) \\ g_{a} &=\sigma\left(W_{a}^{T} *\left[h_{m}, h_{a}\right]+b_{a}\right) \\ z &=g_{m} \cdot h_{m}+g_{a} \cdot h_{a} \end{aligned}} \]

其中,\(h_a\)是答案开始位置的隐藏状态,\(h_m\)是最后的隐藏状态,其余均是可训练的权重和偏差.

  • decoder:使用一个单层单项LSTM,将encoder的结果z初始化隐藏状态s1,并将encoder的各时隐藏状态H=[h1, h2, ..., hm]作为上下文输入,并且不断更新后续隐藏状态\(s_t\),其对应的作为decoder的lstm的的输入可以参考下图
    论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi
    论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi

上述部分已经实现了输入信息输出问题信息的模型,下面的部分是为了计算考虑(复制机制和词汇表生成机制的)最终的词汇的概率,并得到合适的损失函数。

通过将当前解码器状态 \(s_t\)(即考虑预测的问题词)和encoder 的隐藏状态H = [h1, h2, ..., hm] 来利用注意力机制并归一化(使用softmax)计算词汇的复制概率\(P_{copy}=\alpha_t\)(考虑了答案位置,词嵌入和词汇特征向量以及生成的问题词)。

\[\begin{aligned} &e_{t}=v_{a}^{T} \tanh \left(W s_{t}+U H\right) \\ &\alpha_{t}=\operatorname{Softmax}\left(e_{t}\right) \\ &c_{t}=H^{T} \alpha_{t} \end{aligned} \]

上下文向量\(c_t\)是用归一化的注意力向量\(\alpha_t\)通过加权和计算,用作计算复制机制的开关,以用于后续损失函数的计算(H保存了每个词汇的各信息,乘以\(P_{copy}\)想当于对这些信息进行了加入了权重)。

同时,由\(c_t\)(包含加入了权重的输入的词汇的各信息,即也考虑了复制词的概率)和decoder的隐藏状态\(s_t\)(包含生成的问题词汇的信息),计算从词汇表V生成问题相关词的概率。其中 f 由两层前馈网络实现.

\[p_{\text {generate }}\left(y_{t}\right)=\operatorname{Softmax}\left(f\left(s_{t}, c_{t}\right)\right) \]

同样利用\(c_t\)和\(s_t\),来计算复制开关。其余为可训练权重以及偏差。

\[g_{c o p y}=\sigma\left(W^{c} s_{t}+U^{c} c_{t}+b^{c}\right) \]

考虑了(加入复制概率的输入词信息)以及(生成的问题词的信息)。最后,带有考虑了复制机制和词汇表生成的最后的次的概率为:
论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi
其中 θ、θ1 和 θ2 是神经网络的参数。
损失函数为:

\[L\left(\theta_{s 2 s}\right)=-\frac{1}{N} \sum_{i}^{N} \log p_{\text {final }}\left(y_{t} \mid y_{<t} ; \theta_{s 2 s}\right) \]

其中 θs2s 是 seq-to-seq 模型的参数,N 是训练数据集中的数据数量。使用负对数似然的损失函数,那么当\(P_{final}\)最大时,损失函数最小。利用损失函数可以对各可训练权重和偏差进行训练。

2. 句子级语义匹配模块

作者观察到在 SQuAD 和 MARCO 数据集中存在针对同一句子中不同答案的不同参考问题。例如,有<句子,答案1,问题1>和<句子,答案2,问题2>。在这种情况下,基线模型容易产生通用问题(即模型可能会用错误的关键字和错误的疑问词提出问题)。 为了克服这个问题。提出了句子级语义匹配模块,以多任务学习的方式从编码器和解码器端学习句子级语义

论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi

  • 句子向量:选择通过门控融合获得的改进的答案感知z
  • 问题向量:选择解码器单向 LSTM的最后一个隐藏状态\(s_n\)
    然后,如图 所示,训练两个分类器来区分(非语义匹配的句子-问题对)和(给定句子级别表示向量和标签[\(z^i, s_n^i, l_i\)] 的语义匹配对),它们是从当前批次数据中统一采样的。

\[p_{s m}=\operatorname{Softmax}\left(W_{c}\left[z^{i}, s_{n}^{i}\right]+b_{c}\right) \]

其中,\(\left[z^{i}, s_{n}^{i}\right]\)是句子向量和问题向量的级联。

通过最小化交叉熵损失,以多任务学习方式使用 seq-to-seq 模型联合训练分类器:

\[L_{s m}\left(\theta_{s 2 s}, \theta_{s m}\right)=-\mathbb{E}_{\left(z^{i}, s_{n}^{i}, \ell_{i}\right)} \log p_{s m}\left(\ell_{i} \mid z^{i}, s_{n}^{i} ; \theta_{s m}\right) \]

其中θsm是两个分类器的参数,psm是分类器的输出概率。关于\(\mathbb{E}_{\left(z^{i}, s_{n}^{i}, \ell_{i}\right)}\)文中并未给出,推测是标签的期望。

3. 答案位置推断模块

基线模型的另一个问题是它从输入句子中复制了与答案无关的词。 一个潜在的原因是模型没有很好地学习答案位置特征,并且注意力矩阵没有由与答案相关的上下文词来表示。 为了解决这个问题,我们利用答案位置推断模块来引导模型以多任务学习的方式学习答案位置意识。

论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi

作者借用了BiDAF模型(Seo et al. 2016)的双向注意力流网络和输出层来推断答案位置。将来自encoder和decoder的句子表示 H ∈ \(R^M∗D\) 和问题表示 S ∈ \(R^N∗D\) 作为输入(即encoder和decoder的隐藏层向量)。
形式上,采用Sentence-to-Question (S2Q) attention和Question-to-Sentence (Q2S) attention来强调每个句子词和每个问题词之间的相互语义相关性,获得了问题感知句子表示\(\tilde{H}\)和通过使用与等式 9(即\(\alpha_t\)) 类似的注意机制,句子感知问题表示\(\tilde{S}\):

\[\begin{aligned} \tilde{H} &=\operatorname{attn}(H, S) \\ \tilde{S} &=\operatorname{attn}(S, H) \end{aligned}\]

然后,使用两个两层双向 LSTM 来捕获以问题为条件的句子单词之间的交互(Seo 等人,2016 年)。 答案开始索引和结束索引由输出层用Softmax函数预测:

\[\begin{aligned} M_{1} &=\operatorname{LSTM}(f(H, \tilde{H}, \tilde{S})) \\ M_{2} &=\operatorname{LSTM}\left(M_{1}\right) \\ p^{1} &=\operatorname{Softmax}\left(W_{\left(p^{1}\right)}^{\top}\left[\tilde{H}, M_{1}\right]\right) \\ p^{2} &=\operatorname{Softmax}\left(W_{\left(p^{2}\right)}^{\top}\left[\tilde{H}, M_{2}\right]\right) \end{aligned} \]

其中 Wp1 和 Wp2 是可训练的权重,f 函数是可训练的多层感知 (MLP) 网络。\(p^{1}\)和\(p^{2}\)分别代表答案起始和结束位置。

我们使用预测分布开始索引 \(y_i^1\) \(y_i^2\) 和结束索引 i 的基本真相答案的负对数似然计算损失:

\[L\left(\theta_{a p}, \theta_{s 2 s}\right)=-\mathbb{E}_{\left(y_{i}^{1}, y_{i}^{2}\right)} \log \left(p_{y_{i}^{1}}^{1}\right)+\log \left(p_{y_{i}^{2}}^{2}\right) \]

其中 θap 是答案位置推断模块要更新的参数,\(y_i^1\) \(y_i^2\) 是真实答案位置标签。E同样推测是是标签的期望。

为了在多任务学习方法中与提出的模块联合训练生成模型,我们将训练期间的总损失最小化:
$$L\left(\theta_{a l l}\right)=L\left(\theta_{s 2 s}\right)+\alpha * L\left(\theta_{s m}, \theta_{s 2 s}\right)+\beta * L\left(\theta_{a p}, \theta_{s 2 s}\right)$$

其中α和β控制句子级语义匹配损失和答案位置推断损失的大小,θall都是我们模型的参数。 通过最小化上述损失函数,我们的模型有望发现和利用问题和句子的句子级和答案位置感知语义

将各部分写在如上(给自己便于理解的):
论文解读:AAAI-2020 Improving Question Generation with Sentence-level Semantic Matching and Answer Positi

3 实验

详细实验过程见论文呢。

  • 数据集:SQuAD V1.1、MS MARCO

  • 参数设置:使用 Adam 优化器进行模型训练,初始学习率为 0.001,当验证分数没有提高时,我们将其减半。。使用 α 为 1 和 β 为 2 来计算我们的总损失函数。模型训练了 20 个时期,小批量大小为 32。我们选择在开发数据集上实现最佳性能的模型

  • 评价指标:BLEU-1, BLEU2, BLEU-3, BLEU-4,ROUGE-L,METEOR

  • 对比模型:NQG++ (Zhou et al. 2017),Feature-enriched Pointer-generator (See, Liu, and Manning 2017),Answer-focused (Sun et al. 2018),Gated Self-attention (Zhao et al. 2018)。后两个为SOTA

*结果: 在 SQuAD 和 MARCO 数据集上优于 SOTA 模型。

4 总结与展望

在本文中,观察了广泛使用的问题生成基线模型的两个问题。 并指出根本原因是现有模型既没有考虑整个问题的语义,也没有很好地利用答案位置感知特征。 为了解决这个问题,提出了具有句子级语义匹配、答案位置推断和门控融合的神经问题生成模型。 大量实验结果表明,我们的工作显着改进了现有模型,并在 SQuAD 和 MARCO 数据集上优于 SOTA 模型。

上一篇:git 提交新项目,并修改用户名以及提交邮箱


下一篇:linux 的 awk 命令格式化输出报表表头