文章目录
写在前面的话
跨模态检索的关键在于:减少异构之间的差距,利用跨模态之间的判别信息[19,33,31,25]
1. Motivation
- 现有的方法都是为unimodal匹配开发的,而不适用于跨模态的multimodal有着异构特征(heterogeneous features)的数据匹配
- 以往的跨模态检索使用的损失函数是ranking loss,训练时候是随机选择的sampling,会造成收敛过慢、效果不佳的问题
- 以往的方法对待positive pairs和negative pairs是相等的(没有区别对待),另外传统的triplet loss会丢弃那些信息比hardest pairs的pairs
2. Contribution
- 为跨模态匹配,提出了一个通用的加权框架,分别为positive sample和negative sample提出了两个计算多项式权重的函数。
- 介绍了一种新的多项式损失函数,该函数可以有效的从冗余对中选择信息对
3.Method
3.1 Problem Statement
以往的方法都是使用margin将positive pair的得分变得高于negative pair。(也就是triplet loss)而这些方法是丢掉了比hardest pairs的信息少的pairs。
3.2 Universal Weighting Framework for Cross-Modal Matching
N v i = { S i , j , i ≠ j } N_{v_i}=\{S_{i,j,i\neq j}\} Nvi={Si,j,i=j}是sample v i v_i vi的所有的negative pairs的相似性得分的集合。 N t j = { S i j , j ≠ i } N_{t_j}=\{S_{ij,j\neq i}\} Ntj={Sij,j=i}是sample t j t_j tj的所有的negative pairs的相似性得分的集合。
L = ∑ i = 1 i = N { G Pos S i i + ∑ ( G Neg S i j , i ≠ j ) } (4) L=\sum_{i=1}^{i=N}\left\{G_{\text {Pos }} S_{i i}+\sum\left(G_{\text {Neg }} S_{i j, i \neq j}\right)\right\}\tag{4} L=i=1∑i=N{GPos Sii+∑(GNeg Sij,i=j)}(4)
其中 G P o s G_{Pos} GPos是positive pairs的权重, G N e g G_{Neg} GNeg是negative pairs的权重。两者是相似性得分的函数:
G Pos = G ( S i i , N v i ) (5) G_{\text {Pos }}=G\left(S_{i i}, N_{v_{i}}\right)\tag{5} GPos =G(Sii,Nvi)(5)
G Neg = G ( S j j , N t j ) (6) G_{\text {Neg }}=G\left(S_{j j}, N_{t_{j}}\right) \tag{6} GNeg =G(Sjj,Ntj)(6)
其中 G ( ⋅ ) G(\cdot) G(⋅)表示权重和相似性得分之间的关系。理论上来讲, G ( ⋅ ) G(\cdot) G(⋅)可以是自相似性和相对相似性的函数。但是 G ( ⋅ ) G(\cdot) G(⋅)应该满足:
- positive pairs的相似性得分增加,他的权重的值减小
- negative pairs的相似性得分怎去,他的权重增加
式(4)式一个通式,现有的方法都是他的特殊性的表达。
3.3 Informative Pairs Mining
本节介绍,通过在positive 和 negative pairs之间比较相似性得分,选择含有有用信息的negative pairs。对于给定的anchor v i v_i vi,设其positive sample是 t i t_i ti,negative sample是 t j , i ≠ j t_{j,i\neq j} tj,i=j。如果 S i j S_{ij} Sij满足:
S i j , i ≠ j > S i i − λ (7) S_{i j, i \neq j}>S_{i i}-\lambda\tag{7} Sij,i=j>Sii−λ(7)
那么,negative pair ( v i , t j ) (v_i, t_j) (vi,tj)就被选中。其中式(7)中的 λ \lambda λ margin。Figure 3.展示了sample。注意,在一个mini-batch中,每个anchor只有一个positive sample。
3.4 Polynomial Loss for Cross-Modal Matching
通过以上的方法,具有更多信息的negative pairs会被选出,而更少信息的negative pairs则会被丢掉。理论上来讲, G ( ⋅ ) G(\cdot) G(⋅)可以是一个自相似和相对相似的函数(G can be a function of self-similarity and relative similarity.),但是越复杂的G会有越多的超参数,因为该文章定义 G ( ⋅ ) G(\cdot) G(⋅)为自相似的函数,对于给定的positive pairs:
G Pos = a m S i i m + a m − 1 S i i m − 1 + ⋯ + a 1 S i i + a 0 (8) G_{\text {Pos }}=a_{m} S_{i i}^{m}+a_{m-1} S_{i i}^{m-1}+\cdots+a_{1} S_{i i}+a_{0}\tag{8} GPos =amSiim+am−1Siim−1+⋯+a1Sii+a0(8)
其中, S i i S_{ii} Sii是相似性得分, { a i } i = 0 i = m \{a_i\}^{i=m}_{i=0} {ai}i=0i=m是超参, m m m是正整数。当相似性得分升高, G P o s G_{Pos} GPos的值应该减小。其趋势应该符合Fugure 2a.
对于给定的negative pairs:
G N e g = b k S i j k + b k − 1 S i j k − 1 + ⋯ + b 1 S i j + b 0 , i ≠ j (9) G_{N e g}=b_{k} S_{i j}^{k}+b_{k-1} S_{i j}^{k-1}+\cdots+b_{1} S_{i j}+b_{0}, i \neq j\tag{9} GNeg=bkSijk+bk−1Sijk−1+⋯+b1Sij+b0,i=j(9)
其中, S i j S_{ij} Sij是相似性得分, { b i } i = 0 i = k \{b_i\}^{i=k}_{i=0} {bi}i=0i=k是超参, k k k是正整数。 G N e g G_{Neg} GNeg的趋势应该符合Figure 2b.
3.4.1 Avg Polynomial Loss
L A v g = 1 N ∑ i = 1 i = N [ G P o s S i i p + ∑ S i j ∈ N v i G N e g S i j q N u m ( N v i ) + λ 1 ] + + 1 N ∑ j = 1 j = N [ G P o s S j j p + ∑ S i j ∈ N t j G N e g S i j q N u m ( N t j ) + λ 2 ] + (10) \begin{aligned} L_{A v g}=& \frac{1}{N} \sum_{i=1}^{i=N}\left[G_{P o s} S_{i i}^{p}+\frac{\sum_{S_{i j} \in N_{v_{i}}} G_{N e g} S_{i j}^{q}}{N u m\left(N_{v_{i}}\right)}+\lambda_{1}\right]_{+}+\\ & \frac{1}{N} \sum_{j=1}^{j=N}\left[G_{P o s} S_{j j}^{p}+\frac{\sum_{S_{i j} \in N_{t_{j}}} G_{N e g} S_{i j}^{q}}{N u m\left(N_{t_{j}}\right)}+\lambda_{2}\right]_{+} \end{aligned}\tag{10} LAvg=N1i=1∑i=N[GPosSiip+Num(Nvi)∑Sij∈NviGNegSijq+λ1]++N1j=1∑j=N[GPosSjjp+Num(Ntj)∑Sij∈NtjGNegSijq+λ2]+(10)
式(10)可以变换为:
L A v g = 1 N ∑ i = 1 i = N [ ∑ a p S i i p + ∑ S i j ∈ N v i ∑ Q b q S i j q N u m ( N v i ) ] + + 1 N ∑ j = 1 j = N [ ∑ a p S j j p + ∑ S i j ∈ N t j ∑ Q b q S i j q N u m ( N t j ) ] + (11) \begin{aligned} L_{A v g}=& \frac{1}{N} \sum_{i=1}^{i=N}\left[\sum a_{p} S_{i i}^{p}+\frac{\sum_{S_{i j} \in N_{v_{i}}} \sum^{Q} b_{q} S_{i j}^{q}}{N u m\left(N_{v_{i}}\right)}\right]_{+}+\\ & \frac{1}{N} \sum_{j=1}^{j=N}\left[\sum a_{p} S_{j j}^{p}+\frac{\sum_{S_{i j} \in N_{t_{j}}} \sum^{Q} b_{q} S_{i j}^{q}}{N u m\left(N_{t_{j}}\right)}\right]_{+} \end{aligned}\tag{11} LAvg=N1i=1∑i=N⎣⎡∑apSiip+Num(Nvi)∑Sij∈Nvi∑QbqSijq⎦⎤++N1j=1∑j=N⎣⎡∑apSjjp+Num(Ntj)∑Sij∈Ntj∑QbqSijq⎦⎤+(11)
其中, N u m ( N v i ) Num(N_{v_i}) Num(Nvi)和 N u m ( N t j ) Num(N_{t_j}) Num(Ntj)表示sample v i v_i vi和 t j t_j tj的negative pair的数量。 P P P和 Q Q Q式positive pair和negative pair的阶数。设置最小的 p p p和 q q q是0, a 0 = λ 1 , b 0 = λ 2 a_0=\lambda_1,b_0=\lambda_2 a0=λ1,b0=λ2,因为有v2t还有t2v,所以损失函数有两项,前项代表image retrieval caption;后项代表caption retrieval image。
3.4.2 Max Polynomial Loss
最大多项式损失函数仅使用hardest negative pair:
L M a x = 1 N ∑ i = 1 i = N [ G P o s S i i p + G N e g M a x { N v i } q + λ 1 ] + + 1 N ∑ j = 1 j = N [ G P o s S j j p + G N e g M a x { N t j } q + λ 2 ] + (12) \begin{aligned} L_{M a x}=& \frac{1}{N} \sum_{i=1}^{i=N}\left[G_{P o s} S_{i i}^{p}+G_{N e g} M a x\left\{N_{v_{i}}\right\}^{q}+\lambda_{1}\right]_{+}+\\ & \frac{1}{N} \sum_{j=1}^{j=N}\left[G_{P o s} S_{j j}^{p}+G_{N e g} M a x\left\{N_{t_{j}}\right\}^{q}+\lambda_{2}\right]_{+} \end{aligned}\tag{12} LMax=N1i=1∑i=N[GPosSiip+GNegMax{Nvi}q+λ1]++N1j=1∑j=N[GPosSjjp+GNegMax{Ntj}q+λ2]+(12)
其中, M a x { N v i } Max\{N_{v_i}\} Max{Nvi}和 M a x { N t j } Max\{N_{t_j}\} Max{Ntj}表示sample v i v_i vi和 t j t_j tj的hardest negative pair。
4.Experiments
使用image-text matching和video-text matching任务来验证多项式损失的作用。使用Recall@K作为指标,式(7)中的margin λ \lambda λ设为0.2。
4.1 Implementation Details
4.1.1 Image-Text Matching
使用两个benchmarks作为image-text matching的标准:MS-COCO和Flickr30K。MS-COCO包含123,287个图片,每个图片有5个描述。数据划分根据[16],使用113,287张图片作为训练集,5,000张图片作为验证集,5,000张图片作为测试集。Flickr30K包含31,783张图片,每张图片有5个句子描述。数据划分根据[16],使用1,000张图片作为验证集,1,000张图片作为测试集,剩余的作为训练集。
使用Stacked Cross Attention Network(SCAN)作为实验的网络。作为对比实验,不更改网络,仅更换损失函数。SCAN的输入有两个:一个是图片的特征是使用ResNet-101预训练的Faster-RCNN;另一个是通过biGRU编码的word features。
训练策略:使用Adam作为优化器,batch size为128。对于MS-COCO,前10个epoch,学习率为0.0005,接下来的10个epoch,设置为0.00005;对于Flickr30K,前15个epoch的学习率为0.0002,接下来的15个epoch,设置为0.00002。ploynomial loss的参数为 { a p } \{a_p\} {ap}和 { b p } \{b_p\} {bp}。使用启发式(heuristic)方法选择超参数。具体来说(Concretely),初始化 G ( ⋅ ) G(\cdot) G(⋅)保证其趋势符合Figure 2. 接下来,使用网格搜索的方法(grid search technology)来选择超参。对于MS-COCO设置 P = 2 , { a 0 = 0.5 , a 1 = − 0.7 , a 2 = 0.2 } ; Q = 2 , { b 0 = 0.03 , b 1 = − 0.3 , b 2 = 1.2 } P=2,\{a_0=0.5,a_1=-0.7,a_2=0.2\}; Q=2,\{b_0=0.03,b_1=-0.3,b_2=1.2\} P=2,{a0=0.5,a1=−0.7,a2=0.2};Q=2,{b0=0.03,b1=−0.3,b2=1.2};对于Flickr30K, P = 2 , { a 0 = 0.6 , a 1 = − 0.7 , a 2 = 0.2 } ; Q = 2 , { b 0 = 0.03 , b 1 = − 0.4 , b 2 = 0.9 } P=2,\{a_0=0.6,a_1=-0.7,a_2=0.2\};Q=2,\{b_0=0.03,b_1=-0.4,b_2=0.9\} P=2,{a0=0.6,a1=−0.7,a2=0.2};Q=2,{b0=0.03,b1=−0.4,b2=0.9}。
4.1.2 Video-Text Matching
使用两个数据集。ActivityNet-captions和MSR-VTT。ActivityNet-captions包含20k个视频,每个视频有5个描述,数据分割方法和[20]一致,10,009个视频作为训练集,4,917个视频作为测试集。MSRVTT包含10k个视频,每个视频大概有20个描述,数据分割方法和[20]一致,6,513个视频作为训练集,2,990个视频作为测试集。
使用Collaborative Experts(CE)框架作为实验的网络,CE是一个融合了多个预训练视频特征的框架。作为对比实验,保持网络结构不变,使用多项式损失函数替换原本的损失函数。
训练策略:使用Adam作为优化器,batch size为64。学习率为0.0004。ploynomial loss的参数为 { a p } \{a_p\} {ap}和 { b p } \{b_p\} {bp}。对于ActivityNet-captions, P = 2 , { a 0 = 0.5 , a 1 = − 0.7 , a 2 = 0.2 } ; Q = 2 , { b 0 = 1 , b 1 = − 0.2 , b 2 = 1.7 } P=2,\{a_0=0.5,a_1=-0.7,a_2=0.2\};Q=2,\{b_0=1,b_1=-0.2,b_2=1.7\} P=2,{a0=0.5,a1=−0.7,a2=0.2};Q=2,{b0=1,b1=−0.2,b2=1.7};对于MSRVTT, P = 2 , { a 0 = 0.5 , a 1 = − 0.7 , a 2 = 0.2 } ; Q = 2 , { b 0 = 0.03 , b 1 = − 0.3 , b 2 = 1.8 } P=2,\{a_0=0.5,a_1=-0.7,a_2=0.2\};Q=2,\{b_0=0.03,b_1=-0.3,b_2=1.8\} P=2,{a0=0.5,a1=−0.7,a2=0.2};Q=2,{b0=0.03,b1=−0.3,b2=1.8}
4.2 Image-Text Matching Results
Table 1中,SCAN使用Max Polynomial Loss效果最佳。
Table 2展示了MS-COCO上的结果,其中使用了文章所提出的方法的实验,召回率表现出色。
传统的三元组loss尝试从冗余对中选取具有信息的pairs,但是该方法对positive pairs和negative pairs是一视同仁的。与此相反,所提出的多项式loss为正负对分配了适当的权重值,并且权重值与其相似性得分有关。 所提出的方法可以同时选择和加权信息对。
4.3 Video-Text Matching Results
根据Table 3.和Table 4.可以看出,使用了文章的loss的实验,在所有指标上均优于baseline。注意,在与CE的Triplet loss做对比时,两组实验采用的是相同的video encoder和text encoder。
4.4 Ablation Study
4.4.1 Parameter Analysis
对于多项式loss,参数集 { a i } \{a_i\} {ai}和 { b j } \{b_j\} {bj},可选范围过于广,所以在此只分析超参的敏感性。作者表示,参数集 { b j } \{b_j\} {bj}对于模型的表现更为敏感。 b 0 = 0.3 b_0=0.3 b0=0.3,探索 b 1 b_1 b1和 b 2 b_2 b2对模型表现的影响:
值得一提的是,Table 5.中所有的结果都比baseline要好。
4.4.2 Triplet Loss v s . vs. vs. Max Polynomial Loss
最大多项式损失函数仅包含hardest negative pairs,可以看作是加权版的triplet loss,在MS-COCO数据集上比较max polynomial loss和triplet loss的表现:
Figure 4.可以看到,Max Polynomial Loss比Triplet Loss收敛的更快。该对比实验证明了多项式加权机制的优越性(superiority)。
4.4.3 Max v s . vs. vs. Avg Polynomial Loss
在本节,探索了Max和Avg Polynomial Loss的影响。
Max Polynomial Loss加权了positive pairs和对于每个anchor来说的hardest negative pairs,因此Max Polynomial Loss可以看作是对hardest negative paris加权版的Triplet Loss。
相反,Average Polynomial Loss包含了negative pairs的信息,同时对他们分配不同的权重。
因此,Max Polynomial Loss只处理了信息对的子集,因此,他的计算复杂度低于包含了所有信息对的Average Polynomial Loss:
Figure 5. 展示了在MS-COCO上两个方法的表现。可以看出,Avg Polynomial Loss在第一次迭代的时候就先于Max Polynomial Loss,可以解释为:Avg Polynomial Loss包含更多的信息对。但是,对于最后的结果,Max Polynomial Loss的结果略(slightly)好于Avg Polynomial Loss,其原因可能是不合理的参数设置(喵喵喵???)。由于Avg Polynomial Loss包含过多的negative pairs,因此很难找到一组参数 P N e g P_{Neg} PNeg来拟合所有的含有信息的negative pairs。
4.5 Qualitative Results
在本节,在MS-COCO上可视化的展示了Top-3的检索结果,定性的结果如Firuge 6.:
5. Conclusion
作者为跨模态匹配问题设计了一个通用的加权框架,该框架分别为正负例都设计了一个加权函数。进一步的,作者基于提出的框架提出了多项式损失函数。实验结果证明在四个跨模态匹配问题上证明,所提出的多项式损失函数有着出色的表现。
未来将会探索用于跨模态匹配的更加高级的加权函数。