Abstract
目前已有的场景图生成方法主要面临几个问题:
- 含糊不清的节点表示,基于图神经网络的消息传递模型(GMP)基本都对虚假的节点间的关联性比价敏感。
- 在关系预测上的低多样性,这是由于严重的类不平衡和大量的标注缺失。
我们首先从unrolling的观点(GMP 可以作为GLD的solver)中学习到GMP和图拉普拉斯去噪(GLD)。基于这类发现,我们提出了一种展开的消息传递模型并引入了一种基于 ℓ p ℓ_p ℓp的图形正则化来抑制节点之间的虚假连接。第二、我们提出了一种图多样性的增强模型来提高关系预测的多样性。实验证明其在语义分割上具有很好的表现。
Introduction
目前,SGG发现了一种新的出路,那就是在视觉和自然语言领域之间架起了桥梁。目前现有的SGG方法大多通过基于背景信息构造模型的方法来学习节点和边的辨别性表示,并且大多采用图信息传递的机制。在GMP中,节点的表示基本上通过可学习的注意力权重来聚合邻居节点的信息,并且这个过程受到节点标签的监督。
但是,目前的GMP会受到节点之间的虚假关联性的负面影响,这里,假性相关指的是一对语义不同的节点之间有相对较大的注意力权重。这些虚假的相关关系经常发生,因为空间上相近的节点之间的注意权重往往很大,而不管它们的对象类别是否相关。
如下图中所示,surfboard的特征就被man的特征所支配。因此一些节点的特征表示质量经过错误消息传播后可能会下降。同时,由于关系特征的长尾分布加上大量的关系标注缺失,会导致SGG的关系预测多样性较低。如下图(b)中所示,两张图中一共有六个man-street对,但是只有两对被标注了且关系都是on。
(a)节点间的虚假关系会让GMP产生含糊不清的表示
(b)同一类别的节点对的关系预测缺乏多样性,缺失的关系标注通过下划线加灰色表示出来。
为了解决上述问题,提出了一种正则化展开的网络(RU-Net)。我们首先学习GLD和GMP的关系。他们认为1)GMP可以作为GLD的solver。2)在GLD公式中广泛采用的二次惩罚对异常值很敏感(例如:节点间的错误连接)。作为替代方案,我们提出了一种unroll message passing(U-MP)模型并且采用基于拉普拉斯矩阵的图正则化方法来打压节点间的错误连接,这样可以有效的减少节点表示的模糊性。同时,我们确定基于 ℓ p ℓ_p ℓp的图正则化的优化可以通过在U-MP中集成一个重权矩阵这种端到端的方法来实现,这解释了节点之间的语义不相似性。
其次,提出了一种群体多样性提高(Group diversity enhancement——GDE)的模型来提高对有标注和无标注的sample的关系预测多样性。更具体地说,由于关系的得分向量在预测为不同类别时往往是线性独立的,我们将关系预测多样性的优化表述为一个秩最大化问题。又因为秩最大化是一个NP难的问题,所以我们用 ℓ 2 , 1 − n o r m ℓ_{2,1}-norm ℓ2,1−norm来近似表示矩阵的秩。我们也会把大矩阵分割成几个一些小的矩阵,每一个小矩阵包含相同对象类别的节点对的关系预测。通过扩充 ℓ 2 , 1 − n o r m ℓ_{2,1}-norm ℓ2,1−norm,关系多样性预测会得到更有效的优化。
总的来讲,本篇学习的贡献主要为三个方面:
(1)一个全新的unrolling框架,将GMP解释为GLD问题的解卷器。
(2)U-MP 模型通过基于 ℓ p ℓ_p ℓp的图正则化方法构造的spuriousness-robust 消息传递机制。该机制提高了GMP对抗节点间的错误连接的鲁棒性。
(3)GDE模型提升了关系预测的多样性,该模型通过 ℓ 2 , 1 − n o r m ℓ_{2,1}-norm ℓ2,1−norm正则化方法
Method
本段落首先介绍序言部分,然后解释网络细节和损失函数。
相比于传统的SGG模型(图中灰色的框),我们提出了两个正则化方法。具体来讲,本文的正则化方法会作为一个重加权矩阵来优化注意力矩阵,并减少节点表示的模糊性。多样性正则化则与交叉熵损失相结合,并通过秩最大化来优化关系预测。
如上图所示,根据DAU的观点,U-MP模型使用 l p − b a s e d l_p-based lp−based的图正则化来提升现有的GMP模型的鲁棒性来对抗节点之间的错误连接。而GDE模型则通过成组的 ℓ 2 , 1 − b a s e d ℓ_{2,1}-based ℓ2,1−based正则化方法来提高关系预测的多样性。
Preliminaries
**Notations:**为了获取每一个物体的外观特征, O O O用于表示物体类别、 R R R表示关系类别,第 i i i个结点的特征可以表示为 x i ∈ R d x_i\in R^d xi∈Rd。其中 x i x_i xi是通过对[外观特征,物体分类概率,空间特征]的线性变换获得的。对于一个包含 n n n个节点的图像,我们可以获得一个节点表示矩阵 X ∈ R n × d X\in R^{n\times d} X∈Rn×d。此外,对于一对节点 i , j i,j i,j的union box,我们使用 u i j ∈ R d u_{ij}\in R^d uij∈Rd进行表示, ∣ ⋅ ∣ |\cdot| ∣⋅∣、 ∣ ∣ ⋅ ∣ ∣ 2 ||\cdot||_{2} ∣∣⋅∣∣2和 ∣ ∣ ⋅ ∣ ∣ F ||\cdot||_F ∣∣⋅∣∣F分别表示数的绝对值、 l 2 l_2 l2范数和矩阵的Frobenius范数。
所谓Frobenius范数就是矩阵所有元素的平方和再开平方
[ ; ] [;] [;]表示矩阵拼接, ⊙ \odot ⊙表示点乘,对于矩阵 S ∈ R m × n S\in R^{m\times n} S∈Rm×n。 [ S ] i j [S]_{ij} [S]ij表示第 i j ij ij个值, s i s_i si表示矩阵的第i行。
**Smoothed ℓ p ℓ_p ℓp-norm Distance Metric:**为了提高模型鲁棒性来对抗节点间的错误连接,我们使用下述的平滑的 l p l_p lp-norm 距离矩阵:
其中 ϵ > 0 \epsilon>0 ϵ>0、 0 < p ⩽ 2 0<p\leqslant 2 0<p⩽2,当 p p p值很小的时候(例如 p = 0.1 p=0.1 p=0.1),该等式对于大值的 ∣ x ∣ |x| ∣x∣的重要性会减小,并且对离群值相较于 l 2 l_2 l2范数更加稳健。该函数的变化趋势由上图中的Graph Regularization中可以看出。
Unrolled Message Passing
现有的SGG方法基本上使用一系列GMP层来利用背景信息逐层完善节点表示。但是这种方法会对节点间的错误关联比较敏感,这会导致更为模糊的节点表示。为了解决这个问题,我们将讨论下面两个关键问题:
The Relation between GMP and GLD
在每一个GMP层中,会有一个函数计算每一对节点的注意力权重。每一个节点的特征会通过这个学习到的权重从邻居节点中聚合信息,第 k + 1 k+1 k+1层的GMP输出可以表示为:
其中 Y ∈ R n × d Y\in R^{n\times d} Y∈Rn×d表示经过GMP更新的节点特征。 A ∈ R n × n A\in R^{n\times n} A∈Rn×n表示可以学习的attention矩阵。 H ( Y ) \mathcal{H}(Y) H(Y)表示可以训练的、以 Y Y Y为输入的attention函数,Normalize表示在行上的正则化函数。
接下来会证明GMP模型在SGG的背景下可以很好的解决GLD问题,首先GLD问题可以被定义成下述公式:
其中下面的公式表示图拉普拉斯正则化(GLR), E \mathcal{E} E表示节点对的整个集合。和传统的GLD问题不同,这里的拉普拉斯矩阵是需要在SGG中学习的,其被定义为 L = D − A L=D-A L=D−A, [ D ] i i = ∑ j [ A ] i j [D]_{ii}=\sum_j[A]_{ij} [D]ii=∑j[A]ij
受算法解卷策略的启发,我们可以展开一连串的梯度步骤,形成一个不滚动的消息传递模型来优化 L G L D \mathcal{L}_{GLD} LGLD:
其中 Y ( 0 ) = X Y^{(0)}=X Y(0)=X,因此第 k + 1 k+1 k+1步的梯度下降可以表示为:
其中 α \alpha α表示step size, I I I表示特征矩阵。如果我们
用随机游走的正则化拉普拉斯矩阵 L = I − D − 1 A L=I-D^{-1}A L=I−D−1A替换 L L L,然后令 α = 1 / 6 \alpha=1/6 α=1/6,就能获得;
给出 Y Y Y之后,相比于更新 L L L,我们可以直接使用任何attention函数 H ( Y ) \mathcal{H}(Y) H(Y)。这篇文章中我们可以定义为 [ H ( Y ) ] i j = w a T [ y i ; y j ; u i j ] [\mathcal{H}(Y)]_{ij}=w_a^T[y_i;y_j;u_{ij}] [H(Y)]ij=waT[yi;yj;uij],其中 w a T w_a^T waT为融合向量,因此根据上述公式,可以得到一个类似GMP的可以解决GLD问题的推导公式:
这里一开始困扰我的是上面的 Y ( k + 1 ) Y^{(k+1)} Y(k+1)的公式中是 D − 1 A D^{-1}A D−1A,但到最终公式中则变成了 A ( k + 1 ) A^{(k+1)} A(k+1)。后来经过思考认为这里并不是直接的变换,而是为了利用经过推导得到的特征迭代公式的优点,并将其与GMP基础公式结合,最终得到新的GMP公式。而这里的 A ( k + 1 ) = D − 1 A A^{(k+1)}=D^{-1}A A(k+1)=D−1A可以被认为是行正则化(对应Normalize)的Attention,所以在最终公式中用 A ( k + 1 ) A^{(k+1)} A(k+1)替换 D − 1 A D^{-1}A D−1A。
在实际使用时,会在loss中加入惩罚项,另 L G L D + ∑ i η ( y i ) \mathcal{L}_{GLD}+\sum_i\eta(y_i) LGLD+∑iη(yi),其中 η ( y i ) \eta(y_i) η(yi)表示一个指示函数并对所有小于0的 y i y_i yi实施一个惩罚。因此最终的迭代公式可以写为:
除了标量上的不同之外,最终的迭代公式和初始迭代公式的唯一区别就是和初始的节点特征的跳跃连接。因此,现有的GMP方法可以用于解决SGG中的GLD问题。
Spuriousness-robust Graph Regularization
因为二次惩罚项会对离群值敏感,所以我们提出一种基于 l p l_p lp的方法来替代损失函数 L G L D \mathcal{L}_{GLD} LGLD中的 G G L R \mathcal{G}_{GLR} GGLR
这里的理解是因为 κ p ϵ \kappa^\epsilon_p κpϵ由上文可知,当 p p p值较小时,随着自变量的增加,因变量的值会先增加再减少,所以对于虚假的节点间关系( ∣ ∣ y i − y j ∣ ∣ 2 ||y_i-y_j||_2 ∣∣yi−yj∣∣2值一般较大)可以抑制其的影响。
因此,新的损失函数为:
当p为2时,其和初始的损失函数相同。但是采用一般的卷积算法在优化的时候计算复杂度非常高特别是 n n n是一个较大的值的时候。因此本文采用一个二次上界函数来近似求解:
其中
在这里 [ Ω ] i j [Ω]_{ij} [Ω]ij可以理解成 [ A ] i j [A]_{ij} [A]ij的重加权。因此我们最后的U-MP结构为:
最终,第i个节点分类的得分向量可以利用 t i = s o f t m a x ( W t y i ) t_i=softmax(W_ty_i) ti=softmax(Wtyi)获得,其中 W t W_t Wt表示分类器, y i y_i yi是节点表示的分类结果。
Group Diversity Enhancement
在以前的SGG模型中,熵最小化是被广泛采用的。但是由于类不均衡和标注缺失的问题,采用这种方法仍然可能会降低关系预测的多样性。因此本文提出了GDE模型来提高关系预测的多样性,具体的节点ij之间的关系prediction score如下:
其中 W r ∈ R R × d W_r\in R^{R\times d} Wr∈RR×d表示关系分类器, x ∗ y = R e L U ( W x x + W y y ) − ( W x x − W y y ) ⊙ ( W x x − W y y ) x*y=ReLU(W_xx+W_yy)-(W_xx-W_yy)\odot(W_xx-W_yy) x∗y=ReLU(Wxx+Wyy)−(Wxx−Wyy)⊙(Wxx−Wyy)。其中 W x , W y W_x,W_y Wx,Wy用于特征维度映射。 f i j f_{ij} fij表示物体类别之间的关系分布向量。通过获得同一张图片上的所有预测得分向量,我们会获得一个关系预测矩阵 P ∈ R N × R P\in R^{N\times R} P∈RN×R,并满足:
其中 N N N表示图像中所有节点的数量。
考虑到行向量 P P P在预测不同关系类别的时候是线性独立的,我们可以使用** P P P的类别概率的秩来衡量预测的多样性**。但是,最大化矩阵的秩是一个NP难的问题,因此我们提出两种战略来解决这个问题。
第一个采用基于 l 2 , 1 − n r o m \mathscr{l}_{2,1}-nrom l2,1−nrom来近似计算 P P P的秩,这个方法鼓励采用列稀疏的结构,因此
l 2 , 1 − n r o m \mathscr{l}_{2,1}-nrom l2,1−nrom:计算每列数据(列向量)的L2范数,再将所有范数求和。
之所以采用 l 2 , 1 − n r o m \mathscr{l}_{2,1}-nrom l2,1−nrom,是因为其鼓励列稀疏结构,也就是每一列中尽可能多的数为0,这样子可以有效的提高矩阵的秩。
第二种方法不是提高所有节点对的关系多样性,本文发现在共享相同物体类别的物体对中提高预测的多样性会更加有效。这主要因为 P P P的秩最大化过程在 n n n较大的时候很难优化。因此我们将节点对分为几组,每一组包含相关的节点对。
因此,最终我们可以用以下损失函数来提高关系预测的多样性:
其中 L c l s e \mathcal{L}_{cls}^e Lclse表示关系预测中的交叉熵损失, τ \tau τ是权重, B B B表示在一个mini-batch中的group数量,每一个group中包含一个拥有节点对的 prediction score vectors, P b P_b Pb表示第b组关系预测矩阵。 M b M_b Mb表示在一个batch中的score vectors的数量, N b N_b Nb则表示第b组中的score vectors的数量。
这种损失函数构造的**目的是降低一定程度的多数类别的预测命中率,以提高少数类别的预测命中率。**当预测的多样性提高的时候,一个关键的考量是一些属于多数类别的样本可能被归入少数类别。幸运的是,样本的分类损失将惩罚由于鼓励预测多样性导致的不正确预测。因此,通过选择合适的权重 τ \tau τ可以在确保样本数量多的标签被正确分类的同时尽可能提高分类的多样性。
SGG by RU-Net
因此在训练过程中,RU-Net整体的损失函数可以表示为:
其中 n b n_b nb表示一个batch中的节点数量。 L c l s o \mathcal{L}_{cls}^o Lclso表示物体分类的交叉熵。在测试中,第i个物体的类别预测公式是:
其中 O O O表示一系列物体类别。第 i i i个和第 j j j个节点可以关系类别可以通过以下公式获得:
R R R表示关系集合