【阅读笔记】k-nrm和Conv-knrm

【阅读笔记】End-to-End Neural Ad-hoc Ranking with Kernel Pooling

Xiong, Chenyan, et al. “End-to-end neural ad-hoc ranking with kernel pooling.” Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 2017.
https://github.com/AdeDZY/K-NRM

概述:构建文本与文本的相似矩阵,使用 RBF Kernel 进行 Kernel Pooling ,取 log 相加后接一个全链接进行分类二分类(相似与不相似)。模型简称 K-NRM(Kernel-based Neural Ranking Model )。
【阅读笔记】k-nrm和Conv-knrm
过程是比较简明的:
先把 term 映射为 Word Embedding:
tvtt\Rightarrow \vec{v}_t

再计算Translation Matrix:
Mij=cos(vtiq,vtjd)M_{ij}=cos(\vec{v}_{t_i^q},\vec{v}_{t_j^d})

然后通过 RBF Kernel:
Kk(Mi)=jexp((Mijμk)22σk2)K_k(M_i)=\sum_jexp(-\frac{(M_{ij}-\mu_k)^2}{2\sigma_k^2})

得到 Kernel Pooling:
K(Mi)=K1(Mi),K2(Mi),,KK(Mi)\vec{K}(M_i)={K_1(M_i),K_2(M_i),…,K_K(M_i)}

由 Kernel Pooling 得到 Sotf-TF Features:
ϕ(M)=I=1nlog(K(Mi))\phi(M)=\sum_{I=1}^nlog(\vec{K}(M_i))

在用 Sotf-TF Features 做分类:
f(q,d)=tanh(wTϕ(M)+b)f(q,d)=tanh(w^T\phi(M)+b)

采用 pairwise learning to rank loss 进行训练:
l(w,b,V)=qd+,dDq+,max(0,,1f(q,d+)+f(q,d))l(w,b,V)=\sum_q\sum_{d^+,d^-\in D_q^{+,-}}max(0,,1-f(q,d^+)+f(q,d^-))

使得相关的d+d^+排名比不相关的dd^-更靠前,学习的参数为wwbb和词向量VV

读后感:本文和 MatchPyramid 的核心的不同之处在于 RBF Kernel,感觉文章对高斯核函数的均值和方差怎么去取的没有写明白,只能看出来均值和方差是超参数,结合代码可以看出来,均值是从-1到1均匀均匀取值的(因为余弦相似度是在 -1 到 1 之间),方差也是取个定值,RBF Kernel得到的特征的含义是分布在均值周围的个数,可能也是 Sotf-TF 的含义(sotf term frequency)。但有个问题就是模型没有考虑文本的长度,所以我觉得他才选择 pairwise learning to rank loss 进行训练,这样对比的是相同 query 的得分,那么 query 的长度是固定的,document 一般都比较长,做截断后长度也应该相同,就解决了长度不同带来结果的不同了。

【阅读笔记】Convolutional neural networks for soft-matching n-grams in ad-hoc search

Dai, Zhuyun, et al. “Convolutional neural networks for soft-matching n-grams in ad-hoc search.” Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining. ACM, 2018.

Conv-knrm相比k-nrm,最大的改变就是它添加了n-gram的卷积,增加了原先模型的层次,它能够捕捉更加细微的语义实体,交叉的粒度也更加细。
【阅读笔记】k-nrm和Conv-knrm
过程也是比较简明的:
先把 term 映射为 L-dimensional 的 Word Embedding:
tvtt\Rightarrow \vec{v}_t

对于有mm个 term 的文本,可以得到一个m×Lm\times L的矩阵:
T=[v1vm]T=\begin{bmatrix} \vec{v}_1 \\ … \\ \vec{v}_m \end{bmatrix}

再用卷集计算 h-gram 的特征(向后补0):
gih=relu(WhTi:i+h+bh)\vec{g}_i^h=relu(W^h\cdot T_{i:i+h}+b^h)

然后计算 cross-match:
Mijhq,hd=cos(gihq,gihd)M_{ij}^{h_q,h_d}=cos(\vec{g}_i^{h_q},\vec{g}_i^{h_d})

和 k-nrm 一样,对每一个MijM_{ij}计算 Sotf-TF Features,再把所有的 Sotf-TF Features 拼起来得到ϕ(M)\phi(M),然后再做分类:
f(q,d)=tanh(wTϕ(M)+b)f(q,d)=tanh(w^T\phi(M)+b)

读后感:感觉上与 knrm 增加了 n-gram 的特性,但是感觉参数增加了很多,可能会很容易过拟合。