本发明涉及信息检索,具体涉及一种基于csibert模型的高效率文本搜索方法。
背景技术:
1、信息检索(information retrieval)是通过对大量的、分散无序的信息进行搜集、加工、组织、存储建立各种各样的检索系统,并通过一定的方法和手段使存储和检索这两个过程所采用的特征标识达到一致,以便有效地获得和利用信息源。信息检索的基本任务之一是文本内容的搜索,其核心内容查找技术在文本编辑、文件管理、搜索引擎、自动问答系统等场景有大量的应用。
2、传统基于词频的pagerank、bm25等算法由于搜索文本缺乏与被检索文本库之间的上下文语义背景信息,更无法解决多义词问题,搜索结果往往包含许多不相关内容。近年来,基于自然语言理解的深度学习模型推动了信息检索的快速发展,其核心是采用深度学习语言模型对文本进行排序。虽然该类方法收获较好的结果,但与传统方法相比,该类方法必须通过大型神经网络为搜索文本与文本库中每一个文本的单独计算相关度,从而增加了几个数量级的计算成本,算法效率较低。
技术实现思路
1、发明目的:针对现有技术中存在的问题,本发明提供一种基于csibert模型的高效文本搜索方法,本发明采用一种特殊的深度学习预训练模型csibert,增加上下文背景语义信息,可以对文本库进行离线预训练,并通过采用一种特殊的语义交互框架进行后期处理,有效提高了文本搜索的时间效率和准确率。
2、技术方案:本发明提供了一种基于csibert模型的高效文本搜索方法,具体步骤如下:
3、步骤1:输入搜索文本s;
4、步骤2:对搜索文本s进行预处理;
5、步骤3:构建csibert模型,对其利用文本库t进行编码预训练,采用预训练的csibert模型对搜索文本s进行增量编码训练得到搜索文本s的向量表示vs;所述csibert模型采用多层双向transfomer编码器,以特殊标记[cls]开始,从右边以特殊的符号[s]作为序列的分割标记;
6、步骤4:将文本库t等分为l份,采用语义交互公式计算搜索文本s与每一份中所有文本t的相关度rs,t;rs,t计算公式如下:
7、
8、公式中,vs为搜索文本s的向量表示,vt为文本t的向量表示,avg()为平均值计算,()t为向量的转置,符号“·”为向量的积运算;
9、步骤5:以相关度值rs,t大小,输出选择相关度值最大的前k个搜索结果。
10、进一步地,所述步骤3中利用文本库t对csibert模型进行编码预训练,具体步骤如下:
11、步骤s1:对文本库t进行预处理;
12、步骤s2:采用csibert模型对文本库t进行编码预训练并得到文本t的向量表示vt;采用csibert模型的多层双向transfomer编码器实现对文本t的编码预训练时,csibert模型以特殊标记[cls]开始,从左边依次以特殊的符号[t]作为序列的分割标记;
13、步骤s3:保存上述预训练所得的csibert模型参数结果。
14、进一步地,所述步骤2对搜索文本s进行预处理,对搜索文本s进行分词处理和去除停用词、符号。
15、进一步地,所述步骤s1对文本库t进行预处理,对文本库t进行分词处理和去除停用词、符号。
16、进一步地,所述步骤3中采用csibert模型的多层双向transfomer编码器实现对搜索文本s的编码增量训练时,具体操作如下:
17、csibert模型以特殊标记[cls]开始,接着从右边以特殊的符号[s]作为序列的分割标记,当搜索文本s长度|s|<=ns,采用ns-|s|个特殊的遮掩标记[mask]替词语参加训练,csibert采用多层双向transfomer编码器实现,具体如下形式:
18、vs:=normalize(csibert(“[s]s0s1...sn”))
19、其中vs为一个向量组,表示搜索文本s的向量表示,normalize()是对csibert训练结果进行归一化处理,csibert()表示csibert模型的transfomer编码过程,ns为人工设置的固定参数,待csibert训练结束后,每个分割符号向量通过如下公示计算:
20、
21、其中,[s]仅作为形式存在,sn表示s中的任意一个分量,作为特殊向量代表搜索文本s的整体词向量。
22、进一步地,所述步骤s2中采用csibert模型的多层双向transfomer编码器实现对文本t的编码预训练时,具体操作如下:
23、csibert模型以特殊标记[cls]开始,接着从左边依次以特殊的符号[t]作为序列的分割标记,在编码预训练过程中,csibert采用多层双向transfomer编码器实现,具体如下形式:
24、vt:=normalize(csibert(“[t]t0t1...tm”))
25、其中,vt为一个向量组,表示文本t的向量表示,待csibert模型训练结束后,每个分割符号向量通过如下公示计算:
26、
27、其中,[t]仅作为形式存在,tm表示t中的任意一个分量,作为特殊向量代表文本t的整体词向量。
28、进一步地,所述步骤5采用并行算法输出选择相关度值最大的前k个搜索结果具体如下:
29、首先以相关度值rs,t大小,采用并行算法从l份文本每一份文本t中选出与s相关度值最大的前top q个文本,作为候选集p,p中共有l*q个文本;
30、然后对p中l*q个文本按相关度值rs,t大小排序,选择相关度值最大的前top k个文本,作为与搜索文本s相关对最高的文本输出结果。
31、有益效果:
32、1.本发明中采用深度学习预训练模型csibert,增加了上下文背景语义信息,可以提高文本搜索的准确度,解决多义词问题;也可以对文本库离线进行预训练,从而减少了文本的搜索时间,提高时间效率。
33、2.本发明中采用一种特殊的语义交互框架进行后期处理,可以快速计算搜索文本s与每个文本t(t∈t)的相关度rs,t,进而提高时间效率。
34、3.本发明中采用并行计算的方法分别计算每一份中所有文本与搜索文本t的相关度rs,t,并行计算时间效率仅为传统线性顺序计算方法的1/l,提高时间效率。
1.一种基于csibert模型的高效文本搜索方法,其特征在于:具体步骤如下:
2.根据权利要求1所述的基于csibert模型的高效文本搜索方法,其特征在于:所述步骤3中利用文本库t对csibert模型进行编码预训练,具体步骤如下:
3.根据权利要求1所述的基于csibert模型的高效文本搜索方法,其特征在于:所述步骤2对搜索文本s进行预处理,对搜索文本s进行分词处理和去除停用词、符号。
4.根据权利要求2所述的基于csibert模型的高效文本搜索方法,其特征在于:所述步骤s1对文本库t进行预处理,对文本库t进行分词处理和去除停用词、符号。
5.根据权利要求1所述的基于csibert模型的高效文本搜索方法,其特征在于:所述步骤3中采用csibert模型的多层双向transfomer编码器实现对搜索文本s的编码增量训练时,具体操作如下:
6.根据权利要求2所述的基于csibert模型的高效文本搜索方法,其特征在于:所述步骤s2中采用csibert模型的多层双向transfomer编码器实现对文本t的编码预训练时,具体操作如下:
7.根据权利要求1所述的基于csibert模型的高效文本搜索方法,其特征在于:所述步骤5采用并行算法输出选择相关度值最大的前k个搜索结果具体如下: