论文记录:Visual Relationship Detection with Language Priors [VR-LP] (ECCV-16)

(这里只是记录了论文的一些内容以及自己的一点点浅薄的理解,具体实验尚未恢复。由于本人新人一枚,若有错误以及不足之处,还望不吝赐教)

总结

  1. contributions:

    • 该论文是第一篇提出将 relationship 的 objects 和 predicates 分开独立看待,即 “train visual models for objects and predicates individually and later combines them together to predict multiple relationships per image”,解决了传统的基于 Visual Phrases 方法的所需 ① 分类器数量庞大(O(N2K)O(N^2K))和 ② 由于 relationships 的 long-tail 分布所带来的有些 relationship type 对应的训练样本少,从而使得对应的分类器训练不充分这两种典型的问题。由于存在这两种问题,基于 Visual Phrases 方法的伸缩性非常差,仅适用于小规模场景却无法适用于大规模场景,且完全无法用于 zero-shot 场景

    • 该论文提出了 VRD 数据库,该数据库解决了传统的用于视觉关系检测数据库的平均每个实体所涉及的关系不充分(即实体对之间的关系不丰富)/ relationship type 类型少等问题 / 谓词具有歧义性(无对比 VG),丰富了实体对间的关系且关系的种类也变得丰富(如:verbs, spatial, prepositions, comparative, actions, preposition phrase等)。具体对比信息如下:

      论文记录:Visual Relationship Detection with Language Priors [VR-LP] (ECCV-16)

      VRD 统计信息:5000张图片,100种实体类别,70种 predicate 种类,共37993个实例化的 relationship 和6672中未实例的 relationship type,平均每种实体类别具有24.25种关系

  2. 该论文是第一篇提出将 relationship 的 objects 和 predicates 分开独立看待,故其实验效果,从现在来看,还是很不理想,但却明显超过了传统的基于 Visual Phrases 的方法了。论文提出的模型仅利用了 relationships 的视觉外观信息和对应的语义信息,且是在单关系的假设下进行的,即默认每两个实例化后的 object 至多仅存在一种关系

  3. 缺点

    • 仅考虑了 relationships 之间的语义相关性,而忽略了内部的 objects 和 predicate 之间存在的语义关联性
    • 仅考虑了实体对之间至多仅存在一种关系的可能性,而忽略了可能存在多种关系这种情况
    • 未利用到空间位置信息

模型框架

