[논문 요약] Attention on Attention for Image Captioning

이상민·2024년 2월 21일
0
post-thumbnail

본 논문은 기존 attention 메커니즘을 개선하여 Image caption task에서 model이 Image에 존재하는 object들 간 관계를 더 잘 파악할 수 있도록하는 새로운 AoA(Attention on Attention) module을 제안하는 논문이다.

1. Introduction

  • Attention: Attention module은 Q와 K/V가 어떻게 연관되어 있는지에 관계없이, 각각의 query에 대해 가중평균을 출력한다. Q와 V에 관련된 벡터가 없을 때에도, attention module은 항상 가중 평균(attention result)을 생성하는데, 이는 관련성이 없거나 model에 혼선을 줄수 있는 정보일 수 있다.

이해한 내용: Decoder의 attention result는 value vector와 query vector가 얼마나 연관 되어 있는지(attention-score)와 value vector의 정보만을 포함하고 있기 때문에 query의 직접적인 정보는 부족하다고 이해함

2. Method

AoA module을 소개한 다음 Image Encoder와 caption Decoder에 AoA를 적용하여 Image caption을 위한 AoANet을 설명한다.


2.1 Attention on Attentnion

  • Attention on Attention (AoA): 기존 attention 메커니즘의 문제점을 개선하기 위해 attention result와 query의 연관성을 측정하는 AoA module을 본논문에서 제안한다.

    1. Infomation vector & Attention gate 생성

    AoA는 attention result와 query를 이용해 "information vector" ii와 "attention gate" gg를 생성한다.
  • Information vector:


    v^\hat{v}: attention결과
    qq: query

    Linear transform을 통해 현재 context(query)와 attention 결과로부터 도출된다. 이렇게 생성된 Information vector는 attention으로 획득한 정보와 현재 context의 정보를 함께 담고 있다.

  • Attention gate


    v^\hat{v}: attention결과
    qq: query

    attention gate는 linear tranform와 sigmoid 함수를 통해 context와 attention의 결과로 부터 도출된다. attention gate의 각 channel의 값은 information vector에서의 해당 channel의 정보의 중요성(관련성)을 0~1로 나타낸다.

2. 다른 Attention 추가

attention gate와 information vector 간 원소별 곱을 계산해 aoa의 최종 출력 결과인 i^\hat{i}을 생성한다.

2.2 AoANet for Image Captioning

본 논문에서 AoA module이 적용된 Encoder/Decoder 프레임워크인 AoANet을 제안한다.

Encoder with AoA

  • Encoder Inference 과정
  1. CNN 기반의 model을 활용해 Image feature vector A={a1,a2,a3,...,ak}A=\{a_1,a_2,a_3,...,a_k\}를 추출
  2. 세개의 선형변환을 통해 AA로 부터 Q,K,VQ,K,V를 생성한다.
  3. Multi-head Attention layer에서 Q,K,VQ,K,V로 부터 V^\hat{V}를 생성
  4. AoA layer에서는 V^\hat{V}QQ로 부터 attention의 결과와 context의 정보를 담고 있는 vector를 생성
  5. 이후 AoA의 출력결과는 residual connection과 Layer Norm을 거치면서 최종 Encoder의 출력이 생성된다.

정리하면 Encoder는 다음과 같은 역할을 수행한다.

  • multi-head attention을 통해 이미지 내 객체들간 상호작용을 발견
  • AoA를 통해 객체들이 얼마나 잘 연관 되어있는지를 측정

Decoder with AoA


1. word embedding WW, 이전 time step의 결과 ct1c_{t-1}와 encoder에서 전달 받은 정보가 포함된 aˉ\bar{a}를 LSTM의 입력으로 사용
2. Attention layer에서 LSTM의 hidden state를 QQ, 인코딩 벡터에서 받은 AAK/VK/V로 attention 진행
3. AoA layer에서 Attention의 결과와 hidden state를 이용해 context vector ctc_t를 생성
4. 이과정을 순차적으로 진행해 모든 caption을 생성할 때 까지 반복

  • decoder는 해당 과정을 통해 관련 없는 객체를 거르고 관련된 객체의 정보만 남긴다.(attention gate)

2.3 Training and Objectives

3. Experiments


3.1 Dataset

3.2 Quantitative Analysis

3.3 Qualitative Analysis

해당 테이블은 AoANet과 baseline의 Image에 대한 caption생성 예시이다. baseline model은 문법에 맞게 caption을 생성했지만 이미지 내용에 대해서는 부정확하다. 반면 AoANet이 생성한 caption은 정확하게 이미지 내용을 표현하고 있다.

구체적으로 AoANet은 다음 두가지 측면에서 baseline 보다 우수하다.

  • AoANet은 같은 종류의 객체들의 수를 정확히 인식한다.

    위 테이블에서 첫번째, 두번째 예시와 같이 Two bird, Two cat 처럼 정확한 객체의 개수를 인식한다.

  • AoANet은 이미지에 존재하는 객체들 간 관계를 인식한다.

    새가 나무가 아닌 기린위에 있는 것, 소년이 공을 치고 있는 것 처럼 객체들 간 관계를 인식

3.4 Ablative Analysis

Ablative Analysis: 모델이나 알고리즘의 "feature"들을 제거해 나가면서 그 행위가 성능에 얼마나 영향을 미치는지 확인하는 것

refining module: 이미지 feature를 추출하고 바로 decoder에 feeding하지 않고, 아래와 같은 구조로 다듬은 module

  • Encoder에서의 AoA 효과

    • AoA를 적용하지 않은 refining module은 CIDEr-D 점수가 base에 비해 3.0 점 높다.
    • refining module에 AoA를 적용하면 CIDEr-D점수가 2.0 더 높다.
  • Decoder에서의 AoA 효과

    • LSTM 보다 단순한 두개의 선형변환을 포함한 AoA가 CIDEr-D 성능이 더 높다
    • LSTM + AoA의 경우 불안정한 결과를 보였는데 이는 더 이상의 gate를 쌓는 것이 더 이상의 성능향상을 주지 않는 다는 것을 의미한다.

AoA의 질적인 평가를 위해 각 decoding time step에서 참조된 이미지 영역을 시각화해보았다.

  • base model의 이미지 참조 영역(without AoA)
  • AoANet model의 이미지 참조 영역(with AoA)

두 모델의 시각화를 통해 attention 의 결과를 바로 decoder의 입력으로 사용하는 것은 항상 신뢰할 수 없다는 것을 발견했다.

profile
잘하자

0개의 댓글