一种基于稀疏向量匹配的高效检索方法技术

技术编号:29024761 阅读:21 留言:0更新日期:2021-06-26 05:26
本发明专利技术公开了一种基于稀疏向量匹配的高效检索方法,通过对问题句子和答案句子分词编码,然后进行单词级交互,对问题单词和答案句子之间的相关性进行计算,提升了检索细粒度,从而提升了检索准确率,通过ln、ReLU和b三者组合,有效提升算法模型的泛用性、检索精度和检索速度。索速度。索速度。

【技术实现步骤摘要】
一种基于稀疏向量匹配的高效检索方法


[0001]本专利技术涉及一种基于稀疏向量匹配的高效检索方法,属于数据处理领域。

技术介绍

[0002]开放问答(OpenQA),即基于知识库自动回答开放问题,通常采用大规模机器阅读(MRS)实现。MRS利用信息检索(IR)系统来缩小答案段落的选择范围,然后使用机器阅读理解读取器来提取最终答案。
[0003]现在检索系统进行训练的方法都是基于双塔语义匹配架构之上,其将问题和答案都转换成密集向量,通过点积计算问题和答案之间的相关程度。但是若答案的数据量较多的时候,则必须依靠近似邻域(ANN)技术辅助进行检索,导致检索速度和正确率下降。

技术实现思路

[0004]本专利技术所要解决的技术问题在于克服现有技术的不足而提供一种基于稀疏向量匹配的高效检索方法。
[0005]解决上述技术问题,本专利技术采用如下技术方案:一种基于稀疏向量匹配的高效检索方法,建立算法模型包括如下步骤:步骤S1:通过分词器将输入的问题q以单词串token q的形式进行表示,token q=[t1,t2...t
n
],通过编码器对token q进行编码,得到,从答案候选集中选取一个元素,从该元素中提取获得a和c,a为答案,c为a的上下文,通过分词器将a和c以单词串token (a,c)的形式进行表示,token (a,c)=[c1,c2...c
i
,a1,a2..a
k
,c
i+1
...c
j
],通过编码器对token (a,c)进行编码,得到H(a,c)=[s1,s2...s
j+k
];步骤S2:定义,和为列数相同的列矩阵,为的转置矩阵,,b为可训练的bias,则token q和token (a,c)之间的匹配函数为。
[0006]步骤S3:重复步骤S1和步骤S2,根据答案候选集中不同元素的数值排序依次输出对应的a和c。
[0007]本专利技术的有益效果为:1、通过将问题和答案中每一对单词进行细致交互,提升了检索细粒度,从而提升了检索准确率;2、通过ln、ReLU和b三者组合,有效提升算法模型的泛用性、检索精度和检索速度。
[0008]本专利技术对token q进行编码的编码器为无词序编码器,对token (a,c)进行编码的编码器为有词序编码器。
[0009]本专利技术还包括步骤S4,步骤S4:对词汇表中每个单词进行无词序编码,得到,为词汇表中任一单词经无词序编码后得到的编码结果,则和token (a,c)之间的匹配函数为,匹配结果缓存在索引中,对应的。
[0010]本专利技术若a和c为中文,则有词序编码器为chinese

bert

wwm,若a和c为英文,则有词序编码器为bert

base

uncased。
[0011]本专利技术算法模型的训练函数为,其中a
+
为正确答案,c
+
为a
+
的上下文,a

为错误答案,c

为a

的上下文。
[0012]本专利技术对算法模型进行训练的训练样本包含多个句子,a和c在同一个句子中,其中一个句子中的a为a
+
,其余句子构成负样本K

,负样本K

中的a为a


[0013]本专利技术负样本K

的构建方法如下:步骤a1:从答案候选集中随机选择一部分a为a

的句子;步骤a2::从答案候选集中选择一部分靠近a
+
的句子;步骤a3:去除步骤a1和步骤a2中重复选取的句子,以获得负样本K


[0014]本专利技术负样本K

