引言:
利用文本生成模型构建更有效、可扩展的客户支持产品。
【资料图】
现代人工智能(AI)中增长最快的领域之一是 AI 文本生成模型。顾名思义,这些模型的作用就是可以生成自然语言。在此之前,大多数工业级自然语言处理(NLP)模型都是分类器,或者在机器学习(ML)文献中可能被称为的判别模型。然而,在最近几年中,基于大规模语言模型的生成模型正在迅速获得关注,并且从根本上改变了我们制定 ML 问题的方式。这些生成模型现在可以通过大规模的预训练获得一些领域知识,然后生成高质量的文本 - 例如回答问题或复述一段内容。
在爱彼迎 (Airbnb),我们在把文本生成模型应用到社区支持产品中投入了大量的精力,这让我们的产品具备了许多新的功能和使用场景。本文将详细讨论其中三个用例。但首先,让我们先讨论一下为什么文本生成模型非常适合我们的产品。
关于文本生成模型
在像爱彼迎客户支持这样的大规模工业产品中应用 AI 模型并不是一件容易的事情。在实际应用中有很多长尾案例,很难进行扩展,并且经常需要花费大量时间精力来标记训练数据。不过,文本生成模型具有的多个特性刚好可以很好的解决这些问题,使得此选项尤其有价值。
编码知识
文本生成模型具有的第一个优点是能够学到领域知识。正如 Petroni 等人 (2019) 所介绍的,我们可以通过大规模的预训练和迁移学习,将领域知识编码到模型中。在传统的机器学习范式里,输入的数据非常关键,模型只是一个从输入到输出的转换器。所以模型训练的过程更多的关注于准备输入数据、提取特征和标签。但对于生成模型来说,训练的重点在于知识编码。我们需要设计好预训练和训练方法来将高质量的知识编码到模型中,同时设计好的提示(prompt)来引导出这些知识,这些才是更为关键的。这从根本上改变了我们解决传统机器学习问题:例如分类、排序、生成候选项的方式。
在过去的几年里,我们积累了大量的用户与人工客服之间对话记录,我们利用这些数据进行了大规模的预训练和训练来将解决用户旅行问题的知识编码到模型中。在推理时,我们设计了提示输入,根据编码的知识来生成答案。与传统的分类模型相比,这种方法产生了更好的结果。A/B 测试的结果显示业务指标和用户体验均得到了显著的提高。
无监督学习
文本生成模型的另一个优点是其具有的“无监督学习”的特性。像爱彼迎这样的大规模工业应用通常具有大量的用户数据,但如何从中挖掘出有用的信息来训练模型是一个巨大挑战。首先,人工标注大量数据非常昂贵,这严重限制了我们能够使用的训练数据的规模。其次,设计标注指南和用户问题意图分类系统非常困难,因为现实中的用户问题往往具有长尾效应,并且有许多边缘案例。依靠人工来定义所有可能的用户问题并用其标注数据并不是一个可扩展的方案。
更自然和高效的语言模型
最后,文本生成模型突破了传统的机器学习问题范式。近年来,研究人员已经意识到,在自编码模型中的额外密集层可能是不自然的、并不能达到预期目标。实际上,所有典型的机器学习任务和问题范式都可以看作是统一的语言模型的的不同表现形式。例如,分类模型可以被视为定制化的一种语言模型,模型输出的文本是分类结果的类别的名字。
为了使语言模型更统一有效,我们引入了一个新的但关键的角色:提示(prompt)。提示是一小段文字指令,用于告诉模型当前任务的内容,以及设置期望的输出内容和格式。除了提示外,额外注释也有助于进一步将机器学习问题转化化为语言生成任务。研究表明,加入提示可以显著提高语言模型在各种任务上的表现。下图展示了一个构成通用的生成模型所需的输入文本。
图1.1 文本生成模型提示和输入示例
现在,让我们深入探讨文本生成模型在爱彼迎社区支持产品中的应用方式。我们将探讨三个用例——内容推荐、实时客服专员助手和聊天机器人问题复述。
内容推荐模型
在爱彼迎的帮助中心文章搜索和 Helpbot 的推荐功能中,我们利用单文档方法来对用户接收文档进行排序,如图 2.1 所示。该方法排序器采用两个文本作为输入——用户的问题描述和候选文档的文本表示,例如文档的标题、摘要和关键词。然后根据问题描述和文档之间的相关性得分进行排序。在 2022 年之前,我们一直使用 XLMRoBERTa 模型来实现该排序器,但接下来就会看到为什么我们现在已经转向 MT5 模型。
图 2.1 利用 encoder-only 架构和任意分类实现的单文档方法排序
在决定引入提示后,我们将经典的二元分类问题转化为基于提示的文本生成问题。输入仍是来自于问题描述和候选文档的文本表示。然而,我们通过在描述前添加提示来对输入进行上下文化处理,告诉模型我们期望得到一个“是”或“否”的二元答案,来判断文档是否能够解决用户问题。如下图所示,我们还在输入的文本中添加了额外的注解来表示文本来自文档中的不同的部分。同时为了实现个性化功能,我们扩展了用户问题描述的输入文本,再其中加入了关于用户和预订的信息。
图 2.2 使用 encoder-decoder 架构并采用自然预言作为输出的单文档排序器
我们在 MT5 模型针对上述的任务进行了微调。为了评估生成模型分类器的表现,我们使用了与训练数据分布一致的线上流量进行采样,结果如下表所示,生成模型在文档排名的关键指标上表现出了显著的提高。
表 2.1 爱彼迎客服支持内容推荐
此外,我们还进行了线上 A/B 实验,将生成模型集成到了拥有百万活跃用户的爱彼迎帮助中心。实验得出了相同的结论——相较于基于分类的基准模型,生成模型推荐的文档具有更高的相关性。
“实时客服专员助手”模型
给客服专员提供正确的背景知识和工具可以帮助他们提供更好的用户体验。因此,我们为客服专员提供了实时助手功能,帮助他们找到正确的答案并高效地解决用户问题。
例如,在客服专员与用户的对话的过程中,系统会自动显示一个建议回复的模板,帮助客服专员解决用户的问题。为了确保系统提供的建议模板符合我们的客服政策,我们会通过调用 API 和意图识别模型对建议回复的模板进行检查。意图模型需要回答一系列问题来捕捉用户意图,例如:
这条消息是关于取消的吗?这位用户提到了什么取消原因?这位用户是因为COVID生病而取消预订的吗?这位用户是不小心预订了一个预订吗?图 3.1:AI 生成的推荐模板
为了支持更细粒度的意图识别,我们开发了一个智能问答(QA)模型,这个模型采用上述的生成模型架构进行开发。我们将用户与客服专员的多轮对话拼接起来,利用聊天记录作为输入文本,然后在服务用户时向模型输入相关的提示来获得建议。
输入给模型的提示需要与人工添加的注释相一致,如下表所示,提示的稍有不同将导致预测结果的大相径庭。模型预测出结果后,系统会向客服专员推荐相关回复模板。
表 3.1 使用问答模型的提示设计
图 2.2 问答模型的架构
我们利用 t5-base 和 Narrativa 等作为基础模型,在多种数据组合而成的训练集上进行了实验。组合而成的训练集包括基于标注的数据和基于处理后的日志数据。标注的数据集通常具有更高的精度、较小的覆盖范围和更一致的噪声,而日志数据集具有较低的精度、更大的覆盖范围和更随机的噪声。我们的研究表明,将这两种数据集结合起来使用效果最佳。
表 3.2 QA 模型的实验结果
因为模型的参数数量庞大,我们使用了 DeepSpeed 来在多个 GPU 上进行训练。DeepSpeed 把训练时间从数周缩短到了数天。但是,它也需要更长的超参数调整时间。因此,我们先在较小的数据集进行实验以便能获取更好的参数设置。在此功能上线后,测试结果显示了客服专员对此功能的使用率获得大大提高。
聊天机器人中的问题复述模型
准确的用户意图检测、槽位填充和正确的解决方案并还不足以构建一个成功的 AI 聊天机器人。无论机器学习模型有多厉害,用户也不一定愿意和聊天机器人进行互动。用户想要的是快速解决问题,因此他们会不停地测试聊天机器人是否能够理解他们的问题,以及是否能比人工客服解决的更快。因此我们搭建一个复述模型(paraphrase model),通过在对话开始重新描述用户遇到问题,来增强用户的的信心,让用户确认聊天机器人的理解是正确的。这极大地提高了我们聊天机器人的使用率。
图4.1 聊天机器人复述用户付款问题的示例
这种复述用户问题的方式也经常被人工客服专员所使用。其中最常见的模式是“我了解到您......”。例如,如果用户咨询关于是否可以免费取消预订,客服专员将回复“我了解到您想取消订单,并想知道是否我们可以全额退款”。因此,我们创建了一个简单的模板来提取所有以“我了解到您.....”开头的对话。因为我们已经有多年的客服专员和用户之间的对话数据,所以这种简单的方式为我们提供数百万免费的训练标签。
我们测试了流行的 sequence-to-sequence transformer 模型,如 BART,PEGASUS,T5 等,以及自回归模型,如 GPT2 等。我们发现 T5 模型在我们的使用场景下表现最佳。
正如在 Huang 等人 (2020) 所发现的,文本生成模型最常见的问题之一就是生成的回复太平淡、笼统,缺乏信息。这也是我们所面临的主要挑战。
例如,模型给许多不同的输入都生成同样的回复:“我了解到您对您的预订有些问题。” 这个回复虽然没错,但太过笼统,没有用处。
我们试了几个不同的方法来解决这个问题。首先,我们尝试建立一个反向模型来预测目标(target)在给定源(source)的情况下的概率 P(source|target),就像 Zhang等人(2020)所介绍的。然后将这个模型用作重排序模型来过滤掉过于笼统的回复。此外,我们也试了一些基于规则或基于模型的过滤器。
在尝试过不同的方案后,我们发现解决这个问题最好的方法是调整训练数据。我们使用基于Sentence-Transformers 的预训练相似度模型对训练目标数据进行了文本聚类。结果如下表所示,因为训练数据中包含了太多笼统的无意义回复,导致模型也输出了类似的结果。
表 4.2 训练数据中的常见类簇
我们对那些过于笼统的类簇进行了标记,并使用 Sentence-Transformers 从训练数据中过滤掉它们。这个方法非常有效,让我们得到了一个可以在生产环境中使用的高质量的模型。
结论
随着大规模预训练 Transformer 模型的快速发展,文本生成模型现在能够编码领域知识。这不仅使模型能更好的利用数据,而且还能让我们以无监督的方式训练模型,扩大数据标注规模。这让我们可以采用许多创新的方法来解决构建 AI 产品中的常见挑战。正如本文中所介绍的三个用例所示——内容排名、实时客服助手和聊天机器人问题复述——文本生成模型可以有效地提高客户支持场景下的用户体验。我们相信,文本生成模型是 NLP 领域的一个重要的新方向。可以用来帮助爱彼迎的房东和房客更快地解决问题,同时也可以帮助客服专员更高效、更准确的解决用户问题。我们期待在这个领域继续进行积极的投入。
作者:Gavin Li,Mia Zhao,Zhenyu Zhao
译者:Keyao Yang
感谢项目所有参与者的合作与支持,项目的成功上线离不开您们的努力!特别鸣谢 Joy Zhang, Tina Su, Andy Yasutake 给与的帮助以及各位领导和同事对于本文的支持!
如果你想了解关于爱彼迎技术的更多进展,欢迎关注我们的 Github 账号(https://github.com/airbnb/) 以及微信公众号(爱彼迎技术团队)
来源:微信公众号:爱彼迎技术团队
出处:https://mp.weixin.qq.com/s/IAoY5r7TeyPw5H2-hgnDxQ
关键词: