由于知乎字数限制,单篇文章字数限制不超过5万字,这篇文章主要为上一篇的延续

前文链接: 搜索中的深度匹配模型


4.3 match function模型总结

5.搜索中query和doc的相关性匹配模型

5.1 基于global distribution的模型

5.1.1 DRMM模型

5.1.2 K-NRM模型

5.1.3 Conv-KNRM模型

5.2 基于local context的模型

5.2.1 PACRR模型

5.2.2 Co-PACRR模型

5.2.3 DeepRank模型

6.总结

7.参考文献


4.3 match function 模型总结

本章讲到的基于match function的匹配模型对比第三章讲到的基于representation learning的匹配模型,让query和doc在一开始就提前交互,可以类比图中的图像匹配,是个二维匹配的过程,如图4.47所示。

图4.47 图像和文本匹配过程相似性

对于query和doc,核心思想是如何构建query中的term以及doc的term的交互矩阵。4.1介绍的基于word level的匹配度矩阵的模型,大致可以用诺亚方舟2013年nips这篇文章的图4.48来表示。对于query中(Y轴)的所有term,以及doc中(X轴)中的所有term,两两计算得到匹配分数,可以得到一个10*10的匹配度矩阵。具体的匹配计算方式,在4.1.2的MatchPyramid中提出了3种不同的计算方法,有直接代表精确匹配的indicator,有计算两个word的向量点击的dot product,也有计算两个word的cosine相似度方法。

图4.48 基于match function learning匹配模型的通用范式

得到匹配句矩阵后,简单的做法是如下图所示直接连接全连接网络,更多的做法,这里就可以用各种常见的神经网络了。如4.1.2的MatchPyramid模型用卷积和池化进行信息提取,4.1.3的Match-SRNN模型用二维也就是空间层级的GRU来提取信息。

更多的,在4.2这一节,则介绍了各种attention结构的变化,名词千变万化,我个人按照论文本身的网络结构出发,大体分成以下几类模型

(1) Baseline的attention模型:如4.2.1的ABCNN,以及4.2.2的DecAtt模型都是比较早提出attention的模型,整体结构相对后续其他变种来说相对简单

a) ABCNN模型:主要是用卷积和池化的思路提取匹配度矩阵的attention。根据attention在卷积之前和卷积之后又分为ABCNN-1和ABCNN-2

b) DecAtt模型:较早使用self-attention的匹配模型,把attention看成是soft-align机制。

(2) 多视角维度:如4.2.3的MCAN模型、4.2.4的HCRN模型、4.2.5的BiMPM模型、4.2.8的MwAN模型、4.2.11的MIX模型都属于多种attention的组合。这里的attention可以有多种角度进行区分

a) MCAN模型:将attention分为query和doc之间的max pooling、mean pooling、alignment pooling以及query和doc各自内部的self-attention。最终各种attention进行组合,从而体现Multi-Cast-Attention的思想

b) HCRAN模型:将attention分为alignment pooling,以及extractive pooling,其中后者又分为max pooling和mean pooling。

c) BiMPM模型:整个计算过程都是对称的,query->doc的所有计算,在doc->query也都需要计算一遍,体现了双向(Bidirectional)的思想。对于匹配方式,则提出了full-matching、max-pooling-matching、attentive-matching、max-attentive-matching这4种不同的匹配方式,体现了Multi-Perspective的思想。

d) MwAN模型:对于两个word的embedding计算方式,按照concat、minus、dot product以及cosine进行划分计算,然后concat组合,从而体现了Multiway-Attention的思想

e) MIX模型:对于两个句子之间的匹配,提出了3种不同的channel匹配:term weight attention、POS attention以及词位置的attention,体现了多通道信息交叉的思想,即Multichannel Information Crossing

(3) 多层次维度:如4.2.9的HAR模型、4.2.10的HiNT模型。多层次大致可以理解成query内部的word之间、doc内部的句子之间,doc内部句子的word之间,这里就有不同层级的交互了,因此归类为多层次。

a) HAR模型:query看成一个句子,内部使用word级别的self-attention;把doc看成多个句子,句子之间色self-attention,doc内部每个句子内部word之间的self-attention。从而体现了多层次注意力Hierarchical Attention的思想

b) HiNT模型:和HAR模型不同,将doc看成是多个passage;对于query和doc中的每个passage分别计算attention,体现层次神经匹配Hierarchical Neural maTching的关系


5. 搜索中query和doc的相关性匹配模型

第三章和第四章讲的是语义匹配(semantic matching)里的深度模型,本章要讲的是相关性匹配(relevance matching)里的深度模型。语义匹配可以说是相关性匹配的基础。

语义匹配通常更关注的是相似性,一般来说两段文本通常结构相似,主要有以下特点:

(1) 代表性任务:自动问答QA任务、同义句子识别Paraphrase identification

(2) 语义匹配判断的是同质的两段文本:比如自动问答的QA问题,问题和答案一般来说讲的都是一个意思,长度和属性都相近;同义句子识别Paraphrase identification讲的是两段文本string1和string2是否是一个意思,这两段文本也都是同质的

(3) 全局匹配:语义匹配通常将两段文本的片段作为一个整体,来推理他们之间的语义关系

(4) 匹配是对称的:因为是两段同质的文本进行匹配

相关性匹配更关注document文档和搜索query是否相关,特点如下:

(1) 代表任务:信息检索中的query-doc匹配

(2) 两段文本一般不同质: query长度一般较短,doc的长度较长

(3) 多样化匹配:相关性匹配可能发生在对应文档的任何部分,不需要把doc看作整体去和query进行匹配

(4) 匹配不对称:因为是两段不同质的文本进行匹配

对于相关性匹配,可以分成两个方向,第一种是基于global distribution的模型,第二种是基于local context的模型。


5.1 基于global distribution的模型

对于global distribution的模型来说,计算步骤分为两步:

(1) 对于query中的每个term:

a) 计算该term在doc中的匹配信号

b) 计算整体匹配强度的分布

(2) 对上述得到的匹配强度进行累积融合

注意到对于这种global distribution的模型,会丢失掉词序信息

5.1.1 DRMM模型

DRMM模型是中科院在2016提出的的相关性匹配模型,文中把query和doc分别表示为由M和N个term组成的term vector

可以将query和document的term两两比对,计算相似性,再将相似性进行以直方图的形式进行分桶计算。例如:query: car ; document: (car, rent, truck, bump, injunction, runway)。query和doc两两计算相似度为(1,0.2,0.7,0.3,-0.1,0.1)

将[-1,1]的区间分为{[−1,−0.5], [−0.5,−0], [0, 0.5], [0.5, 1], [1, 1]} 5个区间。落在0-0.5区间(第三个区间)的个数有0.2,0.3,0.1共3个,所以最终表示为:[0,1,3,1,1]

图 5.1 DRMM模型框架

其中,⨂ 代表interaction,也就是query和doc的匹配函数;l=1,…,L表示的是L层隐层函数。值得注意的是最后一个公式,zi表示的是MLP网络最后一层第i个query的输出,gi表示的是第i个query和document的参数权重,通过term gating的网络来学习,其实就是query的softmax归一化表达

这里xi(q)表示的是query中第i个term vector, wg为待学习的参数。对于该文章中提到的query和doc的相似度匹配计算,论文中提出了3种方法

a) Count-based histogram(CH)

这种方法使用直接计数的方法进行分桶计算。也就是说先计算原始的相似度(通过cosine等),然后进行等距分桶(bin)后,统计每个桶(bin)的数量,得到的就是个基于计数的直方图

b) Normalized Histogram (NH)

在CH的计数基础上做了归一化,确保所有直方图的分桶都在一个区间范围

c) LogCount-based Histogram (LCH)

对CH的计数直方图取log对数,这个在搜索引擎里主要也是为了迎合大多数query和doc的分布都是pow-law的,取对数后pow-law分布的数据会更加服从线性分布。

总结下DRMM的模型流程,基本思想就是每个query在检索doc的过程中,对结果的贡献程度是不同的:

(1) 把query和doc分别表示成M和N个term的向量表达

(2) 忽略query中每个term的位置关系和上下文,并且认为每个term对doc的共享程度不同

(3) 匹配强度计算:query中每个term和doc通过直方图匹配的方法计算其匹配强度,可以分为基于计数、归一化计数、log计数等不同直方图匹配,得到匹配强度zi

(4) 权重计算:query中每个term在整个query的权重,通过所有term的softmax权重表达计算,得到权重gi

(5) 前两步得到的zi和gi的加权表达就是最终整个query对doc的表达

DRMM作为相关性模型的baseline,忽略了每个词的位置信息和上下文信息。后续一些加入position和attention的方法都是为了改进该模型无位置信息的缺点。但个人觉得,读DRMM更大的收获,其实是更加清晰的了解了语义匹配和相关性匹配两者的异同点。


5.1.2 K-NRM模型

针对DRMM提到的无位置信息的相关性模型,卡梅隆大学在SIGIR2017提出了K-NRM模型,全称为Kernel-based Neural Rank Model,一种基于kernel-pooling的相关性模型。整个框架如图5.2所示

图5.2 K-NRM模型框架

整个模型可以分为以下3层:(1)translation layer; (2) kernel pooling layer; (3) rank layer

(1) translation layer

query和doc分别由n个term和m个term的词向量组成的vector。通过query和doc之间每个term两两求cosine相似度,得到一个n*m的矩阵M

(2) kernel pooling layer

