一种索引生成方法、数据检索方法和装置与流程

文档序号:12465702阅读:191来源:国知局
一种索引生成方法、数据检索方法和装置与流程

本发明涉及计算机技术领域,特别涉及一种索引生成方法、数据检索方法和装置。



背景技术:

数据检索一般是指根据外部输入的检索信息,检索出与检索信息相匹配的多种模态的数据。如根据外部输入的一段文字或者一段视频等,检索出与该段文字或者视频相关的文档、视频、音频以及图像等。随着以多媒体数据(如图像、视频和音频等)为代表的非结构化数据已成为大数据的主体,基于海量多媒体数据的检索备受关注。

一般来说,在进行数据检索之前,提取每一个样本数据的样本特征向量,并将每一个样本特征向量存储到数据库。在数据检索的过程中,提取出检索信息的检索特征向量,通过遍历数据库中所有的样本特征向量,查找检索特征向量对应的近邻样本特征向量。例如:数据库中存储有1012个样本特征向量,对检索信息A进行检索时,需要遍历这1012个样本特征向量,才能查找出检索信息A对应的近邻样本特征向量,然后,基于查找到的近邻样本特征向量,输出检索结果。

对于现有的这种数据检索方式来说,由于查找近邻样本特征向量的过程,会有大量无关的样本特征向量干扰,造成检索效率较低。



技术实现要素:

本发明实施例提供了一种索引生成方法、数据检索方法和装置,能够有效地提高检索效率。

第一方面,一种索引生成方法,还包括:

提取每一个样本数据元的样本特征信息,所述样本特征信息,包括:样本特征向量和样本标识;

为每一个所述样本特征向量生成对应的近邻图索引;

随机生成至少一个映射向量;

针对每一个所述映射向量,执行:

根据预设的区间宽度,将所述映射向量划分为至少两个区间,并为每一个所述区间分配对应的区间标识;

将每一个所述样本特征向量映射到所述映射向量;

根据映射的结果,将每一个所述样本标识分配给相关的所述区间标识,生成倒排文档索引。

可选地,当所述映射向量的个数为至少两个时,所述至少两个映射向量满足标准正态分布。

可选地,所述为每一个所述区间分配对应的区间标识,包括:

从所述映射向量的起始位置,为每一个所述区间进行顺序编号;

确定每一个所述区间的编号为对应的所述区间标识。

可选地,所述为每一个所述样本特征向量生成对应的近邻图索引,包括:

针对每一个所述样本特征向量,执行:

为所述样本特征向量查找至少一个近邻样本特征向量;

从所述样本特征向量开始,向每一个所述近邻样本特征向量绘制对应的有向边,形成所述样本特征向量的近邻图索引。

可选地,上述方法进一步包括:构建数据空间;

所述将每一个所述样本特征向量映射到所述映射向量,根据映射的结果,将每一个所述样本标识分配给相关的所述区间标识,包括:

将每一个所述样本数据元对应的样本特征向量和至少一个映射向量加载到所述数据空间;

将每一个所述样本特征向量抽象为所述数据空间中的一个数据点,并将每一个所述映射向量抽象为所述数据空间中的一条有向线段;

针对每一个所述样本特征向量对应的数据点,执行:

将所述样本特征向量对应的数据点投影到每一个所述映射向量对应的有向线段上,并确定所述数据点在每一个所述映射向量对应的有向线段的投影位置;

将所述样本特征向量对应的所述样本标识分配给所述投影位置所属区间。

可选地,所述将每一个所述样本特征向量映射到所述映射向量,根据映射的结果,将每一个所述样本标识分配给相关的所述区间标识,包括:

基于所述映射向量,计算每一个所述样本特征向量的哈希值;

针对每一个所述样本标识,执行:

当所述样本标识对应的所述样本特征向量的哈希值与当前区间标识一致时,将所述样本标识分配给所述当前区间标识。

可选地,所述基于所述映射向量,计算每一个所述样本特征向量的哈希值,包括:

根据下述计算公式(1),计算每一个所述样本特征向量的哈希值;

其中,h(x)表征哈希值;a表征所述映射向量;x表征样本特征向量;w表征所述预设的区间宽度;b表征预设的偏移量且b∈[0,w)。

第二方面,一种数据检索方法,利用上述任一所述的方法为至少两个样本数据元生成至少一个近邻图索引和至少一个倒排文档索引,还包括:

当接收到检索信息时,提取所述检索信息包含的检索特征向量;

针对每一个所述倒排文档索引,执行:

基于所述倒排文档索引,计算所述检索特征向量对应的哈希值;

利用所述检索特征向量对应的哈希值、所述倒排文档索引以及所述至少一个近邻图索引,进行检索。

可选地,所述基于所述倒排文档索引,计算所述检索特征向量对应的哈希值,包括:

根据下述计算公式(2),计算所述检索特征向量对应的哈希值;

其中,f(y)表征所述检索特征向量对应的哈希值;βi表征倒排文档索引i对应的映射向量;y表征所述检索特征向量;w表征所述倒排文档索引对应的区间宽度;δ表征为所述检索特征向量预设的偏移量。

可选地,上述方法进一步包括:为每一个所述样本数据元设置碰撞计数器,并设置所述碰撞计数器初始值为零;

在所述提取所述检索信息包含的检索特征向量之后,进一步包括:

根据所述检索特征向量,从所述至少两个样本数据元中,筛选出候选集,其中,所述候选集包括至少一个样本数据元;

所述利用所述检索特征向量对应的哈希值、所述倒排文档索引以及所述至少一个近邻图索引,包括:

在所述倒排文档索引中,筛选出与所述哈希值一致的目标区间标识;

提取所述目标区间标识对应的至少一个目标样本数据元;

利用所述至少一个目标样本数据元,更新所述候选集,并通过所述碰撞计数器为每一个所述目标样本数据元进行计数加一;

根据更新后的候选集中每一个样本数据元的近邻图索引以及更新后的候选集中每一个样本数据元的计数结果,确定至少一个目标近邻样本数据元;

计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;

根据每一个所述目标近邻样本数据元与所述检索信息的欧式距离,输出检索结果。

可选地,所述根据更新后的候选集中每一个样本数据元的近邻图索引以及更新后的候选集中每一个样本数据元的计数结果,确定至少一个目标近邻样本数据元,进一步包括:

针对更新后的候选集中每一个样本数据元,执行N1至N3:

N1:利用近邻图索引,查找所述样本数据元的至少一个初始近邻样本数据元;

N2:按照计数的由大到小,从所述至少一个初始近邻样本数据元中,筛选出预设个数的初始近邻样本数据元;

N3:将筛选出的预设个数的初始近邻样本数据元对应的计数累加到所述样本数据元的计数上,统计所述样本数据元的计数累加结果;

按照所述更新后的候选集中每一个样本数据元的计数累加结果由大到小的顺序,选定预设近邻个数的样本数据元为所述目标近邻样本数据元。

可选地,所述根据更新后的候选集中每一个样本数据元的计数结果,确定至少一个目标近邻样本数据元,包括:

根据每一个样本数据元的更新后的计数从大到小的顺序,选取预设的近邻个数的目标近邻样本数据元。

可选地,所述计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离,包括:

根据下述计算公式(3),计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;

其中,d表征所述目标近邻样本数据元与所述检索信息的欧式距离;表征所述检索信息对应的检索特征向量中的第i个分向量;γi表征所述目标近邻样本数据元对应的样本特征向量中的第i个分向量。

第三方面,一种索引生成装置,包括:

样本提取单元,用于提取每一个样本数据元的样本特征信息,所述样本特征信息,包括:样本特征向量和样本标识;

映射向量生成单元,用于随机生成至少一个映射向量;

索引生成单元,用于为所述样本提取单元提取出的每一个所述样本特征向量生成对应的近邻图索引,并针对所述映射向量生成单元生成的每一个所述映射向量,执行:根据预设的区间宽度,将所述映射向量划分为至少两个区间,并为每一个所述区间分配对应的区间标识;将所述样本提取单元提取出的每一个所述样本特征向量映射到所述映射向量;根据映射的结果,将所述样本提取单元提取出的每一个所述样本标识分配给相关的所述区间标识,生成倒排文档索引。

第四方面,一种数据检索装置,包括:索引生成单元、检索特征提取单元和数据检索单元,其中,

所述索引生成单元,用于利用上述任一所述的索引生成方法为至少两个样本数据元生成至少一个近邻图索引和至少一个倒排文档索引;

所述检索特征提取单元,用于当接收到检索信息时,提取所述检索信息包含的检索特征向量;

所述数据检索单元,用于针对所述索引生成单元生成的每一个所述倒排文档索引,执行:基于所述倒排文档索引,计算所述检索特征提取单元提取出的检索特征向量对应的哈希值;根据所述检索特征向量对应的哈希值和所述倒排文档索引,进行检索。

可选地,所述数据检索单元,用于:

根据下述计算公式(2),计算所述检索特征向量对应的哈希值;

其中,f(y)表征所述检索特征向量对应的哈希值;βi表征倒排文档索引i对应的映射向量;y表征所述检索特征向量;w表征所述倒排文档索引对应的区间宽度;δ表征为所述检索特征向量预设的偏移量。

可选地,所述索引生成单元,进一步用于针对每一个所述样本特征向量,执行:为所述样本特征向量查找至少一个近邻样本特征向量;从所述样本特征向量开始,向每一个所述近邻样本特征向量绘制对应的有向边,形成所述样本特征向量的近邻图索引。

可选地,上述检索装置,进一步包括:设置单元和候选集筛选单元,其中,

所述设置单元,用于为每一个所述样本数据元设置碰撞计数器,并设置所述碰撞计数器初始值为零;

所述候选集筛选单元,用于根据所述检索特征提取单元提取出的检索特征向量,从所述至少两个样本数据元中,筛选出候选集,其中,所述候选集包括至少一个样本数据元;

所述数据检索单元,用于在所述倒排文档索引中,筛选出与所述哈希值一致的目标区间标识;提取所述目标区间标识对应的至少一个目标样本数据元;利用所述至少一个目标样本数据元,更新所述候选集,并通过所述碰撞计数器为每一个所述目标样本数据元进行计数加一;根据更新后的候选集中每一个样本数据元的近邻图索引以及更新后的候选集中每一个样本数据元的计数结果,确定至少一个目标近邻样本数据元;计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;根据每一个所述目标近邻样本数据元与所述检索信息的欧式距离,输出检索结果。

可选地,所述数据检索单元,用于根据下述计算公式(3),计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;

其中,d表征所述目标近邻样本数据元与所述检索信息的欧式距离;表征所述检索信息对应的检索特征向量中的第i个分向量;γi表征所述目标近邻样本数据元对应的样本特征向量中的第i个分向量。

本发明实施例提供了一种索引生成方法、数据检索方法和装置,通过提取每一个样本数据元的样本特征信息,所述样本特征信息,包括:样本特征向量和样本标识;为每一个所述样本特征向量生成对应的近邻图索引,随机生成至少一个映射向量;针对每一个所述映射向量,执行:根据预设的区间宽度,将所述映射向量划分为至少两个区间,并为每一个所述区间分配对应的区间标识;将每一个所述样本特征向量映射到所述映射向量;根据映射的结果,将每一个所述样本标识分配给相关的所述区间标识,生成倒排文档索引,通过上述生成倒排文档索引的过程,相当于利用倒排文档索引对样本数据元进行了分类,在进行数据检索过程中,基于倒排文档索引和近邻图索引进行数据检索的过程,是利用倒排文档索引给出的区间标识和近邻图索引直接获得与检索信息相关性比较大的样本数据元,从而能够有效地提高检索效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种索引生成方法的流程图;

图2是本发明一个实施例提供的一种映射到映射向量的示意图;

图3是本发明另一个实施例提供的一种索引生成方法的流程图;

图4是本发明一个实施例提供的一种映射向量划分区间的示意图;

图5是本发明一个实施例提供的一种倒排文档索引的示意图;

图6是本发明一个实施例提供的一种近邻图索引的示意图;

图7是本发明一个实施例提供的一种数据检索方法的流程图;

图8是本发明另一个实施例提供的一种数据检索方法的流程图;

图9是本发明一个实施例提供的一种候选集合并索引集的结构示意图;

图10是本发明一个实施例提供的一种索引生成装置的结构示意图;

图11是本发明一个实施例提供的一种数据检索装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

基本概念说明

本发明提及的样本数据元可以为数据库存储的单个数据元素如一个图像、一段视频、一段音频以及一个词组等。

样本特征向量是由表征样本数据元特征的参数组成多维向量,而向量的维度一般与参数的个数相关,例如:对于一个图像来说,其样本特征向量由色彩、灰度、纹理、边缘、梯度等参数组成,对于一个词组来说,其样本特征向量则可由词组在文本中出现的频次等表示。一般来说,样本数据元与样本特征向量具有关联性,即通过样本特征向量能够直接找到对应的样本数据元。

本发明提及的映射向量的维度与样本数据元的样本特征向量的维度相同,一般来说,在随机生成至少一个映射向量的过程中,可以使同一类型的样本数据元可以对应同样的映射向量,而不同类型的样本数据元一般对应不同的映射向量。

如图1所示,本发明实施例提供了一种索引生成方法,该方法可以包括以下步骤:

步骤101:提取每一个样本数据元的样本特征信息,所述样本特征信息,包括:样本特征向量和样本标识;

步骤102:为每一个所述样本特征向量生成对应的近邻图索引;

步骤103:随机生成至少一个映射向量;

步骤104:针对每一个所述映射向量,执行:根据预设的区间宽度,将所述映射向量划分为至少两个区间,并为每一个所述区间分配对应的区间标识;

步骤105:将每一个所述样本特征向量映射到所述映射向量;

步骤106:根据映射的结果,将每一个所述样本标识分配给相关的所述区间标识,生成倒排文档索引。

在图1所示的实施例中,通过提取每一个样本数据元的样本特征信息,所述样本特征信息,包括:样本特征向量和样本标识;为每一个所述样本特征向量生成对应的近邻图索引,随机生成至少一个映射向量;针对每一个所述映射向量,执行:根据预设的区间宽度,将所述映射向量划分为至少两个区间,并为每一个所述区间分配对应的区间标识;将每一个所述样本特征向量映射到所述映射向量;根据映射的结果,将每一个所述样本标识分配给相关的所述区间标识,生成倒排文档索引,通过上述生成倒排文档索引的过程,相当于利用倒排文档索引对样本数据元进行了分类,在进行数据检索过程中,基于倒排文档索引和近邻图索引进行数据检索的过程,是利用倒排文档索引和近邻图索引给出的区间标识直接获得与检索信息相关性比较大的样本数据元,从而能够有效地提高检索效率。

上述步骤102生成近邻图索引的过程与步骤103至106生成倒排文档索引的过程没有严格的先后顺序。

在本发明一个实施例中,为了能够使区间标识简单易得,同时方便后续在对倒排文档索引检索,上述步骤103中为每一个所述区间分配对应的区间标识的一种实现方式可以包括:从所述映射向量的起始位置,为每一个所述区间进行顺序编号;确定每一个所述区间的编号为对应的所述区间标识。由于映射向量具有方向性,为了在后续检索过程中,使区间标识与检索过程计算出的哈希值一致,本发明选择以映射向量的起始位置,从0开始顺序为每个区间编号,即每一个映射向量均包含有区间标识分别为0,1,2,…,i,…等的区间,由于为每一个映射向量预设的区间宽度一致,那么,不管是同一向量中的各个区间,还是不同向量间的各个区间,其区间对应的宽度一致。而预设的区间宽度可以是用户根据实际需求进行设定。

在本发明一个实施例中,为了能够满足在检索的过程中,对每一个样本数据元的近邻样本数据元的快速定位,从而进一步提高检索的效率和检索的准确性,在上述步骤102的一种实施方式可包括,针对每一个所述样本特征向量,执行:为所述样本特征向量查找至少一个近邻样本特征向量;从所述样本特征向量开始,向每一个所述近邻样本特征向量绘制对应的有向边,形成所述样本特征向量的近邻图索引。即在索引生成过程中,除了为样本数据元生成倒排文档索引,还基于每一个样本数据元的样本特征向量形成近邻图索引,由于该近邻图索引通过有向边将样本特征向量与近邻样本特征向量连接,那么,沿着该近邻图索引的有向边可以快速的定位出每一个样本数据元对应的近邻样本数据元。

在本发明一个实施例中,为了使映射向量分布更加合理,当上述步骤103中随机生成的映射向量个数为至少两个时,该至少两个映射向量满足标准正态分布。

在本发明一个实施例中,为了能够将样本数据元与每一个映射向量构建关联关系,同时,使不同的样本数据元能够在同一个映射向量下按照区间完成分类,上述步骤105和106的具体实施方式可以分为两种:

方式一:构建数据空间,该数据空间可以通过构建二维或者多维坐标系实现,将各个样本数据元对应的样本特征向量和至少一个映射向量加载到数据空间,那么一个样本特征向量则抽象为数据空间中的一个数据点,而映射向量则为空间中的一条有向线段,针对每一个所述样本特征向量对应的数据点,执行:将所述样本特征向量对应的数据点投影到每一个所述映射向量对应的有向线段上,并确定所述数据点在每一个所述映射向量对应的有向线段的投影位置;可以通过将数据点向有向线段作垂线,相交的点落在映射向量中的一个区间内,则将该数据点(样本特征向量)分配给该区间,如图2所示,映射向量P包含有区间标识为0,1,…,i,…的各个区间,通过空间中的数据点1,2,3向映射向量P做垂线,其中,数据点1落在区间0内,则将数据点1对应的样本数据元分配给区间0;数据点2落在区间1内,则将数据点2对应的样本数据元分配给区间1;数据点3落在区间i内,则将数据点3对应的样本数据元分配给区间i;该分配的过程主要是将样本数据元对应的样本标识存储到对应的区间桶内,这样使倒排文档索引占用存储空间较小,在检索过程中,方便倒排文档索引的加载。

方式二:基于所述映射向量,计算每一个所述样本特征向量的哈希值;针对每一个所述样本标识,执行:当所述样本标识对应的所述样本特征向量的哈希值与当前区间标识一致时,将所述样本标识分配给所述当前区间标识。例如:样本特征向量1计算得到的哈希值为0,则直接将该样本特征向量1对应的样本标识存储到区间标识为0的区间内。

另外,不管是方式一,还是方式二,对于同一个映射向量来说,一个样本标识只存在于一个区间内;而对于不同的映射向量来说,一个样本标识对应的区间标识可以不同,例如:对于映射向量P来说,样本标识1存在于区间标识为0的区间;而对于映射向量Q来说,样本标识1存在于区间标识为1的区间。

通过上述过程可知,一个映射向量对应一个倒排文档索引,当步骤103随机生成多个映射向量,则可相应的生成多个倒排文档索引,以从不同的角度对样本数据元进行分类,从而在检索的过程中,可以从不同的角度进行检索,保证检索的完整性。

对于上述方式二来说,所述基于所述映射向量,计算每一个所述样本特征向量的哈希值的具体实施方式,可以包括:根据下述计算公式(1),计算每一个所述样本特征向量的哈希值;

其中,h(x)表征哈希值;a表征所述映射向量;x表征样本特征向量;w表征所述预设的区间宽度;b表征预设的偏移量且b∈[0,w)。

在本发明一个实施例中,上述生成索引的过程可以是针对于数据库来完成的。

下面以利用计算的哈希值,为一个图像数据库生成倒排文档索引,同时为图像数据库生成近邻图索引为例,进一步说明索引生成方法,该方法可以包括如下步骤:

步骤301:从图像数据库中提取各个图像样本元的样本特征向量和样本标识;

该步骤提取的图像样本元的样本特征向量可以为色彩、灰度、边缘、纹理以及梯度等参数组成的多维向量矩阵,该样本标识可以是图像样本元在图像数据库中存储的顺序编码。

步骤302:将各个图像样本元的样本特征向量和样本标识组合成原始数据集;

该步骤的组成的原始数据集可以是想对于图像数据库来说的,其包含的内容如下所示:

{(样本标识1),(样本标识2),…,(样本标识i),…}。

在后续步骤中可以直接针对该原始数据集完成索引生成。

步骤303:随机生成n个映射向量;

该步骤中的n不为0,另外,当n不为1时,该步骤随机生成的n个映射向量满足标准正态分布。

该步骤随机生成的映射向量的维度与上述步骤提取的样本特征向量维度相同。如果将上述步骤提取的各个样本特征向量看作空间中的各个数据点,则该步骤生成的映射向量则为空间中的有向线段。上述图2已经进行了相应的描述,在此不再赘述。

步骤304:根据预设的区间宽度,将所述映射向量划分为至少两个区间;

步骤305:从所述映射向量的起始位置,为每一个所述区间进行顺序编号,确定每一个所述区间的编号为对应的所述区间标识;

步骤304和步骤305为一个映射向量a划分出的区间如图4所示,从图中可以看出每一个区间的宽度一致均为w,区间标识则是从所述映射向量的起始位置,为每一个所述区间进行顺序编号,该编号从0开始。对于步骤302生成的n个映射向量来说,每一个映射向量均包括区间标识为0,1,2,…,i,…的区间。

步骤306:针对每一个映射向量,执行:基于所述映射向量,计算每一个所述样本特征向量的哈希值;

该步骤的计算哈希值可以通过下述计算公式(1)得到:

其中,h(x)表征哈希值;a表征所述映射向量;x表征样本特征向量;w表征所述预设的区间宽度;b表征预设的偏移量且b∈[0,w)。

例如:当a表征的是映射向量P时,则该步骤计算得到的各个样本特征向量哈希值是针对映射向量P来说的;当a表征的是映射向量Q时,则该步骤计算得到的各个样本特征向量哈希值是针对映射向量Q来说的。

步骤307:针对每一个所述样本标识,执行:当所述样本标识对应的所述样本特征向量的哈希值与当前区间标识一致时,将所述样本标识分配给所述当前区间标识;

例如:基于映射向量P,计算各个样本特征向量的哈希值,其中,计算出的样本特征向量1的哈希值为0,则将样本特征向量1对应的样本标识1分配给映射向量P中区间标识0的区间,通过计算每一个样本特征向量的哈希值,则可以使每一个样本标识分配给对应的区间标识,则可为映射向量P生成对应的倒排文档索引如图5所示。从图5中可以看出,一个倒排文档索引由一个映射向量对应的多个具有区间标识的区间以及存储于区间桶中的样本标识所组成,该倒排文档索引结构比较简单。

步骤308:为每一个映射向量生成对应的倒排文档索引;

步骤302生成的n个映射向量则对应n个倒排文档索引,而每个映射向量的方向有所差异,使得,同一个样本特征向量,相对于不同的映射向量,其哈希值可能不同,即同一个样本标识,在不同的映射向量中可以在不同的区间标识下。通过为每一个映射向量生成对应的倒排文档索引,使在后续检索过程中,能够从不同的角度进行检索,使检索更加完整。

步骤309:针对每一个所述样本特征向量,执行:为所述样本特征向量查找至少一个近邻样本特征向量;

步骤310:从所述样本特征向量开始,向每一个所述近邻样本特征向量绘制对应的有向边,形成所述样本特征向量的近邻图索引。

步骤309和步骤310为每一个样本特征向量形成对应的近邻图索引,以方便后续检索过程中能够直接通过该近邻图索引检索到近邻样本数据元。该步骤309和步骤310形成的近邻图索引如图6所示,从图中可以看出,样本特征向量1通过有向边指向近邻样本特征向量分别为10,20,30,40,50等,那么,在后续检索的过程中,可以通过该有向边直接检索到样本特征向量1的近邻样本特征向量分别为10,20,30,40,50等。

除了上述实施例提及的图像数据元之外,本发明实施例提供的索引生成方法还可以为音频数据元、视频数据元等多媒体数据以及文档数据元单独生成对应的索引,另外,还可以为多种模态的数据生成混用的索引。也就是说,本发明实施例提供的索引生成方法可以为具有音频数据的数据库生成索引,也可以为具有视频数据的数据库生成索引,还可以为文档数据的数据库生成对应的索引。还可以为即具有音频数据、视频数据等多媒体数据,又具有文档数据的数据库生成对应的索引。本发明实施例生成的索引可通过索引标识以及近邻图索引的有向边进行检索,而无须直接对比数据间的特征向量,则不仅可以实现同一模态数据检索,还可实现跨模态数据检索。

上述步骤303至步骤308是倒排文档索引生成过程,步骤309和步骤310为近邻图索引形成过程,该两个过程并没有严格的先后顺序,即步骤309和步骤310可以在步骤303至步骤308中任意步骤之前或之后完成。

如图7所示,本发明实施例提供一种数据检索方法,该方法可以包括如下步骤:

步骤701:为至少两个样本数据元生成至少一个近邻图索引和至少一个倒排文档索引;

步骤702:当接收到检索信息时,提取所述检索信息包含的检索特征向量;

步骤703:针对每一个所述倒排文档索引,执行:基于所述倒排文档索引,计算所述检索特征向量对应的哈希值;利用所述检索特征向量对应的哈希值、所述倒排文档索引以及所述至少一个近邻图索引,进行检索。

上述步骤701可以通过上述实施例给出的索引生成方法实现。

在本发明一个实施例中,为了使检索过程比较准确,上述步骤703中计算所述检索特征向量对应的哈希值的具体实施方式可以包括:根据下述计算公式(2),计算所述检索特征向量对应的哈希值;

其中,f(y)表征所述检索特征向量对应的哈希值;βi表征倒排文档索引i对应的映射向量;y表征所述检索特征向量;w表征所述倒排文档索引对应的区间宽度;δ表征为所述检索特征向量预设的偏移量。该计算公式(2)中各个参数可以与上述索引生成过程中计算公式(1)中的各个参数一致,使索引生成与检索过程一致,从而使检索更加准确。

