打怪兽

 

Learning to rank

LTR(Learning to rank)是一种监督学习(SupervisedLearning)的排序方法,已经被广泛应用到推荐与搜索等领域

一. 问题阐述

用户 [公式] 的查询query为 [公式] ,候选文档集docs为 [公式] ,正确的结果排序假设为 [公式]。候选文档集要一般大于最终返回的集合,因此 [公式] 。例如,给出一个提问句子从候选句子(有10个)中选出最佳的5个的答案,返回的列表也要按优劣排序,优的在前面。

二. 方法介绍

Pointwise

pointwise把排序问题当成一个二分类/多分类/或者回归问题,训练的样本被组织成为一个三元组 [公式][公式] 为一个二进制值,表明 [公式] 是否为 [公式] 正确回答。我们就可以训练一个二分类网络: [公式] ,其中 [公式] 。训练的目标就为最小化数据集中所有问题和候选句子对的交叉熵。
在预测阶段,二分类模型 [公式] 被用来排序每一个候选句子,选取top-k的句子作为正确回答。
Pointwise常用方法有McRank等。
缺点:ranking 追求的是排序结果,并不要求精确打分,只要有相对打分即可;pointwise 类方法并没有考虑同一个 query 对应的 docs 间的内部依赖性;损失函数也没有考虑到预测排序中的位置信息;

Pairwise

在pairwise方法中排序模型 [公式] 让正确的回答的得分明显高于错误的候选回答。给一个提问,pairwise给定一对候选回答学习并预测哪一个句子才是提问的最佳回答。训练的样例为 [公式] ,其中 [公式] 为提问,[公式] 为正确的回答, [公式] 为候选答案中一个错误的回答。
损失函数为合页损失函数:
[公式]
其中 [公式] 为边界阀值。如果 [公式] ,则损失函数 [公式] 大于0,当满足这个不等式的时候,意味着模型把非正确的回答排在正确答案的上面;如果 [公式] 等于0,模型把正确的回答排在非正确的回答之上。合页损失函数的目的就是促使正确答案的得分比错误答案的得分大于 [公式] 。和pairwise类似,在预测阶段得分最高的候选答案被当作正确的答案。
Pairwise有很多的实现,比如Ranking SVM,RankNet,Frank,RankBoost等。
缺点:pairwise 方法相对 pointwise 方法对噪声标注更敏感,即一个错误标注会引起多个 doc pair 标注错误;pairwise 方法仅考虑了 doc pair 的相对位置,损失函数还是没有考虑到预测排序中的位置信息;pairwise 方法也没有考虑同一个 query 对应的 doc pair 间的内部依赖性

Listwise

pariwise和pointwise忽视了一个事实就是答案选择就是从一系列候选句子中的预测问题。在listwise中单一训练样本就:query和它的所有候选回答句子。在训练过程中给定提问数据 [公式] 和它的一系列候选句子 [公式] 和标签 [公式] ,归一化的得分向量 [公式] 通过如下公式计算:

[公式]

[公式]

标签的归一化方法为:

[公式]
训练的目标可以为最小化 [公式][公式]KL散度
Listwise常用方法有AdaRank,SoftRank,LambdaMART等。
Listwise方法相比于pariwise和pointwise往往更加直接,它专注于自己的目标和任务,直接对文档排序结果进行优化,因此往往效果也是最好的。

三.排序评价指标

MRR(Mean Reciprocal Rank)

这是所有指标中最简单的一个,找出该query相关性最强的文档所在位置,并对其取倒数,即这个query的MRR值。本例中,真实得分最高的文档为4分,且排在第1位,那么这个query的MRR值即 1 / 1 = 1,如果排在第i位,则MRR = 1 / i。然后对所有query的MRR值取平均即可得到该数据集上的MRR指标,显然MRR越接近1模型效果越好。但该指标的缺陷在于仅仅考虑了相关性最强的文档所在的位置带来的损失。

MAP(Mean Average Precision)

这个指标需要通过几个公式定义来解释。首先为了定义MAP需要确定一个参数k,k代表前k个documents。接下来定义P@k:

这里 [公式] 代表documents list,即推送结果列。 [公式] 是指示函数, [公式] 代表排在位置 [公式] 处的document的标签(相关为1,否则为0)。这一项可以理解为前k个documents中,标签为1的documents个数与k的比值。

再定义Average Precision(AP):其中 [公式] 代表与该query相关的document的数量(即真实标签为1), [公式] 则代表模型找出的前 [公式] 个documents.

假设有两个主题,某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5。对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。

NDCG(Normalized Discounted Cumulative Gain)

首先定义DCG通常来说, [公式] ,代表排在位置 [公式] 的doc的得分。比如 [公式]时,doc为4.0分,那么 [公式][公式] ,表示随着排序位置的靠后带来的折扣因子,即排序越靠后的doc对该指标影响越小。

NDCG的公式定义为:其中 [公式] 代表模型排序结果达到最优时的DCG值,即文档得分按降序排列,此时高得分文档的位置往前靠即变小,则DCG会增大,最终排名第一个DCG即为[公式].

四. 参考

文本匹配

一. 定义

研究两段文本之间的关系(比如相似度)

二. 常见方法

  • 孪生网络: SiameseCNN和SiameseLSTM(两个网络共享权重)

sentence encoder可以用CNN或者LSTM(BiLSTM),CNN通过max pooling,LSTM通过最后一个时间步的输出作为句子的向量表示,分别为u和v,然后基于u和v构建用于建模两者匹配关系的特征向量,然后用额外的模型(比如MLP)来学习通用的文本关系函数映射,比如分类。

  • Attention结构(基于交互)

首先通过attention为代表的结构来对两段文本进行不同粒度的交互(词级、短语级等),然后将各个粒度的匹配结果通过一种结构来聚合起来,作为一个超级特征向量进而得到最终的匹配关系。

  • BERT(吊打前面)

三. 常见数据集以及场景

  • Natural Language Inference
    • MNLI Multi-Genre Natural Language Inference is a large-scale, crowdsourced entailment classification task (Williams et al., 2018). Given a pair of sentences, the goal is to predict whether the second sentence is an entailment, contradiction, or neutral with respect to the first one.
    • MRPC Microsoft Research Paraphrase Corpus consists of sentence pairs automatically extracted from online news sources, with human annotations for whether the sentences in the pair are semantically equivalent (Dolan and Brockett, 2005).
    • RTE Recognizing Textual Entailment is a binary entailment task similar to MNLI, but with much less training data.
  • Textual Similarity
    • QQP Quora Question Pairs is a binary classification task where the goal is to determine if two questions asked on Quora are semantically equivalent
    • STS-B The Semantic Textual Similarity Benchmark is a collection of sentence pairs drawn from news headlines and other sources (Cer et al.,2017). They were annotated with a score from 1 to 5 denoting how similar the two sentences are in terms of semantic meaning.
  • QA
    • QNLI Question Natural Language Inference is a version of the Stanford Question Answering Dataset (Rajpurkar et al., 2016) which has been converted to a binary classification task (Wang et al., 2018a). The positive examples are (question, sentence) pairs which do contain the correct answer, and the negative examples are (question, sentence) from the same paragraph which do not contain the answer.
    • SQuAD v1.1 The Stanford Question Answering Dataset (SQuAD v1.1) is a collection of 100k crowdsourced question/answer pairs (Rajpurkar et al.,2016). Given a question and a passage from Wikipedia containing the answer, the task is to predict the answer text span in the passage.
    • SQuAD v2.0 The SQuAD 2.0 task extends the SQuAD 1.1 problem definition by allowing for the possibility that no short answer exists in the provided paragraph, making the problem more realistic.
  • 信息检索中的匹配
    • 一般先通过检索方法召回相关项,再对相关项进行rerank。对这类问题来说,更重要的是ranking

四. 参考

sentence embedding

一. 常见

  • 预训练的词向量直接平均(word2vec、Glove、FastText)
  • 预训练的词向量加权平均 (权重可以用TF-IDF)
  • RNN/LSTM最后一个隐状态(例如Laser的encoder部分。与任务相关,在新任务中需要重新训练,无法并行开销大)
  • CNN取隐藏状态(整合不同大小的 n-gram 特征作为整个句子的表示,优点在于提取局部特征)

二. 参考