论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

多义词的视觉语义的嵌入式交叉检索,来自 CVPR 2019

项目地址

摘要

视觉嵌入的目标是找到一个共享的空间,在这个空间中相关的视觉和文本彼此之间比较接近。当前大多数方法都学习将实例映射到共享空间中单个点的内嵌式嵌入函数(映射是一对一的)。不幸的是,内射式嵌入不能有效地处理具有多种可能含义的多义词实例。最好情况下,它只能找到不同含义的平均的表达。这阻止了它在真实场景中的使用,它们的跨模态的联系也经常是模糊的。

在这项工作中,提出了多义词实例嵌入网络(PIE-Nets),通过利用自注意力机制和 residual 学习,将局部引导的特征和全局的特征整合起来,能够计算同一个实例的多个不同表达。为了学到视觉语义的嵌入,我们把两个 PIE-Nets 结合起来,在多个实例学习的框架中共同优化它们。大多数现存的跨模态检索工作专注与图像-文本的数据。我们也解决一个更有挑战性的问题:视频-文本的检索。为了便于之后的视频-文本检索研究工作,我们公开了一个采集自社交媒体的, 50K 的视频-句子对,叫做 MRW(my reaction when)。

我们在图像-文本和视频-文本检索的场景下展示了我们方法的性能。用到三个数据集:MS-COCO,TGIF 和我们新提出的数据集。

介绍

之前方法一对一映射解决多义词存在的问题:

  1. 迫使映射到一个可能是错误的点
  2. 部分跨域联系。一句话可能只描述了图像的一部分

解决问题的方式:

  1. 把实例的嵌入问题定义成一个一对多的映射任务
  2. 优化映射函数,使得其对模糊的实例和部分跨域的联系鲁棒

PIE-Net 模型通过结合其输入的全局和局部信息来提取每个实例的K个嵌入。具体做法:

  • 通过使用多头自注意模块来关注输入实例的不同部分(例如,区域,框架,单词),从而获得K个局部引导的表示。
  • 通过残差学习将每个这样的局部表示与全局表示结合起来,以避免学习多余的信息。
  • 为了防止 K 嵌入到一个空间中,我们将 K 个局部引导的表示形式进行了规范化以使其多样化。
  • 为了解决局部联系的问题,我们将两个 PIE-Nets 合并起来并在多实例学习(MIL)框架中训练我们的模型。我们将这种方法称为多义视觉语义嵌入(PVSE)。
    • 基于直觉:当两个实例仅部分关联时,方程式(1)的学习约束将不必要地惩罚嵌入不匹配,因为它期望两个实例完美关联。利用我们的一对多实例嵌入,我们的MIL目标放宽了等式(1)的约束,以便仅 K×K 个嵌入对中的一个对对齐良好,从而使我们的模型对部分跨域关联具有更强的鲁棒性。但是,这种松弛可能会导致两个嵌入分布之间出现差异,因为(K×K-1)个嵌入对不受约束。因此,我们通过使用最小化 最大平均差异(MMD) 来规范化学习的嵌入空间,这是一种用于确定两组数据是否来自同一概率分布的流行技术。

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

相关工作

  • 联系最大化:大多数现存工作都是基于一对一的实例映射,映射到一个共享的嵌入共建。一个流行的方法是最大化有关联的实例在嵌入空间中的联系(correlation)
  • 三元组排序:另一个流行的方法。鼓励正例的距离小于负例的距离。
  • 带有辅助任务的学习:几个方法通过解决辅助任务来学习嵌入,例如信号重建,语义概念分类和最小化不同模态嵌入的散度
  • 基于注意力的嵌入:最近的方法引入了跨注意力的机制来选择专注与实例的局部区域,给定另一个模态实例情况的上下文信息。例如,关注与图像的不同区域,给定不同的查询文本。但这种方法在推断时带来了很大的计算量,很大程度上限制了它的使用。

方法

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal RetrievalPVSE 模型由不同模态得到的不同特征提取器,之后是两个有同样结构的子网络构成。把子网络叫做 PIE-Net。

