Relation Reasoning
本文仅用于对个人在翻阅tutorial时看到的感兴趣的文章进行一定的记录,如有错误和侵权欢迎指出
Tutorial (rohit497.github.io)
- Intra-modal attention
- Recently becoming popular
- Representing image as a graph
- Graph Convolution Network & Graph Attention Network
- Self-attention used in Transformer
A simple neural network module for relational reasoning
关系推理的传统方法有基于符号的方法(symbolic approaches)和基于统计的方法(statistical learning)。基于符号的方法存在着 symbol grounding 的问题,在小任务(small task)和输入变化(input variations)的问题上也不够鲁棒,学习能力不强;而基于统计的方法像深度学习,虽然泛化能力强,但是对数据稀疏但关系复杂的问题也是束手无策。DeepMind 2017年出的这篇论文提出的Relation network(RN),是用于关系推理(relational reasoning)的一个神经网络模块(NN module),能直接加载到已有的神经网络架构中。与 GNN 等网络结构相比,更为简单和灵活,即插可用(plug-and-play),在一些关系推理的测试上的准确率已经超过了人类。
其设计理念是:限制神经网络的函数形式使得其能抓住关系推理中最核心的公共属性。或者说,计算关系的能力就在RN的结构之中,就像CNN的结构就蕴含了推导空间属性、平移不变性的性质,RNN的结构蕴含了推理序列依赖的能力一样
- Input: O = { o 1 , o 2 , . . . , o n } O=\lbrace o_1,o_2,...,o_n\rbrace O={o1,o2,...,on} 代表object的集合
- MLP:
f
ϕ
,
g
θ
f_\phi,\,g_\theta
fϕ,gθ
- g θ g_\theta gθ: 使用一个全连接的神经网络来表示 o i o_i oi和 o j o_j oj的关系
- f ϕ f_\phi fϕ: 考虑所有组合的关系,相当于考虑一个完全连接图,在这个图上计算各个边的权重,把重要的关系凸显出来
其有三个特点:
- RNs learn to infer relations:上式表明RN考虑了所有object对的隐含关系,这意味着不需要知道object之间的关系是否存在,或者特定关系之间的真实含义。在图论的说法中,输入可以被认为是一个完整的有向图,其节点是object,其边表示应该考虑其关系的对象对。 虽然这里 RNs 计算了所有的两个对象之间的关系,当然也可以只计算部分两个对象之间的关系,这里的“部分”需要预定义。
- RNs are data efficient: RNs 使用一个 g θ g_\theta gθ函数来计算所有的关系,任意两个对象之间的关系使用同一套参数,泛化能力更强。
- RNs operate on a set of objects: 对输入和输出都是与顺序无关的,最终,这种不变性确保 RNs 的输出包含通常对象集中存在的代表关系的信息。
VQA Model Structure
object-object的关系的存在和意义应该取决于问题。 因此,修改了 RN 架构,以便 g θ g_\theta gθ可以根据问题调整其关系权重:
question embedding是利用LSTM提取出来的整个句子的整体表示。
参考文献:
论文笔记 - A simple neural network module for relational reasoning(2017)
[1706.01427] A simple neural network module for relational reasoning (arxiv.org)
MUREL: Multimodal Relational Reasoning for Visual Question Answering
- 一是引入了MuRel cell,这是一个自动推理原语,能够表示问题和图像区域之间丰富的交互信息,同时对区域之间的关系进行建模,也就是一种通过丰富的向量表示来对问题和图像区域间的交互进行自动推理,和对成对结合区域关系进行建模的结构;
- 二是合并MuRel cell到MuRel network,嵌入到迭代推理过程中去,它能够逐渐的对内部网络表示进行精化来回答问题,逐渐细化了图像和文本的交互。该模块丢弃无用信息以专注于相关区域。
移除了传统的注意力框架,采用了向量化表示方法,对每个区域的视觉内容和问题进行建模。此外,我们通过视觉嵌入和空间坐标之间的交互来表示图像区域对,从而在表示中包含空间和语义上下文的概念。
MuRel cell
MuRel cell的输入为图像的特征向量 s i ∈ R d v s_i \in \mathbb{R}^{d_v} si∈Rdv 这些特征都带着空间坐标信息 b i = [ x , y , w , h ] b_i = [x,y,w,h] bi=[x,y,w,h], 整个过程包含两个阶段,第一个阶段是以 q q q 和 s i s_i si 作为输入,将两个模态的feature 通过bilinear fusion,融合在一起输出对应的 m i m_i mi 然后紧跟着一个Pairwise Relational Modeling,基于他自己的空间和视觉环境来更新多模态表示。
Multimodal Fusion
本文采用基于 Tucker 分解的多模态 fusion,记为:
其中Tucker Decomposition fusion 可以参考论文MUTAN: Multimodal Tucker Fusion for Visual Question Answering
Tucker Decomposition简要描述如下:
Bilinear Models 是前几年Multimodal fusion中比较流行的解决方案,能够fusion出更多多模态的交互性信息。其通过n-mode product可表示为:
其中 T ∈ R d q × d v × ∣ A ∣ q ∈ R d q v ∈ R d v \mathcal{T} \in \mathbb{R}^{d_q \times d_v \times \mathcal{\begin{vmatrix} \mathcal{A} \end{vmatrix}}} \; q \in \mathbb{R}^{d_q} \; v \in \mathbb{R}^{d_v} T∈Rdq×dv×∣A∣q∈Rdqv∈Rdv
基于Tucker decomposition,我们又可以将 T \mathcal{T} T进行分解:
其中 T c ∈ R t q × t v × t o , W q ∈ R d q × t q , W v ∈ R d v × t v , W o ∈ R ∣ A ∣ × t o \mathcal{T}_c \in \mathbb{R}^{t_q \times t_v \times t_o}, \; W_q \in \mathbb{R}^{d_q \times t_q}, \; W_v \in \mathbb{R}^{d_v \times t_v}, \; W_o \in \mathbb{R}^{\begin{vmatrix} \mathcal{A} \end{vmatrix} \times t_o} Tc∈Rtq×tv×to,Wq∈Rdq×tq,Wv∈Rdv×tv,Wo∈R∣A∣×to
将上式带入,可以得到:
其推导如下:
T
=
T
c
×
1
W
q
×
2
W
v
×
W
o
T
i
j
k
=
∑
l
=
1
t
q
∑
m
=
1
t
v
∑
n
=
1
t
o
T
c
[
l
,
m
,
n
]
W
q
[
i
,
l
]
W
v
[
j
,
m
]
W
o
[
k
,
n
]
y
k
=
∑
i
=
1
d
q
∑
j
=
1
d
v
T
i
j
k
q
i
v
j
y
k
=
∑
i
=
1
d
q
∑
j
=
1
d
v
(
∑
l
=
1
t
q
∑
m
=
1
t
v
∑
n
=
1
t
o
T
c
[
l
,
m
,
n
]
W
q
[
i
,
l
]
W
v
[
j
,
m
]
W
o
[
k
,
n
]
)
q
i
v
j
y
k
=
∑
l
=
1
t
q
∑
m
=
1
t
v
∑
n
=
1
t
o
T
c
[
l
,
m
,
n
]
(
∑
i
=
1
d
q
q
i
W
q
[
i
,
l
]
)
(
∑
j
=
1
d
v
v
j
W
v
[
j
,
m
]
)
W
o
[
k
,
n
]
s
.
t
.
q
T
W
q
=
∑
i
=
1
d
q
q
i
W
q
[
i
,
⋅
]
∈
R
t
q
v
T
W
v
=
∑
j
=
1
d
v
v
i
W
v
[
j
,
⋅
]
∈
R
t
v
s
o
y
=
(
(
T
c
×
1
(
q
T
W
q
)
)
×
2
(
x
T
W
v
)
)
×
3
W
o
\mathcal{T}=\mathcal{T}_c \times_1 W_q \times_2 W_v \times W_o \\ \mathcal{T}_{ijk} = \sum_{l=1}^{t_q} \sum_{m=1}^{t_v} \sum_{n=1}^{t_o} \mathcal{T}_{c[l,m,n]} W_{q[i,l]} W_{v[j,m]} W_{o[k,n]} \\ y_k = \sum_{i=1}^{d_q} \sum_{j=1}^{d_v} \mathcal{T}_{ijk} q_i v _j \\ y_k = \sum_{i=1}^{d_q} \sum_{j=1}^{d_v} (\sum_{l=1}^{t_q} \sum_{m=1}^{t_v} \sum_{n=1}^{t_o} \mathcal{T}_{c[l,m,n]} W_{q[i,l]} W_{v[j,m]} W_{o[k,n]}) q_i v _j \\ y_k = \sum_{l=1}^{t_q} \sum_{m=1}^{t_v} \sum_{n=1}^{t_o} \mathcal{T}_{c[l,m,n]} (\sum_{i=1}^{d_q} q_i W_{q[i,l]}) (\sum_{j=1}^{d_v} v_j W_{v[j,m]}) W_{o[k,n]} \\ s.t. q^TW_q = \sum_{i=1}^{d_q}q_iW_{q[i,\cdot]} \in \mathbb{R}^{t_q} \;\;\;v^TW_v= \sum_{j=1}^{d_v}v_iW_{v[j,\cdot]} \in \mathbb{R}^{t_v} \\ so\\ y = ((\mathcal{T}_c \times_1 (q^T W_q)) \times_2(x^TW_v)) \times_3 W_o
T=Tc×1Wq×2Wv×WoTijk=l=1∑tqm=1∑tvn=1∑toTc[l,m,n]Wq[i,l]Wv[j,m]Wo[k,n]yk=i=1∑dqj=1∑dvTijkqivjyk=i=1∑dqj=1∑dv(l=1∑tqm=1∑tvn=1∑toTc[l,m,n]Wq[i,l]Wv[j,m]Wo[k,n])qivjyk=l=1∑tqm=1∑tvn=1∑toTc[l,m,n](i=1∑dqqiWq[i,l])(j=1∑dvvjWv[j,m])Wo[k,n]s.t.qTWq=i=1∑dqqiWq[i,⋅]∈RtqvTWv=j=1∑dvviWv[j,⋅]∈Rtvsoy=((Tc×1(qTWq))×2(xTWv))×3Wo
另
得到:
最终就有:
本文中将bilinear fusion记为:
s i s_i si 表示第i个visual feature,q代表question embedding
Pairwise interactions
一般地说,我们希望每个feature presentation都能意识到它周围的空间和语义上下文信息。与其他相似的work相同,本文选择pairewise relationship modeling,其中每个区域根据其与邻居的关系接收消息。一个区域对应于K个相似邻域,也就是说MuRel cell的邻域由图像中的每个区域构成。
其中为每个区域计算一个上下文向量: e ˇ i \check{e}_i eˇi 我们定义: e ˇ i = m a x j r i , j \check{e}_i={max}_j \,\boldsymbol{r}_{i,j} eˇi=maxjri,j , r i , j \boldsymbol{r}_{i,j} ri,j一个向量,包含关于两个区域的内容的信息,也包含关于它们之间的相对空间定位的信息。我们在聚合函数中使用 max 来减少由average 或者 sum pooling引起的噪声,这迫使所有区域相互交互。
其中region encode为:
其中第一项可以学习空间中不同cell间的空间位置关系,第二项可以编码出多模态feature间的交互关系,表示其语义视觉概念。综合考虑空间位置关系和语义关系,网络就可以学习到一些高级的概念,如:穿,拿等概念。
最终pairwise relationship modeling可以输出:
最后在加入一个残差链接:
对于每一个图像位置有 { s i } i ∈ [ 1 , N ] \{s_i\}_{i \in [1,N]} {si}i∈[1,N]:
MuRel network
模型的迭代步骤如下:
其中 t = 1... T t=1...T t=1...T 同时features通过目标检测提过的图像特征进行初始化 s i 0 = v i s_i^0=v_i si0=vi
同时模型的权重在每个cell中共享,这使得紧凑的参数化和良好的泛化成为可能。
最终经过T个步骤后,得到 { s i T } \{s_i^T\} {siT},经过一个global max pooling输出向量 s ∈ R d v \boldsymbol{s} \in \mathbb{R}^{d_v} s∈Rdv, 然后再与question embedding进行一个bilinear fusion得到:
Visualizing MuRel network
在本文中,作者提出,对于MuRel Cell的每一步可以通过测量每个region对最终向量的贡献程度来计算贡献图。
然后计算计算每个区域的发生频率。(个人认为这里是对N个region的维度为 d v d_v dv的feature,对每个维度,取其最大值,得到一个 d v d_v dv维度的向量c,其值为1-N,然后计算频率),其中我们还可以对每一个step都进行如此的操作,观察出对于每一个步骤而言,模型最为关注的区域是什么地方
同样,我们能够将 MuRel 单元预测中涉及的成对关系可视化。 首先我们找到对模型影响最大的region i ∗ i^* i∗,即
最大的区域,用绿色的框表示,然后对于 i ∗ i^* i∗,计算对他共享最大的区域的发生频率:
如图用红色区域标识
Connection to previous work
将MuRel 网络和之前的FiLM网络进行比较,FiLM网络是为了处理合成数据集CLEVR而建立的,而MuRel网络是为了处理真实数据集,但是两者还存在一些联系。在FiLM网络中,将图像传入一个多步残差单元,而MuRel网络中,是将图像传入一个迭代单元;在多模态交互中,FiLM网络使用的是仿射变换(affine modulation),而MuRel网络使用的是双线性融合(bilinear fusion);最后,FiLM网络和MuRel网络都利用图像表示的空间结构来对区域间的关系进行建模,FiLM网络中,图像用全卷积网络表示,MuRel网络中,图像使用一系列局部特征表示。
参考:论文-《MUREL: Multimodal Relational Reasoning for Visual Question Answering Remi》笔记_Vivinia的博客-CSDN博客
MUREL:Multimodal Relational Reasoning for Visual Question Answering阅读笔记_gxc19971128的博客-CSDN博客
[1902.09487] MUREL: Multimodal Relational Reasoning for Visual Question Answering (arxiv.org)
Relation-Aware Graph Attention Network for Visual Question Answering
传统的利用multimodal feature进行fusion的方法虽然表现已经足够优秀,但是在视觉和文字这两种模态之间通过fusion获得的联合表示任然存在着语义鸿沟。他不能回答一些复杂的空间及语义信息。
由上图可知,本文提出了一种基于关系感知的图形关注网络(ReGAT),引入了一种新颖的基于图网络的关系编码器,并通过图形注意机制学习视觉对象之间显式和隐式的关系,以学习自适应问题的关系表示。
模型总体结构如上图所示,可以发现,本文将object之间的关系分为了三类:
- semantic relation:对象之间的语义依赖关系,如
- spatial relation:对象之间的相对几何关系,如
- implicit relation:对象之间存在的隐式关系,不能显示表示
对于显式的关系,ReGAT使用图注意力网络(GAT),允许为同一邻域的节点分配不同的重要性。 对于隐式关系,该模型通过过滤掉与问题无关的关系,而不是平等地对待所有关系,从而学习了一个适合于每个问题的图。
Relation-aware Graph Attention Network
image features: faster r-cnn提供的特征向量,同时包含box的[x, y, h, w]features
question features: 利用具有门控单元(GRU)的双向RNN,生成对应的question embedding
Graph Construction
Fully-connected Relation Graph
用于表示对象之间的隐式关系,每个对象表示一个节点,边一共有 K × ( K − 1 ) K \times (K-1) K×(K−1)个,表示成无向图:
这些关系都是不基于先验知识的隐式表示。
Pruned Graph with Prior Knowledge
基于先验知识的剪枝图
如果两个对象之间不存在显示关系,该模型就将对这些无用的边进行剪枝,通过这种方式,图变得稀疏,且还存在的每条边都编码了对象间的先验知识。这就表示对象之间的显示关系。
这些特征的显性性质需要预先训练的分类器以离散类标签的形式提取关系,这些关系表示肉眼可见的对象之间的动态和交互。 即仅当两个物体被分类器识别出了关系时,该关系才会以边的形式加入graph中。本文考虑了两种显式关系:semantic relation和spatial relation
Spatial Graph
s p a i , j = < o b j e c t i − p r e d i c a t e − o b j e c t j > spa_{i,j} = <object_i-predicate-object_j> spai,j=<objecti−predicate−objectj>
代表两个对象之间的几何位置关系,将此关系表示为11类位置关系和一个无类关系(no-relation表示两个对象相距太远)
如果 p i , j p_{i,j} pi,j有效,则 p j , i p_{j,i} pj,i也一定有效,且这两者是不一样的。
Semantic Graph
和上面一样, < i − p i , j − j > <i-p_{i,j}-j> <i−pi,j−j>表示关系,这可以通过在visual relationship dataset进行分类的预训练得到。其中 p i , j p_{i,j} pi,j是一个非对称关系, p j , i p_{j,i} pj,i可能是不存在的。
预训练14个semantic relations外加一个no-relation类
Relation Encoder
Question-adaptive Graph Attention
首先将question embedding与K个image feature concat起来
然后对每个节点,计算attention分数,获得hidden relation feature { v i ∗ } i = 1 K \{v_i^*\}_{i=1}^K {vi∗}i=1K,计算出它与邻居的关系表示:
如果加入Multi-Head机制:
Implicit Relation
因为隐式关系是fully-connected的,所以其另据应该包括图片上的所有对象,其中包括i自己。
其中 α i j v \alpha_{ij}^v αijv表示visual-feature的权重, α i j b \alpha_{ij}^b αijb表示bounding-box的权重。其权重表示如下:
其中 f b ( ⋅ , ⋅ ) f_b(\cdot,\cdot) fb(⋅,⋅)表示对于位置 b i , b j b_i,b_j bi,bj计算:
然后embed为 d h d_h dh维feature,再通过w映射为标量。
Explicit Relation
类似的
对于存在的显示关系 p i , j p_{i,j} pi,j,在计算attention时考虑 v i − t o − v j , v j − t o − v i a n d v i − t o − v i v_i-to-v_j,v_j-to-v_i \;and\; v_i-to-v_i vi−to−vj,vj−to−viandvi−to−vi
其attention分数可表示为:
Multimodal Fusion and Answer Prediction
J表示multimodal fusion出来的joint representation
对于predictor,该模型采用两层多层感知器(MLP)作为分类器,以联合表示J作为输入。使用二元交叉熵作为损失函数。
再训练阶段,不同的relation encoders训练是独立的,在inference 阶段,将这三者结合起来:
α , β \alpha,\beta α,β是trade-off超参数, P r ⋅ ( a = a i ) Pr_{\cdot}(a=a_i) Pr⋅(a=ai)代表不同encoder对于 a i a_i ai的预测分数
参考:
图卷积网络在VQA问题中的应用 - 知乎 (zhihu.com)
Relation-Aware Graph Attention Network for Visual Question Answering阅读笔记_trouble的博客-CSDN博客
[1903.12314] Relation-Aware Graph Attention Network for Visual Question Answering (arxiv.org)