技术领域
本发明属于跨模态哈希检索技术领域,尤其涉及一种使用三步策略的在线跨模态检索方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
随着由多种不同模态组成的数据的爆炸式增长,在给定查询语句的条件下,从海量的数据中寻找跨模态的相似信息已称为一项重大挑战。在许多情况下,由于时间和存储空间方面的高度复杂性,传统的最近邻搜索方法并不能带来最优的表现。近年来,近似最近邻搜索(ANN),尤其是哈希学习,引起了广泛的关注,并逐渐替代了传统的最近邻搜索方法。跨模态哈希方法旨在将多种模态的高维数据映射成短字符串的二进制编码的表现形式,并保留原始空间中样本之间的相似性。在海明空间中执行异或(XOR)操作使得从二进制编码中进行搜索变得快速有效。
大多数现有的跨模态哈希方法都是基于批处理的,即用给定的训练数据在一个阶段中学习哈希函数。基于批处理的跨模态哈希方法需要累积所有的数据,并在新数据到来后,只能重新训练哈希函数,这使得它们无法有效地处理流式数据,即数据是以流形式到来的,每轮到来部分数据。另一方面,数据有的时候太大,无法完全加载到内存中。随着数据集越来越大,计算成本可能难以承受,因此,跨模态在线哈希引起了越来越多的关注,但是,仍然需要考虑几个问题:
1)如何充分利用数据中的信息来增强二进制哈希码的编码能力是一个艰巨的挑战。大多数现有的跨模态在线方法仅基于新到达的数据或新数据与现有数据之间的相关性来更新哈希函数,而忽略了全局信息。
2)如何增强模型的适应性,以适应可变长度的标签空间是需要解决的问题,到目前为止,大多数现有的在线方法都隐式地假定标签空间是固定的,即所有类标签都应在第一个数据块中给出。实际上,这种假设可能是太严格的,当新标签出现在新到达的数据块中时,这些方法可能无法有效地更新哈希函数。
发明内容
为克服上述现有技术的不足,本发明提供了一种使用三步策略的在线跨模态检索方法,能够学习更准确的哈希码,有效地更新哈希函数。
为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
第一方面,公开了一种使用三步策略的在线跨模态检索方法,包括:
获取不同模态组成的模拟流数据;
针对模拟流数据,通过引入hadamard矩阵生成每个类标签的表示,并将每个类标签的表示作为用于进行哈希码的学习的全局信息,每个类标签的表示同时保持局部相似性信息,利用模拟流数据中新到达的数据与已有数据之间的相关性来学习更有判别力的哈希码;
其中,通过引入hadamard矩阵生成每个类标签的表示的步骤为:
学习模拟流数据第一轮出现标签的嵌入表示;
由多模态组成的数据以流的方式出现,当前轮有新到来的类时,学习新类的标签嵌入;
新类的标签嵌入被学习到,同时已有类的标签嵌入不变;
更新变量类的标签嵌入;
利用学习的哈希码更新哈希函数;
利用更新的哈希函数计算待检索样本的哈希编码,基于哈希编码计算二进制样本的海明距离,从而根据海明距离来返回与待检索样本相似的另一个模态的样本。
进一步的技术方案,当第t轮新的数据块到达时,若没有新的未见过的类出现,并且所有现有的标签都已经有相应的标签嵌入,在当前轮省略学习新类的标签嵌入的步骤。
进一步的技术方案,进行哈希码的学习的过程中,利用哈希码的内积使用平方损失来近似语义相似度,对第t轮实例对间的语义相似矩阵改写为块矩阵形式,使得在在线场景下可行。
进一步的技术方案,将每个类标签的表示作为用于进行哈希码的学习的全局信息,每个类标签的表示同时保持局部相似性信息的过程中,学习包含大量语义信息的类标签嵌入,构建哈希码学习的总体目标函数,获得其封闭解,直到收敛。
进一步的技术方案,利用学习的哈希码更新哈希函数,具体为:
根据得到的哈希编码,学习新的查询样本的哈希函数,构建学习损失目标函数;
求解学习损失目标函数,学习哈希函数的投影矩阵;
在第t轮,当一个有着第m模态特征向量的新的查询样本到来时,更新第m模态的哈希函数。
进一步的技术方案,基于哈希编码计算二进制样本的海明距离时,计算该待检索样本的哈希编码与训练集的哈希编码之间的海明距离,并对海明距离进行排序;最后,按顺序输出训练集中与待检索样本一致的另一个模态的样本,得到检索结果。
第二方面,公开了基于在线哈希的跨模态检索系统,包括:
模拟流数据获取模块,被配置为:获取不同模态组成的模拟流数据;
哈希码学习模块,被配置为:针对模拟流数据,通过引入hadamard矩阵生成每个类标签的表示,并将每个类标签的表示作为用于进行哈希码的学习的全局信息,每个类标签的表示同时保持局部相似性信息,利用模拟流数据中新到达的数据与已有数据之间的相关性来学习更有判别力的哈希码;
其中,通过引入hadamard矩阵生成每个类标签的表示的步骤为:
学习模拟流数据第一轮出现标签的嵌入表示;
由多模态组成的数据以流的方式出现,当前轮有新到来的类时,学习新类的标签嵌入;
新类的标签嵌入被学习到,同时已有类的标签嵌入不变;
更新变量类的标签嵌入;
哈希函数学习模块,被配置为:利用学习的哈希码更新哈希函数;
检索模块,被配置为:利用更新的哈希函数计算待检索样本的哈希编码,基于哈希编码计算二进制样本的海明距离,从而根据海明距离来返回与待检索样本相似的另一个模态的样本。
进一步的技术方案,所述哈希码学习模块中,当第t轮新的数据块到达时,若没有新的未见过的类出现,并且所有现有的标签都已经有相应的标签嵌入,在当前轮省略学习新类的标签嵌入的步骤。
进一步的技术方案,所述哈希码学习模块中,进行哈希码的学习的过程中,利用哈希码的内积使用平方损失来近似语义相似度,对第t轮实例对间的语义相似矩阵改写为块矩阵形式,使得在在线场景下可行。
进一步的技术方案,所述哈希函数学习模块,利用学习的哈希码更新哈希函数,具体为:
根据得到的哈希编码,学习新的查询样本的哈希函数,构建学习损失目标函数;
求解学习损失目标函数,学习哈希函数的投影矩阵;
在第t轮,当一个有着第m模态特征向量的新的查询样本到来时,更新第m模态的哈希函数。
以上一个或多个技术方案存在以下有益效果:
本发明通过考虑类间的相关性,基于hadamard矩阵学习了标签的嵌入,即全局信息。使用全局信息作为指导信息,THOR即三步在线跨模态哈希方法可以保留更多的语义信息,学习更准确的哈希码。
本发明在哈希码学习阶段,保持新来数据和已有数据间的相似性,并嵌入学到的全局信息,学习更有判别力的哈希码。
到目前为止,大多数现有的在线方法都隐式地假定标签空间是固定的,即所有类标签都应在第一个数据块中给出,当新标签出现在新到达的数据块中时,这些方法可能无法有效地更新哈希函数。本发明明确地设计模型以适应在线跨模态哈希领域中的增量标签空间。
本发明提出的方法的时间复杂度与每轮新到来的数据的大小成线性关系,这使得THOR高效且可扩展。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例方法的流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例公开了一种使用三步策略的在线跨模态检索方法,为三步在线跨模态哈希方法(three-step online crossmodal hashing),简称THOR。THOR通过引入hadamard矩阵(hadamard matrix)生成每个类标签的表示,并将其作为全局信息来指导哈希码的学习,它还保持局部相似性信息,即新到达的数据与已有数据之间的相关性来学习更有判别力的哈希码。此外,基于可学习的类标签嵌入,THOR可以自由适应增量标签空间问题。
为了适应在线检索任务,训练集被分为T轮数据的形式,用于模拟流数据的到来。
具体的,THOR即三步在线跨模态哈希方法,共包含三个步骤:
步骤(1):通过引入hadamard矩阵,学习每个类的标签嵌入,并将其作为全局信息来指导哈希学习;
在该步骤中,学习类标签的嵌入,学习方法是引入hadamard矩阵,利用标签间的两两相关性矩阵,构造损失函数。通过最小化损失函数学习类标签的嵌入表示。
步骤(2):将步骤(1)中学习到的类标签嵌入和实例间的成对相似性一起使用,为第t轮数据学习哈希编码;
在该步骤中,学习哈希码,学习方法是利用第一步学到的标签的嵌入作为全局信息,加上实例间的成对相似度信息,构造损失函数,通过最小化损失函数来学习哈希码。
步骤(3):根据步骤(2)得到的第t轮数据的哈希编码学习哈希函数,用于将原始空间中的特征向量映射为海明空间中的哈希编码;
学习哈希函数,在确定了各实例的特征和哈希码后,学习哈希函数。
步骤(1)的具体过程为:
步骤(1.1):在第一轮,基于hadamard矩阵,学习第一轮出现标签的嵌入表示
通过最小化目标函数,得到第一轮出现的标签的表示,上述约束条件为正交约束,作用是让H包含更多的信息。其中,
其中,
步骤(1.2):由
当第t轮新的数据块到达时,有两种可能出现的情况。一种是没有新的未见过的类出现,即
其中,
其中,常数项已经被省略了。通过公式(4),新类
步骤(1.3):更新变量
其中,
其中,
步骤(2)的具体过程为:
步骤(2.1):为了将原始空间中的语义相似性嵌入到哈希码中,有监督的哈希方法通常在损失函数中考虑监督信息。本发明借助哈希码的内积使用平方损失来近似语义相似度,定义如下:
其中在第t轮,
其中,
步骤(2.2):公式(10)只考虑了新到达数据及新数据与现有数据之间的相关性,而忽略了全局信息。为了解决这个问题,我们引入全局不变信息作为生成新数据的哈希码的指南,即THOR第一步中学习的包含大量语义信息的类标签嵌入。因此,进一步定义如下的优化问题:
步骤(2.3):同时考虑公式(10)和公式(11),可以得到如下的哈希码学习的总体目标函数:
其中,
其中,
步骤(2.4):更新变量
接着,结合约束条件
定义
显然,公式(16)和公式(5)相似,并且找到
其中,
其中,
如果
步骤(2.5):更新变量
其中,
如果
步骤(2.6):t+1轮数据到来,重复步骤(2.1)~(2.5),直到收敛。
步骤(3)的具体过程为:
步骤(3.1):根据第二步得到的哈希编码
其中,
基于在线哈希设置,应该同时考虑新到达的数据和之前累积的已有数据来更新哈希函数。因此,在第t轮,将上述学习损失改写为如下的形式:
步骤(3.2):学习哈希函数的投影矩阵
其中,
为了进一步简化损失,表示
公式(27)可以被改写为如下:
这是一个著名的西尔维斯特(Sylvester)方程,可以通过Bartels-Stewart算法在MATLAB中轻松实现,最终得到哈希函数的投影矩阵
在第t轮,当一个有着第
步骤(4)的具体过程为:
首先,根据公式(30)的哈希函数求得待检索样本的哈希编码;然后,计算该待检索样本的哈希编码与训练集的哈希编码之间的海明距离,并对海明距离进行排序;最后,按顺序输出训练集中与待检索样本一致的另一个模态的样本,得到检索结果。
更为具体的实施例子,参见附图1所示,上述方法包括:
第一步,获取数据集,并将其分为训练集和测试集。为了适应在线检索任务,训练集被分为T轮数据的形式,用于模拟流数据的到来。
第二步,通过引入hadamard矩阵,学习包含大量语义信息的每个类的标签实值嵌入。如果第t轮的标签空间不变,该步可省略。如果第t轮的标签增加,学习新标签的实值嵌入,之前标签的嵌入保持不变。
第三步,在第t轮,类标签嵌入作为全局信息,与实例间的成对语义相似性块矩阵一起使用,来学习第t轮训练数据的哈希码。
第四步,根据第t轮数据的哈希码,分别求取每个模态将特征映射到哈希码的投影矩阵,即哈希函数。
第五步,t+1轮的数据到来,重复第二步至第四步,直至所有训练数据都参与训练。
第六步,计算待检索样本的哈希编码,进一步计算二进制样本的海明距离,从而根据海明距离来返回与待检索样本相似的另一个模态的样本。
实施例二
本实施例的目的是提供基于在线哈希的跨模态检索系统,包括:
模拟流数据获取模块,被配置为:获取不同模态组成的模拟流数据;
哈希码学习模块,被配置为:针对模拟流数据,通过引入hadamard矩阵生成每个类标签的表示,并将每个类标签的表示作为用于进行哈希码的学习的全局信息,同时,每个类标签的表示还保持局部相似性信息,利用模拟流数据中新到达的数据与已有数据之间的相关性来学习更有判别力的哈希码;
其中,通过引入hadamard矩阵生成每个类标签的表示的步骤为:
学习模拟流数据第一轮出现标签的嵌入表示;
由多模态组成的数据以流的方式出现,当前轮有新到来的类时,学习新类的标签嵌入;
新类的标签嵌入被学习到,同时已有类的标签嵌入不变;
更新变量类的标签嵌入;
哈希函数学习模块,被配置为:利用学习的哈希码更新哈希函数;
检索模块,被配置为:利用更新的哈希函数计算待检索样本的哈希编码,基于哈希编码计算二进制样本的海明距离,从而根据海明距离来返回与待检索样本相似的另一个模态的样本。
所述哈希码学习模块中,当第t轮新的数据块到达时,若没有新的未见过的类出现,并且所有现有的标签都已经有相应的标签嵌入,在当前轮省略学习新类的标签嵌入的步骤。
所述哈希码学习模块中,进行哈希码的学习的过程中,利用哈希码的内积使用平方损失来近似语义相似度,对第t轮实例对间的语义相似矩阵改写为块矩阵形式,使得在在线场景下可行。
所述哈希函数学习模块,利用学习的哈希码更新哈希函数,具体为:
根据得到的哈希编码,学习新的查询样本的哈希函数,构建学习损失目标函数;
求解学习损失目标函数,学习哈希函数的投影矩阵;
在第t轮,当一个有着第m模态特征向量的新的查询样本到来时,更新第m模态的哈希函数。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
机译: 跨模态检索方法和系统
机译: 评估内容遵守由在线系统使用的机器学习模型确定符合其他内容策略的内容策略的内容策略
机译: 使用机器学习模型确定与其他内容策略的合规性,以评估内容是否符合在线系统执行的内容策略