zoukankan      html  css  js  c++  java
  • 机器学习之排序学习

    Learn to Rank

    排序学习主要用于搜索引擎,推荐系统等领域。

    对于传统的排序算法,一般只能根据少量特征,然后通过人为设定的规则,来进行文档的全量排序。

    然而对于排序涉及大量的特征,而且这些特征难以人为的编辑规则来进行文档和文档之间的比较,这就出现了排序学习。

    排序学习通过以特征和文档为输入,通过机器学习或者神经网络的方法,最终输出对于某个查询,每个文档的相关度分数,进而实现可以进行对文档的排序。

    范式

    • 查询集合Q = {q1, q2 .... qn}
    • 文档集合D
    • 与第 i 个查询 qi 相关的文档Di = {d1 .... dm}
    • 得到结果:相关性分数 y = {y1 ... ym}

    l2r-model

    类别

    PointWise

    l2r-pointwise
    L2R-pointwise-rank

    优点

    • 可以直接利用现有的回归和分类的理论和算法

    缺点

    • 对于同一label级别的文档,无法进行排序,导致某些不重要的文档排在前面
    • 训练的时候仅考虑了当前文档的特征,忽略了本文档与其他文档的差别训练

    PairWise

    l2r-pairwise-model
    输出的0/1代表doc1是否大于doc2

    优点

    可以直接应用以后的分类算法

    缺点

    • 仅考虑了文档对的相对次序,很难推出列表的全序
    • 如果前面的文档对判断错误,会直接导致后面的文档对判断错误

    RankNet

    L2R-pairwise

    ListWise

    i2r-listwise

    NDCG理解

    • rel:查询q与文档的相关度
    • CG:了耳机增益,在top-n下,rel的累加
    • DCG:折损累计增益,在top-n下,rel乘以一个随位置的衰减值,表示越靠前的,权重越大,越靠后的,影响越小
    • IDCG:理想的DCG值,一般为训练预期结果的DCG值
    • NDCG:预测的DCG/IDCG
    模型输出的DCG值
    i reli log2(i+1) reli /log2(i+1)
    1 3 1 3
    2 2 1.58 1.26
    3 3 2 1.5
    4 0 2.32 0
    5 1 2.58 0.38
    6 2 2.8 0.71
    IDCG:(通过排名rel值得到)
    i reli log2(i+1) reli /log2(i+1)
    1 3 1 3
    2 3 1.58 1.89
    3 3 2 1.5
    4 2 2.32 0.86
    5 2 2.58 0.77
    6 1 2.8 0.35
    非连续性

    可以看出,IDCG是固定的,对DCG的优化过程,DCG的值呈现跳跃性改变,因此DCG是非连续函数,这导致以NDCG为代表的损失函数,很难使用现代的优化算法来优化。

    lambda梯度

    由于NDCG的非连续性,这就引入了lambda为梯度的损失函数

    lambda损失

    • 通过定义loss的梯度,不需要通过求导,而是直接求得lambda的梯度,然后通过反向传播到上层的model,优化模型的参数,这样就避免了最后的loss是非连续函数不可导的缺点
    • 最后梯度=lambda(i)
    • lambda>0,则趋于上升
    • lambda<0,则趋于下降
    lambda计算
    • 计算DCG
    • 计算IDCG
    • 计算deltaNDCG = |NDCG - NDCG(swap(i, j))|
    • lambda(i) = deltaNDCG(i>j) - deltaNDCG(i<j)
  • 相关阅读:
    答题卡
    hdu 5451 Best Solver
    L. Poor God Water(ACM-ICPC 2018 焦作赛区网络预赛)
    MicroRNA Ranking(Tehran2016)
    Split The Tree(2018东北四省赛)
    Django项目基础开发流程
    暑假学习进度记录墙
    抖音字体设置
    十大危险cmd指令
    奶牛的聚会
  • 原文地址:https://www.cnblogs.com/kukafeiso/p/14189484.html
Copyright © 2011-2022 走看看