网易严选如何使用 TensorFlow 打造客服聊天机器人
2020 年 10 月 12 日

发布者:刘慧云,网易高级算法工程师

随着自然语言处理 (NLP) 技术的发展,智能客服已成为电子商务领域的重要应用场景。近年来,这一应用场景越来越受到关注。这是因为,在购买过程中,如果用户遇到任何问题或有疑问,需要转到客服系统进行咨询和支持。如果客服系统能够提供准确有效的回复,将直接提升用户体验,对购买转化率产生积极影响。例如

  • 在售前场景中,用户可能会询问他们感兴趣的商品或促销活动更详细的信息。
  • 在售后场景中,用户经常会问关于退换货、运费和物流问题。

在实际业务运营中,网易严选,中国大型电子商务平台,会产生并积累大量信息,例如商品属性、活动运营、售后政策。同时,相应的业务逻辑也比较复杂。智能客服是一个智能对话系统,它利用这些信息自动回答用户的问题,或帮助人工客服人员进行回答。

然而,电子商务领域涉及许多详细且复杂的业务方面,用户可能会以多种不同的方式,并以口语化的方式提问。这些特性要求智能客服系统具备强大的语义理解能力。为此,我们结合了一般的客户场景和严选的业务,设计了一个基于深度学习的系统。查看严选智能客服框架的完整图

图 1图 2

  • 当用户输入问题时,输入文本及其上下文信息首先被发送到意图识别 (IR) 模块。
  • 意图识别模块分析用户的多层意图,然后将它们分配给不同的子模块。
  • 子模块负责更具针对性的业务问答,不同的子模块应用不同的技术解决方案。

如您所见,深度学习算法被应用于框架中的不同模块。由于先进的 NLP 算法,我们可以从用户的语句中提取更多通用和多粒度的语义信息。

图 3 显示了晓轩机器人在一个真实的对话场景中回答问题。接下来,我将介绍应用深度学习技术的不同子模块。

Xiaoxuan bot answering questions
图 3. 在线对话示例

意图识别模块 - 多层分类模型

当用户输入文本时,我们使用基于 TensorFlow 构建的多层分类意图识别模型来分析输入文本、其上下文以及用户的历史行为。我们将一级意图分为四大类:售前商品问题、售后问题、闲聊以及其他。当用户询问常见的政策相关的售后问题时,输入会概括为更详细的二级意图。单击此处(图 4)查看意图识别流程的结构。

本质上,意图识别可以看作是一个分类问题。在构建分类系统时,我们使用 Attention+BiLSTM (ABL) 模型结构作为初步基线。除了原始输入文本,我们还设计了更多输入到深度模型的特征,例如 Transformer 模型中的 n-gram 和位置编码。最终,更多人工设计的特征将模型准确率提高了三个百分点。此外,我们还使用微调后的 BERT 模型来训练一个使用较少标记数据的分类模型,其性能与 ABL 模型一样好。预训练模型具有更好的泛化能力,并且可以基于更少的标记数据学习更多语义信息。但是,这种方法需要更多计算资源。

FAQ 模块 - 文本匹配模型

回答常见问题是智能客服系统的关键功能。该模块由两个组件组成:召回和重新排序。

  • 召回阶段采用单词粒度的离散搜索以及基于密集句子向量的语义搜索。
  • 重新排序阶段使用基于 TensorFlow 构建的文本匹配模型来重新排序召回的候选问答对。
  • 然后,通过最终的混合策略进行过滤,该模块返回最终答案。

在自动问答领域,文本匹配算法通常应用于句子相似度任务和自然语言推理任务。从最基本的 Siamese-LSTM 网络,匹配模块的结构已经通过 InferNet、可分解注意力、ESIM,最终发展到 BERT 模型。一般来说,匹配算法可以分为两种,一种是基于表示的,另一种是基于交互的。表示方法侧重于单个句子的编码,而不考虑交互方法中使用的句子之间的交互语义。

在服务层,我们采用多种问题匹配解决方案

  1. 执行输入问题 *Q* 与答案 *A* 之间的关联匹配。
  2. 执行输入问题 *Q₁* 与标准问题 *Q₂* 之间的相似度匹配。
  3. 执行输入问题 *Q* 与标准问题 *Qs* 之间的相似问题匹配。

这三种方法以不同的方式执行问题相关性召回和问答关联匹配。在匹配和排序阶段,我们可以使用灵活的加权判别。

我们构建了一个 Siamese-LSTM 模型作为我们的基线模型,然后实现了以下模型迭代解决方案

  • 我们将 LSTM 单元转换为 Transformer 模型的编码器,并将余弦距离表征模块替换为句子对向量特征:连接到 MLP 层。
  • 我们将 ESIM 模型与 ELMo 特征集成。
  • 我们微调了 BERT 模型。

测试表明这些优化改进了这些模型。例如,Transformer 模型的编码器在任务 (1) 和 (3) 中表现出更好的准确率,性能提高了近 5 个百分点。

此外,我们发现,在没有任何额外的特征构建或技术的情况下,BERT 可以提供稳定且出色的匹配性能。这是因为,在预训练阶段,BERT 的目标是预测两个句子之间是否存在上下文关系,因此它可以学习句子之间的关系。此外,自注意力机制擅长捕捉深层语义,并且可以获得句子 A 中的单词与句子 B 中的任何单词之间的细粒度匹配结果。这对文本匹配任务至关重要。

KBQA 模块 - NER 模块

在商品知识库问答 (KBQA) 和购物指南模块中,我们基于 TensorFlow 为电子商务领域构建了一个命名实体识别 (NER) 模型。该模型可以识别用户提出的问题中商品名称、商品属性名称、商品属性值和其他关键商品信息,如图 5 所示。然后,实体名称被发送到下游模块,在那里使用问答知识图技术来生成最终答案。

图 5. 电子商务 NER 示例

通常,NER 算法模型使用带有条件随机场 (CRF) 层的双向 LSTM。前者捕捉前后特征,理解上下文,并充分提取上下文信息。后者侧重于从当前对话文本的局部和全局特征构建的概率转移,有效地挖掘文本的语义信息。严选使用 BiLSTM-CRF 模型作为词粒度基线模型,为智能客服系统提供服务。在后来的实验中,我们测试了特征提取和微调后的 BERT 模型。

在基于 bert 的模型优化中,我们尝试使用 bert 提取句子向量特征,并将它们融入 bilstm 和 crf,以及基于 bert 的微调的两种方法:最后一层嵌入预测和加权隐藏层的嵌入方法。在测试集上,特征融合效果最佳,F1 高达 0.92,其次是多隐藏层融合方法 (0.90),最后是单高层方法 (0.88)。就在线推理的时间效率而言,特征融合大约需要 100 毫秒,而微调模型大约需要 10 毫秒。

使用严选数据集的性能结果如表 1 所示。这些结果告诉我们以下内容

  • 特征提取比微调提供更好的性能。除了使用 BiLSTM 进行语义和结构信息提取外,通过将 BERT 特征引入特征提取模型,我们获得了更广泛的语义和结构表示。通过添加额外参数(如特征提取)获得的性能提升,明显高于正常微调的性能提升。
  • 多层特征融合比高层特征提供更好的性能。这是因为,对于序列标注任务,我们需要考虑语义表示以及句子其他粒度表示的融合,例如句法结构信息。
  • 在响应时间方面,添加额外参数的特征提取非常适合离线系统,但不能满足在线系统的需求。然而,微调模型可以满足在线系统的及时性要求。

闲聊模块 - 生成模型

一个独立的客服机器人必须能够回答用户提出的复杂问题。同时,它也需要具备闲聊的能力,展现其人性化和智能性。

为了赋予我们的机器人这种能力,我们构建了一个可以处理日常聊天的闲聊模块。该模块包含两个关键模型:基于检索的 QA 和生成式 QA。

  • 基于检索的 QA 模型首先从预先准备好的语料库中召回答案,然后使用文本匹配模型对答案进行重新排序。
  • 生成式 QA 模型使用 TensorFlow 的 tensor2tensor 训练的 Transformer 生成模型,以端到端 (E2E) 的方式生成响应。

然而,纯粹的 E2E 方式生成响应难以控制。因此,我们决定在我们的在线系统中融合这两个模型,以确保更可靠的响应。

模型部署

图 6 展示了基于 BERT 模型的在线服务流程。得益于 BERT 等语言模型的开源 TensorFlow 版本,只需少量标记样本即可构建各种具有高精度的文本模型。然后,我们可以使用 GPU 加速计算,以满足在线服务的 QPS 要求。最后,我们可以基于 TensorFlow Serving (TFS) 快速部署和启动模型。因此,正是 TensorFlow 的支持,使我们能够稳定、高效地部署和迭代在线服务。

图 6. 基于 BERT 的在线服务流程

结论

随着深度学习技术的不断发展,新的模型将在 NLP 领域取得新的突破。通过持续将学术界的前沿成果应用于产业界,我们可以取得杰出的业务成果。然而,这一切都离不开 TensorFlow 的功劳。在严选的业务场景中,TensorFlow 提供了灵活、精细的 API,使工程师能够进行敏捷开发和测试新模型,极大地促进了算法模型的迭代。

下一篇文章
 How NetEase Yanxuan uses TensorFlow for customer service chat bots

作者:网易高级算法工程师刘惠云 随着自然语言处理 (NLP) 技术的发展,智能客服已成为电子商务领域的重要应用场景。近年来,该场景越来越受到关注。这是因为,在购买过程中,用户需要转到客服系统进行咨询…