“Uber 的机器学习让我失望”,一位 Uber 用户 Ian Xiao 吐槽道。他曾在 6 个小时里,眼睁睁看着黑客侵入了他的账户并花掉了 1000 多美元。但在此期间,Uber 所谓的先进技术与机器学习解决方案都没能成功将其阻止,这让 Ian Xiao 倍感无奈。拥有机器学习背景的 Ian Xiao 将自己的经历写成了一篇文章,并认真的对 Uber AI 提出了建议,最后还不忘鼓励 Uber AI 加油前进。不过,令人遗憾的是,Uber AI 似乎已经走向“死亡”。近日,Uber 已宣布关闭 Uber AI 实验室。
以下为 Ian Xiao 经历自述及对 Uber AI 的建议:
(免责声明:本文所涉及的皆为个人观点,与我所在组织无关)
眼睁睁看着 Uber 账户被黑客攻击
事情发生在 5 月 3 号。当天,我带着小狗出门转转。刚出门不久,手机就收到 UberEat 发出的通知,我没在意这件事情,就把手机塞回口袋。我没有注意到的是,手机仍然在响个不停。
十分钟之后,当我再次拿起手机,看到的是多条 UberEat 发出的通知。难道有人侵入了我的 Uber 账户,就连双因素验证都没挡住?最糟糕的是,我只能像看直播一样观看对方的操作过程。
2020 年 5 月 3 号的手机截屏
我长叹一声,开始寻求帮助。我想起应该更改密码以迫使对方登出。黑客显然预见了我的反应,抢先一步变更了密码并把我挡在账户外面。
看来没有其他办法,唯一的选择就是联系 Uber 客服。
与此同时,手机仍在弹出新的 UberEat 订单,数额开始超过 100 美元。餐厅与配送员也开始发来信息。
问题与建议
当时我非常肯定,Uber(或者 Mastercard)能把这笔钱退回来,事实也确实如此。但整个过程漫长且混乱。
回顾处理流程,我想到三个主要问题:
Uber 的客户服务不够顺畅,也不够“智能”;
Uber 的欺诈检测解决方案速度太慢;
Uber 的推荐引擎往往理解不了用户的意图。
下面,我就以一位普通用户身份在数据与机器学习解决方案层面给 Uber 提点建议。
1.客户服务
在发生问题时,受害者肯定会第一时间联系客户服务。这也是包括 Uber 在内的任何一家企业最关键、最复杂也最具有挑战性的运营环节。
A. 移动应用上不提供客户服务选项。
2020 年 5 月 10 日截取的 UberEat 屏幕
B. 很难在 Uber 帮助中找到合适的支持选项。
2020 年 5 月 10 日截取的 Uber 帮助网站屏幕
C. 来自其他渠道的响应速度缓慢且经常断开。
2020 年 5 月 10 日截取的 Facebook Messager UberEat 客户服务聊天记录
我焦急地阅读着 Uber 帮助网站上的选项,并在“我发现了未知费用”条目下提交了请求。根据我的理解,只有这条跟我的情况有那么一点贴合。
D. 令人抓狂的邮件支持。
2020 年 5 月 10 日截取自往来邮件界面
给客户服务的建议
下面,我提几点关于改善 Uber 客户服务体验的具体建议。
在应用登陆页中添加客户服务的移动界面,用户无需登录即可使用此功能。
改善 Uber 帮助中的内容标签。虽然“黑客”或者“欺诈”标签的搜索频率不高,但却具有紧急性以及巨大的财务影响。要求用户手动选择具体选项明显不太合理。
(可选)联系渠道。下放从非 Web 渠道到集中式用户信息/案例管理系统的代表访问权限。我很难完全确定 Facebook Massager 上的 Uber 代表找不到我的个人资料,每次回复还要花那么长的时间。我觉得这事肯定不该由 Facebook 解决。总而言之,系统集成度、培训与功能性都有问题,不好用。
改进模板化电子邮件回复机制。下图所示,为 Uber 方面给出的模板化回复,用于确认我上报的欺诈交易确实跟我的账户相关。
2020 年 5 月 10 日截取的响应屏幕
我又发了三条请求,前后耗了七个小时才弄清楚到底该怎么操作:我必须先提交请求,再使用 Uber 配置文件中预留的电子邮件地址进行回复。Uber 完全可以在返回的邮件模板中做出更明确的说明,或者针对特定情况发出特定内容。反正目前的设计非常糟糕,Uber 虽然省了事,但用户却遭了殃。
2. 欺诈检测系统
我个人一直关注 Uber 工程技术博客的内容,也很欣赏他们不断突破技术极限、永远追求创新彼岸的理念。
根据该博客,Uber 公司会收集 GPS 数据,并结合最新的混合工作流、行为分析与深度学习模型(将行为特征编码为 LSTM 模型)实现欺诈检测。
(注意:以上都是针对 Uber 乘车服务的解决方案,跟 UberEats 没啥关系。我只是假设二者会共享其中部分解决方案组件。)
基于 GPS 的欺诈检测
Uber 的欺诈检测工作流
行为分析
LSTM 编码与模型
但是,就算技术水平不高的加拿大银行也能很快自主发现并纠正欺诈行为,但 Uber 就得疯狂让我提供各种线索与指引。我真的很想知道这是为什么,难道是设计过度导致的?
关于 Uber 欺诈检测的建议
不管搞出多少所谓工程技术奇迹,我觉得应该真实一点:发现和响应欺诈活动的效率才是评判事实的唯一标准。如果做不到,用户损失的是时间和信心,Uber 损失的则是声誉以及在运营中倾注的心力和资源。
我给 Uber 的建议就是,越简单、越“傻瓜”越好。总之,请牢记二八原则。
根据我个人为低技术银行设计与部署欺诈引擎方面的经验,基于规则的引擎往往比复杂的机器学习解决方案效果更好。其原因有二:第一,简单的解决方案往往能够更快、更轻松地完成更新;第二,少数规则通常能够涵盖大多数欺诈事件(二八原则)。
某些欺诈者可能非常老练,所以我们得想办法更新规则。Uber 可以每月或者每季度审查未决案件,而后由团队按实际情况更新规则。
再回到我个人的案例,从以上提到的基于规则型解决方案出发,首先应该分析 Uber 订单中的三个基本面。
分析过程:
订单位置是否合理?
订单的配送目的地是否为用户的常住城市?
用户经常出差吗?
用户在出差途中,是否也会使用 UberEat?
示例:我住在多伦多,偶尔会出差,但我从来没在外地用过 UberEat 外卖服务。而黑客发布的所有订单都不在多伦多。
订单中的食物是否与用户的习惯相符?
用户喜欢尝试新鲜食物吗?(例如具体食品数量,以及相对于其他用户的排名。)
食物与用户的习惯相符吗?(例如点餐内容、平均订单量等。)
示例:我不是那种探索型的食客。平时,我主要从多伦多的 4 到 6 家餐厅订购日本及韩国食物。我的平均订单金额在 30 到 40 加元之间,而黑客的平均订单金额高达 108 美元。二者之间很明显存在差异。
用户的整体表现是否不太正常?
用户是否在短时间内下达了太多订单?(检查用户的平均订餐频率。)
用户是否在可疑位置处下单?(检查餐厅位置以及用户常住城市的配送点,以及最近 N 笔订单的发出位置等。)
示例:我每个月平均点 1 到 2 次餐,而黑客在 5 个小时之内就点了 11 份餐(相当于每月点 1650 份餐)。另外,黑客从至少 5 个彼此相距数千英里的美国城市点餐,这也太不正常了吧?
最后,这一切完全可以在 30 到 60 分钟之内进行近实时分析,这样用户就不必遭受长达 6 个小时的黑客入侵。
与基于机器学习的方法相比,其中很多计算都非常简单,并不需要耗费大量时间收集数据以做出决策,也完全不需要经历漫长的训练与推理周期。
我发现 Uber 在推送好评通知与反馈请求方面倒是速度很快,相信他们肯定有办法加快欺诈检测节奏。
2020 年 5 月 10 日截取的手机屏幕
虽然这一次客户支持体验很差,但我还是对 Uber 的工程团队充满信心。
3. 不那么善解人意的提醒机制
自从侵入事件结束后,Uber 的推荐算法仍在继续发挥“魔力”——在合适的时机发出通知,希望激起我的食欲。问题是,这些推荐都是按照黑客的套路来的。
最近两周截取的电子邮件与移动端推荐内容
过去两周,我收到的每一条 UberEat 都让人尴尬和沮丧。黑客似乎还在我身边,时刻提醒我 TA 曾经来过。
考虑到我的专业与兴趣,Uber 的推荐系统设计一直吸引着我的关注。
下图所示为 UberEat 推荐引擎的核心组件与流程:
多目标推荐设计
基于图的推荐系统
图学习方程式
基于图的推荐器中的损失函数
基于图的推荐器的工作流设计
但在这一切抽象思维与复杂设计之外,Uber 似乎还缺少一点简单但又切实有效的东西。
写给 Uber 推荐系统的建议
添加或更新数据验证条件。通过这种方式,数据通道就能在第一步中将训练或推理内的不良数据清除出去。Uber 应该把黑客在我账户中鼓捣的那些操作标记为异常,并从机器学习管道中彻底删除。
在模型训练与验证中调整总体订单权重。我使用 UberEat 已经三年多了,之前 Uber 的推荐一直比较正常。但在黑客入侵之后,一切都变了样。这表明该模型对于某些特征格外敏感。我感觉订单金额(根据官方博客的说明,即食客与餐厅间的交易美元数字)可能严重影响模型的判断。黑客在所有餐厅都发出大笔订单(超过 100 美元,而我的个人习惯一般只有 30 美元),导致模型误以为我特别喜欢这些餐厅。
添加或更新业务逻辑保护机制。我一直强烈建议企业在推理与服务之间额外建立一个业务逻辑层,这样才能避免我这段时间遭遇的状况。我们应该也完全有能力在帮助用户探索新喜好与机器学习带来的不相关(或者说不正确)的推荐之间寻求平衡点。
提供用户认可的推荐。目前,除了不点推荐餐食之外,我对 Uber 的愚蠢建议没有任何处置空间。我希望这么做能帮助系统完成自我纠正。当然,我肯定是打开了邮件、单击了通知栏,不知道在 Uber 看来,这算不算是用户接受了推荐。如果答案是肯定的,那我就陷入了恶性循环。我强烈建议 Uber 提供专门的 UI,允许用户积极参与推荐流程。
Uber AI 已死?
以上是 Ian Xiao 对 Uber AI 方向提出的建议,他也在文章结尾提到:希望阅读该文章的人可以将其转发给合适的团队,可惜,一直在裁员的 Uber 本周早些时候再次宣布裁员 3000 人,同时,Uber CEO Dara Khosrowshahi 还宣布将关闭 Uber 的非核心业务,包括孵化器以及人工智能业务研究院 AI LAB。Uber 解释道,这是基于削减成本和希望聚焦核心业务的战略考虑。
延伸阅读:《再裁 5400 人,CTO 离职,Uber 上市一年都经历了什么?》
Uber AI 实验室自 2016 年成立以来,专注于改善从外卖派送路线规划到自动驾驶汽车行驶方式的所有任务。成立 4 年来,Uber AI 实验室在 AI、机器学习等领域取得了不少成绩和突破,从开源工具包到进化算法的研究。有网友对此发表评论称,他认为 Uber AI 团队的实力被低估了,他们在 AI 方面所提出的一些重要问题被 DeepMind、OpenAI 等同行忽略了。
代表着 Ube 押注未来的 AI 实验室项目被关闭,这无疑是一个令人遗憾的消息。以下简单列一些 Uber AI 实验室成立 4 年来所取得的一些成果。
深度神经网络:
Uber AI 实验室研发了一种新技术,可以有效地进化深度神经网络。他们发现,一种极其简单的遗传算法(GA)可以训练包含超过 400 万个参数的深度卷积网络,从而从像素点开始玩雅达利游戏。此外,在许多游戏中,它的性能优于现代深度强化学习(RL)算法或进化策略(ES),同时由于更好的并行化,它的速度也更快。
Uber AI 实验室在神经进化方面的研究,为机器学习工具箱提供了一个有趣的替代方法。新算法将进化策略(ES)的优化能力和可扩展性与神经进化独有的方法结合起来,通过激励不同行为的主体群体来促进强化学习领域的探索。
AI-GAs: AI 生成算法
Uber AI 提出了一个可能最终能成功达到通用人工智能的路径,其理念是创建一个人工智能生成算法(AI- ga),在元学习体系结构、元学习算法本身和生成有效学习环境的帮助下,自动学习如何生成通用人工智能。
Plato
Uber 开放了名为 Plato Research Dialogue System 的人工智能平台。Plato 集成了深度学习技术和贝叶斯优化框架,为开发者提供清晰易懂的设计,同时减少编写代码的需要。
Fiber
Fiber 是一个开源的基于 Python 的分布式计算框架,用于构建现代计算机集群,以支持复杂的项目,如 POET 和需要分布式计算的类似项目。
Ludwig
Ludwig 构建在 TensorFlow 之上,允许用户在不编写代码的情况下训练和测试深度学习模型。通过这种方式,Ludwig 的独特之处在于,它能够帮助有经验的非专业人员和研究人员更容易理解深度学习,并使模型改进迭代周期更快。
有 Uber 内部人士表达了对公司关闭 AI 实验室的无奈,“在 Uber,纯粹的 AI 研究已死去”。突如其来的疫情让 Uber 这家明星出行创企遭遇了生死存亡的危局,在网约车主营业务还未见盈利的态势下,入局 AI、自动驾驶业务是网约车企业押注未来的一种普遍的战略选择,而当危机来临,“丢卒保车”也是很多公司不得不作出的抉择。
没有了“未来业务”的 Uber 将向何处去,这场疫情给它带来的危机与影响终局如何,或许不久就要见分晓了。
延伸阅读:
https://towardsdatascience.com/how-to-improve-uber-machine-learning-c83051d6e57f
https://analyticsindiamag.com/uber-ai-labs-layoffs/
评论