搜索排序-learning to Rank简介
Learning to Rank
- pointwise
只考虑给定查询下单个文档的绝对相关度,不考虑其他文档和给定查询的相关度.
输入空间中样本是单个 doc(和对应 query)构成的特征向量;
输出空间中样本是单个 doc(和对应 query)的相关度;
假设空间中样本是打分函数;
损失函数评估单个 doc 的预测得分和真实得分之间差异。
- PairWise
考虑给定查询下两个文档直接的相对相关度。比如给定查询query的一个真实文档序列,我们只需要考虑任意两个相关度不同的文档直接的相对相关度。
输入应该是两个item的特征,最重的输出应该是两个item的大小关系
输入空间中样本是(同一 query 对应的)两个 doc(和对应 query)构成的两个特征向量;
输出空间中样本是 pairwise preference;
假设空间中样本是二变量函数;
损失函数评估 doc pair 的预测 preference 和真实 preference 之间差异
- ListWise
\(g_i\) 表示对应项的增益(得分)。NDCG(Normalized Discounted Cumulative Gain); IDCG (Ideal DCG)
举个栗子:
搜索结果 3、1、2、3、2 ; DCG = 3+(1+1.26+1.5+0.86 )=7.62
IDCG下的分值排列顺序是3、3、2、2、1 ; IDCG=3 + (3+1.26+1+0.43)=8.69
直接考虑给定查询下的文档集合的整体序列,直接优化模型输出的文档序列
输入空间中样本是(同一 query 对应的)所有 doc(与对应的 query)构成的多个特征向量(列表);
输出空间中样本是这些 doc(和对应 query)的相关度排序列表或者排列;
假设空间中样本是多变量函数,对于 docs 得到其排列,实践中,通常是一个打分函数,根据打分函数对所有docs 的打分进行排序得到 docs 相关度的排列;
reference: