CN116361428A - 一种问答召回方法、装置和存储介质 - Google Patents
一种问答召回方法、装置和存储介质 Download PDFInfo
- Publication number
- CN116361428A CN116361428A CN202310007534.6A CN202310007534A CN116361428A CN 116361428 A CN116361428 A CN 116361428A CN 202310007534 A CN202310007534 A CN 202310007534A CN 116361428 A CN116361428 A CN 116361428A
- Authority
- CN
- China
- Prior art keywords
- recall
- corpus
- text
- target
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 239000013598 vector Substances 0.000 claims abstract description 220
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000007781 pre-processing Methods 0.000 claims abstract description 15
- 238000012549 training Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 22
- 238000013528 artificial neural network Methods 0.000 description 16
- 238000010606 normalization Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例提供一种问答召回方法、装置和存储介质。该方法包括获取用户输入的检索语料;将检索语料按照场景划分至多个召回库中,多个召回库中不同的召回库用于存储不同场景的语句;将第一召回库中的检索语料输入至ES数据库中进行召回,以获取第一召回文本;将第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量;将目标句向量输入至ES数据库中进行召回,以获取第二召回文本;将第一召回文本和第二召回文本混合生成的目标召回文本根据预设算法,生成与第一召回库中的多个检索语料分别对应的检索结果。采用本申请实施例,能够快速有效地从问答资源中匹配出最接近且高质量的回答。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种问答召回方法、装置和存储介质。
背景技术
以社区问答为例,越来越多的社区问答平台,为互联网用户提供了一个在线提问和解答的平台,来帮助人们快速获得日常或专业问题的高质量回答。
为了克服传统搜索引擎的缺点,问答系统技术应运而生。问答系统能够准确地识别出用户自然语言所表达的查询语义意图,并为其匹配到最相关的答案,作为查询结果。而问答系统中的传统索引式问答一般是根据任务的需要构造一个或者几个常见问题问答库进行统一的召回和排序,最后返回最好的答案。
但随着时间的推移和社会的发展,问答库中的文本会愈加充裕,且使用问答系统的用户也会越来越多。因此,随着语料的增加和召回数量的增加,响应时间也会随之增加。当同一时间进行召回的语料十分大的时候,响应时长也会被拉长。这时用户发送完一条消息后可能出现短暂的等待现象,这对于用户的体验十分的不友好;以及,传统的索引式问答在排序时,一般就是返回召回中最相似的一个,这样的方式只依赖于模型本身的表现很容易出现一些问题的误识别的情况,如何优化这种情况显的格外重要;进一步的,如何提升召回结果的丰富度,也同样有着重要的意义。
因此,如何快速有效地从问答资源中匹配出最接近且高质量的回答,是一个亟需解决的问题。
发明内容
本申请实施例提供一种问答召回方法、装置和存储介质,能够快速有效地从问答资源中匹配出最接近且高质量的回答。
第一方面,本申请实施例提供了一种问答召回方法,所述方法包括:
获取用户输入的检索语料,所述检索语料包括一个或多个问句;
将所述检索语料按照场景划分至多个召回库中,所述多个召回库中不同的召回库用于存储不同场景的语句,同一个召回库中存储的问句属于同一个场景;
将第一召回库中的检索语料输入至弹性搜索(ElasticSearch,ES)数据库中进行召回,以获取第一召回文本,其中,所述第一召回库为所述多个召回库中的任意一个召回库;
将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,所述目标句向量包括与所述第一召回库中的检索语料对应的句向量;
将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本;
将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果。
在现有技术阶段,目前问答系统的主要面临三个问题,第一,随着数据的不断累积,与用户检索的问题相关的答案越来越多,且使用此类系统的用户也越来越多,这就导致了问答系统需要处理的数据越来越多,从而导致系统的响应速度越来越慢;第二,因为不同于推荐系统可以展示多个候选商品,问答系统只能回复一种答案,因此,它必须保证自身展示给用户的就是正确答案,而不是像推荐系统一样将正确答案排在靠前的位置就算成功,否则就是一次失败的检索,这就要求了召回的答案哪个能够排在第一位具有重要意义,这也就代表着,通过何种方法对召回的答案进行排序和筛选非常关键;第三,由于数据的不断累积,与用户检索的问题相关的答案确实在飞速增加,但召回的方法存在一定的缺陷,一般是从语料的术语term角度出发进行召回,从term级的角度出发进行召回的确可以检索到与问题相关性较强的答案,但对问题的理解可能会由于自然语言的撰写方法存在差异而导致对索引的答案的方向存在问题,若语义理解出现了问题,则代表着召回的答案的精确度会极低,因此如何丰富召回的答案的丰富度,来弥补在召回阶段可能出现的问题非常重要。
在本方法中,同样是通过召回和排序两个阶段来返回针对用户输入的问题语料的答案,但在召回阶段和排序阶段上的构思进行了创新,以此来解决上述三个问题。首先,在召回阶段,本方法采用两路召回并行的方式,从语义级和术语term级两个角度出发进行召回,来丰富召回的文本的数量和范围;进一步的,无论从语义级出发还是从term级出发,均将弹性搜索ES数据库作为问答库来进行召回,以此利用弹性搜索ES数据库的快速响应的特点,来加快问答系统的响应速度;更进一步的,在从term级的角度出发进行召回的路径当中,将用户输入的检索语料直接输入至弹性搜索ES数据库,以此得到与检索语料的组成词语相关性较强的答案,所述答案相当于前述的召回文本;在从语义级出发进行召回的路径当中,本方法通过句向量获取模型、相似向量检索库和ES数据库,根据检索语料的语义进行召回,从句向量的角度出发,加强对检索语料的语义的理解,利用了相似向量检索库快速索引的特点以及ES快速搜索的特点,大大降低了响应时间,提高了用户的体验。
其次,本方法针对同一时间段用户输入的检索语料进行场景划分和分别存储,由于在同一场景中的用户提出的问题具备一致性和相关性,以催收问答为例,场景一般分为三个大的阶段,分别为核身、协商、收集信息,以此来划分召回库,针对在核身阶段的用户输入的检索语料划分至同一召回库中,其他的同理,以此将同一场景中的用户的检索语料进行同批次的处理,以便于在排序阶段采用相同的方法对召回文本进行排序,需要说明的是,不同场景中的用户的检索语料对应的排序方法可能是不同的,因此,提前对检索语料进行划分,能够有力地增加后期的排序速度。
在第一方面的又一种可能的实施方式中,所述将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,包括:
将所述第一召回库的多个检索语料逐一输入至预先训练完成的句向量获取模型中,获取所述第一召回库的检索语料的句向量,所述句向量获取模型为根据所述第一召回库的历史检索语料和与所述历史检索语料对应的句向量训练得到的模型,所述第一召回库的历史检索语料为特征数据,与所述历史检索语料对应的句向量为标签数据;
将所述检索语料的句向量输入至所述相似向量检索库中,获取目标句向量,所述目标句向量包括所述第一召回库的检索语料的句向量和与所述句向量同义的其他句向量。
在根据检索语料的语义进行召回的路径中,通过句向量获取模型、相似向量检索库和ES数据库,根据检索语料的语义进行召回,从句向量的角度出发,加强对检索语料的语义的理解。
因此召回的过程就是确定检索召回策略,生成检索下发项的过程,一个检索下发项通俗来讲就是判断哪些词要用于召回,哪些词要被丢掉。比如“windows系统iphone导照片”是一种检索下发项。实际中,一次搜索的检索策略会存在多个并行的检索下发项。这是因为确定哪些词参与召回本身是个很困难的事情,包含多个并行的下发检索项去召回进而求并集使得能够召回足够多并且是相关的文章,这也是生成目标句向量的原因。
进一步的,越是重要的词越应该在召回中被保留,所以计算疑问query中词的重要性就是个非常基础而且重要的事情。把term重要性、紧密度、丢词这三个模块放到一起,是因为三者的联系非常紧密,都是为了更好的判断哪些词在比较重要。term重要性是先验的为了计算同一文本中不同词的重要性,比如对于query“手机京东”,很明显term“京东”要比“手机”更重要,因此“京东”的权重应该比“手机”高。紧密度是为了计算相邻两个词的紧密程度,其紧密度越大,说明相邻2个词越是一个完整的实体或者是一部分,比如“少年的你电影观看”,“少年”和“的”,“的”和“你”的紧密度都比较高,其整体是一个电影实体,考虑紧密信息可以避免单独来看“少年”“的”“你”都不重要。丢词和term重要性非常类似,其区别是计算面向doc资源的词的重要性,以来衡量词的召回能力。所以丢词是在词权重和紧密度的先验信息上,要考虑词的后验召回能力,去生成更好的检索下发项。
具体的,首先将所述第一召回库的多个检索语料逐一输入至句向量获取模型中,以获取所述第一召回库的检索语料的句向量,通过所述检索语料的句向量使后续的工具能够理解所述检索语料的语义;进一步的,通过相似向量检索库,如FAISS,获得所述检索语料的句向量的同义句向量,再将所述检索语料的句向量和所述检索语料的句向量的同义句向量组成目标句向量,在两路召回路径的基础上,进一步丰富了目标召回文本的数量和范围。
在第一方面的又一种可能的实施方式中,所述将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本,包括:
根据弹性搜索ES数据库的索引方法,生成与所述第一召回库中的各个检索语料分别对应的附属标识;
根据所述附属标识将所述目标句向量输入至所述弹性搜索ES数据库中,以获取第二召回文本。
本方法在导入数据到ES数据库时,采取给所述检索语料附加附属标识的方式。就是使用系统中已有的数据的唯一标识,作为ES中document的id举个例子,比如说,开发一个电商网站,做搜索功能,商品数据首先会在网站系统或者IT系统内部的数据库中有一份,此时就肯定会有一个数据库的primary key(自增长,UUID,或者业务编号),那么该数据即可直接导入到ES数据库中,此时就比较适合采用数据在数据库中的primary key;但如果说,该电商网站的主要的商品数据存储地点就是ES数据库,也就是说,商品数据生成后出,并没有附属标识;也可以采用ES数据库中自带的自动生成附属标识的方式,自动生成的附属标识,长度为20个字符,URL安全,base64编码,GUID,分布式系统并行生成时不会发生冲突,以此进一步加快ES数据库对目标句向量的识别和响应。
在第一方面的又一种可能的实施方式中,其特征在于,所述将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果,包括:
将所述第一召回文本和所述第二召回文本进行混合,以生成目标召回文本;
根据提前训练好的排序模型,对所述目标召回文本进行打分,以生成第一分值;
根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值;
根据所述第一分值、与所述第一分值对应的第一权重、第二分值和与所述第二分值对应的第二权重,以生成与所述目标召回文本分别对应的目标分值;
确定目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本,其中,所述目标检索语料为所述第一召回库中任意一个检索语料;
将所述目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本确定为与所述目标检索语料对应的检索结果;
将所述检索结果,返回至与所述目标检索语料对应的用户。
本方法在排序阶段,对召回的文本进行双重打分,并进行加权求和和共同判别,以期望获取最优的结果。具体的,在得到目标召回文本之后,对所述目标召回文本进行双重打分,得到与所述目标召回文本对应的第一分值和第二分值,再根据所述第一分值、所述第二分值和两者的权重进行综合,以得到所述目标召回文本的目标分值,需要说明的是,所述目标召回文本包括多个召回文本,这也就代表着,所述目标分值也有多个。
获取第一分值的方式主要是通过排序模型,排序模型包括相关度排序模型和重要性排序模型,L2R中的特征既包含文本本身的特征,也包含给定查询之间的相关度和文本在整个网络的重要性。即使用文本本身、查询和文本的各种相关性以及文本的重要性作为特征。排序学习考虑的是doc的顺序(而非值的大小),所以需要一个新的cost function,而使用神经网络训练模型本身就是在定义cost function,它可以兼容不同的算法(GBDT、神经网络等),以A文本和B文本为例,目标概率:A文本比B文本更加相关,Pab=1;B比A更相关,Pab=0;AB相关的相同,Pab=0.5;预测概率:Pab=e^Oab/(1+e^Oab),Oab=f(xa)-f(xb)
(即两篇文本神经网络数据输出的差值过Sigmoid函数);损失函数:交叉熵,近似线性函数(关于Oab),且若Pab=0.5即不提供任何信息的时候,损失函数关于原点对称;优化损失函数方法:梯度下降;另外,对于m个文本,需要且只需要知道相邻文本之间的概率Pij,就可以算出任意两个文本之间的后验概率。即以排列后的相邻文本之间的概率Pij作为训练数据,时间复杂度为O(N)。通过训练完成的排序模型可以直接获取所述第一分值,方便快捷。
获取第二分值的方式主要是通过所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,需要说明的是,可以通过所述目标召回文本与所述第一召回库中的检索语料的关键词重合度确定第二分值。
在进行加权打分,以得到综合分值的过程中,会使用第一权重和第二权重,所述第一权重对应第一分值,所述第二权重对应第二分值,需要说明的是,所述第二权重根据与目标召回文本对应的检索语料的场景确定,例如,第一召回库中的检索语料对应一个场景,那么与该场景对应的第二权重,与其他场景对应的第二权重是存在区别,通过上述过程,更加精细化的区分与检索语料适配的目标召回文本。
在第一方面的又一种可能的实施方式中,所述根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值,包括:
将所述第一召回库中的检索语料输入至第一实体识别模型中,生成与所述多个检索语料分别对应的第一关键词,其中,所述第一实体识别模型为根据所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本、与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词训练得到的模型,所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本为特征数据,所述与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词为标签数据;
将所述目标召回文本输入至所述第一实体识别模型中,生成与所述目标召回文本分别对应的第二关键词;
根据所述第一关键词和所述第二关键词的相似度,生成第二分值。
需要说明的是,所述第一实体识别模型为命名实体识别模型中的一种,所述命名实体识别模型包括6层第一Transformer结构和CRF层;各层所述第一Transformer结构均包括位置向量表示层、输入向量表示层、多头注意力网络层、第一残差连接和归一化层、前馈神经网络层和第二残差连接和归一化层;其中,位置向量表示层用于将每个位置编号,每个编号对应一个向量,向量是随机初始化的,在训练中更新;所述输入向量表示层用于下载Word2Vec词向量表,通过查表,每个词对应一个唯一的向量作为初始化的向量表示,在训练中也会更新;所述位置向量表示层和输入向量表示层的数据拼接后发送到所述多头注意力网络层和第一残差连接和归一化层;所述多头注意力网络层用于对输入的数据进行自注意力操作处理后发送到所述第一残差连接和归一化层;所述第一残差连接和归一化层根据接收到的数据进行处理,以缓解反向传播过程中的梯度消失问题,处理结果分别发送到所述前馈神经网络层和第二残差连接和归一化层;所述前馈神经网络层对接收到的数据进行处理后发送到所述第二残差连接和归一化层;所述第二残差连接和归一化层根据接收到的数据进行处理,处理结果发送到CRF层;所述CRF层对接收的数据进行序列标注,得到每个单词对应的标签,而识别疑问或是召回文本中的关键词在本方法中至关重要,能够更准确地确定符合检索语料的答案。
具体的,首先根据所述第一实体识别模型提取所述第一召回库中的检索语料的第一关键词,所述第一关键词为实体的一种,以金融为例,检索语料“这种情况可以贷多少钱”当中,“贷”会被识别为实体“贷款”,“多少钱”会被识别为实体“价格”;其次,仍旧使用所述第一实体识别模型,对所述目标召回文本中的关键词进行识别,以获取第二关键词;可选的,所述第一关键词一般为一个关键词集合,所述第二关键词可能是一个关键词,也可能是多个关键词,需要说明的是,与所述目标召回文本对应的第二关键词指的是所述目标召回文本中的任意一个目标召回文本的关键词,也就是说,所述第一关键词是所述第一召回库中的检索语料的关键词,所述第二关键词是所述第一召回库中的检索语料对应的多个目标召回文本的任意一个目标召回文本的关键词;最终根据所述第一关键词与所述第二关键词的相似度生成第二分值。
在第一方面的又一种可能的实施方式中,第一实体识别模型为预先生成的多个实体识别模型中的与所述第一召回库对应的实体识别模型,所述多个实体识别模型中的每个实体识别模型为根据一种场景中的历史检索语料、与所述历史检索语料对应的目标召回文本、与所述历史检索语料和所述目标召回文本分别对应的关键词训练得到的,所述实体识别模型用于预测对应场景中的检索语料和目标召回文本的关键词。
以催收问答为例,场景一般分为三个大的阶段,分别为核身、协商、收集信息,以此将召回库划分为分别归属于“核身”“协商”“收集信息”的三种召回库,那么在问答系统上线之前,训练与所述三种召回库分别对应的三种实体识别模型,上述三种实体识别模型分别根据所述三种召回库中的检索语料、目标召回文本和对应的关键词训练得到的。
在第一方面的又一种可能的实施方式中,所述多个实体识别模型包括双向长短词记忆模型(Bi-LSTM)模型,所述相似向量检索库包括FAISS。
所述实体识别模型可以是Bi-LSTM,Bi-LSTM神经网络结构模型分为2个独立的LSTM,输入序列分别以正序和逆序输入至2个LSTM神经网络进行特征提取,将2个输出向量(即提取后的特征向量)进行拼接后形成的词向量作为该词的最终特征表达。Bi-LSTM的模型设计理念是使t时刻所获得特征数据同时拥有过去和将来之间的信息,实验证明,这种神经网络结构模型对文本特征提取效率和性能要优于单个LSTM结构模型。而FAISS自身具备快速索引的能力,因此利用该能力能够进一步加快召回的速度,减少问答系统相应的时间。
第二方面,本申请实施例提供一种问答召回装置,所述装置至少包括获取单元、划分单元、第一召回单元、输入单元、第二召回单元和生成单元。该问答召回装置用于实现第一方面任一项实施方式所描述方法,其中获取单元、划分单元、第一召回单元、输入单元、第二召回单元和生成单元的介绍如下:
获取单元,用于获取用户输入的检索语料,所述检索语料包括一个或多个问句;
划分单元,用于将所述检索语料按照场景划分至多个召回库中,所述多个召回库中不同的召回库用于存储不同场景的语句,同一个召回库中存储的问句属于同一个场景;
第一召回单元,用于将第一召回库中的检索语料输入至弹性搜索ES数据库中进行召回,以获取第一召回文本,其中,所述第一召回库为所述多个召回库中的任意一个召回库;
输入单元,用于将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,所述目标句向量包括与所述第一召回库中的检索语料对应的句向量;
第二召回单元,用于将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本;
生成单元,用于将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果。
在现有技术阶段,目前问答系统的主要面临三个问题,第一,随着数据的不断累积,与用户检索的问题相关的答案越来越多,且使用此类系统的用户也越来越多,这就导致了问答系统需要处理的数据越来越多,从而导致系统的响应速度越来越慢;第二,因为不同于推荐系统可以展示多个候选商品,问答系统只能回复一种答案,因此,它必须保证自身展示给用户的就是正确答案,而不是像推荐系统一样将正确答案排在靠前的位置就算成功,否则就是一次失败的检索,这就要求了召回的答案哪个能够排在第一位具有重要意义,这也就代表着,通过何种方法对召回的答案进行排序和筛选非常关键;第三,由于数据的不断累积,与用户检索的问题相关的答案确实在飞速增加,但召回的方法存在一定的缺陷,一般是从语料的术语term角度出发进行召回,从term级的角度出发进行召回的确可以检索到与问题相关性较强的答案,但对问题的理解可能会由于自然语言的撰写方法存在差异而导致对索引的答案的方向存在问题,若语义理解出现了问题,则代表着召回的答案的精确度会极低,因此如何丰富召回的答案的丰富度,来弥补在召回阶段可能出现的问题非常重要。
在本方法中,同样是通过召回和排序两个阶段来返回针对用户输入的问题语料的答案,但在召回阶段和排序阶段上的构思进行了创新,以此来解决上述三个问题。首先,在召回阶段,本方法采用两路召回并行的方式,从语义级和术语term级两个角度出发进行召回,来丰富召回的文本的数量和范围;进一步的,无论从语义级出发还是从term级出发,均将弹性搜索ES数据库作为问答库来进行召回,以此利用弹性搜索ES数据库的快速响应的特点,来加快问答系统的响应速度;更进一步的,在从term级的角度出发进行召回的路径当中,将用户输入的检索语料直接输入至弹性搜索ES数据库,以此得到与检索语料的组成词语相关性较强的答案,所述答案相当于前述的召回文本;在从语义级出发进行召回的路径当中,本方法通过句向量获取模型、相似向量检索库和ES数据库,根据检索语料的语义进行召回,从句向量的角度出发,加强对检索语料的语义的理解,利用了相似向量检索库快速索引的特点以及ES快速搜索的特点,大大降低了响应时间,提高了用户的体验。
其次,本方法针对同一时间段用户输入的检索语料进行场景划分和分别存储,由于在同一场景中的用户提出的问题具备一致性和相关性,以催收问答为例,场景一般分为三个大的阶段,分别为核身、协商、收集信息,以此来划分召回库,针对在核身阶段的用户输入的检索语料划分至同一召回库中,其他的同理,以此将同一场景中的用户的检索语料进行同批次的处理,以便于在排序阶段采用相同的方法对召回文本进行排序,需要说明的是,不同场景中的用户的检索语料对应的排序方法可能是不同的,因此,提前对检索语料进行划分,能够有力地增加后期的排序速度。
在第二方面的又一种可能的实施方式中,所述输入单元具体用于:
将所述第一召回库的多个检索语料逐一输入至预先训练完成的句向量获取模型中,获取所述第一召回库的检索语料的句向量,所述句向量获取模型为根据所述第一召回库的历史检索语料和与所述历史检索语料对应的句向量训练得到的模型,所述第一召回库的历史检索语料为特征数据,与所述历史检索语料对应的句向量为标签数据;
将所述检索语料的句向量输入至所述相似向量检索库中,获取目标句向量,所述目标句向量包括所述第一召回库的检索语料的句向量和与所述句向量同义的其他句向量。
在根据检索语料的语义进行召回的路径中,通过句向量获取模型、相似向量检索库和ES数据库,根据检索语料的语义进行召回,从句向量的角度出发,加强对检索语料的语义的理解。
因此召回的过程就是确定检索召回策略,生成检索下发项的过程,一个检索下发项通俗来讲就是判断哪些词要用于召回,哪些词要被丢掉。比如“windows系统iphone导照片”是一种检索下发项。实际中,一次搜索的检索策略会存在多个并行的检索下发项。这是因为确定哪些词参与召回本身是个很困难的事情,包含多个并行的下发检索项去召回进而求并集使得能够召回足够多并且是相关的文章,这也是生成目标句向量的原因。
进一步的,越是重要的词越应该在召回中被保留,所以计算疑问query中词的重要性就是个非常基础而且重要的事情。把term重要性、紧密度、丢词这三个模块放到一起,是因为三者的联系非常紧密,都是为了更好的判断哪些词在比较重要。term重要性是先验的为了计算同一文本中不同词的重要性,比如对于query“手机京东”,很明显term“京东”要比“手机”更重要,因此“京东”的权重应该比“手机”高。紧密度是为了计算相邻两个词的紧密程度,其紧密度越大,说明相邻2个词越是一个完整的实体或者是一部分,比如“少年的你电影观看”,“少年”和“的”,“的”和“你”的紧密度都比较高,其整体是一个电影实体,考虑紧密信息可以避免单独来看“少年”“的”“你”都不重要。丢词和term重要性非常类似,其区别是计算面向doc资源的词的重要性,以来衡量词的召回能力。所以丢词是在词权重和紧密度的先验信息上,要考虑词的后验召回能力,去生成更好的检索下发项。
具体的,首先将所述第一召回库的多个检索语料逐一输入至句向量获取模型中,以获取所述第一召回库的检索语料的句向量,通过所述检索语料的句向量使后续的工具能够理解所述检索语料的语义;进一步的,通过相似向量检索库,如FAISS,获得所述检索语料的句向量的同义句向量,再将所述检索语料的句向量和所述检索语料的句向量的同义句向量组成目标句向量,在两路召回路径的基础上,进一步丰富了目标召回文本的数量和范围。
在第二方面的又一种可能的实施方式中,所述第二召回单元具体用于:
根据弹性搜索ES数据库的索引方法,生成与所述第一召回库中的各个检索语料分别对应的附属标识;
根据所述附属标识将所述目标句向量输入至所述弹性搜索ES数据库中,以获取第二召回文本。
本方法在导入数据到ES数据库时,采取给所述检索语料附加附属标识的方式。就是使用系统中已有的数据的唯一标识,作为ES中document的id举个例子,比如说,开发一个电商网站,做搜索功能,商品数据首先会在网站系统或者IT系统内部的数据库中有一份,此时就肯定会有一个数据库的primary key(自增长,UUID,或者业务编号),那么该数据即可直接导入到ES数据库中,此时就比较适合采用数据在数据库中的primary key;但如果说,该电商网站的主要的商品数据存储地点就是ES数据库,也就是说,商品数据生成后出,并没有附属标识;也可以采用ES数据库中自带的自动生成附属标识的方式,自动生成的附属标识,长度为20个字符,URL安全,base64编码,GUID,分布式系统并行生成时不会发生冲突,以此进一步加快ES数据库对目标句向量的识别和响应。
在第二方面的又一种可能的实施方式中,所述生成单元具体用于:
将所述第一召回文本和所述第二召回文本进行混合,以生成目标召回文本;
根据提前训练好的排序模型,对所述目标召回文本进行打分,以生成第一分值;
根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值;
根据所述第一分值、与所述第一分值对应的第一权重、第二分值和与所述第二分值对应的第二权重,以生成与所述目标召回文本分别对应的目标分值;
确定目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本,其中,所述目标检索语料为所述第一召回库中任意一个检索语料;
将所述目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本确定为与所述目标检索语料对应的检索结果;
将所述检索结果,返回至与所述目标检索语料对应的用户。
本方法在排序阶段,对召回的文本进行双重打分,并进行加权求和和共同判别,以期望获取最优的结果。具体的,在得到目标召回文本之后,对所述目标召回文本进行双重打分,得到与所述目标召回文本对应的第一分值和第二分值,再根据所述第一分值、所述第二分值和两者的权重进行综合,以得到所述目标召回文本的目标分值,需要说明的是,所述目标召回文本包括多个召回文本,这也就代表着,所述目标分值也有多个。
获取第一分值的方式主要是通过排序模型,排序模型包括相关度排序模型和重要性排序模型,L2R中的特征既包含文本本身的特征,也包含给定查询之间的相关度和文本在整个网络的重要性。即使用文本本身、查询和文本的各种相关性以及文本的重要性作为特征。排序学习考虑的是doc的顺序(而非值的大小),所以需要一个新的cost function,而使用神经网络训练模型本身就是在定义cost function,它可以兼容不同的算法(GBDT、神经网络等),以A文本和B文本为例,目标概率:A文本比B文本更加相关,Pab=1;B比A更相关,Pab=0;AB相关的相同,Pab=0.5;预测概率:Pab=e^Oab/(1+e^Oab),Oab=f(xa)-f(xb)(即两篇文本神经网络数据输出的差值过Sigmoid函数);损失函数:交叉熵,近似线性函数(关于Oab),且若Pab=0.5即不提供任何信息的时候,损失函数关于原点对称;优化损失函数方法:梯度下降;另外,对于m个文本,需要且只需要知道相邻文本之间的概率Pij,就可以算出任意两个文本之间的后验概率。即以排列后的相邻文本之间的概率Pij作为训练数据,时间复杂度为O(N)。通过训练完成的排序模型可以直接获取所述第一分值,方便快捷。
获取第二分值的方式主要是通过所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,需要说明的是,可以通过所述目标召回文本与所述第一召回库中的检索语料的关键词重合度确定第二分值。
在进行加权打分,以得到综合分值的过程中,会使用第一权重和第二权重,所述第一权重对应第一分值,所述第二权重对应第二分值,需要说明的是,所述第二权重根据与目标召回文本对应的检索语料的场景确定,例如,第一召回库中的检索语料对应一个场景,那么与该场景对应的第二权重,与其他场景对应的第二权重是存在区别,通过上述过程,更加精细化的区分与检索语料适配的目标召回文本。
在第二方面的又一种可能的实施方式中,在所述根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值方面,生成单元具体用于:
将所述第一召回库中的检索语料输入至第一实体识别模型中,生成与所述多个检索语料分别对应的第一关键词,其中,所述第一实体识别模型为根据所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本、与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词训练得到的模型,所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本为特征数据,所述与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词为标签数据;
将所述目标召回文本输入至所述第一实体识别模型中,生成与所述目标召回文本分别对应的第二关键词;
根据所述第一关键词和所述第二关键词的相似度,生成第二分值。
需要说明的是,所述第一实体识别模型为命名实体识别模型中的一种,所述命名实体识别模型包括6层第一Transformer结构和CRF层;各层所述第一Transformer结构均包括位置向量表示层、输入向量表示层、多头注意力网络层、第一残差连接和归一化层、前馈神经网络层和第二残差连接和归一化层;其中,位置向量表示层用于将每个位置编号,每个编号对应一个向量,向量是随机初始化的,在训练中更新;所述输入向量表示层用于下载Word2Vec词向量表,通过查表,每个词对应一个唯一的向量作为初始化的向量表示,在训练中也会更新;所述位置向量表示层和输入向量表示层的数据拼接后发送到所述多头注意力网络层和第一残差连接和归一化层;所述多头注意力网络层用于对输入的数据进行自注意力操作处理后发送到所述第一残差连接和归一化层;所述第一残差连接和归一化层根据接收到的数据进行处理,以缓解反向传播过程中的梯度消失问题,处理结果分别发送到所述前馈神经网络层和第二残差连接和归一化层;所述前馈神经网络层对接收到的数据进行处理后发送到所述第二残差连接和归一化层;所述第二残差连接和归一化层根据接收到的数据进行处理,处理结果发送到CRF层;所述CRF层对接收的数据进行序列标注,得到每个单词对应的标签,而识别疑问或是召回文本中的关键词在本方法中至关重要,能够更准确地确定符合检索语料的答案。
具体的,首先根据所述第一实体识别模型提取所述第一召回库中的检索语料的第一关键词,所述第一关键词为实体的一种,以金融为例,检索语料“这种情况可以贷多少钱”当中,“贷”会被识别为实体“贷款”,“多少钱”会被识别为实体“价格”;其次,仍旧使用所述第一实体识别模型,对所述目标召回文本中的关键词进行识别,以获取第二关键词;可选的,所述第一关键词一般为一个关键词集合,所述第二关键词可能是一个关键词,也可能是多个关键词,需要说明的是,与所述目标召回文本对应的第二关键词指的是所述目标召回文本中的任意一个目标召回文本的关键词,也就是说,所述第一关键词是所述第一召回库中的检索语料的关键词,所述第二关键词是所述第一召回库中的检索语料对应的多个目标召回文本的任意一个目标召回文本的关键词;最终根据所述第一关键词与所述第二关键词的相似度生成第二分值。
第三方面,本申请实施例提供一种问答召回设备,该问答召回设备包括处理器、存储器和通信接口;存储器中存储有计算机程序;处理器执行计算机程序时,所述通信接口用于发送和/或接收数据,该问答召回设备可执行前述第一方面或者第一方面的任一种可能的实现方式所描述的方法。
需要说明的是,上述第三方面所描述的问答召回设备所包含的处理器,可以是专门用于执行这些方法的处理器(便于区别称为专用处理器),也可以是通过调用计算机程序来执行这些方法的处理器,例如通用处理器。可选的,至少一个处理器还可以既包括专用处理器也包括通用处理器。
可选的,上述计算机程序可以存在存储器中。示例性的,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(Read Only Memory,ROM),其可以与处理器集成在同一块器件上,也可以分别设置在不同的器件上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
在一种可能的实施方式中,上述至少一个存储器位于上述问答召回设备之外。
在又一种可能的实施方式中,上述至少一个存储器位于上述问答召回设备之内。
在又一种可能的实施方式之中,上述至少一个存储器的部分存储器位于上述问答召回设备之内,另一部分存储器位于上述问答召回设备之外。
本申请中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储计算机程序,当所述指令在至少一个处理器上运行时,实现前述第一方面或者第一方面的任一种可选的方案所描述的方法。
第五方面,本申请提供了一种计算机程序产品,计算机程序产品包括计算机程序,当所述程序在至少一个处理器上运行时,实现前述第一方面或者第一方面的任一种可选的方案所描述的方法。
可选的,该计算机程序产品可以为一个软件安装包,在需要使用前述方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
本申请第三至第五方面所提供的技术方案,其有益效果可以参考第一方面和第二方面的技术方案的有益效果,此处不再赘述。
附图说明
下面将对实施例描述中所需要使用的附图作简单的介绍。
图1是本申请实施例提供的一种问答召回系统的结构示意图;
图2是本申请实施例提供的一种问答召回方法的流程示意图;
图3是本申请实施例提供的一种预设算法的流程示意图;
图4是本申请实施例提供的一种问答召回装置的结构示意图;
图5是本申请实施例提供的一种问答召回设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例进行详细介绍。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面本申请实施例所涉及到模型、工具进行说明。
BERT(Bidirectional Encoder ReprESentations from Transformers)是一种预训练语言表示模型。BERT模型旨在通过左、右两侧上下文来预测当前词,和/或通过当前句子预测下一个句子。因此,只需要一个额外的输出层,就可以对预训练的BERT表示进行微调,从而为广泛的任务(比如回答问题和语言推断任务)创建最先进的模型,而无需对特定于任务进行大量模型结构的修改。
ES(Elasticsearch)数据库是一个分布式、采用RESTful API标准的可扩展和高可用的实时数据分析的全文搜索工具。其中,RESTful API是REST风格的API(ApplicationProgramming Interface,应用程序接口),而REST(ReprESentationalStateTransfer)是一种软件架构的设计风格(不是标准),通过HTTP接口处理数据,主要用于客户端和服务器的数据交互;基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。应用程序接口,又名:应用编程接口,是软件系统不同组成部分衔接的约定。应用程序接口主要目的是提供应用程序与开发人员以访问一组例程的能力。
FAISS,FAISS全称(Facebook AI Similarity Search)是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前较成熟的近似近邻搜索库。它包含多种搜索任意大小向量集的算法,以及用于算法评估和参数调整的支持代码。FAISS用C++编写,并提供与Numpy完美衔接的Python接口。除此以外,对一些核心算法提供了GPU实现。
SIM-BERT,SIM-BERT是基于UniLM思想、融检索与生成于一体的BERT模型主要应用场景:相似文本生成、相似文本检索。
NER,全称是命名实体识别(Named Entity Recognition,NER),旨在识别文本中感兴趣的实体,如位置、组织和时间。已识别的实体可以在各种下游应用程序中使用,如根据患者记录去识别和信息提取系统,也可以作为机器学习系统的特性,用于其他自然语言处理任务。
下面对本申请实施例应用的系统架构进行介绍。需要说明的是,本申请描述的系统架构及业务场景是为了更加清楚的说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
图1示出了本申请实施例提供的一种问答召回系统的结构示意图。本申请实施例提供的问答召回方法的执行主体为具有文本内容和语义向量提取功能的服务端101;服务端101包括:前处理层1011、搜索层1012和后处理层1013。前处理层1011具有获取用户输入的检索语料功能、对检索语料分类功能、识别文本向量和近似向量功能,搜索层1012具有获取目标召回文本功能,后处理层1013具有对待目标召回文本、检索语料进行相似分析功能和确定检索结果功能,可选的,后处理层1013具备实体识别功能,能够识别目标召回文本和检索语料中的关键词。本申请实施例提供的问答召回方法中存储样本问题和答案的执行主体为存储端102,存储端102可以是具有文本存储功能的存储终端。上述服务端101可以是任何一种可与用户进行人机交互的电子产品,例如PC(Personal Computer,个人计算机)、手机、掌上电脑(Pocket PC)、平板电脑等。
问答召回系统中的服务端101和存储端102可以集成在一个设备当中,也可以为独立的设备。为独立设备的情况下,服务端101、存储端102可以是服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心,本申请实施例对此不做限定。
具有获取用户输入的检索语料功能的服务端101中的前处理层1011通过获取检索语料,对检索语料按照输入时的场景进行分类,得到以召回库为单位的、与不同场景对应的检索语料,提取检索语料中的句向量,以及获取与检索语料的句向量近似的其他句向量,服务端101中的搜索层1012基于检索语料,获取第一召回文本,并基于检索语料中的句向量和近似的其他句向量,获取第二召回文本,服务端101中的后处理层1013对目标召回文本、检索语料进行相似分析功能,最终加权综合打分,确定检索结果。存储端102可接收服务端101的检索语料的答案搜索请求,将存储的与检索语料相匹配的目标召回文本返回给服务端101。可选的,存储端可以是ES数据库,也可以是与ES数据库相连接的设备或系统。
一般来说,上述的问答召回系统为前述的问答系统。
请参见图2,图2是本申请实施例提供的一种问答召回方法的流程示意图,该问答召回方法可应用于现阶段常见的问答系统中,该问答召回方法可以基于图1所示的系统架构示意图实现,也可以基于其他架构实现,该方法包括但不限于如下步骤:
步骤S201:获取用户输入的检索语料。
所述检索语料为在同一时间或同一时间段的用户输入的问句,包括一个或多个问句;需要说明的是,一个用户输入的检索语料可能包括多个问句,因此,在本方法实际应用的过程当中,所述检索语料一般由多个问句构成。
上述用户输入的检索语料是文本信息。检索语料可以由用户直接输入到客户端设备相关的App中,例如直接手动输入到App的交互界面中,以执行查询任务,也可以通过音频的方式进行输入,例如,用户可以和相关App进行语音交互,服务端设备可以将接收到的语音进行识别以得到文本信息格式的检索语料。上述相关App包括但不限于网页搜索引擎、具备搜索功能的社交媒体软件以及具有智能问答功能的设备中的App。
为了避免用户等待响应的时间过长,上述的同一时间段为较小的时间段,例如时间间隔0.1秒内的用户输入,可以凑成同一批次进行后续步骤的检索语料。
获取检索语料的方式可以为通过文本调用端口从本地存储端的直接调用,也可以为通过调用接口向远程存储端发送调用请求后,获得远程存储端返回的检索语料。一般地,根据项目场景需求,会对检索语料进行加密,加密方法包括:AES加密(高级加密标准)、RSA加密(RSA algorithm,非对称加密算法),md5加密算法等,在获取第一召回库中的检索语料后,根据对应的加密算法对第一召回库中的检索语料进行解密。
为了能够更好地把握用户输入的问句的语义,在一种可选的实施方式中,对所述检索语料进行文本清洗,以去掉所述检索语料中的表情、多余字或是对错别字进行删改。
步骤S202:将所述检索语料按照场景划分至多个召回库中。
所述多个召回库中不同的召回库用于存储不同场景的语句,同一个召回库中存储的问句属于同一个场景,以用户处于金融公司的催收环节为例,场景一般分为三个大的阶段,分别为核身、协商、收集信息,以此上述三种场景来划分召回库,比如针对在核身阶段的用户输入的检索语料可划分至与核身场景对应的某一召回库中,其他的同理。
需要说明的是,在后续步骤中,是以召回库为单位进行后续步骤的,开始时,根据某一召回库中的检索语料执行后续步骤,结束时,每一召回库中的检索语料的后续步骤均已执行完毕。
步骤S203:将第一召回库中的检索语料输入至弹性搜索ES数据库中进行召回,以获取第一召回文本。
所述第一召回库为所述多个召回库中的任意一个召回库。
在本实施例中,为了能够扩展召回文本的丰富度,所述ES数据库可以是使用现阶段已有的开源的数据库,也可以是自建的包括多个与历史检索语料对应的答案文本的数据库,例如:分布式数据库等,这都是合理的,所述答案文本即为召回文本。并且,在一种实现方式中,所述ES数据库构建方式可以为:将多个历史检索语料直接存储入数据库;针对多个历史检索语料中的每个检索语料,预先进行分词,然后,对分词后的检索语料进行拼接,将拼接后的内容作为该历史检索语料的待存储内容存入数据库。其中,分词方式可以为jieba分词等;所谓拼接,即通过加空格、指定字符等方式将多个词语组合成一个文本串。在数据库构建完成之后,将检索语料,输入第一数据库,以使得第一数据库基于各个检索语料和答案文本的相似性,从而召回多个目标召回文本。
在本实施例中,所述第一召回文本是基于检索语料的term去进行召回的,并不涉及检索语料的语义。
步骤S204:将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量。
其中,所述目标句向量包括与所述第一召回库中的检索语料对应的句向量,也包括了与所述句向量同义或语义相近的其他句向量;上述的预处理过程包括识别所述检索语料中的句向量的过程;相似向量检索库中包含有多个历史检索语料的句向量,和与所述多个历史检索语料对应的目标召回文本的句向量,所述相似向量检索库包括FAISS。
提取所述第一召回库中的检索语料的句向量的方式,可以为利用预先训练的自然语言模型将检索语料进行语义特征编码,得到句向量,具体为使用神经网络对句子进行向量编码,将标有正负样本的文本使用Bert排序模型进行微调,捕捉文本的语义信息,通过softmax层获取文本属于的句式类型;可以为根据检索语料的语义特征人工进行编码,得到句向量;可以为根据预先建立的语义特征查询表进行查询后,得到句向量。
在一种可选的实施方式中,所述预处理过程如下所示:
将所述第一召回库的多个检索语料逐一输入至预先训练完成的句向量获取模型中,获取所述第一召回库的检索语料的句向量,所述句向量获取模型为根据所述第一召回库的历史检索语料和与所述历史检索语料对应的句向量训练得到的模型,所述第一召回库的历史检索语料为特征数据,与所述历史检索语料对应的句向量为标签数据,所述句向量获取模型可以是SIM-BERT模型。
下面举例说明,第一召回库中的检索语料的某一检索语料为“为什么身份证不能上传”,根据所述检索语料的语义特征{为-E_token_1,什么-E_token_2,身份-E_token_3,证-E_token_4,不能-E_token_5,上传-E_token_6},得到上述的某一检索语料的句向量为{E_token_1,E_token_2,E_token_3,E_token_4,E_token_5,E_token_6}。
预处理结束后,将所述检索语料的句向量输入至所述相似向量检索库中,获取目标句向量,所述目标句向量包括所述第一召回库的检索语料的句向量和与所述句向量同义的其他句向量。
通过提取所述第一召回库中的检索语料的目标句向量,为后续步骤中的获取第二召回文本奠定了索引基础。
步骤S205:将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本。
其中,所述ES数据库同样可以是使用现阶段已有的开源的数据库,也可以是自建的包括多个与历史检索语料对应的答案文本的数据库。
上述的第一召回文本和第二召回文本是通过搜索获取的、存储在存储端102中的多个答案文本。第一召回文本为基于上述第一召回库中的检索语料的术语term进行搜索,得到的一个或多个与上述第一召回库中的检索语料对应的答案文本,第二召回文本为基于目标文本内容的语义向量进行搜索,得到的一个或多个与语义向量对应的答案文本。第一召回文本和第二召回文本之间可能包含相同的文本。
搜索第一召回文本的方式为向存储端102发送第一文本搜索请求,第一文本搜索请求中包含有第一召回库中的检索语料,存储端102在接收到第一文本搜索请求后,查询存储的多个答案文本,选择与检索语料对应的或关联性强的一个或多个答案文本作为第一召回文本。
搜索第二召回文本的方式为向存储端102发送第二文本搜索请求,第二文本搜索请求中包含有检索语料的目标句向量,存储端102在接收到第二文本搜索请求后,查询存储的多个答案文本,选择与目标句向量对应的一个或多个答案文本作为第二召回文本。
继续上述例子,基于检索语料“为什么身份证不能上传”,确定多个答案文本A1,A2,A3……A30中与目标文本内容“身份证”对应的答案文本A1,A14,A27为第一召回文本(A1,A14,A27),基于目标句向量为{E_token_1,E_token_2,E_token_3,E_token_4,E_token_5,E_token_6,...,E_token_18},确定多个答案文本A1,A2,A3……A30中与目标句向量对应的答案文本A4,A19,A30为第二召回文本(A4,A19,A30)。
在本实施例中,无论是获取第一召回文本还是获取第二召回文本,均是基于ES数据库实现的,而为了达到本申请快速响应用户检索的目的,在一种可选的实施方式中,根据ES数据库的索引方法,生成与所述第一召回库中的各个检索语料分别对应的附属标识;
根据所述附属标识将所述目标句向量输入至所述弹性搜索ES数据库中,以获取第二召回文本。
具体的,该ES数据库中预先存储了文本集合,该文本集合包括了大量的文本,该文本集合中可以包括多个子集合,不同的业务场景对应不同的子集合,例如核身对应子集合A,该子集合A中对应存储核身场景相关的文本,协商对应子集合B,子集合B中对应存储协商场景相关的文本。
将待识别的目标文本信息进行分词,得到词序列,例如,该文本信息为“A保险是理财型的,还是消耗型的”,分词后的词序列为“A保险是理财型的,还是消耗型的”,然后提取该词序列中的关键词,例如,该关键词为“A保险”,“理财型”,“消耗型”。
倒排索引:从单词的角度看,是单词到文本附属标识的关联关系,也就是说通过单词搜索到文本附属标识。
正排索引:从单词的角度看,是文本附属标识到文本内容、单词的关联关系,也就是说通过附属标识获取到文本的内容。
倒排索引项(Posting)主要包含如下的信息:
1、文本附属标识,用于获取该文本对应的信息。
2、单词频率,记录该单词在该文本中出现的次数。
3、位置,记录单词在文本中的分词位置。
倒排索引的检索流程为:在ES数据库中,每个文本都对应一个文本附属标识,文本内容被表示为一系列关键词的集合,在搜索引擎中,关键词也已经转换为关键词附属标识,例如,在本申请实施例中,检索语料经过分词,提取了m个关键词(单词),首先根据单词倒排索引搜索到对应的文本附属标识,然后根据正排索引查询文本附属标识的完整内容,最后返回该文本附属标识对应的完整内容。
本申请实施例中,将待识别的目标文本信息进行分词后,得到单词序列,通过倒排索引检索单词序列所对应的文本附属标识,计算单词序列中每个单词在不同的文本附属标识所对应的文本中的单词频率,根据每个单词在对应的文本附属标识中位置的权重确定检索语料与答案文本的相似度,搜索出相似的答案文本,按照相似度从高到底的顺序选择预置数量的候选答案文本,例如TOP30条候选答案文本,该预置数量的候选答案文本组成候选答案文本集合。本申请实施例中,倒排索引是实现“单词-文本矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文本列表。然后可以快速搜索出与该检索语料相似的预置数量的答案文本,以此获得第二召回文本。
上述通过附属标识ID来进行检索的过程中,ID的获取方式可通过如下代码实现:
PUT/index/type/id
PUT/tESt_index/type_tESt/2
{
"name":"yagao"
}
自动生成document
post/index/type/id
POST/tESt_index/type_tESt/
{
"name":"yagao"
}
步骤S206:将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果。
所述预设算法的具体实施过程请参见图3,图3为本申请实施例提供的一种预设算法的流程示意图,具体如下所示:
步骤S31:将所述第一召回文本和所述第二召回文本进行混合,以生成目标召回文本。
在本实施例中,由于使用的是同一文本库,所召回的候选文本中可能存在属于同一文本的第一召回文本和第二召回文本,即两个文本内容为相同的答案文本。例如:第一召回文本为:文本1、文本2和文本3,第二召回文本为:文本3、文本4和文本5,目标召回文本为:文本1、文本2、文本3、文本3、文本4和文本5,此时多个目标召回文本中存在属于同一为文本的候选文本:文本3,若继续进行后续的打分排序步骤,需要对文本3进行相同、重复的处理步骤,无疑浪费处理资源。
因此,在一种可选的实施方式中,对属于同一文本的候选文本进行去重,例如:去重后的多个候选文本为:文本1、文本2、文本3、文本4和文本5,可以节约后续的处理资源,并且,通过减少重复处理同一文本的步骤,提高后续排序打分的精确度。
步骤S32:根据提前训练好的排序模型,对所述目标召回文本进行打分,以生成第一分值。
利用排序模型进行打分,可进行精细化的排序,在一种可选的实施方式中,使用BERT模型做二分类(0,1分类),以最终输出的1位置的概率作为两个句子相关程度的打分,在另一种可选的实施方式中,按ES数据库自带BM25进行打分。
步骤S33:根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值。
上述的关键词相似度的具体实施方式,可如下所示:
将所述第一召回库中的检索语料输入至第一实体识别模型中,生成与所述多个检索语料分别对应的第一关键词,其中,所述第一实体识别模型为根据所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本、与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词训练得到的模型,所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本为特征数据,所述与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词为标签数据;
关键词为可以表征检索语料或目标召回文本内容的关键信息的词语,可以为检索语料或目标文本内容中出现频率最高的词语,也可以为检索语料或目标召回文本内容中核心实体词语,还可以为时间地点等可以进行后续精确搜索的词语等。例如,检索语料“论物体的运动”中,关键词为“运动”;检索语料“2022年XX市水产情况报告”,关键词为“2022年”、“XX市”、“水产”;检索语料为“我能贷款多少钱”,关键词为“贷款”、“数额”。
将所述目标召回文本输入至所述第一实体识别模型中,生成与所述目标召回文本分别对应的第二关键词;根据所述第一关键词和所述第二关键词的相似度,生成第二分值。
上述关键词相似度的计算方法的实现也可如下所示:
len(set(list1)&set(q_entity))*2/(len(list1)+len(q_entity))
其中,对于用户输入的检索语料利用实体识别模型进行实体提取,其提取的实体保存在list1里面。召回库中每个检索语料的实体存放在q_entity内,用每个目标召回文本的q_entity和list1进行len(set(list1)&set(q_entity))*2/(len(list1)+len(q_entity))计算,得到其相应的第二分值。
需要说明的是,第一实体识别模型为预先生成的多个实体识别模型中的与所述第一召回库对应的实体识别模型,所述多个实体识别模型中的每个实体识别模型为根据一种场景中的历史检索语料、与所述历史检索语料对应的目标召回文本、与所述历史检索语料和所述目标召回文本分别对应的关键词训练得到的,所述实体识别模型用于预测对应场景中的检索语料和目标召回文本的关键词。所述多个实体识别模型包括bilstm+crf模型。
步骤S34:根据所述第一分值、与所述第一分值对应的第一权重、第二分值和与所述第二分值对应的第二权重,以生成与所述目标召回文本分别对应的目标分值。
步骤S35:确定目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本。
其中,所述目标检索语料为所述第一召回库中任意一个检索语料。
步骤S36:将所述目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本确定为与所述目标检索语料对应的检索结果。
用户输入的检索语料与每个召回库中检索语料相对应的目标召回文本经过排序模型在1位置上的倾向为score1。用户输入的检索语料与每个召回库中检索语料相对应的目标召回文本经过实体打分策略的得分为score2。Weight为第一权重,(1-Weight)为第二权重,则召回的句子的得分为:score=Weight*score1+(1-Weight)*score2。可选的,取score最大的answer作为返回给用户的输出。
在本实施例中,上述的权重与每个召回库对应的场景分别对应,不同场景中的权重是不同的。
最终,将所述检索结果,返回至与所述目标检索语料对应的用户。
本实施例在开始阶段,优先将检索语料根据场景的不同进行分类,不同场景下的检索语料分别召回,同一场景下的检索语料一起进行召回,使提高召回和排序阶段的针对性;并且在召回阶段,同时使用ES数据库在term级,以及使用句向量获取模型、相似向量检索库、ES数据库结合的方式进行语义级召回,提升召回的广度的同时更加有利于后续的排序;在排序阶段,利用了排序模型和实体策略进行加权求和共同判别,一定程度上优化了单一排序模型的打分策略,更加精确的进行打分,提高了排序的可靠性。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图4,图4是本申请实施例提供一种问答召回装置40的结构示意图,所述问答召回装置40为上述图1中的服务端,是本申请实施例提供的方法的执行主体。
该装置40可以包括获取单元401、划分单元402、第一召回单元403、输入单元404、第二召回单元405和生成单元406,其中,各个单元的详细描述如下。
获取单元401,用于获取用户输入的检索语料,所述检索语料包括一个或多个问句;
划分单元402,用于将所述检索语料按照场景划分至多个召回库中,所述多个召回库中不同的召回库用于存储不同场景的语句,同一个召回库中存储的问句属于同一个场景;
第一召回单元403,用于将第一召回库中的检索语料输入至弹性搜索ES数据库中进行召回,以获取第一召回文本,其中,所述第一召回库为所述多个召回库中的任意一个召回库;
输入单元404,用于将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,所述目标句向量包括与所述第一召回库中的检索语料对应的句向量;
第二召回单元405,用于将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本;
生成单元406,用于将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果。
在一种可能的实施方式中,所述输入单元404具体用于:
将所述第一召回库的多个检索语料逐一输入至预先训练完成的句向量获取模型中,获取所述第一召回库的检索语料的句向量,所述句向量获取模型为根据所述第一召回库的历史检索语料和与所述历史检索语料对应的句向量训练得到的模型,所述第一召回库的历史检索语料为特征数据,与所述历史检索语料对应的句向量为标签数据;
将所述检索语料的句向量输入至所述相似向量检索库中,获取目标句向量,所述目标句向量包括所述第一召回库的检索语料的句向量和与所述句向量同义的其他句向量。
在一种可能的实施方式中,所述第二召回单元405具体用于:
根据弹性搜索ES数据库的索引方法,生成与所述第一召回库中的各个检索语料分别对应的附属标识;
根据所述附属标识将所述目标句向量输入至所述弹性搜索ES数据库中,以获取第二召回文本。
在一种可能的实施方式中,所述生成单元406具体用于:
将所述第一召回文本和所述第二召回文本进行混合,以生成目标召回文本;
根据提前训练好的排序模型,对所述目标召回文本进行打分,以生成第一分值;
根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值;
根据所述第一分值、与所述第一分值对应的第一权重、第二分值和与所述第二分值对应的第二权重,以生成与所述目标召回文本分别对应的目标分值;
确定目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本,其中,所述目标检索语料为所述第一召回库中任意一个检索语料;
将所述目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本确定为与所述目标检索语料对应的检索结果;
将所述检索结果,返回至与所述目标检索语料对应的用户。
在一种可能的实施方式中,在所述根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值方面,生成单元406具体用于:
将所述第一召回库中的检索语料输入至第一实体识别模型中,生成与所述多个检索语料分别对应的第一关键词,其中,所述第一实体识别模型为根据所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本、与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词训练得到的模型,所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本为特征数据,所述与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词为标签数据;
将所述目标召回文本输入至所述第一实体识别模型中,生成与所述目标召回文本分别对应的第二关键词;
根据所述第一关键词和所述第二关键词的相似度,生成第二分值。
请参见图5,图5是本申请实施例提供的一种问答召回设备50的结构示意图,所述问答召回设备50可以为上述图1中的服务端,是本申请实施例提供的方法的执行主体,也可以是上述问答召回系统。所述问答召回设备50包括:处理器501、通信接口502及存储器503。其中,处理器501、通信接口502及存储器503可通过总线或其他方式连接,本申请实施例以通过总线连接为例。
其中,处理器501是问答召回设备50的计算核心以及控制核心,其可以解析问答召回设备50内的各类指令以及问答召回设备50的各类数据,例如:该处理器501可为中央处理器(Central ProcESsing Unit,CPU),可以在问答召回设备50内部结构之间传输各类交互数据,等等。通信接口502可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器501的控制可以用于收发数据;通信接口502还可以用于所述问答召回设备50内部信令或者指令的传输以及交互。存储器503是所述问答召回设备50中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器503既可以包括所述问答召回设备50的内置存储器,当然也可以包括所述问答召回设备50所支持的扩展存储器。存储器503提供存储空间,该存储空间存储了所述问答召回设备50的操作系统,该存储空间还存储了处理器执行相应操作所需的程序代码或指令,可选的,该存储空间还可以存储该处理器执行该相应操作后产生的相关数据。
在本申请实施例中,处理器501运行存储器503中的可执行程序代码,用于执行如下操作:
获取用户输入的检索语料,所述检索语料包括一个或多个问句;
将所述检索语料按照场景划分至多个召回库中,所述多个召回库中不同的召回库用于存储不同场景的语句,同一个召回库中存储的问句属于同一个场景;
将第一召回库中的检索语料输入至弹性搜索ES数据库中进行召回,以获取第一召回文本,其中,所述第一召回库为所述多个召回库中的任意一个召回库;
将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,所述目标句向量包括与所述第一召回库中的检索语料对应的句向量;
将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本;
将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果。
在一种可选方案中,所述将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量方面,所述处理器501还用于:
将所述第一召回库的多个检索语料逐一输入至预先训练完成的句向量获取模型中,获取所述第一召回库的检索语料的句向量,所述句向量获取模型为根据所述第一召回库的历史检索语料和与所述历史检索语料对应的句向量训练得到的模型,所述第一召回库的历史检索语料为特征数据,与所述历史检索语料对应的句向量为标签数据;
将所述检索语料的句向量输入至所述相似向量检索库中,获取目标句向量,所述目标句向量包括所述第一召回库的检索语料的句向量和与所述句向量同义的其他句向量。
在一种可选方案中,所述将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本方面,所述处理器501还用于:
根据弹性搜索ES数据库的索引方法,生成与所述第一召回库中的各个检索语料分别对应的附属标识;
根据所述附属标识将所述目标句向量输入至所述弹性搜索ES数据库中,以获取第二召回文本。
在一种可选方案中,所述将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果方面,所述处理器501还用于:
将所述第一召回文本和所述第二召回文本进行混合,以生成目标召回文本;
根据提前训练好的排序模型,对所述目标召回文本进行打分,以生成第一分值;
根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值;
根据所述第一分值、与所述第一分值对应的第一权重、第二分值和与所述第二分值对应的第二权重,以生成与所述目标召回文本分别对应的目标分值;
确定目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本,其中,所述目标检索语料为所述第一召回库中任意一个检索语料;
将所述目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本确定为与所述目标检索语料对应的检索结果;
将所述检索结果,返回至与所述目标检索语料对应的用户。
在一种可选方案中,所述根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值方面,所述处理器501还用于:
将所述第一召回库中的检索语料输入至第一实体识别模型中,生成与所述多个检索语料分别对应的第一关键词,其中,所述第一实体识别模型为根据所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本、与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词训练得到的模型,所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本为特征数据,所述与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词为标签数据;
将所述目标召回文本输入至所述第一实体识别模型中,生成与所述目标召回文本分别对应的第二关键词;
根据所述第一关键词和所述第二关键词的相似度,生成第二分值。
需要说明的是,各个操作的实现还可以对应参照图2和图3中所示的方法实施例的相应描述。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述计算机程序当被处理器执行时使所述处理器实现图2和图3所述实施例所执行的操作。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现图2和图3所述实施例所执行的操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过程序来指令相关的硬件来完成,该的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (10)
1.一种问答召回方法,其特征在于,所述方法包括:
获取用户输入的检索语料,所述检索语料包括一个或多个问句;
将所述检索语料按照场景划分至多个召回库中,所述多个召回库中不同的召回库用于存储不同场景的语句,同一个召回库中存储的问句属于同一个场景;
将第一召回库中的检索语料输入至弹性搜索ES数据库中进行召回,以获取第一召回文本,其中,所述第一召回库为所述多个召回库中的任意一个召回库;
将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,所述目标句向量包括与所述第一召回库中的检索语料对应的句向量;
将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本;
将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,包括:
将所述第一召回库的多个检索语料逐一输入至预先训练完成的句向量获取模型中,获取所述第一召回库的检索语料的句向量,所述句向量获取模型为根据所述第一召回库的历史检索语料和与所述历史检索语料对应的句向量训练得到的模型,所述第一召回库的历史检索语料为特征数据,与所述历史检索语料对应的句向量为标签数据;
将所述检索语料的句向量输入至所述相似向量检索库中,获取目标句向量,所述目标句向量包括所述第一召回库的检索语料的句向量和与所述句向量同义的其他句向量。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本,包括:
根据弹性搜索ES数据库的索引方法,生成与所述第一召回库中的各个检索语料分别对应的附属标识;
根据所述附属标识将所述目标句向量输入至所述弹性搜索ES数据库中,以获取第二召回文本。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果,包括:
将所述第一召回文本和所述第二召回文本进行混合,以生成目标召回文本;
根据提前训练好的排序模型,对所述目标召回文本进行打分,以生成第一分值;
根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值;
根据所述第一分值、与所述第一分值对应的第一权重、第二分值和与所述第二分值对应的第二权重,以生成与所述目标召回文本分别对应的目标分值;
确定目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本,其中,所述目标检索语料为所述第一召回库中任意一个检索语料;
将所述目标检索语料对应的多个目标召回文本中目标分值最高的目标召回文本确定为与所述目标检索语料对应的检索结果;
将所述检索结果,返回至与所述目标检索语料对应的用户。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标召回文本与所述第一召回库中的检索语料的关键词相似度,对所述目标召回文本进行打分,以生成第二分值,包括:
将所述第一召回库中的检索语料输入至第一实体识别模型中,生成与所述多个检索语料分别对应的第一关键词,其中,所述第一实体识别模型为根据所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本、与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词训练得到的模型,所述第一召回库的历史检索语料、与所述第一召回库中的检索语料对应的目标召回文本为特征数据,所述与所述第一召回库的历史检索语料和所述目标召回文本分别对应的关键词为标签数据;
将所述目标召回文本输入至所述第一实体识别模型中,生成与所述目标召回文本分别对应的第二关键词;
根据所述第一关键词和所述第二关键词的相似度,生成第二分值。
6.根据权利要求5所述的方法,其特征在于,第一实体识别模型为预先生成的多个实体识别模型中的与所述第一召回库对应的实体识别模型,所述多个实体识别模型中的每个实体识别模型为根据一种场景中的历史检索语料、与所述历史检索语料对应的目标召回文本、与所述历史检索语料和所述目标召回文本分别对应的关键词训练得到的,所述实体识别模型用于预测对应场景中的检索语料和目标召回文本的关键词。
7.根据权利要求6所述的方法,其特征在于,所述多个实体识别模型包括双向长短词记忆Bi-LSTM模型。
8.一种问答召回装置,其特征在于,所述装置包括:
获取单元,用于获取用户输入的检索语料,所述检索语料包括一个或多个问句;
划分单元,用于将所述检索语料按照场景划分至多个召回库中,所述多个召回库中不同的召回库用于存储不同场景的语句,同一个召回库中存储的问句属于同一个场景;
第一召回单元,用于将第一召回库中的检索语料输入至弹性搜索ES数据库中进行召回,以获取第一召回文本,其中,所述第一召回库为所述多个召回库中的任意一个召回库;
输入单元,用于将所述第一召回库中的检索语料进行预处理后,输入至相似向量检索库中,以获取目标句向量,所述目标句向量包括与所述第一召回库中的检索语料对应的句向量;
第二召回单元,用于将所述目标句向量输入至所述弹性搜索ES数据库中进行召回,以获取第二召回文本;
生成单元,用于将所述第一召回文本和所述第二召回文本混合生成的目标召回文本根据预设算法,生成与所述第一召回库中的多个检索语料分别对应的检索结果。
9.一种问答召回设备,其特征在于,所述问答召回设备包括至少一个处理器、通信接口和存储器,所述通信接口用于发送和/或接收数据,所述存储器用于存储计算机程序,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,以实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在处理器上运行时,实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310007534.6A CN116361428A (zh) | 2023-01-04 | 2023-01-04 | 一种问答召回方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310007534.6A CN116361428A (zh) | 2023-01-04 | 2023-01-04 | 一种问答召回方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116361428A true CN116361428A (zh) | 2023-06-30 |
Family
ID=86930467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310007534.6A Pending CN116361428A (zh) | 2023-01-04 | 2023-01-04 | 一种问答召回方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116361428A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688163A (zh) * | 2024-01-29 | 2024-03-12 | 杭州有赞科技有限公司 | 基于指令微调和检索增强生成的在线智能问答方法及装置 |
-
2023
- 2023-01-04 CN CN202310007534.6A patent/CN116361428A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688163A (zh) * | 2024-01-29 | 2024-03-12 | 杭州有赞科技有限公司 | 基于指令微调和检索增强生成的在线智能问答方法及装置 |
CN117688163B (zh) * | 2024-01-29 | 2024-04-23 | 杭州有赞科技有限公司 | 基于指令微调和检索增强生成的在线智能问答方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838833B (zh) | 基于相关词语语义分析的全文检索系统 | |
US11899681B2 (en) | Knowledge graph building method, electronic apparatus and non-transitory computer readable storage medium | |
US20120117051A1 (en) | Multi-modal approach to search query input | |
CN112035599B (zh) | 基于垂直搜索的查询方法、装置、计算机设备及存储介质 | |
US8606780B2 (en) | Image re-rank based on image annotations | |
JP7451747B2 (ja) | コンテンツを検索する方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 | |
CN108875065B (zh) | 一种基于内容的印尼新闻网页推荐方法 | |
US20230367804A1 (en) | Multimedia content publishing method and apparatus, and electronic device and storage medium | |
CN112307182B (zh) | 一种基于问答系统的伪相关反馈的扩展查询方法 | |
CN115470338B (zh) | 一种基于多路召回的多场景智能问答方法和系统 | |
CN114186013A (zh) | 实体识别模型热更新方法及其装置、设备、介质、产品 | |
CN114238573A (zh) | 基于文本对抗样例的信息推送方法及装置 | |
CN112905768A (zh) | 一种数据交互方法、装置及存储介质 | |
CN116361428A (zh) | 一种问答召回方法、装置和存储介质 | |
US20200065395A1 (en) | Efficient leaf invalidation for query execution | |
CN117131155A (zh) | 多类目识别方法、装置、电子设备及储存介质 | |
CN117149804A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111400464B (zh) | 一种文本生成方法、装置、服务器及存储介质 | |
Hybridised | OntoKnowNHS: Ontology Driven Knowledge Centric Novel Hybridised Semantic Scheme for Image Recommendation Using Knowledge Graph | |
CN115269961A (zh) | 内容搜索方法以及相关设备 | |
Bulfamante | Generative enterprise search with extensible knowledge base using AI | |
CN112052365A (zh) | 一种跨境场景画像构建方法和装置 | |
CN116578725A (zh) | 一种搜索结果排序方法、装置、计算机设备和存储介质 | |
CN117931858A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN117520511A (zh) | 基于特征文本的内容主体搜索方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 518000 18th floor, building A4, Kexing Science Park, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Zhaolian Consumer Finance Co.,Ltd. Address before: 518000 18th floor, building A4, Kexing Science Park, Nanshan District, Shenzhen City, Guangdong Province Applicant before: MERCHANTS UNION CONSUMER FINANCE Co.,Ltd. Country or region before: China |