自然语言处理(NLP)面试必备:pointwise 、 pairwise 、listwise

自然语言处理(NLP)面试必备:pointwise 、 pairwise 、listwise

0 引言

在NLP业务中有这么一种场景:给出一个提问句子从候选句子中选出最佳的答案。就如以下样例所示:

Who established the Nobel Prize?
1. The Nobel Prize was established more than 100 years ago.
2. The Fields Medal, established in 1936, is often described as the Nobel Prize of mathematics.
3. The Nobel Prize was established in the will of Alfred Nobel.

在上面例子中有一个提问,后面对应了3个候选回答,很明显第3个候选句子为最佳的回答。我们可以把这类问题理解成一个排序问题。假设我们已经有了模型 h_{\theta} 来对数据集进行学习,那么怎么组织学习学习方式呢?这就涉及了本文的主题:pointwise、pairwise、listwise。

1 Pointwise

在pointwise中把排序问题当成一个二分类问题,训练的样本被组织成为一个三元组 (q_{i},c_{i,j},y_{i,j}) 。其中 q_{i} 为数据集中的一条提问句(如:Who established the Nobel Prize? );

c_{i,j}c 取candidate之意)为 q_{i} 对应的一个候选答案,正如样例中的3个候选句子中的一个; y_{i,j} 为一个二进制值,表明 c_{i,j} 是否为 q_{i} 正确回答。我们就可以训练一个二分类网络: h_{\theta}(q_{i},c_{i,j})\rightarrow y_{i,j} ,其中 0 \leq y_{i,j} \leq 1

结合样例中网络的输入为:Who established the Nobel Prize? 和 1.The Nobel Prize was established more than 100 years ago.

输出为0,因为第一句回答不正确的候选句子。训练的目标就为最小化数据集中所有问题和候选句子对的交叉熵。

在预测阶段,二分类模型 h_{\theta} 被用来排序每一个候选句子,选取最top-ranked的句子作为正确回答,即 argmax_{cij}h_{θ}(q_i, c_{ij})q_i 的最佳回答。

2 Pairwise

在pairwise方法中排序模型 h_\theta 让正确的回答的得分明显高于错误的候选回答。给一个提问,pairwise给定一对候选回答学习并预测哪一个句子才是提问的最佳回答。训练的样例为 (q_i, c^+_ i, c^−_i) ,其中 q_i 为提问,c^+_i 为正确的回答, c^-_i 为候选答案中一个错误的回答。

损失函数为合页损失函数:

L=max\left\{ 0,m-h_\theta(q_i,c^+_i)+h_\theta(q_i,c^-_i)\right\}

其中 m 为边界阀值。如果 h_θ(q_i, c^+ _i)−h_θ(q_i, c^−_i) < m 损失函数 L 大于0,当满足这个不等式的时候,意味着模型把非正确的回答排在正确答案的上面;如果 L 等于0,模型把正确的回答排在非正确的回答之上。用另一种方式解释就是,如果正确的答案的得分比错误句子的得分之差大于 mh_θ(q_i, c^+ _i) − h_θ(q_i, c^−_i) ≥ m ),总之合页损失函数的目的就是促使正确答案的得分比错误答案的得分大于 m 。和pairwise类似,在预测阶段得分最高的候选答案被当作正确的答案。

3 Listwise

pariwise和pointwise忽视了一个事实就是答案选择就是从一系列候选句子中的预测问题。在listwise中单一训练样本就:提问数据和它的所有候选回答句子。在训练过程中给定提问数据 q_i 和它的一系列候选句子 C \left( c_{i1}, c_{i2}, ..., c_{im}\right) 和标签 Y\left( y_{i1}, y_{i2}, ..., y_{im} \right) ,归一化的得分向量 S 通过如下公式计算:

Score_j= h_θ(q_i, c_{ij})

S = softmax([Score_1, Score_2, ..., Score_m])

标签的归一化方法为:

Y=\frac{Y}{\sum_{m}^{j=1}{y_{ij}}}

训练的目标可以为最小化 SY 的KL散度(对KL散度、交叉熵等信息论概念不理解的请移步下文参考文献3)。

总结

虽然pointwise广泛应用但是,但是不接近真实的排序。pairwise和listwise应用了基于候选句子排序的事实。Bian证明在TrecQA 和WikiQA数据集中listwise优于pointwise。下一篇将介绍常用模型 h_\theta 和评价指标。

References

  1. Lai T M, Bui T, Li S. A review on deep learning techniques applied to answer selection[C]//Proceedings of the 27th International Conference on Computational Linguistics. 2018: 2132-2144.
  2. Weijie Bian, Si Li, Zhao Yang, Guang Chen, and Zhiqing Lin. 2017. A compare-aggregate model with dynamic- clip attention for answer selection. In CIKM.
  3. 如何通俗的解释交叉熵与相对熵?

发布于 2019-02-17 18:20