在我们入住民宿时,客服(Customer Support 或 CS)体验至关重要。它可以让一次旅程体验变得更满意,也可能令用户的整体感受变得更糟。为了支持爱彼迎房客和房东社区,我们投入了大量资源,利用自然语言处理(NLP)、机器学习(ML)和人工智能(AI) 等技术,开发了智能客服支持解决方案。
这篇文章将围绕爱彼迎近期上线的协商一致取消(Mutual Cancellation)功能,向大家展示如何运用面向任务的对话人工智能技术(以下简称「AI技术」) 设计自动化的用户支持系统。我们会展开讲讲如何将业务问题转化为 AI 技术问题,如何收集和标记训练数据,如何设计和构建机器学习模型,以及如何在线上系统中部署模型。此外,我们还将探讨每个步骤所面临的技术挑战和对应的创新性解决方案。
案例研究:
「协商一致取消」功能
在面对取消订单的复杂问题时,「协商一致取消」功能为房东房客提供了协商解决和双向免责的机会。然而,在协商一致取消模型开发完成之前,即使房客已经与房东就退款方案协商一致,房客仍需联系爱彼迎的社区支持专员来完成取消操作。这意味着房东、房客及社区支持专员都将面临复杂的沟通流程和较长的操作时间。为了解决这个问题,我们开发了能够帮助房客和房东自行解决取消和退款问题的 AI 模型。房东和房客可以共同协商,确定一个最合适的解决方案,然后自助完成取消操作,无需社区支持专员参与。如此一来,房东房客可以高效解决取消问题,社区支持专员也能将自己的时间和精力投入到更需要他们的地方。
下面我们将以协商一致取消功能作为示例,介绍爱彼迎面向任务 AI 系统的技术组件。
系统架构
爱彼迎的智能支持平台团队利用 AI 技术,帮助房客和房东以最有效的方式解决了他们在旅途中常见的取消问题。爱彼迎的人工智能模型基于公司构建的机器人智能助手平台 ATIS(Automatic Travel Information System)[1],学习和模仿人类客服专员,提供热情高效的帮助和关怀。个性化和智能的问题识别是提供热情高效的智能客户服务的基础,我们希望通过问题识别以最小的障碍迅速了解用户的情况、需求、问题和疑虑。一旦问题被明确识别,我们会立刻生成动态响应,引导用户通过各种产品流程来解决问题,或者将其问题转交给人工客服(社区支持专员)。
我们的智能客服产品被设计为「面向任务的对话系统」(Zang 等作者(2020)[2], Madotto 等作者(2020)[3])。近年来,面向任务的对话系统越来越受到关注,它可以为虚拟助手或智能扬声器等 AI 产品提供支持。这些模型可以理解用户的意图(例如「播放音乐」),从对话中提取所需的参数(例如「艺术家姓名和歌曲名称」),进一步提问澄清细节(例如「这首歌有两个版本,你想放哪个版本?」),然后完成任务——在完成任务的同时它可以与用户进行自然流畅的对话。
图1. 面向任务的对话系统: 爱彼迎机器人智能助手。它可以检测用户意图,通过生成适当响应和对应操作,最终完成任务。
客服:面向任务的对话问题
在实现机器学习应用的过程中,最关键的部分就是如何表述问题。与模型本身相比,问题表述更会影响产品的长期性能。在编写第一行代码之前,我们需要做出许多决策和权衡。我们设计了一个多层问题检测和决策系统,使得客服问题在特定领域更具可扩展性和适用性,详见图 2 。
图2. 多层用户问题检测和决策模型结构。
当用户在机器人智能助手中发送消息时,该消息先经由第一层领域分类模型(domain classification model)处理。领域分类模型确定消息属于哪个领域(domain),比如,这是重新预订房源的问题,还是取消订单的退款问题,还是可以通过推荐帮助文章来回答的操作类问题。如果协商一致取消领域被预测为最有可能的领域,系统会触发协商一致取消流程并进入第二层,进一步了解用户的意图并检查用户是否拥有协商一致取消的资格。
对于协商一致取消,第二层有两个模型:基于问答的意图理解模型和「预期退款率预测」模型。问答意图模型是在手动标记的数据集上训练的,「预期退款率预测」模型则是根据历史订单取消数据和专员人工判断是否符合退款条件的退款率数据进行训练的。退款率包含了出行的很多重要特征,这些特征对于「能否用 AI 系统替代人工客服做出决策」至关重要。
多层结构具有以下优点:
可扩展:它允许系统扩展到新领域,现有领域的特定领域模型不会受到新领域的影响。
有效:顶层模型是在手动标记的数据上训练的,这些数据通常是高质量的,但收集起来往往比较困难而且成本很高。特定领域模型大多借助历史数据训练,易于收集但数据嘈杂,而且偏向于过去的用户行为。借助多层结构我们可以利用人工标记的数据来训练顶层领域预测模型,并且利用历史数据来训练特定领域的模型。
训练数据的收集和标记
典型的面向任务的对话系统会构建一个意图分类树,其中每个节点代表一个特定意图,并且这些节点是互斥的。与其他共享经济企业类似,爱彼迎的客诉问题非常复杂,而且问题脉络也不像传统电商的客诉问题那么结构化。如何定义一个清晰的分类树来涵盖所有用户的问题,再将它们划分到细分的树状结构中,这很有挑战。
此外,分类树通常意味着我们需要从根节点沿着路径遍历到叶节点。在此过程中,系统会提出问题(例如「您要取消预订吗?」)或收集更多信息(例如「该用户是房客还是房东?」)以决定继续前进至哪个路径上的分支。
在爱彼迎的实际案例中,用户的问题要复杂得多,可能需要不同的问题序列才能有效地识别问题。对于协商一致取消,第一个问题(「房东和房客是否已经协商一致」)和第二个问题(「是谁发起的取消订单」)涵盖了取消预订和退款流程的不同方面。用一个简单而清晰的树结构分类法来涵盖所有用户问题,再依靠树的路径来有效地收集所需信息,这本身难度很大。所以我们决定用问答(Q&A)的形式来建模意图理解。
基于问答模型的用户意图理解
针对用户向用户支持平台发送的第一条消息,我们会询问几个有关用户意图的问题,然后让人工客服/数据标注人员回答这些问题。通过这个步骤,我们可以收集数据来训练问答模型。训练完的问答模型也能够近似地回答这些问题。用户的问题可以有多个答案,而且用户常常会尝试从不同的角度来描述问题。在某些情况下,这些问题可能是互斥的,但在其他情况下,这些问题可能又包含冗余信息。
以下是我们使用的一些标注数据的示例:
用户发送给爱彼迎的信息:
你好!我有个订单预订错了。我以为这个房源是整套出租的 ,但其实它只出租单个房间。我开始没注意到。我马上联系了我的房东,她也已经同意退款了,让我在 APP 里申请退款,但我找不到退款选项。
问题:是谁发起了取消预订请求?
回答:
1. 房东发起取消预订请求,或房东无法接待房客
2. 客人发起取消预订请求
3. 未提及
问题:房东和房客是否都同意退款?
答案:
1. 房东同意退款,并且也同意退款金额
2. 房东和房客在退款金额上有一些分歧
3. 房东不同意退款或已拒绝退款
4. 协商共识里没提到退款
5. 根本没有提到退款
问题:房客是在问:如何做才能得到他们想要的吗?(如何获得退款,该怎么做等)
答案:
1. 是
2. 否
问题:房客是在问:如果可以的话, 他们该如何获得退款,或者他们可以获得多少退款吗?
答案:
1. 是
2. 否
多选题的问答问题通常被建模为多元分类问题,其中每个类对应一个问题。然而,Jiang 等作者(2020)[4]提出了将问答问题建模为单选二元分类问题的想法。以这种方式对问题进行建模,问题的难度就增加了。因为从多个选项中选出正确答案已经不能满足需求了——模型必须将正确的选择预测为肯定的,将所有其他选择预测为否定的。通过这种方法能轻松地合并多个问答问题,扩大预训练规模。Khashabi 等作者(2020)[5] 也有相似发现:统一多个预训练数据集有助于提高模型性能。
我们采用了单选二元设置,用于统一来自不同领域的相关用户意图训练标签,增加训练数据的规模和提高性能。如上所述,我们不断审查数据标注质量,完善标注问卷设计,因此得到了许多版本的标注问题及各个版本的答案。单选设置允许我们在训练中将所有不同版本的训练问题混合在一起。
图 3 和图 4 显示了示例消息「我的房东同意全额退款,所以如果我现在取消是否可以获得全额退款?」的单选和多选设置之间的区别。
图3. 单选问答模型设置
图4. 多选问答模型设置
图5. 显示了我们实验中模型性能的差异。单选问答设置(Single-Choice Q&A Model)在线下标签预测准确性和线上转换预测上都优于传统的多元意图分类设置(Multi-class intent classification Model)。
以问答形式完成意图预测的优势和挑战
与传统的多元分类相比,问答设置使数据标签更易于管理。我们可以不断优化问卷设计,灵活融合不同维度、不同角度或冗余的问题。
在实际问题中,应用机器学习的最大挑战之一是缺乏高质量的训练数据。从机器学习的角度来看,即使训练数据很少,单选问答设置仍然允许我们在模型中构建许多功能。单选问答设置通过训练模型来对用户消息、问题和答案中的信息进行编码。这个模型还可以从其他领域的相关问题中学习。因此,它有能力理解训练标签中的问题,包括一些新构建的或未知的问题。
这种设置的弊端是它给服务的延迟带来很大的压力。例如,如果我们想使用模型回答五个问题,然后根据这五个问题进行操作,我们必须运行模型五次。在这篇文章的后面,我们将讨论如何减少模型延迟,包括如何使用 GPU。
模型设计与实现
我们使用 Autoencoder Transformers 作为模型架构,测试了各种模型选择作为基准,结果如下所示:
图6. 来自各种意图分类模型的样本外数据的结果
规模而异。在线上产品案例中,大约有 2 万个标签,Roberta-large 模型表现出了最佳性能,并且也是我们在产品环境中部署的模型。然而,对于 3.35 亿个的参数,在给定的延迟下线上运行这个模型是非常有挑战性的。
为了提高该模型的性能,我们利用了三个关键技术:
使用迁移学习预训练我们的 Transformer 模型
翻译训练标签以利用多语言模型
整合多轮意图预测结果
预训练…
近年来,或许深度学习最重要的发展是迁移学习和预训练。在几乎所有类型的 NLP、计算机视觉(CV)和自动语音识别(ASR)领域中,大多数最先进模型都采取了该技术。
我们广泛地试验了不同的预训练方法,发现两种预训练方法在提高模型性能方面特别有效:
域内无监督掩码语言模型(MLM)预训练:根据用户与爱彼迎客户支持平台的对话,房源描述和帮助文章的内容,我们构建了一个 1.08 GB,包含 1.52 亿个单词(word tokens)的无监督训练语料库。该语料库包含 14 种不同的语言,其中 56% 是英语。如图 7 中的实验结果所示,域内 MLM 预训练有助于提高我们模型性能。
跨域任务微调预训练:基于跨域数据集的预训练 Transformer 模型通常对许多任务都有帮助。在我们的用例中,它还可以有效提高意图检测的准确性。实验结果见图 8 和图 9。
图7. 域内预训练模型性能
图8. 跨域任务微调预训练模型性能
图9. 多语言任务微调预训练模型性能
在意图理解问题中,许多具有挑战性的案例都要求模型具有一定的逻辑推理能力。类似于 Yu 等作者(2020)[6]在逻辑推理公共数据集中的发现,在 RACE 数据集上进行预训练有助于最大程度地提高性能。
多语言模型
爱彼迎客服需要为来自世界各地的用户提供服务,目前支持 14 种语言。主要的非英语语言包括法语、西班牙语、德语和葡萄牙语,约占请求的 30%。由于我们的模型针对说任意语言的用户,但标记数据主要是英语,因此我们利用翻译注释数据集和多语种模型 XLM-RoBERTa 来提高模型在所有语言上的性能。
将训练标签翻译成其他语言是一种在许多深度学习训练案例中证明有效的无监督数据增强技术(Xie 等作者(2020)[7])。我们将带数据标注的英语训练语料库和带标注的问题及答案翻译成其他主要使用的语言,并将它们包含在训练数据中来训练 XLM-RoBERTa 模型。
我们还尝试在翻译文本上训练单语模型,以便与公共预训练单语模型进行比较。结果表明,在翻译过的数据集上训练的多语言模型明显优于仅在英语训练数据集上训练的模型。模型性能与通过翻译注释数据集训练的单语模型相当。
图10. 多语言与单语模型表现
结合多轮意图预测…
当用户带着协商一致取消的目的向机器人智能助手发起请求时,我们会从用户之前的对话中提取所有文本序列,并将之前消息的文本序列和当前请求消息的文本序列连接在一起生成新的文本序列,然后输入到 Transformer 模型中。通过对话状态跟踪(Gao 等作者(2019)[8])模块工作,引入用户过去的交互信息,更好地理解用户意图。我们尝试了两种线下方法来更好地使用该信号:1)将最后 N 轮消息作为附加特征添加到当前模型,以及 2)计算每个消息阈值的多轮意图预测得分并将最高的意图得分添加到下游模型。
包括之前的所有转换,Transformer 模型的计算复杂度是序列长度的 O(n⁴),这个复杂度使得它无法用于实时线上推断。为了解决这个问题,我们提前线下异步处理历史对话并存储预计算前的分数。在线上服务时,模型会直接查询与用户关联的预先计算好的分数。
图11. 多轮意图预测性能和延迟
线上服务
部署机器学习模型到线上环境处理方式完全不同于线下,这也带来了一些重大挑战。
GPU服务在线上推断中的应用…
线上服务的挑战之一是模型在生产环境里的延迟(latency)。我们采取了两个关键步骤来满足延迟要求:1) 启用 GPU 服务,以及 2) 利用迁移学习。与上一节中的讨论类似,迁移学习技术(如师生模型)用于减少线上推断所需的计算量。在本节中,我们主要关注 GPU 服务如何帮助我们应对这一挑战。
为了支持 GPU 推断,我们在三种不同的实例类型(g4dn.xlarge、p3.2xlarge 和 r5.2xlarge)上对具有 2.82 亿个参数的 Transformer 模型进行了离线基准测试。图 12 显示了这些不同实例类型的延迟结果。图 13 展示了随着我们的输入消息长度的增长,CPU 和 GPU 之间延迟增长的总体趋势。转向 GPU 服务对线上延迟有显着影响,并且更具成本效益。
图12. 各种实例类型的 GPU 线上服务延迟
图13. 输入消息长度增加时使用 CPU 与 GPU 的延迟
之后线上实验(图14)的结果也显示了 Transformer 模型切换到 GPU 推理后对延迟的改善。对于大约 11 亿个参数和 100 个单词的平均输入消息长度,我们能够对 95% 的请求实现大约 60 毫秒的延迟,单次转换快 3 倍,批量转换快 5 倍。
图14. 从 CPU 切换到 GPU 之前和之后产品环境中的模型延迟
切换到 GPU 不仅可以改善延迟,还可以让我们并行运行多个模型评分。我们也利用 PyTorch 平台内置的对非阻塞模型评分的支持,以获得更好的可扩展性。
上下文赌博机和强化学习
线上服务的第二个挑战是根据新用户的线上行为调整和优化机器学习模型。正如我们在前几节中所描述的,初始模型的训练数据是在部署模型之前从历史用户与产品交互中收集的。部署该模型后,用户与系统交互方式与训练模型时收集的交互方式截然不同,如果每日流量足够大,我们可以随时重新标记新数据并使用反映新用户行为的数据更新模型,或者直接对 N 个策略进行多变量测试。但是,爱彼迎的机器人智能助手的流量与其他机器学习系统(例如搜索排名)相比相对较小,需要很长时间才能看到对模型进行任何更改后得到的效果(使用新数据或修改超参数来重新训练模型)。
为了解决低流量的困难,我们使用基于上下文赌博机(contextual bandit-based)的强化学习(Bietti 等作者(2019)[9]; Agarwal 等作者(2017)[10])来选择最佳模型和最合适的阈值。上下文强化学习通过最大化奖励和最小化误判来探索所有替代问题。借助这些方法,我们能通过动态平衡探索(exploration)和利用(exploitation)来学习新行为。
我们通过产品中的三个不同操作来看待这个问题:
a0:用户没有被引导到协商一致取消产品流程
a1:将在房客已经与房东协商一致情况下的用户引导到协商一致取消的用户界面
a2:在不清楚房东和房客是否已达成协商一致取消共识的情况下,将用户引导到协商一致取消的用户界面
我们的奖励函数是协商一致取消产品流程的进入率和接受率。任何给定操作在时间 𝑡 的奖励可以表示为:
然后我们利用 greedy-epsilon 作为我们的第一个探索策略。如果它处于探索模式(exploration),我们会根据策略的偏好计算每个操作的概率,并根据概率选择。如果处于利用模式(exploitation),我们选择最佳策略。我们根据一组记录的 (x, a, r, p) 元组计算模型的阈值,使用自归一化逆倾向评分(IPS)估计器(Swaminathan 和 Joachims(2015)[11])来评估每个策略。
这种方法成功地帮助我们在产品环境中探索了许多不同的模型和参数选项,并充分利用了有限的线上流量。
结论
本文介绍了爱彼迎如何利用前沿的机器学习和 AI 模型技术构建让房东和房客满意的客户支持产品,重点分享了我们如何利用基于单选问答模型、大规模预训练、多语言模型、多轮对话状态跟踪和 GPU 服务并成功应对技术挑战。
参考文献
1. Chris Zhu. (Jul 15, 2020). Using Chatbots to Provide Faster COVID-19 Community Support: https://medium.com/airbnb-engineering/using-chatbots-to-provide-faster-covid-19-community-support-567c97c5c1c9
2. Zang X, Rastogi A, Sunkara S, Gupta R, Zhang J, Chen J (2020) MultiWOZ 2.2 : A Dialogue Dataset with Additional Annotation Corrections and State Tracking Baselines. CoRR abs/2007.12720: https://arxiv.org/abs/2007.12720
3. Madotto A, Liu Z, Lin Z, Fung P (2020) Language Models as Few-Shot Learner for Task-Oriented Dialogue Systems. CoRR abs/2008.06239: https://arxiv.org/abs/2008.06239
4. Jiang Y, Wu S, Gong J, Cheng Y, Meng P, Lin W, Chen Z, Li M (2020) Improving Machine Reading Comprehension with Single-choice Decision and Transfer Learning. CoRR abs/2011.03292: https://arxiv.org/abs/2011.03292
5. Khashabi D, Min S, Khot T, Sabharwal A, Tafjord O, Clark P, Hajishirzi H (2020) UnifiedQA: Crossing Format Boundaries With a Single QA System. In: Cohn T, He Y, Liu Y (eds) Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Findings, EMNLP 2020, Online Event, 16–20 November 2020. Association for Computational Linguistics, pp 1896–1907: https://arxiv.org/abs/2005.00700
6. Yu W, Jiang Z, Dong Y, Feng J (2020) ReClor: A Reading Comprehension Dataset Requiring Logical Reasoning. In: 8th International Conference on Learning Representations, ICLR 2020, Addis Ababa, Ethiopia, April 26–30, 2020. OpenReview.net: https://arxiv.org/abs/2002.04326
7. Xie Q, Dai Z, Hovy EH, Luong T, Le Q (2020) Unsupervised Data Augmentation for Consistency Training. In: Larochelle H, Ranzato M, Hadsell R, Balcan M-F, Lin H-T (eds) Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6–12, 2020, virtual: https://arxiv.org/abs/1904.12848
8. Gao S, Sethi A, Agarwal S, Chung T, Hakkani-Tür D (2019) Dialog State Tracking: A Neural Reading Comprehension Approach. In: Nakamura S, Gasic M, Zuckerman I, Skantze G, Nakano M, Papangelis A, Ultes S, Yoshino K (eds) Proceedings of the 20th Annual SIGdial Meeting on Discourse and Dialogue, SIGdial 2019, Stockholm, Sweden, September 11–13, 2019. Association for Computational Linguistics, pp 264–273: https://arxiv.org/abs/1908.01946
9. Bietti, Alberto, Alekh Agarwal, and John Langford. A Contextual Bandit Bake-off. Microsoft Research. 21 Mar. 2019: https://arxiv.org/abs/1802.04064
10. Agarwal, Alekh, Sarah Bird, Markus Cozowicz, Luong Hoang, John Langford, Stephen Lee, Jiaji Li, Dan Melamed, Gal Oshri, Oswaldo Ribas, Siddhartha Sen, and Alex Slivkins. Making Contextual Decisions with Low Technical Debt. ArXiv.org. 09 May 2017: https://arxiv.org/abs/1606.03966
11. Swaminathan A, Joachims T (2015) The Self-Normalized Estimator for Counterfactual Learning. In: Cortes C, Lawrence ND, Lee DD, Sugiyama M, Garnett R (eds) Advances in Neural Information Processing Systems 28: Annual Conference on Neural Information Processing Systems 2015, December 7–12, 2015, Montreal, Quebec, Canada. pp 3231–3239: https://papers.nips.cc/paper/2015/hash/39027dfad5138c9ca0c474d71db915c3-Abstract.html
原文作者:Gavin Li, Mia Zhao,译者:Oukan Fan,校对:Gang Feng,Sean Lan,Yiqi Jia, Wei Ji。
特别感谢项目的所有参与者,以及相关开源库的贡献者。
感谢阅读!如果你想了解关于爱彼迎技术的更多进展,欢迎关注我们的 Github账号(https://github.com/airbnb/) 以及微信公众号(爱彼迎技术团队)。