写点什么

我们分析了 Booking 的 150 个成功的机器学习模型,总结出六条宝贵经验

  • 2019-10-27
  • 本文字数:4154 字

    阅读完需:约 14 分钟

我们分析了Booking的150个成功的机器学习模型,总结出六条宝贵经验

Booking.com 是全球范围内最大的在线旅行代理,数百万的客人在这里寻找旅行住处,数百万的住宿供应商在这里提供他们的酒店、公寓、宾馆等等。过去几年,Booking.com 一直使用机器学习来改善客户体验和公司业务。目前,大多数机器学习的学术研究都集中算法或数学方面,但在商业利益至上的工业环境中,关于机器学习如何对企业产生有意义的影响的研究并不多。Booking.com 近日在 KDD 2019 发表了一篇论文“150 Successful Machine Learning Models: 6 Lessons Learned at Booking.com”,对 Booking.com 内部数十个团队开发的 150 个面向客户的机器学习应用进行了分析,并总结了团队发现的挑战、解决挑战的方法、在这一过程中获得的经验教训和一些通用建议。本文是 AI 前线第 97 篇论文导读,我们将从与大家分享 Booking.com 在应用机器学习模型的过程中总结出的宝贵经验。


Booking.com 的这篇论文是关于机器学习对商业产品的影响的首个大规模研究,覆盖了机器学习项目所有阶段的经验教训,并为解决每个项目阶段的挑战总结了一系列技巧。


尽管论文标题提到了六个经验教训,论文主体却没有明确地列出来,我们通过论文结构总结出了以下几项:


  • 引入机器学习模型的项目带来了强大的业务价值

  • 模型性能与业务性能并不同

  • 清楚你要解决的问题

  • 预测服务延迟问题

  • 获得模型质量的早期反馈

  • 使用随机对照试验测试模型的业务影响


我们发现带来真正的业务影响是非常困难的,而且很难把建模工作和业务影响之间的联系进行分离并理解……我们的主要结论是,与其他一个迭代的、假设驱动的过程,与其他学科相结合,是构建 150 个成功的机器学习产品的基础。


这段话并不是说投资机器学习不值得,相反,一个公司在面向用户的环境中设计、构建和部署成功的机器学习模型的能力,是其竞争力的基础,与 DevOps 报告中提到的高绩效公司的所有其他能力一样重要。

背景介绍

Booking.com 平台包含多个跨学科团队研制的不同产品,有大型新应用 Booking Assistant,也有搜索结果的网络页面。各个团队有各自的目标,使用不同的业务标准来量化产品交付的价值、测试假设——学习过程的核心。Booking.com 平台面临以下几个独特的挑战:


高风险:在旅游住宿推荐中,错误推荐的代价较高。如果客户到达住宿地点,却发现酒店不符合期望,客户会对平台产生失望,甚至不再使用该平台。


无限查询:用户在搜索住宿时,一般仅仅给出目的地信息。在这种几乎为零查询的情况下,为客户提供满意的预订和住宿体验是 Booking.com 平台的主要挑战之一。


复杂条目:预订住宿需要用户决定诸如目的地、日期、住宿类型、房间数量、房间类型、退款政策等多个方面的信息。并非所有可能的组合都存在,所以需要平台引导用户才能找到最佳组合。


供应受限:住宿信息是有限且动态变化的。它与价格的互动直接影响到客人的偏好和住宿供应商的行为。在设计预订体验时,这一方面不容忽视。


持续冷启动:大多数用户每年只旅行一两次,所以当他们回到网站时,他们的偏好可能已经发生了显著的变化;此外,新的住宿和新的住宿类型每天都在增加,它们缺乏评论和介绍内容,很难让用户注意到它们。


内容超载:住宿有非常丰富的内容,例如描述、图片、评论和评分。目的地本身也有丰富的内容,包括游客创作的图片,免费的文字评论,游客的评价和指南。如何向用户展示这些丰富的内容,成功地利用这些内容是平台的另一个关键挑战。


在过去的几年中,Booking.com 应用机器学习技术来解决这些问题和其他问题。但是带来真正的业务影响是非常困难的,而且很难分离和理解建模工作和观察到的影响之间的联系。在这项工作中,研究人员分析了 150 个成功的机器学习模型,总结了在这一过程中获得的经验和教训。

经验教训总结

作者将目前部署在平台的模型按照它们对消费者的影响方式分为不同族。现在大约有 150 种模型已经在 Booking 得到应用,机器学习已经影响了 Booking.com 用户体验的许多方面。一些模型很特别,关注特定场景中的特定用例(例如,针对信息中的某一个点定制的推荐),其他模型充当语义层,对多数情况中常用的概念进行建模。例如,一个预测用户对于目的地的灵活性的模型。


booking.com 上部署的模型可以分为六大类:


旅行者偏好模型:该类模型作为语义层,对用户偏好(例如,灵活性程度)做出广泛的预测。


旅行者场景模型:也是语义模型,用于预测旅行发生的场景(例如,与家人、朋友、商务等)。


