LTR方法总结

PointWise

这种方法没有考虑到排序的一些特征,比如文档之间的排序结果针对的是给定查询下的文档集合,而Pointwise方法仅仅考虑单个文档的绝对相关度;另外,在排序中,排在最前的几个文档对排序效果的影响非常重要,Pointwise没有考虑这方面的影响。

PairWise

Ranking SVM

    Ranking SVM将排序问题转化为分类问题,对于一个有序特征序列x1>x2>x3,任意样本可以构造六个序对,其中(x1,x2)、(x2,x3)、(x1,x3) 是正样本,(x2,x1)、(x3,x1)、(x3,x2)是负样本,然后用

SVM训练一个二分类器对这些新样本进行分类。原理非常简单,不再赘述。

RankBoost

点对间正负样本的构造方法和RankingSVM相同,只不过分类方法用了Boost框架


RankBoost框架


RankNet

http://www.cnblogs.com/genyuan/p/9788294.html     https://blog.csdn.net/u014374284/article/details/49385065

主要参考这两篇文章整理

对于一个Query的两个相关文档Ui和Uj假设Ui>Uj,通过RankNet网络前向计算分别得到分数Si和Sj,那么RankNet认为Ui>Uj的概率为:P_{ij} \equiv P(U_i \rhd U_j) \equiv \frac{1}{1+e^{-\sigma(s_i-s_j)}}① 

进一步得到文档对(Ui,Uj)的交叉熵损失函数:C_{ij} = -\overline P_{ij}logP_{ij}-(1-\overline P_{ij})log(1-P_{ij})

定义Ui比Uj更靠前的概率为:\overline{P}_{ij}=\frac{1}{2}(1+S_{ij}),将这个概率带入到②中,得到C=\frac{1}{2}(1-S_{ij})\sigma(s_i-s_j)+log(1+e^{-\sigma(s_i-s_j)})

该损失函数是具有对称性的,即交换i和j的的位置损失函数不变。

当Sij=1时,如果Si>Sj,有:\lim \limits_{s_i-s_j\rightarrow\infty}C=\lim \limits_{s_i-s_j\rightarrow\infty}log\left(1+e^{-\sigma(s_i-s_j)}\right)=log1=0

反之则有:\lim \limits_{s_i-s_j\rightarrow\infty}C=\lim \limits_{s_i-s_j\rightarrow\infty}log\left(1+e^{-\sigma(s_i-s_j)}\right)=log\left(e^{-\sigma(s_i-s_j)}\right)=-\sigma(s_i-s_j),也就是说当前结果和实际结果相反时,Si和Sj差值越小,损失函数就越小

梯度下降的迭代公式为:w_k\rightarrow{w_k}-\eta\frac{\partial{C}}{\partial{w_k}}={w_k}-\eta\left(\frac{\partial{C}}{\partial{s_i}}\frac{\partial{s_i}}{\partial{w_k}}+\frac{\partial{C}}{\partial{s_j}}\frac{\partial{s_j}}{\partial{w_k}}\right)

求导:{\partial C_{ij} \over \partial s_i} = \sigma ({1 \over 2}(1-S_{ij})-{1\over 1+e^{\sigma(s_i-s_j)}}) = -{\partial C_{ij} \over \partial s_j}④ 可知,C对Si的偏导数和C对sj的偏导之和为0

\lambda_{ij} = {\partial C_{ij} \over \partial s_i} = \sigma ({1 \over 2}(1-S_{ij})-{1\over 1+e^{\sigma(s_i-s_j)}})则有:\begin{align}{\partial C \over \partial w_k} &=\underset{(i,j)\in I}{\sum}\lambda_{ij}({\partial s_i \over \partial w_k}-{\partial s_j \over \partial w_k}) \\ &=\underset{i}{\sum}\lambda_i {\partial s_i \over \partial w_k}\end{align}

\lambda_{ij}可以看做是Ui和Uj之间的作用力,如果Ui相关性大于Uj,那么Uj会给Ui一个大小为|\lambda_{ij}|的向上的推动力,同理Ui会给Uj一个向下的推动力。

假设集合I中只包含label不同的URL的集合,且每个pair仅包含一次,即Uij和Uji等价,假设I中只包含(Ui,Uj)切Ui相关性大于Uj,也就是I中所有序对都满足Sij>1,则有:

\lambda_i = \underset {j:(i,j)\in I}{\sum}\lambda_{ij} -  \underset {j:(j,i)\in I}{\sum}\lambda_{ij} 

因为损失函数Cij是对称函数,根据\lambda_{ij}的公式可以看出它也是对称函数,即\lambda_{ij}=\lambda_{ji},结合④和⑤来看,即可可以理解上式


