• Learning to Rank小结


    Learning to Rank小结 - Searcher's Log

        Searcher's Log home wiki about
        Learning to Rank小结

        /* -*- author: Tan Menglong; email: tanmenglong_at_gmail; twitter/weibo: @crackcell; 转载请注明出处 -*- */
        Table of Contents

            1 前言
            2 LTR流程
            3 训练数据的获取
                3.1 人工标注
                3.2 搜索日志
                3.3 公共数据集
            4 特征抽取
            5 模型训练
                5.1 训练方法
                    5.1.1 Pointwise
                    5.1.2 Pairwise
                    5.1.3 Listwise
            6 效果评估
                6.1 NDCG(Normalized Discounted Cumulative Gain)
                    6.1.1 定义
                    6.1.2 描述
                6.2 MAP(Mean Average Precision)
                    6.2.1 定义
                    6.2.2 描述
            7 参考

        1 前言

        在传统搜索引擎的ranking策略中,一般会包含若干子策略,子策略通过若干种方式组合成更大的策略一起发挥作用。策略的组合方式以及参数一般采取人工或者半人工的方式确定。随着策略的逐步细化,传统的方式变得越来越困难。于是Learning to Rank(LTR)就被引入了进来。LTR的核心是想是用机器学习来解决排序的问题。目前被广泛运用在 信息检索(IR) 、 自然语言处理(NLP) 和 数据挖掘(DM) 中。 LTR是监督的学习。建好模型之后,需要用训练数据集的人工标注结果来训练。
        2 LTR流程

        ./NOTE_a_short_intro_2_ltr-training_process.png [[./NOTE_a_short_intro_2_ltr-training_process.png][./NOTE_a_short_intro_2_ltr-training_process.png]]
        3 训练数据的获取

        有2种获取训练数据的来源:1)人工标注;2)搜索日志。
        3.1 人工标注

        从搜索日志中随机选取一部分Query,让受过专业训练的数据评估员对"Query-Url对"给出相关性判断。常见的是5档的评分:差、一般、好、优秀、完美。以此作为训练数据。 人工标注是标注者的主观判断,会受标注者背景知识等因素的影响。
        3.2 搜索日志

        使用点击日志的偏多。比如,结果ABC分别位于123位,B比A位置低,但却得到了更多的点击,那么B的相关性可能好于A。点击数据隐式反映了同Query下搜索结果之间相关性的相对好坏。在搜索结果中,高位置的结果被点击的概率会大于低位置的结果,这叫做"点击偏见"(Click Bias)。但采取以上的方式,就绕过了这个问题。因为我们只记录发生了"点击倒置"的高低位结果,使用这样的"偏好对"作为训练数据。关于点击数据的使用,后续再单独开帖记录,这里不展开。 在实际应用中,除了点击数据,往往还会使用更多的数据。比如通过session日志,挖掘诸如页面停留时间等维度。 在实际场景中,搜索日志往往含有很多噪音。且只有Top Query(被搜索次数较多的Query)才能产生足够数量能说明问题的搜索日志。
        3.3 公共数据集

        现存一批公开的数据集可以使用

            LETOR, http://research.microsoft.com/en-us/um/beijing/projects/letor/
            Microsoft Learning to Rank Dataset, http://research.microsoft.com/en-us/projects/mslr/
            Yahoo Learning to Rank Challenge, http://webscope.sandbox.yahoo.com/

        4 特征抽取

        搜索引擎会使用一系列特征来决定结果的排序。一个特征称之为一个“feature”。按照我的理解,feature可以分为3大类:

            Doc本身的特征:Pagerank、内容丰富度、是否是spam等
            Query-Doc的特征:文本相关性、Query term在文档中出现的次数等

        此阶段就是要抽取出所有的特征,供后续训练使用。
        5 模型训练
        5.1 训练方法

        LTR的学习方法分为Pointwise、Pairwise和Listwise三类。Pointwise和Pairwise把排序问题转换成 回归 、 分类 或 有序分类 问题。Lisewise把Query下整个搜索结果作为一个训练的实例。3种方法的区别主要体现在损失函数(Loss Function)上。
        5.1.1 Pointwise

        排序问题被转化成单结果的 回归 、 分类 或 有序分类 的问题。

            函数框架
            L(F(x),y)=∑i=1nl(f(xi)−yi)
            小结
            ./NOTE_a_short_intro_2_ltr-pointwise_flow.png

        5.1.2 Pairwise

        排序问题被转化成结果对的 回归 、 分类 或 有序分类 的问题。

            函数框架
            L(F(x),y)=∑i=1n−1∑j=i+1nl(sign(yi−yj),f(xi)−f(xj))
            小结
            ./NOTE_a_short_intro_2_ltr-pairwise_flow.png

        5.1.3 Listwise

            函数框架
            L(F(x),y)=exp(−NDCG)
            小结
            ./NOTE_a_short_intro_2_ltr-listwise_flow.png

        6 效果评估

        对于搜索结果,有多种量化搜索得分的计算方法,这里介绍NDCG和MAP。
        6.1 NDCG(Normalized Discounted Cumulative Gain)
        6.1.1 定义
        NDCG(k)=G−1max,i(k)∑j:πi≦k2yi,j−1log2(1+πi(j))

            计算前k条结果的相关性得分
            i:第i次搜索
            j:第j条结果
            yi,j:第j条结果的相关性标注得分,5档制
            πi(j):这条结果在排序中的位置

        6.1.2 描述

            顾名思义,NDCG的公式由 N、D、C、G 4部分组成。将公式改写成
            NDCG(k)=Gmax,i(k)∑j:πi≦kGi(j)Di(πi(j))
            先看G部分。G是增益函数(Gain),表示第j条结果在被给予评分yi,j之后所贡献的分值增益。定义如下
            Gi(j)=2yi,j−1
            再看D部分。D是位置折算函数(Discounted)。因为不同位置的增益应该是不同的,D函数给结果按照位置赋予一个权重。定于如下
            D(πi(j))=1log2(1+πi(j))
            C部分就是累加(Cumulative),将k条结果的得分加在一起。
            N是归一化因子(Normalized),取值是该位置上G函数理论上取得的最大值的倒数。目的是缩放不同位置上的得分到统一区间。

        6.2 MAP(Mean Average Precision)
        6.2.1 定义
        AP=∑nij=1P(j)yi,j∑nij=1yi,j
        P(j)=∑k:πi(k)≦πi(j)yi,kπi(j)

            MAP中,相关性评分yi,j只有2档:0和1

        6.2.2 描述

            P表示结果j的权重,从位置j开始,相关(标记为1)的结果所在的比例
            AP表示单query下,相关的结果的平均的加权得分
            AP中,只有标记为相关的结果才会参与加权的累加
            AP是单query下的得分,多query的平均AP,就成了MAP

        7 参考

            Hang Li. Learning to Rank for Information Retrieval and Natural Language Processing
            Hang Li. A Short Introduction to Learning to Rank

        Author: Tan Menglong <tanmenglong AT gmail DOT com>

        Date: 2011-12-17 17:11:51 CST

        HTML generated by org-mode 6.33x in emacs 23
  • 相关阅读:
    jquery toggle(listenerOdd, listenerEven)
    struts quick start
    hdu 1518 Square (dfs)
    hdu 2544 最短路 (最短路径)
    hdu 1754 I Hate It (线段树)
    hdu 1856 More is better (并查集)
    hdu 1358 Period (KMP)
    hdu 2616 Kill the monster (DFS)
    hdu 2579 Dating with girls(2) (bfs)
    zoj 2110 Tempter of the Bone (dfs)
  • 原文地址:https://www.cnblogs.com/lexus/p/2728081.html
Copyright © 2020-2023  润新知