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