ListWise

LambdaRank

显然,只关注pair间的正确性是不够的,RankNet无法以NDCG等只关注topk排序结果的指标为优化目标。


对于上图中两种排序结果来讲,Error Pair(错误序对数量)1比2多,所以2比1效果好 

但是从NDCG的角度来衡量,NDCG1>NDCG2,1比2效果好

因此,在RankNet中得到的\lambda_{ij}中增加一个\Delta Z_{ij}\lambda_{ij} = {-\sigma \over 1+e^{\sigma (s_i-s_j)}}|\Delta Z_{ij}|\Delta Z_{ij}表示Ui和Uj交换位置后,评估指标的变化,它可以是\Delta NDCG

NDCG倾向于将排名高并且相关性高的文档更快地向上推动,而排名地而且相关性较低的文档较慢地向上推动。

附:NDCG计算方法

LambdaMART

MART

MART(Multiple Additive Regression Tree)又称为GBDT(Gradient Boosting Decision Tree)。MART第t轮的学习目标是t-1轮的残差,由Additive可知,前t轮所有预测结果相加即是第t轮的预测结果,并用该结果计算残差用来迭代第t+1轮。可以用如下公式表示:

F_n(x)=\sum_{i=1}^{N}\alpha_if_i(x)MART使用加权求和的方式将拟合的树结合起来,作为最后的输出。

为什么拟合残差可以减小误差?

假设拟合误差C是关于Fn的函数,那么根据链式求导法则有:

\delta C \approx \frac{\partial{C(F_n)}}{\partial{F_n}}\delta F_n 

当C的梯度小于0时,误差是减小的,所以令\delta F_n=-\eta \frac{\partial{C}}{\partial{F_n}}可以使\delta C <0,即Fn不断拟合误差C的负梯度方向来减小误差

例如当C是最小二乘(平方和损失)函数时:C=\frac{1}{2}(F_n-y)^2,即有\delta F_n=-\eta \frac{\partial{C}}{\partial{F_n}}=-\eta (F_n-y)

从泰勒展开的角度讲:

第m轮的迭代目标是找到一颗CART树的弱学习器f_m(x,a_m),使得L(y, F_{m}(x)) =L(y, F_{m-1}(x)+ h(x,a_m))最小,换句话说就是让损失函数变得更小

将上面的损失函数进行泰勒展开:L(y, F_{m}(x))=L(y, F_{m-1}(x)+ f_m(x,a_m))=L(y, F_{m-1}(x))+\frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}}f_m(x,a_m)

保证等号左边的取值小于等号的右边,显然有\frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}}f_m(x,a_m)<0

但此时弱学习器是未知的,因此自然的考虑到用已知的负梯度为目标去建立这个CART树,即h(x,a_m)=-\frac{\partial L(y, F_{m-1}(x))}{\partial F_{m-1}}

根据GBDT的损失函数:L(y,F)=log(1+exp(-2yF),y \in \{-1,1\}

它的负梯度方向是\tilde{y_i}=r_{im} = -\bigg[\frac{\partial L(y_i, F(x_i)))}{\partial F(x_i)}\bigg]_{F(x) = F_{m-1}(x)}=\frac{2y_i}{(1+exp(2y_iF_{m-1}(x)))}

第m颗回归树对应的叶子节点区域\gamma_{jm}, j =1,2,..., J,其中J为叶子节点的个数。针对每一个叶子节点里的样本,我们求出使损失函数最小,也就是拟合叶子节点最好的的输出值\gamma_{jm}如下:

\gamma_{jm} = \underbrace{arg\; min}_{c}\sum\limits_{x_i \in R_{jm}} L(y_i,F_{m-1}(x_i) +\gamma)=\underbrace{arg\; min}_{c}\sum\limits_{x_i \in R_{jm}} log(1+exp(-2y_i(F_{m-1}(x_i)+\gamma)))

需要注意的是:正常的CART树叶子节点的权重是落到该节点样本的均值,而GBDT中CART树的输出还有一个学习率\rho,以下的缩写是说CART树的输出和学习率的乘积看成了CART回归树的最终输出,可以避免设置学习率。所以第m轮弱学习器拟合函数如下:

h(x,a_m)= \sum\limits_{j=1}^{J}\gamma_{jm}I(x \in R_{jm})

从而得到强学习器:

F_{m}(x) = F_{m-1}(x) + \sum\limits_{j=1}^{J}c_{jm}I(x \in R_{jm})

LambdaMART(MART+Lambda梯度)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容