多模态融合(二)Deep Multimodal Neural Architecture Search
本篇论文的工作也是来自杭州电子科技大学。在上一篇论文MCAN的基础上,对多模态特征的融合方式作进一步讨论。该篇文章已被ACM MM2020接收。
摘要
设计有效的神经网络结构是深度多模态学习的关键。现有的工作大多将关注点聚焦在单一任务上并手动进行网络结构的设计,这样的获得的模型均是任务特定的并且在多个任务间泛化能力弱。本文提出一种通用的深度多模态神经结构搜索框架(deep multimodal neural architecture search framework,MMnas) 用于多模态的多任务学习。在给定多模态输入的情况下,首先定义一组基本运算(算子),然后构造一个基于深度编码-解码器(deep encoder-decoder)的统一backbone。
在统一主干网络(unified backbone)的基础上,我们附加了任务特定的头(task-specific heads)来处理不同的多模态学习任务。之后通过使用基于梯度的NAS算法,对不同任务的最优结构进行了有效学习。广泛的消融研究、综合分析和对比实验结果表明,获得的MMnasNet在三个多模态学习任务(超过5个数据集)中,包括视觉问题回答(VQA)、图像-文本匹配(image-text matching,ITM)和视觉定位(visual-grounding,VG),显著优于现有的最先进的方法。
引言
本文设计了一个通用的框架,可以自适应地学习各种任务的最优网络结构,而不是预先训练一个通用的模型用于各种任务(与pre-training一类表示学习的方法有所不同),受到MCAN模型的启发,本文预先定义了一个操作算子集合作为基本单元,提供给NAS算法进行搜索。
贡献点:
提出了一种新的广义多模态学习范式,该范式使用神经结构搜索(NAS)算法来搜索不同多模态任务的最优结构。与使用大规模数据预先训练广义模型的多模态方法相比,我们的范式可以更好地捕获每个任务的特征,在参数规模上更具效率。
方法
NAS使用的算子
预定义的算子包括self-attention (SA), guided-attention (GA), feed-forward network (FFN), relation self-attention (RSA),这里RSA仅用作图像模态,R是一个关系矩阵,例如R
∈
R
m
×
m
×
d
\in\R^{m\times m\times d}
∈Rm×m×d,将m个region间的关系进行编码,关系特征是d维向量。
这几个算子定义的操作如下
MHA是multi-head attention
M
H
A
(
Q
,
K
,
V
,
R
)
=
[
h
e
a
d
1
,
h
e
a
d
2
,
.
.
.
,
h
e
a
d
n
]
W
0
MHA(Q,K,V,R) = [head_1,head_2,...,head_n]W^0
MHA(Q,K,V,R)=[head1,head2,...,headn]W0
SA(X):
Z
=
S
A
(
X
)
=
M
H
A
(
X
,
X
,
X
,
0
)
Z = SA(X) = MHA(X,X,X,\bold0)
Z=SA(X)=MHA(X,X,X,0)
GA(X,Y):
Z
=
G
A
(
X
,
Y
)
=
M
H
A
(
X
,
Y
,
Y
,
0
)
Z=GA(X,Y)=MHA(X,Y,Y,\bold0)
Z=GA(X,Y)=MHA(X,Y,Y,0)
FFN(X):
Z
=
F
F
N
(
X
)
=
F
C
d
∘
D
r
o
p
0.1
∘
R
e
L
U
∘
F
C
4
d
(
X
)
Z=FFN(X) = FC_d\circ Drop_{0.1}\circ ReLU\circ FC_{4d}(X)
Z=FFN(X)=FCd∘Drop0.1∘ReLU∘FC4d(X)
∘
\circ
∘表示两种操作的组合。
RSA(X,R):
M
L
P
(
R
)
=
R
e
L
U
∘
F
C
1
∘
R
e
L
U
∘
F
C
d
h
(
R
)
MLP(R)=ReLU\circ FC_1\circ ReLU\circ FC_{d_h}(R)
MLP(R)=ReLU∘FC1∘ReLU∘FCdh(R)
Z
=
R
S
A
(
X
,
R
)
=
M
H
A
(
X
,
X
,
X
,
log
(
M
L
P
(
R
)
+
ϵ
)
)
Z = RSA(X,R)=MHA(X,X,X,\log(MLP(R)+\epsilon))
Z=RSA(X,R)=MHA(X,X,X,log(MLP(R)+ϵ))
MLP是一个两层的感知机对R进行线性变换(作用在R的最后一维上)
统一的Encoder-Decoder BackBone
文本模态能使用的算子有SA、FFN;图像模态使用的算子有SA、RSA、FFN、GA。
task-specific heads
NAS搜索算法实现
实验
各任务的数据集和评价指标
在多任务上的评测结果
VG
VQA
ITM
消融研究
在VAQ-V2数据集上做的消融实验
Decoder部分使用不同的算子
与MCAN在不同模型深度上的比较
NAS搜索算法(使用搜索值或随机值)
运用NAS算法获得的对于不同多模态任务的最优MMnasNet backbone
结论
本文提出了一种适用于各种多模态学习任务的广义深度多模态神经结构搜索(MMnas)框架。与现有的方法不同,MMnas可以推广到自动学习不同任务的最优结构。为了实现这一点,我们构造了一个统一的编码器-解码器主干网络,每个编码器/解码器块对应于从预定义操作的候选集合中搜索相应的操作。在统一的主干之上,我们附加任务专用的头来处理不同的任务。每个任务的最优结构是通过一个高效的神经结构搜索(NAS)算法学习到的,以获得任务特定的MMnasNet。在VQA、视觉定位和图文匹配任务上进行了大量的实验,以证明所提出的MMnas框架的通用性和有效性。
五个基准数据集的综合结果验证了MMnasNet相对于现有最先进方法的优越性。与现有的使用大规模多模态预训练方法不同的是,本文引入了一种通过NAS框架解决广义多模态学习问题的替代方法。