[论文笔记]Unsupervised Generative Adversarial Cross-Modal Hashing

Pipeline

文章基于GAN网络,提出一种无监督跨模态检索算法,算法框架图如下
[论文笔记]Unsupervised Generative Adversarial Cross-Modal Hashing

网络接收原始文本和图片作为输入,采用神经网络分别提取特征文本和图片特征,

生成器

生成器采用两路网络,分别接收上面提取到的文本和图片特征向量,后面接两个全连接层,一层用于将特征向量映射到公共空间,一层用于生成哈希码。

给定某个模态中的查询样例,生成器目的在于拟合Manifold Pairs的分布,从另一个模态的样例中找到和查询样例相关的样例。相关程度采用下面的概率判断
pθ(xUq)=exp(h(q)h(xU)2)xUexp(h(q)h(xU)2)p_{\theta}\left(x^{U} | q\right)=\frac{\exp \left(-\left\|h(q)-h\left(x^{U}\right)\right\|^{2}\right)}{\sum_{x^{U}} \exp \left(-\left\|h(q)-h\left(x^{U}\right)\right\|^{2}\right)}
qq为查询样例,xUx^{U}为另一模态的样例,h()h(*)为哈希码

鉴别器

鉴别器接收生成器生成的’假’样本和关联图采样得到的Manifold Pairs(’真‘样本)作为输入,采用triplet ranking loss作为损失函数。

构建关联图
首先分别为文本和图片模态构建两个无向图,Graphi=(V,Wi)Graph_{i}=(V,W_{i})Graphi=(V,Wi)Graph_{i}=(V,W_{i})VV为顶点,WiW_{i}WjW_{j}为相似度矩阵,定义如下
w(p,q)={1:xpNNk(xq)0: otherwise w(p, q)=\left\{\begin{array}{cc} 1: & x_{p} \in N N_{k}\left(x_{q}\right) \\ 0: & \text { otherwise } \end{array}\right.
NNk(xq)N N_{k}\left(x_{q}\right)xqx_{q}kk邻近节点,需要注意的是,跨模态数据集中成对信息自然存在,若文本查询样例qjq_{j}和文本tkt_{k}有相同的潜在结构,即语义相似,则与tkt_{k}成对的图像iki_{k}qjq_{j}也有相同的潜在结构,反之亦然。

判别概率
鉴别器接收生成器和关联图产生的样本作为输入,输出每个对的得分做判别结果。给定查询样例qq和实例xUx^{U},三元组损失定义如下
fϕ(xG,q)=max(0,m+h(q)h(xM)2h(q)h(xG)2)f_\phi(x^G,q) = \max(0, m+\|h(q) - h(x^M)\|^2 - \|h(q) - h(x^G)\|^2)

  • xUx^{U}为相关图生成的真实样本
  • xGx^{G}为生成器生成的样本
  • mm为margin值,文章中设为1
  • 三元组损失使得查询样例与真实样本间的距离比生成器生成的样本之间的距离要近

给定qq,样本xx的预测概率定义如下:
D(xq)=sigmoid(fϕ(x,q))=exp(fϕ(x,q))1+exp(fϕ(x,q))D(x|q) = sigmoid(f_\phi(x,q)) = \frac{\exp(f_\phi(x,q))}{1+\exp(f_\phi(x,q))}

鉴别器就是使得D(xMq)D(x^M|q)更大D(xGq),D(x^G|q)更小,使用鉴别器模型进行跨模态检索。

生成对抗学习

V(G,D)=minθmaxϕj=1n(Exptrue(xMqj)[log(D(xMqj))]+Expθ(xGqj)[log(1D(xGqj))])\begin{aligned} \mathcal{V}(G, D)=& \min _{\theta} \max _{\phi} \sum_{j=1}^{n}\left(E_{x \sim p_{t r u e}\left(x^{M} | q^{j}\right)}\left[\log \left(D\left(x^{M} | q^{j}\right)\right)\right]\right.\\ &\left.+E_{x \sim p_{\theta}\left(x^{G} | q^{j}\right)}\left[\log \left(1-D\left(x^{G} | q^{j}\right)\right)\right]\right) \end{aligned}