Efficient Low-rank Multimodal Fusion with Modality-Specific Factors
为了解决基于张量的多模态融合方法计算效率差的问题,文章提出了一种低秩多模态融合的方法(Low-rank Multimodal Fusion, LMF)的方法。通过将张量和权重并行分解,利用模态特定的低阶因子来执行多模态融合。避免计算高维的张量,降低了内存开销,将指数级的时间复杂度降低到了线性。
Introduction
-
融合的目标是将多种模态结合起来,以利用异质数据的互补性,提供更有力的预测。
-
(Fukui et al., 2016), (Zadeh et al., 2017) 使用tensor来进行多模态表示学习。张量在多模态表示中具有很大的优越性。但是, 这些方法由于输入tensor的变换,会使得维度会有指数级的增长,计算复杂性也比较高。这严重限制了这些模型的适用性,尤其当数据集有两个以上的模态时。
-
因此这篇文章提出了低秩多模态融合的方法,利用low-rank weight tensors来进行有效的多模态融合。框架如下:
-
contributions
- 提出低秩多模态融合算法,与模态数呈线性关系。
- 与SOTA性能相当。
- 与之前的tensor的方法比,本文提出的方法参数少,效率高。
相关工作
- 多模态融合使我们能够利用多模态数据中存在的互补信息,从而发现信息对多模态的依赖性。
- 多模态融合方法
- early fusion:
- feature concatenation 直接拼接特征。
- 直接拼接,甚至有时候会去除时间的依赖,因此 对模态内部(intra-modal)的交互被潜在的抑制,模态内部的上下文信息、时间依赖就会损失
- late fusion:
- 每个模态构造一个模型,然后将输出通过多数表决或者加权平均将结果整合到一起。
- 但是由于模型是分开创建的,所以视图之间的交互作用不能很好的建模。
- intermediate:
- both intra- and inter- modal.
- Zadeh et al. (2017) 提出 Tensor Fusion Network, 从三个模态计算单个模态表示之间的外积来计算一个张量表示。
但是,这种方法要对多个模态的表示进行外积操作,导致 tensor representation 维度很高,
- early fusion:
- 单个模态下 low-rank tensor approximation 应用广泛,但尚未有使用 low-rank tensor 技术来进行多模态融合的。
Method
文章提出一种模型,将权重分解为低阶因子,这样可以减少模型中参数的数量。这种分解可以通过利用低阶权重张量和输入张量的并行分解来有效地进行基于张量的融合。
使用张量表示的多模态融合
这篇论文将多模态融合表述为一个多线性函数
f
∶
V
1
×
V
2
×
…
×
V
M
→
H
f ∶ V_1 × V_2 × … × V_M → H
f∶V1×V2×…×VM→H。
其中
{
z
m
}
m
=
1
M
\{z_m\}_{m=1}^M
{zm}m=1M是M个单个模态的编码信息,而多模态融合的目标是将单模态的表示整合为一个紧凑的多模态表示来进行 下游 的工作。
tensor fusion
张量表示是一种成功的多模态融合方法,它首先将多输入转换为高维张量,然后将其映射回一个低维输出向量空间。通过对输入模态取外积可以得到张量表示。
为了能够用一个张量
来模拟任意模态子集之间的相互作用。 Zadeh et al. (2017)提出在进行外积之前,给每个表示
z
z
z后面加一个1
。所以输入的张量
Z
\mathcal{Z}
Z通过单个模态的表示计算得到:
Z
=
⨂
m
=
1
M
z
m
,
z
m
∈
R
d
m
\mathcal{Z}=\bigotimes_{m=1}^{M} z_{m}, z_{m} \in \mathbb{R}^{d_{m}}
Z=⨂m=1Mzm,zm∈Rdm,
z
m
z_m
zm是附加1的输入表示。
输入张量
Z
∈
R
d
1
,
d
2
,
.
.
.
,
d
m
\mathcal{Z} \in \mathbb{R}^{d_1,d_2,...,d_m}
Z∈Rd1,d2,...,dm通过一个线性层
g
(
⋅
)
g(\cdot)
g(⋅)产生一个向量表示:
h
=
g
(
Z
;
W
,
b
)
=
W
⋅
Z
+
b
;
h
,
b
∈
R
d
y
h = g(\mathcal{Z};\mathcal{W},b) = \mathcal{W} ⋅ \mathcal{Z} + b;~h, b \in \mathbb{R}^{d_y}
h=g(Z;W,b)=W⋅Z+b; h,b∈Rdy
其中
W
\mathcal{W}
W是权重,
b
b
b是偏移量。
由于
Z
\mathcal{Z}
Z是
M
M
M阶张量,因此
W
\mathcal{W}
W是
M
+
1
M+1
M+1阶的张量,维度为
d
1
×
d
2
×
…
×
d
M
×
d
h
d_1×d_2×…×d_M×d_h
d1×d2×…×dM×dh,额外的第
M
+
1
M+1
M+1层为输出表示的大小
d
h
d_h
dh。在进行张量点积的过程中,我们可以把
W
\mathcal{W}
W看作是
d
h
d_h
dh个
M
M
M阶张量,即可以被划分为
W
‾
k
∈
R
d
1
×
…
×
d
M
,
k
=
1
,
…
,
d
h
\overline{\mathcal{W}}_{k} \in \mathbb{R}^{d_{1} \times \ldots \times d_{M}}, k=1, \ldots, d_{h}
Wk∈Rd1×…×dM,k=1,…,dh,每一个
W
‾
k
\overline{\mathcal{W}}_{k}
Wk都在输出的向量
h
h
h中贡献一个维度,即
h
k
=
W
‾
k
⋅
Z
h_k=\overline{\mathcal{W}}_{k} \cdot \mathcal{Z}
hk=Wk⋅Z。
下图为用两个模态的例子来解释张量融合:
drawbacks of tensor fusion
- 我们需要显式地创建一个高维的张量 Z \mathcal{Z} Z,其维度为 ∏ m = 1 M d m \prod_{m=1}^M d_m ∏m=1Mdm会随着模态数目呈指数增长。
- 要学习的权重张量 W \mathcal{W} W 也会相应地指数级增长。
- 不仅引入了大量的计算,而且使模型面临着过度拟合的风险。
利用模态特定因子进行低秩多模态融合
为了解决tensor-based fusion方法的问题,文章提出了一种低秩多模态融合的方法(Low-rank Multimodal Fusion)(LMF)的方法,将 W \mathcal{W} W分解为一组modality-specific low-rank factors, 且利用 Z \mathcal{Z} Z也可以分解为 { z m } m = 1 M \{z_m\}_{m=1}^M {zm}m=1M。通过这种并行分解的方式,文章可以不显性获得高维的张量而直接计算到 h h h。
low-rank weighted decomposition
把 W \mathcal{W} W看作是 d h d_h dh个 M M M阶张量,每个 M M M阶张量可以表示为 W ‾ k ∈ R d 1 × … × d M , k = 1 , … , d h \overline{\mathcal{W}}_{k} \in \mathbb{R}^{d_{1} \times \ldots \times d_{M}}, k=1, \ldots, d_{h} Wk∈Rd1×…×dM,k=1,…,dh,存在一个精确分解成向量的模式: W ‾ k = ∑ i = 1 R ⨂ m = 1 M w m , k ( i ) , w m , k ( i ) ∈ R m d \overline{\mathcal{W}}_{k}=\sum_{i=1}^{R} \bigotimes_{m=1}^{M} w_{m, k}^{(i)}, ~~~ w_{m, k}^{(i)} \in \mathbb{R}_{m}^{d} Wk=∑i=1R⨂m=1Mwm,k(i), wm,k(i)∈Rmd, 最小的使得分解有效的 R R R称为张量的rank。
向量的集合 { { w m , k ( i ) } m = 1 M } i = 1 R \left\{\left\{w_{m, k}^{(i)}\right\}_{m=1}^{M}\right\}_{i=1}^{R} {{wm,k(i)}m=1M}i=1R称为原始张量的秩 R R R分解因子。
文章固定
R
R
R为
r
r
r,然后用
r
r
r分解因子
{
{
w
m
,
k
(
i
)
}
m
=
1
M
}
i
=
1
r
\left\{\left\{w_{m, k}^{(i)}\right\}_{m=1}^{M}\right\}_{i=1}^{r}
{{wm,k(i)}m=1M}i=1r来重建低秩版本的
W
‾
k
\overline{\mathcal{W}}_{k}
Wk。
这些向量可以重新组合为
M
M
M个modality-specific low-rank的因子。令
w
m
(
i
)
=
[
w
m
,
1
(
i
)
,
w
m
,
2
(
i
)
,
…
,
w
m
,
d
h
(
i
)
]
\mathbf{w}_{m}^{(i)}=\left[w_{m, 1}^{(i)}, w_{m, 2}^{(i)}, \ldots, w_{m, d_{h}}^{(i)}\right]
wm(i)=[wm,1(i),wm,2(i),…,wm,dh(i)],则模态
m
m
m对应的低秩因子为
{
w
m
(
i
)
}
i
=
1
r
\left\{\mathbf{w}_{m}^{(i)}\right\}_{i=1}^{r}
{wm(i)}i=1r。
那么低秩的权重张量可以用下式重建得到: W = ∑ i = 1 r ⨂ m = 1 M w m ( i ) \mathcal{W}=\sum_{i=1}^{r} \bigotimes_{m=1}^{M} \mathbf{w}_{m}^{(i)} W=∑i=1r⨂m=1Mwm(i)
基于
W
\mathcal{W}
W的分解,再根据
Z
=
⨂
m
=
1
M
z
m
\mathcal{Z}=\bigotimes_{m=1}^{M} z_{m}
Z=⨂m=1Mzm,我们可以把原来计算
h
h
h的式子推算如下:
h
=
(
∑
i
=
1
r
⨂
m
=
1
M
w
m
(
i
)
)
⋅
Z
=
∑
i
=
1
r
(
⨂
m
=
1
M
w
m
(
i
)
⋅
Z
)
=
∑
i
=
1
r
(
⨂
m
=
1
M
w
m
(
i
)
⋅
⨂
m
=
1
M
z
m
)
=
⋀
m
=
1
M
[
∑
i
=
1
r
w
m
(
i
)
⋅
z
m
]
\begin{aligned} h &=\left(\sum_{i=1}^{r} \bigotimes_{m=1}^{M} \mathbf{w}_{m}^{(i)}\right) \cdot \mathcal{Z} =\sum_{i=1}^{r}\left(\bigotimes_{m=1}^{M} \mathbf{w}_{m}^{(i)} \cdot \mathcal{Z}\right) \\ &=\sum_{i=1}^{r}\left(\bigotimes_{m=1}^{M} \mathbf{w}_{m}^{(i)} \cdot \bigotimes_{m=1}^{M} z_{m}\right) \\ &=\bigwedge_{m=1}^{M}\left[\sum_{i=1}^{r} \mathbf{w}_{m}^{(i)} \cdot z_{m}\right] \end{aligned}
h=(i=1∑rm=1⨂Mwm(i))⋅Z=i=1∑r(m=1⨂Mwm(i)⋅Z)=i=1∑r(m=1⨂Mwm(i)⋅m=1⨂Mzm)=m=1⋀M[i=1∑rwm(i)⋅zm]
其中 ⋀ m = 1 M \bigwedge_{m=1}^{M} ⋀m=1M表示为一系列张量的元素积,即 ⋀ t = 1 3 x t = x 1 ∘ x 2 ∘ x 3 \bigwedge_{t=1}^{3} x_{t}=x_{1} \circ x_{2} \circ x_{3} ⋀t=13xt=x1∘x2∘x3。
- 举一个两模态的例子:
h = ( ∑ i = 1 r w a ( i ) ⊗ w v ( i ) ) ⋅ Z = ( ∑ i = 1 r w a ( i ) ⋅ z a ) ∘ ( ∑ i = 1 r w v ( i ) ⋅ z v ) \begin{aligned} h &=\left(\sum_{i=1}^{r} \mathbf{w}_{a}^{(i)} \otimes \mathbf{w}_{v}^{(i)}\right) \cdot \mathcal{Z} =\left(\sum_{i=1}^{r} \mathbf{w}_{a}^{(i)} \cdot z_{a}\right) \circ\left(\sum_{i=1}^{r} \mathbf{w}_{v}^{(i)} \cdot z_{v}\right) \end{aligned} h=(i=1∑rwa(i)⊗wv(i))⋅Z=(i=1∑rwa(i)⋅za)∘(i=1∑rwv(i)⋅zv)
- 三个模态的流程框架
这么做的好处显而易见:
- 对 Z \mathcal{Z} Z和 W \mathcal{W} W并行分解,避免了从 z m z_m zm去创建高维 Z \mathcal{Z} Z的过程。
- 不同的模态之间是解耦的,这使得方法可以扩展到任意模态数目的数据。
- 可微, { w m ( i ) } i = 1 r , m = 1 , … , M \{\mathbf{w}_{m}^{(i)}\}_{i=1}^r,~m=1,…,M {wm(i)}i=1r, m=1,…,M可以通过反向传播来优化。
- 将原始的张量融合的方法 O ( d y ∏ m = 1 M d m ) O\left(d_{y} \prod_{m=1}^{M} d_{m}\right) O(dy∏m=1Mdm)的计算复杂性降低到线性 O ( d y × r × ∑ m = 1 M d m ) O\left(d_{y} \times r \times \sum_{m=1}^{M} d_{m}\right) O(dy×r×∑m=1Mdm)。
Experiment
Impact of Low-rank Multimodal Fusion
实验表明所提方法在所有数据集上都优于Tensor Fusion Network(TFN)
Complexity Analysis
速度超过TFN两倍以上。
How different low-rank settings impact the performance
随着rank的增加,训练结果越来越不稳定,而使用较低的rank就足以达到令人满意的性能了。
Reference
Amir Zadeh, Minghai Chen, Soujanya Poria, Erik Cam-bria, and Louis-Philippe Morency. 2017. Tensor fu-sion network for multimodal sentiment analysis. In Empirical Methods in Natural Language Processing, EMNLP.