在本发明一个实施例中,为了能够使检索结果更加准确,上述检索方法可进一步包括:为每一个所述样本数据元设置碰撞计数器,并设置所述碰撞计数器初始值为零;在步骤702之后可进一步包括:根据所述检索特征向量,从所述至少两个样本数据元中,筛选出候选集,其中,所述候选集包括至少一个样本数据元;步骤703的一种可选的实施方式可以包括:在所述倒排文档索引中,筛选出与所述哈希值一致的目标区间标识;提取所述目标区间标识对应的至少一个目标样本数据元;利用所述至少一个目标样本数据元,更新所述候选集,并通过所述碰撞计数器为每一个所述目标样本数据元进行计数加一;根据更新后的候选集中每一个样本数据元的近邻图索引以及更新后的候选集中每一个样本数据元的计数结果,确定至少一个目标近邻样本数据元;计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;根据每一个所述目标近邻样本数据元与所述检索信息的欧式距离,输出检索结果。

例如:为检索信息S检索相关数据,则:

首选,为检索信息S初步筛选出候选集C,该候选集是为检索信息初步筛选的一些数据的样本特征向量和样本标识,以初步缩小检索范围;

其次,针对每一个映射向量,通过检索信息S的检索特征向量计算哈希值如计算出检索信息S相对于映射向量P的哈希值为1,则在映射向量对应的倒排文档索引中查找区间标识为1的区间内存储的样本标识,由于样本标识与样本数据元具有直接的对应关系,则查找到区间标识为1的区间内存储的样本标识相当于查找到样本数据元例如区间标识1下的样本数据元组合成为索引集Ci

再次,针对每一个映射向量对应的索引集,执行:将候选集C与索引集Ci合并即C∪Ci,并将索引集Ci中的每一个样本数据元对应的计数器进行加1。由于对于每一个映射向量对应一个索引集Ci,上述候选集C与索引集Ci合并的次数与映射向量个数相同,每进行一次合并相应的样本数据元对应的计数器都会进行计数加1。例如:2个映射向量分别对应的索引集为C1和C2,其中,C1中包含的样本数据元为{Y1,Y2,Y3,Y4},C2中包含的样本数据元为{Y1,Y2,Y4,Y6},则在将C1与C合并成为D时,为Y1,Y2,Y3,Y4分别进行计数加1,在将C2与D合并时,再次为Y1,Y2,Y4,Y6分别进行计数加1;则经过上述C1与C合并成为D和将C2与D合并之后,样本数据元Y1,Y2和Y4计数结果为2,Y3和Y6的计数结果为1。

在本发明一个实施例中,上述步骤703的一种实施方式可包括:

针对更新后的候选集中每一个样本数据元,执行N1至N3:

N1:利用近邻图索引,查找所述样本数据元的至少一个初始近邻样本数据元;

N2:按照计数的由大到小,从所述至少一个初始近邻样本数据元中,筛选出预设个数的初始近邻样本数据元;

N3:将筛选出的预设个数的初始近邻样本数据元对应的计数累加到所述样本数据元的计数上,统计所述样本数据元的计数累加结果;

按照所述更新后的候选集中每一个样本数据元的计数累加结果由大到小的顺序,选定预设近邻个数的样本数据元为所述目标近邻样本数据元。

例如:更新后的候选集中包含有样本数据元{Y1,Y2,Y3,Y4,Y6,Y8,Y9,Y10},其中,样本数据元Y1,Y2及Y4的计数为2,样本数据元Y3,Y6,Y8和Y9计数为1,Y10计数为0;通过上述索引生成方法生成的近邻图索引,查找到样本数据元Y1的近邻样本数据元为Y2,Y3和Y4,则将Y2,Y3和Y4对应的计数累加到Y1的计数上即2+2+1+2=7,然后依次将Y2,Y3,Y4,Y6,Y8,Y9及Y10各自对应的近邻样本数据元的计数累加到自身计数上,则计数结果为经过近邻样本数据元计数累加后的结果,从而进一步增大更新后的候选集中各个样本数据元计数结果的差异。

则根据更新后的候选集中每一个样本数据元的计数结果,确定至少一个目标近邻样本数据元的一种实施方式可以包括:按照计数结果由大到小的顺序,选择计数最大的G个样本数据元为目标近邻样本数据元,该G可以由用户设定。

在本发明一个实施例中,上述计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离的过程可以通过下述计算公式(3)实现:

其中,d表征所述目标近邻样本数据元与所述检索信息的欧式距离;表征所述检索信息对应的检索特征向量中的第i个分向量;γi表征所述目标近邻样本数据元对应的样本特征向量中的第i个分向量。

在本发明一个实施例中,根据每一个所述目标近邻样本数据元与所述检索信息的欧式距离,输出检索结果的一种实现方式可以为:选取欧式距离最小的k个样本数据元为最终的输出结果,该k可以是用户设定值。

下面以为检索信息A检索相关的图像为例,进一步说明数据检索方法,该方法可以不包括如下步骤:

步骤801:为至少两个样本数据元生成至少一个倒排文档索引和近邻图索引;

该步骤生成倒排文档索引和近邻图索引的过程可以为预先完成的,其具体生成过程可以通过上述实施例提供的索引生成方法实现。

步骤802:确定检索信息A检索的数据库,并为数据库中的每一个样本数据元设置碰撞计数器,并设置所述碰撞计数器初始值为零;

例如:在该步骤中,为检索信息A确定出要从数据库1和数据库2中检索相关的图像,则为数据库1和数据库2中的各个数据元设置碰撞计数器,同时初始化计数器初始值为零。

