0.摘要
由于多模态数据的快速增长,跨模态检索的哈希方法受到了广泛的关注。然而,由于存在异质性差异,在不同数据模式之间寻找内容相似性仍然具有挑战性。为了进一步解决这个问题,我们提出了一个带有注意机制的对抗性哈希网络,通过选择性地关注多模态数据的信息部分,来增强内容相似性的测量。提出的新的深层对抗网络包括三个构建模块:(1)特征学习模块获取特征表征;(2)用于生成注意掩码的注意模块,该注意掩码用于将特征表示分为注意特征表征和无注意特征表征(3)哈希模块学习保持不同模态之间相似性的哈希函数。在我们的框架中,注意力和哈希模块是通过对抗性的方式训练的:注意模块试图使哈希模块无法保持多模态数据关于非注意特征表征的相似性,而哈希模块旨在保持多模态数据关于注意和非注意特征表征的相似性。对几个基准数据集的广泛评估表明,与其他先进的跨模态哈希方法相比,该方法带来了实质性的改进。
1.介绍
跨模态检索求解方法大致可以分为两类:实值表示学习和二进制表示学习。由于二进制表示的存储成本低,检索速度快,所以本文只关注跨模态二进制表示学习(即哈希)。在跨模态哈希过程中,特征提取被认为是表示数据所有模式的第一步,然后,这些多模态特征可以被投影到一个公共汉明空间,以供未来的搜索。
(注意感知深度对抗性哈希。为了学习注意力面具,我们以对抗性的方式训练注意力模块和哈希模块(II):(1)哈希模块学习保存多模态数据的相似性,而(2)注意模块试图生成注意掩码,使哈希模块无法保存被掩码掩饰掉的信息。图1,假设查询女孩骑在驴上,如果我们能定位图像中信息量更大的区域(如黑色区域),可以获得更高的精确度。)
在本文中,我们提出了一种跨模态哈希的注意机制。模型首先决定它应该注意的位置(即多模态数据的哪个区域);然后,注意的区域应该有益于检索。因此,提出了一个注意模块来寻找参与区域,一个哈希模块来学习保持相似的哈希函数。在注意模块中,对每个数据生成自适应注意掩码,将数据划分为被关注区域和无法关注区域。理想情况下,良好学习的注意力遮掩应该定位对检索有益的识别区域,这样,数据的无法关注区域可以提供的信息量不足,难以保持相似性。因此,注意模块进行学习,使哈希模块无法保存数据的无人关注区域的相似性。然而,学习到的哈希函数应该保持数据的参与区域(可以看作是简单的例子)和无人参与区域(困难的例子)的相似性,以增强健壮性和性能。因此,哈希模块要学习保存数据的注意区域和不注意区域的相似性。注意,注意模块和哈希模块是以对抗的方式训练的:注意模块试图找到可以让哈希模块无法保持相似性的不注意区域,而哈希模块的目标是保持多模态数据的相似性。
一种新的用于跨模态检索的深度对抗性哈希算法如图2所示。它主要由三个部分组成:(1)特征学习模块,利用CNN或MLP对多模态数据进行高级语义表征;(2)生成自适应注意掩码并将特征表示分为注意特征表示和不注意特征表示的注意模块;和(3)一个哈希模块,专注于学习多模态数据的二进制码。为了获得良好的注意掩码和强大的哈希函数,提出了对抗性检索损失和跨模态损失。
我们工作的主要贡献是三方面的。首先,我们提出了一种跨模态哈希问题的注意感知方法。它能够检测多模态数据的信息区域,这有助于识别不同模态数据之间的内容相似性。其次,我们提出了一种深度对抗性哈希算法来同时学习有效的注意掩码和紧凑的二进制码。第三,我们定量地评估注意在跨模哈希中的有用性,并且我们的方法与一些最先进的方法相比产生了更好的性能
(我们方法的概述。上面是图像形态分支,下面是文本形态分支。每个分支分为三个部分:特征学习模块(包括EI和ET)、注意模块(GI和GT)和哈希模块(DI和DT)。特征学习模块将输入的多模态数据映射到高级特征表示中。然后,注意模块学习注意掩码,将特征表示分为参与特征和无人参与特征。最后,哈希模块将所有特性编码为二进制码,并学习保持相似的哈希函数。我们交替训练注意力模块和哈希模块。)
2.相关工作
根据用于学习公共表示的利用信息,跨模态哈希可以分为三类:(1)无监督方法仅使用co-occurrence信息学习多模态数据的哈希函数。(2)基于成对的方法同时使用共现信息和相似/不相似对来学习哈希函数。(3)监督方法利用标签信息学习更具识别力的公共表示。
ACMR和所提方法都使用对抗学习,主要区别在于ACMR寻求学习多模态数据的公共子空间,而所提方法中的对抗学习是为明确处理跨模态哈希的注意感知网络而量身定制的。
3.用于跨模态检索的深度对抗哈希
跨模态哈希的目标是学习两个映射函数,将图像和文本转换为一个共同的二进制码空间,在这个空间中保持成对的图像和文本之间的相似性。
所提出的深度对抗性哈希网络包含三个部分:(1)特征学习模块,用于获取多模态数据的高级表示;(2)注意模块生成注意掩码,(3)哈希模块学习保持相似的哈希函数。
(注意模块。它首先产生注意面具ZI和ZT。然后,将每个功能分为参与和无人参与两部分。图像和文本分别经过1X1卷积和全连接经过softmax和threshold,生成多模态数据在各区域的注意分布。然后,利用注意掩码将特征表示分为注意特征表示和不注意特征表示。)
(图像模态DI和文本模态DT的哈希模块)
哈希的目标
我们的目标包含两项:(1)跨模态检索损失,对应于学习,以保存不同模态的数据之间的相似性和(2)哈希模块对应的对抗检索损失,目标是保持非注意部分的相似性,而注意模块试图使哈希模块无法保持非注意部分的相似性。
(1)跨模态检索损失
跨模态损失函数的目的是保持图像和文本之间的相似性。采用跨模态的排序损失和模态内的排序损失来保持相似性。也就是说,来自不同模态的哈希码应该保持语义相似性,而来自相同模态的哈希码也应该保持语义相似性。因此,跨模态检索损失可表示为
前两个项用来保持不同模态之间的语义相似性,后两个项用来保持各自模态的相似性。以符号A→B表示A模态作为查询,检索B模态的相关数据,其中A∈{T,I}和B∈{T,I}。FA→B是A模态作为查询,B模态作为数据库的损失函数,定义为
(
HAi与HBj接近 ,所以
如果哈希码合适,第一个长度应该小于第二个,所以如果没有,检索正确就回记录<i,j,k>的损失为0,
如果哈希码不合适,第一个长度会大于第二个,所以如果没有,检索错误就会记录<i,j,k>的损失为正数,开始积累损失
的作用是充当一个边界,或许是为了防止某一个错的太离谱,严重影响损失函数,防止某个类的检索影响到整体的检索,但是如此的话,为什么不在后面加一项,改成{0,max{},
},或者是防止差距很小就瞎改,在两个距离很近的情况下,可以不改)
其中,<i,j,k>是一个三元组,ε是边际,目标是三元组排序损失,他显示了检索中的效率问题。
(2)对抗的检索损失
在生成式对抗网络令人印象深刻的结果的启发下,我们采用它生成注意分布和学习二进制代码。以文本→图像为例,如图1所示。给定一个查询HiT,哈希模块和注意模块以对抗性的方式训练:(1)哈希模块保留了查询和图像模态的不注意特征之间的语义相似性,即当S(i, j) > S(i, k)时,HTi更接近ˆHIj而不是ˆHIk;(2)注意模块试图找到哈希模块无法保持相似点的图像的无法关注区域,即HiT更接近ˆHIk,而不是ˆHIj。这个目标能被定义为
哈希模块试图最小化目标,而注意力模块试图最大化目标。
![](https://i-blog.csdnimg.cn/blog_migrate/b2e7f7d6c67de3f29658674657a385ac.png)
第一项对应于将文本模态作为检索图像模态的不注意特征的查询。第二项对应于作为检索文本模态的不注意特征的查询的图像模态。GI、GT试图使损失最大化,DI、DT最小化目标:
最终目标函数
我们交替地训练我们的模型。GI和GT中的参数固定,其他参数训练:
固定EI、ET、DI、DT,更新注意模型: