百度开源 FAQ 问答系统—AnyQ

标签: 百度 开源 faq | 发表时间:2018-08-24 15:34 | 作者:机器之心
出处:https://www.jiqizhixin.com/

前言

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

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 还包含了基于百度海量数据训练的语义匹配模型,开发者可零成本直接使用。


相关 [百度 开源 faq] 推荐:

百度开源 FAQ 问答系统—AnyQ

- - 机器之心
近年来,随着人工智能技术的发展,人机对话技术得到越来越多的关注,人机对话产品也不断涌现. 其中,智能客服作为人机对话的一个典型场景表现出极大的商业潜力和很强的研究价值,各企业也争先恐后的推出自己的智能客服产品. FAQ 问答技术作为智能客服系统最核心技术之一,在智能客服系统中发挥重要作用. 通过该技术,可实现在知识库中快速找到与用户问题相匹配的问答,为用户提供满意的答案,从而极大提升客服人员效率,改善客服人员服务化水平,降低企业客服成本.

FastDFS FAQ

- - 企业架构 - ITeye博客
定位问题首先要看日志文件. 出现问题时,先检查返回的错误号和错误信息. 然后查看服务器端日志,相信可以定位到问题所在. FastDFS适用的场景以及不适用的场景. FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片、视频、文档等文件. 对于互联网应用,和其他分布式文件系统相比,优势非常明显.

Linux基金会更新FAQ

- ArmadilloCommander - Solidot
51开源社区 写道 "之前报道Linux.com、kernel.org等皆无法访问处于安全维护中,目前服务尚未恢复.不过Linux基金会已更新官方公告,发布FAQ:“为了尽快恢复服务,我们的团队正在日夜不停地工作. 服务会在未来几天恢复,我们将第一时间通知大家每一步的进度. 虽然Linux基金会存储的密码是加密的,但攻击者会尝试暴力破解,如果你使用该帐号用于其他网站,建议立即更改您的密码.

MariaDB常见问题FAQ

- - OurMySQL
MariaDB常见问题,同样适用于MySQL. 老版本MariaDB服务的相关旧信息. via似乎是个关键字,但是至少在MySQL5.1文档中找不到. 在MySQL5.1中执行成功,但是会出现1064错误 (毫无疑问,用avia替代via就可以). 答           elenst. 这个bug(https://bugs.launchpad.net/maria/+bug/1010351)被修复.

[MySQL FAQ]系列 -- mysqldump选项之skip-opt

- - MySQL 中文网
最近在用mysqldump备份时,想要把数据表和数据分开备份,因此做了2次备份. 执行备份数据库表结构时,指定了 --skip-opt 选项,相当于:. 选项 --create-option 看起来比较不起眼:. 事实上,如果把它disable的话,备份出来的表结构,会少了:. 等MySQL特有的数据表属性,需要注意下.

百度开源项目推荐

- - ITeye资讯频道
JavaScript 图表库 ECharts. ECharts是一款由百度前端技术部开发的,基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表. 提供大量常用的数据可视化图表,底层基于ZRender(一个全新的轻量级canvas类库),创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图(区域图)、柱状图(条状图)、散点图(气泡图)、饼图(环形图)、K线图、地图、力导向布局图以及和弦图,同时支持任意维度的堆积和多图表混合展现.

准分子激光角膜屈光手术FAQ

- nings - 金色葡萄的精华区
看到科学松鼠会的一篇文章《激光手术矫正近视:一场世纪医疗骗局. 》之后,一时兴起,在后面做了一组系列的回复. 很多医生自己不去做LASIK,却还要戴着眼镜. 角膜屈光手术的“远期问题”(兼论人工晶体计算). 一. 很多医生自己不去做LASIK,却还要戴着眼镜. 首先,眼科医生是有做的,而且专门做准分子手术的医生中,也有给自己做的.

[MySQL FAQ]系列 -- 新手必看:一步到位之InnoDB

- - MySQL 中文网 -
前言:MySQL发展到今天,InnoDB引擎已经作为绝对的主力,除了像大数据量分析等比较特殊领域需求外,它适用于众多场景. 然而,仍有不少开发者还在“执迷不悟”的使用MyISAM引擎,觉得对InnoDB无法把握好,还是MyISAM简单省事,还能支持快速COUNT(*). 本文是由于最近几天帮忙处理discuz论坛有感而发,希望能对广大开发者有帮助.

[MySQL FAQ]系列 -- 几种常见MySQL无法启动案例

- - MySQL 中文网
昨天在群里看到有新同学还在问MySQL无法启动的问题,于是总结了几个常见情况,权当普及帖了,老鸟自觉飞过. 问题1:目录、文件权限设置不正确. MySQL的$datadir目录,及其下属目录、文件权限属性设置不正确,导致MySQL无法正常读写文件,无法启动. 已有其他mysqld实例启动,且占用了相同端口,需要修改 port 选项.