步骤803:当接收到检索信息A时,提取所述检索信息包含的检索特征向量f;

步骤804:根据检索特征向量f,从所述至少两个样本数据元中,筛选出候选集,其中,所述候选集包括至少一个样本数据元;

该过程主要是进行一个初步的筛选,即为检索信息A在数据库1和数据库2中初步筛选出比较大范围的相关的图像,该筛选出来的图像组成一个候选集如图9所示,候选集C中有从数据库1和数据库2中初步筛选出比较大范围的相关的图像样本数据元即图9中位于候选集C中的点。

步骤805:针对每一个所述倒排文档索引,执行:基于所述倒排文档索引,计算所述检索特征向量对应的哈希值;

该步骤的计算过程可以通过计算公式(2)实现:

其中,f(y)表征所述检索特征向量对应的哈希值;βi表征倒排文档索引i对应的映射向量;y表征所述检索特征向量;w表征所述倒排文档索引对应的区间宽度;δ表征为所述检索特征向量预设的偏移量。

在上述实施例中已经提及一个数据库可以对应多个倒排文档索引,该步骤针对每一个倒排文档索引计算哈希值,可以从不同角度完成检索,从而保证检索的完整性。

步骤806:在倒排文档索引中,筛选出与所述哈希值一致的目标区间标识;

步骤807:提取所述目标区间标识对应的至少一个目标样本数据元;

由于上述索引生成过程已经提及在每一个区间标识对应的区间存储有样本标识,而通过样本标识可以直接查找到数据库中对应的样本数据元,例如:通过步骤806和步骤807,在倒排文档索引a中筛选出与哈希值1一致的区间标识1,而在该区间标识1下存储的所有样本标识对应的样本数据元则为步骤807提及的目标样本数据元。

步骤808:利用至少一个目标样本数据元,更新候选集,并通过碰撞计数器为每一个目标样本数据元进行计数加一;

该步骤的更新过程为每一个倒排文档索引对应的至少一个目标样本数据元顺序并入到候选集中,如图9所示,通过倒排文档索引a选出的至少一个目标样本数据元可以组合成索引集C1,该更新候选集的过程则是新的候选集D=C∪C1的过程,则对C1中的样本数据元进行计数加1;然后,倒排文档索引h选出的至少一个目标样本数据元可以组合成索引集C2,该更新候选集的过程则是新的候选集F=D∪C2的过程,则对C2中的样本数据元进行计数加1;依此类推,直至所有的倒排文档索引对应的至少一个目标样本数据元均顺序并入到候选集中。当一个样本数据元出现在多个索引集中时,该样本数据元的计数则较大。

步骤809:通过近邻图索引,查找更新后的候选集中每一个样本数据元的g个近邻样本数据元;

该步骤主要是通过近邻图索引中的有向边直接搜索到近邻样本数据元,而该g个可以是用户设定的。

步骤810:将g个近邻样本数据元的计数累加到对应的样本数据元的计数上;

例如:通过上述实施例提及的索引生成方法生成的近邻图索引,查找到样本数据元Y1的近邻样本数据元为Y2,Y3和Y4,其中,Y2,Y3和Y4的计数分别为2,1,2,则将Y2,Y3和Y4对应的计数累加到Y1的计数上即2+2+1+2=7。

步骤811:按照累加计数由大到小的顺序,选取N个目标近邻样本数据元;

步骤812:计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;

该步骤的计算可以通过下述计算公式(3)实现:

其中,d表征所述目标近邻样本数据元与所述检索信息的欧式距离;表征所述检索信息对应的检索特征向量中的第i个分向量;γi表征所述目标近邻样本数据元对应的样本特征向量中的第i个分向量。

步骤813:选取欧式距离最小的k个目标近邻样本数据元为检索信息A的检索结果,并输出。

该步骤的k也可以为用户根据需求设定。

除了上述实施例提及的检索图像之外,本发明实施例提供的检索方法还可以用来检索音频、视频等多媒体数据以及文本文档数据等,另外,检索的过程还可以进行跨模态检索。

另外,在进行数据检索过程中,上述索引生成过程可以是预先完成的,那么,在每次检索时,直接查询索引即可即直接执行步骤702或步骤802;还可以是每次进行数据检索时生成,即在每次数据检索时,均需要先执行上述步骤101至步骤105或者步骤301至步骤310,然后执行步骤701至步骤703或者执行步骤801至步骤813。

如图10所示,本发明实施例提供一种索引生成装置,包括:

样本提取单元1001,用于提取每一个样本数据元的样本特征信息,所述样本特征信息,包括:样本特征向量和样本标识;

映射向量生成单元1002,用于随机生成至少一个映射向量;

索引生成单元1003,用于为所述样本提取单元提取出的每一个所述样本特征向量生成对应的近邻图索引,并针对所述映射向量生成单元生成的每一个所述映射向量,执行:根据预设的区间宽度,将所述映射向量划分为至少两个区间,并为每一个所述区间分配对应的区间标识;将所述样本提取单元提取出的每一个所述样本特征向量映射到所述映射向量;根据映射的结果,将所述样本提取单元提取出的每一个所述样本标识分配给相关的所述区间标识,生成倒排文档索引。

