Paper : https://arxiv.org/abs/2006.00753
SMA 首先使用结构图表示去编码图像中的 object-object,object-text 和 text-text 之间的关系,然后使用一 个多模态图注意力网络去理解,最后,由全局-局部注意回答模块处理来自上述模块的输出,以迭代地产生包含OCR和固定词汇的答案。

Pipeline
SMA 模型对具有多种关系类型的图进行推理。
- Question Self-Attention Module 把问题分解为六个子组件,包括 objects, object-object relations, object-text relations, texts, text-text relations and text-object relations。
- 使用 objects/text 节点构建一个 role-aware graph。节点之间的连接由相对距离决定。使用 question-conditioned graph attention module 更新这个图。在 SMA 中,没有使用整个问题指导图更新,只是使用了确定类型的问题组件更新对应的图组件。例如,与问题相关的 object 只更新object 节点,与问题相关的 object-text 只更新 object-text 边。
- 使用 global-local attentional module 产生一个不定长的答案。
Question Self-Attention Module

使用问题序列生成自注意权重,用于生成以问题为条件的 object 和 text 特征;和 6 个分解后的问题特征,用来指导 question conditioned graph attention.
因为问题
Q 不仅包含 object 和 text 节点信息,也包含他们之间的 4 类关系 ( object-object, object-text, text-object, text-object ),此模块把问题分解为 6 个子组件。
给定
T 个单词
q={qt}t=1T 的问题
Q ,首先使用预训练的 BERT 把单词嵌入到特征序列
{et}t=1T 中获得
{xtbert}t=1T。然后使用 6 个单独的带有 softmax 层的双层 MLP 生成 6 组注意力权重,例如
{ato}t=1T,{atoo}t=1T,{atot}t=1T,{att}t=1T,{attt}t=1T,{atto}t=1T 。使用这些权重计算 6 个
{xtbert}t=1T 的注意力权重和:
so,soo,sot,st,stt,sto,为分解后的问题表示 object 节点,object-object ( oo ) 边,object-text ( ot ) 边,text 节点,text-text ( tt ) 边缘和 text-object ( to ) 边缘。以
{ato}t=1T 和
so 作为例子:
ato=∑i=1Texp(MLPobja(xtbert))exp(MLPobja(xtbert)),t=1,...,T;so=t=1∑Tatoxtbert(1)
使用分解后的问题特征指导 question conditioned graph attention 。
还学习了分解后的子组件的两组自注意力权重,即
{wo,woo,wot},{wt,wtt,wto},其中每个
w 是一个标量。 它们计算如下:
wo,oo,ot=Zobj1exp(Wwo,oo,ots),wt,tt,to=Ztext1exp(Wwt,tt,tos),(2)
其中
s=T1∑t=1Txtbert,Zobj=exp(Wwos)+exp(Wwoos)+exp(Wwots),Ztext=exp(Wwts)+exp(Wwtts)+exp(Wwtos) 在某种程度上,这些权重扮演着先验概率的角色,因为它们只能通过问题来计算。 两组问题自注意力权重将分别用于生成以问题为条件的 object 和 text 特征
gobj 和
gtext
Question Conditioned Graph Attention Module
生成并理解一个 objects 和 texts 的异构图
Role-aware Heterogeneous Graph Construction
‘Role’ 表示节点的类型。首先构建一个节点为 objects 和 texts 的异构图,边表示在两个特殊节点之间的关系,每一个节点可以连接 5 个 object 节点和 5 个 text 节点,边可以分为四种类型表示不同的 role : object-object, object-text, text-text, text-object 。以构建 object-object 边为例,对于 object 节点
oi ,对剩下的 object 根据它们到
oi 的空间距离排序,把排名前 5 的 object 节点作为邻居
Nioo。根据它们的相对位置关系建立两个节点的边的关系。
oi 的位置表示为
[xic,yic,wi,hi] (中心坐标,高,宽),另一个节点
oj 的位置表示为
[xitl,yitl,xjbr,yjbr,wj,hj] ( 左上角坐标,右下角坐标,宽,高 ),然后它们的边关系为
eij=[wixjtl−xic,hiyjtl−yic,wixjbr−xic,hiyjbr−xic,wi⋅hiwj⋅hj]
Question Conditioned Graph Attention

使用分解的问题特征
s 来理解 role-aware graph 。把当做一个注意力机制。用不同的问题特征根据它们的角色 ( role ) 更新图的不同部分。例如,使用与 object 相关的问题特征
sic,hiyjbr−xic,wi⋅hiwj⋅hj]
Question Conditioned Graph Attention

使用分解的问题特征
s 来理解 role-aware graph 。把当做一个注意力机制。用不同的问题特征根据它们的角色 ( role ) 更新图的不同部分。例如,使用与 object 相关的问题特征
so 指导 object 节点的注意力权重,使用
sto 指导 text-object 边的注意力权重。分别计算图中 6 个角色的注意力权重:object 节点 (
po ),text 节点 (
pt ),object-object 边 (
poo ),object-text 边 (
pyjbr−xic,wi⋅hiwj⋅hj]
Question Conditioned Graph Attention

使用分解的问题特征
s 来理解 role-aware graph 。把当做一个注意力机制。用不同的问题特征根据它们的角色 ( role ) 更新图的不同部分。例如,使用与 object 相关的问题特征
so 指导 object 节点的注意力权重,使用
sto 指导 text-object 边的注意力权重。分别计算图中 6 个角色的注意力权重:object 节点 (
po ),text 节点 (
pt ),object-object 边 (
poo ),object-text 边 (
pot ),text-text 边 (
⋅hiw