Kernel pooling层引入了K个kernel。对于第k个kernel,query中第i个term(M矩阵中的第i行)如果采用RBF kernel进行计算,表达如下:

其中,uk和sigmak为第k个kernel的超参数均值和标准差,是超参数,需要在训练前事先设定。这里使用RBF核函数也是有原因的。当Mij越趋近于u, 方差sigmak越趋近于无穷大,kernel pooling的输出越大。我们来看下2种不同的特殊情况:

a) 当方差sigma接近无穷大,上述公式趋近于1,相当于是average pooling

b) 当方差sigma趋近于0,均值u等于1,相当于是TF词频统计模式

可以发现,如果Mij等于1,此时该term的输出才为1,而Mij=1意味着query的第i个term和doc的第j个term是完全精准匹配的(exact match),只有这样才能使得cosine距离为1。所以在这种情况下,kernel pooling相当于是一个完全精准匹配。也完全等价于TF词频统计模式,也就是只统计query和doc有多少个term是完全匹配的。

对M矩阵每一行,也就是每个query使用一个核函数可以得到一个匹配分数,K个kernel则能得到一个维度为K的向量。如下面的公式所示,第二个公式表示,M矩阵的每一行通过K个核函数,可以得到长度为K的向量,第一个公式对所有行(n)进行对数log加和,得到一个维度为K的向量进入下一层网络。

(3) rank layer

上一层kernel pooling layer得到的K维向量通过一个线性映射后,再经过tanh得到最终的分数。使用tanh是为了让最终的match score映射到-1到1之间,也符合相关性从-1到1的定义。这里的w和b都是一个可训练的维度为K的参数向量

总结下K-NRM的核心公式,可以用如图5.3的6个公式表示,值得注意的是从1-6的公式网络结构是从输出到输入自顶向下的关系

图5.3 K-NRM公式

训练过程使用的是pairwise loss

整个模型可以用如图5.4所示框架表示

图5.4 K-NRM模型框架

总结下K-NRM的特点

(1) 对比DRMM最大的不同,就是引入了K个kernel function,通过kernel pooling的方式,对query中每个term求和对应的doc的匹配分数。

(2) 这里的K个kernel可以类比CNN中的filter,卷积过程是从上到下卷积列数保持固定;这里的kernel pooling 计算也是按列计算。

(3) Kernel pooling的每个kernel的均值和方差都是超参数,需要事先设定


5.1.3 Conv-KRNM模型

2018年的WSDM上,卡梅隆大学&清华又在原来的K-NRM上提出了加入卷积元素的Conv-KRNM模型,对比原来的kernel pooling,显式的引入了CNN模块,框架如图5.5所示

图5.5 Conv-KRNM模型框架

整个模型可以分为4层:(1)embedding 层; (2)convolutional 层; (3) cross-match 层; (4) kernel pooling 层;(5)rank层

(1) embedding 层

首先,把query和document投射到隐层维度为L的embedding去,维度均为m*L

(2) Convolution层

卷积层通过大小为h*L的filter(一共有F个),来从上到下对query和doc分别进行卷积。对于第i个term,通过和filter 进行卷积,得到一个实数v如下

因为有F个filer( w1,w2,w3,…,wF),每个term可以得到一个F维度的向量,然后再通过一个RELU层进行映射得到第i个term经过卷积后的F维输出

这里W大小为h*L*F,b大小为F,均为待学习的模型参数。因此,对于不同的滑动窗口h1,h2,…,hmax,每个窗口我们都可以得到原始m个term的卷积输出。维度从原始embedding的m*L变成了m*F,L为embedding size, F为filter个数

(3) Cross match layer

从(2)中经过CNN提取的query和document分别的矩阵m*F和m*F后,对于query中第i个元素、hq的n-gram的值,以及doc中第j个元素、hd的n-gram的值的匹配分数为

最终可以得到hmax * hmax个元素的匹配矩阵M,每个元素都是一个m*m的矩阵模块Mhq, hd

(4) Kernel pooling layer

上一步得到匹配矩阵M后,在kernel pooling layer这里的做法是K-NRM是一样的。M元素里一共有hmax*hmax个元素,每个元素都是一个矩阵模块,一共有K个kernel

每个元素产出的是一个K维的向量,因此最终得到的向量为K*hmax*hmax

(5) Ranking layer

上一层kernel pooling layer得到的K*hmax*hmax维向量通过一个线性映射后,在经过tanh得到最终的分数。

损失函数loss用pairwise loss表示如下

图5.6 Conv-NRM模型

总结来说,Conv-NRM模型对比K-NRM模型,在kernel pooling之前对于query和doc各自引入了高度为hmax的滑动窗口。对图5.6来说,hmax=2,分别代表unigram和bigrams。整体过程如下:

(1) query和doc各自映射为embedding特征向量m*L

