导航菜单
首页 » 问答 » 正文

5、基于Elasticsearch的检索式问答系统的理论介绍

作者简介:帅朴,二范数智能AI团队成员,研究方向为信息检索、知识图谱构建、医疗数据挖掘与分析,对机器学习、NLP等领域有浓厚兴趣。

1、背景

伴随着信息技术的飞速发展,互联网上丰富的信息资源为人们的工作、生活和学习都带来了极大的便利。每时每刻都有众多新的信息资源发布到浩瀚的网络资源中,这导致信息科学的一个基本问题变得越发关键,即如何从庞大的信息库中识别用户需求从而在适当的情景下只向用户展示其感兴趣的信息。

例如:我们在某平台想要进行退货,人工客服成本太大,机器客服就会上线使用自然语言处理技术来自动回复与客户问题相关的答案,而它使用的技术就是本文分享的检索式问答技术。

下面就围绕这一技术介绍。

2、对话系统介绍

对话系统在最近几年发展非常迅速。如果说,自然语言处理是AI皇冠上的明珠,那么对话系统就是「NLP 皇冠上的明珠」, 并且以苹果Siri等为代表的任务型对话和以微软小冰为代表的非任务型(聊天型)对话尤为受到学界和业界关注。随着近些年预训练模型的发展,它将对话系统的研究推向了一个新的高潮。

但是网络上的信息具有繁多复杂的特点,如果对于每次对话都进行自然语言理解(领域识别、意图识别)、对话管理(系统决策)、自然语言生成(将生成的策略以文本的形式返还给用户),势必会对对话效率产生影响。因此,基于检索式思想的问答系统而生。而上述的两种实现就是目前智能对话的两大实现方式:

1)检索式对话系统:机器人的回答是预先设置好的,在聊天时机器人使用规则引擎、模型匹配或机器学习生成好的模型从知识库中挑选一个最佳答案给用户,需要在机器人引擎后台中建立一个知识库。优点在于回答质量比较高,缺点在于需要预先准备的知识库足够完整。

简单流程:Query的简单理解——从知识库检索召回——相似度排序

2)生成式对话系统:生成式机器人不依赖于提前定义的回答,机器人接收到用户输入的自然语言后,将采用自然语言生成技术生成一段话作为应答。优点是可以涵盖任何话题,缺点是生成的句子质量可能存在问题,比如出现语法和语义问题。

简单流程:

Query的复杂理解(涵盖领域、意图)——对话管理(根据识别的领域进行知识模版/策略的构建)——自然语言生成(以文本形式将策略返还给用户)

本次分享着重分析检索式对话系统,如对生成式对话系统具有浓厚兴趣,可关注二范数智能科技公司公众号,它将通俗晓畅的介绍相关内容,以易于理解的实例打通理论与实践的鸿沟。

3、检索式问答系统分析

1)如何实现检索式问答系统的构造?

连接输入到输出的这个过程就采取的是数据库查询的思路:

2)传统数据库如何进行查询?

如果能提前把第一步的输出的数据或文档存到数据库中,这样子就实现了简单的检索式问答系统。

3)FAQ定义:

目前工业界对于检索式问答的处理方式就基于以上思路,专业名称叫做FAQ问答系统( Asked ),这种问答系统的结构框架明了、实现简单、容易理解。FAQ问答技术作为智能客服系统最核心技术之一,在智能客服系统中发挥重要作用。通过该技术,可实现在知识库中快速找到与用户问题相匹配的问答, 为用户提供满意的答案,从而极大提升客服人员效率,改善客服人员服务化。

4)FAQ数据集

FAQ系统需要FAQ数据集作为系统的数据支撑,FAQ数据集是业务场景中用户最常问、或者最有可能的问题,对于这些问题,可以提前制作答案,构成问答对,简称QA对( Pair),问答系统的知识库存储的FAQ就是传统意义上的知识库,它也可以看作是基于知识库的QA系统。下图以京东帮助中心的QA数据集为例。

5)FAQ系统的常用方案

QA匹配:输入Query与候选的所有 计算相似度,去搜寻哪一个最合适(目前多以深度学习匹配模型为主)QQ匹配:输入Query与FAQ里的Query去找哪一个最相似, 然后把找到的query对应取出(召回为主)

QQ匹配的优点:

1. 语义空间一致性:问题与问题的语义空间是一致的, 而问题与答案可能不一致。

2. 语料的稳定性:问题遵循一个固定的状态, 而回答容易随着业务的发展发生变化。 业务回答与算法模型的解耦。

3. 新问题发现与去重:用户会有新的频繁需要询问的问题,或者管理重复问题,去掉无用的问题。

