NCGM
本文认为对于不同的表格,不同模态的关系归纳偏差将是高度不一致的,不同的模态应该以不同的模式相互协作。在本文中,把模态内部交互定义为异构表结构识别(Hetero-TSR)问题。提出了一种使用堆叠协作模块的新型Neural Collaborative Graph Machines(NCGM),它可以交替提取模态内上下文并以分层方式对模态间交互进行建模。可以更稳健地表示表格元素的内部模态关系,从而显着提高识别性能。
本文使用文本框作为表元素,并分别从外观、几何和内容维度中提取它们的多模态特征嵌入。为了获得相应的图上下文并探索它们的交互,提出了ECE(Ego Context Extractor)和 CCS(Cross Context Synthesizer)。其中,ECE 的作用是为每个模态动态生成图上下文,而 CCS 负责融合和调制不同表格的模态间交互信息。通过多次堆叠这个元素块,模态内上下文生成和模态间协作可以以分层方式交替进行,这使得模态内交互从低层到顶层不断生成,也就是说,多模态的低层上下文信息和高层的上下文信息可以在整个网络中相互协作,这样可以实现更好的性能。
NCGM的结构如上图所示。它主要由协作块组成,有两个连续的基于多头注意力的 模块:ECE 和 CCS。首先,提取表格元素的三种特征嵌入模式(几何、外观和内容嵌入)。在每个协作块中,提取的特征嵌入被 ECE 模块构建为上下文图,形成模态内的交互信息。之后,CCS 选择性地融合来自不同模态的上下文信息,形成模态间的交互信息。该协作块堆叠 L 层,以分层的方式实现模态内的内部协作。为了预测最终的表格结构,来自第 L 层多模态的输出协作图嵌入被采样用于单元格、行和列分类。
Methodology
Feature Extraction
Geometry embedding: 每个文本框的几何特征表示为
(
x
W
,
y
H
,
w
W
,
h
H
)
(\frac{x}{W}, \frac{y}{H}, \frac{w}{W}, \frac{h}{H})
(Wx,Hy,Ww,Hh),然后使用 d 维的全连接层得到 geometry embedding。
Appearance embedding: 使用 ResNet18 提取整张图的特征,然后使用 ROIAlign 来得到每个文本框的特征,再使用 d 维的全连接层得到 appearance embedding。
Content embedding: 首先,通过 word2vec 将每个文本框的相应文本编码到分布空间中。然后,使用一个卷积核大小 7×1×d、步长为 1 的卷积层将文本序列特征得到 content embedding。
Collaborative Block
ECE
每个模态的特征都作为单独的有向图,在每个图中每个文本框的 embedding 作为结点
X
=
{
x
1
,
x
2
,
.
.
.
x
N
}
\bf{X} = \{x_1, x_2, ...x_N \}
X={x1,x2,...xN},使用非对称边函数
h
Θ
(
x
i
,
x
j
)
=
x
i
∣
∣
(
x
i
−
x
j
)
h_{\Theta}(\mathbf{x}_i, \mathbf{x}_j)=\mathbf{x}_i || (\mathbf{x}_i - \mathbf{x}_j)
hΘ(xi,xj)=xi∣∣(xi−xj) 来把边特征和结点相结合,表示为
H
Θ
∼
∈
R
(
N
⋅
(
N
−
1
)
/
2
)
×
d
\mathbf{H}_{\Theta}^{\sim} \in \mathbb{R}^{(N\cdot(N-1) / 2) \times d}
HΘ∼∈R(N⋅(N−1)/2)×d。通过多头注意力 (MHA) 聚合所有三种模态的全连接图信息,经验证,它对输入的假设很少,并且可以根据输入内容学习结合局部信息和全局信息。
ECE 把模态内信息作为 Q,图边组合特征
H
Θ
∼
\mathbf{H}_{\Theta}^{\sim}
HΘ∼ 作为 K 和 V。但是使用MHA的主要限制是 K 和 V 太大
(
N
⋅
(
N
−
1
)
/
2
)
(N\cdot(N-1) / 2)
(N⋅(N−1)/2),很难去训练。其中
Q
∈
R
N
×
d
q
,
K
∈
R
M
×
d
k
,
V
∈
R
M
×
d
v
Q \in \mathbb{R}^{N \times d_q}, K \in \mathbb{R}^{M \times d_k}, V \in \mathbb{R}^{M \times d_v}
Q∈RN×dq,K∈RM×dk,V∈RM×dv,其中
M
=
N
⋅
(
N
−
1
)
/
2
M = N\cdot(N-1) / 2
M=N⋅(N−1)/2,所以注意力操作的时间复杂度为
O
(
N
M
)
O(NM)
O(NM),输出维度是
N
×
d
v
N \times d_v
N×dv,只是和 Q 相关。所以可以引入引入内存压缩模块,使用压缩的多头注意力机制 (CMHA,Compressed MHA)。压缩操作可以写为:
M
C
(
H
)
=
N
o
r
m
(
R
e
s
h
a
p
e
(
x
,
ϵ
)
W
h
)
MC(\mathbf{H}) = Norm(Reshape(x, \epsilon) \mathbf{W}^h)
MC(H)=Norm(Reshape(x,ϵ)Wh)
其中
R
e
s
h
a
p
e
(
x
,
ϵ
)
Reshape(x, \epsilon)
Reshape(x,ϵ) 表示把
x
∈
R
M
×
d
\mathbf{x} \in \mathbb{R}^{M \times d}
x∈RM×d reshape 为
x
~
∈
R
ϵ
M
×
d
/
ϵ
\mathbf{\tilde{x}} \in \mathbb{R}^{\epsilon M \times d/\epsilon }
x~∈RϵM×d/ϵ , 其中
ϵ
∈
[
0
,
1
]
\epsilon \in [0, 1]
ϵ∈[0,1] 为压缩比例。这样的话,复杂度可以从
O
(
N
M
)
O(NM)
O(NM) 减少到
O
(
N
ϵ
M
)
O(N \epsilon M)
O(NϵM)。默认
ϵ
=
N
/
M
\epsilon = N/M
ϵ=N/M。
其余部分与 MHA 相似,最后得到每个模态的上下文图信息。
CCS
一旦获得各模态的上下文图嵌入,接下来就是以协作方式将它们融合在一起,并学习不同模态之间的协作模式。同样基于CMHA,设计了 CCS,CCS 有 3 个并行的 CMHA 模块,每个模块都以一种模态作为 query,而另外两种模态共同作为 key 和value。以其中一个为例,CMHA 将上下文图嵌入的 content 模态作为 Q,并将 ECE 的 geometry 和 appearance 各自的输出作为 K 和 V 输入,求并集之后输入到 CMHA 中。
Table Structure Prediction
最后将 CCS 的三个输出融合成 collaborative graph embeddings,表示为
E
=
{
e
1
,
e
2
,
.
.
.
e
N
}
∈
R
N
×
d
e
\mathbf{E} = \{\mathbf{e}_1, \mathbf{e}_2, ...\mathbf{e}_N \} \in \mathbb{R}^{N \times d_e}
E={e1,e2,...eN}∈RN×de,基于此,把第 i 个和第 j 个作为一对沿着通道方向拼接在一起形成向量
U
=
{
u
1
,
1
,
u
1
,
2
,
.
.
.
u
i
,
j
.
.
.
u
N
,
N
}
∈
R
N
2
×
2
d
e
\mathbf{U} = \{\mathbf{u}_{1,1}, \mathbf{u}_{1,2}, ...\mathbf{u}_{i,j}...\mathbf{u}_{N,N} \} \in \mathbb{R}^{N^2 \times 2d_e}
U={u1,1,u1,2,...ui,j...uN,N}∈RN2×2de,然后使用三组全连接层分别预测第 i 个和第 j 个是否属于同一行、同一列和同一个单元格。每组全连接包含一个256维的全连接层、2维的全连接层、softmax层。
Loss Function
L
=
L
c
e
l
l
+
L
c
o
l
+
L
r
o
w
L = L_{cell} + L_{col} + L_{row}
L=Lcell+Lcol+Lrow
L
c
e
l
l
,
L
c
o
l
,
L
r
o
w
L_{cell}, L_{col}, L_{row}
Lcell,Lcol,Lrow 分别代表单元格、列和行的关系损失。对于每一个损失使用以下多任务损失函数来计算对比目标和预测输出嵌入对的所属类别的损失。
L
∼
=
λ
1
L
c
l
a
s
s
+
λ
2
L
c
o
n
L_{\sim} = \lambda_1 L_{class} + \lambda_2 L_{con}
L∼=λ1Lclass+λ2Lcon
L
c
o
n
L_{con}
Lcon 和
L
c
l
a
s
s
L_{class}
Lclass 分别是对比损失和二分类损失。
给定一对 collaborative graph embeddings
{
e
(
a
)
,
e
(
b
)
}
\{\mathbf{e}_{(a)}, \mathbf{e}_{(b)}\}
{e(a),e(b)} 和对应的拼接向量
u
(
a
,
b
)
\mathbf{u}_{(a,b)}
u(a,b),定义损失如下:
L
c
o
n
=
∣
∣
e
(
a
)
−
e
(
b
)
+
∣
∣
2
2
+
max
{
0
,
α
−
∣
∣
e
(
a
)
−
e
(
b
)
−
∣
∣
2
2
}
L_{con} = ||\mathbf{e}_{(a)} - \mathbf{e}_{(b)}^+||_2^2 + \max \begin{Bmatrix} 0, \alpha - ||\mathbf{e}_{(a)} - \mathbf{e}_{(b)}^-||_2^2 \end{Bmatrix}
Lcon=∣∣e(a)−e(b)+∣∣22+max{0,α−∣∣e(a)−e(b)−∣∣22}
L
c
l
a
s
s
=
−
log
(
P
(
z
=
c
∣
u
(
a
,
b
)
)
)
L_{class} = - \log (P(z = c|\mathbf{u}_{(a,b)}))
Lclass=−log(P(z=c∣u(a,b)))
P
(
z
=
c
∣
u
(
a
,
b
)
)
=
exp
(
S
c
u
(
a
,
b
)
)
∑
k
exp
(
S
k
u
(
a
,
b
)
)
,
c
∈
{
0
,
1
}
P(z = c|\mathbf{u}_{(a,b)}) = \frac{\exp(S_c \mathbf{u}_{(a,b)})}{\sum_k \exp(S_k \mathbf{u}_{(a,b)})}, c \in \{0, 1\}
P(z=c∣u(a,b))=∑kexp(Sku(a,b))exp(Scu(a,b)),c∈{0,1}
其中,
e
(
b
)
+
\mathbf{e}_{(b)}^+
e(b)+ 和
e
(
b
)
−
\mathbf{e}_{(b)}^-
e(b)− 分别代表
e
(
a
)
\mathbf{e}_{(a)}
e(a) 对应的正样本和负样本,参数
α
=
1
\alpha=1
α=1 。z 是输入对的预测类别,S是Softmax函数中使用的权重矩阵,
S
c
S_c
Sc 和
S
k
S_k
Sk 分别表示其第 c 列和第 k 列。C=1表示输入对属于相同的单元格/列/行,否则 c=0。它们由权重参数
λ
1
\lambda_1
λ1 和
λ
2
\lambda_2
λ2 组成。考虑到存储效率,还在训练阶段引入了蒙特卡罗抽样来构造协作图嵌入对。对于推理,不执行采样,并且将所有协作图嵌入构造为对。
Computational Complexity
Qualitative Results