(2) query和doc各自通过hmax=2的滑动窗口(unigram和bigram),F个filter进行卷积得到卷积后的新特征向量,各有2*m*F个

(3) 通过cross match的匹配,对(2)得到的query和doc的新特征向量,两两进行cosine匹配,得到2*2个匹配矩阵,每个匹配矩阵是个m*m的矩阵

(4) 通过kernel pooling,对于(3)中4个匹配矩阵中的每一个,应用K个kernel提取得到k维度的特征向量,一共得到4*K的特征向量,然后concat起来作为下一层的输入

(5) 对kernel pooling得到的4*K个向量,应用tanh函数得到match score, 损失函数使用pairwise loss


5.2 基于local context的模型

对于local context的模型来说,计算步骤分为两步:

(1) 对于query中的每个term:

a) 找到该term在doc中对应部分的上下文

b) 计算该term,以及在doc中对应的上下文两者的匹配信号

(2) 对上述得到的匹配强度进行累积融合

注意到对于这种global distribution的模型相比于5.1讲到的global distribution,捕获了词序信息,同时它关注的是doc中与term相关部分的上下文,丢弃了无关部分(非上下文),因此匹配会更加的鲁棒。


5.2.1 PACRR模型

EMNLP2017年提出的PACRR,全称是Position-Aware Convolutional- Recurrent Relevance Matching,在原来的相关性模型DRMM基础上引入了位置信息。PACRR模型基于一种假设,就是query和doc的相关性匹配是由doc中的特定位置决定的,论文通过CNN的卷积操作来捕捉局部词序的关系,在doc上利用不同大小的卷积核进行卷积,然后在整个doc上进行池化。主要整体框架如图5.7所示

图5.7 PACRR模型结构

(1) 输入层

给定query和doc,term的长度大小为别为q和d,通过word embedding映射得到query embedding和doc embedding矩阵。这里word embedding 采用预训练得到并且训练中保持不更新。

(2) 匹配层

query和doc的匹配矩阵采用cosine相似度,从q个query embedding和d个doc embedding两两计算cosine相似度,得到一个维度为q*d的相似度矩阵。为了保证长度一致,假设query最大长度为lq,对于query来说统一补齐到长度lq,如果q<lq的则直接用0补齐。对于doc文中提出了两种方法:first-k和k-window,如图5.8所示

图5.8 query-doc的两种方法:firstK和KWindow

a) PACRR-firsrK

对于匹配矩阵,取前k行。如果当前doc长度d<k,则不足部分用0补齐

b) PACRR-KWindow

k-window方法的基本假设是doc中相关性比较低的term对结果的共享应该比较小。因此引入了一个超参数n,表示的是每个doc的片段最大长度,相当于是个n-gram的卷积,过程如下:

1) 对于doc中的每个n-gram,相当于有n个term,每个term和query中的lq个term计算相似度,取这lq个相似度中最高的值作为该term的匹配分数,

2) 对当前这n个term的匹配分数求均值作为该n-gram和query的匹配分数

3) 对于doc的所有term都按照第一步从头到尾滑动,按照n-gram求每个n-gram的匹配矩阵,表示如下

对所有的n-gram匹配分数,求top k的片段,k的取值如下,不足补0

(3) 深度触发模型

a) 卷积层convolution layer

通过上述得到一个lq*ld的相似度矩阵后,在该层则通过不同的卷积核,2*2,3*3,4*4,…,lg*lg来进行卷积得到lg-1个卷积层(原始的相似度矩阵相当于是1*1的卷积核),相当于是提取了bigram, trigram,…,lg-gram信息。每个卷积核又有nf个filter, 可以得到lg个lq*ld*nf的三维矩阵

b) 池化层pooling layer

在池化层通过两层的pooling提取信息。首先是max pooling,对于lg个三维矩阵,每个矩阵有nf个filter,通过max pooling在nf个filter中提取得到最大值,因此可以得到lg个矩阵c1,c2,c3,…,clg,每个矩阵维度lq*ld和原始匹配度矩阵维度一致。

为了保留ns个最强信号,在max-pooling之后论文由使用了k-max-pooling,在lq维度上(也就是对于lq*ld矩阵的每一行)进行提取最大的ns个信号,直观解释就是doc中的ld个term,只提取其中和当前query匹配度最高的ns个,可以得到lg个二维矩阵lq*ns。因此,最终得到一个lq*lg*ns维度的三维向量作为下一层的输入

c) 递归神经层recurrent layer

该层的目的是为了提取得到全局的匹配信号。前面得到的向量维度lq*lg*ns中,其中lq为query经过pad的长度,这里作者使用的query的IDF信息,将其进行归一化,目的是消除query在全局频次的影响。

因此,通过IDF的归一化,可以得到一个lg*ns的矩阵P,通过展开得到一个向量,并且将当前query的IDF信息concat后,接入LSTM网络,最终的输出为匹配分数。