项目空间导航模型:跟踪用户浏览的内容,根据用户的历史记录和住宿供应的库存进行推荐。


用户界面优化模型:优化了用户界面元素,如背景图像、字体大小、按钮等。 “我们发现很难有一个特定的值是全局最优的,所以我们的模型考虑了场景和用户信息来决定最佳的用户界面。”


内容管理模型:管理人工生成的内容,如评论,以决定要显示哪些内容


内容增强模型:计算有关旅行元素的附加信息,例如哪些选项当前价值很高,或者某个地区的价格的变化趋势如何。


图1:机器学习应用示例


图 1:机器学习应用示例

经验 1:引入机器学习模型的项目将带来巨大的商业价值

所有这一系列的模型族都为 Booking.com 带来了商业价值。此外,与已经部署但没有使用机器学习的其他成功项目相比,基于机器学习的项目往往会带来更高的回报。


图2:模型族业务影响与中位数的相对值


图 2:模型族业务影响与中位数的相对值


模型部署之后,并不是直接带来商业利益,而是往往成为进一步产品开发的基础。下图显示了一系列部署的影响,每个部署都建立在原来的基础上,并进一步提升了业务结果。


图3:在推荐产品的一系列实验结果。每个实验都测试了一个新版产品。条形长度代表新版产品与第一版产品的影响的相对值。


图 3:在推荐产品的一系列实验结果。每个实验都测试了一个新版产品。条形长度代表新版产品与第一版产品的影响的相对值。

经验 2:模型性能表现并不等同于商业价值

量化模型质量的一种常用方法是估计或预测模型在处理未见数据时的性能。Booking.com 主要关注模型给客户和业务带来的价值。平台通过随机对照试验(RCT)来衡量模型对业务指标(如转换率、客户服务票证或取消率)的影响,从而评估模型交付的价值。


一个有趣的发现是,提高模型的性能并不一定会转化为[业务]价值的增益。


图4:业务指标中的相对差异VS基线模型和新模型之间的相对性能差异。


图 4:业务指标中的相对差异 VS 基线模型和新模型之间的相对性能差异。


出现这一情况的原因有很多:


  • 价值性能饱和:在某些时候价值-模型增益曲线会饱和,不能无限的从模型性能增益中得到业务价值。

  • 分割饱和:当测试新模型时,需要用与模型不匹配的用户数据,随着模型性能的提升,实验组的人越来越少,新旧模型基本一致,也就无法提升业务价值。

  • 恐怖谷效应:随着模型越来越好,它对用户也越来越了解,甚至能预测出用户将要做的事情。这让某些用户觉得很不安,反而对业务价值带来了负面影响。

  • 代理指标过度优化:随着模型优化,某些常用的替代指标(如点击率)已经无法转换为所需的业务指标,而模型依然针对该目标进行优化,则对业务指标没有任何助益。


图5:恐怖谷:人们对正确推荐没有正面反响。


图 5:恐怖谷:人们对正确推荐没有正面反响。

经验 3:明确你要解决的问题

在开始构建模型之前,最好花时间仔细地定义你试图解决的问题。


问题构建过程将一个业务案例或概念作为输入,然后得到一个定义良好的建模问题(通常是一个有监督的机器学习问题),这样得到的好的解决方案能有效地对给定的业务案例或概念进行建模。


一些最强大的改进不是在给定的设置中改进模型,而是更改设置本身。例如,将基于 click 数据的用户偏好模型更改为基于客人评论的自然语言处理问题。


总的来说,我们发现,通常最好的问题并不是立即浮现在脑海中的问题,而且改变设置是释放价值的一个非常有效的方法。

经验 4:预测服务延迟很重要

在信息检索和推荐系统中,高延迟会对用户行为产生负面影响。在一个引入合成延迟的实验中,Booking.com 发现延迟每增加 30%,将损失 0.5%的转换率。


图6:延迟对转换率的影响


图 6:延迟对转换率的影响


图中横坐标为实验组和对照组的观测延迟,纵坐标为转换率的相对差异。


这一项与机器学习模型尤其相关,因为它们在进行预测时需要大量的计算资源。即使是简单的模型也有可能引入相关的延迟。


为了减少模型带来的延迟,Booking.com 采用了以下几个技术:水平扩展分布模型副本、确保能尽可能响应多个请求、内部开发的自定义的线性预测引擎、使用参数较少的模型、批处理,以及预计算和缓存。

经验 5:尽早获得关于模型质量的反馈

当模型响应请求时,监视其输出的质量是至关重要的,但这至少带来了两个挑战:


  • 不完整的反馈:由于观察真实标签较难,所以反馈往往不完整。

  • 延迟的反馈:例如在预订时对用户是否会评论进行预测,在行程完成之前无法进行评估。


一种策略:Booking.com 已经成功地在这种情况下部署二进制分类器,用来查看由模型生成的响应的分布。“具有一个清晰稳定点的平滑双峰分布标志着模型能成功区分两个类”其他形状(见下图)可以表示正在挣扎的模型。


图7:响应分布示意图


图 7:响应分布示意图


