学习排序Learning to Rank之RankNet

       今天给大家介绍一个Learning to Rank系列算法中的一个:RankNet。

       先简单地简介一下Learning to Rank是什么玩意吧~从名字“学习排序”来看,估计大家也已经基本明白它是干什么的了,它就是去从Training Set中学习出一个排序的规则,通常来说是学习一个打分函数(Scoring Function),还是举个实例的例子吧,我一向喜欢举例子说明问题得意Learning to Rank最常用的地方就是搜索引擎,那就举一个搜索引擎的例子,假设一个搜索引擎已经投入使用一段时间了,有了大量用户搜索、点击的数据,这些数据能在某种程度上反映出当前搜索引擎的排序效果的好坏,为什么呢?大家想,如果搜索引擎搜索出来的结果非常准确,能把最相关的结果排在第一位,或者前几位,如果从这些数据里发现,用户经常点击的不是排名前几的搜索结果,那么就说明排序排得不好,那么怎样的排序才是好的?其实用户已经告诉你了,从用户搜索、点击的数据中就能得到答案,对于某个搜索结果列表,一般来说,用户点击得越多,这个网页就和搜索越相关,于是就越应该排在前面,那如何让机器自动从这些数据中去学习,来改善当前的排序模型呢?这就是Learning to Rank所要做的事情,而在这里,Training Set就可以从用户搜索、点击的数据中构造出来~

       注意,机器学习算法是有泛化能力的,所以不要以为“改善当前的排序模型”就只会针对Training Set中的搜索来改善,而对Training Set中没出现的搜索就没有影响。实际上,它能从Training Set学习,并用在未知的搜索中,这和人的学习过程是很像的,比如给你看了很多台电脑,告诉你之个东西叫电脑,再给你看一台你没见过的电脑,你基本上也能知道它是电脑,为什么?因为你的学习具有泛化能力,你学习到了电脑的特征,就利用这些特征去识别出了新的电脑,虽然它与你之前看过的任何一台电脑都不相同。

        灯灯灯灯~下面正式介绍RankNet,名字中的Net是指神经网络,RankNet以利用神经网络来训练的,关于神经网络的资料,如果大家不嫌弃,可以参考我的另一篇博文:BP神经网络

        好了,首先说说RankNet的Training Set。

        RankNet是一种Pairwise的Learning to Rank算法,什么叫“Pairwise的”?这是从Training Set的角度来说的,它的Training Set是Pairwise的,也就是对于一个查询,会给出一个Pair,然后Label就是这个Pair中哪一个与查询更相关,这个Label可以是Binary的,也可以不是,例如在RankNet中,它的Label可以是这个Pair中一个结果比另一个结果与查询更相关的概率。似乎又有点绕了。。。来个例子吧得意比如搜索是“CSDN”,Pair是<CSDN首页,CSDN_百度百科>,那么因为对于“CSDN”这个搜索,显然“CSDN首页”是比较相关的的,于是这个Pair的Label可以是1,当然也可以是非Binary的,前提是有合理的办法获得这个非Binary的值,例如从用户搜索、点击的数据中挖掘出来,比如Label是0.9,就可以表示对于搜索“CSDN”,CSDN首页”比“CSDN_百度百科”与搜索更相关这种说法可靠的概率是0.9,或者说置信度是0.9。对于一个搜索,可以有很多个Pair,

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值