논문 리뷰

[Image Captioning] Dual Level Collaborative Transformer for Image Captioning

jeongpil 2021. 8. 27. 00:22

본 논문은 AAAI 2021에 게재된 논문으로 Image Captioning의 성능을 높이는 방법에 대해 소개하고 있습니다.

 

Xiamen University, Tencent Youtu Lab, National Tsing Hua University에서 연구하고 발표된 논문입니다.

 

 

1. Image Captioning

2. Dual Level Collaborative Transformer (DLCT)

  2-1. Background

  2-2. Model Architecture

  2-3. Intergrating Position Infromation

  2-4. Dual Level Collaborative Encoder

  2-5. Objectives

3. Result

4. Conclusion

 

 

 

1. Image Captioning

 

 

출처:https://ai.googleblog.com/

 

 

Image Captioning은 Computer Vision의 한 분야이고, 위의 그림과 같이 이미지를 입력받아 이를 자연어로 설명해주는 것을 의미합니다.

 

이미지를 더욱 자세하고 정확하게 설명하는 문장을 생성할수록 Image Captioning의 결과가 좋은 것이라 볼 수 있습니다.

 

 

 

2. Dual Level Collaborative Transformer (DLCT)

 

본 논문에서는 이미지를 더욱 잘 설명하는 Image Captioning을 위해 두 개의 Transformer를 합친 형태의 Dual Level Collaborative Transformer(DLCT)를 소개하고 있습니다.

 

2-1. Background

 

본 논문에서 DLCT를 소개하게 된 배경을 알아보겠습니다.

 

 

 

 

region feature를 사용하여 image captioning을 할 경우, contextual information의 부족이나 디테일들을 놓칠 수 있다는 단점이 존재합니다.

 

 

 

 

region feature는 전체 이미지를 탐색하지 않기 때문에 global scene을 정확히 묘사할 수 없습니다. (e.g., 첫 번째 이미지의 in front of a store)

 

또한, 각 region은 하나의 single featrue vecotr로 표현되기 때문에 object의 디테일을 놓칠 수밖에 없습니다. (e.g., 두 번째 이미지의 the colors of trains)

 

이러한 region feature의 단점을 grid feature를 사용함으로써 보완할 수 있습니다.

 

grid feature는 이미지의 모든 부분을 살펴보기 때문입니다.

 

즉, region feature와 grid feature를 같이 사용하면 좋다는 것은 자명하다고 볼 수 있습니다.

 

 

하지만, 이 두 feature를 direct하게 사용할 때, 유사한 appearance를 가진 경우 grid가 옳지 않은 region과 연결될 수 있기 때문에 attention process에서 semantic noise를 발생시킬 가능성이 존재합니다. 

 

예를 들면, 고양이와 컨트롤러가 있는 이미지에서 고양이의 배와 컨트롤러가 흰색으로 비슷하기 때문에 착각할 수 있다는 것입니다. 

 

이는 두 feature의 complementarity를 방해할 뿐만 아니라 전체적인 성능을 저하시킬 수 있습니다.

 

그래서 본 논문에서는 DLCT를 제안합니다.

 

 

2-2. Model Architecture

 

 

 

 

모델의 전체적인 구조는 위의 그림과 같습니다.

 

이미지의 region feature와 grid feature 각각은 absolute position 정보와 relative position 정보를 통합하는 Comprehensive Relation Attention(CRA)를 거칩니다.

 

이를 Dual-Way Self Attention이라고 부릅니다.

 

CRA를 거쳐 나온 값은 FeedForwd Network를 거쳐 Locality Constrained Cross Attention(LCCA)에 들어갑니다.

 

LCCA는 geometric alignment graph를 이용해서 region과 grid를 옳게 연결해주고 semantic noise를 없애는 역할을 합니다.

 

LCCA를 거쳐 나온 값은 마찬가지로 FFN을 거쳐 Transformer Decoder에 입력되고 입력된 이미지를 설명하는 문장인 Caption이 출력됩니다.

 

이제 그림과 수식을 통해 각 과정에 대해 자세히 알아보겠습니다.

 

 

2-3. Intergrating Position Infromation

 

이전의 방식들에서는 단지 region들의 위치 관계를 relative한 방식으로만 모델링했지만,

 

본 논문에서는 absoulte position 정보와 relative position 정보를 통합해서 위치 관계를 모델링합니다.

 

 

