基于图神经网络的哈希检索方法、装置、终端及存储介质转让专利

申请号 : CN202111199103.1

文献号 : CN113886607B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张正王荐宁卢光明

申请人 : 哈尔滨工业大学(深圳)

摘要 :

本发明公开了基于图神经网络的哈希检索方法、装置、终端及存储介质,方法包括:在样本数据集中选取至少一个样本数据;将目标样本数据分别输入至第一特征提取网络和第二特征提取网络,获取目标样本数据的第一特征和第二特征;根据目标样本数据的隐空间编码获取重构特征;根据目标样本数据的隐空间编码以及各个目标样本数据之间的相似性参数构建目标图,通过图神经网络获取目标样本数据的哈希码;根据各个目标样本数据之间的相似性参数、目标样本数据的哈希码、第二特征、第一特征和重构特征对第一特征提取网络的参数和每个隐空间编码进行更新;根据参数收敛后的第一特征提取网络获取待检索数据的哈希码。本发明能够提升哈希检索的性能。

权利要求 :

1.一种基于图神经网络的哈希检索方法,其特征在于,所述方法包括:

在样本数据集中选取至少一个样本数据,得到目标训练批次;

将每个目标样本数据输入至第一特征提取网络,获取每个所述目标样本数据分别对应的第一特征,将每个所述目标样本数据的标签向量输入至第二特征提取网络,获取每个所述目标样本数据分别对应的第二特征,其中,所述目标样本数据为所述目标训练批次中的样本数据;

对每个所述目标样本数据分别对应的隐空间编码进行特征重构,得到每个所述目标样本数据分别对应的重构特征;

根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,将所述目标图输入至图神经网络,通过所述图神经网络获取每个所述目标样本数据分别对应的目标特征,根据每个所述目标样本数据分别对应的所述目标特征获取每个所述目标样本数据分别对应的哈希码;

根据各个所述目标样本数据之间的相似性参数、每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新;

重复执行所述在样本数据集中选取至少一个样本数据,得到目标训练批次的步骤,直至所述第一特征提取网络的参数收敛,根据参数收敛后的所述第一特征提取网络获取待检索数据的哈希码。

2.根据权利要求1所述的基于图神经网络的哈希检索方法,其特征在于,所述根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,包括:将每个所述目标样本数据分别对应的所述隐空间编码作为所述目标图的各个顶点的顶点特征;

根据各个所述目标样本数据之间的相似性参数确定所述目标图中的各个连接边,以及每个连接边对应的边权重。

3.根据权利要求1所述的基于图神经网络的哈希检索方法,其特征在于,所述根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,包括:将每个所述目标样本数据分别对应的所述隐空间编码以及所述样本数据集中其他样本数据分别对应的所述隐空间编码作为所述目标图中的各个顶点的顶点特征;

根据所述样本数据集中各个样本数据之间的相似性参数确定所述目标图中的各个连接边,以及每个连接边对应的边权重。

4.根据权利要求1所述的基于图神经网络的哈希检索方法,其特征在于,所述根据每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新,包括:根据每个所述目标样本数据分别对应的哈希码和所述第一特征确定第一损失;

根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失;

根据每个所述目标样本数据分别对应的所述重构特征、所述第一特征和所述第二特征确定第三损失;

根据所述第一损失、所述第二损失和所述第三损失确定所述目标训练批次对应的训练损失;

根据所述目标训练批次对应的训练损失对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新。

5.根据权利要求4所述的基于图神经网络的哈希检索方法,其特征在于,所述根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失,包括:获取各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数;

获取所述样本数据集中其余的样本数据对应的所述第一特征;

根据各个所述目标样本数据之间的相似性参数、各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数、每个所述目标样本数据对应的所述第一特征和所述样本数据集中其余的样本数据对应的所述第一特征确定所述第二损失。

6.根据权利要求4所述的基于图神经网络的哈希检索方法,其特征在于,所述根据所述第一损失、所述第二损失和所述第三损失确定所述目标训练批次对应的训练损失,包括:将各个所述目标样本数据对应的所述第一特征输入至分类网络,获取每个所述目标样本数据对应的预测标签;

根据每个所述目标样本数据分别对应的所述标签向量和所述预测标签确定第四损失;

根据所述第一损失、所述第二损失、所述第三损失和所述第四损失确定所述目标训练批次对应的训练损失。

7.根据权利要求4所述的基于图神经网络的哈希检索方法,其特征在于,所述根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失,包括:根据所述目标样本数据之间的相似性参数、每个所述目标样本数据对应的所述哈希码以及每个所述目标样本数据对应的所述第一特征确定所述第二损失。

8.一种基于图神经网络的哈希检索装置,其特征在于,包括:

训练批次确定模块,所述训练批次确定模块用于在样本数据集中选取至少一个样本数据,得到目标训练批次;