在本发明另一实施例中,索引生成单元1003,进一步用于针对样本提取单元1001提取出的每一个所述样本特征向量,执行:为所述样本特征向量查找至少一个近邻样本特征向量;从所述样本特征向量开始,向每一个所述近邻样本特征向量绘制对应的有向边,形成所述样本特征向量的近邻图索引。

如图11所示,本发明实施例提供一种数据检索装置,包括:索引生成单元1101、检索特征提取单元1102和数据检索单元1103,其中,

所述索引生成单元1101,用于利用上述任一所述的索引生成方法为至少两个样本数据元生成至少一个近邻图索引和至少一个倒排文档索引;

所述检索特征提取单元1102,用于当接收到检索信息时,提取所述检索信息包含的检索特征向量;

所述数据检索单元1103,用于针对所述索引生成单元1101生成的每一个所述倒排文档索引,执行:基于所述倒排文档索引,计算所述检索特征提取单元1102提取出的检索特征向量对应的哈希值;根据所述检索特征向量对应的哈希值和所述倒排文档索引,进行检索。

在本发明另一实施例中,所述数据检索单元,用于根据下述计算公式(2),计算所述检索特征向量对应的哈希值;

其中,f(y)表征所述检索特征向量对应的哈希值;βi表征倒排文档索引i对应的映射向量;y表征所述检索特征向量;w表征所述倒排文档索引对应的区间宽度;δ表征为所述检索特征向量预设的偏移量。

在本发明又一实施例中,所述索引生成单元,进一步用于针对每一个所述样本特征向量,执行:为所述样本特征向量查找至少一个近邻样本特征向量;从所述样本特征向量开始,向每一个所述近邻样本特征向量绘制对应的有向边,形成所述样本特征向量的近邻图索引。

在本发明又一实施例中,上述检索装置,进一步包括:设置单元和候选集筛选单元(图中未示出),其中,

所述设置单元,用于为每一个所述样本数据元设置碰撞计数器,并设置所述碰撞计数器初始值为零;

所述候选集筛选单元,用于根据所述检索特征提取单元提取出的检索特征向量,从所述至少两个样本数据元中,筛选出候选集,其中,所述候选集包括至少一个样本数据元;

所述数据检索单元1003,用于在所述倒排文档索引中,筛选出与所述哈希值一致的目标区间标识;提取所述目标区间标识对应的至少一个目标样本数据元;利用所述至少一个目标样本数据元,更新所述候选集,并通过所述碰撞计数器为每一个所述目标样本数据元进行计数加一;根据更新后的候选集中每一个样本数据元的近邻图索引以及更新后的候选集中每一个样本数据元的计数结果,确定至少一个目标近邻样本数据元;计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;根据每一个所述目标近邻样本数据元与所述检索信息的欧式距离,输出检索结果。

在本发明又一实施例中,所述数据检索单元,用于根据下述计算公式(3),计算每一个所述目标近邻样本数据元与所述检索信息的欧式距离;

其中,d表征所述目标近邻样本数据元与所述检索信息的欧式距离;表征所述检索信息对应的检索特征向量中的第i个分向量;γi表征所述目标近邻样本数据元对应的样本特征向量中的第i个分向量。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明还提供了一种计算机存储介质,存储用于使一机器执行如本文所述的程序代码的审核方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

根据上述方案,本发明的各实施例,至少具有如下有益效果:

1.通过提取每一个样本数据元的样本特征信息,所述样本特征信息,包括:样本特征向量和样本标识;随机生成至少一个映射向量;针对每一个所述映射向量,执行:根据预设的区间宽度,将所述映射向量划分为至少两个区间,并为每一个所述区间分配对应的区间标识;将每一个所述样本特征向量映射到所述映射向量;根据映射的结果,将每一个所述样本标识分配给相关的所述区间标识,生成倒排文档索引,通过上述生成倒排文档索引的过程,相当于利用倒排文档索引对样本数据元进行了分类,在进行数据检索过程中,基于倒排文档索引进行数据检索的过程,是利用倒排文档索引给出的区间标识直接获得与检索信息相关性比较大的样本数据元,从而能够有效地提高检索效率。

2.通过为每一个样本特征向量查找至少一个近邻样本特征向量;从所述样本特征向量开始,向每一个所述近邻样本特征向量绘制对应的有向边,形成所述样本特征向量的近邻图索引,那么,在进行检索时,可以直接根据该近邻图索引的有向边查找到近邻样本数据元,进一步提高检索的效率。

3.通过基于所述映射向量,计算每一个所述样本特征向量的哈希值;针对每一个所述样本标识,执行:当所述样本标识对应的所述样本特征向量的哈希值与当前区间标识一致时,将所述样本标识分配给所述当前区间标识,即哈希值与区间标识一致,使得在检索过程中能够快速的从倒排文档索引中检索到有用的样本数据元,而避免了一些无关的样本数据元的干扰。

4.通过随机生成多个映射向量,可以从不同的角度生成对应的倒排文档索引,那么,在检索的过程中通过检索不同的角度倒排文档索引,使检索结果更加完整。

5.通过为检索信息预筛选出候选集,并将从每一个倒排文档索引筛选出来的索引集合并入候选集,并以合并后的候选集为基础进行检索,进一步保证了检索的完整性。

6.通过计算每一个目标近邻样本数据元与检索信息的欧式距离,选取欧式距离较小的一些作为输出结果,保证了检索结果的准确性。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1