作者 | Adrian Colyer
译者 | Monanfei
出品 | AI科技大本营(ID:rgznai100)
本文是一篇有趣的论文(150 successful machine learning models: 6 lessons learned at Booking.com Bernadi et al., KDD’19),通过分析 Booking.com 上 150 个成功的面向客户的机器学习应用程序的集成,该论文对其中的经验教训进行了精彩的总结,主要内容如下:
不仅如此,本文更是包含超过这 6 条之外的建议。
我们发现,推动真正的业务影响非常困难,而且很难隔离和理解建模工作与观察到的影响之间的联系……我们的主要结论是,构建机器学习支持的 150 种成功产品有一个基础,那就是一个与其他学科相结合的,迭代的,受假设驱动的过程。
请千万不把上面的话理解成投资机器学习是不值得的,恰恰相反,在面向用户的场景中,锻炼设计、构建和实施成功的机器学习模型的能力,这正是组织竞争力的基础。
机器学习模型的好坏会影响 Booking.com 许多方面的体验。一些模型非常具体,着眼于特定上下文中的特定用例(例如针对渠道中某个点量身定制的建议);另一些模型则充当语义层,对上下文中的一些概念进行建模(例如,根据旅行目的地,指示用户的灵活性的模型)。
在 Booking.com 上部署的模型可以分为六大类:
上述的所有模型系列都在 Booking.com 上产生了商业价值。此外,与未使用机器学习的其他成功项目相比,基于机器学习的项目往往会带来更高的回报。
这些机器学习模型部署后,除了获得直接的业务收益外,它们经常成为进一步产品开发的基础。下图显示了一系列模型部署后的影响,每个新的部署都建立在原始部署之上,并进一步改善了业务成果。
通过衡量对业务指标影响的随机对照试验,Booking.com 能够估计模型提供的价值。
一个有趣的发现是,提高模型的性能并不一定会转化为业务价值的增长。
这种现象可能是多种因素导致的,包括业务价值饱和(无论做什么,都无法再提升);由于接受试验的人群较少而导致节段饱和(新旧模型在很大程度上吻合);对代理指标的过度优化(特别是那些无法将自身(例如点击)转换为所需业务指标的代理指标);以及怪异的山谷效应。下图可以很好地说明这些问题:
在开始构建模型之前,值得花费时间仔细思考要解决的问题的定义。
问题构建过程将业务案例或概念作为输入,并输出定义明确的建模问题(通常是监督式机器学习问题),这样就能提出一个好的解决方案,从而有效地对给定业务案例或概念进行建模。
一些最强大的改进并非是在给定设置的上下文中改进模型,而是更改设置本身。例如,将基于 Clink 数据的用户偏好模型更改为基于来宾评论数据的自然语言处理问题。
总的来说,我们发现最好的问题往往不是立即想到的,改变设置是提高价值的卓越方法。
在一项引入合成延迟的实验中,Booking.com 发现,延迟增加约 30% 会使转化率降低约 0.5%,“ 这是我们业务的相关成本 ”。
延迟对于机器学习模型尤其重要,因为它们在进行预测时需要大量的计算资源。即使是数学上简单的模型也可能会引入相关的延迟。
Booking.com 竭尽所能以最大程度地减少模型引入的延迟,包括水平缩放的模型分布式副本,内部开发的自定义线性预测引擎,偏好具有较少参数、批处理请求以及预计算 and/or 缓存的模型。
当模型满足请求时,监视其输出质量至关重要,但这至少带来了两个挑战……
Booking.com 提出了一种策略:查看模型生成的响应的分布。该策略已经成功地在这些情况下针对二进制分类器进行了部署。“ 具有一个清晰稳定点的平滑双峰分布,这是模型成功区分两类数据的标志”。其他形状(参见下图)则表明该模型正在陷入困境。
…响应分布分析已被证明是非常有用的工具,可让我们尽早发现模型中的缺陷。
在这项工作中,绝大多数成功的机器学习成功案例都是通过复杂的实验设计实现的,这些实验设计既可以指导开发过程,也可以检测其影响。
本文提供了有关如何在不同情况下进行实验的建议。
假设驱动的迭代和跨学科的集成,这些是我们利用机器学习实现价值的方法的核心,我们希望这项工作可以为其他机器学习从业人员提供指导,并引发对该主题的进一步研究。
原文链接:
https://blog.acolyer.org/2019/10/07/150-successful-machine-learning-models/
(*本文为AI科技大本营编译文章,转载请微信联系 1092722531)