4. 上线运行速度:一般回答的内容要比问题长很多,QA匹配整体的计算资源消耗和计算速度比较大。

4、检索式问答系统技术路线

1)流程框架

1、知识库构建,即FAQ数据集存至数据库

2、检索模块,选择复杂度较低的文本相似度算法,从知识库中检索可能与用户query相似的若干标准问句,产生候选答案

3、重排序模块,选择效果较好的文本相似度模型,从候选相似问句中,选择与用户query最相似的问句

2)文本相似度模型构建一般经历两个步骤

1、文本表示

2、相似度度量

基于字面匹配:基于词(gram)的方法、最小编辑距离

基于词向量的相似度函数:欧式距离、余弦距离、杰卡德相似度、海明距离等

3)FAQ总结:

以自然语言文本为输入, 给用户较高的自由度。直接返回答案, 无需用户进行进一步判断。FAQ数据集构造成本较大, 需要人工编写问答对与相似句, 仅适用于垂直领域。用户query的表达形式多样且难以穷举, 标准句与相似句可能效果不好。5、基于的检索式问答系统的理论介绍

1、ES数据库简介

工业界常用的索引数据库

(本实现使用进行实现)

为了实现一个信息检索系统重新造车轮是非常麻烦和耗时的, 可以依靠开源的搜索引擎系统。

ES是目前信息检索领域中最成功、最广泛的应用之一。 包含了信息检索中的几乎全部要素:文本预处理、倒排索引构建、关键词匹配、相关性计算等。本次分享就基于实现检索式问答。

1、重要概念引入:

1)索引(index):经过NLP处理后, 将query转化为重要词汇的集合, 这个步骤可以看做是对query进行索引。 检索模型需要找到与query中有交集的。

当用户发起查询时(假设查询为一个关键词),搜索引擎会扫描索引库中的所有文档,找出所有包含关键词的文档,这样依次从文档中去查找是否含有关键词的方法叫做正向索引。

正向索引结构如下:

文档1的ID→单词1的信息;单词2的信息;单词3的信息…

文档2的ID→单词3的信息;单词2的信息;单词4的信息…

但是,互联网上存在的网页(或称文档)不计其数,这样遍历的索引结构效率低下,无法满足用户需求,此时,信息检索系统最经典的数据结构设计——倒排索引就应运而生。

即把“文档→单词”的形式变为“单词→文档”的形式。倒排索引具体机构如下:

单词1→文档1的ID;文档2的ID;文档3的ID…

单词2→文档1的ID;文档4的ID;文档7的ID…

2)ES文本相似度模型介绍

根据第四部分介绍,文本相似度模型构建由文本表示模型及相似度度量组成:

Es内置了基于BM25的文本相似度构建模型,其中它的文本表示模型是基于字面相似中词的匹配,而相似度度量韩式则是对词袋模型和TF-IDF的改良。

从公式中可以看到bm25和tf-idf十分类似,不同的是:

k1:控制了词频饱和度。 比如两篇具有相同长度的文档都在说足球, 其中A中足球出现30次, B中出现50 次, 那么A并不比B获得更高的分数。 因为关键词的出现达到了边界效应。 通过调整k1的值, 可以控制 词频的饱和度。

b:控制了字段长度归一化。文档内容较长,会降低相关性。通过将文档长度归一化到平均长度,减少文档长度的影响。

下面对bm25和tf-idf进行对比:

文档1:小明 【10】, 篮球 【5】

文档1:小明 【30】, 篮球 【15】

以上以ES内置的BM25进行介绍,计算方便快捷,也可以通过向量空间模型将query和文档转化成向量,再通过相似度函数进行计算。

3)评测指标介绍

评测指标:除了常见的、之外,还有诸如:P@10、MAP等

P@10 = 3 / 10 * 100 % = 30%

例如:

问题1有5个相关文档,检索得到3个相关文档,结果位置为1,3,6,如下图所示:

则MAP计算为:(1/1+2/3+3/6+0)/5=0.43。

6、基于的检索式问答系统的简单实现构建自己的FAQ问答对

2)使用ES建立索引

3)使用ES进行query的查询

4)最后通过上述知识构建出来简单的自动问答机器人,如下所示:

7、客户案例

问答系统应用非常广泛,我们为某电商客户开发过一款对话机器人,可以用于自动回复一些常见的问题,比如发货信息、退货流程等,涉及到整个交易流程的所有问题。内部的实现逻辑便是通过基于ES和BM25的召回排序系统实现。

其实关于问答系统,可以有更前沿的一些思路和模型、去实现更为精准的效果,我们后面会继续给大家分享。

评论(0)

二维码