总结来说,PACRR模型特点如下:

(1) 提到的位置相关(position aware)原意指的是query和doc的相关性由doc中特定位置决定。

(2) 通过不同大小的卷积核进行卷积提取匹配信息、max-pooling以及k-max pooling两层池化层的信息提取

(3) 引入query 的IDF信息等各种细节对位置信息进行强化。

5.2.2 Co-PACRR模型

2018年的WSDM上作者等人在2017年的PACRR模型上由加入了上文context信息,context-aware,因此该模型称为CO-PACRR,整体框架如图5.9所示

图5.9 Co-PACRR模型

模型的核心创新点有3部分:(1)上下文信息;(2)级联的k-max pooling;(3)query位置随机打乱

(1) 引入上下文信息

和PACRR模型相比,在输入层除了query和doc的原始相似度矩阵(维度大小为lq*ld),最大的不同在于引入了局部上下文信息作为输入。对于doc中的每个term,除了当前term和query的相似度,还考虑当前term上下文和query的相似度。

对于query来说,由于一般都比较短,因此query的上下文向量表示queryvec用整个query的所有term求平均作为其上下文表示;对于doc来说,类似于word2vec的思想,取上下文滑动窗口大小为wc,doc在该窗口内上下文的向量的平均值作为其上下文表示

因此,对于doc中第i个term的上下文和query上下文向量的相似度表示如下

由于doc的term个数为d,query都是固定的q个term求平均,对doc的term挨个计算和query上下文的相似度,可以得到一个d维的向量作为输入。

(2) 级联的k-max pooling

在PACRR模型中用到的k-max pooling是在整个doc中选择最大的ns个值,例如doc的长度为100,ns=2,相当于是在每个doc的100个词中选择最大的2个值。

而CO-PACRR模型引入了新的超参数nc,表示文档划分的个数,比如nc=4,则分别在文档的25%、50%、75%、100%把doc划分成了4部分,对于每一部分进行k-max pooling,以ns=2为例,在doc的第1-25、26-50、51-75、76-100这4部分,分别取2个作为最大值,最终得到8个值。

前面我们知道PACRR模型在整个doc上使用k-max pooling后得到的向量为lq*lg*ns,通过这种层次k-max pooling得到的矩阵维度为lq*nc*lg*ns。

(3) query位置的随机shuffle

在PACRR模型中,query都是统一pad到固定长度lq的,对于较短的query,尾部需要用0补齐到lq。这种做法缺点是对于query尾部特征的向量,将得不到足够的信息进行权重更新,这样模型在训练学习过程会认为query尾部的term对结果的共享较小,权重也接近0,从而导致真正在query尾部的term对结果贡献较小,模型缺乏泛化能力。

为了了避免这种情况,CO-PACRR模型对query的顺序,也就是矩阵的行进行shuffle随机打乱,从而让用0填充的向量均匀的分散在query的特征各处,从而解决了用0填充带来的问题。

总结Co-PACRR模型特点:

(1) 引入了上下文信息(context-aware):doc中每个word的表示出了自身的embedding,还将其窗口为wc的上下文平均向量作为其表示,与query计算相似度

(2) 级联的k-max-pooling:将doc平均分成nc个部分,每个部分进行k-max-pooling提取最大的ns个值,总共可以得到nc*ns的最大值

(3) 对query的位置进行shuffle,消除pad带来的尾部特征训练不充分影响


5.2.3 DeepRank模型

CIKM2017提出的DeepRank模型,基于一个有趣的假设,用户搜索query后,在展现的doc里面(title),往往更关注的在doc中和query匹配的词的上下文。有个关于眼球实验的paper也做了类似的验证。比如,你搜索了“佳能相机价格”后,在展现结果里,往往会快速的扫描“佳能相机“前后相关的词,例如相关型号之类的,以及“价格”前后的信息,例如具体多少钱的信息,这种假设在信息检索是比较make sense的。

DeepRank模型主要是基于该假设,集中在doc中与query相关的term上下文,称为query-centric contexts。整体框架如下图5.10所示

图5.10 DeepRank模型框架

整个过程分为3步:(1)detection策略,也就是找到doc中与query中的term匹配的位置;(2)measurement策略:;(3)aggregation策略

(1) detection策略

首先,对于给定的query,第一步的detection,需要检测找到query中的term在doc中的位置。给定query和doc,分别由M和N个term组成,每个term隐层维度d

如果query中的term wu在doc中第p个位置出现,就把该位置前后位置窗口大小为k的term都找出来,总共2k+1个的词向量,称为query-centric contexts

(2) measure网络

