Knowledge-Embedded Routing Network for Scene Graph Generation 阅读笔记

Background

  • 论文动机
    • 真实世界中关系的分布是非常不平衡的,现存的模型对小频率的关系表现不好
  • 论文贡献
    • 作者发现目标对和它们的之间关系的统计相关性能够有效地调整语义空间,使关系预测不再模糊,很好地解决了关系不平衡分布的问题
    • 第一个将显示地将统计知识用于场景图生成

Model

image-20201014201349836

primary

​ 场景图是图像内容的结构化表示。它由类别标签,每个object的位置和每个object间的关系。这可以被视为三元组集合\mathcal{G}=\{B, O, R\}

  • B=\{b_1,b_2,\cdots,b_n\}为候选区域集合,b_i \in \mathbb{R}^4
  • O = \{o_1,o_2,\cdots,o_n\}为object集合,o_i \in \mathbb{N}
  • R=\left\{r_{1 \rightarrow 2}, r_{1 \rightarrow 3}, \ldots, r_{n \rightarrow n-1}\right\}为关系集合,包括no-relationship

​ 对于给定图像I,作者将场景图概率分布分p(\mathcal{G}|I)解为三个部分:

p(\mathcal{G} \mid I)=p(B \mid I) p(O \mid B, I) p(R \mid O, B, I) (1)

在公式(1)中,p(B \mid I)由Faster RCNN得到。 p(O \mid B, I)根据每个区域对种类标签进行预测。基于预测的种类标签,p(R \mid O, B, I)推断object对之间的关系。

konowledge-embedded routing network

Objetct

​ object共现的统计信息是关联图像中 object 和挑战object标签预测的重要线索。因此,作者根据统计关联性去构建一个图来关联图像中的检测出的区域,并使用图神经网络在图上进行消息传播来,可以学习上下文的表示来预测每个区域的种类标签。

​ 为此,作者首先计算训练集中不同种类object统计共现概率。具体地,对于两个种类c, c^{\prime},作者计算在类别c^{\prime}object存在的情况下,类别c出现的概率m_{cc^{\prime}}。对所有种类对计算弓共现概率,得到矩阵M_{c} \in \mathbb{R}^{C \times C}C为类别数量。

​ 对于给定的两个区域b_ib_j,将b_i复制C次,得到节点{b_{i1},b_{i2},\cdots,b_{iC}}b_{ic}表示区域b_i于种类c的相关性。对区域b_j进行相同的操作。直觉地,m_{cc^{\prime}}可以用于关联节点b_{jc^{\prime}}b_{ic}。因此,矩阵M_c可用于关联区域b_i的节点和b_j的节点。最后,关联所有的区域,并构造图。

​ 作者使用gated recurrent update mechanism去迭代传播节点信息。在时间步t,每个节点b_{ic}的隐藏状态\mathbf{h}_{ic}^t。由于每个节点对应特定的区域,在时间t=0,作者使用区域的特征向量去初始化隐藏状态:

\mathbf{h}_{i c}^{0}=\varphi_{o}\left(\mathbf{f}_{i}\right) (2)

\phi_{o}表是转换,将\mathbf{f}_i投影到低纬度。在时间步t,每个节点根据图结构,从它的相邻节点聚合信息:

\mathbf{a}_{i c}^{t}=\left[\sum_{j=1, j \neq i}^{n} \sum_{c^{\prime}=1}^{C} m_{c^{\prime} c} \mathbf{h}_{j c^{\prime}}^{t-1}, \sum_{j=1, j \neq i}^{n} \sum_{c^{\prime}=1}^{C} m_{c c^{\prime}} \mathbf{h}_{j c^{\prime}}^{t-1}\right] (3)

然后,模型将\mathcal{a}^t_{ic}和之前的隐藏状态作为输入,通过门控机制更新节点的隐藏状态:

\begin{aligned} \mathbf{z}_{i c}^{t} &=\sigma\left(\mathbf{W}_{o}^{z} \mathbf{a}_{i c}^{t}+\mathbf{U}_{o}^{z} \mathbf{h}_{i c}^{t-1}\right) \\ \mathbf{r}_{i c}^{t} &=\sigma\left(\mathbf{W}_{o}^{r} \mathbf{a}_{i c}^{t}+\mathbf{U}_{o}^{r} \mathbf{h}_{i c}^{t-1}\right) \\ \widetilde{\mathbf{h}}_{i c}^{t} &=\tanh \left(\mathbf{W}_{o} \mathbf{a}_{i c}^{t}+\mathbf{U}_{o}\left(\mathbf{r}_{i c}^{t} \odot \mathbf{h}_{i c}^{t-1}\right)\right) \\ \mathbf{h}_{i c}^{t} &=\left(1-\mathbf{z}_{i c}^{t}\right) \odot \mathbf{h}_{i c}^{t-1}+\mathbf{z}_{i c}^{t} \odot \mathbf{h}_{i c}^{t} \end{aligned} (4)