特征提取模块,所述特征提取模块用于将每个目标样本数据输入至第一特征提取网络,获取每个所述目标样本数据分别对应的第一特征,将每个所述目标样本数据的标签向量输入至第二特征提取网络,获取每个所述目标样本数据分别对应的第二特征,其中,所述目标样本数据为所述目标训练批次中的样本数据;

隐空间编码模块,所述隐空间编码模块用于对每个所述目标样本数据分别对应的隐空间编码进行特征重构,得到每个所述目标样本数据分别对应的重构特征;

哈希模块,所述哈希模块用于根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,将所述目标图输入至图神经网络,通过所述图神经网络获取每个所述目标样本数据分别对应的目标特征,根据每个所述目标样本数据分别对应的所述目标特征获取每个所述目标样本数据分别对应的哈希码;

参数优化模块,所述参数优化模块用于根据各个所述目标样本数据之间的相似性参数、每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新;

迭代模块,所述迭代模块用于调用所述训练批次确定模块得到目标训练批次,直至所述第一特征提取网络的参数收敛;

检索模块,所述检索模块用于根据参数收敛后的所述第一特征提取网络获取待检索数据的哈希码。

9.一种终端,其特征在于,所述终端包括:处理器、与处理器通信连接的计算机可读存储介质,所述计算机可读存储介质适于存储多条指令,所述处理器适于调用所述计算机可读存储介质中的指令,以执行实现上述权利要求1‑7任一项所述的基于图神经网络的哈希检索方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1‑7任一项所述的基于图神经网络的哈希检索方法的步骤。

说明书 :

基于图神经网络的哈希检索方法、装置、终端及存储介质

技术领域

[0001] 本发明涉及哈希检索技术领域,特别涉及基于图神经网络的哈希检索方法、装置、终端及存储介质。

背景技术

[0002] 相似性搜索作为机器学习、计算机视觉和多媒体的基础。近年来,多媒体数据的巨大的、爆炸性的增长极大地增加了开发多媒体数据的复杂相似性搜索系统的迫切需求。得益于深度神经网络强大的数据表达能力,深度哈希学习的研究在多媒体检索领域取得了显著的进展。
[0003] 但是,现有方法未能充分挖掘视觉特征与语义表示之间的相关性,缺乏对语义与视觉结构相似度保持的深度探索,导致检索性能不高。
[0004] 因此,现有技术还有待改进和提高。

发明内容

