参加2018 AI开发者大会,请点击↑↑↑

作者 | 云知声

目录

一. 深度文本匹配的简介

1. 文本匹配的价值

2. 深度文本匹配的优势

3. 深度文本匹配的发展路线

二. 智能客服的简介

1. 智能客服的应用背景

2. 智能客服的核心模块

  • FAQ 库的构建

  • 语义召回

  • 相似度模型

  • 模型更新

三. 深度文本匹配在智能客服中的应用

1. 为什么使用深度文本匹配

2. 怎么样使用深度文本匹配

  • 深度文本匹配模型

  • 文本匹配引擎

3. 深度智能客服的效果评测

四. 参考

▌一、深度文本匹配的简介

1. 文本匹配的价值

文本匹配是自然语言理解中的一个核心问题,它可以应用于大量的自然语言处理任务中,例如信息检索、问答系统、复述问题、对话系统、机器翻译等等。这些自然语言处理任务在很大程度上都可以抽象成文本匹配问题,比如信息检索可以归结为搜索词和文档资源的匹配,问答系统可以归结为问题和候选答案的匹配,复述问题可以归结为两个同义句的匹配,对话系统可以归结为前一句对话和回复的匹配,机器翻译则可以归结为两种语言的匹配。

2. 深度文本匹配的优势

传统的文本匹配技术如图1中的 BoW、TFIDF、VSM等算法,主要解决词汇层面的匹配问题,而实际上基于词汇重合度的匹配算法存在着词义局限、结构局限和知识局限等问题。

  • 词义局限:的士和出租车虽然字面上不相似,但实为同一种交通工具;而苹果在不同的语境下表示的东西不同,或为水果或为公司;

  • 结构局限:机器学习和学习机器虽词汇完全重合,但表达的意思不同;

  • 知识局限:秦始皇打 Dota,这句话虽从词法和句法上看均没问题,但结合知识看这句话是不对的。

传统的文本匹配模型需要基于大量的人工定义和抽取的特征,而这些特征总是根据特定的任务(信息检索或者自动问答)人工设计的,因此传统模型在一个任务上表现很好的特征很难用到其他文本匹配任务上。而深度学习方法可以自动从原始数据中抽取特征,省去了大量人工设计特征的开销。首先特征的抽取过程是模型的一部分,根据训练数据的不同,可以方便适配到各种文本匹配的任务当中;其次,深度文本匹配模型结合上词向量的技术,更好地解决了词义局限问题;最后得益于神经网络的层次化特性,深度文本匹配模型也能较好地建模短语匹配的结构性和文本匹配的层次性[1]。

3. 深度文本匹配的发展路线

图 1 深度文本匹配的发展路线

随着深度学习在计算机视觉、语音识别和推荐系统领域中的成功运用,近年来有很多研究致力于将深度神经网络模型应用于自然语言处理任务,以降低特征工程的成本。最早将深度学习应用于文本匹配的是微软 Redmond 研究院。2013年微软 Redmond 研究院发表了 DSSM [2],当时 DSSM 在真实数据集上的效果超过了SOTA(State of the Art);为了弥补 DSSM 会丢失上下文的问题,2014年微软又设计了CDSSM [3];2016年又相继发表了 DSSM-LSTM, MV-DSSM。微软的 DSSM 及相关系列模型是深度文本匹配模型中比较有影响力的,据了解百度、微信和阿里的搜索场景中都有使用。

其他比较有影响的模型有:2014年华为诺亚方舟实验室提出的 ARC-I和ARC-II [4],2015年斯坦福的 Tree-LSTM [5],2016年 IBM 的 ABCNN [6],中科院的 MatchPyramid [7],2017年朱晓丹的 ESIM[8],2018 年腾讯 MIG 的多信道信息交叉模型 MIX [9]。

一般来说,深度文本匹配模型分为两种类型,表示型和交互型。表示型模型更侧重对表示层的构建,它会在表示层将文本转换成唯一的一个整体表示向量。典型的网络结构有 DSSM、CDSMM 和 ARC-I。这种模型的核心问题是得到的句子表示失去语义焦点,容易发生语义偏移,词的上下文重要性难以衡量。交互型模型摒弃后匹配的思路,假设全局的匹配度依赖于局部的匹配度,在输入层就进行词语间的先匹配,并将匹配的结果作为灰度图进行后续的建模。典型的网络结构有 ARC-II、DeepMatch 和 MatchPyramid。它的优势是可以很好的把握语义焦点,对上下文重要性合理建模。由于模型效果显著,业界都在逐渐尝试交互型的方法。

图 2 深度文本匹配模型的类型

▌二、智能客服的简介

1. 智能客服的应用背景

由于人工客服在响应时间、服务时间和业务知识等方面的局限性,有必要研发智能客服系统,使其通过智能化的手段来辅助人工客服为用户服务。智能客服与人工客服的优劣势对比如图 4 所示。

图 3 智能客服与人工客服的优劣势对比

2. 智能客服的核心模块

智能客服的一般框架如图 5 所示:当有 Query 请求时,首先对 Query 进行补全、解析和需求理解;其次,问题召回模块通过精准召回、核心召回和语义召回从 FAQ 库召回与 Query 相关的问题;接着,问题排序模块通过 CTR 模型和相似度模型对召回的问题进行排序,选出 Top k 返回给用户;最后,反馈系统记录用户的点击行为等,对模型进行更新。具体哪些模型会被更新,与语义召回和相似度模型阶段使用的算法有关。

图 4 智能客服的一般框架

在智能客服的框架中,最重要的模块是 FAQ 库的构建、语义召回、相似度模型和模型更新,它们性能的好坏对用户的使用体验有很大影响。

FAQ 库的构建

对于重视用户体验的客服系统来说,FAQ 库的构建是非常严格的,它的内容需要非常完整和标准,不能像聊天机器人那样可以插科打诨。一般的做法是将积累的 FAQ ,或是将场景相关的设计文档、PRD文档中的相应内容整理成 FAQ,添加到 FAQ 库中。日常的维护就是运营人员根据线上用户的提问做总结,把相应的问题和答案加入 FAQ 库。不难想像,随着用户量的增加,用户的问题种类五花八门,问法多种多样,这种维护方式肯定会给运营带来很大的压力,也会给用户带来糟糕的体验。那么,有没有什么自动或是半自动的方法可以解决新问题的挖掘和 FAQ 库的更新?

一种理想的 FAQ 库构建的流程应该是:从客服的直接对话出发,提取出与产品相关的问题,计算问题之间的距离,通过增量聚类的方法把用户相似的问题聚到一起,最后由运营人员判断新增的问题能否进入 FAQ 库,同时将他们的反馈更新给文本匹配模型。

图 5 理想的FAQ 库构建的流程

语义召回

当 FAQ 库达到一定规模时,再让用户请求的 Query 与 FAQ 库中的问题一一计算相似度是非常耗时的,而问题召回模块可以通过某些算法只召回与请求 Query 相关的问题,减少问题相似度模型阶段的复杂度。精准召回和核心召回是基于词汇重合度的检索方法,它们的局限是不能召回那些 FAQ 库中与请求 Query 无词汇重合,但语义表达是一样的问题,而语义召回可以解决此类问题。

相似度模型

相似度模型分别计算召回的相关问题与请求 Query 之间的相似度,作为排序模型的特征之一。需要注意,此处的相似度模型不同于语义召回中的相似度计算,前者更靠近输出端,对准确率要求高;后者对召回率要求高。因此,这两个模块在实现时使用的模型往往不同,在我们的文本匹配引擎中,语义召回使用的是基于表示型的深度文本匹配模型,相似度模型使用的是基于交互型的深度文本匹配模型和其他传统文本匹配模型的混合模型。

模型更新

智能客服投入线上使用后,用户 query 可能与某些模型的训练数据分布不一致,导致智能客服的响应不理想。因此,十分有必要从收集到的用户行为数据中挖掘相关知识,并更新相关模型。

▌三、深度文本匹配在智能客服中的应用

1. 为什么使用深度文本匹配

问题聚类、语义召回和相似度模型都可以归结为文本匹配问题。传统智能客服在这些模块中使用的是传统文本匹配方法,不可避免地会遇到词义局限、结构局限和知识局限等问题;加上传统文本匹配方法多是无监督的学习方法,那么由这些方法训练的模型就无法利用运营人员的反馈和用户的点击行为等知识。然而,使用深度文本匹配的方法则可以有效地解决这些弊端。具体改进方面如图 6 所示。

图 6 深度文本匹配对传统智能客服的改进

2. 怎么样使用深度文本匹配

我们曾在智能客服的不同领域中尝试过多种深度文本匹配方法,通过业务场景推动技术演进的方式,逐淅形成了一套成熟的文本匹配引擎。我们的文本匹配引擎除了使用传统的机器学习模型(如话题匹配模型、词匹配模型、VSM等)外,还使用了基于表示型和基于交互型的深度文本匹配模型。

深度文本匹配模型

  • Representation-based Model