论文记录:Visual Relationship Detection with Language Priors [VR-LP] (ECCV-16)

  1. 两个模块

    1. Visual Appearance Module: 用于提取 the appearance of visual relationships,具体做法是先训练一个 VGG 识别并提取图片上的 objects 以及其视觉特征。待第一个 VGG 训练完后,就变成 untrainable,然后才开始训练另一个 VGG 用于提取 predicate 的视觉特征,即 object pair 所在区域的并集(union)。模型对应公式为:
      (1)V(R<i,k,j>,Θ<O1,O2>)=Pi(O1)(zkTCNN(O1,O2)+sk)Pj(O2)R V(R_{<i,k,j>}, \Theta | <O_1,O_2>) = P_i(O_1) (\mathbf{z}_k^T \text{CNN}(O_1,O_2) + s_k) P_j(O_2) \in R \tag{1}
      其中 ΘRK×(d+1)\Theta \in R^{K×(d+1)} 是要训练的参数集,其第 kk 行表示第 kk 个 predicate 所对应式中参数 {zkRd,skR}\{\mathbf{z}_k \in R^d, s_k \in R\}(zkT,sk)(\mathbf{z}_k^T, s_k) 为第 kk 个 predicate 对应的视觉 embedding),其中 KK 是 predicate的数量(该参数集属于第二个 VGG,在训练第二个 VGG 时,第一个 VGG 已经训练结束,变成 untrainable,所以公式(1)中并无第一个 VGG 所需的训练参数)。Pi(O1),Pj(O2)RP_i(O_1),P_j(O_2) \in R 是第一个 VGG 的输出,分别表示 O1,O2O_1,O_2 属于类别 i,ji,j 的概率;(zkTCNN(O1,O2)+sk)R(\mathbf{z}_k^T \text{CNN}(O_1,O_2) + s_k) \in R 表示在已知 O1,O2O_1,O_2 的前提下,二者之间存在关系 kk 的概率(此处未限定要在 [0,1] 区间内)。但由于 O1,O2O_1,O_2 本身的类别也非100%确定,故还需通过连乘这三个概率,获得更加准确的概率值,从而最终获得了公式(1)。公式(1)的值越大,表示对应的视觉三元组成立的概率(从视觉角度)就越高

    2. Language Module: 论文观察到 relationships 之间存在语义相关性(“One of our key observations is that relationships are semantically related to one another”),因而该模块的作用是,使得语义相近的 relationships 能够聚在一起,而语义差距大的则尽可能互相远离。这个功能是通过一个 projection function\it{projection\ function} 来实现的,即它能将语义相近的 relationships 映射成相似的数值,语义差距远的映射成不同的数值,同时,值越大,表示对应的视觉三原则成立的概率(从语义角度)就越高。该函数具体定义如下:
      (2)f(R<i,k,j>,W)=wkT[word2vec(ti)T,word2vec(tj)T]+bkR f(\mathcal{R}_{<i,k,j>}, \mathbf{W}) = \mathbf{w}_k^T [\text{word2vec}(t_i)^T, \text{word2vec}(t_j)^T] + b_k \in R \tag{2}
      其中 ti,tjt_i,t_j 表示类别实体 i,ji,j 对应的单词,函数 word2vec\text{word2vec} 用于将单词映射成对应的向量表示,论文中采用的词向量维度为 300。因此,wkR600,WRK×601\mathbf{w}_k \in R^{600}, \mathbf{W} \in R ^{K×601},即 W\mathbf{W}{{w1,b1},,{wK,bK}}\{\{\mathbf{w}_1, b_1\}, \dots, \{\mathbf{w}_K, b_K\}\}W\mathbf{W} 的第 kk 行可视为第 kk 个 predicate 对应的语义 embedding,是要学习的参数。

      为了使得 projection function\it{projection\ function} 能够实现聚类的作用,论文采用的训练方法如下:
      (3)[f(R,W)f(R,W)]2d(R,R)=constant,R,R \begin{array}{l} \frac{[f(\mathcal{R, \mathbf{W}} ) - f(\mathcal{R', \mathbf{W}})]^2}{d(\mathcal{R,R'})} = constant, \forall \mathcal{R,R'} \end{array} \tag{3}
      其中 d(R,R)=i{s,o,p}cos(word2vec(Ri),word2vec(Ri))d(\mathcal{R,R'}) = \displaystyle\sum_{i \in \{s, o, p\}}\cos{(\text{word2vec}(\mathcal{R}_i), \text{word2vec}(\mathcal{R}'_i))}。注意,对于指定的 R,R\mathcal{R,R'},对应的 d(R,R)d(\mathcal{R,R'}) 是固定不变的,语义相近的 relationships 对应的 d(R,R)d(\mathcal{R,R'}) 小,因而对应的分子小,即使得语义相近的 relationships 经过投影函数 ff 投影的值就相近,相反的则投影的值的差异就大。式中的 constantconstant 不是人为指定的,而是通过最小化下面公式来自学习到的:
      (4)K(W)=var({[f(R,W)f(R,W)]2d(R,R) R,R}) K(\mathbf{W}) = var(\{ \frac{[f(\mathcal{R, \mathbf{W}}) - f(\mathcal{R}', \mathbf{W})]^2}{d(\mathcal{R,R'})}\ \forall \mathcal{R,R'} \}) \tag{4}
      其中 var()var() 表示求标准差操作。联合(3)(4)可发现,(3)中的 constantconstant 其实就是(4)中的均值,这也是前面说该值不是人为指定而是自学习得到的原因。直觉上,”最小化“该公式的目的是,使尽可能多的 relationships 能够满足于公式(3)。注意,由于 <R,R><\mathcal{R,R}'> 的数量非常大(对于VRD,有 )6672667144,508K6672 * 6671 \approx 44,508K,故为了减少计算量,随机采样了 500K500K 个 relationship pairs。

      然而,通过公式(4)仅能实现使得语义相似的 relationships 具有相近的投影值,而无法实现“投影值越大,成立概率越高”这个目的的。实现该目的是通过需要最小化下面公式:
      (5)L(W)=min{R,R}max{f(R,W)f(R,W)+1,0} L(\mathbf{W}) = \min\sum_{\{ \mathcal{R,R'} \}}\max\{ f(\mathcal{R'}, \mathbf{W}) -f(\mathcal{R}, \mathbf{W}) + 1, 0 \} \tag{5}
      其中,论文认为,在训练集中出现频率越高的 relationships (type),其成立的概率就越高,即具有更高的投影值,因此,公式(5)中的出现的频率低的作为 R\mathcal{R'} (与公式(4)不一样,(4)中的 R\mathcal{R'} 表示与 R\mathcal{R} 不同的 relationship),高的作为 R\mathcal{R} 。最小化该函数的目的是使得低频的 relationships 的投影值低,高频的则高。

  2. 目标函数:
    (6)minΘ,W{C(Θ,W)+λ1L(W)+λ2K(W)} \min_{\Theta,\mathbf{W}}\{ C(\Theta, \mathbf{W}) + \lambda_1 L(\mathbf{W}) + \lambda_2 K(\mathbf{\mathbf{W}}) \} \tag{6}
    其中 λ1,λ2\lambda_1,\lambda_2 为超参数,论文中分别设置为 0.05,0.0020.05,0.002C(Θ,W)C(\Theta, \mathbf{W}) 的定义如下:
    KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ C(\Theta, \mat…
    其中 R\mathcal{R'} 表示人为生成的错误的 relationships(与公式(5)不一样,(5)里的 R\mathcal{R'} 表示低频的 relationships),而 R\mathcal{R} 表示正确的 relationships。最小化公式(7),其实就是使得正确 R\mathcal{R'} 对应概率 P(R)=V( )f( )P(\mathcal{R'}) = V(\cdots)f(\cdots) 高,错误则小(Θ,W\Theta,\mathbf{W} 分别为 Visual Appearance Module 和 Language Module 中要学习的参数,实质中,二者是同一个 predicate 对应的视觉 embedding 和 语义 embedding)。

    在预测时,对于同一幅图片上的每一对 <O1,O2><O_1,O_2>,对二者存在关系的预测为:
    (8)R=argmaxRV(R,Θ<O1,O2>)f(R,W) \mathcal{R}^* = \arg\max_{\mathcal{R}}V(\mathcal{R},\Theta|<O_1,O_2>)f(\mathcal{R},\mathbf{W}) \tag{8}

实验结果

论文记录:Visual Relationship Detection with Language Priors [VR-LP] (ECCV-16)
论文记录:Visual Relationship Detection with Language Priors [VR-LP] (ECCV-16)