[0005] 针对现有技术的上述缺陷,本发明提供一种基于图神经网络的哈希检索方法、装置、终端及存储介质,旨在解决现有技术中哈希检索性能不高的问题。
[0006] 为了解决上述技术问题,本发明所采用的技术方案如下:
[0007] 本发明的第一方面,提供一种基于图神经网络的哈希检索方法,所述方法包括:
[0008] 在样本数据集中选取至少一个样本数据,得到目标训练批次;
[0009] 将每个目标样本数据输入至第一特征提取网络,获取每个所述目标样本数据分别对应的第一特征,将每个所述目标样本数据的标签向量输入至第二特征提取网络,获取每个所述目标样本数据分别对应的第二特征,其中,所述目标样本数据为所述目标训练批次中的样本数据;
[0010] 对每个所述目标样本数据分别对应的隐空间编码进行特征重构,得到每个所述目标样本数据分别对应的重构特征;
[0011] 根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,将所述目标图输入至图神经网络,通过所述图神经网络获取每个所述目标样本数据分别对应的目标特征,根据每个所述目标样本数据分别对应的所述目标特征获取每个所述目标样本数据分别对应的哈希码;
[0012] 根据各个所述目标样本数据之间的相似性参数、每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新;
[0013] 重复执行所述在样本数据集中选取至少一个样本数据,得到目标训练批次的步骤,直至所述第一特征提取网络的参数收敛,根据参数收敛后的所述第一特征提取网络获取待检索数据的哈希码。
[0014] 所述的基于图神经网络的哈希检索方法,其中,所述根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,包括:
[0015] 将每个所述目标样本数据分别对应的所述隐空间编码作为所述目标图的各个顶点的顶点特征;
[0016] 根据各个所述目标样本数据之间的相似性参数确定所述目标图中的各个连接边,以及每个连接边对应的边权重。
[0017] 所述的基于图神经网络的哈希检索方法,其中,所述根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,包括:
[0018] 将每个所述目标样本数据分别对应的所述隐空间编码以及所述样本数据集中其他样本数据分别对应的所述隐空间编码作为所述目标图中的各个顶点的顶点特征;
[0019] 根据所述样本数据集中各个样本数据之间的相似性参数确定所述目标图中的各个连接边,以及每个连接边对应的边权重。
[0020] 所述的基于图神经网络的哈希检索方法,其中,所述根据每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新,包括:
[0021] 根据每个所述目标样本数据分别对应的哈希码和所述第一特征确定第一损失;
[0022] 根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失;
[0023] 根据每个所述目标样本数据分别对应的所述重构特征、所述第一特征和所述第二特征确定第三损失;
[0024] 根据所述第一损失、所述第二损失和所述第三损失确定所述目标训练批次对应的训练损失;
[0025] 根据所述目标训练批次对应的训练损失对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新。
[0026] 所述的基于图神经网络的哈希检索方法,其中,所述根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失,包括:
[0027] 获取各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数;
[0028] 获取所述样本数据集中其余的样本数据对应的所述第一特征;
[0029] 根据各个所述目标样本数据之间的相似性参数、各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数、每个所述目标样本数据对应的所述第一特征和所述样本数据集中其余的样本数据对应的所述第一特征确定所述第二损失。
[0030] 所述的基于图神经网络的哈希检索方法,其中,所述根据所述第一损失、所述第二损失和所述第三损失确定所述目标训练批次对应的训练损失,包括:
[0031] 将各个所述目标样本数据对应的所述第一特征输入至分类网络,获取每个所述目标样本数据对应的预测标签;
[0032] 根据每个所述目标样本数据分别对应的所述标签向量和所述预测标签确定第四损失;
[0033] 根据所述第一损失、所述第二损失、所述第三损失和所述第四损失确定所述目标训练批次对应的训练损失。
[0034] 所述的基于图神经网络的哈希检索方法,其中,所述根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失,包括:
[0035] 根据所述目标样本数据之间的相似性参数、每个所述目标样本数据对应的所述哈希码以及每个所述目标样本数据对应的所述第一特征确定所述第二损失。
[0036] 本发明的第二方面,提供一种基于图神经网络的哈希检索装置,包括:
[0037] 训练批次确定模块,所述训练批次确定模块用于在样本数据集中选取至少一个样本数据,得到目标训练批次;
[0038] 特征提取模块,所述特征提取模块用于将每个目标样本数据输入至第一特征提取网络,获取每个所述目标样本数据分别对应的第一特征,将每个所述目标样本数据的标签向量输入至第二特征提取网络,获取每个所述目标样本数据分别对应的第二特征,其中,所述目标样本数据为所述目标训练批次中的样本数据;
[0039] 隐空间编码模块,所述隐空间编码模块用于对每个所述目标样本数据分别对应的隐空间编码进行特征重构,得到每个所述目标样本数据分别对应的重构特征;
[0040] 哈希模块,所述哈希模块用于根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,将所述目标图输入至图神经网络,通过所述图神经网络获取每个所述目标样本数据分别对应的目标特征,根据每个所述目标样本数据分别对应的所述目标特征获取每个所述目标样本数据分别对应的哈希码;
[0041] 参数优化模块,所述参数优化模块用于根据各个所述目标样本数据之间的相似性参数、每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新;
[0042] 迭代模块,所述迭代模块用于调用所述训练批次确定模块得到目标训练批次,直至所述第一特征提取网络的参数收敛;
[0043] 检索模块,所述检索模块用于根据参数收敛后的所述第一特征提取网络获取待检索数据的哈希码。
[0044] 本发明的第三方面,提供一种终端,所述终端包括处理器、与处理器通信连接的计算机可读存储介质,所述计算机可读存储介质适于存储多条指令,所述处理器适于调用所述计算机可读存储介质中的指令,以执行实现上述任一项所述的基于图神经网络的哈希检索方法的步骤。
[0045] 本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一项所述的基于图神经网络的哈希检索方法的步骤。
[0046] 与现有技术相比,本发明提供了一种基于图神经网络的哈希检索方法、装置、终端及存储介质,所述的基于图神经网络的哈希检索方法,通过将样本数据输入至第一特征提取网络提取样本数据的第一特征,通过将样本数据的标签向量输入至第二特征提取网络提取样本数据的第二特征,根据样本数据之间的相似性参数和样本数据的隐空间编码构建目标图,并通过图神经网络来得到样本数据对应的哈希码,并最终采用对隐空间编码进行重构后得到的重构特征、样本数据对应的第一特征、第二特征和哈希码来更新样本数据对应的隐空间编码和第一特征提取网络的参数,对于图像数据来说,能够使得样本数据的隐空间编码能够反映数据的视觉特征和语义特征的底层公共表示,本发明提供的基于图神经网络的哈希检索方法中,还根据样本数据的隐空间编码以及样本数据之间的相似性构建图,并输入至图神经网络来得到样本数据的哈希码,通过图神经网络对融合特征进行加强,并在哈希学习的过程中保持数据间的内在语义关联,使得第一特征提取网络在进行特征转换时能够实现数据的语义相似性保持,提升哈希检索的性能。

附图说明

[0047] 图1为本发明提供的基于图神经网络的哈希检索方法的实施例的流程图;
[0048] 图2为本发明提供的基于图神经网络的哈希检索方法的实施例中基于图神经网络的哈希检索网络的架构示意图;
[0049] 图3为本发明提供的基于图神经网络的哈希检索装置的实施例的结构原理图;
[0050] 图4为本发明提供的终端的实施例的原理示意图。

具体实施方式

[0051] 为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0052] 本发明提供的基于图神经网络的哈希检索方法,可以应用于具有计算能力的终端中,终端可以执行本发明提供的基于图神经网络的哈希检索方法进行哈希检索,终端可以但不限于是各种计算机、移动终端、智能家电、可穿戴式设备等。
[0053] 实施例一
[0054] 如图1所示,所述基于图神经网络的哈希检索方法的一个实施例中,包括步骤:
[0055] S100、在样本数据集中选取至少一个样本数据,得到目标训练批次。
[0056] 所述样本数据集中包括多个样本数据,样本数据可以为图像数据、音频数据等。下面以样本数据为图像为例进行说明,在哈希检索中,需要将高维的原始图像映射到一个低维的二进制哈希编码空间,即得到图像对应的哈希码,利用二进制编码的特征可以快读计算得到图像之间的相似度,从而实现大规模数据集上的快速检索,而哈希检索的准确性在于对于需要得到能够保持图像原始语义和相似性的哈希码,即两张内容上相似的图片的哈希码要具有相似性,越相似的图片,哈希码之间的汉明距离也要越小。在本实施例提供的基于图神经网络的哈希检索方法中,在训练过程中通过样本数据集确定第一特征提取网络的参数,在训练完成后,执行哈希检索时,通过训练完成后的第一特征提取网络来获取待检索数据的哈希码,在训练过程中,要使得第一特征提取网络能够实现对原始图像的语义相似性保持,即对于越相似的图像,通过第一特征提取网络提取的特征也越相似。
[0057] S200、将每个目标样本数据输入至第一特征提取网络,获取每个所述目标样本数据分别对应的第一特征,将每个所述目标样本数据的标签向量输入至第二特征提取网络,获取每个所述目标样本分别对应的第二特征,其中,所述目标样本数据为所述目标训练批次中的样本数据。
[0058] 每个所述目标样本数据的标签向量是预先标注得到的,具体地,可以预先设置多个类别,当样本数据属于某一类时,则将该类别对应的位置的值设为1,否则为0,可以用lic×1∈{0,1} 表示样本数据oi对应的样本标签向量,其中c表示类别的数量,li中包括c个值,每个值可以表示为lik,每个值对应一个类别,如果oi属于第k类,那么lik=1,否则lik=0。
[0059] 如图2所示,在本实施例中,在每次训练时,将所述目标训练批次中的每个所述目标样本数据分别输入至所述第一特征提取网络以提取所述目标样本数据的数据特征,将每个所述目标样本数据的标签向量分别输入至第二特征提取网络以提取所述目标样本数据的标签语义特征,所述第一特征提取网络和所述第二特征提取网络的结构可以是全连接层和卷积层的结合,本领域技术人员可以理解,可以采用现有的特征提取网络的结构作为所述第一特征提取网络和所述第二特征提取网络的结构,本发明对此不做具体的限定。
[0060] S300、对每个所述目标样本数据分别对应的隐空间编码进行特征重构,得到每个所述目标样本数据分别对应的重构特征。
[0061] 所述目标样本数据对应的所述第一特征反映了所述目标样本数据在视觉空间所对应的特征编码,所述目标样本数据对应的所述第二特征反映了所述目标样本数据在语义空间所对应的特征编码,而这两种特征从根本上来讲是从两种异构视角对图像中特定语义的高阶表示,而两种视角的本质性表征应源于一个共享的潜在底层表示,该共享的潜在底层表示能够描述数据的本质,揭示不同视角下共享的公共底层结构。为了挖掘这个共有的潜在底层表示,在本实施例中,对每个样本数据设置一个隐空间编码,所述隐空间编码可以为一个向量或一个矩阵,当所述目标样本数据被用于训练时,对所述目标样本数据对应的隐空间编码进行特征重构,对所述目标样本数据对应的所述隐空间编码进行重构,可以是通过一个特征重构编码网络来实现。在本实施例中,每个样本数据对应的一个隐空间编码,每个样本数据对应的所述隐空间编码在训练开始前被初始化,在训练开始后,每次投入一个训练批次,该训练批次中包括的样本数据对应的所述隐空间编码被更新,哈希学习的训练过程会进行多轮,每轮中每次学习时在所述样本数据集中确定一个训练批次进行训练,训练完成后更新本次用于学习的训练批次中包括的每个样本数据分别对应的所述隐空间编码,之后在所述样本数据集中确定新的训练批次进行训练,直至所述样本数据集中所有的样本数据都被用于训练后,一轮结束后,所述样本数据集中的每个样本数据对应的所述隐空间编码均会分别被更新一次,在下一轮中,重复多次投入训练批次进行训练,这样,在新的一轮中,每个样本数据对应的所述隐空间编码会再次分别被更新一次。
[0062] 具体地,对所述目标样本数据对应的所述隐空间编码进行特征重构得到重构特征后,采用所述目标样本数据对应的所述重构特征、所述第一特征和所述第二特征来对所述目标样本数据对应的隐空间编码进行更新,以实现所述目标样本数据对应的所述隐空间编码能够反映第一特征和第二特征的共同的潜在底层表示的效果,具体更新方式将在后文被说明。
[0063] S400、根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,将所述目标图输入至图神经网络,通过所述图神经网络获取每个所述目标样本数据分别对应的目标特征,并根据每个所述目标样本数据分别对应的所述目标特征获取每个所述目标样本数据分别对应的哈希码。
[0064] 图神经网络(Graph Neural Networks,GNN)是用于处理图嵌入数据的神经网络,具体地,一个图由顶点集与边集构成,图的邻接矩阵由每条边的权值构成。
[0065] 具体地,所述根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,包括:
[0066] 将每个所述目标样本数据分别对应的所述隐空间编码作为所述目标图的各个顶点的顶点特征;
[0067] 根据各个所述目标样本数据之间的相似性参数确定所述目标图中的各个连接边,以及每个连接边对应的边权重。
[0068] 在一种可能的实现方式中,将每个所述目标样本数据作为所述目标图中的各个顶点,每个所述目标样本数据分别对应的所述隐空间编码为各个顶点的顶点特征,连接各个顶点的连接边由各个所述目标样本数据之间的相似性参数确定,当两个所述目标样本数据之间的相似性参数为0时,这两个所述目标样本数据对应的顶点之间不连接,当两个所述目标样本数据之间的相似性参数大于0时,这两个所述目标样本数据对应的顶点之间连接,这样就定义了一条连接边,而每个连接边对应的边权重是连接点的两个顶点之间的相似性参数。两个样本数据之间的相似性参数可以通过人工标注或者相似性计算方式(例如余弦相似度)计算得到,还可以通过标签对比得到,例如,当两个样本数据拥有同一类标签时,则定义这两个样本数据之间的相似性参数为第一值,否则定义这两个样本数据之间的相似性参数为第二值等等。在很多情况下,通过现实数据能够观察到的连接关系只占一小部分,只根据样本数据之间的相似性参数来确定所述目标图中的连接边可能存在许多顶点相互类似,但互不相连的情况,这就会导致在哈希学习时丢失掉一部分样本数据之间的相似性,因此,在一种可能的实现方式中,可以引入二阶近邻关系来确定各个连接边以及每个连接边对应的边权重,对于那些一阶近邻关系中不相连(相似性参数为0),但是具有共同的近邻节点的两个顶点,根据两个语义相关数据与其他数据具有相同相似关系的原则,计算出高阶邻域描述,得到这两个顶点对应的连接边的边权重。这样,通过一阶近似和二阶近似联合,可以实现网络嵌入中高阶结构相似度保持,进一步地使得相似的数据,能够得到相似的哈希码。
[0069] 在另一种可能的实现方式中,采用非对称相似性保持来得到所述目标样本数据对应的哈希码,即在获取所述目标训练批次中的所述目标样本数据对应的哈希码时,不仅考虑所述目标训练批次中的各个所述目标样本数据之间的相似性,还考虑所述目标训练批次中的各个所述目标样本数据和所述样本数据集中其他样本数据之间的相似性,即所述根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,包括:
[0070] 将每个所述目标样本数据分别对应的所述隐空间编码以及所述样本数据集中其他样本数据分别对应的所述隐空间编码作为所述目标图中的各个顶点的顶点特征;
[0071] 根据所述样本数据集中各个样本数据之间的相似性参数确定所述目标图中的各个连接边,以及每个连接边对应的边权重。
[0072] 根据所述样本数据集中各个样本数据之间的相似性参数确定所述目标图中的各个连接边以及每个连接边对应的边权重,可以使得在获取所述目标样本数据的哈希码反映了所述目标样本数据与所述样本数据集中的其他样本数据之间的相似性,进一步提升哈希学习的高效性。
[0073] 在构建所述目标图时使用的所述样本数据集中其他样本数据分别对应的所述隐空间编码是所述样本数据集中其他样本数据对应的最新的所述隐空间编码。
[0074] 在构建所述目标图后,将所述目标图输入至图神经网络,在所述图神经网络中,通过顶点的特征以及与顶点的近邻顶点的特征和连接边的权重对顶点的特征进行更新计算,最终输出每个所述目标样本数据对应的特征编码,通过所述图神经网络对每个所述目标样本数据的所述隐空间编码进行处理,得到每个所述目标样本数据对应的目标特征,可以直接将所述图神经网络输出的每个所述目标样本数据的所述目标特征作为每个所述目标样本数据的哈希码,也可以将所述图神经网络输出的每个所述目标样本数据的所述目标特征输入至一个二值函数进行二值化处理后得到每个所述目标样本数据的哈希码。
[0075] S500、根据各个所述目标样本数据之间的相似性参数、每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新。
[0076] 所述步骤S500包括子步骤:
[0077] S510、根据每个所述目标样本数据分别对应的哈希码和所述第一特征确定第一损失;
[0078] S520、根据每个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失;
[0079] S530、根据每个所述目标样本数据分别对应的所述重构特征、所述第一特征和所述第二特征确定第三损失;
[0080] S540、根据所述第一损失、所述第二损失和所述第三损失确定所述目标训练批次对应的训练损失;
[0081] S550、根据所述目标训练批次对应的训练损失对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新。
[0082] 在本实施例中,可以是采用端到端的方式进行哈希学习,即每次将一个训练批次投入哈希学习时,采用步骤S100‑S500的方式对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新时,方法中其他的网络的参数(包括所述第二特征提取网络的参数、所述图神经网络的参数、所述特征重构编码网络的参数)可以是同时被更新,或者固定不变,例如可以同时将所述第一特征提取网络的参数、所述第二特征提取网络的参数、所述图神经网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新。
[0083] 根据所述目标训练批次对应的训练损失对网络参数以及所述隐空间编码进行更新时,使求得新的网络参数以及所述隐空间编码使得所述目标训练批次对应的训练损失最小。
[0084] 在本实施例中,基于数据的特征与哈希码之间的量化误差确定第一损失,具体地,对于数据最终对应的哈希码,应使得哈希码能够最大程度地保留数据的原始特征,因此,所述目标训练样本对应的哈希码与所述目标训练样本对应的所述第一特征之间应当尽可能接近,所述第一损失可以是通过计算每个所述目标样本数据分别对应的哈希码和所述第一特征之间的汉明距离来得到。在一种可能的实现方式中,为了进一步地降低量化误差,还可以集合每个所述目标样本数据分别对应的所述第二特征来确定第一损失,即所述第一损失可以是通过计算每个所述目标样本数据分别对应的哈希码和所述第一特征之间的汉明距离以及每个所述目标样本数据分别对应的哈希码和所述第二特征之间的汉明距离来得到。
[0085] 在本实施例中,基于相似度保持来确定第二损失,具体地,对于相似的样本数据,根据所述第一特征网络提取出的所述第一特征也应该是相似的,基于此,通过所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征可以确定第二损失,例如,可以通过计算每个所述目标样本数据对应的所述第一特征之间的相似性参数和所述目标样本数据之间的相似性参数的差异来得到所述第二损失。
[0086] 进一步地,为了使得在学习到所述目标样本数据之间的相似性的同时还学习到所述目标样本数据与其他的样本数据之间的相似性,提升哈希学习的效率,在本实施例中,所述根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失,包括:
[0087] 获取各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数;
[0088] 获取所述样本数据集中其余的样本数据对应的所述第一特征;
[0089] 根据各个所述目标样本数据之间的相似性参数、各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数、每个所述目标样本数据对应的所述第一特征和所述样本数据集中其余的样本数据对应的所述第一特征确定所述第二损失。
[0090] 具体地,各个所述目标样本数据之间的相似性参数和各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数可以预先计算得到,例如采用前文所举例的人工标注、相似度算法以及标签比较的方式得到。所述样本数据集中其余的样本数据对应的所述第一特征可以是将所述样本数据集中其余的样本数据输入至当前的所述第一特征提取网络得到,但是每次采用一个新的训练批次进行哈希学习时,都将所述样本数据集中所有的样本数据输入至当前的所述第一特征提取网络进行计算显然会带来非常大的计算量,而哈希学习的过程分多轮进行,每轮中每次训练时采用一个所述目标训练批次来进行网络参数和所述隐空间参数的更新,每次训练时都会计算当次用于训练的训练批次中的每个样本数据对应的所述第一特征,一轮结束后,可以得到所述样本数据集中所有的样本数据对应的所述第一特征,虽然这些所述第一特征并不是采用同样的网络参数得到的,为了减少计算量,在本轮中计算损失所需要的所述样本数据集中其余的样本数据对应的所述第一特征可以是采用在上一轮中所述样本数据集中其余的样本数据用于训练时计算得到的所述第一特征。
[0091] 在一种可能的实现方式中,为了进一步地实现相似性保持,还需要实现对于相似的样本数据,对应的哈希码也是相似的,即,所述根据各个所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失,包括:
[0092] 根据所述目标样本数据之间的相似性参数、每个所述目标样本数据对应的所述哈希码以及每个所述目标样本数据对应的所述第一特征确定所述第二损失。
[0093] 具体地,可以是根据所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第一分损失,根据所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的哈希码确定第二分损失,再对第一分损失和第二分损失进行融合,得到所述第二损失。
[0094] 得到第一分损失的方式可以采用前文中对根据所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失的说明来得到。得到第二分损失也可以是采用类似的方式,即将前文中对根据所述目标样本数据之间的相似性参数和每个所述目标样本数据对应的所述第一特征确定第二损失的说明中的所述第一特征替换为哈希码来得到。同样地,得到所述第二分损失时也可以是根据所述根据各个所述目标样本数据之间的相似性参数、各个所述目标样本数据与所述样本数据集中其余的样本数据之间的相似性参数、每个所述目标样本数据对应的哈希码和所述样本数据集中其余的样本数据对应的哈希码确定,所述样本数据集中其余的样本数据对应的哈希码可以是采用在前一轮中所述样本数据集中其余的样本数据用于训练时计算得到的哈希码。
[0095] 基于挖掘同质异构视角下语义特征的互补信息来确定第三损失,正如前文所说明的,同一数据对应的所述第一特征和所述第二特征实际上是两种异构视角对于同一数据的不同表示,采用隐空间编码来挖掘这两种不同表示之间的本质性表征,在本实施例中,为了使得所述目标样本数据对应的所述隐空间编码能够反映数据的视觉特征和标签语义特征之间共享的潜在底层表示,根据对所述目标样本数据对应的隐空间编码进行重构得到的重构特征和所述目标样本数据对应的第一特征、所述第二特征来确定第三损失。具体地,可以是根据所述目标样本数据对应的所述重构特征和所述第一特征的差异以及,所述目标样本数据对应的所述重构特征和所述第二特征之间的差异来得到所述第三损失,这样,在使得所述目标训练批次对应的所述训练损失最小的约束下更新网络参数和所述隐空间编码时,可以使得所述目标样本数据对应的所述重构特征和所述第一特征、所述第二特征之间的差异尽可能小,从而实现更新后的所述目标样本数据对应的所述隐空间编码能够更加接近所述目标样本数据的不同视角下的表示之间的共享底层表示。
[0096] 在一种可能的实现方式中,所述第三损失可以表示为:其中,R(E)表示所述第三损
失,E为所述隐空间编码, 用于度量从隐空间编码到观测特征(包括所述第一特征和所述第二特征)之间的重构误差,Fv(X;θv)为在X和θv条件下所述第一特征提取网络的输出,X表示所述目标样本数据,θv为所述第一特征提取网络的参数, 表示隐空间编码E对应的重构特征,Fl(L;θl)为在L和θl条件下所述第二特征提取网络的输出,L表示所述目标样本数据对应的标签向量,θl表示所述第二特征提取网络的参数,α1、α2为权重调节参数。
[0097] 在一种可能的实现方式中,为了进一步地使得生成的哈希码能够实现对原始数据的语义保持,在哈希学习中,还设置有分类网络,并结合所述分类网络的分类损失来获取所述目标训练批次对应的训练损失,具体地,所述根据所述第一损失、所述第二损失和所述第三损失确定所述目标训练批次对应的训练损失,包括:
[0098] 将各个所述目标样本数据对应的所述第一特征输入至分类网络,获取每个所述目标样本数据对应的预测标签;
[0099] 根据每个所述目标样本数据分别对应的所述标签向量和所述预测标签确定第四损失;
[0100] 根据所述第一损失、所述第二损失、所述第三损失和所述第四损失确定所述目标训练批次对应的训练损失。
[0101] 具体地,为了使得生成的哈希码能够实现对原始数据的语义保持,将根据所述第一特征提取网络提取的所述目标样本数据的第一特征输入至分类网络后预测得到的预测标签应与所述目标样本数据的所述标签向量的差异尽可能小,因此,可以根据每个所述目标样本数据分别对应的所述标签向量和所述预测标签之间的差异得到所述第四损失。在增加所述分类网络的情况下,根据所述目标训练批次对应的训练损失更新所述第一特征提取网络和所述隐空间编码进行更新时,也可以同时对所述分类网络的参数进行更新。
[0102] 请再次参阅图1,本实施例提供的基于图神经网络的哈希检索方法,还包括步骤:
[0103] S600、重复执行所述在样本数据集中选取至少一个样本数据,得到目标训练批次的步骤,直至所述第一特征提取网络的参数收敛,根据参数收敛后的所述第一特征提取网络获取待检索数据的哈希码。
[0104] 当所述第一特征提取网络的参数收敛后,结束哈希学习训练,在本实施例中,是在所述第一特征提取网络,每个样本数据对应的所述隐空间编码,以及其他的网络参数都收敛后,结束哈希学习训练。在训练结束后,所述第一特征提取网络的参数固定,在需要获取待检索数据的哈希码时,将所述待检索数据输入至所述第一特征提取网络,获取所述第一特征提取网络输出的特征编码作为所述待检索数据的哈希码,或者,将所述第一特征提取网络输出的特征编码输入至二值函数进行二值化后得到所述待检索数据的哈希码。
[0105] 综上所述,本实施例提供一种基于图神经网络的哈希检索方法,通过过将样本数据输入至第一特征提取网络提取样本数据的第一特征,通过将样本数据的标签向量输入至第二特征提取网络提取样本数据的第二特征,根据样本数据之间的相似性参数和样本数据的隐空间编码构建目标图,并通过图神经网络来得到样本数据对应的哈希码,并最终采用对隐空间编码进行重构后得到的重构特征、样本数据对应的第一特征、第二特征和哈希码来更新样本数据对应的隐空间编码和第一特征提取网络的参数,对于图像数据来说,能够使得样本数据的隐空间编码能够反映数据的视觉特征和语义特征的底层公共表示,而根据样本数据的隐空间编码以及样本数据之间的相似性构建图,并输入至图神经网络来得到样本数据的哈希码,通过图神经网络对融合特征进行加强,并在哈希学习的过程中保持数据间的内在语义关联,使得第一特征提取网络在进行特征转换时能够实现数据的语义相似性保持,提升哈希检索的性能。
[0106] 应该理解的是,虽然本发明说明书附图中给出的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0107] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0108] 实施例二
[0109] 基于上述实施例,本发明还相应提供了一种基于图神经网络的哈希检索装置,如图3所示,所述基于图神经网络的哈希检索装置包括:
[0110] 训练批次确定模块,所述训练批次确定模块用于在样本数据集中选取至少一个样本数据,得到目标训练批次,具体如实施例一中所述;
[0111] 特征提取模块,所述特征提取模块用于将每个目标样本数据输入至第一特征提取网络,获取每个所述目标样本数据分别对应的第一特征,将每个所述目标样本数据的标签向量输入至第二特征提取网络,获取每个所述目标样本数据分别对应的第二特征,其中,所述目标样本数据为所述目标训练批次中的样本数据,具体如实施例一中所述;
[0112] 隐空间编码模块,所述隐空间编码模块用于对每个所述目标样本数据分别对应的隐空间编码进行特征重构,得到每个所述目标样本数据分别对应的重构特征,具体如实施例一中所述;
[0113] 哈希模块,所述哈希模块用于根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,将所述目标图输入至图神经网络,通过所述图神经网络获取每个所述目标样本数据分别对应的目标特征,根据每个所述目标样本数据分别对应的所述目标特征获取每个所述目标样本数据分别对应的哈希码,具体如实施例一中所述;
[0114] 参数优化模块,所述参数优化模块用于根据各个所述目标样本数据之间的相似性参数、每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新,具体如实施例一中所述;
[0115] 迭代模块,所述迭代模块用于调用所述训练批次确定模块得到目标训练批次,直至所述第一特征提取网络的参数收敛,具体如实施例一中所述;
[0116] 检索模块,所述检索模块用于根据参数收敛后的所述第一特征提取网络获取待检索数据的哈希码,具体如实施例一中所述。
[0117] 实施例三
[0118] 基于上述实施例,本发明还相应提供了一种终端,如图4所示,所述终端包括处理器10以及存储器20。图4仅示出了终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0119] 所述存储器20在一些实施例中可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件及各类数据。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有基于图神经网络的哈希检索程序30,该基于图神经网络的哈希检索程序30可被处理器10所执行,从而实现本申请中基于图神经网络的哈希检索方法。
[0120] 所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述基于图神经网络的哈希检索方法等。
[0121] 在一实施例中,当处理器10执行所述存储器20中基于图神经网络的哈希检索程序30时实现以下步骤:
[0122] 在样本数据集中选取至少一个样本数据,得到目标训练批次;
[0123] 将每个目标样本数据输入至第一特征提取网络,获取每个所述目标样本数据分别对应的第一特征,将每个所述目标样本数据的标签向量输入至第二特征提取网络,获取每个所述目标样本数据分别对应的第二特征,其中,所述目标样本数据为所述目标训练批次中的样本数据;
[0124] 对每个所述目标样本数据分别对应的隐空间编码进行特征重构,得到每个所述目标样本数据分别对应的重构特征;
[0125] 根据每个所述目标样本数据分别对应的所述隐空间编码以及各个所述目标样本数据之间的相似性参数构建目标图,将所述目标图输入至图神经网络,通过所述图神经网络获取每个所述目标样本数据分别对应的目标特征,根据每个所述目标样本数据分别对应的所述目标特征获取每个所述目标样本数据分别对应的哈希码;
[0126] 根据各个所述目标样本数据之间的相似性参数、每个所述目标样本数据分别对应的哈希码、所述第二特征、所述第一特征和所述重构特征对所述第一特征提取网络的参数和每个所述目标样本数据分别对应的所述隐空间编码进行更新;
[0127] 重复执行所述在样本数据集中选取至少一个样本数据,得到目标训练批次的步骤,直至所述第一特征提取网络的参数收敛,根据参数收敛后的所述第一特征提取网络获取待检索数据的哈希码。
[0128] 实施例四
[0129] 本发明还提供一种计算机可读存储介质,其中,存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的基于图神经网络的哈希检索方法的步骤。
[0130] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。