什么是多模态检索?

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

这篇论文的意义?

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

贡献

  • 提出了一个端到端的学习框架
  • 直接离散优化生成二进制编码
  • 实验证明效果很好

网络模型

多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现

图像卷积部分

结构:

多模态虚假新闻检测python实现 多模态信息检索_深度学习_02


其实就是类似AlexNet网络,输出是维度是二进制编码长度。

文本部分

结构:

多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_03


用Bag-of-words模型向量来表示文本,然后通过两层全连接,输出为二进制编码。

损失函数构建

多模态虚假新闻检测python实现 多模态信息检索_损失函数_04


其中: 多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_05代表相似矩阵,根据标签获取。比如说我们可以认为图像多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_06和文本多模态虚假新闻检测python实现 多模态信息检索_人工智能_07如果它们拥有一样的标签,也就是多模态虚假新闻检测python实现 多模态信息检索_深度学习_08;如果图像多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_06和文本多模态虚假新闻检测python实现 多模态信息检索_人工智能_07拥有不一样的标签,则认为不相似,那么多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_11损失函数的第一部分:

多模态虚假新闻检测python实现 多模态信息检索_信息检索_12


其实就是对下面似然函数取对数,再取符号。

多模态虚假新闻检测python实现 多模态信息检索_信息检索_13


这一部分可以促使相似的图像和文本生成的二进制编码也是相似的。损失函数的第二部分:

多模态虚假新闻检测python实现 多模态信息检索_人工智能_14


其中B是离散生成的二进制编码,F和G是网络输出的编码。B的获取

多模态虚假新闻检测python实现 多模态信息检索_深度学习_15多模态虚假新闻检测python实现 多模态信息检索_损失函数_16。F和G可以保持多模态的相似性,因此B也能保持相似。损失函数的第三部分:

多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_17


使网络输出的结果-1和1更加均匀化,利于汉明空间的查找。

损失函数重建

由于多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_18多模态虚假新闻检测python实现 多模态信息检索_深度学习_19可以在训练时可以认为是相同的。因此损失函数可以改成如下:

多模态虚假新闻检测python实现 多模态信息检索_信息检索_20

学习过程

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

固定B,学习网络参数

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

固定网络参数,学习B

由于网络参数固定,所以优化可以变成如下式子:

多模态虚假新闻检测python实现 多模态信息检索_多模态虚假新闻检测python实现_21


可以计算B为:

多模态虚假新闻检测python实现 多模态信息检索_深度学习_22


迭代训练,直到迭代到最大次数或者网络收敛位置