一种基于多路召回的多场景智能问答方法和系统转让专利

申请号 : CN202211325456.6

文献号 : CN115470338B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李月标谭一匡王梁昊张灵箭郭坤龙王娱

申请人 : 之江实验室

摘要 :

本发明涉及人工智能领域,尤其是涉及一种基于多路召回的多场景智能问答方法和系统,该方法包括:步骤S100:用户提出实时问题,并将问题同时输入到多路模型进行问题检索和任务识别,召回各路模型检索到的带有相似度的第一候选问题列表;步骤S200:将多路模型返回的第一候选问题列表进行归并,并按照相似度进行排序,生成第二候选问题列表;步骤S300:从第二候选问题列表中,根据阈值获得Top1或者Topk问题列表,生成回答响应用户。本发明可以进一步提升在多场景问答场景下的召回精度;同时基于多路召回的机制,满足多路模型并发运行的要求,提升运行效率。

权利要求 :

1.一种基于多路召回的多场景智能问答方法,其特征在于,包括以下步骤:步骤S100:用户提出实时问题,并将问题同时输入到多路模型进行问题检索和任务识别,召回各路模型检索到的带有相似度的第一候选问题列表;

步骤S200:将多路模型返回的第一候选问题列表进行归并,并按照相似度进行排序,生成第二候选问题列表;

步骤S300:从第二候选问题列表中,根据阈值获得Top1或者Topk问题列表,生成回答响应用户;

所述多路模型进行的问题检索和任务识别为并行计算,多路模型具体包括:基于关键字检索模型、基于语义检索模型、任务识别模型,所述的基于关键字检索模型和基于语义检索模型用于FAQ问答场景,任务识别模型用于任务型问答场景;

所述基于关键字检索模型对输入的问题进行关键字检索,获得基于关键字召回的带有相似度的候选问题列表,具体包括以下步骤:步骤S111,去除输入的问题中的停顿词并对问题进行分词处理;

步骤S112,通过Elasticsearch搜索引擎对问题进行检索;

步骤S113,召回Top k 的最相关问题列表;

步骤S114,计算用户输入的问题与步骤S113中的召回的问题的相似度,获得基于关键字召回的带有相似度的候选问题列表;

所述步骤S114,具体包括以下子步骤:

步骤S1141,将用户输入的问题通过 Sentence‑BERT模型进行句子编码,生成一个句向量,用Q1表示;

步骤S1142,将召回列表中的k个问题,通过 Sentence‑BERT模型进行句子编码,生成k个句向量,用Pi(i=1,2,3…,k)表示;

步骤S1143,采用余弦相似度计算方法,计算Q1与Pi之间的相似度,用SKi(i=1,2,3…,k)表示,获得基于关键字召回的带有相似度的候选问题列表;

所述基于语义检索模型对输入的问题进行语义检索,获得基于语义检索的召回问题列表,具体包括以下步骤:步骤S121,将用户输入的问题,通过 Sentence‑BERT模型进行问题句子的语义编码,生成语义编码向量;

步骤S122,利用生成的语义编码向量,通过Milvus向量搜索引擎进行查询,采用归一化的向量内积法计算向量相似度,返回相似度最高的Top k 个相似向量ID;

步骤S123,利用召回的Top k个相似向量ID,进一步获取问题列表,具体为:与步骤S122同步进行通过Sentence‑BERT模型对问题进行句向量编码,并将句向量存储于Elasticsearch搜索引擎,检索时采用余弦相似度计算方法进行相似度计算;

将Elasticsearch搜索引擎的检索结果与Milvus向量搜索引擎的检索结果进行合并后的问题列表作为基于语义检索的召回问题列表;

所述任务识别模型对输入的问题进行任务识别,获取召回的任务,具体包括以下步骤:步骤S131,采用规则模板的方法对输入的问题进行意图识别,获取到与规则模板匹配度最大的意图;

步骤S132,针对带有槽位的意图,进行槽位填充;

步骤S133,如果遇到当前意图仍旧缺槽位,则通过多轮对话管理即多轮提问的方式,获得槽位;

步骤S134,返回召回的意图,即Top 1任务;

所述采用规则模板的方法对输入的问题进行意图识别,具体为:通过人工分析每个意图下的有代表性的例句,总结出规则模板,然后将用户的输入问句进行分词、词性标注、命名实体识别、依存句法分析、语义分析的操作后套用所述的规则模板,当与所述规则模板匹对的某个规则模板达到所设阈值之后就认为该输入问句就属于所总结出的规则模板对应的意图;

所述步骤S200,具体为:将所述的基于关键字召回的带有相似度的候选问题列表和基于语义检索的召回问题列表合并,并进行去重后,再合并任务识别模型召回的任务,按照相似度从高到低进行排序,生成第二候选问题列表。

2.如权利要求1所述的一种基于多路召回的多场景智能问答方法,其特征在于,所述步骤S300,具体为:在所述第二候选问题列表中,当排序后Top1 问题为任务型问答场景时,若相似度大于第一阈值,则执行召回的问题对应的任务,响应用户;

若相似度小于等于第一阈值,则将所述第二候选问题列表中相似度大于第二阈值的最多前10个问题进行返回,作为用户的推荐问题;

当排序后Top1 问题为FAQ问答场景,若相似度大于第三阈值:则直接返回输入的问题对应的回答,响应用户;同时将剩余的第二候选问题列表中相似度大于第二阈值的最多前

10个问题,作为用户的推荐问题;

若相似度小于等于第三阈值,则将所述第二候选问题列表中相似度大于第二阈值的最多前10个问题,作为用户的推荐问题。

3.一种采用权利要求1至2任一一项所述的基于多路召回的多场景智能问答方法的系统,其特征在于,包括:多路模型召回模块:用于接收用户提出的实时问题,并将问题同时输入到多路模型进行问题检索和任务识别,召回多路模型检索到的带有相似度的第一候选问题列表;所述多路模型召回模块支持分布式部署;

归并排序模块:用于将多路模型返回的第一候选问题列表进行归并,并按照相似度进行排序,生成第二候选问题列表;

执行模块:用于从第二候选问题列表中,根据阈值获得Top1 或者 TopK 问题列表,生成回答响应用户。

说明书 :

一种基于多路召回的多场景智能问答方法和系统

技术领域

[0001] 本发明涉及人工智能领域,尤其是涉及一种基于多路召回的多场景智能问答方法和系统。

背景技术

[0002] 自然语言处理是人工智能领域重要的一个分支,而智能问答又是自然语言处理领域非常经典应用场景之一,也是人机交互较常用的手段之一。如线上智能客服机器人、线下大厅接待机器人、智能语音助手等。智能问答能够理解以自然语言描述的用户提问,并生成包含答案的回复内容或者执行用户下发的任务。智能问答系统按不同的场景,我们一般分为 FAQ问答系统、(特定领域)任务型问答系统。
[0003] 在单一场景下,目前已经有较多成熟的解决方案,在各自的应用场景下也起到了不错的效果。然而,在实际场景中,我们经常会遇到多场景融合的智能问答场景,即智能问答既要能实现FQA问答类型,也能满足特定领域内的任务型问答。目前主流的方法之一是先对用户提出的问题进行分类,判断当前用户问题的所属场景,然后再进入到具体分类下进行问题检索或者识别指令执行任务。然而在实际的不同业务领域中,相同的用户问题也可能表示不同的业务需求,因此容易发生问题分类与用户实际的业务需求不一致的错误。即使系统内有对应的回答或者任务,也会导致因问题分类出错而出现回答错误或者执行错误的情况,即召回精度低。
[0004] 另外一种主流的方法是按顺序进行不同类别的问题检索,例如首先基于FAQ类问题检索,如果当前匹配到Top1的问题,则认为命中该问题,返回该问题的答案;如果未匹配到Top1的问题,则进入到下一类问题的检索。这种方法存在两个关键问题:1.效率较低,如果当前用户的问题,在检索链路靠后的问题分类中,则需要按顺序把所有问题检索一遍; 2.召回精度较低,当在前一个问题分类的检索任务中获得Top1的问题后,就停止检索,但实际情况可能在后面的问题分类中存在相似度更高的问题。

发明内容

[0005] 为了解决现有技术中存在的上述技术问题,本发明提出了一种基于多路召回的多场景智能问答方法和系统,以解决智能问答系统在多场景融合的问答场景下,现有技术召回精度低的问题;同时基于多路召回的机制,满足多路模型并发运行的要求,提升运行效率,此外每类模型还可采用N版本设计的思路,进一步提升系统的可靠性;其具体技术方案如下:
[0006] 一种基于多路召回的多场景智能问答方法,包括以下步骤:
[0007] 步骤S100:用户提出实时问题,并将问题同时输入到多路模型进行问题检索和任务识别,召回各路模型检索到的带有相似度的第一候选问题列表;
[0008] 步骤S200:将多路模型返回的第一候选问题列表进行归并,并按照相似度进行排序,生成第二候选问题列表;
[0009] 步骤S300:从第二候选问题列表中,根据阈值获得Top1或者Topk问题列表,生成回答响应用户。
[0010] 进一步的,所述多路模型进行的问题检索和任务识别为并行计算,多路模型具体包括:基于关键字检索模型、基于语义检索模型、任务识别模型,所述的基于关键字检索模型和基于语义检索模型用于FAQ问答场景,任务识别模型用于任务型问答场景。
[0011] 进一步的,所述基于关键字检索模型对输入的问题进行关键字检索,获得基于关键字召回的带有相似度的候选问题列表,具体包括以下步骤:
[0012] 步骤S111,去除输入的问题中的停顿词并对问题进行分词处理;
[0013] 步骤S112,通过Elasticsearch搜索引擎对问题进行检索;
[0014] 步骤S113,召回Top k 的最相关问题列表;
[0015] 步骤S114,计算用户输入的问题与步骤S113中的召回的问题的相似度,获得基于关键字召回的带有相似度的候选问题列表。
[0016] 进一步的,所述步骤S114,具体包括以下子步骤:
[0017] 步骤S1141,将用户输入的问题通过 Sentence‑BERT模型进行句子编码,生成一个句向量,用Q1表示;
[0018] 步骤S1142,将召回列表中的k个问题,通过 Sentence‑BERT模型进行句子编码,生成k个句向量,用Pi(i=1,2,3…,k)表示;
[0019] 步骤S1143,采用余弦相似度计算方法,计算Q1与Pi之间的相似度,用SKi(i=1,2,3…,k)表示,获得基于关键字召回的带有相似度的候选问题列表。
[0020] 进一步的,所述基于语义检索模型对输入的问题进行语义检索,获得基于语义检索的召回问题列表,具体包括以下步骤:
[0021] 步骤S121,将用户输入的问题,通过 Sentence‑BERT模型进行问题句子的语义编码,生成语义编码向量;
[0022] 步骤S122,利用生成的语义编码向量,通过Milvus向量搜索引擎进行查询,采用归一化的向量内积法计算向量相似度,返回相似度最高的Top k 个相似向量ID;
[0023] 步骤S123,利用召回的Top k个相似向量ID,进一步获取问题列表,具体为:与步骤S122同步进行通过Sentence‑BERT模型对问题进行句向量编码,并将句向量存储于Elasticsearch搜索引擎,检索时采用余弦相似度计算方法进行相似度计算;
[0024] 将Elasticsearch搜索引擎的检索结果与Milvus向量搜索引擎的检索结果进行合并后的问题列表作为基于语义检索的召回问题列表。
[0025] 进一步的,所述任务识别模型对输入的问题进行任务识别,获取召回的任务,具体包括以下步骤:
[0026] 步骤S131,采用规则模板的方法对输入的问题进行意图识别,获取到与规则模板匹配度最大的意图;
[0027] 步骤S132,针对带有槽位的意图,进行槽位填充;
[0028] 步骤S133,如果遇到当前意图仍旧缺槽位,则通过多轮对话管理即多轮提问的方式,获得槽位;
[0029] 步骤S134,返回召回的意图,即Top 1任务。
[0030] 进一步的,所述采用规则模板的方法对输入的问题进行意图识别,具体为:通过人工分析每个意图下的有代表性的例句,总结出规则模板,然后将用户的输入问句进行分词、词性标注、命名实体识别、依存句法分析、语义分析的操作后套用所述的规则模板,当与所述规则模板匹对的某个规则模板达到所设阈值之后就认为该输入问句就属于所总结出的规则模板对应的意图。
[0031] 进一步的,所述步骤S200,具体为:将所述的基于关键字召回的带有相似度的候选问题列表和基于语义检索的召回问题列表合并,并进行去重后,再合并任务识别模型召回的任务,按照相似度从高到低进行排序,生成第二候选问题列表。
[0032] 进一步的,所述步骤S300,具体为:
[0033] 在所述第二候选问题列表中,当排序后Top1 问题为任务型问答场景时,若相似度大于第一阈值,则执行召回的问题对应的任务,响应用户;
[0034] 若相似度小于等于第一阈值,则将所述第二候选问题列表中相似度大于第二阈值的最多前10个问题进行返回,作为用户的推荐问题;
[0035] 当排序后Top1 问题为FAQ问答场景,若相似度大于第三阈值:则直接返回输入的问题对应的回答,响应用户;同时将剩余的第二候选问题列表中相似度大于第二阈值的最多前10个问题,作为用户的推荐问题;
[0036] 若相似度小于等于第三阈值,则将所述第二候选问题列表中相似度大于第二阈值的最多前10个问题,作为用户的推荐问题。
[0037] 一种基于多路召回的多场景智能问答系统,包括:
[0038] 多路模型召回模块:用于接收用户提出的实时问题,并将问题同时输入到多路模型进行问题检索和任务识别,召回多路模型检索到的带有相似度的第一候选问题列表;所述多路模型召回模块支持分布式部署;
[0039] 归并排序模块:用于将多路模型返回的第一候选问题列表进行归并,并按照相似度进行排序,生成第二候选问题列表;
[0040] 执行模块:用于从第二候选问题列表中,根据阈值获得Top1 或者 TopK 问题列表,生成回答响应用户。
[0041] 有益效果:
[0042] 本发明提升了办公业务FAQ问答场景和特定科研机构任务型问答场景下的召回率;同时基于多路召回的机制,满足多路模型并发运行的要求,提升运行效率,此外在基于语义检索中,实施了两类基于语义检索的算法版本,进一步提升检索的可靠性。

附图说明

[0043] 图1是本发明的一个实施例的一种基于多路召回的多场景智能问答方法的主要步骤流程示意图;
[0044] 图2是本发明的一个实施例的一种基于多路召回的多场景智能问答方法方法中的基于关键字检索的子流程示意图;
[0045] 图3是本发明的一个实施例的一种基于多路召回的多场景智能问答方法中的基于语义检索的子流程示意图;
[0046] 图4是本发明的一个实施例的一种基于多路召回的多场景智能问答方法中的任务识别子流程示意图;
[0047] 图5是本发明的一个实施例的一种基于多路召回的多场景智能问答系统的主要结构框图;
[0048] 图6是本发明的一个实施例的一种基于多路召回的多场景智能问答系统中多路模型召回模块的主要结构框图;
[0049] 图7是本发明的一个实施例的一种基于多路召回的多场景智能问答装置的结构示意图。

具体实施方式

[0050] 为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
[0051] 如图1所示,本发明实施例提供的一种基于多路召回的多场景智能问答方法,具体过程包括以下步骤:
[0052] 步骤S100:用户提出实时问题,并将问题同时输入到多路模型进行问题检索和任务识别,召回各路模型检索到的带有相似度的第一候选问题列表;
[0053] 用户可通过多种方式,将自己的业务需求或者问题转换成文字,如键盘输入、语音输入等,比如“如何报销”、“查下我昨天的考勤”、“李XX坐哪里”。
[0054] 传统的智能问答,首先会将当前的问题进行分类,判断当前问题归属FAQ问答还是任务型问答。如果为FAQ问答,则进入FAQ问题库进行检索,响应用户返回答案;如果为任务型问答,则进一步进行意图识别、槽位填充,从而执行具体的任务。另一种方法为:按顺序进行不同类别的问题检索,例如首先基于FAQ类问题检索,如果当前匹配到Top1的问题,则认为命中该问题,返回该问题的答案;如果未匹配到Top1的问题,则进入到下一类问题的检索。
[0055] 而基于本发明的实施例中,将用户问题直接输入到多路模型进行问题检索和任务识别,所述的多路模型的问题检索和任务识别是可以并行计算的,因此不会影响系统的性能。具体的,所述多路模型采用了三类模型进行智能问答的检索,包括:基于关键字检索模型、基于语义检索模型、任务识别模型,所述的基于关键字检索模型和基于语义检索模型用于满足基于FAQ场景的问答,任务识别模型用于实现特定场景的任务型问答。
[0056] 其中,所述基于关键字检索模型对输入的问题进行关键字检索,具体过程为:
[0057] 由于在实际过程中,存在用户直接通过关键字查询的情形,这种情况下,由于输入的信息有限,通过单一的语义检索可能无法满足实际业务场景需求,因此在FAQ场景下,增加了基于关键字检索模型。如图2 所示为基于关键字检索的基本流程,在本实施例中,采用Elasticsearch搜索引擎进行全量问题的存储和检索,在进行检索之前,将所有问答对存储到搜索引擎,对于中文,目前有许多对应分词器,例如:IK,jieba,THULAC等,本实施例中采用IK分词器,并采用ik_max_word分词算法进行存储。
[0058] 当获得用户输入的问题后,采用基于关键字检索模型进行检索的基本流程包括以下步骤:
[0059] 步骤S111,去除用户输入的问题中的停顿词并对问题进行分词处理,本实施例中采用的Elasticsearch搜索引擎可以方便的对停顿词和扩展词进行自定义;
[0060] 步骤S112,通过所述Elasticsearch搜索引擎对问题进行检索;
[0061] 步骤S113,召回Top k 的最相关问题列表,本实施例中k取10;
[0062] 步骤S114,计算用户输入的问题与步骤S113中的召回的问题的相似度,获得基于关键字召回的带有相似度的候选问题列表;
[0063] 如果搜索引擎能够直接包含问题相似度,则不需要进行步骤S114,由于本实施例选择的Elasticsearch搜索引擎返回的score值无法直接作为相似度的度量标准,因此需要将召回的问题和用户问题之间转换成0 1之间的相似度。计算两个语句之间的相似度有较~多的方法,在本实施例中采用 Sentence‑BERT模型进行句子编码,具体采用预训练模型 distiluse‑base‑multilingual‑cased‑v2,具体流程如下:
[0064] 步骤S1141,将用户输入的问题通过 Sentence‑BERT模型进行句子编码,生成一个句向量,用Q1表示;
[0065] 步骤S1142,将召回列表中的k个问题,k取10,采用同样的编码方式,生成10个句向量,用Pi(i=1,2,3…,10)表示;
[0066] 步骤S1143,采用余弦相似度计算方法Cosine Similarity,计算Q1与Pi之间的相似度,用SKi(i=1,2,3…,10)表示;
[0067] 至此,获得了基于关键字召回的带有相似度的候选问题列表。
[0068] 所述基于语义检索模型对输入的问题进行语义检索,具体过程为:
[0069] 如图3 所示为基于语义检索的基本流程,同样的,在检索前,需要将已知的全部问题进行编码后存储到向量检索引擎,以便于后续的检索。目前有较多的向量检索引擎,本实施例中采用云原生向量数据库Milvus,即Milvus向量检索引擎,它具备高可用、高性能、易拓展的特点,用于海量向量数据的实时召回。
[0070] 在本实施例中,采用Sentence‑BERT模型进行句向量模型编码,具体为采用预训练模型 distiluse‑base‑multilingual‑cased‑v2,利用该模型生成的问题句向量存储到向量检索引擎后,即可进行检索,具体流程如下:
[0071] 步骤S121,将用户输入的问题,通过 Sentence‑BERT模型进行句子编码,生成句向量;
[0072] 步骤S122,利用生成的句向量,通过Milvus向量搜索引擎进行查询,采用归一化的向量内积法计算向量相似度,返回相似度最高的Top k 个相似向量ID, k 取10;
[0073] 步骤S123,利用召回的Top k个相似向量ID,进一步获取问题列表,而内积作为相似度;
[0074] 可选的,为了提升基于语义检索的召回率,本实施例中还增加了第二个版本进行句向量的存储和检索。具体的,采用搜索引擎 Elasticsearch 进行向量的存储和向量检索;同样的,采用Sentence‑BERT模型对问题进行句向量编码,并将向量存储于搜索引擎Elasticsearch,检索时采用余弦相似度计算方法Cosine Similarity进行相似度计算,该版本与基于ilvus搜索引擎的检索同步进行,并将Elasticsearch搜索引擎的检索结果与Milvus向量搜索引擎的检索结果进行合并后的问题列表作为基于语义检索的召回问题列表输入到下一步骤。
[0075] 采用N版本的方式,一方面可以通过多版本的方式规避单一算法的缺陷和不足,从而提升召回率,另一方便,也可以提升系统的可靠性,当某种算法出现问题时,也不影响系统的正常使用,同时,多版本也支持并发计算,从而也不会影响系统性能。
[0076] 所述任务识别模型对输入的问题进行任务识别,具体过程为:
[0077] 如图4所示为本实施例中任务识别的基本流程,任务识别基本任务包括意图识别、槽位填充、召回Top 1 任务及其获得的槽位值,以及命中所述任务的相似度,具体的包括以下流程:
[0078] 步骤S131,采用规则模板的方法对输入的问题进行意图识别,获取到与规则模板匹配度最大的意图。具体的:判断用户的问题是否为某个意图,归根结底为一个文本分类问题,一般可采用规则模板、统计机器学习、深度学习实现,本实施例中采用规则模板的方法进行意图识别。
[0079] 所述采用规则模板的方法进行意图识别,具体为:通过人工分析每个意图下的有代表性的例句,总结出规则模板,然后将用户的输入问句进行分词、词性标注、命名实体识别、依存句法分析、语义分析等操作后套用所述的规则模板,当与之匹对的某个规则模板达到一定的阈值之后就认为该输入问句就属于所总结出的规则模板对应的意图。以查询员工座位为例,可以事先收集类似以下相关的问题:
[0080] 1)李四坐哪里
[0081] 2)李四在哪里办公
[0082] 3)李四的座位在哪
[0083] 4)李四的位置在哪
[0084] 5)李四的办公室在哪
[0085] 6)李四在哪个办公室
[0086] 然后再总结归纳制定规则模板:
[0087]
[0088] 其中  .* 表示任意字符,[]表示实体类型或词性,() 表示可选的关键词,()表示必选的关键词,|表示或者关系。当用户输入“请问李四坐哪个位置”,对问题进行分词和词性标注,匹配到姓名“李四”,关键词“坐”、“哪个”,他们的组合和预定义好的模板高度匹配,于是确认该问题是“查询员工座位”意图;
[0089] 获取当前识别到的匹配度最大的意图,当匹配度小于某个阈值时,则认为当前意图不是对的意图,直接丢弃,结束后续的步骤。
[0090] 如果超过阈值,则认为当前识别到的意图为对的意图,进入下一步进行槽位填充。
[0091] 步骤S132,针对有槽位的意图进行槽位填充,槽位填充包括命名实体识别和槽位预测,实际上,在意图识别时,也可进行部分实体的识别,达到槽位填充的目的;
[0092] 步骤S133,如果遇到当前意图仍旧缺槽位,则通过多轮对话管理即多轮提问的方式,获得槽位,比如在“查询考勤”任务中,词槽需要包含日期,当用户提问“查下我的考勤”时,命中了“查询考勤”的意图,但是缺少日期,则会反问:“请问你要查询哪一天”,用户答:“昨天”,将时间的词槽进行填充;
[0093] 在多伦对话中,问题中会包含会话ID,因此会直接进行任务识别,而不会进行关键字检索和语义检索;
[0094] 步骤S134,返回召回的意图,即Top 1 任务,至少包含意图ID、匹配度、获取到的词槽、会话ID、是否结束会话标志。
[0095] 步骤S200:将多路模型返回的第一候选问题列表进行归并,并按照相似度进行排序,生成第二候选问题列表,具体地将所述的基于关键字召回的带有相似度的候选问题列表和基于语义检索的召回问题列表合并,并进行去重后,再合并任务识别模型召回的任务,按照相似度从高到低进行排序,生成第二候选问题列表。
[0096] 步骤S300:从第二候选问题列表中,根据阈值获得Top1或者Topk问题列表,生成回答响应用户。
[0097] 如果排序后Top 1 的为任务类型:
[0098] 若相似度大于第一阈值,本实施例中第一阈值设置为0.6,则根据召回的意图返回的内容执行任务,例如执行查询某人某天的考勤时间任务,并将答案回复给用户。同时将剩余的召回问题列表中匹配度大于第二阈值的最多前10个问题,作为该用户的推荐问题进行返回,本实施例中第二阈值设置为0.4。
[0099] 若相似度小于等于第一阈值,则不直接返回答案,而是将召回的问题或者任务阈值大于第二阈值的最多前10个问题进行返回,作为该用户的推荐问题。
[0100] 如果排序后Top 1的为FAQ类型:
[0101] 若相似度大于第三阈值,本实施例中第三阈值设置为0.85,则直接返回该问题对应的回答。回答方式可包含图文、视频、富文本等,同时将剩余的召回问题列表或者任务中匹配度大于第二阈值的最多前10个问题,作为该用户的推荐问题进行返回。
[0102] 若相似度小于等于第三阈值,则不直接返回答案,而是将召回的问题或者任务阈值大于第二阈值的最多前10个问题进行返回,作为该用户的推荐问题。
[0103] 在本实施例中,所述基于关键字检索、基于语义检索、任务识别这三个步骤分别部署在不同的服务器并行执行,其中基于关键字检索和基于语义检索用于办公业务FAQ问答场景,任务识别用于特定科研机构任务型问答场景。本发明提升了办公业务FAQ问答场景和特定科研机构任务型问答场景下的召回率;同时基于多路召回的机制,满足多路模型并发运行的要求,提升运行效率,此外在基于语义检索中,实施了两类基于语义检索的算法版本,进一步提升检索的可靠性。
[0104] 如图5所示,本发明实施例中,一种基于多路召回的多场景智能问答系统,应用于单台服务器或者多台分布式服务器,包括:
[0105] 多路模型召回模块:用于接收用户提出的实时问题,并将问题同时输入到多路模型进行问题检索和任务识别,召回多路模型检索到的带有相似度的第一候选问题列表;所述多路模型召回模块支持分布式部署;
[0106] 归并排序模块:用于将多路模型返回的第一候选问题列表进行归并,并按照相似度进行排序,生成第二候选问题列表;
[0107] 执行模块:用于从第二候选问题列表中,根据阈值获得Top1 或者 TopK 问题列表,生成回答响应用户。
[0108] 其中多路模型召回模块,如图6所示,具体包括以下子模块:
[0109] 关键字检索模块:用于将问题分词后,基于关键字检索问题,召回基于关键字检索模型下TopK 相似问题,可用于FAQ问答场景;本申请实施例中,该模块中搜索引擎采用 Elasticsearch 进行全量问题的存储和检索。
[0110] 语义检索模块:用于将问题Sentence‑Embedding编码后,基于语义检索问题,召回基于语义检索模型下TopK 相似问题,可用于FAQ问答场景。本申请实施例中,该模块中的Sentence‑Embedding的模型采用Sentence‑BERT,具体为采用预训练模型 distiluse‑base‑multilingual‑cased‑v2,向量数据库采用milvus搜索引擎。
[0111] 本申请实例中,可选的,语义检索模块增加新的子模块,该模块中的Sentence‑Embedding模型采用Sentence‑BERT,具体为采用预训练模型 distiluse‑base‑multilingual‑cased‑v2,向量数据库采用 Elasticsearch搜索引擎。
[0112] 任务识别模块:用于采用规则模板、统计机器学习、深度学习进行识别意图、槽位值提取,召回所述任务识别模型下Top1 相似意图,可用于特定任务型问答场景。本实例中,该模块至少包含基于规则模板的意图识别模块。
[0113] 需要说明的是,本申请实施例中,多路模型召回模块中的各个子模块支持分布式部署,即可部署在不同的服务器上并发计算,提升运行效率。
[0114] 与前述一种基于多路召回的多场景智能问答方法的实施例相对应,本发明还提供了一种基于多路召回的多场景智能问答装置的实施例。
[0115] 参见图7,本发明实施例提供的一种基于多路召回的多场景智能问答装置,包括一个或多个处理器,用于实现上述实施例中的基于多路召回的多场景智能问答方法。
[0116] 本发明的基于多路召回的多场景智能问答装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本发明一种基于多路召回的多场景智能问答装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0117] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0118] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0119] 本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于多路召回的多场景智能问答方法。
[0120] 所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0121] 以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。