前言
笔记
- 这篇文章主要提出了一个混合模型,这个模型不仅结合了subject、object、predict这些成分,还有通过w2v encoding的visual phrase representation等。并且作者还提出了如何将训练集中已经有的学到的triplets transfer到训练集中没有见过的triplets。
- 详细点说,作者的贡献有三个方面:First, we take advantage of both the compositional and visual phrase representations by learning complementary visual-language embeddings for subject, object, predicate and the visual phrase. Second, we develop a model for transfer by analogy to obtain visual-phrase embeddings of never seen before relations. Third, we perform experimental evaluation on three challenging datasets where we demonstrate the benefits of our approach on both frequent and unseen relations. 这里实在不太好翻译,还是看作者的原话意会比较好,重点是前两个贡献。这里里边有一些词语后边有详细的解释,这里不懂没有关系,像这种文章继续往下读就好了,读完一遍再回头来看就会清楚许多。
- 图2就是整个网络的架构
- 分析图2,左边的输入其实和之前的一些网络没有太大的区别,仍然是使用预训练好的目标检测器检测出图片中的人-物对,然后这里分出来的四个支路,前三个分别是subject、object、spatial。最后一个在论文4.2节有提到,是aggregate前三个支路的结果。然后将这四个支路通过两层的MLP变换到某个固定的维度,右侧的输入同理,是左侧四个支路对应的language注释,通过word2vector编码到词向量空间然后通过两个FC变换到固定的维度,左右两边最后输出的维度是相等的都是d维。
- 另一个比较特殊的就是训练时采用的损失函数:
每一个支路的损失函数用的都是这个,直接从损失函数的表达形式来看,其实我们的目的就是让这个损失函数最大(其实就是让第一项里边的wtb和vib的点积最大,第二项里的点积最小)。通过观察第一项前边yti=1第二项yti=0很容易可以理解,就是通过训练,让visual representation(vib)和它对应的language representation(wtb)越接近越好,而不匹配的两组结果则越远越好。最后四个支路的loss相加就是最终的联合loss 。 - 这篇文章接下来的部分就是让人比较困惑地推理阶段:
作者说在测试阶段,给一个查询,然后计算这个查询的wtb和vib,计算方式使用公式1和2,这与train的过程一样。只不过是计算输入图片的vib计算给定的查询的wtb。然后利用公式4在计算出一个相似分数。 - 作者在图3中解释了它的model为何要有第四个分支即visual phrase embedding,因为单靠predicate embedding,会出现它只依赖于动作,而不关心object的appearance,比如图三中的,person ride horse和person ride car的关系显然要比person jump horse和person ride horse远,但是由于predicate embedding仅仅只能考虑空间上的关系来预测动作,所以他的embedding space的信息是非常有限的,而visual phrase embedding能很好地观察出,ride horse和jump horse在直觉上更像是一样的HOI,而ride car显然奇怪(不一样)的要多。
- 下面是本文的另外一个重点,即如何Transferring embeddings to unseen triplets by analogy transformations:这个过程有两步,第一步是我们要搞清楚如何转换,第二步是哪些visual phrase适合这样的转换。例如要生成一个没有见过的比如person ride cow,我们想要从person ride horse转换而不是person ride bus(显然这差的很远)。公式5表示了我们要从source triplet转换到target triplet的式子。其中Γ是修正项,它通过t和t’的差异来修正wt和wt’的差异。
然后经过调整的公式如公式6,因此对于一个具体的例子,比如要从person ride horse变成person ride camel则只有object不同,所以Γ里边只对O的差异做变换,其他两维没有差异都是0。
关于这个Γ到底怎么变换,其实也很简单:就是一个MLP,当然也可以选择其他的变换方法。这里作者在第四节也比较了不同形式的Γ。
- 最后还有一个问题就是前边提到的,我们要转换的triplet是哪些triplet?直觉上当然是最像的给定查询的triplet,就像上边所说的,总不能ride cow,你用rid bus来transfer吧!因此:定义一个权重函数G:
其中wtb和wt’b的点积就是来衡量source和target的subject、object、predicate两两之间的相似程度,特别主义的是这里的wtb是word2vector的词向量编码。其实很好理解这样做的原因,因为在词向量编码中,考虑的因素有很多,在词向量空间中cow和horse都是动物,他们之间的距离会比较近。而car离的就比较远。α是一个超参数,用来控制三者的贡献程度。对于一个给定的target t‘我们会根据G找到k个与它最相似的source triplet作为Nt’。 - 如何训练Γ呢?作者提到它利用数据集生成了一些source t和target t。在给定的数据的情况下优化和公式3类似的对数似然函数,但是这里使用的是真实目标三元对的visual feature和source t的language feature。
- 最后就是在测试的时候,如何通过和目标三元对类似的source t去计算目标三元对。使用公式10:其中t就是取所有和u相似的三元对的集合中的所有值然后求和。w表示的是visual phrase embedding就是word2vector的特征,Γ就是学出来的那个推理转换函数,G是前边提到的权值缩放因子,用来重新定义不同source triplets的贡献程度。
- 后边第四节就是一些相关的实验了,值得注意的是这节中作者对前边提到的一些函数做了比较详细的展开:主要就是前边一些实用FC或者MLP产生的维数前边都是用字母来代表,这里作者给出了他进行试验的具体数值。
- 一些实验的结果
- 最后总结:作者提出了检测HOI的一种新的方法,他结合了compositional and visual phrase representations,按我的理解就是前边很多的方法只是在图像特征层面,这里作者创新性的将HOI对应注释的词向量空间特征也加入进来了,并且提出了一个类比迁移模型,能够计算从未见过的visual phrase embeddings。