精华内容
下载资源
问答
  • 机器学习排序

    2019-01-16 16:52:15
    机器学习排序
                   

           从使用的数据类型,以及相关的机器学习技术的观点来看,互联网搜索经历了三代的发展历程。

           第一代技术,将互联网网页看作文本,主要采用传统信息检索的方法。

           第二代技术,利用互联网的超文本结构,有效地计算网页的相关度与重要度,代表的算法有 PageRank 等。

           第三代技术,有效利用日志数据与统计学习方法,使网页相关度与重要度计算的精度有了进一步的提升,代表的方法包括排序学习、网页重要度学习、匹配学习、话题模型学习、查询语句转化学习。

           这里主要介绍机器学习排序。

    1. 机器学习排序(Learning to Rank)

            利用机器学习技术来对搜索结果进行排序,这是最近几年非常热门的研究领域。信息检索领域已经发展了几十年,为何将机器学习技术和信息检索技术相互结合出现较晚?主要有两方面的原因。

            一方面是因为:在前面几节所述的基本检索模型可以看出,用来对査询和文档的相关性进行排序,所考虑的因素并不多,主要是利用词频、逆文档频率和文档长度这几个因子来人工拟合排序公式。因为考虑因素不多,由人工进行公式拟合是完全可行的,此时机器学习并不能派上很大用场,因为机器学习更适合采用很多特征来进行公式拟合,此时若指望人工将几十种考虑因素拟合出排序公式是不太现实的,而机器学习做这种类型的工作则非常合适。随着搜索引擎的发展,对于某个网页进行排序需要考虑的因素越来越多,比如网页的pageRank值、查询和文档匹配的单词个数、网页URL链接地址长度等都对网页排名产生影响,Google目前的网页排序公式考虑200多种因子,此时机器学习的作用即可发挥出来,这是原因之一。
           另外一个原因是:对于有监督机器学习来说,首先需要大量的训练数据,在此基础上才可能自动学习排序模型,单靠人工标注大量的训练数据不太现实。对于搜索引擎来说, 尽管无法靠人工来标注大量训练数据,但是用户点击记录是可以当做机器学习方法训练数据的一个替代品,比如用户发出一个查询,搜索引擎返回搜索结果,用户会点击其中某些网页,可以假设用户点击的网页是和用户查询更加相关的页面。尽管这种假设很多时候并 不成立,但是实际经验表明使用这种点击数据来训练机器学习系统确实是可行的。

    2. 机器学习的基本思路

           传统的检索模型靠人工拟合排序公式,并通过不断的实验确定最佳的参数组合,以此来形成相关性打分函数。机器学习排序与此思路不同,最合理的排序公式由机器自动学习获得,而人则需要给机器学习提供训练数据。

           图1是利用机器学习进行排序的基本原理图。 机器学习排序系统由4个步骤组成:人工标注训练数据、文档特征抽取、学习分类函数、在实际搜索系统中采用机器学习模型.

                   

                                                      图1  机器学习排序原理

     


           首先,由人工标注训练数据。也就是说,对于某个查询Q,人工标出哪些文档是和这个査询相关的,同时标出相关程度,相关程度有时候可以用数值序列来表示,比如从1分 到5分为3个档次,1代表微弱相关,5代表最相关,其他数值代表相关性在两者之间。对于某个查询,可能相关文档众多,同时用户査询也五花八门,所以全部靠人工标注有时候 不太可能。此时,可以利用用户点击记录来模拟这种人工打分机制。
          对于机器学习来说,输入是用户查询和一系列标注好的文档,机器学习系统需要学习打分函数,然后按照打分函数输出搜索结果,但是在其内部,每个文档由若干特征构成的,即每个文档进入机器学习系统之前,首先需要将其转换我饿滴特征向量,比较常用的特征包括:

    • 查询词在文档中的词频信息
    • 查询词的IDF信息
    • 文档长度:
    • 网页的入链数量:
    • 网页的出链数量:
    • 网页的pageRank值;
    • 网页的URL松度:
    • 査询词的Proximity值:即在文档中多大的窗口内可以出现所有査询词。

            以上所列只是影响排序的一部分特征,实际上还有很多类似的特征可以作为特征向量中的一维加入。在确定了特征数量后,即可将文档转換为特征向量X,前面说过每个文档会人工标出其相关性得分y.这样每个文档会转換为<X,Y>的形式,即特征向量及其对应的相关性得分,这样就形成了一个具体的训练实例。

           通过多个调练实例,就可以采用机器学习技术来对系统进行训练,训练的结果往在是 ―个分类函数或者回归函数,在之后的用户搜索中,就可以用这个分类函数对文档进行打分,形成搜索结果 

        从目前的研究方法来说,可以将机器学习揉序方法分为以下3种:单文档方法、文档对方法和文档列表方法。

     

    3. 单文档方法(PointWise Approach》

            单文档方法的处理对象是单独的一篇文档,将文档转换为特征向量后,机器学习系统根据从训练数据中学习到的分类或者回归函数对文档打分,打分结果即是搜索结果。下面我们用一个简单的例子说明这种方法。 
            图2是人工标注的训练集合,在这个例子中,我们对于每个文档采用了3个特征: 査询与文档的Cosme相似性分值、査询词的Proximity值及页面的PageRank数值,而相关性判断是二元的,即要么相关要么不相关,当然,这里的相关性判断完全可以按照相关程度扩展为多元的,本例为了方便说明做了简化。

              

                                              图2 训练数据
            

          例子中提供了5个训练实例,每个训练实例分别标出来其对应的查询,3个特征的得分情况及相关性判断。对于机器学习系统来说,根据训练数据,需要如下的线性打分函数:
     
           Score(Q, D)=a x CS+ b x PM+cx PR+ d
            这个公式中,cs代表Cosine相似度变徽,PM代表Proximity值变量,PR代表pageRank, 而a、 b、 c、 d则是变量对应的参数。

            如果得分大于一设定阀值,则叫以认为是相关的, 如果小于设定闽值则可以认为不相关。通过训练实例,可以获得最优的a、 b,、c、d参数组合,当这些参数确定后,机器学习系统就算学习完毕,之后即可利用这个打分函数进行相关性判断。对于某个新的查询Q和文档D,系统首先获得其文档D对应的3个特 I特征值,之后利用学习到的参数组合计算两者得分,当得分大于设定的闽值,即可判断文档是相关文档,否则判断为不相关文档。

     

    4. 文档对方法(PairWise Approach)

            对于搜索系统来说,系统接收到用户査询后,返回相关文档列表,所以问题的关键是确定文档之间的先后顺序关系。单文档方法完全从单个文档的分类得分角度计算,没有考虑文档之间的顺序关系。文档对方法则将重点转向量对文档顺序关系是否合理进行判断。

            之所以被称为文档对方法,是因为这种机器学习方法的训练过程和训练目标,是判断任意两个文档组成的文档对<D0C1,D0C2>是否满足顺序关系,即判断是否D0C1应该排在DOC2的前面。图3展示了一个训练实例:査询Q1对应的搜索结果列表如何转换为文档对的形式,因为从人工标注的相关性得分可以看出,D0C2得分最高,D0C3次之,D0C1得分最低,于是我们可以按照得分大小顺序关系得到3个如图3所示的文档对,将每个文档对的文档转换为特征向量后,就形成了一个具体的训练实例。

         

                                                图3  文档对的方法训练实例


           根据转换后的训练实例,就可以利用机器学习方法进行分类函数的学习,具体的学习方法有很多,比如SVM. Boosts、神经网络等都可以作为具体的学习方法,但是不论具体方法是什么,其学习目标都是一致的,即输入- 个査询和文档对<Docl,DOC2>, 机器学习排序能够判断这种顺序关系是否成立,如果成立,那么在搜索结果中D0C1应该排在D0C2 前面,否则Doe2应该摔在Docl前面,通过这种方式,就完成搜索结果的排序任务。
            尽管文档对方法相对单文档方法做出了改进,但是这种方法也存在两个明显的问题:

           一个问题是:文档对方法只考虑了两个文档对的相对先后顺序,却没有考虑文档出现在搜索列表中的位置,排在搜索站果前列的文档更为重要,如果前列文档出现判断错误,代价明显高于排在后面的文档。针对这个问题的改进思路是引入代价敏感因素,即每个文档对根据其在列表中的顺序具有不同的权重,越是排在前列的权重越大,即在搜索列表前列如 果排错顺序的话其付出的代价更高•
            另外一个问题是:不同的査询,其相关文档数量差异很大,所以转换为文档对之后, 有的查询对能有几百个对应的文档对,而有的查询只有十几个对应的文档对,这对机器学习系统的效果评价造成困难 •我们设想有两个查询,査询Q1对应500个文文档对,查询Q2 对应10个文档对,假设学习系统对于査询Ql的文档对能够判断正确480个,对于査询 Q2的义格对能够判新正确2个,如果从总的文档对数量来看,这个学习系统的准确率是 (480+2)/(500+10)=0.95.即95%的准确率,但是从査询的角度,两个査询对应的准确率 分别为:96%和20%,两者平均为58%,与纯粹从文档对判断的准确率相差甚远,这对如何继续调优机器学习系统会带来困扰。

     

    4. 文档列表方法(ListWise Approach)

              单文档方法将训练集里每一个文档当做一个训练实例,文档对方法将同一个査询的搜索结果里任意两个文档对作为一个训练实例,文档列表方法与上述两种表示方式不同,是将每一个查询对应的所有搜索结果列表整体作为一个训练实例,这也是为何称之为文档列表方法的原因。
            文档列表方法根据K个训练实例(一个査询及其对应的所有搜索结果评分作为一个实 例)训练得到最优评分函数F, 对于一个新的用户査询,函数F 对每一个文档打分,之后按照得分顺序由高到低排序,就是对应的搜索结果。 所以关键问题是:拿到训练数据,如何才能训练得到最优的打分函数?

            这里介绍一种训练方法,它是基于搜索结果排列组合的概率分布情况来训练的,图4是这种方式训练过程的图解示意。

           

                                           图4 不同评分函数的KL距离

     

           首先解释下什么是搜索结果排列组合的概率分布,我们知道,对于搜索 引擎来说,用户输入査询Q, 搜索引擎返回搜索结果,我们假设搜索结果集合包含A. B 和C 3个文档,搜索引擎要对搜索结果排序,而这3个文档的顺序共有6种排列组合方式:

          ABC, ACB, BAG, BCA, CAB和CBA,

            而每种排列组合都是一种可能的搜索结果排序方法。

            对于某个评分函数F来说,对3个搜索结果文档的相关性打分,得到3个不同的相关度得分F(A)、 F(B)和F(C), 根据这3个得分就可以计算6种排列组合情况各自的概率值。 不同的评分函数,其6种搜索结果排列组合的概率分布是不一样的。
          了解了什么是搜索结果排列组合的概率分布,我们介绍如何根据训练实例找到最优的 评分函数。图4展示了一个具体的训练实例,即査询Q1及其对应的3个文档的得分情况,这个得分是由人工打上去的,所以可以看做是标准答案。可以设想存在一个最优的评分函数g,对查询Q1来说,其打分结果是:A文档得6分,B文档得4分,C文档得3分, 因为得分是人工打的,所以具体这个函数g是怎样的我们不清楚,我们的任务就是找到一 个函数,使得函数对Ql的搜索结果打分顺序和人工打分顺序尽可能相同。既然人工打分 (虚拟的函数g) 已知,那么我们可以计算函数g对应的搜索结果排列组合概率分布,其具体分布情况如图4中间的概率分布所示。假设存在两个其他函数h和f,它们的计算方法已知,对应的对3个搜索结果的打分在图上可以看到,由打分结果也可以推出每个函数对应的搜索结果排列组合概率分布,那么h与f哪个与虚拟的最优评分函数g更接近呢?一般可以用两个分布概率之间的距离远近来度量相似性,KL距离就是一种衡量概率分布差异大小的计算工具,通过分别计算h与g的差异大小及f与g的差异大小,可以看出f比h更接近的最优函数g,那么在这个函数中,我们应该优先选f作为将来搜索可用的评分函数,训练过程就是在可能的函数中寻找最接近虚拟最优函数g的那个函数作为训练结果,将来作为在搜索时的评分函数。

           上述例子只是描述了对于单个训练实例如何通过训练找到最优函数,事实上我们有K 个训练实例,虽然如此,其训练过程与上述说明是类似的,可以认为存在一个虚拟的最优 评分函数g (实际上是人工打分),训练过程就是在所有训练实例基础上,探寻所有可能的 候选函数,从中选择那个KL距离最接近于函数g的,以此作为实际使用的评分函数。 经验结果表明,基于文档列表方法

    的机器学习排序效果要好于前述两种方法。

    声明:本博客摘自《这就是搜索引擎:核心技术详解》 第五章关于机器学习排序的内容。转载请说明摘自出处。

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 推荐系统、搜索引擎的排序学习,适合入门以及提高机器排序学习的读者
  • Learning to rank(LTR,L2R)也叫排序学习,泛指机器学习中任何用户排序的技术,是指一类监督学习(Supervised Learning)排序算法。 LTR被应用在很多领域,比如信息检索(Information Retrieval)、推荐系统...

    Learning to rank(LTR,L2R)也叫排序学习,泛指机器学习中任何用户排序的技术,是指一类监督学习(Supervised Learning)排序算法。 LTR被应用在很多领域,比如信息检索(Information Retrieval)、推荐系统(Recommend System)、搜索引擎(Search Engine)。

    LTR框架

    一般来讲,根据机器学习的“四大支柱”,LTR分为三类方法:Pointwise Approach、Pairwise Approach、Listwise Approach。不同的方法通过不同的方式去训练模型,他们定义不同的输入、不同的输出、不同的假设、不同的损失函数。

    什么是机器学习的四大支柱?看下图
    机器学习的四大支柱

    LTR框架对应的则是排序模型,一个通用的LTR框架如下:

    LTR框架

    通常来说,一个训练集由 n n n个query组成 q i ( i = 1 , 2 , 3... , n ) q_i(i=1,2,3...,n) qi(i=1,2,3...,n),每一个query都会有一系列与之相关的documents(通常每个documents都有向量表示,向量内容可以是有意义的特征,也可以是embedding得出的向量) X i = { x j ( i ) } y = 1 m ( i ) X^i = \{ x_j^{(i)} \}_{y=1}^{m^{(i)}} Xi={xj(i)}y=1m(i) m ( i ) m^{(i)} m(i)表示与 q i q_i qi相关的documents个数, y y y代表documents的正确标签(可能是0或者1,也能是相关度)。上图中对应的流程是:准备训练数据->特征提取->训练模型-数据预测->效果评估

    Pointwise Approach

    解释

    Pointwise是“逐样本”的训练方法,即仅考虑单个样本的得分 h ( x i ) h(x_i) h(xi)与样本的真实得分 y ( i ) y^{(i)} y(i)的关系。

    Pointwise 将问题转化为多分类或回归问题。如果归结为多分类问题,对于某个 Query,对文档与此 Query 的相关程度打标签,标签分为有限的类别,这样就将问题转为多分类问题;如果归结为回归问题,对于某个 Query,则对文档与此 Query 的相关程度计算相关度 Score,这样就将问题归结为回归问题。

    例如,对于一组样本数据,用户一段时间内在几个商品类别下的浏览,收藏,分享,购买次数,然后label为喜好等级或是否喜欢,如下表所示(数据伪造只为了说明问题):

    用户类别浏览收藏分享购买喜好等级是否喜欢
    userA数码产品43842
    userB生活用户24421
    userC办公用品12140
    userD衣服25511

    如上表所示,用户在每个类别下的行为特征有四个,喜好等级分为:高、中、低三档。然后我们可以采用机器学习中的任意一种多分类方法计算用户对物品类别的喜好等级,当然我们也可以采用二分类的方法计算用户是否喜欢这个类别,这和推荐系统中基于CTR来做物品排序和pointwise中的二分类思路是一致的。

    缺点

    • Pointwise完全从单文档的分类角度计算,没有考虑文档之间的相对顺序。而且它假设相关度是查询无关的,只要 ( q u e r y , y i ) (query,y_i) (queryyi)的相关度相同,那么他们就被划分到同一个级别中,属于同一类。比如在CTR场景中构建的训练集中,所有正样本之间的相关性,Pointwise是不会考虑,同样所有的负样本之间的相关性Pointwise也是不会考虑的。
    • 损失函数中没有捕获预测排序中的位置信息,因此,损失函数可能无意的过多强调那些不重要的结果,即那些排序在后面对用户体验影响小的结果。

    Pairwise Approach

    解释

    相对Pointwise而言,Pairwise更在乎的是文档之间的顺序,他主要将排序问题归结为二元分类问题,这时候相应的机器学习算法就比较多了,比如Boost、SVM、神经网络等。对于同一query的相关文档集中,对任何两个不同label的文档,都可以得到一个训练实例 ( y i , y j ) (y_i,y_j) (yi,yj),如果 y i > y j y_i>y_j yi>yj则赋值+1,反之-1,于是我们就得到了二元分类器训练所需的训练样本了。

    Pairwise通常用在搜索系统中,系统接收到用户査询后,返回相关文档列表,所以问题的关键是确定文档之间的先后顺序关系。Pointwise方法完全从单个文档的分类得分角度计算,没有考虑文档之间的顺序关系。文档对方法将排序问题转化为多个pair的排序问题,比较不同文章的先后顺序。

    在Pairwise算法中,每个输入数据为一对具有偏序关系(preference relation)的文档,通过对这些数据对的有监督学习来获得一个排序模型,其学习目标是使得结果列表中的错误的偏序对越少越好。
    pairwise

    目前公认最为经典的三个Pairwise算法是:基于SVM的Ranking SVM算法、基于神经网络的RankNet算法和基于Boosting的RankBoost算法。

    缺点

    • 样本数据大多数为有序类别,转化成 pairwise preference 后必定会损失掉一些更细粒度的相关度标注信息。
    • 转化成 pairwise preference 后,样本数量将会增加很多倍,在进行模型训练时也会需要更大的计算资源。
    • Pairwise 类方法相对 Pointwise 类方法对噪声标注更敏感,即一个错误标注会引起多个pair 标注错误。
    • Pairwise 类方法仅考虑了pair 的相对位置,同样也没有考虑样本在预测排序中的位置信息,同时也没有考虑同一个label对应的数据的内部依赖性。

    Listwise Approach

    解释

    Pariwise和Pointwise忽视了一个事实就是答案选择就是从一系列候选句子中的预测问题,相对于 Pointwise 和 Pairwise 方法来说,它不再将排序问题转化为一个分类问题或者回归问题,而是直接针对评价指标对文档的排序结果进行优化,在listwise中单一训练样本是:query和它的所有候选回答句子。

    ListWise中常用的优化指标有:MAP、NDCG。常用的ListWise方法有:LambdaRank、AdaRank、SoftRank、LambdaMART。

    优缺点

    • 优点:相较 Pointwise、Pairwise 对 ranking 的 model 更自然,解决了 ranking 应该基于 query 和 position 问题。
    • 缺点:一些 ranking 算法需要基于排列来计算 loss,从而使得训练复杂度较高。

    Pointwise VS Pairwise

    在推荐系统领域,Pointwise的应用是比Pairwise更广的,因为效果更好,但是在搜索系统领域Pairwsie表现比Pointwise更加出色。

    在搜索系统中,搜索是带 query 的、有意识的被动推荐,对于搜索而言,相关性是及其重要的事情。query 限制了你召回商品相关性,比如 “华为手机”,召回回来一批相似性极高的手机,基于用户的主观诉求也决定了他将高度关注商品之间的细微差别,比如价格、颜色、配置等,因此这些商品才有必要比个高下。

    在推荐系统中,推荐是发散的、无意识的主动推荐,相比搜索而言,准确性不再是第一要务(想象下因为你点过一些手机给你出一整屏手机的感觉),多样性是一个必要的指标,这导致了推荐结果极其发散。用户对推荐结果多样性的诉求使得他不关注两个商品之间的比较,对于算法而言不再关注商品之间两两的比较,我只要每个都预测准了,反正最后也要打散的。而且多样性也导致了推荐场景没有像搜索一样适合做 Pairwise 的样本。

    因为虽然用的都是学习排序算法,但是在不同的场景中,算法的选择和使用还是有区别的,要因地制宜!

    这篇文章分享就到这里,如果你有不懂的可以在留言区留言,当然如果你觉得不错,可以分享给更多人!


    【技术服务】详情点击查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg

    在这里插入图片描述

    扫一扫关注「搜索与推荐Wiki」!号主「专注于搜索和推荐系统,以系列分享为主,持续打造精品内容!

    展开全文
  • 搜索引擎利用机器学习排序

    千次阅读 2016-05-03 18:17:17
    搜索引擎利用机器学习排序 标签: 搜索引擎机器学习排序 2013-07-29 20:52 1414人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 机器学习与数据挖掘(24) 作者同类文章X ...

    搜索引擎利用机器学习排序

    标签: 搜索引擎机器学习排序
    1414人阅读 评论(0) 收藏 举报
    本文章已收录于:
    分类:

    从使用的数据类型,以及相关的机器学习技术的观点来看,互联网搜索经历了三代的发展历程。

           第一代技术,将互联网网页看作文本,主要采用传统信息检索的方法。

           第二代技术,利用互联网的超文本结构,有效地计算网页的相关度与重要度,代表的算法有 PageRank 等。

           第三代技术,有效利用日志数据与统计学习方法,使网页相关度与重要度计算的精度有了进一步的提升,代表的方法包括排序学习、网页重要度学习、匹配学习、话题模型学习、查询语句转化学习。

           这里主要介绍机器学习排序。

    1. 机器学习排序(Learning to Rank)

            利用机器学习技术来对搜索结果进行排序,这是最近几年非常热门的研究领域。信息检索领域已经发展了几十年,为何将机器学习技术和信息检索技术相互结合出现较晚?主要有两方面的原因。

            一方面是因为:在前面几节所述的基本检索模型可以看出,用来对査询和文档的相关性进行排序,所考虑的因素并不多,主要是利用词频、逆文档频率和文档长度这几个因子来人工拟合排序公式。因为考虑因素不多,由人工进行公式拟合是完全可行的,此时机器学习并不能派上很大用场,因为机器学习更适合采用很多特征来进行公式拟合,此时若指望人工将几十种考虑因素拟合出排序公式是不太现实的,而机器学习做这种类型的工作则非常合适。随着搜索引擎的发展,对于某个网页进行排序需要考虑的因素越来越多,比如网页的pageRank值、查询和文档匹配的单词个数、网页URL链接地址长度等都对网页排名产生影响,Google目前的网页排序公式考虑200多种因子,此时机器学习的作用即可发挥出来,这是原因之一。
           另外一个原因是:对于有监督机器学习来说,首先需要大量的训练数据,在此基础上才可能自动学习排序模型,单靠人工标注大量的训练数据不太现实。对于搜索引擎来说, 尽管无法靠人工来标注大量训练数据,但是用户点击记录是可以当做机器学习方法训练数据的一个替代品,比如用户发出一个查询,搜索引擎返回搜索结果,用户会点击其中某些网页,可以假设用户点击的网页是和用户查询更加相关的页面。尽管这种假设很多时候并 不成立,但是实际经验表明使用这种点击数据来训练机器学习系统确实是可行的。

    2. 机器学习的基本思路

           传统的检索模型靠人工拟合排序公式,并通过不断的实验确定最佳的参数组合,以此来形成相关性打分函数。机器学习排序与此思路不同,最合理的排序公式由机器自动学习获得,而人则需要给机器学习提供训练数据。

           图1是利用机器学习进行排序的基本原理图。 机器学习排序系统由4个步骤组成:人工标注训练数据、文档特征抽取、学习分类函数、在实际搜索系统中采用机器学习模型.

                    

                                                      图1  机器学习排序原理

     


           首先,由人工标注训练数据。也就是说,对于某个查询Q,人工标出哪些文档是和这个査询相关的,同时标出相关程度,相关程度有时候可以用数值序列来表示,比如从1分 到5分为3个档次,1代表微弱相关,5代表最相关,其他数值代表相关性在两者之间。对于某个查询,可能相关文档众多,同时用户査询也五花八门,所以全部靠人工标注有时候 不太可能。此时,可以利用用户点击记录来模拟这种人工打分机制。
          对于机器学习来说,输入是用户查询和一系列标注好的文档,机器学习系统需要学习打分函数,然后按照打分函数输出搜索结果,但是在其内部,每个文档由若干特征构成的,即每个文档进入机器学习系统之前,首先需要将其转换我饿滴特征向量,比较常用的特征包括:

    • 查询词在文档中的词频信息
    • 查询词的IDF信息
    • 文档长度: 
    • 网页的入链数量: 
    • 网页的出链数量:
    • 网页的pageRank值; 
    • 网页的URL松度: 
    • 査询词的Proximity值:即在文档中多大的窗口内可以出现所有査询词。

            以上所列只是影响排序的一部分特征,实际上还有很多类似的特征可以作为特征向量中的一维加入。在确定了特征数量后,即可将文档转換为特征向量X,前面说过每个文档会人工标出其相关性得分y.这样每个文档会转換为<X,Y>的形式,即特征向量及其对应的相关性得分,这样就形成了一个具体的训练实例。

           通过多个调练实例,就可以采用机器学习技术来对系统进行训练,训练的结果往在是 ―个分类函数或者回归函数,在之后的用户搜索中,就可以用这个分类函数对文档进行打分,形成搜索结果 

        从目前的研究方法来说,可以将机器学习揉序方法分为以下3种:单文档方法、文档对方法和文档列表方法。

     

    3. 单文档方法(PointWise Approach》

            单文档方法的处理对象是单独的一篇文档,将文档转换为特征向量后,机器学习系统根据从训练数据中学习到的分类或者回归函数对文档打分,打分结果即是搜索结果。下面我们用一个简单的例子说明这种方法。 
            图2是人工标注的训练集合,在这个例子中,我们对于每个文档采用了3个特征: 査询与文档的Cosme相似性分值、査询词的Proximity值及页面的PageRank数值,而相关性判断是二元的,即要么相关要么不相关,当然,这里的相关性判断完全可以按照相关程度扩展为多元的,本例为了方便说明做了简化。

               

                                              图2 训练数据
            

          例子中提供了5个训练实例,每个训练实例分别标出来其对应的查询,3个特征的得分情况及相关性判断。对于机器学习系统来说,根据训练数据,需要如下的线性打分函数:
      
           Score(Q, D)=a x CS+ b x PM+cx PR+ d 
            这个公式中,cs代表Cosine相似度变徽,PM代表Proximity值变量,PR代表pageRank, 而a、 b、 c、 d则是变量对应的参数。

            如果得分大于一设定阀值,则叫以认为是相关的, 如果小于设定闽值则可以认为不相关。通过训练实例,可以获得最优的a、 b,、c、d参数组合,当这些参数确定后,机器学习系统就算学习完毕,之后即可利用这个打分函数进行相关性判断。对于某个新的查询Q和文档D,系统首先获得其文档D对应的3个特 I特征值,之后利用学习到的参数组合计算两者得分,当得分大于设定的闽值,即可判断文档是相关文档,否则判断为不相关文档。

     

    4. 文档对方法(PairWise Approach)

            对于搜索系统来说,系统接收到用户査询后,返回相关文档列表,所以问题的关键是确定文档之间的先后顺序关系。单文档方法完全从单个文档的分类得分角度计算,没有考虑文档之间的顺序关系。文档对方法则将重点转向量对文档顺序关系是否合理进行判断。

            之所以被称为文档对方法,是因为这种机器学习方法的训练过程和训练目标,是判断任意两个文档组成的文档对<D0C1,D0C2>是否满足顺序关系,即判断是否D0C1应该排在DOC2的前面。图3展示了一个训练实例:査询Q1对应的搜索结果列表如何转换为文档对的形式,因为从人工标注的相关性得分可以看出,D0C2得分最高,D0C3次之,D0C1得分最低,于是我们可以按照得分大小顺序关系得到3个如图3所示的文档对,将每个文档对的文档转换为特征向量后,就形成了一个具体的训练实例。

          

                                                图3  文档对的方法训练实例


           根据转换后的训练实例,就可以利用机器学习方法进行分类函数的学习,具体的学习方法有很多,比如SVM. Boosts、神经网络等都可以作为具体的学习方法,但是不论具体方法是什么,其学习目标都是一致的,即输入- 个査询和文档对<Docl,DOC2>, 机器学习排序能够判断这种顺序关系是否成立,如果成立,那么在搜索结果中D0C1应该排在D0C2 前面,否则Doe2应该摔在Docl前面,通过这种方式,就完成搜索结果的排序任务。
            尽管文档对方法相对单文档方法做出了改进,但是这种方法也存在两个明显的问题:

           一个问题是:文档对方法只考虑了两个文档对的相对先后顺序,却没有考虑文档出现在搜索列表中的位置,排在搜索站果前列的文档更为重要,如果前列文档出现判断错误,代价明显高于排在后面的文档。针对这个问题的改进思路是引入代价敏感因素,即每个文档对根据其在列表中的顺序具有不同的权重,越是排在前列的权重越大,即在搜索列表前列如 果排错顺序的话其付出的代价更高•
            另外一个问题是:不同的査询,其相关文档数量差异很大,所以转换为文档对之后, 有的查询对能有几百个对应的文档对,而有的查询只有十几个对应的文档对,这对机器学习系统的效果评价造成困难 •我们设想有两个查询,査询Q1对应500个文文档对,查询Q2 对应10个文档对,假设学习系统对于査询Ql的文档对能够判断正确480个,对于査询 Q2的义格对能够判新正确2个,如果从总的文档对数量来看,这个学习系统的准确率是 (480+2)/(500+10)=0.95.即95%的准确率,但是从査询的角度,两个査询对应的准确率 分别为:96%和20%,两者平均为58%,与纯粹从文档对判断的准确率相差甚远,这对如何继续调优机器学习系统会带来困扰。

     

    4. 文档列表方法(ListWise Approach)

              单文档方法将训练集里每一个文档当做一个训练实例,文档对方法将同一个査询的搜索结果里任意两个文档对作为一个训练实例,文档列表方法与上述两种表示方式不同,是将每一个查询对应的所有搜索结果列表整体作为一个训练实例,这也是为何称之为文档列表方法的原因。
            文档列表方法根据K个训练实例(一个査询及其对应的所有搜索结果评分作为一个实 例)训练得到最优评分函数F, 对于一个新的用户査询,函数F 对每一个文档打分,之后按照得分顺序由高到低排序,就是对应的搜索结果。 所以关键问题是:拿到训练数据,如何才能训练得到最优的打分函数?

            这里介绍一种训练方法,它是基于搜索结果排列组合的概率分布情况来训练的,图4是这种方式训练过程的图解示意。

            

                                           图4 不同评分函数的KL距离

     

           首先解释下什么是搜索结果排列组合的概率分布,我们知道,对于搜索 引擎来说,用户输入査询Q, 搜索引擎返回搜索结果,我们假设搜索结果集合包含A. B 和C 3个文档,搜索引擎要对搜索结果排序,而这3个文档的顺序共有6种排列组合方式:

          ABC, ACB, BAG, BCA, CAB和CBA,

            而每种排列组合都是一种可能的搜索结果排序方法。

            对于某个评分函数F来说,对3个搜索结果文档的相关性打分,得到3个不同的相关度得分F(A)、 F(B)和F(C), 根据这3个得分就可以计算6种排列组合情况各自的概率值。 不同的评分函数,其6种搜索结果排列组合的概率分布是不一样的。
          了解了什么是搜索结果排列组合的概率分布,我们介绍如何根据训练实例找到最优的 评分函数。图4展示了一个具体的训练实例,即査询Q1及其对应的3个文档的得分情况,这个得分是由人工打上去的,所以可以看做是标准答案。可以设想存在一个最优的评分函数g,对查询Q1来说,其打分结果是:A文档得6分,B文档得4分,C文档得3分, 因为得分是人工打的,所以具体这个函数g是怎样的我们不清楚,我们的任务就是找到一 个函数,使得函数对Ql的搜索结果打分顺序和人工打分顺序尽可能相同。既然人工打分 (虚拟的函数g) 已知,那么我们可以计算函数g对应的搜索结果排列组合概率分布,其具体分布情况如图4中间的概率分布所示。假设存在两个其他函数h和f,它们的计算方法已知,对应的对3个搜索结果的打分在图上可以看到,由打分结果也可以推出每个函数对应的搜索结果排列组合概率分布,那么h与f哪个与虚拟的最优评分函数g更接近呢?一般可以用两个分布概率之间的距离远近来度量相似性,KL距离就是一种衡量概率分布差异大小的计算工具,通过分别计算h与g的差异大小及f与g的差异大小,可以看出f比h更接近的最优函数g,那么在这个函数中,我们应该优先选f作为将来搜索可用的评分函数,训练过程就是在可能的函数中寻找最接近虚拟最优函数g的那个函数作为训练结果,将来作为在搜索时的评分函数。

           上述例子只是描述了对于单个训练实例如何通过训练找到最优函数,事实上我们有K 个训练实例,虽然如此,其训练过程与上述说明是类似的,可以认为存在一个虚拟的最优 评分函数g (实际上是人工打分),训练过程就是在所有训练实例基础上,探寻所有可能的 候选函数,从中选择那个KL距离最接近于函数g的,以此作为实际使用的评分函数。 经验结果表明,基于文档列表方法

    的机器学习排序效果要好于前述两种方法。

    展开全文
  • 机器学习排序之Learning to Rank简单介绍

    万次阅读 多人点赞 2015-01-03 21:50:25
    它是在M/R、Storm或Spark架构上搭建分布式系统,并使用学习排序Pointwise、Pairwise和Listwise三大类算法实现对微软数据集(Microsoft Learning to Rank Datasets)进行学习排序,这篇文章是对其入门介绍.感觉很难啊~ ...

    PS:文章主要转载自CSDN大神hguisu的文章"机器学习排序":
              http://blog.csdn.net/hguisu/article/details/7989489
          最近需要完成课程作业——分布式排序学习系统.它是在M/R、Storm或Spark架构上搭建分布式系统,并使用学习排序Pointwise、Pairwise和Listwise三大类算法实现对微软数据集(Microsoft Learning to Rank Datasets)进行学习排序,这篇文章是对其入门介绍.感觉很难啊~
          推荐&参考资料:
       
    《Learning to Rank for Information Retrieval By:Tie-Yan Liu》
        《这就是搜索引擎 核心技术详解 著:张俊林》
          论文《Learning to rank From Pairwise Approach to Listwise Approace》
          论文《Adapting Ranking SVM to Document Retrieval By:Tie-Yan Liu》
          维基百科介绍 Learning to rank
          开源软件 Rank SVM Support Vector Machine for Ranking 
          开源软件 RankLib包括RankNet RankBoost AdaRank
          博客园文章 Learning to Rank入门小结

           从使用的数据类型,以及相关的机器学习技术的观点来看,互联网搜索经历了三代的发展历程。
           第一代技术,将互联网网页看作文本,主要采用传统信息检索的方法。
           第二代技术,利用互联网的超文本结构,有效地计算网页的相关度与重要度,代表的算法有 PageRank 等。
           第三代技术,有效利用日志数据与统计学习方法,使网页相关度与重要度计算的精度有了进一步的提升,代表的方法包括排序学习、网页重要度学习、匹配学习、话题模型学习、查询语句转化学习。
           这里主要介绍机器学习排序。

    1. 机器学习排序(Learning to Rank)

           利用机器学习技术来对搜索结果进行排序,这是最近几年非常热门的研究领域。信息检索领域已经发展了几十年,为何将机器学习技术和信息检索技术相互结合出现较晚?主要有两方面的原因。

           一方面是因为:在前面几节所述的基本检索模型可以看出,用来对査询和文档的相关性进行排序,所考虑的因素并不多,主要是利用词频、逆文档频率和文档长度这几个因子来人工拟合排序公式。因为考虑因素不多,由人工进行公式拟合是完全可行的,此时机器学习并不能派上很大用场,因为机器学习更适合采用很多特征来进行公式拟合,此时若指望人工将几十种考虑因素拟合出排序公式是不太现实的,而机器学习做这种类型的工作则非常合适。随着搜索引擎的发展,对于某个网页进行排序需要考虑的因素越来越多,比如网页的pageRank值、查询和文档匹配的单词个数、网页URL链接地址长度等都对网页排名产生影响,Google目前的网页排序公式考虑200多种因子,此时机器学习的作用即可发挥出来,这是原因之一。
          另外一个原因是:对于有监督机器学习来说,首先需要大量的训练数据,在此基础上才可能自动学习排序模型,单靠人工标注大量的训练数据不太现实。对于搜索引擎来说, 尽管无法靠人工来标注大量训练数据,但是用户点击记录是可以当做机器学习方法训练数据的一个替代品,比如用户发出一个查询,搜索引擎返回搜索结果,用户会点击其中某些网页,可以假设用户点击的网页是和用户查询更加相关的页面。尽管这种假设很多时候并 不成立,但是实际经验表明使用这种点击数据来训练机器学习系统确实是可行的。

          PS:简言之,上面两个原因论述了为什么会出现学习排序?
          传统的排序方法是通过构造一个排序函数实现,在Information Retrieval领域一般按照相关度进行排序。比较典型的是搜索引擎中一条查询query,将返回一个相关的文档document,然后根据(query,document)之间的相关度进行排序,再返回给用户。而随着影响相关度的因素变多,使用传统排序方法变得困难,人们就想到通过机器学习来解决这一问题,这就导致了LRT的诞生。

    2. 机器学习的基本思路

          传统的检索模型靠人工拟合排序公式,并通过不断的实验确定最佳的参数组合,以此来形成相关性打分函数。机器学习排序与此思路不同,最合理的排序公式由机器自动学习获得,而人则需要给机器学习提供训练数据。

          图1是利用机器学习进行排序的基本原理图。 机器学习排序系统由4个步骤组成:人工标注训练数据、文档特征抽取、学习分类函数、在实际搜索系统中采用机器学习模型。

          

      图1  机器学习排序原理

           首先,由人工标注训练数据。也就是说,对于某个查询Q,人工标出哪些文档是和这个査询相关的,同时标出相关程度,相关程度有时候可以用数值序列来表示,比如从1分到5分为3个档次,1代表微弱相关,5代表最相关,其他数值代表相关性在两者之间。对于某个查询,可能相关文档众多,同时用户査询也五花八门,所以全部靠人工标注有时候 不太可能。此时,可以利用用户点击记录来模拟这种人工打分机制。
          对于机器学习来说,输入是用户查询和一系列标注好的文档,机器学习系统需要学习打分函数,然后按照打分函数输出搜索结果,但是在其内部,每个文档由若干特征构成的,即每个文档进入机器学习系统之前,首先需要将其转换我饿滴特征向量,比较常用的特征包括:
          ·查询词在文档中的词频信息
     
          ·查询词的IDF信息
          ·文档长度
          ·网页的入链数量
          ·网页的出链数量
          ·网页的pageRank值
          ·网页的URL松度
          ·査询词的Proximity值:即在文档中多大的窗口内可以出现所有査询词。

           以上所列只是影响排序的一部分特征,实际上还有很多类似的特征可以作为特征向量中的一维加入。在确定了特征数量后,即可将文档转換为特征向量X,前面说过每个文档会人工标出其相关性得分y。这样每个文档会转換为<X,Y>的形式,即特征向量及其对应的相关性得分,这样就形成了一个具体的训练实例。

           通过多个调练实例,就可以采用机器学习技术来对系统进行训练,训练的结果往在是一个分类函数或者回归函数,在之后的用户搜索中,就可以用这个分类函数对文档进行打分,形成搜索结果。

           从目前的研究方法来说,可以将机器学习排序方法分为以下3种:单文档方法(Pointwise)、文档对方法(Pairwise)和文档列表方法(Listwise)。

           PS:Ranking学习作为机器学习研究的一个新方向,在信息检索、协同滤波、专家发现等领域广泛应用。Ranking学习是指通过使用机器学习技术和有标签的数据来产生一个ranking模型,它是一种新的学习,一种介于分类和回归之间的学习。
           Pointwise和Pairwise把排序问题转换成 回归 、分类或有序分类问题。Listwise把Query下整个搜索结果作为一个训练的实例。3种方法的区别主要体现在损失函数(Loss Function)上:
           •Regression: treat relevance degree as real values
           •Classification: treat relevance degree as categories
           •Pairwise classification: reduce ranking to classifying the order between each pair of documents.

           下面是两张图,第一张表示学习排序的过程,第二章是基本的实现算法。



    3. 单文档方法(PointWise Approach)

           单文档方法的处理对象是单独的一篇文档,将文档转换为特征向量后,机器学习系统根据从训练数据中学习到的分类或者回归函数对文档打分,打分结果即是搜索结果。下面我们用一个简单的例子说明这种方法。 
           图2是人工标注的训练集合,在这个例子中,我们对于每个文档采用了3个特征: 査询与文档的Cosme相似性分值、査询词的Proximity值及页面的PageRank数值,而相关性判断是二元的,即要么相关要么不相关,当然,这里的相关性判断完全可以按照相关程度扩展为多元的,本例为了方便说明做了简化。

     

      图2 训练数据

            例子中提供了5个训练实例,每个训练实例分别标出来其对应的查询,3个特征的得分情况及相关性判断。对于机器学习系统来说,根据训练数据,需要如下的线性打分函数:
            Score(Q, D)=a x CS+b x PM+cx PR+d
            这个公式中,cs代表Cosine相似度变徽,PM代表Proximity值变量,PR代表pageRank, 而a、b、c、d则是变量对应的参数。

            如果得分大于设定阀值,则叫以认为是相关的, 如果小于设定闽值则可以认为不相关。通过训练实例,可以获得最优的a、b、c、d参数组合,当这些参数确定后,机器学习系统就算学习完毕,之后即可利用这个打分函数进行相关性判断。对于某个新的查询Q和文档D,系统首先获得其文档D对应的3个特 I特征值,之后利用学习到的参数组合计算两者得分,当得分大于设定的闽值,即可判断文档是相关文档,否则判断为不相关文档。

            PS:而微软给定的数据如下
              =============================================================
                                          0 qid:1 1:3 2:0 3:2 4:2 ... 135:0 136:0 
                                          2 qid:1 1:3 2:3 3:0 4:0 ... 135:0 136:0 
              =============================================================
            其数据格式: label qid:id  feaid:feavalue  feaid:feavalue ...
            每行表示一个样本,相同的查询请求的样本qid相同,上面就是两个对qid为“1”的查询;label表示该样本和该查询请求的相关程度,该label等级划分方式为 {Perfect, Excellent,Good, Fair, Bad} 共五个类别。

    4. 文档对方法(PairWise Approach)

            对于搜索系统来说,系统接收到用户査询后,返回相关文档列表,所以问题的关键是确定文档之间的先后顺序关系。单文档方法完全从单个文档的分类得分角度计算,没有考虑文档之间的顺序关系。文档对方法则将重点转向量对文档顺序关系是否合理进行判断。

            之所以被称为文档对方法,是因为这种机器学习方法的训练过程和训练目标,是判断任意两个文档组成的文档对<D0C1,D0C2>是否满足顺序关系,即判断是否D0C1应该排在DOC2的前面。图3展示了一个训练实例:査询Q1对应的搜索结果列表如何转换为文档对的形式,因为从人工标注的相关性得分可以看出,D0C2得分最高,D0C3次之,D0C1得分最低,于是我们可以按照得分大小顺序关系得到3个如图3所示的文档对,将每个文档对的文档转换为特征向量后,就形成了一个具体的训练实例。

        

    图3  文档对的方法训练实例

           根据转换后的训练实例,就可以利用机器学习方法进行分类函数的学习,具体的学习方法有很多,比如SVM. Boosts、神经网络等都可以作为具体的学习方法,但是不论具体方法是什么,其学习目标都是一致的,即输入- 个査询和文档对<Docl,DOC2>, 机器学习排序能够判断这种顺序关系是否成立,如果成立,那么在搜索结果中D0C1应该排在D0C2 前面,否则Doe2应该摔在Docl前面,通过这种方式,就完成搜索结果的排序任务。
            尽管文档对方法相对单文档方法做出了改进,但是这种方法也存在两个明显的问题:

           一个问题是:文档对方法只考虑了两个文档对的相对先后顺序,却没有考虑文档出现在搜索列表中的位置,排在搜索站果前列的文档更为重要,如果前列文档出现判断错误,代价明显高于排在后面的文档。针对这个问题的改进思路是引入代价敏感因素,即每个文档对根据其在列表中的顺序具有不同的权重,越是排在前列的权重越大,即在搜索列表前列如 果排错顺序的话其付出的代价更高?
            另外一个问题是:不同的査询,其相关文档数量差异很大,所以转换为文档对之后, 有的查询对能有几百个对应的文档对,而有的查询只有十几个对应的文档对,这对机器学习系统的效果评价造成困难 ?我们设想有两个查询,査询Q1对应500个文文档对,查询Q2 对应10个文档对,假设学习系统对于査询Ql的文档对能够判断正确480个,对于査询 Q2的义格对能够判新正确2个,如果从总的文档对数量来看,这个学习系统的准确率是 (480+2)/(500+10)=0.95.即95%的准确率,但是从査询的角度,两个査询对应的准确率 分别为:96%和20%,两者平均为58%,与纯粹从文档对判断的准确率相差甚远,这对如何继续调优机器学习系统会带来困扰。

           PS:Pairwise方法有很多的实现,比如SVM Rank(开源), 还有RankNet(C. Burges, et al. ICML 2005), FRank(M.Tsai, T.Liu, et al. SIGIR 2007),RankBoost(Y. Freund, et al. JMLR 2003)等等。
            你通常会看到微软数据集每个Fold文件夹下有train.txt test.txt vail.text三个文件,它们分别的作用是什么呢?
            训练集--用于学习参数,比如可以训练10个不同阶的线性模型,这里得到每个特征值的权值验证集--用来选择模型,主要考虑的准则是在新的数据上的泛化能力,比如根据各个模型在验证集上的权值,选择了3阶的模型测试集--测试模型,测试这个被选中的3阶模型的表现。

    4. 文档列表方法(ListWise Approach)

              单文档方法将训练集里每一个文档当做一个训练实例,文档对方法将同一个査询的搜索结果里任意两个文档对作为一个训练实例,文档列表方法与上述两种表示方式不同,是将每一个查询对应的所有搜索结果列表整体作为一个训练实例,这也是为何称之为文档列表方法的原因。
            文档列表方法根据K个训练实例(一个査询及其对应的所有搜索结果评分作为一个实 例)训练得到最优评分函数F, 对于一个新的用户査询,函数F 对每一个文档打分,之后按照得分顺序由高到低排序,就是对应的搜索结果。 所以关键问题是:拿到训练数据,如何才能训练得到最优的打分函数?

            这里介绍一种训练方法,它是基于搜索结果排列组合的概率分布情况来训练的,图4是这种方式训练过程的图解示意。

          

    图4 不同评分函数的KL距离

            首先解释下什么是搜索结果排列组合的概率分布,我们知道,对于搜索 引擎来说,用户输入査询Q, 搜索引擎返回搜索结果,我们假设搜索结果集合包含A. B 和C 3个文档,搜索引擎要对搜索结果排序,而这3个文档的顺序共有6种排列组合方式:

            ABC, ACB, BAG, BCA, CAB和CBA,

            而每种排列组合都是一种可能的搜索结果排序方法。

            对于某个评分函数F来说,对3个搜索结果文档的相关性打分,得到3个不同的相关度得分F(A)、 F(B)和F(C), 根据这3个得分就可以计算6种排列组合情况各自的概率值。 不同的评分函数,其6种搜索结果排列组合的概率分布是不一样的。
          了解了什么是搜索结果排列组合的概率分布,我们介绍如何根据训练实例找到最优的 评分函数。图4展示了一个具体的训练实例,即査询Q1及其对应的3个文档的得分情况,这个得分是由人工打上去的,所以可以看做是标准答案。可以设想存在一个最优的评分函数g,对查询Q1来说,其打分结果是:A文档得6分,B文档得4分,C文档得3分, 因为得分是人工打的,所以具体这个函数g是怎样的我们不清楚,我们的任务就是找到一 个函数,使得函数对Ql的搜索结果打分顺序和人工打分顺序尽可能相同。既然人工打分 (虚拟的函数g) 已知,那么我们可以计算函数g对应的搜索结果排列组合概率分布,其具体分布情况如图4中间的概率分布所示。假设存在两个其他函数h和f,它们的计算方法已知,对应的对3个搜索结果的打分在图上可以看到,由打分结果也可以推出每个函数对应的搜索结果排列组合概率分布,那么h与f哪个与虚拟的最优评分函数g更接近呢?一般可以用两个分布概率之间的距离远近来度量相似性,KL距离就是一种衡量概率分布差异大小的计算工具,通过分别计算h与g的差异大小及f与g的差异大小,可以看出f比h更接近的最优函数g,那么在这个函数中,我们应该优先选f作为将来搜索可用的评分函数,训练过程就是在可能的函数中寻找最接近虚拟最优函数g的那个函数作为训练结果,将来作为在搜索时的评分函数。

           上述例子只是描述了对于单个训练实例如何通过训练找到最优函数,事实上我们有K 个训练实例,虽然如此,其训练过程与上述说明是类似的,可以认为存在一个虚拟的最优 评分函数g (实际上是人工打分),训练过程就是在所有训练实例基础上,探寻所有可能的 候选函数,从中选择那个KL距离最接近于函数g的,以此作为实际使用的评分函数。 经验结果表明,基于文档列表方法的机器学习排序效果要好于前述两种方法。

           声明:本博客摘自《这就是搜索引擎:核心技术详解》 第五章关于机器学习排序的内容。转载请说明摘自出处。
           最后希望文章对大家有所帮助吧!虽然是我转载的一篇文章,但是它真心很好,是对Learning to Rank的基础入门介绍文章,从为什么引入学习排序,到介绍三种方法。
          (By:Eastmount 2015-1-3 夜10点 http://blog.csdn.net/eastmount/

    展开全文
  • 主要原因有二: ...2.在一些场景下,即使人已经成功的分辨出基于哪些因素,使得一个结果比另一个结果的排序靠前,但依然很难构建一个机器学习系统,在单独的场景下,去拟合这些因素的权重。施加到一个机器学习
  • 链接分析算法系列-机器学习排序

    千次阅读 2016-05-18 19:22:16
    链接分析算法之:HITS算法:HillTop算法:PageRank算法: 机器学习排序:人工标注训练数据、文档特征抽取、学习分类函数、在实际搜索系统中采用机器学习模型. 文档方法:单文档方法;文档对方法;文档列表方法
  • 机器学习排序

    2018-08-16 16:01:23
    从使用的数据类型,以及相关的机器学习技术的观点来看,互联网搜索经历了三代的发展历程。  第一代技术,将互联网网页看作文本,主要采用传统信息检索的方法。  第二代技术,利用互联网的超文本结构,有效地计算...
  • 机器学习排序学习综述

    千次阅读 2014-07-25 08:42:09
    “text retrieval” 到 “基于link analysis的搜索引擎”,目前,由于机器学习和数据挖掘的技术不断成熟,利用统计模型来解决rank问题已经成为一个hot topic: Learning to Rank(排序学习指用机器学习理论解决排序...
  • 机器学习在搜索排序中应用.ppt
  • R语言进行机器学习方法及实例 机器学习的研究领域是发明计算机算法,把数据转变为智能行为。机器学习和数据挖掘的区别可能是机器学习侧重于执行一个已知的任务,而数据发掘是在大数据中寻找有价值的东西。 机器...
  • 基于ListMLE排序学习方法机器译文自动评价研究
  • 美团推荐算法实践:机器学习排序模型 文章介绍了美团推荐系统的构架和优化过程,包括数据层,触发层,融合过滤层和排序层,采用了Hbase,Hive,Storm,Spark和机器学习等技术。两个优化两点将是候选集进行融合与...
  • BAT机器学习面试1000题系列

    万次阅读 多人点赞 2017-12-14 15:19:15
    1、本文的内容全部来源于七月在线发布的BAT机器学习面试1000题系列; 2、文章中带斜体的文字代表是本人自己增加的内容,如有错误还请批评指正; 3、原文中有部分链接已经失效,故而本人重新加上了新的链接,如有...
  • 机器学习

    千次阅读 多人点赞 2018-04-18 21:01:12
    机器学习基本理论 基本术语与方法特征选择概述多目标优化问题 分类算法、经典算法 分类算法NSGA2算法粒子群优化算法(PSO)聚类算法蚁群算法(ACO)其它算法 前沿算法 NSGA2算法前沿PSO算法差分分组算法...
  • 同时,在每个算法的内部,不同item的顺序也只是简单的由一个或者几个因素决定,这些排序方法只能用于第一步的初选过程,最终的排序结果需要借助机器学习方法,使用相关的排序模型,综合多方面的因素来确定。...
  • 机器学习评价方法之NRIG

    千次阅读 2015-11-17 15:53:06
    在工业界,逻辑回归是很常用的模型,一般大家在用逻辑回归做机器学习排序或者广告预估时常用AUC来判断排序的效果,逻辑回归是概率模型,除了排序的指标之外,有时会出现AUC比较好,但是概率拟合较差(很有可能是收敛...
  • 机器学习公式推导【Day3】排序损失loss

    千次阅读 多人点赞 2020-03-04 11:40:59
    (本文为个人学习总结笔记) 排序损失loss 形式化地看, AUC考虑的是样本预测的排序质量,因此它与排序误差有紧 密联系.给定 m+m^{+}m+个正例和m−m^{-}m−个反例?令D+D^{+}D+和D−D^{-}D−分别表示正、反例集合, ...
  • 机器学习入门好文,强烈推荐

    万次阅读 多人点赞 2017-02-01 23:44:30
    本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。当然,本文也面对一般读者,不会对阅读有相关的前提要求。   在进入正题前,我想读者心中可能会有一个疑惑:机器
  • Python数据分析与机器学习实战

    万人学习 2017-01-24 10:18:45
    Python数据分析与机器学习实战教程,该课程精心挑选真实的数据集为案例,通过python数据科学库numpy,pandas,matplot结合机器学习库scikit-learn完成一些列的机器学习案例。课程以实战为基础,所有课时都结合代码演示...
  • [机器学习]机器学习资源大全中文版

    千次阅读 2018-05-27 21:10:04
    awesome-machine-learning 就是 josephmisiti 发起维护的机器学习资源列表,内容包括了机器学习领域的框架、库以及软件(按编程语言排序)。 Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果...
  • 机器学习模型评估方法

    千次阅读 2018-05-22 23:08:37
    2、数据集划分方法 2.1、留出法 2.2、交叉验证法 2.3、自助法 2.4、调参 3、性能度量 3.1、 查准率,查全率与F1 3.2、如何比较两学习器性能 3.3、ROC、AUC和EER 3.4、代价敏感错误率 4、比较检验 4.1、...
  • 关于机器学习特征选择的方法总结

    千次阅读 2019-09-12 14:51:46
    机器学习特征选择的方法总结 1.特征选择的重要性 随着深度学习的发展, 大大缩减了特征提取和设计的任务。 不过, 特征工程依然是各种机器学习应用领域的重要组成部分。其中对于特征选择(排序)的研究对于数据科学...
  • 机器学习简介

    万次阅读 2018-10-17 10:09:40
    在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步...
  • 使用python+机器学习方法进行情感分析(详细步骤)

    万次阅读 多人点赞 2016-08-18 17:09:01
    机器学习方法精确度更高,因为词典匹配会由于语义表达的丰富性而出现很大误差,而机器学习方法不会。而且它可使用的场景更多样。无论是主客观分类还是正负面情感分类,机器学习都可以完成任务。而无需像词典匹配...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,100
精华内容 50,440
关键字:

机器学习排序方法