前一步得到query中的term,以及在doc中对应的query-centric contexts后,需要进行匹配得到交互矩阵。对每个query中的第i个term,以及query-centric contexts中的第j个term,用sij来表示,和MatchPyramid模型一样,文中使用了indicator和cosine两种方法,indicator相当于是精确匹配,只有query的第i个term和doc的第j个term完全一致才sij为1,否则为0;cosine则直接计算query 第i个term和doc第j个term的向量cosine距离。

为了充分表达上下文信息,最终的input tensor是个三维的向量表达,sij分别由query第i个term,doc的第j个term,以及两者的交互(indicator或者cosine)表示

对于输入向量S,引入K个kernel进行卷积表达,每个kernel卷积核大小为gamma*gamma。对于卷积输出第i,j个元素,其表达为Si,j到Si+gamma-1, j+gamma-1之间的元素和卷积核( gamma*gamma)的卷积输出。

由于S中每个元素都是个三维向量,因此l=3。第二个公式采用max pooling,对K个kernel分别求max,得到K维的向量

这里论文使用了Match-SRNN中的递归RNN,由4个更新gate和3个reset gate来拟合。

图5.11 DeepRank模型框架

总结DeepRank模型的特点和人类的直觉判断相关性很类似

(1) 首先对于query中的每个term,找出每个term在doc中出现的位置

(2) 对于第一步每个term在doc出现的位置,将该位置前后各k个词(总共2k+1)找出来,作为query在doc中该位置匹配的上下文表示query-centric contexts

(3) 对第二步得到的每一个query-centric contexts以及query对,使用CNN或者2D-GRU的网络及结构提取信息得到匹配分数

(4) 通过term gating network对前一步得到的每个query和query-centric contexts局部相关性分数进行加权融合。


6. 总结

推荐和搜索的本质其实都是匹配,前者匹配用户和物品;后者匹配query和doc。具体到匹配方法,分为传统模型和深度模型两大类,第二章讲的是传统模型,第三章、第四和第五章都是讲讲的是深度模型。其中第三和第四章都是讲语义匹配,第五章讲的是相关性匹配。

对于第二章讲到的传统模型,有两种主要的方法,第一种是把query和doc都同时映射到latent space的方法,比如基于统计的BM25方法,以及PLSRMLS方法。另一种方法,是通过将doc映射到query的空间的,然后在query的空间进行匹配。这种方法和机器翻译中,将源语言映射到目标语言的做法是一致的,因此又称为基于translation的方法。

第三章开始讲深度匹配模型。对于query和doc的匹配分数,有两种思路,一种是query和doc都各自学习自己的表示,不到最后一刻不交互,在得到query和doc各自充分的representation后,再进行融合匹配。因此第三章讲的就是这种基于representation的深度匹配模型。为了得到query和doc的表示,当然是各种网络结构都可以尝试使用,比如基于DNN的DSSM模型、基于CNN的CNN-DSSM模型、基于RNN的LSTM-RNN模型。

第四章讲深度匹配模型里的第二种思路,也就是让query和doc在一开始就通过match function进行交互,因此称为基于match function 的深度匹配模型,也称为interaction-based的模型。既然要交互,当然需要想办法得到query和doc尽可能丰富的匹配信号。比如4.1提到的在word level层级的匹配度矩阵。有了匹配度矩阵,4.2讲述了众多在匹配度矩阵上进行各种attention的模型。

第五章一开始介绍了相关性匹配以及语义匹配的不同,并基于global distribution以及local context分别介绍了不同的相关性匹配模型。


7. 参考文献

(1) https://www.comp.nus.edu.sg/~xiangnan/sigir18-deep.pdf

(2) https://github.com/NTMC-Community/awesome-neural-models-for-semantic-match

(3) 【SMT】Stefan Riezler and Yi Liu. Query Rewritting Using Monolingual Statistical Machine Translation. In ACL 2010.

(4) 【WTM】Jianfeng Gao, Xiaodong He, and JianYun Nie. Click-through-based Translation Models for Web Search: from Word Models to Phrase Models. In CIKM 2010.

(5) 【DSSM】Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]//Proceedings of the 22nd ACM international conference on Conference on information & knowledge management. ACM, 2013: 2333-2338.

(6) 【ARC-I,ARC-II】Z, Li H, et al. Convolutional neural network architectures for matching natural language sentences[C]//Advances in neural information processing systems. 2014: 2042-2050.

(7) 【CNN-DSSM】Hu B, LuShen Y, He X, Gao J, et al. A latent semantic model with convolutional-pooling structure for information retrieval[C]//Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management. ACM, 2014: 101-110.

(8) 【CNTN】Qiu X, Huang X. Convolutional Neural Tensor Network Architecture for Community-Based Question Answering[C]//IJCAI. 2015: 1305-1311.

(9) 【LSTM-RNN】Palangi H, Deng L, Shen Y, et al. Deep sentence embedding using long short-term memory networks: Analysis and application to information retrieval[J]. IEEE/ACM Transactions on Audio, Speech and Language Processing (TASLP), 2016, 24(4): 694-707.

