Pipeline
文章基于GAN网络,提出一种无监督跨模态检索算法,算法框架图如下
网络接收原始文本和图片作为输入,采用神经网络分别提取特征文本和图片特征,
生成器
生成器采用两路网络,分别接收上面提取到的文本和图片特征向量,后面接两个全连接层,一层用于将特征向量映射到公共空间,一层用于生成哈希码。
给定某个模态中的查询样例,生成器目的在于拟合Manifold Pairs
的分布,从另一个模态的样例中找到和查询样例相关的样例。相关程度采用下面的概率判断
pθ(xU∣q)=∑xUexp(−∥h(q)−h(xU)∥2)exp(−∥∥h(q)−h(xU)∥∥2)
q为查询样例,xU为另一模态的样例,h(∗)为哈希码
鉴别器
鉴别器接收生成器生成的’假’样本和关联图采样得到的Manifold Pairs
(’真‘样本)作为输入,采用triplet ranking loss
作为损失函数。
构建关联图
首先分别为文本和图片模态构建两个无向图,Graphi=(V,Wi)和Graphi=(V,Wi),V为顶点,Wi和Wj为相似度矩阵,定义如下
w(p,q)={1:0:xp∈NNk(xq) otherwise
NNk(xq)为xq的k邻近节点,需要注意的是,跨模态数据集中成对信息自然存在,若文本查询样例qj和文本tk有相同的潜在结构,即语义相似,则与tk成对的图像ik与qj也有相同的潜在结构,反之亦然。
判别概率
鉴别器接收生成器和关联图产生的样本作为输入,输出每个对的得分做判别结果。给定查询样例q和实例xU,三元组损失定义如下
fϕ(xG,q)=max(0,m+∥h(q)−h(xM)∥2−∥h(q)−h(xG)∥2)
-
xU为相关图生成的真实样本
-
xG为生成器生成的样本
-
m为margin值,文章中设为1
- 三元组损失使得查询样例与真实样本间的距离比生成器生成的样本之间的距离要近
给定q,样本x的预测概率定义如下:
D(x∣q)=sigmoid(fϕ(x,q))=1+exp(fϕ(x,q))exp(fϕ(x,q))
鉴别器就是使得D(xM∣q)更大,D(xG∣q)更小,使用鉴别器模型进行跨模态检索。
生成对抗学习
V(G,D)=θminϕmaxj=1∑n(Ex∼ptrue(xM∣qj)[log(D(xM∣qj))]+Ex∼pθ(xG∣qj)[log(1−D(xG∣qj))])