Hugo:Ben,欢迎来到 DataFramed。
Ben:谢谢你,Hugo。很高兴来到这里,也很期待今天和您聊聊 Convoy 与数据科学。
Hugo:我完全同意。很高兴您能来。在 DataFramed 持续探索“数据科学是什么、能成为什么”的过程中,我对今天能和您谈谈您在 Convoy 的工作,以及数据科学如何在革新卡车运输行业中发挥作用感到非常兴奋。可以说,这个行业是北美最具影响力的行业之一。不过在此之前,我想先聊聊您本人。
Ben:好,谢谢。
什么是数据科学家?
Hugo:人们总问我,数据科学家到底做什么?Ben,您的同事觉得您在做什么?
Ben:这是个好问题。我认为“数据科学家”这个词很模糊,对不同人意味着不同的东西。我进入数据科学既有自然科学背景,也有社会科学背景。在拿到经济学博士之前,我还在硅谷绕了个弯。所以对我来说,我大概有一半时间在开会,讨论如何运行我们的平台的科学问题,或者我们如何在这里发展我们的数据科学方法,或是一些具体问题,比如实验设计。还有大约一半时间在指导其他数据科学家,比如帮助一位初级数据科学家为某个营销活动做实验设计,或者构建一个生存模型来理解客户留存。
然后我还有另外“二分之一”的时间作为个人贡献者,思考驱动我们平台的各种因素,并通过解决当下最紧急的问题来产生影响。比如思考拍卖、匹配、定价等问题。会做数学的人可能注意到了,这样加起来是三个二分之一,但我在一家初创公司工作,所以事情并不会刚好加成一。
Hugo:我太有同感了。在 DataCamp,我有时觉得自己像在做一个无穷级数。而且据你所说,你的背景是物理,你告诉我物理学家眼里只有三个数字,对吧?
Ben:对。就是零、一和无穷,其他都是尺度问题。老笑话了。
Ben 的数据科学职业历程
Hugo:正是如此。那您是如何进入数据科学的?
Ben:这是个好问题,我想我一直在和软件、数据、数学、统计和模型打交道。DJ Patil 提出这个词并走红之后,市场部的人就把我“重命名”为数据科学家。但即使在我本科时,我也在写软件来理解科学问题。我做的第一个“数据科学味儿”的事情,是我给 McKinnon(华盛顿大学一位了不起的行星科学家)写了一个程序来研究陨坑松弛。那时校园里 Frankie 乐队很火,因为我们研究的是陨坑松弛(relaxation),我就把程序叫做 Frankie。再近一些,在我读完博士之后,我在芝加哥大学,然后被招去亚马逊工作。那大概是 2012 年。那时我会说,我真正完成了从学术界向产业界的转变,把学界的方法应用到工业界。
Hugo:所以现在您在 Convoy 做数据科学家?
Ben:对。
Convoy
Hugo:跟我聊聊 Convoy 做什么、使命是什么?
Ben:这是一个很好的例子,说明让软件进入一个成熟行业要比让一个成熟行业自己把软件引进来容易得多。货运行业历史很长。在美国,这是一个超级巨大的市场,大概有 8000 亿美元。这里有个问题,多数承运商高度分散,抱歉,我的意思是“承运商”。承运商就是卡车公司,拥有一辆或多辆卡车。承运商高度分散,处于第 95 百分位的承运商也就两三辆卡车。所以托运人和他们对接的方式,是通过经纪人,而经纪人用的是 20 世纪 80 年代的技术:电话和传真。我们在 Convoy 做的,是开创一种称为“数字货运”的新方法,我们用技术,特别是数据科学,让整个流程对每个人都更好。因为为某个货物匹配到合适的承运商非常重要,这样一切会更顺,所以我们需要定价、匹配并将整个流程自动化,这将彻底革新整个行业的成本结构。对所有听众而言,您们也都是消费者,您买的大多数东西在到达您手中之前要经历八到十次卡车运输。所以,如果我们能降低货运成本,您购买的东西的价格就有望更有竞争力。
Hugo:那这在一线看起来是什么样子……您说承运商就是司机?
Ben:承运商……这个定义有点复杂,因为很多是自营车主,有点像“美国梦”。比如在美国西北太平洋地区,可能是一个白手起家的俄罗斯移民,努力打拼成为拥有一辆卡车的自营车主,然后越来越成功,再扩充车队。Convoy 正在努力帮助自营车主做到这些。也可能是更成熟的中型卡车公司。通常他们有一辆或多辆卡车。对个人而言,很难把规模扩到 20 辆以上,因为那时物流就很复杂了,还要处理人力资源等问题。
Hugo:确实如此。那么对承运商而言,Convoy 在一线的体验是什么样?他们会用 App 吗,还是……
Ben:对,这是个好问题。他们与我们互动的主要方式是 Convoy 应用。我们有一个简单的入驻流程,方便他们提交资料包,比如保险与许可证信息,然后我们就能激活他们的账户。此后,他们会看到基于他们偏好的货物类型而推送给他们的报价。比如他们可能会说:“嘿,我喜欢在 I-5 走廊跑车。”然后就能在应用内接受这些货物,从不需要和真人通话,效率非常高。
他们也可以竞价。如果他们不喜欢我们的价格,或与其他承运商竞争一个货物时,他们可以出价,价格会根据市场情况上下浮动。我们还会为他们做的一件好事是,比如他们从旧金山拉货到洛杉矶,如果我们看到他们这么做了,就会说:“嘿,我们有一票从洛杉矶发出的货,要回到您之前所在的地方或去别处。”我们会意识到这一点,尽量让他们始终在路上、持续赚钱,尽量少空驶。因为卡车大约有 40% 的时间是空载,这对环境和卡车司机都不利。
Hugo:是啊,我想您们要解决各种旅行推销员问题之类的,您当然不希望让司机从西雅图空车开到湾区再从那里拉货去别处。您希望找出如何优化他们的行程,让载货率更高,对吗?
Ben:是的,完全正确。随着平台流动性越来越强,解决这类问题就会越来越容易,基本上能让承运商几乎保持持续移动的状态。
Hugo:这真酷。我之所以觉得有意思,是因为我们谈到数据科学在现代产业中的作用,大多时候会想到科技行业——这个行业生于数据可得性的崛起。而您谈的是要革新一个在这些技术基础设施出现之前就已存在的行业。
Ben:没错。如果我们能成功,我们将改变一个影响许多美国人的大型行业的成本结构。我在 Convoy 学到的一个惊人事实是,大概 45 个州里最常见的职业是卡车司机。所以这关乎很多人的就业,也关乎所有消费者。这会对很多人的生活产生积极影响,尤其是卡车司机本身。我们让他们更容易经营自己的生意、扩张业务,运行中也更少摩擦。
Convoy 的数据科学
Hugo:确实如此。那么数据科学如何在 Convoy 的使命中发挥关键作用?
Ben:数据科学是我们工作的核心。事实上,从我们开业第一天起,我们就一直是自动化的。我们需要解决大量充满经济学意味的迷人问题。非常重要的一点是能预测价格,因为我们需要对托运人定对价,很多时候我们和他们签长期合同;同时也要对承运商定对价。接着要确保解决匹配问题,把合适的承运商匹配到合适的货物。这会给所有人带来更好结果。比如,“合适”可能意味着更少的空驶(dead head),也就是为去到装货起点而空车行驶的时间;目的地也很重要。我们关注拍卖和承运商的价格接受机制,以及与承运商全生命周期相关的许多其他事情,并确保承运商提货后,一切进展顺利。类似这样的问题有很多。
Hugo:我感觉这类业务会遇到“先有鸡还是先有蛋”的问题:要说服托运人加入,您需要承运商;要说服承运商加入,又需要托运人。
Ben:是的,这对任何平台都很难。我们的 A 轮投资人之一 Simon Rothman 写过一篇很棒的文章,他说基本上您得同时创办两家公司。也就是要在供给侧和需求侧同时自举,这让事情变得非常棘手,因为我们必须保持平衡。
幸运的是,我们有出色的销售团队,能很好地创造高质量需求,然后我们快速构建供给,努力维持平衡。这是我们跟踪的事情。任何平台都会担心这个问题,他们非常重视流动性与平衡。就像您去一个约会网站,假设您是异性恋,如果上面没有女性,那就是糟糕的约会体验。所以您需要男女数量平衡。
Hugo:我之所以想到这个,是因为我们之前在 DataCamp 早期也有类似挑战:一边吸引学生,一边招募讲师。讲师想要受众,学生想要最好的讲师,对吧?
Ben:对,完全正确。另一个要说的是,存在网络效应。一旦运转起来,这类业务往往呈指数级增长,这非常令人兴奋。这意味着如果您做得对,您会发现自己都忙得睡不着觉。
Hugo:确实如此。您说过最重要的事情之一是强大的销售团队。那么数据科学团队如何与公司,譬如与销售团队,进行整合?
Ben:我觉得我们能做的一大件事是帮助他们理解定价,比如如何对某些货物竞标、哪些货物值得投标。这些都是我们能与他们紧密合作的方式。定价极其复杂,伴随各种激励,要解释清楚能说上几个小时。
Hugo:我们一直在讨论、盘旋于数据科学的角色。具体到您的工作,需要回答哪些类型的数据科学问题?
Ben:我认为 Convoy 的文化有一点特别好,就是非常数据驱动。我们做了非常多的实验,我想和行业里的其他顶尖玩家一样。所以我们回答问题的方式通常是通过实验,这也是唯一的解决办法。我们做很多实验,也在搭建非常好的实验平台方面投入很大,使我们能快速迭代。有不同的 A/B 测试方法,比如贝叶斯或频率学派;贝叶斯或序贯分析能更快给出答案,也更容易和产品经理讨论结果。
A/B 测试
Hugo:让我们稍微回溯一下,能否举个您们做的 A/B 测试例子?
Ben:好。典型的 A/B 测试会问:某个新的用户体验流程是否更好?比如我们关心的一件事是,司机完成行程后能否自动上传他们的文件,那叫 BOL(提单,bill of lading)。如果我们推出了一个新的流程来改进并简化它,我们可以做一个实验:让一半承运商继续使用旧流程,另一半使用新流程,然后过一段时间,我们就能以一定的概率判断新流程是否更好。
Hugo:这是个很好的例子,也把 A/B 测试描述得很清楚。我再追问一下。您提到贝叶斯方法比频率学派方法收敛更快或更快给出结果。我知道这有点临时起意,但能否为外行简要介绍一下频率学派统计(更多人熟悉)与您这里谈到的贝叶斯方法的区别?
Ben:当然。最早的统计学方法其实是贝叶斯方法,由 Thomas Bayes 提出,他实际上是一位牧师。他的想法很像直觉:您先从某个先验信念出发,比如“我的新流程更好”,设想能带来 10% 的提升。然后随着观测到数据,更新这些信念。通过贝叶斯更新,您会收敛到所谓的后验分布,那就是我们期望的提升的分布。
频率学派的观点……在说频率学派之前,贝叶斯方法在大约二十年前之前很难计算,因为算力不足。此后有了巨大的改进,计算这些模型容易多了。此前您只能解决一些特殊情形。像 R.A. Fisher 之类的人对贝叶斯方法非常批评,于是在 20 世纪早期(如果我没记错)发展出频率学派方法。那里的想法是,参数有一个真实值,如果我采样足够多的数据,随着数据越来越多,它会收敛到真实值。
因此频率学派倾向于谈 P 值和置信区间,这是大家熟悉的传统假设检验。在频率学派世界里,您得对市场经理说:“在原假设为真条件下,我观察到的效应像这样大或更大的概率是 5.7%。”然后您会陷入争论,因为传统显著性水平是 5%。在这个例子里,如果您是“好人”,就不能拒绝原假设。但您的市场经理可能会说:“5.7% 离 5% 很近嘛,不如我们用 10% 的显著性水平吧。”您就陷入困境了。而用贝叶斯方法,您可以对产品经理说:“A 版本优于 B 版本的概率是 94.3% 或 98%。”这就容易多了。
Hugo:在您说的例子里,A 和 B 两个版本,或者我们关注的参数,是成功上传所有文件的人数吗?
Ben:对。
Hugo:作为 UX 不同的函数。
Ben:对。就是您正在测试的任何东西。比如我的新工作流是否有更高的点击率或更高的结账率?是否降低流失?您感兴趣的任何指标都可以。所以,是的。我认为贝叶斯方法除了更易与产品经理沟通之外……在我们的模拟研究中,我们发现它收敛更快。当然这在我们的业务中是这样,您的业务可能不同;如果您在欧洲,您的“千米”也可能不同。
Hugo:我记得 Dave Robinson 曾在 Stack Overflow 写过几篇关于贝叶斯 A/B 测试的文章,显示他们的实验不一定更快收敛。我需要再去核对,我们也会把链接放在节目笔记里。
Ben:对。Evan Miller 也有一些很棒的博文。
其他数据科学技术与方法:计量经济学与机器学习
Hugo:您提到了实验设计。这是个很有趣的切入点,因为很多人可能不会想到实验设计及此类方法在用数据科学重塑卡车运输行业时会扮演这么大的角色。您们还关注哪些技术与方法?
Ben:是的,在继续之前,我想给 A/B 测试收个尾。关于卡车行业,有很多人的“经验之谈”。我们公司一半是科技初创公司,一半是卡车行业的资深人士,他们有很多来之不易的知识与直觉,但并不总是准确或精确。通过做实验,我们可以把事情变得更具体。
Hugo:这其中是否也有政治或社会层面的因素?因为很多人已经在这个行业待了很久,拥有一定权力,也有某种来之不易的知识。是否存在这样一种观点:科技初创公司来“颠覆”,于是需要在社会行为上做出回应?
Ben:我只能在 Convoy 的文化范围内发言。我们的文化很好,团队导向很强。感觉就像我在一支配合默契的冰球队里。我觉得两边都很欣赏彼此的价值。甚至两位行业资深人士也可能意见不合。在 Convoy,我们尽量避免那种无法用……让我换种说法,如果分歧无法用某种基于理论或事实的理性论证来解决,我们就做实验。不坐在那里争个没完。
Hugo:那么还有什么?您们还在使用哪些技术与方法论?
Ben:我们非常强调实用、应用型数据科学。我们要在很短的时间内解决具体的业务问题。我们用的基本是您预期中的标准工具箱。我们对工具很“不可知论”,大家倾向于用最合适的工具。技术上可能是 R 或 Python,它们各有优劣,最好两者都懂。至于具体方法,有时机器学习最好,特别是当我们需要预测某件事时,比如预测某人是否会上传 BOL,或是否会成为一个好的承运商。那您可能会做逻辑回归或某种提升式分类器。但有时您需要理解 A 是否导致了 B,也许无法做实验,那么就回到应用统计的世界,做某种回归分析。我在 Convoy 的第一个“胜利”是:在我入职前,他们上线了一个功能,但没有做 A/B 测试,想知道新功能是否有效。我用 Google 开发的 causal impact 包(基于贝叶斯结构化时间序列)证明这个新功能产生了正向影响。
Hugo:太棒了。这是用已经收集的数据完成的?
Ben:对。我们有现有数据。然后您就要尽量确保一切尽可能接近随机分配。要成为实验,关键的一点是随机分配到处理组,同时还要满足一些条件,比如分配是个体化的、概率性的、且不受混淆。这些是技术术语。如果这些条件失败了,您就回到了观察性数据的世界,需要使用应用统计或计量经济学方法,努力创造一个“尽可能接近随机分配”的设置,从而对“是否 A 导致了 B”做出某种因果判断。
Hugo:能提醒我计量经济学是什么吗?
Ben:哦,计量经济学是一组经济学家为解决经济问题而发展起来的统计工具。对商业世界而言,这些工具非常有用,因为我们的大多数问题本质上都是经济问题。经典的例子是处理样本选择偏差和其他所谓“内生性”的形式,也就是模型中结果相互决定。比如您想理解增加警力是否会降低犯罪。犯罪可能是警力的函数,但警力本身也是犯罪水平的函数。这是“同时性”的例子。样本选择偏差,一旦您开始注意,会发现无处不在。比如我想做实验看看小班教学是否提高阅读理解,但所有“有钱有势”的家长都坚持把孩子放进小班,于是小班的孩子更聪明,现在就有了选择偏差。
Hugo:所以计量经济学开发了很多工具来处理这些挑战?
Ben:对。尤其有一类工具对经济学家来说很常见,但经济学之外的数据科学家不太熟悉,那就是面板数据方法。这些工具非常擅长处理经济学家所谓的“个体异质性”。如果我在研究承运商或货运的行为,它们有一些我无法观测的个体特性。如果我能在时间维度上观察一个承运商,面板数据就能提供很好的方法,去除这些不可观测的个体效应,避免干扰估计。
Hugo:很有意思。是不是可以这么理解(不对请纠正):在计量经济学里有一整套非常聪明的人开发的工具,完全可以在数据科学里用起来,但在数据科学领域还没被充分重视?
Ben:对。我也热爱机器学习,它很棒,但有些问题机器学习解决不了。我觉得人们有时过于聚焦机器学习,以至于忽视了经常非常有用的计量方法,它们能解决机器学习解决不了的问题。我记得加入 Convoy 之前和 Uber 的人聊过,他说他们遇到过机器学习无法解决的问题,只有构建结构型计量经济学模型才能解决。这是个非常复杂的过程,通常需要一年或更久才能把模型做好。您会尝试建模完整的行为过程和效用函数,但完成后您会有一个非常丰富而强大的模型,能对反事实结果做出很好的预测。
Hugo:酷。这是在 Uber,对吧?
Ben:对。其实是我面试他们的时候聊到的,我在去 Convoy 之前面过他们。
地理空间数据、质量与自动驾驶
Hugo:听起来……我们谈了机器学习、计量经济学、实验设计以及用于 A/B 测试的贝叶斯方法。看起来您们有大量地理数据、地理空间数据以及其时间序列。这在您的工作中发挥作用吗?
Ben:是的。我认为这类数据非常重要,我们才刚开始解锁其潜力。我们在应用里用它来改善承运商的体验。比如承运商到达装货地点时,我们可以基于地理空间数据自动为其签到。有些装货设施条件很差,如果让卡车等太久,就需要支付所谓的滞留费(detention)。当承运商满足条件时,我们可以自动支付滞留费,而不用让他们经历繁琐的文档流程,这和在美国报保险理赔有点相似。
Hugo:当您说我们有很多数据、潜力尚未完全挖掘时,我想到可能还会有各种社会研究的机会,围绕您们正在获取的数据?
Ben:是的。我认为我们能回答很多关于匹配、平台与拍卖的有趣问题,我非常愿意更深入地研究这些。我相信可以写出很多学术论文。
Hugo:在 Convoy,您参与的哪些数据科学项目对社会影响最大或最能反映社会现象?
Ben:这是个好问题。我在 Convoy 略超一年,而公司刚成立两年多。我主要聚焦在定价和实验上。我认为我们做过的最有趣的实验之一是我入职后不久,我们做了一个实验,给高质量承运商提供优先访问货源的机会,结果质量下降了。所有人都震惊:“等等,我们给高质量人群更早的工作机会,质量却下降?怎么回事?这说不通啊。”一个糟糕的经理可能会说:“嘿,你这个数据科学家真蠢。”幸运的是,我们的数据科学负责人 Ziad Ismail 打造了很好的数据文化,他让我们深入研究。我开始思考经济学里的匹配文献。我的假设是,因为我们把承运商池子限制得更小,尽管他们平均更高质量,但任务的匹配质量下降了。我们验证了这一点,并做了回归分析,显示匹配质量对质量有因果影响。这是一个非常令人兴奋的发现,因为它展示了匹配在我们平台上的重要性。
Hugo:太不可思议了。让我再梳理一下:给高质量承运商提前访问货源,意味着把他们和托运人的匹配算法在某种意义上做了收缩,导致匹配质量下降,从而引发了(执行)质量的下降?
Ben:对。因为可选承运商池更小,尽管他们更好,但潜在可匹配的人更少,这一事实压过了“他们更高质量”这一点,导致实际执行质量下降。
Hugo:我记得有种巴西蚂蚁,群体中有 30%……我不是说这是直接类比,但假设每个蚁群有 30% 的蚂蚁什么都不做。如果您移除这 30%,一天后又会有另一批 30% 的蚂蚁什么都不做。我不是说有托运人或承运商什么都不做,而是可能存在某种稳定机制。很有意思的是,结果反向了——直觉上您会以为会更好,结果却更差。
Ben:是啊。这很好地说明了为什么实验如此重要。我们在这里做实验时,形成了一个传统:大家会投票预测哪个结果会赢。这让全公司都参与到实验中来。通常 UX 团队会给赢家发甜甜圈或酷炫贴纸之类的奖励。我们做过很多这样的实验,预期发生的事并没有发生。因为人们很容易爱上某个自以为很棒的功能,但现实是,要找到真正能推动平台前进的东西越来越难。
Hugo:某种意义上,您们在做的是“实验室”吧?
Ben:对,我们是。聚焦于我们的业务问题。
Hugo:如果这涉及公司战略或私密信息,就请打住。我只是想知道,您们如何衡量承运商质量或一次交付的质量?
Ben:卡车运输行业有个普遍问题:大约 10% 的情况下,承运商已经承诺接单,但会爽约,或在最后一刻说不接了,通常的借口是卡车坏了。卡车并不会有 10% 的时间都坏。真实情况是,有人给了他们更高的价。有些承运商经常这样做;也有些承运商——我看过他们的数据,跑了 100、300 趟,几乎从不“掉单”(fall off)。所以“掉单率”是我们用来衡量质量的关键指标之一。它一旦发生,对我们成本很高,因为我们承诺要为托运人提供高质量的运输体验,我们就得临时再找一辆车来接单,这非常昂贵。
Hugo:有道理。那对于自动驾驶汽车或自动驾驶卡车的到来,你们公司整体上有考虑吗?
Ben:是的。我还要补充一些关于质量的点,比如——
Hugo:哦,请继续。
Ben:司机的准点率、我们努力让他们使用应用,这很重要,因为这能降低合规与安全方面的成本。这些都非常重要。但在我提到的那个具体实验里,我主要关注的是掉单。我们也发现,如果能让承运商开始使用应用,就会发生各种好事,也会使很多事成为可能。作为数据科学家,我们做的另一件“很经济学”的事,就是思考如何在平台上设置激励,以获得我们想要的行为。一个例子是,如果承运商使用应用,就能拿到“快速付款”(quick pay),也就是我们当天付款。而行业标准通常是承运商在完成工作约 30 天后才拿到钱,这意味着他们通常会把应收款卖给保理公司,再损失 3%。所以如果他们使用应用,我们等于给了他们 3% 的加薪——保理费大概是 2-3%,我们等于给了他们 2-3% 的涨薪。
Hugo:对,这是加薪,也意味着他们更有流动性资产,对吧?
Ben:对。我不知道您怎样,但我做完活儿就想拿钱。如果要等 30 天才能拿到,这不太愉快。我还得买菜、交房租、买自行车零件。
Hugo:那关于自动驾驶汽车和自动驾驶卡车的到来,你们在 Convoy 是否在积极思考?
Ben:是的。我们确实在积极思考。我知道创始人通过他们的网络非常紧密地关注这件事。最终,当自动驾驶卡车出现时,可能会分阶段、不同自动化等级,但它们仍然需要与货源对接,而我们正好有这样的平台。我们的目标是在平台供给侧把它无缝接入。
数据科学的多面性
Hugo:我们一直在谈数据科学对卡车运输的影响,谈您在 Convoy 的工作。从不同角度切入数据科学,显然很多东西都融入了这个学科。就您而言,您既是计算经济学家、前物理学家,也曾是亚马逊的研究科学家。我的问题是,这些学科和经历如何融入您作为数据科学家的工作?
Ben:工具永远不嫌多。我年轻时做物理,很幸运和 John Wheeler 合作过。他常常“通灵”尼尔斯·玻尔般地说:“在你知道答案之前,永远不要引用任何东西。”这是著名的 Wheeler 式箴言,意思是,您应该对你的科学问题的正确答案有一种直觉。关于费曼有个著名的例子:费曼进来时觉得自己证明了什么,Wheeler 说你错了,费曼很恼火,怎么可能?这题他刚刚做出来。结果费曼的计算里有个错误。Wheeler 的物理学知识太深了,他就知道这不可能对,不合理。所以如果你做了一个直邮活动的提升实验,得到 10% 的提升,这大概率是错的,您不应该预期那是真的。所以我觉得物理在这方面很有帮助,教人灵活、培养数学能力,特别是线性代数。我认为线性代数对数据科学成功非常重要,可能比微积分还重要。经济学给了我思考商业问题的理论工具,也给了我用数据检验理论的计量工具。做软件工程的经历则让我把统计落地为代码。在任何地方工作,希望都在学习新技能。我觉得这对数据科学家非常重要。文化上,亚马逊教会我一种非常“成熟”的思考方式:有紧迫感、聚焦影响。这很像读博,您要反复问自己:我现在做的事能让我毕业吗?如果答案是否定的,那我做错了事。
Hugo:我记得您在 Data Science Pop-Up Seattle 做过一个很棒的演讲,叫《数据科学中的正确性》。我喜欢它的原因是,您指出了常见错误,并讨论我们可以如何作为一个领域去改正、建立一个定义清晰的学科。目前数据科学还是一个含混的技术、概念与应用的大拼盘。您能谈谈您认为当今数据科学家最容易犯的主要错误吗?
Ben:很高兴您喜欢那个演讲。
Hugo:我很喜欢,我们也会把链接放在节目笔记里,方便大家观看。
Ben:好。首先,希望大家喜欢。我认为科学模型的正确性非常重要。很多人,尤其刚入门的人,会觉得“哦,我的代码跑完了,出了个数,那就是对的”。先停一下。您要确保那是对的数。核工业里有一套关于这个的认识论框架,叫验证、确认与不确定性量化(Verification, Validation & Uncertainty Quantification)。我感谢我的博后导师、也是阿贡前主任 Robert Rosner,把 VV & UQ 介绍给我。VV & UQ 基本有三部分。第一个 V 是 Verification(验证):确保您的代码正确实现了模型,而不管模型是否正确。这意味着要做单元测试;也可以通过蒙特卡罗方法生成带已知参数的合成数据,确保得到预期结果,用这些方法确保代码正确。Validation(确认)是确保模型对现实有足够的逼真度,也就是做后续实验来确保模型是现实的准确表征。Uncertainty Quantification(不确定性量化)是思考模型的边界:您做了哪些假设?是否成立?是否可能出现类似海啸这样的事件摧毁核电站?也许您该为此做计划。我也喜欢在面试时问 BI 工程师:你怎么知道你的 SQL 是对的?他们通常会看着我,好像这是个超级奇怪的问题。但 SQL(或任何拉数的工具)至关重要,因为如果您把数据集拼得一团糟,后面做再花哨的统计也无济于事。组装数据时要非常有条理地检查是否正确:思考连接计划(join plan),在数据子集上测试,确保汇总统计有意义、分布合理。检查一些合情合理的东西,比如你不可能在直邮活动里看到 10% 的提升。另一个很重要的点是,模型要部署到生产,这意味着您可能需要集成测试或其他测试,以确保生产中的东西忠实于研究阶段开发的内容。
生产中的数据科学
Hugo:那么,在您过去的工作或现在 Convoy,数据科学家在把成果推向生产这一环上处于什么位置?
Ben:这在不同组织、团队差异很大。有些地方数据科学家只做纯研究,然后把东西“扔过墙”,工程来做些“魔法”。这可能有问题,很多东西在传递中丢失。很多工程师拿到 R 代码会不开心。希望他们拿到 Python 还好些。在 Convoy,我们努力做到由数据科学家端到端拥有自己的模型,同时我们要有一个机器学习平台来部署模型。我们还没完全做到位,但在这方面还在推进。我认为这对所有人更好:工程师可以直接调用数据服务拿到所需结果。我们的组织方式也很有利于做好数据科学,我们按产品组来协作,每个产品组会包含一位产品经理、一位或多位数据科学家和一群工程师。这里出色的一点是,我们的产品经理都非常技术型。大多数人有计算机科学硕士或同等背景、优质 MBA,并且都会写 SQL。有位产品经理,我在面试时问了一个需要用 left outer join 的 SQL 题,他 60 秒就解出来了。我想他已经听腻这个例子了,但这就是我们 PM 的水准:技术型、数据导向,会写 SQL,能理解本科水平的统计。这非常有帮助,因为他们会推动正确地做数据科学。我们还有很多横向连接的机制,确保数据科学家持续交流合作。比如我们有数据科学午间分享;我也会和其他数据科学家做技术一对一,确保他们方向正确,解答技术问题,避免受阻。
Hugo:我也认为技术型的产品经理,如您所说,好处很多,其中一点是他们确实能和您就技术问题深入对话,对吧?
Ben:对。他们非常致力于数据驱动。他们知道写新功能的方案时,需要和数据科学家合作,制定 Stack Overflow 式的方案或其他方案,来验证与确认他们的想法。他们都是数据的拥护者。我们对 PM 的标准非常高,但在这种组织里,PM 能参与到数据对话至关重要,因为他们经常主导研究问题。CPO Ziad Ismail 就是他们多么数据驱动的例子:他会写 SQL。这位老兄会熬夜写 SQL 来理解业务,对我们数仓数据的了解之深不亚于任何人。
Hugo:真酷。不过您本人也有一套非常令人印象深刻的统计、计量功底与数据科学技术。我想知道,您最喜欢的数据科学技术或方法是什么?
Ben:好问题。这有点像问“你最喜欢的鸟是什么,或者相机是什么”。英国有句俗语是“绳子有多长?”
Hugo:没人能回答。
Ben:对吧?所以我倾向于……
Hugo:是啊,您对什么感兴趣?喜欢什么?
Ben:……用解决问题最合适的工具。我读博时所在的项目在面板数据方法上非常强,比如我在 UCL 时,Richard Blundell 等人推动了很多这方面的发展。这是我的强项之一:使用面板数据方法。但我也很喜欢很多核心的机器学习工具。具体要看问题。我想用最合适的工具。让我最高兴的不是用哪种工具,而是解决有趣的问题。归根结底,我是一个应用型科学家。我处理过一系列问题,从量子宇宙学到生物信息学,再到卡车运输等。拥有有趣的问题最重要,能找到合适的工具来解决它很关键。除了工具,还有数据与软件。
数据科学的未来
Hugo:我们聊了很多当代数据科学。在您看来,数据科学的未来是什么样?
Ben:我觉得我们正处在一个了不起的时代。如果您有数学和统计技能,数据正无处不在地爆炸式增长。我觉得我们会度过一段既有趣又好玩的时光,直到 Elon Musk 想出办法把我们都“淘汰”。
Hugo:在那之前会发生什么?
Ben:总有一天,会有工具把很多简单模型自动化。您已经开始看到一些公司试图售卖“商品化的流失模型”等等。我觉得这可能存在问题,因为归根结底,每家公司的数据都是独特的,不如从零开始做自己的流失模型。但您可能会看到更多商品化模型,以及更多自动化低垂数据科学果实的工具。所以我认为,要拥有成功而快乐的职业生涯,您需要往价值链上游走,去做那些不会轻易被自动化取代的东西,比如自动化特征工程。比如我之前在 Context Relevant 工作时,他们在为大类问题自动化特征工程方面取得了不错进展。
Hugo:您会建议有志于此、甚至经验丰富的数据科学家培养哪些技能,以免他们的工作被自动化?
Ben:第一,数学永远不嫌多。这非常值得投入,而且要从年轻时开始。我在 Galvanize(他们办数据科学训练营)教过课。编程能力的短板我可以在 8 周内补上。数学短板我在 8 周或 12 周内补不上——那是多年的学习。所以要不断投资数学。之后要掌握核心算法,然后要持续阅读。很多人进了业界就不再读书,尤其是更资深的人。您要选择一个符合兴趣的专精方向。比如我对实验与贝叶斯方法特别感兴趣,近几年我在这两方面都更深入。很多人都在做深度学习,那是个竞争激烈的领域。我认为数据科学还有很多其他有趣且重要的方向。当然,如果您想做深度学习,就去做。但我觉得当个“逆行者”也有好处。
行动号召
Hugo:我也这么想。说到这里,您对初入行或已成名的数据科学家有什么最后的行动号召吗?
Ben:我想对想进入数据科学的人说的主要一点是:要明白这是在为“一生的学习”做准备,这是一场马拉松,不是冲刺。就像读博士,您需要掌握节奏。这可能需要好几年才能做到。所以要持续投入。也许晚上少看点 Netflix,多花点时间读相关书与论文、写代码、玩模型。如果您对数据没有那种兴奋感,也许另有更让您开心的地方。
Hugo:所以,持续学习、持续阅读、持续动手。
Ben:对。我个人——我想我们这个行业很多人都这样——觉得数据就像阿加莎·克里斯蒂的小说,里面有个谜,我想把它解开,看看是不是芥末上校在客厅用烛台作案。
Hugo:太精彩了,Ben。您把数据科学生活过成了侦探小说。
Ben:差不多吧。
Hugo:太棒了。我很能共鸣,因为数据不断“馈赠”。我有个同事总说,您需要“倾听”您的数据。只要您在听,它就会说话,对吧?
Ben:对。我也见过……既然您之前谈到常见错误,我看到很多科学家犯的一个错误是,没做 EDA 就太快跳入建模。EDA 是 Tukey 提出的著名术语,指探索性数据分析。值得在 EDA 上投入时间,因为您会发现惊喜。比如我刚加入 Convoy,就对数据做了些 EDA,发现了数据清洗与异常值的问题,此前没人处理。我们修好了,定价模型性能提升了大约 10%。这就像白捡的性能。
Hugo:很有启发。做 EDA(探索性数据分析)确实如此。人很容易想直接跳入建模之类的,我总鼓励大家先用一百种方式可视化数据,看看汇总统计等,再去做别的。
Ben:对。我也尝试教学生一种非常有条理、标准化的方法。CRISP-DM 就很棒,即跨行业数据挖掘标准流程,这是我见过的最佳数据科学项目工作流。按部就班能确保不漏步骤。先理解业务问题,再理解你有什么数据;准备数据;建模、评估与部署。在任一步,您可能发现错误,需要回到前面步骤修正。比如开始建模,发现哦,我的特征工程没做好,或者需要增加一个特征来捕捉某种关键行为,模型在这方面失败。像这样系统化能避免重复劳动或漏步。最终在“正确性”方面,我想把 CRISP-DM 与 VV & UQ 结合起来。这样就会非常强大、专业、成熟。
Hugo:太棒了。这很能说明未来数据科学可能采取或融入的一种系统结构。
Ben:对。另外,建模是最有趣、也是通往答案的部分,但在它之前的那些工作非常重要,占用大约 80% 的时间。那就是清洗与准备数据。建模本身很快,像过山车的高点,一下子就没了,又回到常态了。我认为我们会看到更多工具,让建模前阶段更快。因为那才是您获得生产力提升的关键所在:如果您能在那个阶段更快,就会更高效。所以这是值得投入的地方。比如您应该学习 UNIX,熟练使用命令行工具,以及其他能帮您更快把数据准备就绪的平台与技术。
Hugo:正是。Ben,今天非常高兴您能来做客。
Ben:谢谢你,Hugo。很高兴能来,也祝节目越办越好。
Hugo:谢谢。
Hugo:Ben,欢迎来到 DataFramed。
Ben:谢谢你,Hugo。很高兴来到这里,也很期待今天和您聊聊 Convoy 与数据科学。
Hugo:我完全同意。很高兴您能来。在 DataFramed 持续探索“数据科学是什么、能成为什么”的过程中,我对今天能和您谈谈您在 Convoy 的工作,以及数据科学如何在革新卡车运输行业中发挥作用感到非常兴奋。可以说,这个行业是北美最具影响力的行业之一。不过在此之前,我想先聊聊您本人。
Ben:好,谢谢。
什么是数据科学家?
Hugo:人们总问我,数据科学家到底做什么?Ben,您的同事觉得您在做什么?
Ben:这是个好问题。我认为“数据科学家”这个词很模糊,对不同人意味着不同的东西。我进入数据科学既有自然科学背景,也有社会科学背景。在拿到经济学博士之前,我还在硅谷绕了个弯。所以对我来说,我大概有一半时间在开会,讨论如何运行我们的平台的科学问题,或者我们如何在这里发展我们的数据科学方法,或是一些具体问题,比如实验设计。还有大约一半时间在指导其他数据科学家,比如帮助一位初级数据科学家为某个营销活动做实验设计,或者构建一个生存模型来理解客户留存。
然后我还有另外“二分之一”的时间作为个人贡献者,思考驱动我们平台的各种因素,并通过解决当下最紧急的问题来产生影响。比如思考拍卖、匹配、定价等问题。会做数学的人可能注意到了,这样加起来是三个二分之一,但我在一家初创公司工作,所以事情并不会刚好加成一。
Hugo:我太有同感了。在 DataCamp,我有时觉得自己像在做一个无穷级数。而且据你所说,你的背景是物理,你告诉我物理学家眼里只有三个数字,对吧?
Ben:对。就是零、一和无穷,其他都是尺度问题。老笑话了。
Ben 的数据科学职业历程
Hugo:正是如此。那您是如何进入数据科学的?
Ben:这是个好问题,我想我一直在和软件、数据、数学、统计和模型打交道。DJ Patil 提出这个词并走红之后,市场部的人就把我“重命名”为数据科学家。但即使在我本科时,我也在写软件来理解科学问题。我做的第一个“数据科学味儿”的事情,是我给 McKinnon(华盛顿大学一位了不起的行星科学家)写了一个程序来研究陨坑松弛。那时校园里 Frankie 乐队很火,因为我们研究的是陨坑松弛(relaxation),我就把程序叫做 Frankie。再近一些,在我读完博士之后,我在芝加哥大学,然后被招去亚马逊工作。那大概是 2012 年。那时我会说,我真正完成了从学术界向产业界的转变,把学界的方法应用到工业界。
Hugo:所以现在您在 Convoy 做数据科学家?
Ben:对。
Convoy
Hugo:跟我聊聊 Convoy 做什么、使命是什么?
Ben:这是一个很好的例子,说明让软件进入一个成熟行业要比让一个成熟行业自己把软件引进来容易得多。货运行业历史很长。在美国,这是一个超级巨大的市场,大概有 8000 亿美元。这里有个问题,多数承运商高度分散,抱歉,我的意思是“承运商”。承运商就是卡车公司,拥有一辆或多辆卡车。承运商高度分散,处于第 95 百分位的承运商也就两三辆卡车。所以托运人和他们对接的方式,是通过经纪人,而经纪人用的是 20 世纪 80 年代的技术:电话和传真。我们在 Convoy 做的,是开创一种称为“数字货运”的新方法,我们用技术,特别是数据科学,让整个流程对每个人都更好。因为为某个货物匹配到合适的承运商非常重要,这样一切会更顺,所以我们需要定价、匹配并将整个流程自动化,这将彻底革新整个行业的成本结构。对所有听众而言,您们也都是消费者,您买的大多数东西在到达您手中之前要经历八到十次卡车运输。所以,如果我们能降低货运成本,您购买的东西的价格就有望更有竞争力。
Hugo:那这在一线看起来是什么样子……您说承运商就是司机?
Ben:承运商……这个定义有点复杂,因为很多是自营车主,有点像“美国梦”。比如在美国西北太平洋地区,可能是一个白手起家的俄罗斯移民,努力打拼成为拥有一辆卡车的自营车主,然后越来越成功,再扩充车队。Convoy 正在努力帮助自营车主做到这些。也可能是更成熟的中型卡车公司。通常他们有一辆或多辆卡车。对个人而言,很难把规模扩到 20 辆以上,因为那时物流就很复杂了,还要处理人力资源等问题。
Hugo:确实如此。那么对承运商而言,Convoy 在一线的体验是什么样?他们会用 App 吗,还是……
Ben:对,这是个好问题。他们与我们互动的主要方式是 Convoy 应用。我们有一个简单的入驻流程,方便他们提交资料包,比如保险与许可证信息,然后我们就能激活他们的账户。此后,他们会看到基于他们偏好的货物类型而推送给他们的报价。比如他们可能会说:“嘿,我喜欢在 I-5 走廊跑车。”然后就能在应用内接受这些货物,从不需要和真人通话,效率非常高。
他们也可以竞价。如果他们不喜欢我们的价格,或与其他承运商竞争一个货物时,他们可以出价,价格会根据市场情况上下浮动。我们还会为他们做的一件好事是,比如他们从旧金山拉货到洛杉矶,如果我们看到他们这么做了,就会说:“嘿,我们有一票从洛杉矶发出的货,要回到您之前所在的地方或去别处。”我们会意识到这一点,尽量让他们始终在路上、持续赚钱,尽量少空驶。因为卡车大约有 40% 的时间是空载,这对环境和卡车司机都不利。
Hugo:是啊,我想您们要解决各种旅行推销员问题之类的,您当然不希望让司机从西雅图空车开到湾区再从那里拉货去别处。您希望找出如何优化他们的行程,让载货率更高,对吗?
Ben:是的,完全正确。随着平台流动性越来越强,解决这类问题就会越来越容易,基本上能让承运商几乎保持持续移动的状态。
Hugo:这真酷。我之所以觉得有意思,是因为我们谈到数据科学在现代产业中的作用,大多时候会想到科技行业——这个行业生于数据可得性的崛起。而您谈的是要革新一个在这些技术基础设施出现之前就已存在的行业。
Ben:没错。如果我们能成功,我们将改变一个影响许多美国人的大型行业的成本结构。我在 Convoy 学到的一个惊人事实是,大概 45 个州里最常见的职业是卡车司机。所以这关乎很多人的就业,也关乎所有消费者。这会对很多人的生活产生积极影响,尤其是卡车司机本身。我们让他们更容易经营自己的生意、扩张业务,运行中也更少摩擦。
Convoy 的数据科学
Hugo:确实如此。那么数据科学如何在 Convoy 的使命中发挥关键作用?
Ben:数据科学是我们工作的核心。事实上,从我们开业第一天起,我们就一直是自动化的。我们需要解决大量充满经济学意味的迷人问题。非常重要的一点是能预测价格,因为我们需要对托运人定对价,很多时候我们和他们签长期合同;同时也要对承运商定对价。接着要确保解决匹配问题,把合适的承运商匹配到合适的货物。这会给所有人带来更好结果。比如,“合适”可能意味着更少的空驶(dead head),也就是为去到装货起点而空车行驶的时间;目的地也很重要。我们关注拍卖和承运商的价格接受机制,以及与承运商全生命周期相关的许多其他事情,并确保承运商提货后,一切进展顺利。类似这样的问题有很多。
Hugo:我感觉这类业务会遇到“先有鸡还是先有蛋”的问题:要说服托运人加入,您需要承运商;要说服承运商加入,又需要托运人。
Ben:是的,这对任何平台都很难。我们的 A 轮投资人之一 Simon Rothman 写过一篇很棒的文章,他说基本上您得同时创办两家公司。也就是要在供给侧和需求侧同时自举,这让事情变得非常棘手,因为我们必须保持平衡。
幸运的是,我们有出色的销售团队,能很好地创造高质量需求,然后我们快速构建供给,努力维持平衡。这是我们跟踪的事情。任何平台都会担心这个问题,他们非常重视流动性与平衡。就像您去一个约会网站,假设您是异性恋,如果上面没有女性,那就是糟糕的约会体验。所以您需要男女数量平衡。
Hugo:我之所以想到这个,是因为我们之前在 DataCamp 早期也有类似挑战:一边吸引学生,一边招募讲师。讲师想要受众,学生想要最好的讲师,对吧?
Ben:对,完全正确。另一个要说的是,存在网络效应。一旦运转起来,这类业务往往呈指数级增长,这非常令人兴奋。这意味着如果您做得对,您会发现自己都忙得睡不着觉。
Hugo:确实如此。您说过最重要的事情之一是强大的销售团队。那么数据科学团队如何与公司,譬如与销售团队,进行整合?
Ben:我觉得我们能做的一大件事是帮助他们理解定价,比如如何对某些货物竞标、哪些货物值得投标。这些都是我们能与他们紧密合作的方式。定价极其复杂,伴随各种激励,要解释清楚能说上几个小时。
Hugo:我们一直在讨论、盘旋于数据科学的角色。具体到您的工作,需要回答哪些类型的数据科学问题?
Ben:我认为 Convoy 的文化有一点特别好,就是非常数据驱动。我们做了非常多的实验,我想和行业里的其他顶尖玩家一样。所以我们回答问题的方式通常是通过实验,这也是唯一的解决办法。我们做很多实验,也在搭建非常好的实验平台方面投入很大,使我们能快速迭代。有不同的 A/B 测试方法,比如贝叶斯或频率学派;贝叶斯或序贯分析能更快给出答案,也更容易和产品经理讨论结果。
A/B 测试
Hugo:让我们稍微回溯一下,能否举个您们做的 A/B 测试例子?
Ben:好。典型的 A/B 测试会问:某个新的用户体验流程是否更好?比如我们关心的一件事是,司机完成行程后能否自动上传他们的文件,那叫 BOL(提单,bill of lading)。如果我们推出了一个新的流程来改进并简化它,我们可以做一个实验:让一半承运商继续使用旧流程,另一半使用新流程,然后过一段时间,我们就能以一定的概率判断新流程是否更好。
Hugo:这是个很好的例子,也把 A/B 测试描述得很清楚。我再追问一下。您提到贝叶斯方法比频率学派方法收敛更快或更快给出结果。我知道这有点临时起意,但能否为外行简要介绍一下频率学派统计(更多人熟悉)与您这里谈到的贝叶斯方法的区别?
Ben:当然。最早的统计学方法其实是贝叶斯方法,由 Thomas Bayes 提出,他实际上是一位牧师。他的想法很像直觉:您先从某个先验信念出发,比如“我的新流程更好”,设想能带来 10% 的提升。然后随着观测到数据,更新这些信念。通过贝叶斯更新,您会收敛到所谓的后验分布,那就是我们期望的提升的分布。
频率学派的观点……在说频率学派之前,贝叶斯方法在大约二十年前之前很难计算,因为算力不足。此后有了巨大的改进,计算这些模型容易多了。此前您只能解决一些特殊情形。像 R.A. Fisher 之类的人对贝叶斯方法非常批评,于是在 20 世纪早期(如果我没记错)发展出频率学派方法。那里的想法是,参数有一个真实值,如果我采样足够多的数据,随着数据越来越多,它会收敛到真实值。
因此频率学派倾向于谈 P 值和置信区间,这是大家熟悉的传统假设检验。在频率学派世界里,您得对市场经理说:“在原假设为真条件下,我观察到的效应像这样大或更大的概率是 5.7%。”然后您会陷入争论,因为传统显著性水平是 5%。在这个例子里,如果您是“好人”,就不能拒绝原假设。但您的市场经理可能会说:“5.7% 离 5% 很近嘛,不如我们用 10% 的显著性水平吧。”您就陷入困境了。而用贝叶斯方法,您可以对产品经理说:“A 版本优于 B 版本的概率是 94.3% 或 98%。”这就容易多了。
Hugo:在您说的例子里,A 和 B 两个版本,或者我们关注的参数,是成功上传所有文件的人数吗?
Ben:对。
Hugo:作为 UX 不同的函数。
Ben:对。就是您正在测试的任何东西。比如我的新工作流是否有更高的点击率或更高的结账率?是否降低流失?您感兴趣的任何指标都可以。所以,是的。我认为贝叶斯方法除了更易与产品经理沟通之外……在我们的模拟研究中,我们发现它收敛更快。当然这在我们的业务中是这样,您的业务可能不同;如果您在欧洲,您的“千米”也可能不同。
Hugo:我记得 Dave Robinson 曾在 Stack Overflow 写过几篇关于贝叶斯 A/B 测试的文章,显示他们的实验不一定更快收敛。我需要再去核对,我们也会把链接放在节目笔记里。
Ben:对。Evan Miller 也有一些很棒的博文。
其他数据科学技术与方法:计量经济学与机器学习
Hugo:您提到了实验设计。这是个很有趣的切入点,因为很多人可能不会想到实验设计及此类方法在用数据科学重塑卡车运输行业时会扮演这么大的角色。您们还关注哪些技术与方法?
Ben:是的,在继续之前,我想给 A/B 测试收个尾。关于卡车行业,有很多人的“经验之谈”。我们公司一半是科技初创公司,一半是卡车行业的资深人士,他们有很多来之不易的知识与直觉,但并不总是准确或精确。通过做实验,我们可以把事情变得更具体。
Hugo:这其中是否也有政治或社会层面的因素?因为很多人已经在这个行业待了很久,拥有一定权力,也有某种来之不易的知识。是否存在这样一种观点:科技初创公司来“颠覆”,于是需要在社会行为上做出回应?
Ben:我只能在 Convoy 的文化范围内发言。我们的文化很好,团队导向很强。感觉就像我在一支配合默契的冰球队里。我觉得两边都很欣赏彼此的价值。甚至两位行业资深人士也可能意见不合。在 Convoy,我们尽量避免那种无法用……让我换种说法,如果分歧无法用某种基于理论或事实的理性论证来解决,我们就做实验。不坐在那里争个没完。
Hugo:那么还有什么?您们还在使用哪些技术与方法论?
Ben:我们非常强调实用、应用型数据科学。我们要在很短的时间内解决具体的业务问题。我们用的基本是您预期中的标准工具箱。我们对工具很“不可知论”,大家倾向于用最合适的工具。技术上可能是 R 或 Python,它们各有优劣,最好两者都懂。至于具体方法,有时机器学习最好,特别是当我们需要预测某件事时,比如预测某人是否会上传 BOL,或是否会成为一个好的承运商。那您可能会做逻辑回归或某种提升式分类器。但有时您需要理解 A 是否导致了 B,也许无法做实验,那么就回到应用统计的世界,做某种回归分析。我在 Convoy 的第一个“胜利”是:在我入职前,他们上线了一个功能,但没有做 A/B 测试,想知道新功能是否有效。我用 Google 开发的 causal impact 包(基于贝叶斯结构化时间序列)证明这个新功能产生了正向影响。
Hugo:太棒了。这是用已经收集的数据完成的?
Ben:对。我们有现有数据。然后您就要尽量确保一切尽可能接近随机分配。要成为实验,关键的一点是随机分配到处理组,同时还要满足一些条件,比如分配是个体化的、概率性的、且不受混淆。这些是技术术语。如果这些条件失败了,您就回到了观察性数据的世界,需要使用应用统计或计量经济学方法,努力创造一个“尽可能接近随机分配”的设置,从而对“是否 A 导致了 B”做出某种因果判断。
Hugo:能提醒我计量经济学是什么吗?
Ben:哦,计量经济学是一组经济学家为解决经济问题而发展起来的统计工具。对商业世界而言,这些工具非常有用,因为我们的大多数问题本质上都是经济问题。经典的例子是处理样本选择偏差和其他所谓“内生性”的形式,也就是模型中结果相互决定。比如您想理解增加警力是否会降低犯罪。犯罪可能是警力的函数,但警力本身也是犯罪水平的函数。这是“同时性”的例子。样本选择偏差,一旦您开始注意,会发现无处不在。比如我想做实验看看小班教学是否提高阅读理解,但所有“有钱有势”的家长都坚持把孩子放进小班,于是小班的孩子更聪明,现在就有了选择偏差。
Hugo:所以计量经济学开发了很多工具来处理这些挑战?
Ben:对。尤其有一类工具对经济学家来说很常见,但经济学之外的数据科学家不太熟悉,那就是面板数据方法。这些工具非常擅长处理经济学家所谓的“个体异质性”。如果我在研究承运商或货运的行为,它们有一些我无法观测的个体特性。如果我能在时间维度上观察一个承运商,面板数据就能提供很好的方法,去除这些不可观测的个体效应,避免干扰估计。
Hugo:很有意思。是不是可以这么理解(不对请纠正):在计量经济学里有一整套非常聪明的人开发的工具,完全可以在数据科学里用起来,但在数据科学领域还没被充分重视?
Ben:对。我也热爱机器学习,它很棒,但有些问题机器学习解决不了。我觉得人们有时过于聚焦机器学习,以至于忽视了经常非常有用的计量方法,它们能解决机器学习解决不了的问题。我记得加入 Convoy 之前和 Uber 的人聊过,他说他们遇到过机器学习无法解决的问题,只有构建结构型计量经济学模型才能解决。这是个非常复杂的过程,通常需要一年或更久才能把模型做好。您会尝试建模完整的行为过程和效用函数,但完成后您会有一个非常丰富而强大的模型,能对反事实结果做出很好的预测。
Hugo:酷。这是在 Uber,对吧?
Ben:对。其实是我面试他们的时候聊到的,我在去 Convoy 之前面过他们。
地理空间数据、质量与自动驾驶
Hugo:听起来……我们谈了机器学习、计量经济学、实验设计以及用于 A/B 测试的贝叶斯方法。看起来您们有大量地理数据、地理空间数据以及其时间序列。这在您的工作中发挥作用吗?
Ben:是的。我认为这类数据非常重要,我们才刚开始解锁其潜力。我们在应用里用它来改善承运商的体验。比如承运商到达装货地点时,我们可以基于地理空间数据自动为其签到。有些装货设施条件很差,如果让卡车等太久,就需要支付所谓的滞留费(detention)。当承运商满足条件时,我们可以自动支付滞留费,而不用让他们经历繁琐的文档流程,这和在美国报保险理赔有点相似。
Hugo:当您说我们有很多数据、潜力尚未完全挖掘时,我想到可能还会有各种社会研究的机会,围绕您们正在获取的数据?
Ben:是的。我认为我们能回答很多关于匹配、平台与拍卖的有趣问题,我非常愿意更深入地研究这些。我相信可以写出很多学术论文。
Hugo:在 Convoy,您参与的哪些数据科学项目对社会影响最大或最能反映社会现象?
Ben:这是个好问题。我在 Convoy 略超一年,而公司刚成立两年多。我主要聚焦在定价和实验上。我认为我们做过的最有趣的实验之一是我入职后不久,我们做了一个实验,给高质量承运商提供优先访问货源的机会,结果质量下降了。所有人都震惊:“等等,我们给高质量人群更早的工作机会,质量却下降?怎么回事?这说不通啊。”一个糟糕的经理可能会说:“嘿,你这个数据科学家真蠢。”幸运的是,我们的数据科学负责人 Ziad Ismail 打造了很好的数据文化,他让我们深入研究。我开始思考经济学里的匹配文献。我的假设是,因为我们把承运商池子限制得更小,尽管他们平均更高质量,但任务的匹配质量下降了。我们验证了这一点,并做了回归分析,显示匹配质量对质量有因果影响。这是一个非常令人兴奋的发现,因为它展示了匹配在我们平台上的重要性。
Hugo:太不可思议了。让我再梳理一下:给高质量承运商提前访问货源,意味着把他们和托运人的匹配算法在某种意义上做了收缩,导致匹配质量下降,从而引发了(执行)质量的下降?
Ben:对。因为可选承运商池更小,尽管他们更好,但潜在可匹配的人更少,这一事实压过了“他们更高质量”这一点,导致实际执行质量下降。
Hugo:我记得有种巴西蚂蚁,群体中有 30%……我不是说这是直接类比,但假设每个蚁群有 30% 的蚂蚁什么都不做。如果您移除这 30%,一天后又会有另一批 30% 的蚂蚁什么都不做。我不是说有托运人或承运商什么都不做,而是可能存在某种稳定机制。很有意思的是,结果反向了——直觉上您会以为会更好,结果却更差。
Ben:是啊。这很好地说明了为什么实验如此重要。我们在这里做实验时,形成了一个传统:大家会投票预测哪个结果会赢。这让全公司都参与到实验中来。通常 UX 团队会给赢家发甜甜圈或酷炫贴纸之类的奖励。我们做过很多这样的实验,预期发生的事并没有发生。因为人们很容易爱上某个自以为很棒的功能,但现实是,要找到真正能推动平台前进的东西越来越难。
Hugo:某种意义上,您们在做的是“实验室”吧?
Ben:对,我们是。聚焦于我们的业务问题。
Hugo:如果这涉及公司战略或私密信息,就请打住。我只是想知道,您们如何衡量承运商质量或一次交付的质量?
Ben:卡车运输行业有个普遍问题:大约 10% 的情况下,承运商已经承诺接单,但会爽约,或在最后一刻说不接了,通常的借口是卡车坏了。卡车并不会有 10% 的时间都坏。真实情况是,有人给了他们更高的价。有些承运商经常这样做;也有些承运商——我看过他们的数据,跑了 100、300 趟,几乎从不“掉单”(fall off)。所以“掉单率”是我们用来衡量质量的关键指标之一。它一旦发生,对我们成本很高,因为我们承诺要为托运人提供高质量的运输体验,我们就得临时再找一辆车来接单,这非常昂贵。
Hugo:有道理。那对于自动驾驶汽车或自动驾驶卡车的到来,你们公司整体上有考虑吗?
Ben:是的。我还要补充一些关于质量的点,比如——
Hugo:哦,请继续。
Ben:司机的准点率、我们努力让他们使用应用,这很重要,因为这能降低合规与安全方面的成本。这些都非常重要。但在我提到的那个具体实验里,我主要关注的是掉单。我们也发现,如果能让承运商开始使用应用,就会发生各种好事,也会使很多事成为可能。作为数据科学家,我们做的另一件“很经济学”的事,就是思考如何在平台上设置激励,以获得我们想要的行为。一个例子是,如果承运商使用应用,就能拿到“快速付款”(quick pay),也就是我们当天付款。而行业标准通常是承运商在完成工作约 30 天后才拿到钱,这意味着他们通常会把应收款卖给保理公司,再损失 3%。所以如果他们使用应用,我们等于给了他们 3% 的加薪——保理费大概是 2-3%,我们等于给了他们 2-3% 的涨薪。
Hugo:对,这是加薪,也意味着他们更有流动性资产,对吧?
Ben:对。我不知道您怎样,但我做完活儿就想拿钱。如果要等 30 天才能拿到,这不太愉快。我还得买菜、交房租、买自行车零件。
Hugo:那关于自动驾驶汽车和自动驾驶卡车的到来,你们在 Convoy 是否在积极思考?
Ben:是的。我们确实在积极思考。我知道创始人通过他们的网络非常紧密地关注这件事。最终,当自动驾驶卡车出现时,可能会分阶段、不同自动化等级,但它们仍然需要与货源对接,而我们正好有这样的平台。我们的目标是在平台供给侧把它无缝接入。
数据科学的多面性
Hugo:我们一直在谈数据科学对卡车运输的影响,谈您在 Convoy 的工作。从不同角度切入数据科学,显然很多东西都融入了这个学科。就您而言,您既是计算经济学家、前物理学家,也曾是亚马逊的研究科学家。我的问题是,这些学科和经历如何融入您作为数据科学家的工作?
Ben:工具永远不嫌多。我年轻时做物理,很幸运和 John Wheeler 合作过。他常常“通灵”尼尔斯·玻尔般地说:“在你知道答案之前,永远不要引用任何东西。”这是著名的 Wheeler 式箴言,意思是,您应该对你的科学问题的正确答案有一种直觉。关于费曼有个著名的例子:费曼进来时觉得自己证明了什么,Wheeler 说你错了,费曼很恼火,怎么可能?这题他刚刚做出来。结果费曼的计算里有个错误。Wheeler 的物理学知识太深了,他就知道这不可能对,不合理。所以如果你做了一个直邮活动的提升实验,得到 10% 的提升,这大概率是错的,您不应该预期那是真的。所以我觉得物理在这方面很有帮助,教人灵活、培养数学能力,特别是线性代数。我认为线性代数对数据科学成功非常重要,可能比微积分还重要。经济学给了我思考商业问题的理论工具,也给了我用数据检验理论的计量工具。做软件工程的经历则让我把统计落地为代码。在任何地方工作,希望都在学习新技能。我觉得这对数据科学家非常重要。文化上,亚马逊教会我一种非常“成熟”的思考方式:有紧迫感、聚焦影响。这很像读博,您要反复问自己:我现在做的事能让我毕业吗?如果答案是否定的,那我做错了事。
Hugo:我记得您在 Data Science Pop-Up Seattle 做过一个很棒的演讲,叫《数据科学中的正确性》。我喜欢它的原因是,您指出了常见错误,并讨论我们可以如何作为一个领域去改正、建立一个定义清晰的学科。目前数据科学还是一个含混的技术、概念与应用的大拼盘。您能谈谈您认为当今数据科学家最容易犯的主要错误吗?
Ben:很高兴您喜欢那个演讲。
Hugo:我很喜欢,我们也会把链接放在节目笔记里,方便大家观看。
Ben:好。首先,希望大家喜欢。我认为科学模型的正确性非常重要。很多人,尤其刚入门的人,会觉得“哦,我的代码跑完了,出了个数,那就是对的”。先停一下。您要确保那是对的数。核工业里有一套关于这个的认识论框架,叫验证、确认与不确定性量化(Verification, Validation & Uncertainty Quantification)。我感谢我的博后导师、也是阿贡前主任 Robert Rosner,把 VV & UQ 介绍给我。VV & UQ 基本有三部分。第一个 V 是 Verification(验证):确保您的代码正确实现了模型,而不管模型是否正确。这意味着要做单元测试;也可以通过蒙特卡罗方法生成带已知参数的合成数据,确保得到预期结果,用这些方法确保代码正确。Validation(确认)是确保模型对现实有足够的逼真度,也就是做后续实验来确保模型是现实的准确表征。Uncertainty Quantification(不确定性量化)是思考模型的边界:您做了哪些假设?是否成立?是否可能出现类似海啸这样的事件摧毁核电站?也许您该为此做计划。我也喜欢在面试时问 BI 工程师:你怎么知道你的 SQL 是对的?他们通常会看着我,好像这是个超级奇怪的问题。但 SQL(或任何拉数的工具)至关重要,因为如果您把数据集拼得一团糟,后面做再花哨的统计也无济于事。组装数据时要非常有条理地检查是否正确:思考连接计划(join plan),在数据子集上测试,确保汇总统计有意义、分布合理。检查一些合情合理的东西,比如你不可能在直邮活动里看到 10% 的提升。另一个很重要的点是,模型要部署到生产,这意味着您可能需要集成测试或其他测试,以确保生产中的东西忠实于研究阶段开发的内容。
生产中的数据科学
Hugo:那么,在您过去的工作或现在 Convoy,数据科学家在把成果推向生产这一环上处于什么位置?
Ben:这在不同组织、团队差异很大。有些地方数据科学家只做纯研究,然后把东西“扔过墙”,工程来做些“魔法”。这可能有问题,很多东西在传递中丢失。很多工程师拿到 R 代码会不开心。希望他们拿到 Python 还好些。在 Convoy,我们努力做到由数据科学家端到端拥有自己的模型,同时我们要有一个机器学习平台来部署模型。我们还没完全做到位,但在这方面还在推进。我认为这对所有人更好:工程师可以直接调用数据服务拿到所需结果。我们的组织方式也很有利于做好数据科学,我们按产品组来协作,每个产品组会包含一位产品经理、一位或多位数据科学家和一群工程师。这里出色的一点是,我们的产品经理都非常技术型。大多数人有计算机科学硕士或同等背景、优质 MBA,并且都会写 SQL。有位产品经理,我在面试时问了一个需要用 left outer join 的 SQL 题,他 60 秒就解出来了。我想他已经听腻这个例子了,但这就是我们 PM 的水准:技术型、数据导向,会写 SQL,能理解本科水平的统计。这非常有帮助,因为他们会推动正确地做数据科学。我们还有很多横向连接的机制,确保数据科学家持续交流合作。比如我们有数据科学午间分享;我也会和其他数据科学家做技术一对一,确保他们方向正确,解答技术问题,避免受阻。
Hugo:我也认为技术型的产品经理,如您所说,好处很多,其中一点是他们确实能和您就技术问题深入对话,对吧?
Ben:对。他们非常致力于数据驱动。他们知道写新功能的方案时,需要和数据科学家合作,制定 Stack Overflow 式的方案或其他方案,来验证与确认他们的想法。他们都是数据的拥护者。我们对 PM 的标准非常高,但在这种组织里,PM 能参与到数据对话至关重要,因为他们经常主导研究问题。CPO Ziad Ismail 就是他们多么数据驱动的例子:他会写 SQL。这位老兄会熬夜写 SQL 来理解业务,对我们数仓数据的了解之深不亚于任何人。
Hugo:真酷。不过您本人也有一套非常令人印象深刻的统计、计量功底与数据科学技术。我想知道,您最喜欢的数据科学技术或方法是什么?
Ben:好问题。这有点像问“你最喜欢的鸟是什么,或者相机是什么”。英国有句俗语是“绳子有多长?”
Hugo:没人能回答。
Ben:对吧?所以我倾向于……
Hugo:是啊,您对什么感兴趣?喜欢什么?
Ben:……用解决问题最合适的工具。我读博时所在的项目在面板数据方法上非常强,比如我在 UCL 时,Richard Blundell 等人推动了很多这方面的发展。这是我的强项之一:使用面板数据方法。但我也很喜欢很多核心的机器学习工具。具体要看问题。我想用最合适的工具。让我最高兴的不是用哪种工具,而是解决有趣的问题。归根结底,我是一个应用型科学家。我处理过一系列问题,从量子宇宙学到生物信息学,再到卡车运输等。拥有有趣的问题最重要,能找到合适的工具来解决它很关键。除了工具,还有数据与软件。
数据科学的未来
Hugo:我们聊了很多当代数据科学。在您看来,数据科学的未来是什么样?
Ben:我觉得我们正处在一个了不起的时代。如果您有数学和统计技能,数据正无处不在地爆炸式增长。我觉得我们会度过一段既有趣又好玩的时光,直到 Elon Musk 想出办法把我们都“淘汰”。
Hugo:在那之前会发生什么?
Ben:总有一天,会有工具把很多简单模型自动化。您已经开始看到一些公司试图售卖“商品化的流失模型”等等。我觉得这可能存在问题,因为归根结底,每家公司的数据都是独特的,不如从零开始做自己的流失模型。但您可能会看到更多商品化模型,以及更多自动化低垂数据科学果实的工具。所以我认为,要拥有成功而快乐的职业生涯,您需要往价值链上游走,去做那些不会轻易被自动化取代的东西,比如自动化特征工程。比如我之前在 Context Relevant 工作时,他们在为大类问题自动化特征工程方面取得了不错进展。
Hugo:您会建议有志于此、甚至经验丰富的数据科学家培养哪些技能,以免他们的工作被自动化?
Ben:第一,数学永远不嫌多。这非常值得投入,而且要从年轻时开始。我在 Galvanize(他们办数据科学训练营)教过课。编程能力的短板我可以在 8 周内补上。数学短板我在 8 周或 12 周内补不上——那是多年的学习。所以要不断投资数学。之后要掌握核心算法,然后要持续阅读。很多人进了业界就不再读书,尤其是更资深的人。您要选择一个符合兴趣的专精方向。比如我对实验与贝叶斯方法特别感兴趣,近几年我在这两方面都更深入。很多人都在做深度学习,那是个竞争激烈的领域。我认为数据科学还有很多其他有趣且重要的方向。当然,如果您想做深度学习,就去做。但我觉得当个“逆行者”也有好处。
行动号召
Hugo:我也这么想。说到这里,您对初入行或已成名的数据科学家有什么最后的行动号召吗?
Ben:我想对想进入数据科学的人说的主要一点是:要明白这是在为“一生的学习”做准备,这是一场马拉松,不是冲刺。就像读博士,您需要掌握节奏。这可能需要好几年才能做到。所以要持续投入。也许晚上少看点 Netflix,多花点时间读相关书与论文、写代码、玩模型。如果您对数据没有那种兴奋感,也许另有更让您开心的地方。
Hugo:所以,持续学习、持续阅读、持续动手。
Ben:对。我个人——我想我们这个行业很多人都这样——觉得数据就像阿加莎·克里斯蒂的小说,里面有个谜,我想把它解开,看看是不是芥末上校在客厅用烛台作案。
Hugo:太精彩了,Ben。您把数据科学生活过成了侦探小说。
Ben:差不多吧。
Hugo:太棒了。我很能共鸣,因为数据不断“馈赠”。我有个同事总说,您需要“倾听”您的数据。只要您在听,它就会说话,对吧?
Ben:对。我也见过……既然您之前谈到常见错误,我看到很多科学家犯的一个错误是,没做 EDA 就太快跳入建模。EDA 是 Tukey 提出的著名术语,指探索性数据分析。值得在 EDA 上投入时间,因为您会发现惊喜。比如我刚加入 Convoy,就对数据做了些 EDA,发现了数据清洗与异常值的问题,此前没人处理。我们修好了,定价模型性能提升了大约 10%。这就像白捡的性能。
Hugo:很有启发。做 EDA(探索性数据分析)确实如此。人很容易想直接跳入建模之类的,我总鼓励大家先用一百种方式可视化数据,看看汇总统计等,再去做别的。
Ben:对。我也尝试教学生一种非常有条理、标准化的方法。CRISP-DM 就很棒,即跨行业数据挖掘标准流程,这是我见过的最佳数据科学项目工作流。按部就班能确保不漏步骤。先理解业务问题,再理解你有什么数据;准备数据;建模、评估与部署。在任一步,您可能发现错误,需要回到前面步骤修正。比如开始建模,发现哦,我的特征工程没做好,或者需要增加一个特征来捕捉某种关键行为,模型在这方面失败。像这样系统化能避免重复劳动或漏步。最终在“正确性”方面,我想把 CRISP-DM 与 VV & UQ 结合起来。这样就会非常强大、专业、成熟。
Hugo:太棒了。这很能说明未来数据科学可能采取或融入的一种系统结构。
Ben:对。另外,建模是最有趣、也是通往答案的部分,但在它之前的那些工作非常重要,占用大约 80% 的时间。那就是清洗与准备数据。建模本身很快,像过山车的高点,一下子就没了,又回到常态了。我认为我们会看到更多工具,让建模前阶段更快。因为那才是您获得生产力提升的关键所在:如果您能在那个阶段更快,就会更高效。所以这是值得投入的地方。比如您应该学习 UNIX,熟练使用命令行工具,以及其他能帮您更快把数据准备就绪的平台与技术。
Hugo:正是。Ben,今天非常高兴您能来做客。
Ben:谢谢你,Hugo。很高兴能来,也祝节目越办越好。
Hugo:谢谢。