PIE-Net 把全局的上下文向量和多个局部特征向量当作输入,使用局部特征 transformer 计算局部引导的特征向量,通过结合全局的特征向量和局部引导的特征,输出 K 个嵌入。在 Multiple Instance Learning (MIL)框架下训练网络。

模态特定的特征编码器

  • 图像编码器:使用 ImageNet 预训练的 ResNet-152。把最后平均池化之前的特征图当作局部特征,维度是 (7, 7, 2048)。然后进行平均池化,送到全连接层来获得全局的特征,维度是 H。
  • 视频编码器:使用和图像一样的网络,最后的平均池化层的输出,2048 维的向量作为局部特征。假如有 T 帧,得到的特征维度是 (T, 2048)。 然后把局部特征送入双向 GRU,有 H 个隐藏单元,然后将最后隐藏单元的状态作为全局特征。维度为 H
  • 句子编码器:把句子 x 的 L 个词中的每个词都使用 GloVe 进行编码,产生 300 维的向量,然后使用他们作为局部特征。得到的特征维度是 (L, 300)。也是送到双向 GRU 中,有 H 个隐含单元,然后将最后隐藏单元的状态作为全局特征。维度为 H

局部特征 Transformer

将局部特征作为输入,输出 K 个局部引导的表达。直觉上来说,不同的局部信息的组合可以产生实例的多样的表达。通过多头自注意力机制实现。通过关注于 K 个不同的组合,来得到 K 个特征图。

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

通过残差学习来融合特征

将全局特征和局部引导的特征合并起来,来得到最终的 K 个嵌入的输出。注意到这两部分会有信息的重合,所以将这个任务作为残差学习的一个任务。我们将全局特征作为残差块的输入,局部引导的特征作为残差。(看下面的公式,其实就是把两个特征加起来,然后做个归一化)这样的残差映射使得优化局部引导的特征参数更容易,能够帮助找到有意义的局部特定的信息;极端情况下,如果全局特征是最优的,那么残差会输出 0 ,然后这个方法就与标准的嵌入无异。

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

优化和推导

总的损失函数如下:

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

MIL Loss

MIL loss 思想:同个样例的不同模态映射后的特征之间的距离(都是有 K 个特征,所以距离是 K*K 的)的最小值,应该要小于不同样例的不同模态特征直接的距离。这里距离计算采用的余弦距离。在这个限制下优化,使得我们的模型对于部分的跨模态联系会更加鲁棒。

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

可以看作是困难样本采样。

多样性损失

为了确保 PIE-Net 能够产生一个实例多样的表达,设计了一个损失惩罚 K 个局部引导特征中的冗余。为了度量这个冗余,计算一个 Gram 矩阵。

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

这里有将每个维度上的特征都归一化,所以它们的计算在一个 l^2 的平面上。(类似于计算余弦相似度,尽可能让互不相似)。

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

域差异损失

只使用 MIL 损失有一个缺陷:两个分布可能很快就发散了,因为只优化了距离最小的对。剩余的对都没有得到限制。因此有必要对两个分布之间的差异进行限制。

计算两个分布差异的常用方法:Maximum Mean Discrepancy (MMD),最大平均差异

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

最终形式:

论文阅读:Polysemous Visual-Semantic Embedding for Cross-Modal Retrieval

推导

测试时,假设数据库中有 M 个样本,得到了 KM 个嵌入向量。给定一个查询样本(一个句子),计算 K 个嵌入向量,在数据库中比较其与所有向量之间的预先距离,找出一个最小的。总共比较 K^2*M次。

实现细节

  • 视频每秒八帧进行采样
  • 交叉验证了最优化的参数
  • 使用 AMSGRAD 优化器,初始学习率 2e-4,当 loss 不降时减半
  • 先训 50 个 epoch,每个 batch 128个样本,不训练 CNN 权重
  • 之后 finetune 50 个 epoch,包括 CNN 的权重