…响应分布分析已被证明是一个非常有用的工具,它允许我们很早地检测模型中的缺陷。

经验 6:通过随机对照试验测试模型对业务的影响

这篇论文所研究的机器学习的大多数成功案例都是通过复杂的实验设计实现的,这些实验设计既可以指导开发过程,还可以检测其影响。


这篇论文就如何在不同环境下进行实验提出了建议:


选择性触发:在标准的随机对照试验中,被试者分为对照组和实验组,实验组中的个体要接受对照组所没有的某种特殊待遇。当并非所有测试者都能产生变化时(例如,他们没有模型所需要的特征),则从合格的子集中创建对照组和实验组。


图8:选择性触发的实验设计


图 8:选择性触发的实验设计


模型输出依赖触发:添加一个实验组,对照组依然不进行特殊处理,两个实验组 T1 和 T2 都调用模型,并检查出发标准,但是只有 T1 的用户在符合触发标准时(模型输出对其有影响)进行变化,而 T2 的用户无论模型如何输出,都不进行变化。


图9:模型输出依赖触发和控制对性能影响的实验设计


图 9:模型输出依赖触发和控制对性能影响的实验设计


对比模型:当比较模型时,当两个模型不一致为触发条件,即 T1 和 T2 都需要模型输出。将调用当前模型的控制组作为基线(假设正在针对候选改进测试当前模型),T1 和 T2 调用相同的模型,移除由模型表现引起的差异,分离出目标度量上模型输出之间差异的因果影响。


图10:对比模型实验设计


图 10:对比模型实验设计

结语

假设驱动的迭代和跨学科整合是 Booking.com 用机器学习创造价值的核心。希望这项工作能为其他机器学习实践者提供指导,并对这一主题进行深入研究。


论文原文:


150 Successful Machine Learning Models: 6 Lessons Learned at Booking.com


参考文章:


https://blog.acolyer.org/2019/10/07/150-successful-machine-learning-models/


2019-10-27 14:003991

评论

发布
暂无评论
发现更多内容

抖音快手短视频SEO营销系统软件开发价格

《MySQL系列》 InnoDB行记录存储结构

Silently9527

MySQL 面试 innodb innodb行记录

短视频go研发框架实践

百度Geek说

百度 架构 后端 短视频 hulk

Android SDK 启动退出方案演进

神策技术社区

大前端 后端 代码 数据采集

百度世界2021:百度大脑升级、昆仑芯2量产、智能云加速AI落地爆发

百度大脑

人工智能 百度大脑

一文了解全球主要经济体对区块链技术的采纳情况和监管政策

CECBC

华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有多大?

华为云开发者联盟

数据库 云数据库 GaussDB(for MySQL) 云栈 事务数据库服务

Go语言那些事儿之浅谈协程并发竞争资源问题

Regan Yue

Go 语言 8月日更

基于java springboot vue uniapp商城源码(毕设)

清风

Java uniapp 商城项目 毕业设计

抖音快手短视频询盘系统开发

抖音快手短视频平台获客系统开发内容

缓存 | Redis 缓存避坑指南

RadonDB

数据库 redis

MySQL 系列教程之(八)DQL:子查询与表连接

若尘

MySQL 数据库 8月日更

web技术分享| 实现WebRTC多个对等连接

anyRTC开发者

音视频 WebRTC JavaScrip web技术分享

科技平台与社会的和谐相处

CECBC

数字人民币银银合作以及平台接入的模式分析

CECBC

菜谱系统小成阶段,Python Web 领域终于攻占一个小山头

梦想橡皮擦

8月日更

【墨天轮专访第一期】人大金仓:国产数据库的竞争本质就是人才的竞争

墨天轮

数据库 国产数据库 KingBase 人大金仓

☕【Java技术指南】「开发实战专题」Lombok插件开发实践必知必会操作!

洛神灬殇

Java 编译 lombok 8月日更

接口管理工具APIPOST的预/后执行脚本里,常见的响应参数变量和常用方法集合——apipost

Proud lion

大前端 后端 Postman 开发工具 接口文档

【架构实战营】模块五作业

Abner S.

#架构实战营

React Native 页面浏览事件采集方案 | 数据采集

神策技术社区

大前端 后端 代码 数据采集

为什么代码会有好坏?

鉴释

程序员 代码 代码规范

带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

华为云开发者联盟

算法 数据集 目标检测 高斯检测框 ProbIoU

【从零开始学爬虫】采集当当网图书商品信息

前嗅大数据

大数据 爬虫 数据采集

赋能智慧社区,多维度提升管理质效

CECBC

如何做上线前的实操演练?

boshi

项目管理

抖音快手短视频SEO系统开发

接口文档生成工具 一键生成文档 ApiPost

CodeNongXiaoW

项目管理 大前端 测试 后端 接口管理工具

抖音快手短视频营销软件系统开发案例

Go 语言, 一文彻底搞懂 map 实现原理

微客鸟窝

Go 语言 8月日更

我们分析了Booking的150个成功的机器学习模型,总结出六条宝贵经验_AI&大模型_Maglish_InfoQ精选文章