探究LTR学习排序各方法的优劣性_第1页
探究LTR学习排序各方法的优劣性_第2页
探究LTR学习排序各方法的优劣性_第3页
探究LTR学习排序各方法的优劣性_第4页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、探究LTR(学习排序)各方法的优劣性班级12052311学号12051238姓名XX2015.05.30前言随着互联网的快速发展,大数据时代的来临,如何对数据进行高效的分类和检索成为了一个重要的研究课题。现如今,我们网上在寻找资料的时候,一定会使用各式各样的搜索引擎。一个好的搜索引擎,能够让用户很方便快捷的找到需要的答案。那么,影响搜索引擎搜索速度和准确度的关键点在哪呢?我们都知道,搜索引擎的工作原理:先由网页爬虫抓取到足够多的网页;再处理这些网页,例如,提取关键字,建立索引库和索引等;然后是根据用户输入的查询条件,在索引库中快速的检出文档;最后是最关键的一步,搜索引擎中的评分函数(ranki

2、ngfimction)会对每一个检出的文档进行打分,然后根据打分的结果,对这些文档进行排序,最后呈现在用户面前的,就是一个和查询条件的相关性从高到底排列的查询结果。在最后一步中,排序的结果严重影响着用户的查询体验。我们都使用过搜索引擎,而且都会有一个习惯,对于搜索引擎返回的几十页数据,我们只会点开前几页的搜索结果,而往往是这前几页的结果,几乎完全决定着一个搜索引擎的好坏。在搜索引擎的演变过程中,出现过很多排序方法,例如传统的人工打分排序,现在的Pointwise单文档方法,Pairwise文档对方法,Listwise文档列表方法。而在这些方法中,Listwise依靠它的高性能,成为了现代搜索引

3、擎领域研究的主流的排序方法。现如今,人们还在不断寻找更好的模型和文档评价标准,来进一步提高Listwise方法的排序效率。那么到底是什么原因让Listwise方法相较于其他方法有如此高的先进性,以及该方法现在的瓶颈有哪些,下而,我便开始探究。主题传统的排序方法比较简单,通过构造一个打分函数,该函数通过各个文档和用户查询的相关度差异,对文档进行排序。而影响相关度的因素有很多,例如查询词在文档中的词频信息,查询词的IDF信息等等,而这些影响因数构成了打分函数的参数,对于传统的排序模型(人工标注训练数据),如果参数过多,会使得经验方法的调参非常困难。既然人工不行,于是,人们很H然的想到用机器学习来解

4、决这个问题。因此,就产生了我们要讨论的学习排序(LeamingtoRank)。目前,学习排序方法分为3种:单文档方法、文档对方法和文档列表方法。单文档方法比较简单,该方法就像是知道两个点的坐标,确定一条直线的函数关系式一样。对于一条查询query,与其相关的文档集合为:©,超,,dn,然后,对这n个(queiy,4)直询-文档对抽取特征并表示成特征向量,这里用X,YZ表示抽取出的3个特征向最。然后对于“曲线函数"Score(q,d)=aX+bY+cZ+d,我们可以规定Score大于一个阀值时,认为是相关的。带入变量X,YZ,由这些训练数据,可以确认出最优的常量a,b,Gd。

5、到此,机器学习就结束了,打分函数也确定了。以后,对于新的查询和该查询的相关文档,我们就能用确定出来的打分函数来判断杳询和文档的相关性。但是,这种方法有很大的局限性,因为对于不同的查询,他们的查询-文档对的特征向量可能相同,但他们的Score阀值却是不同的,就像是一个点,它位于两条线的交点上,虽然两条线上都能确定这个点,但是点在两条线上的含义却是不一样的。例如:点在a线上代表着年龄标准,而在b线上却代表着身高标准。所以,这种方法是有前提的,它假设所有的相关度是查询无关的,但事实说明了,并非如此。而且,对于Score相同的文档,也无法进行排序。文档对方法则完全对同一个查询里的文档集生成训练样本,它

6、的主要思想是将Ranking问题形式化为二元分类问题。之所以被称为文档对方法,是因为这种机器学习方法的训练过程和训练目标,是判断任意两个文档组成的文档对vDOCl,D0C2是否满足顺序关系,即判断是否D0C1应该排在DOC2的前面。根据人工标注的相关性得分,我们可以按照得分大小顺序得到相应的文档对,将每个文档对的文档转换为特征向量后,就形成了一个具体的训练实例。然后再由学习方法对这些实例进行学习。具体的学习方法有很多,在此就不赘述了。虽然文档对方法不对相关度做独立假设,但这种方法仍存在功能上缺点:(1).这种方法只考虑了两个文档之间的相对位置,判断谁在谁的前面,并不考虑文档在文档列表上的位置。

7、而在前言中我们说过,月户只会对搜索结果的前几页数据进行查看,这需要我们对文档列表的前几页高相关性的文档再做更好的区分。(2).不同查询的相关文档集的大小也会影响排序模型的构建结果,例如,a查询只有10条相关文档,而b查询有10000条相关文档,那么模型几乎会忽略掉a的10条文档,使得模型对a杳询的区分度不高。还有一个重要的因素也会影响文档对方法的排序性能。以RankingSVM为例,它优化的目标是使得正负样本之间Margin最大,而并非以排序性能为优化目标。就像BP神经网络以训练误差为目标优化函数,从而使得它很容易过拟合。优化目标本身的差异将导致模型本身的功能偏置。于是,基于这个特性,人们提出

8、了文档列表的方法。文档列表方法和单文档方法有些类似,但它的特别之处在于它是将一个查询对应的所有搜索结果列表整体作为一个训练实例。该方法是根据n个训练实例训练得到最优评分函数,对于一个新的查询,函数会给每一个文档打分,之后根据打分结果排序。那么到底怎么样才能获得这个最优的打分函数呢?首先,我们根据人工打分的方式,对部分样本集进行打分,得到一个“正确”的打分函数g,那么我们要做的工作就是找到一个函数,使得该函数对搜索结果的打分情况和函数g的打分情况相似,然后不断迭代更新参数值,使得两者的差异更小。接下来的问题就是如何来判断两个函数的打分情况的接近程度?一种方法是抽取两种排序的分值向量,求它们的余弦

9、函数值,值越接近1,说明求得的该函数的打分情况和函数g的打分情况越接近。另一种方式是ListNet算法使用的正确排序与预测排序的排列概率分布之间的KL距离(交叉燧)作为判定依据。那么Listwise方法现有的这些尊法的问题出在哪呢?问题就在每次迭代更新参数的时候。我们都知道,现在是一个大数据时代,算法每一次的迭代都要从第一个查询遍历到最后一个查询,这是很可怕的一件事情,这使得算法的运行时间完全依赖于训练集的大小。有的时候,数据会大到无法一次性读入内存,这个时候,该些算法就不适用了。针对这个问题,我们可以寻找一个这样的解决方案,让算法每次更新参数的时候不必遍历整个训练集。所以,我们可以寻找一个新的算法模型例如SVM、神经网络模型等,或者新的训练算法来减少迭代遍历的时间或者次数。总结在这篇文章中,我大概地叙述了自己对现有的LTR方法的理解,描述了它们各自的优缺点,以及在现有的LTR方法中,最具先进性的方法Listwise的改进方向和意见。由于本人对各类算法的认知程度有限,无法更具体的谈及如何改进,希望在以后的学习中对此会有更深刻的认识。参考文献1 .一种基于随机梯度下降的ListNet排序算法(郑悦浩)2 .漫谈LearningtoRank(JiangFeng)p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论