免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

我们分析了 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:003876

评论

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

一分钟开发一个表单

蛋先生DX

vue.js 表单 动态表单 6月日更

PO 就是Scrum中的产品经理?别再搞不清啦

万事ONES

项目管理 Scrum 敏捷开发 PO ONES

JavaScript 学习(三)

空城机

JavaScript 大前端 6月日更

【Flutter 专题】103 初识 Flutter Mixin

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

校友会小程序开发笔记三:数据库设计

CC同学

小程序云开发 校友录小程序 校友会小程序

故事|订单系统中的补偿事务

悟空聊架构

故事 事务 6月日更 订单系统 补偿事务

Java8 的时间库(1):介绍 Java8 中的时间类及常用 API

看山

Java 6月日更

密码学系列之:feistel cipher

程序那些事

加密解密 密码学 程序那些事

拍乐云受邀2021亚太CDN峰会,技术创新赋能行业新价值

拍乐云Pano

RTC

Python——字典的使用

在即

6月日更

缓存的世界 Redis(二)-持久化

卢卡多多

redis redis持久化 配置文件持久化 6月日更

MySQL中的pid与socket是什么?

Simon

MySQL

并发王者课-铂金1:探本溯源-为何说Lock接口是Java中锁的基础

MetaThoughts

Java 多线程 并发 并发王者

软件工程,其实没有任何工程而言

实力程序员

Java包装类(Integer 详解 )

若尘

java编程 6月日更

react源码解析13.hooks源码

全栈潇晨

React

项目经理如何有效管理需求变更?

万事ONES

需求管理 ONES 项目经理

阿里云视频云 Retina 多媒体 AI 体验馆开张啦!

阿里云视频云

阿里云 短视频 视频处理 媒体处理 视频制作

6月26日,HarmonyOS开发者日将于杭州举办

科技汇

校友会小程序开发笔记一:背景与技术方案的选型

CC同学

小程序云开发 校友录小程序 校友会小程序

校友会小程序开发笔记二:功能需求设计

CC同学

小程序云开发 校友录小程序 校友会小程序

用EasyRecovery“监控硬盘”功能检测硬盘问题的方法

淋雨

数据恢复 EasyRecovery 文件恢复

快来,这里有23种设计模式的Go语言实现

华为云开发者联盟

线程 设计模式 单例模式 Go 语言

【LeetCode】石子游戏Java题解

Albert

算法 LeetCode 6月日更

JAVA笔记(三)--变量及运算符

加百利

Java 程序员 后端 6月日更

译文 | AI产品经理:如何打造一款SaaS+AI的优质产品

LigaAI

产品经理 研发管理

教你两招,解决数据膨胀

华为云开发者联盟

数据 GaussDB(DWS) VACUUM 数据膨胀 FSM

连续七年,我们持续领跑

618 技术特辑(一)不知不觉超预算3倍,你为何买买买停不下来?

华为云开发者联盟

电商 图数据库 知识图谱 618 图引擎服务

618 技术特辑(二)几百万人同时下单的秒杀,为什么越来越容易抢到了

华为云开发者联盟

数据库 服务器 流量 618 弹性负载均衡

针对 MySQL IO 特点进行的存储优化揭秘

焱融科技

MySQL 技术 分布式 高性能 文件存储

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