EMAF由封装模块、跨模态对齐模块、跨模态融合模块和最终的分类器组成。具体来说,采用改进的动态路由算法(胶囊算法)设计了对齐模块,并引入了基于比较的融合模块,前者对重要实体进行对齐和捕获,后者对以实体为中心的特征进行比较和聚合。将聚合地特征送入最终的分类器中得到结果。
设T和V分别表示原始文本句子和图像输入,TE、VE和AE分别表示文本实体、视觉实体和对齐实体的集合。实体集合的每一个元素都是指一个特定实体的表示。本文的视觉实体由预训练的Faster R-CNN提取,文本实体是怎么得到的没有说明。
EMAF的输入由文本实体集
T
E
=
{
t
e
1
,
…
,
t
e
M
}
TE=\{te_1,…,te_M\}
TE={te1,…,teM}和可视化实体集
V
E
=
{
v
e
1
,
.
.
.
,
v
e
N
}
VE = \{ve_1,...,ve_N\}
VE={ve1,...,veN}。包含视觉实体和文本实体的胶囊单元分别被指定为主胶囊和数字胶囊。对齐模块采用一种改进的动态路由算法,实现可视化实体与文本实体之间的跨模态交互,该过程生成对齐实体集
A
E
=
{
a
e
1
,
.
.
.
,
a
e
M
}
AE=\{ae_1,...,ae_M\}
AE={ae1,...,aeM}
为了捕获对齐实体和源文本实体之间的一致性和差异性,在跨模态融合模块中引入了Attend、Compare和Aggregate方法来执行二阶交互。收集与真实性相关的重要特征,并生成样本的固定大小表示。然后,分类器根据这个表示给出最终的预测。算法为:
整个模型的结构:
改进的动态路由算法
首先初始化
b
i
,
j
1
b_{i,j}^1
bi,j1(这里的上标1和下面的k表示堆叠结构中的第k层),它用来测量
v
e
i
ve_i
vei与
t
e
j
T
te_j^T
tejT的对齐程度:
b
i
,
j
1
=
v
e
i
⋅
t
e
j
T
b_{i,j}^1=ve_i\cdot te_j^T
bi,j1=vei⋅tejT 然后使用softmax对
b
i
,
j
k
b_{i,j}^k
bi,jk进行归一化,得到一个对齐的分布
c
j
k
c_j^k
cjk,并以类似于注意机制的方式对视觉实体进行加权和。这样,视觉实体被组装为第j个文本实体,并产生
s
j
k
s_j^k
sjk。
c
j
k
=
s
o
f
t
m
a
x
(
[
b
1
,
j
k
,
.
.
.
,
b
i
,
j
k
,
.
.
.
,
b
N
,
j
1
]
)
c_j^k=softmax([b_{1,j}^k, ...,b_{i,j}^k,...,b_{N,j}^1])
cjk=softmax([b1,jk,...,bi,jk,...,bN,j1])
s
j
k
=
∑
i
c
i
,
j
k
v
e
i
s_j^k=\sum_ic_{i,j}^kve_i
sjk=i∑ci,jkvei 接下来,为了测量当前第j个数字胶囊所代表的实体是否存在于
s
j
k
s_j^k
sjk中,使用了一个称为“压扁”的非线性激活函数。
v
j
k
=
∣
∣
s
j
k
∣
∣
2
1
+
∣
∣
s
j
k
∣
∣
2
s
j
k
∣
∣
s
j
k
∣
∣
v_j^k=\frac{||s_j^k||^2}{1+||s_j^k||^2}\frac{s_j^k}{||s_j^k||}
vjk=1+∣∣sjk∣∣2∣∣sjk∣∣2∣∣sjk∣∣sjk 在将对齐的视觉实体信息收集到
v
j
k
v_j^k
vjk后,通过一个门将对应的
v
j
k
v_j^k
vjk和
t
e
j
K
te_j^K
tejK组合到一起,这个门把v向量的长度作为权重,更新相应文本实体的表示:
G
j
k
=
∣
∣
v
j
k
∣
∣
G_j^k=||v_j^k||
Gjk=∣∣vjk∣∣
t
e
j
k
+
1
=
(
1
−
G
j
k
)
⋅
t
e
j
k
+
G
J
k
⋅
v
j
k
te_j^{k+1}=(1-G_j^k)\cdot te_j^k+G_J^k\cdot v_j^k
tejk+1=(1−Gjk)⋅tejk+GJk⋅vjk 这样,我们就得到了进行一轮更新后的文本实体表示,再把这个表示作为数字胶囊进入下一轮更新,这样,文本实体会与和这个实体相似度高的视觉实体相似度score增加,文章称之为”被接受“,而相似度低的视觉实体相似度score减少,称之为”被拒绝“。
该过程在达到K次迭代后停止,并且从视觉实体派生的
T
E
K
=
[
t
e
1
k
,
…
,
t
e
j
k
,
…
,
t
e
M
k
]
TE^K = [te_1^k,…,te_j^k,…,te_M^k]
TEK=[te1k,…,tejk,…,teMk]被认为是文本实体的对齐表示。
为了表示方便,将
T
E
K
=
[
t
e
1
k
,
…
,
t
e
j
k
,
…
,
t
e
M
k
]
TE^K = [te_1^k,…,te_j^k,…,te_M^k]
TEK=[te1k,…,tejk,…,teMk]重新定义为
A
E
=
[
a
e
1
,
…
,
a
e
j
,
…
,
a
e
M
]
AE = [ae_1,…,ae_j,…,ae_M]
AE=[ae1,…,aej,…,aeM]。
Cross-Modal Fusion
跨模态融合模块旨在捕获对齐实体与原始文本实体之间的一致性和差异性,并进一步提取验证样本真实性所需的特征。
在上文中,我们得到了对齐后的文本实体TE与对齐实体AE之间建立了一一对应关系。但是本文提出,由于在对齐过程中没有考虑来自相同模态的实体之间的语义关系。以图3中的样本为例,“大象”与“岩石”的关系来源于“象形岩石”这句话。自然不能交付给对齐的实体。反过来,从图像中衍生出的“象”与“石”的关系,也无法传递给文本实体。为了弥补这一遗漏,引入了Attend组件,旨在从同一模态中追求实体之间的关系。
对于来自TE的每个实体,将其与所有文本实体连接起来,以捕获其与其他文本实体的关系,然后利用多层感知器(MLP)将连接的结果映射到关系空间。最后,执行max-pooling来选择实体
t
e
i
te_i
tei的重要关系特征
t
r
i
tr_i
tri。最终,我们得到了TR代表TE, AR代表AE的关系表示:
t
r
i
=
M
a
x
p
o
o
l
i
n
g
(
M
L
P
(
[
t
e
i
;
T
E
]
)
)
tr_i=Maxpooling(MLP([te_i;TE]))
tri=Maxpooling(MLP([tei;TE]))
a
r
i
=
M
a
x
p
o
o
l
i
n
g
(
M
L
P
(
[
a
e
i
;
A
E
]
)
)
ar_i=Maxpooling(MLP([ae_i;AE]))
ari=Maxpooling(MLP([aei;AE])) 对于TE和AE,执行元素减法来捕获差异,此外还进行了元素点积来捕获相似性。将所有比较特征串联起来,分别在实体级和关系级得到EC和RC:
e
c
i
=
[
a
e
i
;
t
e
i
;
a
e
i
−
t
e
i
;
a
e
i
⋅
t
e
I
]
ec_i=[ae_i;te_i;ae_i-te_i;ae_i\cdot te_I]
eci=[aei;tei;aei−tei;aei⋅teI]
r
c
i
=
[
a
r
i
;
t
r
i
;
a
r
I
−
t
r
i
;
a
r
I
⋅
t
r
i
]
rci=[ar_i;tr_i;ar_I-tr_i;ar_I\cdot tr_i]
rci=[ari;tri;arI−tri;arI⋅tri] 最后,在实体集EC和关系集RC上执行平均池化和最大池化策略,通过连接池化操作的结果获得用于标签预测的最终向量C,送入分类头进行预测:
C
=
[
A
v
g
(
E
C
)
;
M
a
x
(
E
C
)
;
A
v
g
(
R
C
)
;
M
a
x
(
R
C
)
]
C=[Avg(EC);Max(EC);Avg(RC);Max(RC)]
C=[Avg(EC);Max(EC);Avg(RC);Max(RC)]