本文主要是介绍Learning a Deep Listwise Context Model for Ranking Refinement,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
总结
不同query对应的doc分布可能不同,不能使用global打分函数(对query, doc建模),而要对(打分,doc)建模。
步骤
- 传统l2r,得到打分
- 对打分rnn编码,query-specific ranking,attention loss
- 根据2的结果re-rank
细节
传统l2r打分
传统排序策略,认为可以找到一个global function f ( x ( q , d ) ) f(x_{(q, d)}) f(x(q,d))满足: y ( q , d ) ← f ( x ( q , d ) ) y_{(q, d)} \leftarrow f(x_{(q, d)}) y(q,d)←f(x(q,d)),loss一般是:
L = ∑ q ∈ Q l ( { y ( q , d ) , f ( x ( q , d ) ) ∣ d ∈ D } ) \mathcal{L} = \sum_{q \in Q} l(\{ y_{(q,d)}, f(x_{(q, d)}) | d \in D \}) L=q∈Q∑l({y(q,d),f(x(q,d))∣d∈D})
传统算法忽略了不同query召回的doc其实分布不太相同,所以考虑更改loss为:
L = ∑ q ∈ Q l ( { y ( q , d ) , ϕ ( x ( q , d ) , I ( R q , X q ) ) ∣ d ∈ D } ) \mathcal{L} = \sum_{q \in Q} l(\{ y_{(q,d)}, \phi(x_{(q, d)}, I(R_q, X_q)) | d \in D \}) L=q∈Q∑l({y(q,d),ϕ(x(q,d),I(Rq,Xq))∣d∈D})
其中:
- R q = { d sorted by f ( x ( q , d ) ) } R_q = \{ \text{d sorted by }f(x_{(q, d)}) \} Rq={d sorted by f(x(q,d))}
- X q = { x ( q , d ) ∣ d ∈ R q } X_q = \{ x_{(q,d)} | d \in R_q \} Xq={x(q,d)∣d∈Rq}
- I ( R q , X q ) I(R_q, X_q) I(Rq,Xq)是传统打分模型打的分
不引入新特征,对原特征做交叉
对打分rnn编码,query-specific ranking,attention loss
对原rank出的top n个item,用rnn(gru,单向)
新结果re-rank
新的rank模型,使用原rank feature+rnn hidden output
loss function
listMLE
SoftRank
attention rank
实验
dataset:Microsoft 30k、Microsoft 10k、Yahoo! Webscope v2.0,自带打分的数据集
baseline:SVMrank、LambdaMART
评估指标
NDCG@10
ERR/Expected Reciprocal Rank:预期的倒数排名,表示用户的需求被满足时停止的位置的倒数的期望
这篇关于Learning a Deep Listwise Context Model for Ranking Refinement的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!