Hierarchical Consensus Hashing for Cross-Modal Retrieval【TMM2024】
Abstract
跨模态哈希(CMH)因其在不同模态之间的高效检索而受到广泛关注。
存在问题:然而,现有的方法大多不自觉地忽略了数据的层次结构信息,往往学习单层哈希函数直接将跨模态数据一步转换为常见的低维哈希码。这种突然的维度下降和巨大的语义缺口会造成判别信息的丢失。
本文提出:为此,本文采用了一种从粗到细的渐进机制,并提出了一种新的Hierarchical Consensus Cross-Modal Hashing (HCCH).
- 为了减少重要判别信息的丢失,提出了一种由粗到细的分层哈希方案,该方案利用两层哈希函数逐步细化有益的判别信息。
- 在分层哈希函数上施加 ℓ 2 , 1 \ell_{2,1} ℓ2,1范数,以减轻冗余和损坏特征影响。
- 最后,提出共识学习,以这种渐进的方式将数据有效地编码到共识空间中,从而减少语义差距。
通过与一些先进的CMH方法的大量对比实验,在4个基准数据集上验证了HCCH方法的有效性和高效性。
Introduction
存在问题
尽管有监督的CMH方法取得了很好的效果,但仍有一些严峻的挑战需要进一步解决。
- 以往的CMH方法总是倾向于使用单层哈希函数来学习二值码,然而,很少有方法在多级空间中学习哈希码来捕获特征的层次关系。
- 现有的CMH方法通常通过单层哈希函数直接将高维实例对投影到低维哈希码中,这种突然的一步降维可能导致某些重要数据属性或判别信息的丢失。
- 为了减少多模态的异质性差距,一种广泛使用的方案是将原始多模态数据映射到共享的Hamming空间中。显然,该方案忽略了一些潜在的有益的特定知识,导致性能不佳。
解决方案——HCCH
提出了一种具有从粗到细(coarse-to-fine)架构的分层哈希策略来细化识别特征信息。即使用具有
ℓ
2
,
1
\ell_{2,1}
ℓ2,1范数约束的两层哈希函数,逐步学习不同模态的特定哈希码,从而获得层次化的低级语义结构。此外,学习一致的哈希码,以缓解异构差距。
Contributions
- 提出了一个优雅的HCCH用于跨模态检索。据我们所知,我们是第一个提出从粗到细的层析哈希方案的人之一,以充分利用来自不同模态的特征层次信息。
- 为了减轻由于维度大幅下降造成的判别信息损失,提出了一种分层学习范式,采用两层哈希映射,逐步收集相对重要的信息,进一步学习特定的哈希码。
- 为了消除异构差距,提出共识学习,充分挖掘每个模态的私有属性和不同模态的共享语义。
- 为了有效地解决这种二值学习问题,开发了一种迭代优化算法。我们在四个公共数据集上进行了大量的实验,实验结果表明,HCCH在检索性能上优于这些最先进的比较方法。
2 Related Work
2.1 Unsupervised Cross-Modal Hashing
2.2 Supervised Cross-Modal Hashing
3 Proposed Methods
Problem Definition
- U t ∈ R n × d t \boldsymbol{U}^t\in\mathbb{R}^{n\times d_t} Ut∈Rn×dt:为 t t t 模态的训练实例,其中 d t d_t dt 为特征维度, n n n 为样本个数。
-
Y
∈
{
0
,
1
}
n
×
c
\boldsymbol{Y}\in\{0,1\}^{n\times c}
Y∈{0,1}n×c:对应的ground-truth标签,
c
c
c 为共享类的个数。
- 如果第 j j j个实例对属于第 i i i个类,则 Y i j = 1 \boldsymbol{Y}_{ij}=1 Yij=1,否则 Y i j = 0 \boldsymbol{Y}_{ij}=0 Yij=0。
- B ∈ { − 1 , 1 } n × l \boldsymbol{B}\in\{-1,1\}^{n\times l} B∈{−1,1}n×l: l l l 位哈希码。
-
ϕ
(
u
t
)
\phi(\boldsymbol{u}^t)
ϕ(ut),
X
t
X^t
Xt:对于每个模态,每个数据对的核化特征。
- ϕ ( u t ) = [ exp ( ∥ u t − a 1 t ∥ 2 2 − 2 σ 2 ) , … , exp ( ∥ u t − a k t ∥ 2 2 − 2 σ 2 ) ] ⊤ \phi(\boldsymbol{u}^t)=\left[\exp\left(\frac{\|\boldsymbol{u}^t-\boldsymbol{a}_1^t\|_2^2}{-2\sigma^2}\right),\ldots,\exp\left(\frac{\|\boldsymbol{u}^t-\boldsymbol{a}_k^t\|_2^2}{-2\sigma^2}\right)\right]^\top ϕ(ut)=[exp(−2σ2∥ut−a1t∥22),…,exp(−2σ2∥ut−akt∥22)]⊤
- σ \sigma σ是核宽度, a t a^t at表示随机选择的 k t k^t kt个锚点。
众所周知,kernel trick可以更好地表达非线性可分数据的相关性,如RBF核映射。
补充知识——kernel trick
内核策略主要用于将非线性问题转换为线性问题,通过在高维特征中间中进行线性操作,以解决原始输入空间中无法线性解决的问题。
核心是使用核函数来计算数据点在高维空间中的点积,而无需显式地将数据映射到高维空间。
常用核函数:高斯径向基函数(RBF): κ ( x , y ) = exp ( − ∥ x − y ∥ 2 2 σ 2 ) \kappa(x,y)=\exp\left(-\frac{\|x-y\|^2}{2\sigma^2}\right) κ(x,y)=exp(−2σ2∥x−y∥2)
特点:将数据映射到无限维空间,适用于处理非线性关系。
如何理解核函数?参考自知乎——核函数介绍
核函数就是距离函数,即输入任意两个点的坐标,核函数就可以输出他们的距离。
核函数的作用是将数据从原始空间映射到更高维的空间。
假设我们总能够使用点积的形式来计算两个向量之间的距离: K ( x , y ) = x ⋅ y K(x,y)=x\cdot y K(x,y)=x⋅y。
然而,现实中如果仅仅使用线性有时可能会忽略某些重要性质。例如,考虑一组点,其中一些位于圆心附近,而另一些位于圆的边缘。如果我们只使用欧氏距离,我们可能无法有效地区分这两组点。
这时,高斯核函数(高斯径向基函数)就非常有用。高斯核可以区分这些点,因为靠近圆心的点与圆心的距离较小,而位于边缘的点与圆心的距离较大。
但是问题是:径向基函数不符合点积的形式。在不改变对点积形式的基本假设的情况下,如何实现高斯核函数的效果?
答案在于将原始的二维数据映射到一个更高维的空间。在这个高维空间中,数据之间的点积刚好对应于高斯核函数的形式!1.在始终使用欧氏距离的前提下,为了实现高斯核函数的效果,我们需要将原始数据从所在空间映射到一个更高维的空间。
2.在始终使用欧氏距离的前提下,总存在一种将原始数据空间映射到更高维空间的方法,这样在高维空间中,两个数据点的点积就等同于高斯核函数。
Motivation
由于 比特去相关(bit de-correlation) 即 正交约束(orthogonal constraint) 已被证明可以改善哈希码的判别性,因此被广泛应用于学习哈希。
在不损失一般性的前提下,求解哈希码需要进行奇异值分解(SVD)。然后,使用奇异值分解来表示特征分布。特征值越大,特征向量携带的判别信息越多。因此,我们希望
l
l
l位的二值码可以通过选择与top-
l
l
l个特征值对应的特征向量来保留大部分的判别信息。
先前的CMH方法通常通过使用单层哈希函数来学习离散哈希码。它们直接将大小为 R n × k t \mathbb{R}^{n\times k^t} Rn×kt的高维图像-文本数据转换为大小为 R n × l \mathbb{R}^{n\times l} Rn×l的低维二值码。原始内核特征中包含的多层次语义很难通过单层哈提取,而且这种维数下降容易导致判别信息的丢失。
【如图:MIRFlickr数据集从大到小排序的图像模态特征值分布】
- 单层哈希将图像数据从1000维投影到64维,哈希码只保留了57.09%的内核信息。
- 两层哈希将图像数据从1000维投影到400维投影到64维,哈希码保留了83.77%×72.58%=60.80%的内核信息,保留了更多的判别信息。
因此,上述分析表明,本文提出的两层哈希思想可以保留更多的内核特征信息,从而减少信息损失。
Formulation
为了有效避免维度的突然下降和减轻判别信息的损失,提出了一种分层哈希策略,该策略以分层的方式利用层次语义和结构信息。
策略:通过两步迭代地将有益的特征信息提取到两个较小的矩阵中,并学习特定的哈希码 B t B^t Bt。哈希码 B t B^t Bt的更新将会指导精炼特征的过程,从而达到理想性能。
具体来说,使用两个较小的哈希映射矩阵 W t = P t R t \mathbf{W}^t=\mathbf{P}^t\mathbf{R}^t Wt=PtRt,其中
- P t ∈ R k t × r \mathbf{P}^t\in\mathbb{R}^{k^t\times r} Pt∈Rkt×r是聚集重要判别信息的第一层哈希映射矩阵。
- R t ∈ R r × l \mathbf{R}^t\in\mathbb{R}^{r\times l} Rt∈Rr×l被视为第二层哈希映射矩阵,用于学习特征的哈希码。
- l < r < k t l<r<k^t l<r<kt, r r r为有利判别信息的维数。【 r r r很容易调优,且有明确的含义,即 r r r是提取的用于识别的重要特征的个数。】
- P R \mathbf{P}\mathbf{R} PR充当分层哈希函数,可以丢弃冗余特征并捕获结构信息,使特定哈希码的表示错误最小化。
此外,在实际应用中,图像-文本数据对通常包含太多冗余和损坏的特征,这会影响学习到的哈希码的质量。为了消除冗余和损坏的特征,对分层哈希映射函数
P
t
R
t
\mathbf{P}^t\mathbf{R}^t
PtRt施加 行稀疏正则化项
∥
P
t
R
t
∥
2
,
1
\|P^tR^t\|_{2,1}
∥PtRt∥2,1。
优化问题转换为:
min
B
t
,
P
t
,
R
t
∑
t
=
1
2
(
∥
B
t
−
X
t
P
t
R
t
∥
F
2
+
λ
∥
P
t
R
t
∥
2
,
1
)
s
.
t
.
B
t
∈
{
−
1
,
1
}
n
×
l
\begin{aligned}\min_{\boldsymbol{B}^t,\boldsymbol{P}^t,\boldsymbol{R}^t}&\sum_{t=1}^2\left(\|\boldsymbol{B}^t-\boldsymbol{X}^t\boldsymbol{P}^t\boldsymbol{R}^t\|_F^2+\lambda\|\boldsymbol{P}^t\boldsymbol{R}^t\|_{2,1}\right)\\&\mathrm{s.t.~}\boldsymbol{B}^t\in\{-1,1\}^{n\times l}\end{aligned}
Bt,Pt,Rtmint=1∑2(∥Bt−XtPtRt∥F2+λ∥PtRt∥2,1)s.t. Bt∈{−1,1}n×l
补充知识—— L 1 、 L 2 、 L 2 , 1 L_1、L_2、L_{2,1} L1、L2、L2,1范数、损失函数、正则化
向量范数
L 1 L_1 L1范数,也称曼哈顿范数,是向量中元素的绝对值之和,也是一种度量向量稀疏性的表示方法。
- ∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \|x\|_1=\sum_{i=1}^n|x_i| ∥x∥1=∑i=1n∣xi∣
- 当我们希望模型参数不仅小,而且尽可能稀疏时,可以在损失函数中添加 L 1 L_1 L1范数作为正则化项。 L 1 L_1 L1正则化有助于将某些模型参数推向0,从而实现特征选择,即选择对任务最重要的特征。
L 2 L_2 L2范数,也称Euclidean 范数,是向量元素绝对值的平方和再开方,
- ∣ ∣ x ∣ ∣ 2 = ∑ i = 1 N ∣ x i ∣ 2 ||x||_2=\sqrt{\sum_{i=1}^N|x_i|^2} ∣∣x∣∣2=∑i=1N∣xi∣2
- 当我们希望模型的参数不要过大,可以在损失函数中添加 L 2 L_2 L2范数作为正则化项,从而鼓励模型选择较小的参数值,有助于提高模型的泛化性能。
矩阵范数
Frobenius范数,对于一个矩阵A,其F范数定义为矩阵元素绝对值的平方和再开方
- ∣ ∣ A ∣ ∣ F = ∑ i = 1 N ∑ j = 1 N ∣ a i j ∣ 2 ||A||_F=\sqrt{\sum_{i=1}^N\sum_{j=1}^N|a_{ij}|^2} ∣∣A∣∣F=∑i=1N∑j=1N∣aij∣2
矩阵的 L 1 L_1 L1范数定义为:矩阵列向量绝对值之和的最大值
- ∥ A ∥ 1 = max 1 ≤ j ≤ n ∑ i = 1 n ∣ a i j ∣ \|A\|_1=\max_{1\leq j\leq n}\sum_{i=1}^n|a_{ij}| ∥A∥1=max1≤j≤n∑i=1n∣aij∣
矩阵的 L 2 L_2 L2范数定义为: A T A A^TA ATA矩阵的最大特征值的开方
- ∥ A ∥ 2 = max 1 ≤ i ≤ n ∣ λ i ∣ \left\|\mathrm{A}\right\|_2=\sqrt{\max_{1\leq i\leq n}\left|\lambda_i\right|} ∥A∥2=max1≤i≤n∣λi∣
矩阵的 L 2 , 1 L_{2,1} L2,1范数定义为:矩阵A的每一行的 L 2 L_2 L2范数之和
- ∥ A ∥ 2 , 1 = ∑ i = 1 m ∑ j = 1 n a i , j 2 = ∑ i = 1 m ∥ a i , : ∥ 2 \left\|A\right\|_{2,1}=\sum_{i=1}^{m}\sqrt{\sum_{j=1}^{n}a_{i,j}^{2}}=\sum_{i=1}^{m}\left\|a_{i,:}\right\|_{2} ∥A∥2,1=∑i=1m∑j=1nai,j2=∑i=1m∥ai,:∥2
在最小化问题中,只有每一行的 L 2 L_2 L2范数都最小,总问题才最小。而每行元素取得最小的含义是,当行内尽可能多的元素为0的时候,约束才可以取到最小。
范数与正则化
为了避免过拟合,经常会给简单的函数加一个偏移,可以通过添加一个正则项来实现,也就是范数,常用形式:
- min ω L λ ( ω ) = min ω [ ( 真实值 − 预测值 ) + λ ∥ ω ∥ 2 2 ] \min_{\omega}L_{\lambda}\left(\omega\right)=\min_{\omega}\left[\left(\text{真实值}-\text{预测值}\right)+\lambda\left\|\omega\right\|_{2}^{2}\right] minωLλ(ω)=minω[(真实值−预测值)+λ∥ω∥22]
- 其中 λ \lambda λ是正则系数,表示想要正则化的程度。
L 2 , 1 L_{2,1} L2,1范数特征选择
在特征选择中,通过稀疏化的特征选择矩阵来选取特征,相当于是一种线性变换。
继续回到优化问题:
min
B
t
,
P
t
,
R
t
∑
t
=
1
2
(
∥
B
t
−
X
t
P
t
R
t
∥
F
2
+
λ
∥
P
t
R
t
∥
2
,
1
)
s
.
t
.
B
t
∈
{
−
1
,
1
}
n
×
l
\begin{aligned}\min_{\boldsymbol{B}^t,\boldsymbol{P}^t,\boldsymbol{R}^t}&\sum_{t=1}^2\left(\|\boldsymbol{B}^t-\boldsymbol{X}^t\boldsymbol{P}^t\boldsymbol{R}^t\|_F^2+\lambda\|\boldsymbol{P}^t\boldsymbol{R}^t\|_{2,1}\right)\\&\mathrm{s.t.~}\boldsymbol{B}^t\in\{-1,1\}^{n\times l}\end{aligned}
Bt,Pt,Rtmint=1∑2(∥Bt−XtPtRt∥F2+λ∥PtRt∥2,1)s.t. Bt∈{−1,1}n×l
由于
ℓ
2
,
1
\ell_{2,1}
ℓ2,1范数约束,上述问题可以自适应的分配较大的权重,从而可以将提取到的重要信息映射到特定的哈希码中。
同时,还可以避免平凡解
P
t
R
t
=
I
\boldsymbol{P}^t\boldsymbol{R}^t=\boldsymbol{I}
PtRt=I。分层哈希映射函数包含
ℓ
2
,
1
\ell_{2,1}
ℓ2,1范数,确保了稀疏性。
Consensus Learning
为了充分挖掘更多的数据自适应信息,我们希望学习具有特定一致信息的判别共识表示(discriminative consensus representation)。
具体来说,将不同模态之间的差异最小化,以捕捉模态间的相似性:
min
B
t
,
H
∑
t
=
1
2
∑
i
,
j
=
1
n
(
∥
B
i
t
−
H
j
∥
F
2
−
l
∥
Y
i
−
Y
j
∥
F
2
)
s
.
t
.
B
t
∈
{
−
1
,
1
}
n
×
l
,
H
∈
{
−
1
,
1
}
n
×
l
\min_{\boldsymbol{B}^t,\boldsymbol{H}}\sum_{t=1}^2\sum_{i,j=1}^n\left(\|\boldsymbol{B}_i^t-\boldsymbol{H}_j\|_F^2-l\|\boldsymbol{Y}_i-\boldsymbol{Y}_j\|_F^2\right)\\\mathrm{s.t.~}\boldsymbol{B}^t\in\{-1,1\}^{n\times l},\boldsymbol{H}\in\{-1,1\}^{n\times l}
Bt,Hmint=1∑2i,j=1∑n(∥Bit−Hj∥F2−l∥Yi−Yj∥F2)s.t. Bt∈{−1,1}n×l,H∈{−1,1}n×l
其中标签
Y
\boldsymbol{Y}
Y是经过
ℓ
2
\ell_{2}
ℓ2范数归一化的。为了便于计算,进一步将其转化为如下问题:
min
B
t
,
H
∑
t
=
1
2
∥
(
B
t
)
⊤
H
−
l
Y
⊤
Y
∥
F
2
s
.
t
.
B
t
∈
{
−
1
,
1
}
n
×
l
\min_{\boldsymbol{B}^t,\boldsymbol{H}}\sum_{t=1}^2\|(\boldsymbol{B}^t)^\top\boldsymbol{H}-l\boldsymbol{Y}^\top\boldsymbol{Y}\|_F^2\\\mathrm{s.t.~}\boldsymbol{B}^t\in\{-1,1\}^{n\times l}
Bt,Hmint=1∑2∥(Bt)⊤H−lY⊤Y∥F2s.t. Bt∈{−1,1}n×l
Overall Objective Function
对一致哈希码
H
\boldsymbol{H}
H施加了更多的约束(位平衡和去相关),整体优化问题可以表示为:
min
B
t
,
P
t
,
R
t
,
H
∑
t
=
1
2
(
∥
B
t
−
X
t
P
t
R
t
∥
F
2
+
α
t
∥
(
B
t
)
⊤
H
−
l
Y
⊤
Y
∥
F
2
+
λ
∥
P
t
R
t
∥
2
,
1
)
s
.
t
.
B
t
∈
{
−
1
,
1
}
n
×
l
,
H
∈
{
−
1
,
1
}
n
×
l
H
1
=
0
,
H
H
⊤
=
n
I
\begin{gathered} \begin{aligned}&\min_{\boldsymbol{B}^t,\boldsymbol{P}^t,\boldsymbol{R}^t,\boldsymbol{H}}\sum_{t=1}^2(\|\boldsymbol{B}^t-\boldsymbol{X}^t\boldsymbol{P}^t\boldsymbol{R}^t\|_F^2\\&+\alpha_t\|(\boldsymbol{B}^t)^\top\boldsymbol{H}-l\boldsymbol{Y}^\top\boldsymbol{Y}\|_F^2+\lambda\|\boldsymbol{P}^t\boldsymbol{R}^t\|_{2,1})\end{aligned} \\ \mathrm{s.t.~}\boldsymbol{B}^t\in\{-1,1\}^{n\times l},\boldsymbol{H}\in\{-1,1\}^{n\times l} \\ \boldsymbol{H}\boldsymbol{1}=0,\boldsymbol{H}\boldsymbol{H}^\top=n\boldsymbol{I} \end{gathered}
Bt,Pt,Rt,Hmint=1∑2(∥Bt−XtPtRt∥F2+αt∥(Bt)⊤H−lY⊤Y∥F2+λ∥PtRt∥2,1)s.t. Bt∈{−1,1}n×l,H∈{−1,1}n×lH1=0,HH⊤=nI