表示型的深度文本匹配模型能抽出句子主成分,将文本序列转换为向量,因此,在问题聚类模块,我们使用表示型的深度文本匹配模型对挖掘的问题和 FAQ 库的问题做预处理,方便后续增量聚类模块的计算;在语义召回模块,我们使用表示型的深度文本匹配模型对 FAQ 库的问题做向量化处理,并建立索引,方便问题召回模块增加对用户 query 的召回。另外,我们使用基于 Bi-LSTM 的表示型模型以捕获句子内的长依赖关系。模型结构如图 7 所示。

图 7 基于 Bi-LSTM 的表示型模型

  • Iteraction-based Model

我们在相似度模型模块使用了基于交互型的深度文本匹配模型 MatchPyramid,其原因有三点:

  • 第一点,表示型的深度文本匹配模型对句子表示时容易失去语义焦点和发生语义偏移,而交互型的深度文本匹配模型不存在这种问题,它能很好地把握语义焦点,对上下文重要性进行合理建模。

  • 第二点,在语义召回阶段,用户 query 与召回问题间的语义相似度会作为排序模型的特征之一,同样地,相似度模型阶段,用户 query 与召回问题间的另一种语义相似度也会作为排序模型的特征之一。

  • 第三点,相似度模型需要实时计算,用户每请求一次,相似度模型就需要计算 n 个句对的相似度,n 是问题召回的个数。而序列型的神经网络不能并行计算,因此我们选择了网络结构是 CNN 的 MatchPyramid 模型。模型结构如图 8 所示。

图 8 An overview of MatchPyramid on Text Matching

文本匹配引擎

由于自然语言的多样性,文本匹配问题不是某个单一模型就能解决的,它涉及到的是算法框架的问题。每个模型都有独到之处,如何利用不同模型的优点去做集成,是任何文本匹配引擎都需要解决的问题。我们的文本匹配引擎融合了传统文本匹配模型和深度文本匹配模型,具体的框架如图 9 所示。

图 9 文本匹配引擎的框架

3. 深度智能客服的效果评测

应用上述的文本匹配引擎后,我们为某汽车公司开发的智能客服系统,在测试集上的 precision 达到了 97%;与某寿险公司合作完成的智能客服,其 precision 比 baseline 高出 10 个点。除此之外,在对话系统的音乐领域中,使用深度文本匹配引擎替代模糊匹配后,整体 precision 提高了 10 个点;在通用领域的测试集上,我们的文本匹配引擎也与百度的 SimNet 表现不相上下。

四、参考

1. 庞亮,兰艳艳,徐君等. 深度文本匹配综述. 计算机学报. 2017, 40(4):985-1000.

2. Po-Sen Huang, Xiaodong He, Jianfeng Gao, et al. Learning Deep Structured Semantic Models for Web Search using Clickthrough Data. 2013, In CIKM.

3. Yelong Shen, Xiaodong He, Jianfeng Gao, et al. A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval. 2014, In CIKM.

4. Baotian Hu, Zhengdong Lu, Hang Li, et al. Convolutional Neural Network Architectures for Matching Natural Language Sentences. 2014, In NIPS.

5. Kai Sheng Tai, Richard Socher, Christopher D. Manning. Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks. 2015.

6. Wenpeng Yin, Hinrich Schutze, Bing Xiang, et al. ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs. 2016.

7. Liang Pang, Yanyan Lan, Jiafeng Guo, et al. Text Matching as Image Recognition. 2016.

8. Qian Chen, Xiaodan Zhu, Zhenhua Liu, et al. 2017.

