论文地址:Dual-Level Collaborative Transformer for Image Captioning (arxiv.org)
主要改进
Background
传统的image captioning 方法是基于图片每个grid来进行描述文字的生成 (左图),通常会加入attention机制来强调图片中相对重要的区域。基于目标检测提取区域特征的方法 (右图),让image captioning领域得到了一定的发展。
常见的方法是先通过目标检测模型,如Faster RCNN,提取图片中的有效区域,再针对这些有效区域进行描述文字的生成。
然而仅仅使用目标检测提取不同目标区域进行文字描述存在一些问题: 1. 缺少上下文及背景信息; 2. 缺少细粒度特征的描述。而细粒度特征和上下文信息又正是基于grid的描述方法的优势。如下图,每张图的第一种描述就缺少背景信息或者细粒度特征。
改进点
本文的主要改进点:
- 同时利用grid features 和 region features进行图像描述文字的生成;
- 找到一种方法来获取grid feature 和 region features之间的关系,并不产生语义上的噪音。
语义噪音(Semantic noises) 指grid features可能和不相关的 region feature 产生联系,因为他们之间有类似的特征。如下图,猫身上的白色和遥控器的白色在特征联系时就可能出现语义噪音。
文章提出一种新的image captioning 模型,Dual-Level Collaborative Transformer (DLCT) network. 这个方法结合了grid features, region features的优势。其中核心模块如下:
- Comprehensive Relation Attention (CRA)
- Dual-Way Self-Attention (DWSA) module
- Locality-Constrained Cross Attention (LCCA)
模型讲解
Comprehensive Relation Attention (CRA)
Position Information
之前的模型对于区域的位置关系,一般只使用了区域之间的相对而言的位置 (并非相对位置,relative position),比如,基于视觉特征的位置关系,一个白的物体在一个黄的物体旁边。但是,区域在图片中的绝对位置也是一个很重要的信息,这可以很好的区分有相似视觉特征的物体的位置关系,比如两个相同颜色的物体在图片的不同区域,用绝对位置便可以更好的表示与不同物体的位置关系。
两种不同的特征,grid features, region features, 使用不同的绝对位置编码 Absolute Positional Encoding (APE)
对于grid feature使用 grid positional encoding (GPE):
GPE ( i , j ) = [ P E i ; P E j ] \operatorname{GPE}(i, j)=\left[P E_{i} ; P E_{j}\right] GPE(i,j)=[PEi;PEj]其中 i i i , j j j 表示 grid的横,纵坐标, P E i , P E j ∈ R d model / 2 P E_{i}, P E_{j} \in \mathbf{R}^{d_{\text {model }} / 2} PEi,PEj∈Rdmodel /2 被定义为:
P E ( pos , 2 k ) = sin ( pos / 1000 0 2 k / ( d model / 2 ) ) , P E ( pos , 2 k + 1 ) = cos ( pos / 1000 0 2 k / ( d model / 2 ) ) , \begin{array}{l} P E(\text { pos }, 2 k)=\sin \left(\text { pos } / 10000^{2 k /\left(d_{\text {model }} / 2\right)}\right), \\ P E(\text { pos }, 2 k+1)=\cos \left(\text { pos } / 10000^{2 k /\left(d_{\text {model }} / 2\right)}\right), \end{array} PE( pos ,2k)=sin( pos /100002k/(dmodel /2)),PE( pos ,2k+1)=cos( pos /100002k/(dmodel /2)),
对于region feature 使用 region positional encoding (RPE):
RPE ( i ) = B i W emb \operatorname{RPE}(i)=B_{i} W_{\text {emb }} RPE(i)=BiWemb 其中 i i i表示region box的索引, ( x min , y min ) \left(x_{\min }, y_{\min }\right) (xmin,ymin) and ( x max , y max ) \left(x_{\max }, y_{\max }\right) (xmax,ymax) 表示框的左上和右下坐标。 W e m b ∈ R d model × 4 W_{e m b} \in \mathbf{R}^{d_{\text {model }} \times 4} Wemb∈Rdmodel ×4 是 embedding parameter matrix.
同时,对于不同的区域也增加了相对位置编码 relative positional encoding (RPE), 使用了区域的长宽高及坐标信息,对于grid features也被使用了当前位置的grid信息来做相对编码。
Ω ( i , j ) = ( log ( ∣ x i − x j ∣ w i ) , log ( ∣ y i − y j ∣ h i ) , log ( w i w j ) , log ( h i h j ) ) T \begin{array}{l} \Omega(i, j)= \left(\log \left(\frac{\left|x_{i}-x_{j}\right|}{w_{i}}\right), \log \left(\frac{\left|y_{i}-y_{j}\right|}{h_{i}}\right), \log \left(\frac{w_{i}}{w_{j}}\right), \log \left(\frac{h_{i}}{h_{j}}\right)\right)^{T} \end{array} Ω(i,j)=(log(wi∣xi−xj∣),log(hi∣yi−yj∣),log(wjwi),log(hjhi))T
其中 Ω ( i , j ) \Omega(i, j) Ω(i,j) 先使用transformer中的方法进行embedding,然后线性变换成标量再进过ReLU激活函数。
Ω ( i , j ) = ReLU ( Emb ( Ω ( i , j ) ) W G ) \Omega(i, j)=\operatorname{ReLU}\left(\operatorname{Emb}(\Omega(i, j)) W_{G}\right) Ω(i,j)=ReLU(Emb(Ω(i,j))WG)
![](/qrcode.jpg)
Comprehensive Relation Attention
本文提出了利用上面提到的位置信息的一种新的attention模块, Comprehensive relation Attention。它加入了 query, key 的绝对位置信息和相对位置信息。
CRA ( Q , K , V , pos q , pos k , Ω ) = softmax ( ( Q + pos q ) ( K + pos k ) T d k + log ( Ω ) ) V \begin{array}{l} \operatorname{CRA}\left(Q, K, V, \operatorname{pos}_{q}, \operatorname{pos}_{k}, \Omega\right)= \\ \operatorname{softmax}\left(\frac{\left(Q+\operatorname{pos}_{q}\right)\left(K+\operatorname{pos}_{k}\right)^{T}}{\sqrt{d_{k}}}+\log (\Omega)\right) V \end{array} CRA(Q,K,V,posq,posk,Ω)=softmax(dk(Q+posq)(K+posk)T+log(Ω))V
同样也是用了multi-head attention:
MHCRA ( Q , K , V ) = Concat ( head 1 , ⋯ , head h ) W O , head i = CRA ( Q W i Q , K W i K , V W i V , pos q , pos k , Ω ) , \begin{array}{l} \operatorname{MHCRA}(Q, K, V)=\operatorname{Concat}\left(\operatorname{head}_{1}, \cdots, \operatorname{head}_{h}\right) W^{O}, \\ \text { head }_{i}=\operatorname{CRA}\left(Q W_{i}^{Q}, K W_{i}^{K}, V W_{i}^{V}, \operatorname{pos}_{q}, \operatorname{pos}_{k}, \Omega\right), \end{array} MHCRA(Q,K,V)=Concat(head1,⋯,headh)WO, head i=CRA(QWiQ,KWiK,VWiV,posq,posk,Ω),
Dual-Level Collaborative Encoder
整体的模型结构如下
Dual-Way Self Attention
因为模型利用了 region features ( V R = { v i } N R V_R = \{vi\}^{NR} VR={ vi}NR) 和 grid features ( V G = { v i } N G V_G = \{vi\}^{NG} VG={ vi}NG),因此在encoder输入两种特征后,分别使用了self-attention 进行了特征提取。
C r ( l ) = MHCRA ( H r ( l ) , H r ( l ) , H r ( l ) , RPE , RPE , Ω r r ) C g ( l ) = MHCRA ( H g ( l ) , H g ( l ) , H g ( l ) , GPE , GPE , Ω g g ) \begin{array}{l} \mathbf{C}_{r}^{(l)}=\operatorname{MHCRA}\left(\mathbf{H}_{r}^{(l)}, \mathbf{H}_{r}^{(l)}, \mathbf{H}_{r}^{(l)}, \text { RPE }, \text { RPE }, \Omega_{r r}\right) \\ \mathbf{C}_{g}^{(l)}=\operatorname{MHCRA}\left(\mathbf{H}_{g}^{(l)}, \mathbf{H}_{g}^{(l)}, \mathbf{H}_{g}^{(l)}, \text { GPE }, \text { GPE }, \Omega_{g g}\right) \end{array} Cr(l)=MHCRA(Hr(l),Hr(l),Hr(l), RPE , RPE ,Ωrr)Cg(l)=MHCRA(Hg(l),Hg(l),Hg(l), GPE , GPE ,Ωgg)
其中 H r ( 0 ) = V R \mathbf{H}_{r}^{(0)}=V_{R} Hr(0)=VR, H g ( 0 ) = V G \mathbf{H}_{g}^{(0)}=V_{G} Hg(0)=VG . Ω r r \Omega^{r r} Ωrr和 Ω g g \Omega^{g g} Ωgg 是region features 和 grid features的相对位置矩阵。
Self attention 后都会接上FFN模块:
C r ′ ( l ) = FFN r ( C r ( l ) ) , C g ′ ( l ) = FFN g ( C g ( l ) ) . \begin{aligned} \mathbf{C}_{r}^{\prime(l)} &=\operatorname{FFN}_{r}\left(\mathbf{C}_{r}^{(l)}\right), \\ \mathbf{C}_{g}^{\prime(l)} &=\operatorname{FFN}_{g}\left(\mathbf{C}_{g}^{(l)}\right) . \end{aligned} Cr′(l)Cg′(l)=FFNr(Cr(l)),=FFNg(Cg(l)).
这样两种特征都做了基于self attention机制的特征提取。
Locality-Constrained Cross Attention
在进行完self-attention之后,就开始对region features 和 grid features 进行特征的相互关系的融合。为了避免语义噪音,文中引出了 geometric alignment graph G = ( V , E ) G = (V, E) G=(V,E)。region features 和 grid features 都由独立的节点 V V V 表示,节点之间由无向边 E E E 表示。一个 grid node 只和与它有交集的 region node 之间存在边。但是,图中的 grid 和 region 可能存在没有任何交集的情况,因此,对于每个节点都与自己有一条边,如下图所示。
接下来就是基于这个图作为限制条件,来进行两种特征的融合。融合的办法为 Locality-Constrained Cross Attention (LCCA). 在这个模块中,源信息作为queries,目标信息作为keys,values,来将目标信息中的内容基于和源信息的关系embed到源信息中。可以理解为一个基于两种特征的关系,将两种特征相互交换的过程。
其中attention weight 的计算使用到的softmax改为基于图限制的softmax,即如果两个节点之间没有边相连,这个attention weight 则置0.
α i j = e W i j ′ ∑ j ∈ A ( v i ) e W i j ′ \alpha_{i j}=\frac{e^{W_{i j}^{\prime}}}{\sum_{j \in A\left(v_{i}\right)} e^{W_{i j}^{\prime}}} αij=∑j∈A(vi)eWij′eWij′
其中 v i v_{i} vi 表示图中的节点,即region 或 grid。 A ( v i ) A\left(v_{i}\right) A(vi) 是与节点 v i v_{i} vi 有边相连的节点。
在经过特征融合后的节点特征可以表示为:
M i = ∑ j ∈ A ( v i ) α i j ( l ) V j \mathbf{M}_{i}=\sum_{j \in A\left(v_{i}\right)} \alpha_{i j}^{(l)} V_{j} Mi=j∈A(vi)∑αij(l)Vj
通过这个方法,将先计算与当前节点相连的节点的权重矩阵,在通过权重来进行特征的融合。
举个例子,比如要计算 r 2 r_2 r2 和 g 43 g_{43} g43 , g 65 g_{65} g65 的 LCCA。将 r 2 r_2 r2 作为源信息, g 43 g_{43} g43 , g 65 g_{65} g65 作为目标信息。首先计算 r 2 r_2 r2 和 g 43 g_{43} g43 , g 65 g_{65} g65 之间的attention weight,即 r 2 r_2 r2 和 g 43 g_{43} g43 , g 65 g_{65} g65 之间的关系。通过关系的权重,得到 r 2 r_2 r2 基于 g 43 g_{43} g43 , g 65 g_{65} g65 的表征。此时 r 2 r_2 r2 就由 g 43 g_{43} g43 , g 65 g_{65} g65 表示。通过这样的操作,grid features 和 region features就很好的相互融合表示了。
至此,LCCA的过程就结束了,模型中同样使用了multi-head attention,公式如下:
MHLCCA ( Q , K , V ) = Concat ( head 1 , ⋯ , head h ) W O \operatorname{MHLCCA}(Q, K, V)=\text { Concat }\left(\operatorname{head}_{1}, \cdots, \text { head }_{h}\right) W^{O} MHLCCA(Q,K,V)= Concat (head1,⋯, head h)WO
head i = LCCA ( Q W i Q , K W i K , V W i V , pos q , p o s k , Ω , G ) \text { head }_{i}=\operatorname{LCCA}\left(Q W_{i}^{Q}, K W_{i}^{K}, V W_{i}^{V}, \operatorname{pos}_{q}, p o s_{k}, \Omega, G\right) head i=LCCA(QWiQ,KWiK,VWiV,posq,posk,Ω,G)
其中attention 运算使用的是CRA,并使用了上述基于图的权重计算方法 (Graph-SoftMax)
CRA ( Q , K , V , pos q , pos k , Ω , G ) = graph-softmax G ( ( Q + pos q ) ( K + pos k ) T d k + log ( Ω ) ) V \operatorname{CRA}\left(Q, K, V, \operatorname{pos}_{q}, \operatorname{pos}_{k}, \Omega, G\right)= \\ \operatorname{graph-softmax~}_{G}\left(\frac{\left(Q+\operatorname{pos}_{q}\right)\left(K+\operatorname{pos}_{k}\right)^{T}}{\sqrt{d_{k}}}+\log (\Omega)\right) V CRA(Q,K,V,posq,posk,Ω,G)=graph-softmax G(dk(Q+posq)(K+posk)T+log(Ω))V
grid features 和 region features 进行相互的特征融合,得到最终的encoder的输出:
M r ( l ) = MHLCCA ( C r ′ ( l ) , C g ′ ( l ) , C g ′ ( l ) , R P E , G P E , Ω r g , G ) \mathbf{M}_{r}^{(l)}=\operatorname{MHLCCA}\left(\mathbf{C}_{r}^{\prime}(l), \mathbf{C}_{g}^{\prime}(l), \mathbf{C}_{g}^{\prime(l)}, \mathrm{RPE}, \mathrm{GPE}, \Omega_{r g}, G\right) Mr(l)=MHLCCA(Cr′(l),Cg′(l),Cg′(l),RPE,GPE,Ωrg,G) M g ( l ) = MHLCCA ( C g ′ ( l ) , C r ′ ( l ) , C r ′ ( l ) , G P E , R P E , Ω g r , G ) \mathbf{M}_{g}^{(l)}=\operatorname{MHLCCA}\left(\mathbf{C}_{g}^{\prime}(l), \mathbf{C}_{r}^{\prime}(l), \mathbf{C}_{r}^{\prime(l)}, \mathrm{GPE}, \mathrm{RPE}, \Omega_{g r}, G\right) Mg(l)=MHLCCA(Cg′(l),Cr′(l),Cr′(l),GPE,RPE,Ωgr,G)
其中 Ω r g \Omega_{r g} Ωrg 是regions 和 grids的相对位置矩阵。 Ω g r \Omega_{g r} Ωgr 是 grids和 regions的相对位置矩阵。
通过这样的方法,我们将region features embed 到grids中,相反的将 grid features embed 到 对应的region 里。最后将通过Dual-Level Collaborative Encoder的两个特征,grid features 和 region features 堆叠起来送入transformer decoder中进行文本的生成。
总结
下图展示了使用了两种特征融合的方法和传统transformer生成文本的结果。可以看到,本文提出的DLCT模型能够更好的生成背景信息以及细节信息。
下图是image captioning模型表现的对比表格。