经过T_0步之后,节点信息就在整个图上进行了传播,同时也得到了每个区域的隐藏状态\left\{\mathbf{h}_{i 1}^{T_{o}}, \mathbf{h}_{i 2}^{T_{o}}, \ldots, \mathbf{h}_{i C}^{T_{o}}\right\}。然后利用初始的隐藏状态和最终隐藏状态计算每个接待你的输出特征:

\mathbf{f}_{i c}^{o}=o_{o}\left(\mathbf{h}_{i c}^{0}, \mathbf{h}_{i c}^{T}\right) (5)

o_o表示全连接层,聚合所有关联的输出特征向量,对种类标签进行预测:

\mathbf{o}_{i}=\phi_{o}\left(\mathbf{f}_{i 1}^{o}, \mathbf{f}_{i 2}^{o}, \ldots, \mathbf{h}_{i C}^{o}\right) (6)

预测的类别标签为:o_{i}=\operatorname{argmax}\left(\mathbf{o}_{i}\right)

Relationship

​ 对于给定的objetc对类别,它们之间的关系概率分布是高度偏斜的。因此,作者以结构化图的形式去对object对和关系进行关联,并用另一种图神经网络去探索这两个因素的相互作用,以推断出object对间的关系。

​ 相似地,计算数据集中统计共现概率来获得这些相关性。具体来说,对于给定的subject种类c和objetc种类c^{\prime},计算所有关系种类的可能性,并表示为\left\{m_{c c^{\prime} 1}, m_{c c^{\prime} 2}, \ldots, m_{c c^{\prime} K}\right\}K为关系数量。作者使用m_{o_i,o_j,k}表示节点o_i与关系k以及节点o_j与关系k的关联性。统计共现嵌入图就被建立了。

​ 模型同样使用gated recurrent update mechanism去挖掘节点之间的相互作用。对于每个节点v \in V = \{o_i,o_j,1,2\cdots,K\}都在时间t具有隐藏特征\mathbf{h}_v^t。在时间t=0时,初始化object节点特征为对应区域的特征向量,关系节点为object对之间的union区域的特征向量:

\mathbf{h}_{v}^{0}=\left\{\begin{array}{ll}\varphi_{o^{\prime}}\left(\mathbf{f}_{i}\right) & \text { if } v \text { is the object node } o_{i} \\ \varphi_{r}\left(\mathbf{f}_{i j}\right) & \text { if } v \text { is a relationship node }\end{array}\right. (7)

\phi_{o^{\prime}}\phi_r为两个变换,\mathbf{f}_{ij}为编码了b_j,b_i的联合区域的特征向量。在每一个时间步t,关系节点从object节点和关系节点中聚合信息。

\mathbf{a}_{v}^{t}=\left\{\begin{array}{ll}\sum_{k=1}^{K} m_{o_{i} o_{j} k} \mathbf{h}_{k}^{t-1} & \text { if } v \text { is a object node } \\ m_{o_{i} o_{j} k}\left(\mathbf{h}_{o_{i}}^{t-1}+\mathbf{h}_{o_{j}}^{t-1}\right) & \text { if } v \text { is the relationship node } k\end{array}\right. (8)

相似地,模型结合之前的隐藏状态\mathbf{h}^{t-1}_{v}与聚合到的信息a_v^t借助门控机制更新每个节点的隐藏状态。重复这样的操作T_r之后,得到每个节点的最终隐藏状态\left\{\mathbf{h}_{o i}^{T_{r}}, \mathbf{h}_{o_{j}}^{T_{r}}, \mathbf{h}_{1}^{T_{r}}, \ldots, \mathbf{h}_{K}^{T_{r}},\right\}。然后,使用全连接层节点级别的特征,并聚合这些特征去推断关系:

\begin{aligned} \mathbf{f}_{v}^{o} &=o_{r}\left(\left[\mathbf{h}_{v}^{T_{r}}, \mathbf{h}_{v}^{0}\right]\right) \\ \mathbf{x}_{i \rightarrow j} &=\phi_{r}\left(\left[\mathbf{f}_{o_{i}}^{o}, \mathbf{f}_{o_{j}}^{o}, \mathbf{f}_{1}^{o}, \ldots, \mathbf{f}_{K}^{o}\right]\right) \end{aligned} (9)

\phi_r为关系类别分类器。