多模态检索Deep Cross-Modal Hashing

什么是多模态检索?

现实生活中常有图搜图,文本搜文本,视频搜视频的应用,这些都是单模态检索。多模态检索就是,不同类别之间的搜索,比如用文本搜图,用图搜文本等,这类情况称为多模态检索。

这篇论文的意义?

传统的都是手动提取特征方法,这篇论文将特征提取和二进制码生成一起构成一个端到端的学习过程。

贡献

  • 提出了一个端到端的学习框架

  • 直接离散优化生成二进制编码

  • 实验证明效果很好

网络模型

多模态检索Deep Cross-Modal Hashing_第1张图片

图像卷积部分

结构:
多模态检索Deep Cross-Modal Hashing_第2张图片
其实就是类似AlexNet网络,输出是维度是二进制编码长度。

文本部分

结构:
多模态检索Deep Cross-Modal Hashing_第3张图片
用Bag-of-words模型向量来表示文本,然后通过两层全连接,输出为二进制编码。

损失函数构建

多模态检索Deep Cross-Modal Hashing_第4张图片
其中: S i j S_{ij} Sij代表相似矩阵,根据标签获取。比如说我们可以认为图像 x i x_i xi和文本 y i y_i yi如果它们拥有一样的标签,也就是 S i j = 1 S_{ij}=1 Sij=1;如果图像 x i x_i xi和文本 y i y_i yi拥有不一样的标签,则认为不相似,那么 S i j = 0 S_{ij}=0 Sij=0

损失函数的第一部分:
在这里插入图片描述
其实就是对下面似然函数取对数,再取符号。
多模态检索Deep Cross-Modal Hashing_第5张图片
这一部分可以促使相似的图像和文本生成的二进制编码也是相似的。

损失函数的第二部分:
在这里插入图片描述
其中B是离散生成的二进制编码,F和G是网络输出的编码。B的获取
B ( x ) = s i g n ( F ) B^{(x)}=sign(F) B(x)=sign(F) B ( y ) = s i g n ( G ) B^{(y)}=sign(G) B(y)=sign(G)。F和G可以保持多模态的相似性,因此B也能保持相似。

损失函数的第三部分:
在这里插入图片描述
使网络输出的结果-1和1更加均匀化,利于汉明空间的查找。

损失函数重建

由于 B ( x ) B^{(x)} B(x) B ( y ) B^{(y)} B(y)可以在训练时可以认为是相同的。因此损失函数可以改成如下:
多模态检索Deep Cross-Modal Hashing_第6张图片

学习过程

采用选择学习策略,每一次先固定某个参数,学习其他参数。

固定B,学习网络参数

利用反向求导链式法则,更新网络参数(学习神经网络应该都知道)

固定网络参数,学习B

由于网络参数固定,所以优化可以变成如下式子:
多模态检索Deep Cross-Modal Hashing_第7张图片
可以计算B为:
在这里插入图片描述
迭代训练,直到迭代到最大次数或者网络收敛位置

你可能感兴趣的:(跨模态检索)