LambdaRank
Last updated
Was this helpful?
Last updated
Was this helpful?
LambdaRank就是在RankNet中定义了一个 作为梯度,然后从新反推出新的损失函数。
RankNet的损失函数中设计到两个神经网络的输出 ,所以梯度如下:
一次请求召回的待排序文档集D的损失
对梯度展开
LambdaRank相比RankNet的优势在于分解因式后训练速度变快,同时考虑了评价指标,直接对问题求解,效果更明显。
Ranklib开源工具包定义的数据格式如下:
label qid:$id $feaid:$feavalue $feaid:$feavalue … #description
每行代表一个样本,相同查询请求的样本的qid相同,label表示该样本和该查询请求的相关程度,description描述该样本属于哪个待排序文档,用于区分不同的文档。
因此对每个文档,有,即每一个文档下一次调序的方向和强度取决于所有同一query的其他不同label的文档。
此外,还引入评价指标Z(如NDCG、ERR等),把交换两个文档的位置引起的评价指标的变化作为其中一个因子。
通过梯度反推出LambdaRank的损失函数: 。
达观数据帮你揭开搜索引擎排序的神秘面纱