Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

百度开源 FAQ 问答系统—AnyQ

前言

近年来,随着人工智能技术的发展,人机对话技术得到越来越多的关注,人机对话产品也不断涌现。其中,智能客服作为人机对话的一个典型场景表现出极大的商业潜力和很强的研究价值,各企业也争先恐后的推出自己的智能客服产品。

FAQ 问答技术作为智能客服系统最核心技术之一,在智能客服系统中发挥重要作用。通过该技术,可实现在知识库中快速找到与用户问题相匹配的问答,为用户提供满意的答案,从而极大提升客服人员效率,改善客服人员服务化水平,降低企业客服成本。

百度在今年 7 月的 AI 开发者大会上开源了首个工业级基于语义计算的 FAQ 问答系统——AnyQ,旨在赋能开发者,为人工智能技术及应用蓬勃发展贡献力量。

FAQ 问答技术难题与现状

FAQ 问答主要有以下技术难题:

  1. 用户问题较为口语化,包含大量省略、指代等现象;
  2. 用户问题复杂多样,基于字面信息很难精准匹配语义相同问题;
  3. 实际产品应用中,对系统鲁棒性、整体性能要求较高;

学术界研究的 FAQ 问答技术主要集中在问题匹配单点技术上,对整体 FAQ 问答系统研究较少。而工业界使用的 FAQ 系统对外则极少披露细节。

AnyQ 系统框架

开源 AnyQ(Answer Your Questions) (https://github.com/baidu/AnyQ) 系统采用配置化、插件化框架设计,搭载由百度自主研发、业界领先的 SimNet 语义匹配技术,针对 FAQ 问答的种种技术难题给出了高效的解决方案。

AnyQ 系统主要由 Question Analysis、Retrieval、Matching、Re-ranking 等核心部件构成。系统框架如图示:

AnyQ 系统特色

特色 1——框架设计灵活,插件功能丰富

AnyQ 系统的配置化和插件化设计,使得开发者可以自主配置选择系统的功能,当前支持 20 多个插件。同时,开发者也可根据需要便捷地将定制化的功能以插件的方式加入系统。

•    配置化

AnyQ 系统集成了检索和匹配的丰富插件,通过配置的方式生效;以相似度计算为例,包括字面匹配相似度 Cosine、Jaccard、BM25 等,同时包含了语义匹配相似度。

•    插件化

AnyQ 的所有功能都是通过插件形式加入,用户自定义插件,只需实现对应的接口即可,如 Question 分析方法、检索方式、匹配相似度、排序方式等。

特色 2——极速语义检索

传统倒排索引只考虑了输入问题和索引问题间的字面重合度,这种技术在智能客服场景中存在很大问题,FAQ 集合通常是专业人员整理,其问题形式比较书面和正式,而用户问题更加口语化,两者之间即使语义一致,但表述上差别迥异。与基于倒排索引的 FAQ 问答系统相比,AnyQ 在检索方面采用了业界前沿的语义检索技术。

语义检索技术将用户问题和 FAQ 集合的相似问题通过深度神经网络映射到语义表示空间的临近位置,检索时,通过高速向量索引技术对相似问题进行检索。语义检索原理如下图:

特色 3——业界领先语义匹配技术 SimNet

问题相似度计算是 FAQ 问答系统的核心,其算法效果好坏决定了整个系统的效果。

AnyQ 使用 SimNet 语义匹配模型构建文本语义相似度,克服了传统基于字面匹配方法的局限。

SimNet 是百度 NLP 于 2013 年自主研发的语义匹配框架,在百度搜索、百度信息流、百度地图等产品广泛应用,主要包括 BOW、CNN、RNN、MM-DNN 等神经网络模型。此外,我们基于 SimNet 框架集成了学术界主流模型:Match-Pyramid、MV-LSTM、K-NRM 等。SimNet 支持 PaddlePaddle 和 Tensorflow 两种平台训练。基于 SimNet 语义匹配框架,开发者可以快速训练已有的语义匹配网络模型。

使用 SimNet 训练出的模型可以便捷的加入 AnyQ 系统中,增强 AnyQ 系统的语义检索和语义匹配能力。

本次开源包含一个基于百度海量搜索数据训练的 SimNet-BOW 模型,在一些真实的 FAQ 问答数据集上,该模型效果相比基于字面的相似度方法 AUC 提升 5% 以上,有效解决特定领域由于标注数据少无法训练出准确语义匹配模型的问题。

总结

AnyQ 系统配置化、插件化的框架设计有助于开发者快速构建、快速定制适用于特定业务场景的 FAQ 系统。AnyQ 包含了百度积累多年的 SimNet 语义匹配框架,开发者可根据自身产品需求训练自己的语义模型,提升产品效果。此外,针对无任何训练数据的开发者,AnyQ 还包含了基于百度海量数据训练的语义匹配模型,开发者可零成本直接使用。


工程百度自动问答系统
31
相关数据
最佳匹配25技术

在信息检索领域,Okapi BM25(BM代表最佳匹配)是搜索引擎根据其与给定搜索查询的相关性对匹配文档进行排名的排名函数。它基于Stephen E. Robertson,KarenSpärckJones等人在70年代和80年代开发的概率检索框架。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

知识库技术

知识库是用于知识管理的一种特殊的数据库,以便于有关领域知识的采集、整理以及提取。知识库中的知识源于领域专家,它是求解问题所需领域知识的集合,包括基本事实、规则和其它有关信息。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

推荐文章
用 Faiss 做了一个检索式问答系统,放在这里了 https://ke.qq.com/course/4335237?tuin=768afdf