(10) 【MatchPyramid】Pang L, Lan Y, Guo J, et al. Text Matching as Image Recognition[C]//AAAI. 2016: 2793-2799.

(11) 【MatchPyramid-cont】Liang Pang, Yanyan Lan, Jiafeng Guo, Jun Xu, Xueqi Cheng. A Study of MatchPyramid Models on Ad-hoc Retrieval. In Proceedings of SIGIR 2016 Neu-IR Workshop.

(12) 【Martch-SRNN】Shengxian Wan, Yanyan Lan, Jun Xu, Jiafeng Guo, Liang Pang, and Xueqi Cheng. 2016. Match- SRNN: modeling the recursive matching structure with spatial RNN. In Proceedings of the Twenty- Fifth International Joint Conference on Artificial Intelligence (IJCAI'16), 2922-2928.

(13) 【MV-LSTM】Wan S, Lan Y, Guo J, et al. A Deep Architecture for Semantic Matching with Multiple Positional Sentence Representations[C]//AAAI. 2016, 16: 2835-2841.

(14) 【aNMM】aNMM: Ranking Short Answer Texts with Attention-Based Neural Matching Model. CIKM 2016.

(15) 【ABCNN】Wen Y, Hin S, Bing X, Bowen Z. ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs. ACL 2016.

(16) 【DecAtt】Ankur P. Parikh, Oscar Tackstrom, Dipanjan Das, and Jakob Uszkoreit. A Decomposable Attention Model for Natural Language Inference. In Proceedings of EMNLP, 2016.

(17) 【MCAN】Yi T, Luu T, Siu H. Multi-Cast Attention Networks for Retrieval-based Question Answering and Response Prediction. KDD 2018.

(18) 【HCRN】Yi T, Luu T, Siu H. Hermitian Co-Attention Networks for Text Matching in Asymmetrical Domains. IJCAI 2018.

(19) 【BiMPM】Zhi W, Wael H, Radu H. Bilateral Multi-Perspective Matching for Natural Language Sentences. IJCAI 2017.

(20) 【ESIM】Qian C, Xiao Z, Zhen L, et al. Enhanced LSTM for Natural Language Inference. ACL 2017.

(21) 【DIIN】Yi G, Heng L, Jian Z. Natural Lanuguage Inference Over Interaction Space. ICLR 2018.

(22) 【MwAN】Chuan T, Fu W, Wen W, et al. Multiway Attention Networks for Modeling Sentences Pairs. IJCAI 2018.

(23) 【HAR】Ming Z, Aman A, Wei W, Chandan R. HAR: A Hierarchical Attention Retrieval Model for Healthcare Question Answering. WWW 2019.

(24) 【HiNT】Yi F, Jia G, Yan L, et al. Modeling Diverse Relevance Patterns in Ad-hoc Retrieval. SIGIR 2018.

(25) 【MIX】Hao C, Fred H, Di N, et al. MIX: Multi-Channel Information Crossing for Text Matching. KDD 2018.

(26) 【Duet】Bhaskar Mitra, Fernando Diaz, and Nick Craswell. Learning to match using local and distributed representations of text for web search. In Proceedings of WWW 2017.

(27) 【DRMM】Jiafeng Guo, Yixing Fan, Qiqing Yao, W. Bruce Croft, A Deep Relevance Matching Model for Ad-hoc Retrieval. In Proceedings of CIKM 2016.

(28) 【K-NRM】Chenyan Xiong, Zhuyun Dai, Jamie Callan, Zhiyuan Liu, Russell Power. End-to-End Neural Ad-hoc Ranking with Kernel Pooling. In Proceedings of SIGIR 2017.

(29) 【Conv-KRNM】Zhuyun Dai, Chenyan Xiong, Jamie Callan, and Zhiyuan Liu. Convolutional Neural Networks for Soft-Matching N-Grams in Ad-hoc Search. In Proceedings of WSDM 2018.

(30) 【Co-PACRR】Kai Hui, Andrew Yates, Klaus Berberich, and Gerard de Melo. Co-PACRR: A Context-Aware Neural IR Model for Ad-hoc Retrieval. WSDM '18, 279-287.

(31) 【DeepRank】Liang Pang, Yanyan Lan, Jiafeng Guo, Jun Xu and Xueqi Cheng. DeepRank: a New Deep Architecture for Relevance Ranking in Information Retrieval. In Proceedings of CIKM 2017.

不等距双杆模型_搜索中的深度匹配模型(下)相关推荐

  1. 搜索和推荐系统中的深度匹配模型

    文章作者:辛俊波 腾讯 高级研究员 编辑整理:DataFunTalk 导读:推荐系统和搜索应该是机器学习乃至深度学习在工业界落地应用最多也最容易变现的场景.而无论是搜索还是推荐,本质其实都是匹配,搜索 ...

  2. 【推荐实践】腾讯推荐系统中的深度匹配模型

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年6月热门报告合集从零开始了解推荐系统全貌机器学习在B站推荐系统中的应用实践微信视频号实时推 ...

  3. 【推荐实践】腾讯-推荐系统中的深度匹配模型

    导读:推荐系统和搜索应该是机器学习乃至深度学习在工业界落地应用最多也最容易变现的场景.而无论是搜索还是推荐,本质其实都是匹配,搜索的本质是给定 query,匹配 doc:推荐的本质是给定 user,推 ...

  4. 不等距双杆模型_气体中的变质量模型

    点击蓝字 关注我们 气体中的变质量模型 物理专辑 力学专辑 电学专辑 十年高考真题专辑 物理模型 人船模型 等时圆模型 物理动态图 电表的改装 替代法测电阻 2020物理备考 人拉船模型 物理计算题的 ...

  5. 搜索推荐中的召回匹配模型综述(二):基于表示学习的深度学习方法

    " 本文是搜索推荐中的召回匹配模型综述系列的第二篇,上一篇为搜索推荐中的召回匹配模型综述(一)--传统方法. 本文主要介绍了搜索推荐中基于representation learning的深度 ...

  6. 搜索推荐中的召回匹配模型综述(一):传统方法

    Part0 搜索推荐中的匹配模型综述 本文主要启发来源SIGIR2018的这篇综述性slides<Deep Learning for Matching in Search and Recomme ...

  7. c++两个文档匹配数据_《搜索和推荐中的深度匹配》——1.2 搜索和推荐中匹配统一性...

    Garcia-Molina等[1]指出,搜索和推荐中的根本问题是识别满足用户信息需求的信息对象.还表明搜索(信息检索)和推荐(信息过滤)是同一枚硬币的两个方面,具有很强的联系和相似性[2].图1.1 ...

  8. 搜索推荐中的召回匹配模型综述(三):基于匹配函数学习的深度学习方法

    Part0 基于match function learning的深度学习方法 对比representation learning的方法,基于match function learning最大的特点是, ...

  9. 《搜索和推荐中的深度匹配》——1.4 推荐匹配的挑战

    重磅推荐专栏: <Transformers自然语言处理系列教程> 手把手带你深入实践Transformers,轻松构建属于自己的NLP智能应用! 不匹配的问题在推荐中更加严重.在搜索中,查 ...

最新文章

  1. [转帖]Docker里运行Docker docker in docker(dind)
  2. Starry Night [USACO]
  3. 【Linux】2.Linux source命令
  4. [原]Android打包之Gradle打包
  5. 手机python利器能做什么_推荐一款开发利器!既能写Python,又能写Java
  6. Java的坏功能是什么
  7. 单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警
  8. 【转】Dicom 学习笔记-Dicom 消息服务(DIMSE-C/DIMSE-N)
  9. 创立微积分的两场风波
  10. vue族谱架构_【Vue】谈Vue的依赖追踪系统 ——搞懂methods watch和compute的区别和联系...
  11. 毕业论文的6中降重方法
  12. 将 libVLC 视频渲染到 QWidget 中
  13. 通过身份证号码得出性别和年龄
  14. 同步时序逻辑电路功能分析之同步六进制减法计数器
  15. 笔记(四)Home Assistant添加小米设备
  16. 微型SR602人体感应模块原理图
  17. windows7蓝牙怎么打开_【windows7】IP地址查询方法
  18. 柠萌影业三次冲刺IPO,爆款制造机的压力大爆了
  19. 数睿数据受邀参与中俄数字经济高峰论坛,并发布企业级无代码新场景
  20. 邮箱伪造之搭建匿名SMTP服务器

热门文章

  1. mysql查看innodb版本_mysql中查看innodb版本的方法
  2. 3d游戏编程大师技巧 源代码_C/C++编程入门基础系列:俄罗斯方块小游戏制作,直接源代码分享...
  3. 小米台灯底座接口很松_小米黑科技,AirPods和小米10 Pro伴侣,ZMI无线充蓝牙音箱体验...
  4. html中js定义的方法无效,javascript中定义函数有几种常用方法?
  5. golang 关闭gc 并手动gc_Golang 防内存泄漏编码原则
  6. python爬取天天基金网_天天基金网精选基金组合年度报告20201231
  7. Dubbo 集成 ZooKeeper 注册中心实现服务调用
  8. Java 设计模式之原型模式
  9. dxf转nc代码软件_Window绝赞的6款软件,效率加班党必备,快到惊人!
  10. python 自动收集经济数据_完结】数据分析思维案例实战92 用Python自动办公,做职场高手【更新中】91.一课经济...