本文原作者:彭江军,经授权后发布。
原文链接:https://cloud.tencent.com/developer/article/1527336
导语
在搜索排序概述里面说到搜索排序算法的发展的第二个阶段Learning to rank (LTR) 的时候就已经提到了机器学习,还整出了哲学词:审时度势。 在这里接着对机器学习的概念以及一般化的结构做一个系统的简略的描述,并看看机器学习的结构是如何适配搜索排序这个问题的。 机器学习这个概念很多同事都知道,但这里为了完整性,为了便于其他不太了解机器学习的同事做一个简短的复述。
1:人工智能与机器学习
一般人眼中的人工智能可能是左图的机器人,炫酷科技感十足。但是在做算法的眼中,人工智能其实就是机器学习。机器学习通俗来讲,就是从一堆数据中去构造训练数据,通过模型或者算法来构造黑匣子,从而实现对新数据的预测。
2:什么是机器学习
要弄清这个问题就需要弄清楚图里面的三个问题
要学什么
代表了我们学习的目的,是我们的目标。在有多个优化目标时,分清主次很重要。
从哪里学
代表了我们学习的训练数据。有一句话特征决定了任务的上限,模型只是去想方设法逼近这个上限。好的数据源可以为机器学习任务提供富有表现力的特征。
左图代表了一般的分类任务的数据形式,好的样本和对应的标注。右边是视频搜索排序的例表及其对应的label,数值的大小代表了这些单视频的好坏。这样就可以构成一次搜索下的视频排序列表的训练数据。
怎么去学
代表了学习器。即根据我们的经验觉得应该选取那种模型(DNN,树模型,线性模型,logistic分类回归)能比较好的学习这些数据里面feature之间的组合形式(第一章节里面写到的度势)。
3:机器学习一般框架
根据2,我们就得到机器学习
机器学习的任务那就很自然的变成了下面的三要素了
对应在搜索排序上面,就是要确定决策函数,训练数据,模型选择三个模块。
确定优化的目标是什么?在有多个目标的时候,是该选择其中最重要的一个,还是说需要多目标优化,有的时候往往是不可能同时满足的。比如说既要点击率,又要长点击率,又要最大限度加大用户的观看时长。往往不能保证都能在一个模型得到最大限度的提高。这一块和不同的场景的决策不一样,不在这个里面进行更细的阐述。
训练数据的选择?选择的训练数据的分布和线上的是不是一致是需要着重考虑的事情。训练数据的构造选择会留在下一章节中单独去讲。
模型的选择上,最流行的不一定是最适合的,背后的原因可能和实现的难度,数据的分布等等都有关系。在我们的模型主要考虑DNN和树模型。这一部分会在后面的模型的经验章节细致的去展开。
4:视频搜索排序的机器学习流程
结合最近的一个项目来做阐述。
4.1:背景
为了更好的提供优质的搜索排序体验,搜索团队希望提高用户搜索的点击和长点击以及观看时长等指标,以此作为优化的方向。
4.2: 训练数据的构造
收集搜索的日志,清洗筛选得到训练数据集,以用户的行为反馈(点击,长点击,不点击)作为因变量。这部分体现了机器学习三问中从哪里学的part,是数据层面上的。
4.3:确定训练目标
最好的结果是每个都能有很大的提升,但是实际上可以融合起来优化,每个的提升都不是最明显,这一块必须做一些取舍。前面说过,这一块极其重要,因为它直接决定了优化的方向。这部分体现机器学习三问中的决策函数和怎么怎么去学这两部分的part。
4.4:对齐指标
模型的训练最终的目的是为了预测。由于实际问题比较复杂,基于离线数据的预测可能和线上的对不齐,导致线下指标好的线上的转化率,点击率可能不好。因此对齐线上线下的指标也是很重要的一个环节。
历史系列文章: