作家
登录

轻松入门机器学习排序LTR之:线性模型

作者: 来源: 2017-10-24 09:09:22 阅读 我要评论

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!


很多搜刮达人都有如许一种冲动,想要“经由过程机械进修获得最优权重”然后用于搜刮萌芽中。对于搜刮这件事儿来说有点像打地鼠游戏,正如平日人们所说的“如不雅我能选择优化‘标题匹配’的权重照样‘内容匹配’的权重,那我肯定会做得更好”!

我们经由过程这些系数可以建立本身的排序函数。做这些只是为了描述目标,sk-learn 的线性回归带有猜测办法,能评估作为输入的模型,然则构建我们本身的更有意思:

这种进修何种权重应用于萌芽的本能,就是最简化机械进修排序(learning to rank,LTR)模型的根来源基本理:线性模型。没错,就是传说中的线性回归!线性回归异常简单易用,甚至感到一点儿都不像是机械进修;更像是高中生的统计学一样,懂得该模型及其道理也异常地轻易。

本系列文┞仿中,我想先介绍成功实施 LTR 背后的关键算法,大年夜线性回归开端,慢慢到梯度 boosting(不合种类的 boosting 算法一路)、RankSVM 和随机丛林等算法。

LTR 起首是一个回归问题

对于本系列的文┞仿,正如你在前一篇及文档中懂得到的,我想把 LTR 映射为一个加倍通用的问题:回归。回归问题须要练习一个模型,大年夜而把一组数值特点映射到一个猜测数值。

举个例子:你须要什么样的数据才能猜测一家公司的利润?可能会有棘手边的汗青公共财务数据,包含雇员数量、股票价格、收益及现金流等。假设已知某些公司的数据,你的模型经由练习后用于猜测这些变量(或其子集)的函数即利润。对于一家新公司,你可以应用这个函数来猜测该公司的利润。

LTR 同样是一个回归问题。你手头上有一系列评价数据,来衡量一?文档与某个萌芽的相干度等级。我们的相干度等级取值大年夜 A 到 F,更常见的情况是取值大年夜 0(完全不相干)到 4(异常相干)。如不雅我们锾戾酌一个关键词搜刮的萌芽,如下示例:

  1. grade,movie,keywordquery  
  2. 4,Rocky,rocky  
  3. 0,Turner and Hootch,rocky  
  4. 3,Rocky II,rocky  
  5. 1,Rambo,rocky  
  6. ...  

当构建一个模型来猜测作为一个时光旌旗灯号排序函数的等级时,LTR 就成为一个回归问题。 相干度搜刮中的┞焚回,即我们所说的旌旗灯号,表示萌芽和文档间关系的随便率性度量;更通用的名称叫做特点,但我小我更建议叫经久旌旗灯号。原因之一是,旌旗灯号是典范的自力于萌芽的——即该结不雅是经由过程度量某个关键词(或萌芽的某个部分)与文档的相干程度;某些是度量它们的关系。是以我们可以惹人其他旌旗灯号,包含萌芽特有的或者文档特有的,比如一篇文┞仿的揭橥日期,或者一些大年夜萌芽采掏出的实体(如“公司名称”)。

来看看膳绫擎的片子示例。你可能困惑有 2 个依附萌芽的旌旗灯号能赞助猜测相干度:

  1. grade,numTitleMatches,numOverviewMatches  
  2. 4,1,1  
  3. 0,0,0  
  4. 3,0,3  
  5. 1,0,1  

你可以像线性回归一样应用回归流程,大年夜而经由过程其他列来猜测第一列。也可以在已有的搜刮引擎像 Solr 或 Elasticsearch 之上来构建如许一个体系。

我躲避了一个复杂问题,那就是:若何获得这些评价?若何知道一个文档对一个萌芽来说是好照样坏?懂得用户分析?专家人工分析?这平日是最难解决的——并且是跟特定范畴异常相干的!提出假设数据来建立模型固然挺好的,但纯属做无用功!

线性回归 LTR

如不雅钠揭捉?过一些统计学,可能已经很熟悉线性回归了。线性回归把回归问题定义为一个简单的线性函数。比如,在 LTR 中我们把上文的第一旌旗灯号(一个搜刮症礁绞糈标题属性中出现过若干次)叫做 t,第二旌旗灯号(一个搜刮症礁绞糈摘要属性中出现过若干次)叫做 o,我们的模型能生成一个函数 s,像下面如许对相干度来打分:

我们能评估出最佳拟合系数 c0,c1,c2 等,并应用最小二乘拟合的办法来猜测我们的练习数据。这里就不赘述了,重点是我们能找到 c0,c1,c2 等来最小化实际等级 g 与猜测值 s(t,o) 之间的误差。如不雅复习下线性代数,会发明这就像简单的矩阵数学。

应用线性回归你会更知足,包含决定计划确切是又一个排序旌旗灯号,我们定义为 t*o。或者另一个旌旗灯号 t2,实践一一般定义为 t^2 或者 log(t),或者其他你认为有利于相干度猜测的最佳公式。接下来只须要把这些值作为额外的列,用于线性回归进修系数。

任何模型的设计、测试和评估是一个更深的艺术,如不雅欲望懂得更多,强烈推荐统计进修概论。

应用 sklearn 实现线性回归 LTR

LTR 的入门模型就是线性模型,本文以线性模型为例,针对搜刮排序的场景,通俗地介绍了机械进修的根本思惟和实现步调。作为 LTR 系列的第三篇,信赖经由过程本文你已经可以轻松地入门 LTR。

为了更直不雅地体验,应用 Python 的 sklearn 类库来实现回归是一个便捷的方法。如不雅想应用上文数据经由过程线性回归测验测验下简单的 LTR 练习集,可以把我们测验测验的相干度等级猜测值记为 S,我们看到的旌旗灯号将猜测该得分并记为 X。

我们将应用一些片子相干度数据测验测验点有趣的工作。这里有一个搜刮关键词“Rocky”的相干度等级数据集。召回我们膳绫擎的评判表,转换为一个练习集。一路来体验下真实的练习集(注释会赞助我们懂得具体过程)。我们将检查的三个排序旌旗灯号,包含标题标 TF


  推荐阅读

  Windows 10系统怎么让桌面图标消失?如何隐藏桌面图标?

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 若何隐蔽桌面搁笔?若是你还在费劲的删除桌面文件和桌面搁笔,不如尝尝将桌面搁笔完全隐蔽吧,如许才不会湮没>>>详细阅读


本文标题:轻松入门机器学习排序LTR之:线性模型

地址:http://www.17bianji.com/lsqh/38099.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)