学习排序算法(一):单文档方法 Pointwise

学习排序算法(一):单文档方法 Pointwise

1. 基本思想

这样的方法主要是将搜索结果的文档变为特征向量,然后将排序问题转化成了机器学习中的常规的分类问题,并且是个多类分类问题。

2. 方法流程

Pointwise方法的主要流程例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHVxdXRvZ2V0aGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

我们能够看出。整个流程分为三部分:提取特征做训练;分类算法学习;測试query排序。

我们能够把ranking量化成多个标记。比方{perfect,Excellent,good,fair,bad}。

然后每一个文档相应一个分类标记,这样就成了标准的分类问题形式了(样本特征-类别标记)。

网上给出了一个案例。例如以下:

此时。我们就能够用机器学习中的分类算法来学习。

怎样对測试query的搜索结果排序呢?非常easy。我们提取这些搜索结果文档的特征,然后对学习到的模型分类。分类之后依照标记进行排序~

3. 优缺点分析

  • 属于同一类的文档之间无法排序;
  • 全然从单文档的分类角度计算,没有考虑文档之间的相对顺序。
时间: 2024-08-10 15:40:24

学习排序算法(一):单文档方法 Pointwise的相关文章

MFC学习(七) 单文档程序

1 MFC单文档程序的主要类 (1)文档类(Document) 即应用程序处理的数据对象,文档一般从 MFC 中 CDocument 中派生.CDocument 类用于相应数据文件的读取以及存储 Cview 类所需要观察和处理的信息. (2)视类(View) 视相当于文档在应用程序中的观察窗口,它确定了用户对文档的观察方式和用户编辑文档的方式.对于图形来说视就好比我们进行绘图工作的画布,对图形的操作都是在视上进行的.另外,视类中有一个重要的成员函数 OnDraw() 函数.重载的 OnDraw(

学习排序算法简介

学习排序算法简介 学习排序(Learning to Rank, LTR)是一类基于机器学习方法的排序算法. 传统经典的模型,例如基于TFIDF特征的VSM模型,很难融入多种特征,也就是除了TFIDF特征之外,就无法融入其他种类的特征了. 而机器学习的方法很容易融合多种特征,而且有成熟深厚的理论基础,参数也是通过迭代计算出来的,有一套成熟理论来解决稀疏.过拟合等问题. LTR方法大致可以分成三类: 1) Pointwise 单文档方法 2) Pairwise 文档对方法 3) Listwise 文

学习排序算法(二):Pairwise方法之Ranking SVM

学习排序算法(二):Pairwise方法之Ranking  SVM 1. Pairwise方法的基本思想 Pairwise考虑了文档顺序的关系.它将同一个query的相关文档其中起来,把任意两个文档组成一个pair.我们研究就是以这个pair文档对来研究的. 2. Ranking SVM 在测试的时候,我们就把一个query的所有结果先构建所有可能的pair,然后输入到学习到的模型中,得到每个pair的相对顺序.根据推算就可以得到所有搜索结果的排序了. 典型的Pairwise方法就有rankin

学习排序算法(二):Pairwise方法之RankNet

学习排序算法(二):Pairwise方法之RankNet 前面一篇博文介绍的Ranking SVM是把LTR问题转化为二值分类问题,而RankNet算法是从另外一个角度来解决,那就是概率的角度. 1. RankNet的基本思想 RankNet方法就是使用交叉熵作为损失函数,学习出一些模型(例如神经网络.决策树等)来计算每个pair的排序得分,学习模型的过程可以使用梯度下降法. 2. 方法流程 首先,我们要明确RankNet方法的目的就是要学习出一个模型,这个模型就是给文档算法的函数f(d, w)

MFC:“Debug Assertion Failed!” ——自动生成的单文档程序项目编译运行就有错误

今天照着孙鑫老师的VC++教程学习文件的操作,VS2010,单文档应用程序,项目文件命名为File,也就有了自动生成的CFileDoc.CFileView等类,一进去就编译运行(就是最初自动生成的项目),编译通过,可运行时直接弹出错误框,有点小懵,,,啥都没做就给我看这个: 图一   错误提示框 后来搜索一查,网上好多类似的错误以及解决方案,几乎都试了个遍,有: 方法(1)-重新生成解决方案,或者将项目文件目录下Debug文件夹删了,重新生成Release版: 方法(2)-可以先声明一个临时的C

在单文档中显示我的第一个对话框

在单文档中显示我的第一个对话框 (2010-04-19 21:19:50) 转载▼ 标签: it   今天编写了在单文档中创建对话框以及调用对话框的代码,收获很多: 1:OnInitDialog函数的加载问题尤其是在VS上的加载:(这一点花了很长时间才查到资料) OnInitDialog()函数是个virtual(虚函数),在它的类中用添加虚 函数的方法,会发现添加的虚函数里面没有这个函数,而这个 OnInitDialog函数是很有用的,在一般的添加进去的对话框的类中 是不会有这个函数的,必须手

英文VS2010安装中文版MSDN文档方法

英文VS2010安装中文版MSDN文档方法 2010-06-01 11:52 by 李永京, 51409 阅读, 50 评论, 收藏, 编辑 在2010年4月12号发布Visual Studio 2010 and .NET 4正式版.5月26日微软发布了Visual Studio 2010 and .NET 4 RTM中文版,我们还是喜欢使用英文版本VS2010,但是想安装中文版MSDN文档学习下新东西. 发现我们使用Help Library Manager指向cn_visual_studio_

VC项目开发之单文档多视图实现-非分割窗口[转]

k_eckel:http://www.mscenter.edu.cn/blog/k_eckel 多视图是VC开发中经常要用到的技术之一,一般地实现单文档多视图有两种方式 1)通过视图分割的技术(使用CSplitterWnd实现),将窗口分割为多个部分,每个部分显示各自显示不同的视图,这种技术实现起来比较简单,并且相关的资料也很多. 2)通过一个文档关联多个视图,窗口显示整个视图. 第二种实现较第一种复杂,这里给出详细的实现方法. Step 1:使用VC 6.0新建一个Project,命名为:Mu

openGL三维网格坐标,旋转,缩放,灯光设置,纹理读取,模型读取(MFC单文档)

最近学习计算机图形学写的基于opengGL的作业 源码下载链接:链接:http://pan.baidu.com/s/1slANShZ 密码:hbwj 1.三维网格坐标建立 2.基本3维图形创建 3.鼠标相应旋转缩放 4.键盘相应旋转缩放 5.灯光设置 6.纹理载入映射 7.读取模型 关于MFC配置编写openGL网上有很多教程 需要的函数创建一般是: OnCreat() OnDestroy() Onsize() PreCreateWindow() OnDraw() 在我的MFC单文档项目中ena