中,步骤a2中选取的句子数量占比不低于50%。
[0015]本专利技术步骤a2中选择的句子和a
+
之间最多间隔两个句子。
[0016]本专利技术采用同一种无词序编码器对token q和词汇表中单词进行编码。
[0017]本专利技术的其他特点和优点将会在下面的具体实施方式、附图中详细的揭露。
附图说明
[0018]下面结合附图对本专利技术做进一步的说明:图1为本专利技术实施例1的算法模型建立流程图。
具体实施方式
[0019]下面结合本专利技术实施例的附图对本专利技术实施例的技术方案进行解释和说明,但下述实施例仅为本专利技术的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其他实施例,都属于本专利技术的保护范围。
[0020]在下文描述中,出现诸如术语“内”、“外”、“上”、“下”、“左”、“右”等指示方位或者位置关系仅是为了方便描述实施例和简化描述,而不是指示或暗示所指的装置或者元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。
[0021]实施例1:
参见图1,本实施例提供了一种基于稀疏向量匹配的高效检索方法,该方法的其中一种应用为开放问答,即依据输入的问题,从现有文档中找到正确答案。
[0022]本实施例建立算法模型包括如下步骤:步骤S1:通过分词器将输入的问题q以单词串token q的形式进行表示,token q=[t1,t2...t
n
],通过编码器对token q进行编码,得到。
[0023]例如q为“晚饭吃什么”,则token q=[晚饭,吃,什么],t1=晚饭,t2=吃,t3=什么。对应的,。其中对token q进行编码的编码器为无词序编码器,以适当增加后续检索速度。
[0024]将现有的某一文档(如英文数据集文档SQuAD [Rajpurkar et al.,2016]或中文数据集文档CMRC [Cui et al.,2018]等)分割为多个句子,每一个句子作为答案候选集中的元素,每个元素都包含了a和c,a为答案,c为a的上下文,相应的,由文档分割出的所有句子构成了完整的答案候选集。从答案候选集中选取一个元素(句子),从该元素中提取获得a和c,通过分词器将a和c以单词串token (a,c)的形式进行表示,token (a,c)=[c1,c2...c
i
,a1,a2..a
k
,c
i+1
...c
j
],通过编码器对token (a,c)进行编码,得到H(a,c)=[s1,s2...s
j+k
]。
[0025]例如,其中一句话为“晚饭吃米饭了”,则a为“米饭”,c为“晚饭吃...了”,相应的,token (a,c)=[晚饭,吃,米饭,了],c1=晚饭,c2=吃,a1=米饭,c3=了。对应的,H(a,c)=[s1,s2,s3,s4]。对token (a,c)进行编码的编码器为有词序编码器,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于稀疏向量匹配的高效检索方法,其特征在于,建立算法模型包括如下步骤:步骤S1:通过分词器将输入的问题q以单词串token q的形式进行表示,token q=[t1,t2...t
n
],通过编码器对token q进行编码,得到,从答案候选集中选取一个元素,从该元素中提取获得a和c,a为答案,c为a的上下文,通过分词器将a和c以单词串token (a,c)的形式进行表示,token (a,c)=[c1,c2...c
i
,a1,a2..a
k
,c
i+1
...c
j
],通过编码器对token (a,c)进行编码,得到H(a,c)=[s1,s2...s
j+k
];步骤S2:定义,和为列数相同的列矩阵,为的转置矩阵,,b为可训练的bias,则token q和token (a,c)之间的匹配函数为;步骤S3:重复步骤S1和步骤S2,根据答案候选集中不同元素的数值排序依次输出对应的a和c。2.根据权利要求1所述的基于稀疏向量匹配的高效检索方法,其特征在于,对token q进行编码的编码器为无词序编码器,对token (a,c)进行编码的编码器为有词序编码器。3.根据权利要求2所述的基于稀疏向量匹配的高效检索方法,其特征在于,还包括步骤S4,步骤S4:对词汇表中每个单词进行无词序编码,得到,为词汇表中任一单词经无词序编码后得到的编码结果,则和token (a,c)之间的匹配函数为,匹配结果缓存在索引中,对应的。4.根据权利要求2所述的基于稀疏向量匹配的高效检索方法,其特征在于,若a和c为中文,则有词序编码器为chinese

bert

wwm,若a和c为英文,则有词序编...

【专利技术属性】
技术研发人员:赵天成
申请(专利权)人:宏龙科技杭州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1