Deep Neural Network for Learning to Rank Query-Text Pairs阅读笔记

论文概要

  • 目的

    在论文Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks的基础上进一步优化,提出一个完全端到端的L2R框架

  • 主要模型和算法

    本文中建造了一个强大的L2R框架——ConvRankNet。

    由一个Siamese Convolutional Neural Network Encoder(用于提取q,d对的特征向量)和RankNet组成。

  • 评价指标

    NDCG

  • 性能

    线性时间

  • 实验数据

    OHSUMED

Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks概要

本论文是基于Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks这篇论文的一个改良

Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks的主要算法如下图:
Deep Neural Network for Learning to Rank Query-Text Pairs阅读笔记

该方法的缺点

  1. QD对都被限制在一个短句中
  2. 方法是pointwise的,在实际应用中很少使用,并且很难利用好点击日志(clickthough log)中的对偏好关系。
  3. 连接层的“additional features”值得质疑,该方法声称是端到端的方法,但人工添加的“additional features”会产生很大影响,导致在CNN中学习到的feature map影响很小。

->于是,作者想要创造一种真正端到端的网络

ConvRankNet

Siamese CNN encoder自动提取特征向量 + RankNet做rank
Deep Neural Network for Learning to Rank Query-Text Pairs阅读笔记

Siamese CNN encoder

  1. Siamese network 孪生神经网络
    Deep Neural Network for Learning to Rank Query-Text Pairs阅读笔记
      神经网络的“连体”是通过共享权值来实现的

      在代码实现的时候,甚至可以是同一个网络,不用实现另外一个,因为权值都一样。对于siamese network,两边可以是lstm或者cnn,都可以。

      用途:衡量两个输入的相似程度。孪生神经网络有两个输入(Input1 and Input2),将两个输入feed进入两个神经网络(Network1 and Network2),这两个神经网络分别将输入映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。

      如图1所示,Siamese CNN encoder由三个共享权值向量的子神经网络组成的。主要组成部分有:sentence matrix(句子举证), convolution feature maps(卷积特征谱), activation units(**单位), pooling layer(池化层)and similarity measure(相似度)

  2. ReLU()函数

    线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元,是一种人工神经网络中常用的**函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。

    斜坡函数:f(x)=max(0,x)

  • Sentence Matrix

    句子矩阵是由N个词向量或者n-gram组成的d维向量空间

  • Convolution Feature Maps, Activation and Pooling

    卷积层用于提取输入语句中的判别模式,使用一个m*d的2d-filter来作为滑动窗口得到一个单列的矩阵。

    使用非线性的activation unit(ReLU)来使网络可以做到非线性学。

    **函数的输出进入一个最大池化层(max-pooling)

  • Similarity Mesure

    为了训练RankNet需要两个特征矩阵(Pairwise两个qd对)

    Deep Neural Network for Learning to Rank Query-Text Pairs阅读笔记

    (本论文选择的是RankNet因为其易实现效果好,但理论上所有Pairwise算法都可以运用)

RankNet

  ranknet是从概率角度,利用pairwise解决排序问题;
  RankNet的核心是提出了一种概率损失函数来学习Ranking Function。
  对于一个排序,RankNet从各个doc的相对关系来评价排序结果的好坏,排序的效果越好,那么有错误相对关系的pair就越少。所谓错误的相对关系即如果根据模型输出Ui排在Uj前面,但真实label为Ui的相关性小于Uj,那么就记一个错误pair,RankNet本质上就是以错误的pair最少为优化目标。而在抽象成cost function时,RankNet实际上是引入了概率的思想:不是直接判断Ui排在Uj前面,而是说Ui以一定的概率Pij排在Uj前面,即是以预测概率与真实概率的差距最小作为优化目标。最后,RankNet使用Cross Entropy作为cost function,来衡量真实概率和预测概率之间的拟合程度。
  在使用神经网络进行训练时, 将排好序的文档逐个的放入神经网络进行训练, 然后通过前后两个文档之间的oij=oi-oj来训练模型, 每一次迭代, 前向传播m次, 后向反馈m-1次。

实验结果

在RankNet和LambdaRank上测试了,使用数据集为OHSUMED,所有的实验都用PyTorch实现。

Deep Neural Network for Learning to Rank Query-Text Pairs阅读笔记

参考文献: