一种信息检索方法、装置、电子设备及可读存储介质

文档序号:30582749发布日期:2022-06-29 13:20阅读:63来源:国知局
一种信息检索方法、装置、电子设备及可读存储介质

1.本发明涉及机器学习技术领域,尤其涉及一种信息检索方法、装置、电子设备及可读存储介质。


背景技术:

2.传统文本检索大多基于词语匹配计算相似度,例如:稠密向量检索将所有文本转换成向量,通过计算向量点积,来计算文本相似度,这种算法往往使得模型忽略语义相似性。
3.同时,稠密向量检索需要对所有的待检索文本进行编码,并存储对应的向量。检索时需要计算查询的向量表示,相似度计算需要大规模的向量乘法,计算代价、存储代价高昂。


技术实现要素:

4.本发明提供一种信息检索方法、装置、电子设备及可读存储介质,用以解决现有技术中计算代价、存储代价高昂,检索模型忽略语义相似性的缺陷,实现低成本准确高效检索。
5.本发明提供一种信息检索方法,包括:
6.获取待查询语句;
7.基于预先训练的检索模型,输出与所述待查询语句具有文本对应关系的id;
8.其中,所述检索模型是基于海量文本样本和id训练得到的,且所述检索模型中存储有各所述海量文本样本与id的文本对应关系。
9.根据本发明提供的一种信息检索方法,对所述检索模型进行预先训练的过程具体包括:
10.获取所述海量文本样本,利用预先训练的稠密向量模型将所有文本样本表示为稠密向量;
11.基于所述稠密向量,对所述海量文本样本进行聚类,以得到各文本样本对应的路径;
12.将聚类得到的路径转换为分别与各所述文本样本对应的id;
13.基于所述海量文本样本和与所述海量文本样本对应的id,对所述检索模型进行记忆训练。
14.根据本发明提供的一种信息检索方法,预先训练的稠密向量模型的训练过程具体包括:
15.确定查询语句q及与所述查询语句q相关的正例文本d;
16.在查询语料库中,随机采集负例文本
17.将所述查询语句q、所述正例文本d、所述文本输入预存的语言
模型中进行训练,以得到所述稠密向量模型;
18.其中,n为正整数。
19.根据本发明提供的一种信息检索方法,基于所述稠密向量,对所述海量文本样本进行聚类,具体包括:
20.获取所述海量文本样本生成的稠密向量;
21.根据预设值x将所述稠密向量聚类为x个子类;
22.将新生成的x个子类中的每个子类再聚类成x个子类;
23.多次对子类进行聚类,直至新生成的每个子类中的文本数量少于所述预设值x;
24.其中,所述预设值x为正整数。
25.根据本发明提供的一种信息检索方法,将聚类得到的路径转换为分别与各所述文本样本对应的id,具体包括:
26.根据聚类路径得到每层聚类的标号,并以各层聚类对应的标号组合作为初始id;
27.基于待训练的检索模型对所述初始id进行迭代优化,以生成与各所述文本样本对应的id。
28.根据本发明提供的一种信息检索方法,以各层聚类对应的标号组合作为初始id,之后还包括:
29.判定不同文本生成的初始id相同,则利用预先训练的所述稠密向量模型将所述不同文本分别表示为稠密向量;
30.基于不同文本的稠密向量,对不同文本分别进行聚类,以得到各文本对应的路径;
31.将聚类得到的路径转换为分别与各文本对应的优化id,并以所述优化id分别作为各文本的初始id。
32.根据本发明提供的一种信息检索方法,所述基于所述海量文本样本和与所述海量文本样本对应的id,对所述检索模型进行记忆训练,具体包括:
33.将所述海量文本样本和与所述海量文本样本对应的id输入预训练语言模型中;
34.通过所述预训练语言模型对所述检索模型进行记忆训练,以得到优化训练后的检索模型。
35.本发明还提供一种信息检索装置,包括:
36.获取模块,用于获取待查询语句;
37.查询输出模块,用于基于预先训练的检索模型,输出与所述待查询语句具有文本对应关系的id;
38.其中,所述检索模型是基于海量文本样本和id训练得到的,且所述检索模型中存储有各所述海量文本样本与id的文本对应关系。
39.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述信息检索方法。
40.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述信息检索方法。
41.本发明提供的一种信息检索方法、装置、电子设备及可读存储介质,通过获取待查询语句后,基于预先训练的检索模型,输出与待查询语句具有文本对应关系的id。其中,检
索模型是基于海量文本样本和id训练得到的,且检索模型中存储有各海量文本样本与id的文本对应关系。相比于现有技术在检索时需要对待检索语句和文本进行向量相似度计算,本发明在检索时不需要对检索文本进行编码、存储、计算,降低了计算代价和存储代价,提高了检索的效率。
附图说明
42.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1是本发明提供的信息检索方法的流程示意图之一;
44.图2是本发明提供的信息检索方法的流程示意图之二;
45.图3是本发明提供的信息检索方法中的聚类示意图;
46.图4是本发明提供的信息检索装置的结构示意图;
47.图5是本发明提供的电子设备的结构示意图。
具体实施方式
48.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.下面结合图1-图5描述本发明的一种信息检索方法、装置、电子设备及可读存储介质。
50.图1是本发明实施例提供的信息检索方法的流程示意图之一。
51.如图1所示,本发明实施例提供的一种信息检索方法,包括以下步骤:
52.110、获取待查询语句。
53.在一个具体的实现过程中,查询语句一般指的是字段或者是数据,通过获取待查寻语句检索查询与该待查询语句相关的文本。
54.120、基于预先训练的检索模型,输出与所述待查询语句具有文本对应关系的id。其中,所述检索模型是基于海量文本样本和id训练得到的,且所述检索模型中存储有各所述海量文本样本与id的文本对应关系。
55.具体的,检索模型根据待查询语句,输出与该查询语句相关的文本的id,该文本中包含待查询语句,或者是包含与待查询语句相近的字段或数据。
56.图2是本发明实施例提供的信息检索方法的流程示意图之一。
57.如图2所示,对检索模型进行预先训练的过程具体包括以下步骤:
58.210、获取海量文本样本,利用预先训练的稠密向量模型将所有文本样本表示为稠密向量。
59.具体的,预先训练的稠密向量模型的训练过程具体包括以下步骤:确定查询语句q及与查询语句q相关的正例文本d,在查询语料库中,随机采集负例文本
将查询语句q、正例文本d、文本输入预存的语言模型中进行训练,以得到稠密向量模型。其中,n为正整数。在训练过程中,将包含查询语句q或与查询语句q相关数据的文本定义为正例文本,将不包含查询语句及与查询语句q相关数据的文本定义为负例文本。在模型训练过程中,首先采集正例文本、负例文本作为模型训练的基础数据。
60.本发明中,使用有监督数据训练稠密向量模型。模型训练的具体细节为,给定查询q,及与q相关的正例文本d。首先从查询语料中,随机采样不相关的负例文本利用预训练语言模型,获得查询q、相关文本d、随机文本的向量表示。查询q与文本的相似度计算为向量的点积。损失函数(loss function)是用来估量模型的预测值f(x)与真实值y的不一致程度,它是一个非负实值函数,通常使用l(y,f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分,本发明稠密向量模型的损失函数定义为:
[0061][0062]
通过此过程训练得到稠密向量模型。
[0063]
在此步骤中,使用预训练语言模型对稠密向量模型进行训练,预训练语言模型使用自监督学习机制在大规模语料上进行训练。其训练过程为:将句子中遮盖部分词语,要求待训练的稠密向量模型对遮盖的词语进行复原。预训练模型能够从大规模无监督预料中学习到丰富的语言知识,弥补了现有技术中的语义相似性训练,帮助提升稠密向量模型在下游任务中的表现。
[0064]
在对稠密向量模型的训练中,给定一个序列,要求稠密向量模型输出目标序列。此处的序列可以是上文中的查询q,目标序列是上文中的与q相关的文本d。序列到序列预训练模型的预训练任务为,遮盖句子部分内容,要求模型把被遮盖内容生成出来。例如原始语句为“我爱北京天安门,天安门上太阳升”,通过遮盖该语句得到“我爱北京《x》,天安门上《y》升”。将被遮盖语句输入模型,要求模型还原被遮盖内容,输出“《x》天安门《y》太阳”。
[0065]
220、基于稠密向量,对海量文本样本进行聚类,以得到各文本样本对应的路径。具体的,在机器学习领域,聚类是指按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。在本发明中,步骤210生成的海量文本样本的稠密向量即为一个数据集。
[0066]
在一个具体的实现过程中,基于步骤210中生成的文本的稠密向量,先对文本样本进行聚类,具体包括以下步骤:
[0067]
获取海量文本样本生成的稠密向量;
[0068]
根据预设值x将稠密向量聚类为x个子类;
[0069]
将新生成的x个子类中的每个子类再聚类成x个子类;
[0070]
多次对子类进行聚类,直至新生成的每个子类中的文本数量少于预设值x;
[0071]
其中,预设值x为正整数。
[0072]
例如当文本样本的数量为1000时,x为5,将初始包含1000个文本样本的稠密向量聚类为5个子类,其中一个子类中包含的文本数为200,再对该文本数为200的子类进行聚
类,得到含有40文本量的子类,再对该文本数为40的子类进行聚类,得到含有8文本量的子类,再对该文本数为8的子类进行聚类,得到含有最大值为4文本量的子类,此时所有的子类中的文本数量均小于5,则可以停止聚类。
[0073]
图3是本发明实施例提供的信息检索方法中聚类的示意图。
[0074]
如图3所示,基于稠密向量检索模型,对语料库中所有的文本生成向量。基于该向量,进行文本层次聚类。首先将文本聚类为x类,再不断对每个类聚类为x类,直到每个子类中文本数量少于x。其中x为超参数。例如设置x为3,过程实现了2层聚类。那么第一层聚类被分到类别2中的文本,再一次进行聚类,若被分到了类别3。那么两次聚类之后,该文本在标号为23的类中。
[0075]
230、将聚类得到的路径转换为分别与各文本样本对应的id。具体包括以下步骤:
[0076]
根据聚类路径得到每层聚类的标号,并以各层聚类对应的标号组合作为初始id;
[0077]
基于待训练的检索模型对初始id进行迭代优化,以生成与各文本样本对应的id。
[0078]
进一步的,在图3中,两次聚类之后,该文本在标号为23的类中,该文本为23类中第3个,则该文本的id为233。所以,层次聚类给每个文本设置了一个独一无二的文本id。
[0079]
240、基于海量文本样本和与海量文本样本对应的id,对检索模型进行记忆训练。
[0080]
具体的,基于海量文本样本和与海量文本样本对应的id,对检索模型进行记忆训练,在240该步骤具体还包括以下步骤:
[0081]
将海量文本样本和与海量文本样本对应的id输入预训练语言模型中;通过预训练语言模型对检索模型进行记忆训练,以得到优化训练后的检索模型。其中,使用预训练语言模型对检索模型进行训练,预训练语言模型使用自监督学习机制在大规模语料上进行训练。其训练过程为:将句子中遮盖部分词语,要求待训练的检索模型对遮盖的词语进行复原。例如原始语句为“我爱北京天安门,天安门上太阳升”,通过遮盖该语句得到“我爱北京《x》,天安门上《y》升”。将被遮盖语句输入模型,要求模型还原被遮盖内容,输出“《x》天安门《y》太阳”。预训练模型能够从大规模无监督预料中学习到丰富的语言知识,弥补了现有技术中的语义相似性训练,帮助提升检索模型在下游任务中的表现。
[0082]
基于步骤230中得到的文本id,训练检索模型使得检索模型记忆住所有的检索文本。在该步骤中,检索模型的训练目标为,给定文本,要求检索模型输出该文本的id。
[0083]
因为初始化得到的文本id并不是最适合该模型的文本id,因此通过若干轮训练后,我们用该检索模型更新一遍所有文本的id。即为所有的文本重新生成id。
[0084]
在利用训练后的检索模型重新生成文本id后,若有不同文本被赋予相同的文本id,则通过步骤220、230中层次聚类的方法,为这些文本赋予不同的id。
[0085]
具体的,在步骤230以各层聚类对应的标号组合作为初始id,之后还包括以下步骤:
[0086]
判定不同文本生成的初始id相同,则利用预先训练的稠密向量模型将不同文本分别表示为稠密向量。
[0087]
基于不同文本的稠密向量,对不同文本分别进行聚类,以得到各文本对应的路径。具体的,聚类的过程为:获取上述中不同文本生成的稠密向量;将不同文本生成的稠密向量聚类为x个子类;将新生成的x个子类中的每个子类再聚类成x个子类;多次对子类进行聚类,直至新生成的每个子类中的文本数量少于预设值x;其中,x为正整数。例如当不同文本
的数量为1000时,x为5,将初始包含1000个文本的稠密向量聚类为5个子类,其中一个子类中包含的文本数为200,再对该文本数为200的子类进行聚类,得到含有40文本量的子类,再对该文本数为40的子类进行聚类,得到含有8文本量的子类,再对该文本数为8的子类进行聚类,得到含有最大值为4文本量的子类,此时所有的子类中的文本数量均小于5,则可以停止聚类。
[0088]
将聚类得到的路径转换为分别与各文本对应的优化id,并以优化id分别作为各文本的初始id。具体的,通过聚类操作,每个文本有了一个独一无二的路径,将该路径转换成不同文本的新id,覆盖初始赋值的id。
[0089]
通过重新优化文本id,使得文本聚类更加精准,提高了检索模型检索的准确度。
[0090]
通过若干轮迭代后,我们得到一个记忆了所有检索预料的模型。
[0091]
进一步的,在步骤240之后,对训练后的检索模型进行进一步的调整优化,具体为:利用待查询语句和相关文本微调模型,即给定查询,要求其输出相关文本id,对误差较大的文本及文本id进行调整,完成了对检索模型进一步的调整优化,使得在实际应用的过程中,检索模型的检索准确率更高。
[0092]
本发明涉及机器学习、深度学习、信息检索、大规模预训练语言模型的技术领域。所要解决的技术问题是:如何高效地使用大规模预训练语言模型,降低检索模型在检索场景下的计算及存储开销,提升大规模语言模型在检索中的使用效率。
[0093]
为了解决上述技术问题,本发明提供了一种端到端的大模型检索算法,其中对检索模型进行预先训练及优化调整的过程包括如下步骤:
[0094]
a、使用对比学习,训练稠密向量模型,将所有的文本表示为稠密向量;
[0095]
b、基于稠密向量,对文本进行聚类,将聚类得到的路径初始化为文本id;
[0096]
c、进行检索模型记忆训练,给定文本,要求检索模型输出文本id。在训练过程中迭代进行文本id的调整;
[0097]
d、模型记忆之后,使用真实场景中查询与文本的对应数据,微调检索模型。
[0098]
传统文本检索算法大多基于词语匹配计算相似度,这种算法往往使得模型忽略语义相似性。稠密向量检索将所有文本转换成向量,通过计算向量点积,来计算文本相似度,这种对应的技术被称作稠密向量检索。稠密向量检索通过对比学习技术训练文本编码模型。
[0099]
给定查询、相关文本,模型从语料库中获取不相关文本作为负例。训练的目标函数为最大化查询与相关文本的向量相似度。稠密向量检索计算代价、存储代价高昂。需要对所有的待检索文本进行编码,并存储对应的向量。检索时需要计算查询的向量表示,相似度计算需要大规模的向量乘法,计算代价高昂。
[0100]
与现有技术相比,本发明在大规模检索语料中实现了端到端的检索,从而实现了检索速度的提升,并减小了存储开销。在该技术中,本发明提出使用稠密检索初始化文本检索结构,继承以往模型知识。并且,本发明提出了迭代更新文本id的方法,能够使得文本索引结构与文本编码最大程度相适应。
[0101]
下面对本发明提供的信息检索装置进行描述,下文描述的信息检索装置与上文描述的信息检索方法可相互对应参照。
[0102]
图4示例了一种信息检索装置的实体结构示意图,如图4所示,该信息检索装置,包
括:获取模块41和查询输出模块42。
[0103]
其中,获取模块41用于获取待查询语句。查询输出模块42用于基于预先训练的检索模型,输出与待查询语句具有文本对应关系的id。
[0104]
其中,检索模型是基于海量文本样本和id训练得到的,且检索模型中存储有各文本样本与id的文本对应关系。
[0105]
对检索模型进行预先训练及优化调整的过程具体包括:a、使用对比学习方案训练稠密向量模型,用于生成文本表示;b、基于生成的文本表示通过聚类的方法,给每个文档赋予一个特有的文档id;c、使用大规模预训练语言模型记忆所有的检索语料;d、使用有监督检索数据微调检索模型,使得检索模型可以输入查询,直接输出相关文档的id。
[0106]
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行信息检索方法,该方法包括:110、获取待查询语句;120、基于预先训练的检索模型,输出与待查询语句具有文本对应关系的id。其中,检索模型是基于海量文本样本和id训练得到的,且检索模型中存储有各文本样本与id的文本对应关系。进一步的,对检索模型进行预先训练的过程具体包括:210、获取海量文本样本,利用预先训练的稠密向量模型将所有文本样本表示为稠密向量;220、基于稠密向量,对海量文本样本进行聚类,以得到各文本样本对应的路径;230、将聚类得到的路径转换为分别与各文本样本对应的id;240、基于海量文本样本和与海量文本样本对应的id,对检索模型进行记忆训练。
[0107]
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0108]
另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,计算机程序被处理器执行时,计算机能够执行上述各方法所提供的信息检索方法,该方法包括:110、获取待查询语句;120、基于预先训练的检索模型,输出与待查询语句具有文本对应关系的id。其中,检索模型是基于海量文本样本和id训练得到的,且检索模型中存储有各文本样本与id的文本对应关系。进一步的,对检索模型进行预先训练的过程具体包括:210、获取海量文本样本,利用预先训练的稠密向量模型将所有文本样本表示为稠密向量;220、基于稠密向量,对海量文本样本进行聚类,以得到各文本样本对应的路径;230、将聚类得到的路径转换为分别与各文本样本对应的id;240、基于海量文本样本和与海量文本样本对应的id,对检索模型进行记忆训练。
[0109]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的信息检索方法,该方法包
括:110、获取待查询语句;120、基于预先训练的检索模型,输出与待查询语句具有文本对应关系的id。其中,检索模型是基于海量文本样本和id训练得到的,且检索模型中存储有各文本样本与id的文本对应关系。进一步的,对检索模型进行预先训练的过程具体包括:210、获取海量文本样本,利用预先训练的稠密向量模型将所有文本样本表示为稠密向量;220、基于稠密向量,对海量文本样本进行聚类,以得到各文本样本对应的路径;230、将聚类得到的路径转换为分别与各文本样本对应的id;240、基于海量文本样本和与海量文本样本对应的id,对检索模型进行记忆训练。
[0110]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0111]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
[0112]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1