认识机器学习排序LTR

对工程师来说人工智能(AI)是很酷炫的,就像宇宙飞船和科幻小说也很酷一样。机器学习和人工智能吸引了非常多的关注。一些IT巨头如IBMIntel,已经实施了整套市场宣传,促使这些研究领域的实践日益增长。这继续很酷炫科幻吗?这些增长现在能合理地用于增强我们的应用吗?

学习排序技术把机器学习带进了搜索引擎的世界,这既不是魔术也不是小说。在新的较小的应用案例潮流的风口浪尖,允许一个现成的类库实现来满足用户预期。

什么是相关度工程?

搜索和探索非常适合应用机器学习技术。相关度工程是指识别文档集中针对这些文档的用户最重要的特征,并使用这些特征来优化搜索引擎,从而为每个用户的每次搜索返回最佳匹配文档的过程。简单重申下一个搜索引擎的工作过程:在索引阶段文档被解析成短语,这些短语随后会被插入到下图所示的索引中:

认识机器学习排序LTR

在搜索阶段,单个查询也被解析为短语。搜索引擎随后从倒排索引中检索这些短语,对匹配的文档做排序,抽取出跟这些文档最关联的文本,并返回排序后的结果给用户,如下所示:

认识机器学习排序LTR

根据文本短语识别最佳特征,是一个基础性难题。所有的书籍和博士生都在研究求解该问题。(厚颜推荐下我们的书《相关度搜索》6!)现在考虑一个销售记录:

ID Title Price 1 Blue shoes $10 2 Dress shoes $15 3 Blue dress $20 4 Red dress $40

作为人类,我们直觉上知道在文档2里,‘dress’是一个描述鞋子的形容词,而在文档3和4中,‘dress’是一个名词,是类目中的一项。作为一个相关度工程师,我们可以构建一个信号量来猜测用户在搜索‘dress’时究竟希望是形容词还是名词。即使通过谨慎的手工分类,文本短语也是一个内容上的细微差别的不完美的呈现。

机器学习排序起源

来自Wikipedia的定义

学习排序或机器学习排序(MLR)是指应用机器学习为信息检索系统构建排序模型。通常通过一个二次排序函数实现。

这表示,并非使用一个机器学习模型替代搜索引擎,我们通过一个额外的步骤来扩展下流程。在查询到达索引后,该查询的最佳结果会被导入模型,并在返回用户前重新排序,如下图示:

认识机器学习排序LTR

为什么要分两部分完成?为什么不能使用模型完全替代搜索引擎?

认识机器学习排序LTR

搜索引擎通常有两个评价标准:召回率,即相关文档在结果集中返回的比例;精准率,即结果集中相关文档的比例。作为相关度工程师,为文档构建信号量,让搜素引擎返回所有重要结果,与优先返回最佳文档相比通常没那么难。直觉上,通常可能会通过简单地返回更多文档来提升召回率。但是对于一个普通用户,如果更好的结果不在列表的最开头,那就并没有什么提升。

机器学习如何介入到这个过程?回到我们的Wikipedia定义

机器学习是计算机科学的一个分支领域,让计算机能够在未明确编程的前提下学习。源于模式识别研究和人工智能方面的计算学习理论的发展,机器学习重在挖掘研究和构建能从数据中学习并作出决策的算法。

机器学习不是魔法,相比于人类理解词汇也并不智能。对于实践中的工程问题,需要提供一个训练数据集:我们想让机器去学习的数值模式的数值得分。事实证明,构建一个精确的训练数据集并不容易,并且对于很多现实中的应用,构建训练数据成本极高,即使使用优化算法。因此,如果搜索引擎在召回率方面已经挺好的了,就无需再收集数据来训练模型了;只需要在排序方面训练模型,或者在结果集中对文档重排序即可。

认识机器学习排序LTR

认识机器学习排序LTR

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a0079dfb3a0aceb5fc0e48b4f5036eeb.html