Absolute Positional Encoding

 

Absolute Positional Encoding(APE)은 feature가 어디에 있는지를 뜻하는 정보입니다.

 

grid feature의 경우, position에 sine과 cosine 함수를 적용한 1차원 임베딩을 연결해서 grid positional encoding(GPE)을 구할 수 있습니다.

 

$$GPE(i,j) = [PE_i ; PE_j]$$

 

\(PE_i, PE_j \in \mathbf{R}^{d_{model}/2}  \) are defined as:

$$PE(pos,2k) = sin(pos/10000^{2k/(d_{model}/2)})$$

$$PE(pos,2k+1) = cos(pos/10000^{2k/(d_{model}/2)})$$

 

i, j는 grid의 행 index와 열 index이고 pos는 position을, k는 차원을 의미합니다.

 

 

region feature의 경우, 4차원의 bounding box \( B_i = (x_{min}, y_{min}, x_{max}, y_{max})  \)를 이용하여 region positional encoding(RPE)을 구할 수 있습니다.

 

$$RPE(i) = B_iW_{emb}$$

 

i는 box의 index이고, \( (x_{min}, y_{min})  \)은 box의 왼쪽 위 꼭짓점, \( (x_{max}, y_{max})  \)는 box의 오른쪽 아래 꼭짓점을 의미하고, \( W_{emb}  \)는 임베딩 파라미터 행렬을 의미합니다.

 

 

Relative Positional Encoding

 

region feature의 box와 grid feature의 grid는 모두 \( (x, y, w, h)  \)로 표현될 수 있습니다.

 

\( x, y  \)는 center의 좌표, \( w  \)는 width, \( h  \)는 height를 의미합니다.

 

따라서, \( box_i  \)와 \( box_j  \)의 geometric 관계를 수식으로 나타내면 다음과 같습니다.

 

$$\Omega(i, j) =\left( log(\frac{\left |x_i - x_j \right |}{w_i}), log(\frac{\left |y_i - y_j \right |}{h_i}), log(\frac{w_i}{w_j}), log(\frac{h_i}{h_j}) \right)^T$$

 

그리고, \( \Omega(i, j)  \)를 Emb(Vaswani et al. 2017)을 이용하여 임베딩을 합니다. \( W_G  \)는 학습된 파라미터 행렬을 의미합니다.

 

$$\Omega(i, j) = ReLU(Emb(\Omega(i, j))W_G)$$

 

\( \Omega(i, j)  \)는 이제 두 box나 grid 사이의 geometric 관계를 의미하는 scalar값을 가지게 됩니다.

 

 

Comprehensive Relation Attention

 

이제 absolute positional information과 relative positional infromation을 구했으니, 이 둘을 Comprehensive Relation Attention(CRA)를 이용해서 합쳐줍니다.

 

Attention Layer의 queries와 keys를 APE를 이용해 변형시켜 줍니다.

 

$$W = \frac{(Q+pos_q)(K+pos_k)^T}{\sqrt{d_k}}$$

 

\( pos_q  \)와 \( pos_k  \)는 각각 APE의 queries와 keys를 의미합니다.

 

여기에 RPE를 더해줘 attention weights를 구합니다.

 

$$W'_{ij} = W_{ij}+log(\Omega(i, j))$$

 

이제 softmax 함수에 통과시키고 value vector를 곱해주면, CRA를 구할 수 있습니다.

 

본 논문의 Multi-Head CRA(MHCRA)를 수식으로 나타내면 다음과 같습니다.

 

$$MHCRA(Q, K, V) = Concat(head_i, ... , head_h)W^O$$

$$head_i = CRA(QW_i^Q, KW_i^K, VW_i^V, pos_q, pos_k, \Omega)$$

where

$$CRA(Q, K, V, pos_q, pos_k, \Omega) = softmax(\frac{(Q+pos_q)(K+pos_k)^T}{\sqrt{d_k}}+log(\Omega))V$$

 

 

2-4. Dual Level Collaborative Encoder

 

본 논문의 Encoder는 두 개의 sub-module을 가집니다. Dual-Way Self Attention과 Locality Constrained Cross Attention입니다. 

 

이 두 sub-module에 대해 자세히 알아보겠습니다.

 

Dual-Way Self Attention

 

일반적으로, visual features는 locally-conneceted convolutions에 의해 구해지기 때문에, isolated하고 relation-agnostic하게 됩니다.

 

