编辑导语:在上一篇文章中,作者介绍了关于召回排序的场景特征、异同及目标的一致性问题,《广告系列:召回与排序》;本文作者将继续分享关于召回排序时涉及的一些机器学习知识,我们一起来了解一下。

召回排序需要在大海捞针选出来合适的候选,最简单的挖掘方法是基于策略规则的;如匹配用户标签和广告标签、匹配上下文关键词和广告关键词一致就召回,规则简单直白解释性好,调整起来速度也快。
但随着业务发展场景复杂化,新规则的持续叠加会导致策略间的冲突和维护成本不断上升,所以此时机器学习闪亮登场。
机器学习主要分为两大类:有监督和无监督。
- 有监督学习:训练数据有标记信息,通过训练数据希望获得到从输入空间到输出空间的映射关系,主要代表有分类和回归,分类又分为二分类与多分类;召回排序场景下主要是利用有监督学习,即召回排序的结果通过用户行为来标记是否被点击和转化。
- 无监督学习:没有标记数据,只有输入空间研究输入空间各特征之间的关系,主要的代表有聚类和降维;无监督学习利用海量数据预训练为有监督学习奠定基础,加快了收敛速度并提升了效果,下面围绕有监督学习展开。
机器学习包含以下几个主要概念:
- 输入空间:也叫属性空间,将影响结果的因素通过处理提取成特征,所有特征共同组成属性空间。
- 输出空间:也叫标记空间,样本的真实结果就是标记,所有标记组成标记空间。
- 真相:数据中实际蕴含的内在规律和分布结构。
- 假设空间:针对真相提出了某种假设,用假设来拟合真相,所有假设构成假设空间,机器学习的过程也是在假设空间中搜索的过程。
机器学习是根据已知(数据)去训练假设模型,训练就是不断优化模型的过程,当损失函数最小时对真相的拟合达到**,此时去预估结果。大概流程如下所示:
1)问题建模
把实际场景中遇到的问题转化为机器学习可以预估的问题。
召回转换为大型多分类问题:将广告池中每个候选都当做一个分类,基于当前用户/场景为用户在全量广告中预估下一次展示的类别,通过softmax输出的相关度来判断召回。
排序转换为二分类问题:广告排序以ecpm为标准(ecpm=1000*pctr*pcvr*bid),需要精准预估点击率/转化率,通过sigmoid输出点击率/转化率的预估值(广告和推荐在预估pctr/pcvr时也有区别:广告需要精准的值用以排序/计费,推荐更多的需要相对顺序:相关候选的值大于不相关的值,损失函数构造一般用pairwise方法)。
2)采样训练数据
样本代表总体训练模型,所以需要尽可能做到无偏,理想状态二者是服从同一个分布,其中负样本的选取很关键,尤其是召回环节需要结合实际场景。
3)特征提取和选择
特征工程流程上介于原始数据和模型之间,负责从原始数据中提取有效特征供模型使用,传统的机器学习对特征工程依赖度很高,构造一个有效特征对模型性能提升有很大帮助;优秀的特征工程即使使用简单模型也能达到很好的性能,当然需要很强的专业知识,深度学习的兴起在一定程度上承担了部分特征组合的工作。
4)模型选择
选择模型从某种意义上确定了假设的范围,反映了某种偏好。选用LR认为特征与标记之间的关系相对简单可以直接通过特征工程获得影响结果的因素,选用DNN则是高阶特征组合对结果产生主要影响。
选择模型需要经验,同时熟悉模型特性和预估问题的场景,太简单容易导致欠拟合,不足以表征真相,偏差高;太复杂容易导致过拟合,模型学习了样本特征当做全体特征,方差高,针对前者可以增加模型复杂度来解决,针对后者可以借助增加样本量级或引入正则项等方法缓解影响。
目标函数的设置也很关键,需要紧密结合实际场景中的业务指标,使二者之间尽量正相关,模型优化才能给线上业务带来切实的提升。
5)构造损失函数
模型的预估值与真实标记之间必然存在偏差,通过损失函数来获得参数优化的方向;回归问题的损失函数多采用均方误差,分类问题的损失函数多采用交叉熵。
6)训练/优化
随机梯度下降是模型训练中常用的方法,在最小化损失函数L(f,y)过程中,通过对函数求偏导结合步长不断修正参数的值,当损失函数达到最小或者迭代次数达到阈值时停止训练,认为此时假设与真相足够贴近,将参数值带入目标函数进行测试。
7)性能评估
通过训练后需要在测试集验证模型性能。测试集代表了新样本,并假设与实际场景中样本服从同一个分布,所以用测试误差来代表泛化误差。
一般通过留出法、交叉验证法或自助法等来获得测试集;实际评价时通过混淆矩阵计算获得查准率和查全率,绘制P-R曲线计算曲线下方面积或者F1来比较模型性能,也可以通过ROC曲线计算AUC来判断,面积更大者表示性能更优,代表模型处理新样本的泛化能力更强。
8)线上AB测试
线下测试通过后模型上线,前面说到训练数据与线上数据尽可能接近,但避免不了有偏差,为减少波动在模型大规模铺量前需要AB测试;借助实验平台可以小流量试用新模型,线上指标如ECPM/点击率/转化率等超过线上版本后开始大规模放量运行。
上面简略概述了使用机器学习预估问题的流程,从问题建模到最终线上测试涵盖多个方面,召回与排序的技术实现也是个发展的过程从策略规则到机器学习;由简单到复杂,将一个不可再分的点扩展成一个系统,借助内部复杂的结构来刻画真相,这既是业务的实际需要也是技术发展的潮流。
前面简要介绍了召回与排序时使用机器学习的整体流程,下面主要介绍对样本数据和特征提取的理解,其中参考了美团机器学习实践,感兴趣的同学可以自行搜索。
一、样本数据
样本选取是机器学习的前置环节,指从全量数据中选出一部分作为样本来训练模型,采样的比例和方法很重要;进行采样主要出于计算效率和有效信息量的考虑,样本集细分为训练集、验证集和测试集,其中训练集用于训练模型,验证集用来学习超参,测试集用来测试模型的泛化能力。
闽ICP备13000641号-4