Paper: arxiv.org
Code: github.com
DETR을 중심으로 (Absract, Introduction, Related Work, Method)
Transformer 모델은 self-attention과 co-attention mechanism을 이용하여 정보를 contextualize하는 능력 덕분에 VQA같은 multi-modal reasoning tasks에서 SOTA 성능을 보일 정도로 많이 쓰이고 있다.
object detection과 image segmentation 등에도 널리 쓰이고 있습니다.
self-attention만 사용하는 transformer 모델과는 달리, co-attention을 사용하는 transformer는 prediction과 관련 있는 정보를 포착하기 위해 multiple attention maps을 병렬적으로 바라볼 필요가 있다. 본 연구에서는 Bi-model transformers, transformers with co-attentions과 같이 어떤 Transformer-based 구조를 갖든지 이 모델에 의한 prediction을 설명하는 첫 번째 방법을 제안한다.
우리는 포괄적인 solution을 제공하고, 이러한 아키텍처 중 가장 일반적으로 사용되는 세 개의 모델에 적용한다.
우리는 우리의 모델이 single modality explainability으로 채택된 현존하는 모든 설명 방법보다 좋다는 것을 보여준다.
Multi-modal Transformer는 computer vision이 사용되는 방식을 변화시킬 것 같다. SOTA 성능의 컴퓨터 비전 모델은 종종 task-specific(즉, 고정된 개수의 label만을 추론하는)한 모델로 학습되는 반면, Radford et al은 각 modality를 인코딩하는 트랜스포머를 활용하는 image-text model을 학습함으로써 열 개 정도의 downstream tasks들이 추가적인 training 없이 SOTA 성능과 유사한 성능을 내게끔 실행될 수 있다는 것을 보여주었다.
여기서 "추가적인 Training 없이" "zero-shot"으로 봐도 됩니다.
그 이후, Ramesh et al은 unseen domains에서 서술이 주어졌을 때 거기에 맞는 이미지를 생성하는 Bi-modal Transformer를 사용했고, 이전까지는 없었던 성능을 보여 주었다.
즉, 이 Multi-modal Transformer의 장점은 text와 image를 다양하게 다루는 데 도움이 됐다고 볼 수 있습니다.
조금 더 상세하게 다뤄보자.
첫 번째로, Text를 Transformer로 인코딩하고, image를 Resnet(혹은 Trasnformer)로 인코딩한다. 그 후, symmteric contrastive loss를 적용할 수 있다.
위에서 말하는 Transformer는 "Attention is all you need" 연구에 나오는 기본적인 Transformer입니다.
두 번째로, 정량화된 image representation을 text token과 concat해, Tranformer 모델에 통과시킨다.
text와 image를 통합하는 방법은 굉장히 다양한데(본문 내 38, 21, 19, 18 연구 등), 그 방법들의 공통점은 모두 two inputs에서 prediction으로 가는 mapping이 two modalities 사이의 interaction을 포함한다는 것이다. 이러한 interaction은 종종 기존의 설명 방법들을 적용하기 어렵게 만듭니다.
attention-based한 기존의 방법들을 사용하기 힘든 이유는, 기본적으로 거의 모든 Transformer explainability 방법들은 self-attention 매커니즘에 의존하고, 다른 형식의 attention(주로 multi-modal Transformer에 쓰이는)에는 적용할 수 없기 때문입니다.
self-attention에 얽매이지 않는 다른 트랜스포머 모델은 바로 generative model과 같은 Transformer encoder-decoders 모델이다.
generative model은 주로 단일 domain에서 input을 받고, 다른 output을 생성해내는 모델이라 볼 수 있습니다.
Transformer encoder-decoder 모델은 object detection(DETR, Deformable DETR), image segmentation("End-to-end video instance segmentation with transformers", etc.), machine translation("Attention is all you need") 등에 떠오르는 방법론들에 쓰인다.
예를 들면, object detection method에서는 position-specific한 embeddings과 class-specific한 queries가 인코딩된 이미지 정보와 교차된다.
우리는 이러한 모든 트랜스포머 구조에 적용할 수 있는 explainability method를 제안하고, 가장 널리 쓰이는 구조인 (1) pure self-attention, (2) self attention combined with co-attention, and (3) encoder-decoder attention 에 대해 효과를 입증한다.
저자들은 이를 통해 기존의 single modality origin에서 적용된 트랜스포머 방법론들을 압도하는 결과를 보여줍니다.
또한, 기존의 연구인 "Transformer interpretability beyond attention visualization"에 비해 실행 자체도 굉장히 간단합니다(저자들의 이전 연구이며, 위의 링크는 본 블로그의 리뷰로 이어집니다).
컴퓨터 비전 분야에서 XAI 알고리즘은 보통 각 위치에서 계산된 relevancy를 나타내는 heatmap을 합성하는 식의 내용을 포함한다. 이는 모든 label에 대해 class-dependent하게 이루어질 수도, 혹은 input과 model에만 의존하는 class-agnostic한 형태로 이루어질 수도 있다.
밑에서 기술할 기존의 XAI 방법들과는 달리 본 논문의 저자들이 제안한 방법은 최초의 타입이라 할 수 있습니다.
기존의 XAI 방법론들은 보통 아래와 같은 범주로 나눌 수 있다.
후자(아마 class-agnostic한 방법?)는 보다 이론적인 모티베이션으로 이루어진다. 이론적인 정당화는 종종 Deep Taylor Decomposition("Explaining nonlinear classification decisions with deep taylor decomposition.")을 대표하는 attribution-based methods로 주어진다.
위에서 말하는 방법은 상위 레이어에서 하위 레이어로 전파하며 타당성을 유지(고정된 상수로)하는 방법으로 진행됩니다. 유명한 LRP 방법이 그 예중 하나입니다.
이 LRP 방법과 변형들은 CLASS-AGNOSTIC하며, 확장을 통해 class-specific하게 쓰이기도 했습니다(자세한 예시들은 본문 내 Reference참고).
Transformer에 관한 대부분의 설명 모델은 attention maps을 직접적으로 사용한다. 하지만, 이러한 방법들은 Transformer의 다른 요소들 뿐만 아니라, intermediate attention score를 무시한다.
결과적인 attention score만 바라볼 뿐, 그 score가 만들어지는 과정을 사용하지 않는다는 의미입니다.
저자들의 이전 연구에서 언급했던 것처럼, 각 attention head 내에서의 연산은 queries, keys, 그리고 values를 혼합하는데, 그저 이 queries와 keys의 내적(행렬 곱, attention이라 불림)만을 고려해서는 그 연산 과정을 정확히 포착할 수 없습니다.
LRP 방법이 Transformer block 내 attention heads의 상대적 중요성을 포착하기 위해서 LRP가 적용됐었던 적이 있었다("Analyzing multi-head self-attention: Specialized heads do the heavy lifting, the rest can be pruned"). 하지만 이 방법은 heatmap을 생성하기 위해 relevancy score를 input까지 전파시키지 않았다.
Abnar et al은 multiple layers를 따라 attention score를 통합하는 방법을 제안한다("Quantifying attention flow in transformers"). 여기서 attention rollout과 attention flow를 제안한다.
attention rollout이 특정한 상황에서는 성능이 굉장히 좋았지만, large-scale의 연산을 지원하기에는 너무 느린 측면이 있었습니다.
이 방법과 대조적으로, 저자들의 이전 연구에서는 Transformer model내 모든 구성요소에서 정보를 역전파시킴으로써 전반적인 이해를 제공하였다. 이 방법은 LRP 방법을 기반으로 하며, self-attention layer를 위한 gradient integration를 도입했으며, single modality Transformer encoder(예를 들어, Vision Tranformer - "An image is worth 16x16 words")에 있어서 매우 효과적이였다.
하지만, 역시 이 방법은 self-attention 외에 다른 attention module을 사용하는 모델에 대한 솔루션은 제공하지 못하였고 따라서 모든 Transformer architectures에 대한 설명을 제공할 수는 없었다.
트랜스포머 구조는 점점 bi-modal tasks에서도 만연하기 시작했다.
여기서 bi-modal tasks는 image captioning(이미지와 텍스트의 겨합), text-based image retrieval 등을 말합니다.
우리는 이런 모델들을 아래와 같은 범주로 나눈다.
논문 저자의 방법들은 두 타입에 대한 적절한 시각화 방법을 제공합니다.
우리의 방법은 또한 (우리가 알기론) Transformer encoder-decoders 모델에 적용할 수 있는 최초의 완전한 솔루션이다.
DETR Trasnformer-based detection methods에서는, image가 Transformer encoder에 의해 인코딩되고, 얻어진 정보는 positional하고 class-based한 queries와 함께 co-attended된다.
self-attention은 그저 input tokens이 개별적으로 transformer 모델에 투입되는 것을 뜻하고, co-attention이란 다른 정보(위치 정보, 클래스 정보 등)이 함께 결합되어(주로 concat되어) Trasnformer 모델로 투입되는 것을 말한다.
위에서 말하는 class-based queries가 어떤 것을 뜻하는 걸까? 내 기억에서 DETR은 Resnet과 같은 backbone으로 인해 feature map이 추출된 다음 positional embeddings과 concat해서 Transformer model에 투입되는 것으로만 기억한다.
해당 방법은 encoder-based한 visual Transformer에도 적용될 수 있는데, 여기에는 image recognition, image segmentation등이 포함된다.
위에서 image segmentation은 CNN decoder를 기반으로 합니다.
위의 경우에는 기존의 Transformer explainability methods들도 적용될 수 있습니다.
(DETR)의 구조
본 논문에서 사용하는 방법을 요약하자면 아래와 같이 서술할 수 있을 것 같다.
network의 input modalities 사이의 각 상호작용에 대한 relevancy map을 생성하기 위해 모델의 attention layers를 사용한다.
본 연구에서는 이를 위해 image-text 간 상호작용과 generative models의 attention moodules을 중점으로 바라본다.
위에서 말하는 generative model은 encoder-decoder attention 이라 할 수 있습니다.
또한, 본 연구가 제안하는 방법은 웬만한 Transformer-based 구조엔 적용 가능하고, 2개 이상의 modality를 다룰 수 있게끔 쉽게 일반화될 수 있습니다.
아래에선 심플함을 위해 2 modalities(즉, text and image)를 가정한 상태로 propagation rules를 기술한다. 그리고, 그 후에는 우리의 방법을 각 모델 타입에 맞게끔 적용하는 방법을 기술할 것이다.
우선, notation을 아래와 같이 정하자.
: number of text input tokens
: number of image input tokens
본문에서는 각 도메인에 맞는 변수를 한 번에 나타낼 수 있게끔 라는 표현을 사용합니다.
Multi-modal attention metworks는 input tokens간에 4가지의 상호작용을 포함한다.
: self-attention interactions for the text tokens
: self-attention interactions for the image token
: multi-modal attention interactions. 이 때 는 각 text token에 대한 image tokens의 영향력이다.
: multi-modal attention interactions. 이 때 는 각 image token에 대한 text tokens의 영향력이다.
위와 같이 notation을 정하고 나면, 이와 일치하게끔 interaction 당 relevancy map을 구성할 수 있다.
즉, 와 를 self-attention을 위한 relevancy map, , 를 bi-modal attention을 위한 relevancy map이라 구축하면 된다.
해당 방법은 attention layers를 따라 forward pass를 함으로써 relevancy map을 연산하는데, 아래에서 기술할 update rules를 이용함으로써 각 layer가 aggregated(합쳐진) relevance matrices에 기여한다.
attention 연산을 진행하기 전에는, 각 token이 self-contained 하다 할 수 있다.
위에서 말하는 self-contained는, token들이 최초에 transformer input으로 투입될 때에는 attention layer를 거치지 않은 상태이기 때문에 self-interaction(즉, self-attention) graph 자체도 존재하지 않는 상태로 정의해야된다는 의미입니다.
따라서, 최초에는 self-attention interaction이 identity matrix로 초기화한다.
또한, bi-modal interactions에서는 각 modality는 분리되어있고, 다른 modality의 맥락을 포함하지 않기 때문에 relevancy maps은 zeros로 초기화된다.
기존의 어탠션 매커니즘을 다시 살펴보자.
: 어텐션 모델의 output
: queries matrix
: keys matrix
: value matrix
: head의 개수
: 임베딩 차원
: 도메인과 각 도메인의 토큰의 개수
- 예를 들어, attention은 query tokens과 key tokens 사이에 발생한다.
아래 그림을 보자.
위의 그림에서 self-attention과 co-attention의 차이점을 알 수 있다.
self-attention에서는 가 성립하고, 가 input에서 attention unit으로의 projections이다.
co-attention에서는 가 input의 projection이고, 가 다른 modality에서 나온 context input의 projections이다.
이 때, 는 에서 나온 tokens의 각 pair 사이에 연결을 직관적으로 정의하는 attention map이라 할 수 있다.
attention module 이후에 residual connection이 이어지기 때문에, 각 layer의 기여를 aggregated relevancies에 더함으로써 relevancies를 누적할 수 있다.
즉, residual connections을 표현하기 위해 identity matrix를 더합니다.
저자들의 방법은 각 attention layer의 attention map 를 relevancy maps을 업데이트 하는데 사용한다. 각 attention map이 heads로 이루어져 있기 때문에, 기존의 연구와 같은 방법을 사용해 heads 간 평균을 낸다.
attention head는 head마다 중요성, 타당성(relevance) 등에서 다르기 때문에 단순히 평균 내는 것은 왜곡된 relevancy map을 만들 수 있습니다. 그렇기에 이전 연구 에 도입된 방법을 사용해야 합니다(저자 주장).
최종적인 attention map 는 아래와 같이 정의된다.
이 때 이며, 는 시각화하고자 하는 class 에 해당하는 output이다.
또한, 는 heads 의 차원을 따라 평균을 낸 것이다.
위에서 약간 언급했다시피 단순 평균을 내기 전에 반복적인 작업을 거쳐 negative contributions을 제거합니다
self-attention layers에 해당하는 의 경우, affected aggregated relevancy scores을 위한 update rules은 아래와 같이 정의된다.
self attention layer의 경우 가 성립합니다.
본 논문에서 자주 나오는 용어인 contextualized 는 attention model이 tokens에 대해 관계를 인식하는 것으로 생각하면 되고, mix(es) 또한 attention layer를 반복 통과함에 따라 정보가 섞이는 것으로 이해하면 됩니다.
위의 방정식 (6)에서는 tokens이 이전의 attention layers에서 aggregated self-attention matrix 와 곱해졌으며, 그렇기에 이미 contextualized가 일어났다는 사실을 보여준다.
방정식 (7)에서는 이전의 bi-modal attention layers가 맥락을 에서 로 투입했다고 볼 수 있고, 따라서 에서 나온 tokens을 self-attention가 혼합할 때, 에서 나온 각 token의 맥락 또한 혼합한다는 것이다. previous layers' mixture of context는 로 나타난다. 따라서 우리는 self-attention process에서 나온 added context를 연산하는 것이다.
반면, , 즉 bi-modal attention이 적용되는 경우에는 relevancy accumulator의 update rules이 self-attention matrices를 위한 normalization 를 포함한다.
이 때 입니다. 즉, tokens와 keys
저자들은 를 로 초기화하고, 방정식 (6)은 각 레이어에서 relevancy matrices를 누적시키기 때문에 우리는 aggregated self-attention matrix 를 아래의 두 가지로 구성된 matirx로 여길 수 있다.
초기화 할 때의 항등 행렬과, 레이어를 거치면서 누적된 Relevancy matrix로 나누는 것입니다.
방정식 (5)가 heads를 따라 평균을 내기 위해 gradients를 사용하기 때문에, 의 값은 일반적으로 줄어든다. 본 저자들은 (1) 각 token은 스스로에게 영향을 끼친다라는 사실과 (2)self-attention mechanism에 의한 contextualization을 모두 동등하게 설명하길 원한다.
따라서, 의 각 행을 정규화 하여, 행의 합이 1이 되게끔한다. 직관적으로 의 행 는 번째 token에 대한 각 token의 self-attention value를 보여주고, 는 각 token 그 자체에 대한 각 token의 attention value를 1로 할당한다.
항등행렬을 생각해보면 굉장히 당연하다.
위에서 말하는 token이란 vision 분야에서는 (downsampled) image의 각 pixel이라고 생각하면 됩니다. 즉, 위의 행렬 의 경우 행과 열의 길이가 모두 가 됩니다(단, 이 때 는 feature map에 관한 값).
따라서, 아래와 같이 식을 정리할 수 있다.
이 때 는 행렬에서 각 요소 별로 나누는 연산자이다. 위에서 의 각 행을 정규화 하는데, 해당 행의 각 요소를 해당 행의 합으로 나누어줌으로써 정규화를 수행한다.
다음으로, bi-modal attention units을 위한 aggregation rules을 아래와 같이 정의한다.
식 (10)은 aggregated self-attention matrices인 를 각 modality의 tokens과 곱함으로써 이미 이전의 attention layers에서 contextualized가 된다.
식 (11)에서는 이전의 bi-modal attention layers가 두 modalities의 임베딩을 통합하는 것을 볼 수 있다. 따라서, 를 와 contextualizing 할 때 또한 에서 나온 정보를 포함한다().
위에 기술된 rules같은 경우 modality 에서 나온 input과 modality 에서 나온 context에 관해 기술됩니다.
예를 들어, image와 text의 두 modalities 모두에게 대칭적으로 rule이 적용됩니다
최종적인 분류를 하기 위해 트랜스포머 모델은 종종 input tokens에 더해져 모든 input tokens의 general representations을 구성하는 [CLS] token을 고려한다. 분류 문제에서 토큰 당 relevancies를 얻기 위해 relevancy map에 있는 [CLS] token에 해당하는 row를 고려할 수 있다.
예를 들어, [CLS] token이 text modality에서 first token이라고 가정해보자. 이 때, text token 당 relevancies를 추출하기 위해서 의 first row를 고려하는 것이다.
마찬가지로 image modality에서는 image token의 relevancies를 추출하기 위해 의 first row를 고려하면 된다.
위에서 의 first row는 [CLS] token과 다른 image token 들 사이의 connections을 묘사하는 행렬이다.
본 단락에서는 DETR에 관한 단락만 정리하겠습니다(아래 그림 Figure 2의 (c)).
위에서 세번 째 네트워크인 (c)는 encoder-decoder 구조로, 주로 Object detection의 대표적인 모델인 DETR이 존재한다.
이러한 네트워크는 encoder와 decoder로 이루어진다.
encoder : (보통 CNN기반 모델로 feature extracted 된)input tokens에 self-attention을 적용
decoder : 아래와 같이 2개의 input으로 구성
- input 1 : encoded data(고정)
- input 2 : decoder의 domain으로부터 나온 inputs(변할 수 있음)
Decoder는 decoder domain's tokens에 대해 self-attention을 반복 활용하고, 그 뒤에 decoder domain's tokens를 encoder's output과 함께 contextualizing하는 co-attention layer가 따라온다.
조금 더 자세히 다뤄보자.
이 상황에서, relevance update rules은 아래와 같다.
: encoder의 token
: decoder의 token
: self-attention interaction에 대한 relevancy matrix
: self-attention interaction에 대한 relevancy matrix
: decoder의 token과 encoder의 token 사이의 bi-modal interactions
encoder는 contextualized 되지 않았기 때문에 에 해당하는 relevancy matrix는 가지지 않는다.
에 해당하는 encoder self-attention 연산은 아래 식과 같으며,
에 해당하는 decoder self-attention 연산은 아래 식과 같다.
에 해당하는 decoder의 bi-modal attention 연산은 아래 식으로 이루어지는데, 이는 encoder와 decoder의 self-attention을 설명한다.
, 즉, 이 단락의 표현으로 에 해당하는 relevancy map을 갖지 않기 때문에 방정식 (11)은 사용하지 않습니다.
DETR과 같은 Object Detection 모델에 있어서, 에서 나온 각 token은 input image 내 object를 표현하는 query이다.
detected된 object 에 관한 각 image region에 대한 relevancy를 생성하기 위해, 의 row를 고려해야 한다.
즉, 위에서 말하는 row는 detection에 대응하는 행입니다.
위에서 참고한 는 각 encoder token 당 relevancy score를 포함하며, 이 상황에서는 image region에 해당한다.
혹시 이 paper가 어떤 Conference에서 accepte 되었는 지 아시나요?