그렇기 때문에, sefl-attention을 이용해서 inputs의 관계를 모델링해서 visual features의 질을 높이는 Transformer는 Image Captioning에서 중요한 역할을 합니다.

 

본 논문에서는 두 종류의 feature간의 intra-level 관계를 더 잘 모델링하기 위해, 두 개의 독립적인 self-attention 모듈로 구성된 Dual-Way Self Attention 모듈을 제안했습니다.

 

region의 hidden state는 \( H_r^{(l)}  \)와 grid의 hidden state는 \( H_g^{(l)}  \)는 \( l+1  \)번째 DWSA에 입력됩니다.

 

$$C_r^{(l)} = MHCRA(H_r^{(l)}, H_r^{(l)}, H_r^{(l)}, RPE, RPE, \Omega_{rr})$$

$$C_g^{(l)} = MHCRA(H_g^{(l)}, H_g^{(l)}, H_g^{(l)}, RPE, RPE, \Omega_{gg})$$

 

\( \Omega_{rr}  \), \( \Omega_{gg}  \)는 각각 region과 grid의 relative location 행렬을 의미합니다.

 

이제 이 두 값을 FFN에 통과시킨 후, Locality Contrained Cross Attention 모듈에 입력값으로 넣어줍니다.

 

$${C'}_r^{(l)} = FFN_r(C_r^{(l)})$$

$${C'}_g^{(l)} = FFN_g(C_g^{(l)})$$

 

 

Locality Constrained Cross Attention

 

저자들은 region과 grid의 복잡한 상호관계를 모델링하기 위해 Locality Constrained Cross Attention을 제안했습니다.

 

region과 gride가 이어질 때 발생하는 semantic noise를 없애기 위해, alignment graph \( G = (V,E)  \)를 이용합니다.

 

 

 

 

grid 노드들은 region과 겹치는 부분이 있을 경우 edge를 통해 region 노드와 연결됩니다.

 

위의 geometric alignment graph를 기반으로, 저자들은 source field와 target field의 두 종류의 visual feature field에서 attention을 식별하기 위해 LCCA를 적용했습니다.

 

LCCA에서 source field는 queries의 역할을 하고, target field는 keys와 values의 역할을 합니다.

 

LCCA는 source field의 representation을 향상시키는 것을 목표로 합니다.

 

위에서 구한 \( W'_{ij}  \)를 정규화한 \( \alpha_{ij}  \)는 다음과 같습니다.

 

$$\alpha_{ij} = \frac{e^{W'_{ij}}}{\sum_{j \in A(v_i)} e^{W'_{ij}}}$$

 

\( v_i  \)는 visual node이고 \( A(v_i)  \)는 \( v_i  \)의 neighboring visual node의 set을 의미합니다.

 

이를 통해 구한, weighted sum은 다음과 같습니다.

 

$$M_i = \sum_{j \in A(v_i)} \alpha_{ij}^{(l)}V_j$$

 

\( V_j  \)는 j 번째 visual node의 value를 의미합니다.

 

저자들은 이러한 과정을 간단하게 다음과 같이 표현했습니다.

 

$$M = \underset{G}{\scriptstyle\text{graph-softmax}}(W')V$$

 

 

CRA에서와 같이 본 논문의 Multi-Head LCCA(MHLCCA)를 수식으로 나타내면 다음과 같습니다.

 

$$MHLCCA(Q, K, V) = Concat(head_i, ... , head_h)W^O$$

$$head_i = LCCA(QW_i^Q, KW_i^K, VW_i^V, pos_q, pos_k, \Omega)$$

where

$$LCCA(Q, K, V, pos_q, pos_k, \Omega) = \underset{G}{\scriptstyle\text{graph-softmax}}(\frac{(Q+pos_q)(K+pos_k)^T}{\sqrt{d_k}}+log(\Omega))V$$

 

이 과정에서, grid feature와 region feature는 각각 source field와 target field의 역할을 합니다. 

 

LCCA의 \( l  \) 번째 output은 다음과 같습니다.

 

$$M_r^{(l)} = MHLCCA({C'}_r^{(l)}, {C'}_g^{(l)}, {C'}_g^{(l)}, RPE, GPE, \Omega_{rg}, G)$$

$$M_g^{(l)} = MHLCCA({C'}_g^{(l)}, {C'}_r^{(l)}, {C'}_r^{(l)}, GPE, RPE, \Omega_{gr}, G)$$

 

\( \Omega_{rg}  \)는 region과 grid의 relative position 행렬을 의미합니다.

 

LCCA를 통해 region과 grid를 올바르게 연결할 수 있고 두 종류의 피처를 모두 강화할 수 있습니다.

 

grid feature는 region feature를 통해 high-level object 정보를 얻을 수 있고,

 

region feature는 grid feature를 통해 디테일과 contextual 정보를 얻을 수 있습니다.

 

또한, geometric alignment graph 덕분에 연관이 없는 region과 grid이 연결되는 것을 방지할 수 있어 semantic noise가 발생하는 것을 막을 수 있습니다.

 

LCCA의 output을 FFN에 통과시킨 결과는 다음과 같습니다.

 

$$H_r(l+1) = FFN'_r(M_r^{(l)})$$

$$H_g(l+1) = FFN'_g(M_g^{(l)})$$

 

이 값들을 concatenate하여 decoder layer에 입력되고 Caption이 출력되게 됩니다.

 

 

2-5. Objectives

 

본 모델은 다음과 같은 cross-entropy loss를 optimize하는 것을 목표로 합니다.

 

$$L_{XE} = - \sum_{t=1}^T log(p_\theta(y_t^* | y_{1:t-1}^*))$$

 

\( y_{1:T}^*  \)는 ground truth sequence를 의미합니다.

 

또한, Self-Critical Sequence Training(Rennie et al. 2017)(SCST)을 이용해 구한 CIDER-D score를 optimize합니다.

 

이 부분에 대해서는 공부가 조금 더 필요해서 수식만 적도록 하겠습니다.

 

$$\nabla_{\theta} L_{RL}(\theta) = - \frac{1}{k}\sum_{i=1}^k (r(y_{1:T}^i)-b)\nabla_{\theta}logp_{\theta} (y_{1:T}^i)$$

 

 

3. Result

 

실험은 총 3가지 형태로 진행되었습니다.

 

① Offline Evaluation

 

 

 

Offline Test를 했을 때, Single Model 과 Ensemble Model 모두에서 본 논문의 Model이 SPICE score를 제외하고 모든 부분에서 가장 높은 성능을 보였습니다.

 

 

 

② Online Evaluation

 

 

 

Offline Test에서와 마찬가지로 DLCT(ResNeXt-152) 모델이 모든 모델 중 가장 높은 성능을 보였습니다.

 

 

 

③ Ablation Study

 

마지막 실험은 사용하는 사용하는 Feature의 종류, CRA의 사용 유무, LCCA의 사용 유무에 따른 모델의 성능 차이를 비교하는 실험입니다.

 

 

 

 

 

Table 3에서는 기존의 Trnasformer에 grid feature만 사용했을 때, region feature만 사용했을 때, 둘을 모두 사용했을 때의 성능과 DLCT에 grid, region feature를 모두 사용했을 때의 성능 차이를 보여줍니다.

 

DLCT에 grid feature와 region feature를 모두 사용했을 때의 성능이 가장 좋은 것을 확인할 수 있습니다.

 

 

Table 4에서는 Feature의 종류와 CRA의 사용 유무에 따른 성능 차이를 보여줍니다. 여기서도 DLCT를 grid와 region feature를 모두 사용하고 CRA를 사용한 모델이 가장 높은 성능을 보인 것을 확인할 수 있습니다.

 

 

마지막으로, Table 5에서는 LCCA의 사용 유무에 따른 성능 차이를 보여줍니다. DLCT에 LCCA를 사용한 모델이 가장 성능이 좋음을 확인할 수 있습니다.

 

4. Conclusion

 

결론적으로 DCLT에 grid feature와 region feature를 모두 사용하고, CRA, LCCA를 모두 사용한 모델이 기존의 Transformer모델보다 향상된 결과를 내는 것을 알 수 있습니다.

 

본 논문의 novelty는 region feature와 grid feature를 각각 encoding해서 decoder layer의 input으로 사용한다는 점이라고 생각합니다.

 

또한, 기존의 Transformer에 비해 향상된 결과를 보여줬습니다.

 

앞으로 Image Captioning과 자연어 처리, 추천 시스템 등 제가 관심을 갖고 있는 분야들에 대한 논문을 읽고 꾸준히 리뷰해보도록 하겠습니다 : )