9. [Haolan Chen, Di Niu, Dong Liu, et al. MIX: Multi-Channel Information Crossing for Text Matching. 2018, In KDD.

2018 AI开发者大会

只讲技术,拒绝空谈

2018 AI开发者大会是一场由中美人工智能技术高手联袂打造的AI技术与产业的年度盛会!是一场以技术落地为导向的干货会议!大会设置了10场技术专题论坛,力邀15+硅谷实力讲师团和80+AI领军企业技术核心人物,多位一线经验大咖带你将AI从云端落地。

大会日程以及嘉宾议题请查看下方海报

(点击查看大图)

点击「阅读原文」,查看1024专属福利。2018 AI开发者大会——摆脱焦虑,拥抱技术前沿。

深度文本匹配在智能客服中的应用相关推荐

  1. 基于深度学习的聊天机器人在网易严选智能客服中的应用

    目录 业务概要 模型构建 KBQA模块 - NER模型 语聊模块 - 生成模型 模型部署 总结 作者 业务概要 随着自然语言处理技术的发展,智能客服作为电商领域内重要的业务场景,近年来受到的重视日益增 ...

  2. 贝壳智能客服中的数据建设

    以下文章来源于贝壳智搜 ,作者智搜小贝壳 数据是算法的基础,贝壳智能客服在长期的数据建设中积累了一些让数据建设更加科学合理的方法. 目录 一.背景 二.标准问和相似问 2.1 定义 2.2 整体生产流 ...

  3. 太强了!美团智能客服核心技术与实践,这差距不止一点点!

    客服是在用户服务体验不完美的情况下,尽可能帮助体验顺畅进行下去的一种解决办法,是问题发生后的一种兜底方案.而智能客服能让大部分简单的问题得以快速自助解决,让复杂问题有机会被人工高效解决.在用户服务的全 ...

  4. 美团智能客服核心技术与实践

    客服是在用户服务体验不完美的情况下,尽可能帮助体验顺畅进行下去的一种解决办法,是问题发生后的一种兜底方案.而智能客服能让大部分简单的问题得以快速自助解决,让复杂问题有机会被人工高效解决. 在用户服务的 ...

  5. 智能客服“听不懂人话”?消费者很“闹心”

    智能客服与人工客服并非互相取代的关系.人工客服不能缺位,应通过人机协同更好地回应消费者诉求.在金融消费领域,建议与资金安全等密切相关的业务能够设置人工服务"一键转接"或者" ...

  6. 【NLP】深度文本匹配综述

    目  录 1.研究背景与意义  2.深度学习在自然语言处理的应用  3.深度文本匹配与传统文本匹配  4.深度文本匹配国内外研究现状  4.1基于单语义表达的文本匹配 4.2基于多语义表达的文本匹配 ...

  7. 第七章 人工智能,7.3 深度学习与自然语言处理在智能语音客服中的应用(作者: 余慈)...

    7.3 深度学习与自然语言处理在智能语音客服中的应用 1. 前言 95188电话的支付宝热线目前已经用纯语音交互流程全面代替了传统的按键流程,这个我们称之为"蚁人"的智能语音客服会 ...

  8. 案例分享|智能客服、供应管理,深度学习为品牌电商创新服务

    随着计算机视觉.自然语言处理等技术的发展,深度学习正在零售业供应端与销售端中扮演着重要的角色.诸如供应链管理.个性化推荐以及客服机器人等业务场景,深度学习持续为企业解决问题,为用户创造价值. 货架排布 ...

  9. AI开发者大会之语音语义技术实践与应用:2020年7月3日《NLP在教育行业的应用》、《AI防疫-语音语义技术在政务联络场景中的应用》、《智能客服机器人在售前导购场景中的应用实践》

    AI开发者大会之语音语义技术实践与应用:2020年7月3日<NLP在教育行业的应用>.<AI防疫-语音语义技术在政务联络场景中的应用>.<智能客服机器人在售前导购场景中的 ...

最新文章

  1. crt0.S(_main)代码分析
  2. 服务器性能指标(一)——负载(Load)分析及问题排查
  3. c语言数字字体的格式,c语言—— 格式控制符—— 数据类型——相对应的字节数...
  4. java sendredirect报错_java 中sendredirect()和forward()方法的区别
  5. android删除电池功能,Android教程:删除电池信息增加待机时间
  6. html轮播图淡入淡出,一个简洁的Jquery效果 banner轮播(1) 淡入淡出效果
  7. JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?
  8. python五位回文数_蓝桥杯,特殊回文数,Python
  9. Adb refused a command 解决方法
  10. CSDN 输入公式的方法
  11. 自学JavaWeb系列-JSP教程!
  12. G代码在运动控制器上的应用
  13. RaiseCOM(瑞斯康达)交换机常用配置命令大全
  14. [HDCTF2019]Maze
  15. 我对于微信文章的感悟
  16. latex图片及其标题居右
  17. 凑零钱动态规划java_凑零钱问题-动态规划回溯贪心
  18. 车载激光扫描系统介绍
  19. 电子证书管理系统前台_电商平台后台之商品管理系统组成模块
  20. 三相MMC并网逆变器/模块化多电平变换器/相间环流抑制/子模块电容电压均衡/载波移相调制

热门文章

  1. 【转】on delete cascade
  2. 微软OOXML申请国际文档标准已获通过 中国投反对票
  3. ElasticSearch5.6安装head插件
  4. 暑期集训4:栈,树,优先队列 例 :  UVA - 514 ​​​​​​​​​​​​​​
  5. BZOJ1002 [FJOI2007]轮状病毒(最小生成树计数)
  6. python中的单例模式
  7. 《转》java设计模式--工厂方法模式(Factory Method)
  8. Enterprise Library系列文章回顾与总结
  9. LeetCode实战:相交链表
  10. 记录一次自己调试代码的过程