Paper: Transformer Interpretability Beyond Attention Visualization
Code: github.com
Transformer로 대표되는 Self-attention 테크닉은 자연어 처리 분야를 장악하고 있었고, 점점 컴퓨터 비전 분야로 확대되는 분위기다. image-classification 태스크 내에서 예측에 쓰인 이미지의 파트를 시각화 하기 위해서 기존의 방법들은 attention maps에 의존하거나, attention graph를 따라 휴리스틱한 propagation을 사용해왔다. 본 연구에서는, 트랜스포머 네트워크를 위해 relavancy를 연산하는 새로운 방법을 제안한다. Deep Taylor Decomposition principle를 기반으로 local relevance를 할당하고, 이 relavance score를 layer를 통해 (순)전파시키는 식이다. 본래 이 순전파에는 attention layer와 skip connection이 존재하기 때문에 현존하는 방법들(in XAI area)을 사용하기 어렵지만, 우리는 layer를 통과시키면서 total relevancy를 유지하는 공식을 사용해 해결한다. 이런 방법을 매우 최신의 (visual) 트랜스포머 네트워크와 text classificaton 문제에 적용했으며, 기존의 설명 방법들보다 더 좋은 장점을 보여주었다.
트랜스포머 모델은 NLP 분야에서 수 많은 SOTA-Network에 쓰였으며, 점차 vision 분야에도 쓰이기 시작하는 추세이다. 특히, image recognition과 object detection(DETR) 분야에서도 좋은 결과를 보여주었다. 트랜스포머 네트워크의 중요성은 그 네트워크의 예측 과정을 이해하기 위해 '시각화 툴의 필요성'을 야기하며, 이런 시각화 툴은 모델을 디버깅하고, 모델이 편향되지 않았는지 검증하며, 하위 태스크들을 하는데 도움이 된다.
트랜스포머 네트워크 내에서 가장 중요한 구성요소는 self-attention layers인데, 이 구성요소는 모든 two tokens간에 pairwise한 attention value를 할당한다.
NLP 분야에서 token은 보통 word나 word part입니다.
vision 태스크에서 token은 보통 patch와 관련될 수 있습니다. 이에 관해 DETR 논문리뷰나 비전 트랜스포머의 핵심 논문인 An image is worth 16x16 words: Transformers for image recognition at scale을 참고할 수 있습니다.
트랜스포머 모델을 시각화하기 위한 common pratice는 이 attentions을 relevancy score로 여기는 것이다(DETR, Attention all you need, etc.).
주로 single attention layer의 단위에서 행해집니다.
다른 방법으로는 multiple layers를 결합하는 것이다. 그 방법 중 하나를 예시로 들면, 주로 각 token마다 얻어지는 attentions을 평균내는 것이다. 하지만 이는 signal을 모호하게 할 수 있으며, 각 layer의 역할을 고려하지 못하는 문제가 존재한다.
CNN과 유사하게, deep layer는 훨씬 semantic(의미 있는)하지만, 각 token은 self-attention을 적용할 때마다 추가적인 맥락을 누적시킵니다.
한 대안으로, rollout method(Quantifying attention flow in transformers)가 있다. 이 방법은 pairwise attentions을 고려하고, attentions이 선형적으로 결합해 다음 context로 들어간다고 가정함으로써 모든 attention scores를 재할당한다. 이 방법은 분명 single attention layer의 활용에 있어서 좋은 결과를 보였지만, 우리가 보기엔, 너무 간단한 가정에 의존함으로써 관련 없는 token이 종종 highlighted되는 것 같다.
즉, 비선형적인 attention layer들을 선형결합하는 것. 선형성 가정은 기존의 XAI 방법들(LIME 등)에도 흔히 쓰였다.
본 연구에서는, layers를 통과하면서 sum of relevancy가 유지되도록 1. relavancy를 할당하고, 2. 이를 전파하는 파이프라인을 따른다.
트랜스포머 네트워크는 극도로 skip connection과 attention operator에 의존한다. 문제는, 두 개 모두 two activation maps을 혼합할 뿐더러, 각각이 unique challenge로 이어진다는 것이다. 특히나, 트랜스포머는 ReLU가 아닌 비선형성을 적용하기 때문에 positive features와 negative features로 이어진다. 이런 non-positive value를 조심히 다루지 않는다면 skip connection은 수치적으로 불안정해질 수 있다.
예를 들자면, XAI 방법 중 하나인 LRP(Layer-wise Relevance Propagation)은 이 경우 사용할 수 없습니다.
이처럼, self-attention layer는 나이브한 순전파를 거치면서 relevancy의 총량을 유지하기 힘들기 때문에, 굉장히 어려운 문제가 될 수 있습니다.
우리는 위에서 기술한 문제들을 다루기 위해 아래와 같은 방법을 제안한다.
컴퓨터 비전 분야에 쓰이는 많은 interpretability method들은 보통 class-specific하지 않다. 즉, 어떤 class를 시각화하든 간에 같은 visualization 결과를 반환하며, 이미지 내에 multiple objects가 포함되더라도 동일하다.
class-specific signal은, 특히 input까지 전파하는 방법의 경우, 종종 이미지의 두드러진 영역에 의해 흐려지는 경우가 있다.
아무래도 lower level로 갈수록 edge, ,line 등에 대한 정보가 주어지기 때문에 명확한 signal을 보기 힘들다는 게 아닐까 싶습니다.
이를 피하기 위해 특정 method(Grad-cam)는 lower layers에는 전파하지 않으며, 다른 method(Understanding Individual Decisions of CNNs via Contrastive Backpropagation)은 class간 차이를 강조하기 위해 다른 클래스들을 대조시킨다.
우리가 제안하는 방법은 애초에 class-based separation을 제공하며, 우리가 확신할 수 있는 한, 오직 Transformer visualization method만 이런 특성을 제공한다.
연구 Explaining explanations in ai에서는 explainability, interpretability, relevance를 다르게 정의한다. 이와 관련된 연구에는, 이론적인 체계를 제공하긴 하지만, 그것들은 특정 가정을 포함하기 때문에 현실세계에서는 좋은 결과를 보이지 못할 수 있다. 우리는 그저 기계적인 입장에서, 수용가능하고 다양한 벤치마크에 대한 성능을 보이는 것이 목표이기 때문에 이와 관련된 이슈는 피하려고 한다.
우리는 image segmentation과 positive/negative perturbation을 포함한다. NLP 단계에서는, public NLP explainability benchmark(Eraser: A benchmark to evaluate rationalized nlp models)를 고려한다.
본 단락에서는 GradCAM, DTD, LRP, DeepSHAP, Saliency-based methods, Activation Maximization, Perturbation methods 등을 다룹니다.
결론적으로는, Transformer에 직접적으로 어떻게 적용할지 명확하지 않으며, 연산량과 성능면에서 좋지 않다는 얘기입니다(post-hoc 모델의 경우).
트랜스포머를 위한 시각화 방법의 분야에서는 아직 그렇게 많은 기여가 없다.
기껏해봐야 attention score를 활용한 정도입니다.
현재의 이런 접근법들은 다른 종류의 연산을 수행하는 네트워크의 일부분 뿐만 아니라 attention 구성요소의 대부분을 간과한다. 가령, self-attention head는 queries, key, values등의 연산을 수행하는데, 이를 내적해서 얻어진 attention scores에만 초점을 두는 것은 근시안적인 접근이라 할 수 있다. 심지어 self-attention을 제외한 다른 layers(예를 들어, FPN 등) 은 고려하지도 않는다.
대조적으로, 본 연구가 제안하는 방법은 prediction에서 input까지 모든 layers를 전파합니다.
mean attention heads를 고려하는 것은 각 layer에 있는 attention heads의 다양한 연관성을 고려하지 못하기 때문에 적절하지 않다는 믿음 하에 LRP가 트랜스포머에 적용됐었다(Analyzing multi-head self-attention: Specialized heads do the heavy lifting). 하지만, relavance score를 input까지 전파하지 않았기에, 각 head의 relevance에 대해 부분적인 정보만을 제공하는 한계가 존재한다.
본 연구는 relevancy score를 다이렉트로 추정하지 않고, relative importance를 시각화하고, less relevant attention heads를 덜어내는 데 중점을 둡니다.
attention을 기반으로 기여도를 할당하는데 있어서 가장 어려운 점은 attentions이 다음 layer로 넘어갈 때 비선형적으로 결합된다는 것이다.
Rollout methods(Quantifying attention flow in transformers)은 attentions이 선형적으로 결합한다 가정하고 pairwise attention graph 간의 paths를 고려한다.
이 방법은 average attention scores가 낮음에도 불구하고 종종 관련 없는 token에 주의 집중하는 것으로 관측되었습니다.
또한, 이 방법은 결정에 있어서 어떤 부분이 positive하게 기여했는지, negative하게 기여했는지 구별하지 못합니다.
선형적인 방법은 positive/negative 개념을 따지기 어렵다는 얘기입니다.
이 연구는 위에서 말한 rollout외에도 attention flow라 불리는 section method를 제안한다. 이는 pair-wise한 attention graph를 따라 max-flow problem을 고려한다. 이는 때때로 rollout method보다 (masking을 통해 얻어지는)relevance scores와 input 관련 graidents에 더 관련있는 것처럼 보인다.
다만, 위 연구는 다른 relevancy 할당 방법들과 비교도 없었으며(raw attention scores 제외), 벤치마크에 대한 evaluation도 없었씁니다.
본 방법은 트랜스포머 내 각 layer에 있는 각 attention head의 score를 연산하기 위해 LRP-based relevance를 사용한다. 그 후, attention graph를 통해 이 scores를 통합한다. 이 때, 반복적으로 negative contribution을 지우는 방식으로, relavancy와 gradient의 정보를 모두 고려함으로써 score를 통합한다. 결과는 self-attention model을 위한 class-specific visualization이 나온다.
우선, 간단히 표현식을 정리하고 가자
: classification head의 개수
: 로 표현되는, 시각화 할 class
: layer 의 input
: 으로 표현되는, layers로 구성된 네트워크의 인덱스.
- : network의 input
- : network의 output
: class 에 대한 분류 결과
이 때, 체인룰을 사용해 output 에 대한 그래디언트를 아래와 같이 계산할 수 있다.
는 input 의 index, 는 input 의 index이다.
추가로,
: tensor 와 의 layer 연산
이라 하자.
이 때, Relevance propagation은 아래와 같은 Deep Taylor Decomposition(Explaining nonlinear classification decisions with deep taylor decomposition을) 따른다 .
즉, 번째 layer에서 번째 layer로 거슬러 올라갈 때 layer의 neuron에 대한 타당성입니다.
해당 타당성을 정의하기 위해 번째 layer의 연산에 쓰이는 와 연산자 에 대한 정보, 그리고 번째 layer의 타당성을 활용하면 됩니다.
https://arxiv.org/pdf/1512.02479.pdf
의 식 (3)~(7)을 참고하세요.
이 때, 식(1)과 유사하게 는 의 index이고, 는 의 index이다. 위의 식(2)는 conservation rule을 만족시킨다. 즉
이다.
Relevance Propagation은 역전파의 방향과 동일하기에 output과 가까운 layer에서 layer 방향으로 나아갑니다.
는 ReLU를 비선형 활성화로 가정하는데, 그렇기에 non-negative feature maps이 결과로 나오며, 이 때 relevance propagation rule은 아래와 같이 정의될 수 있다.
양수가 아닌 값은 relu에 의해 0으로 할당되기 때문에 생략할 수 있습니다. 나머지는 그냥 식(2)의 notation들을 원소로 분해한 것 뿐입니다.
이 때 와 는 각각 layer의 input과 가중치이다. 이 때를 라 정의한다.
아래의 참고. Taylor Decomposition 그림을 본다면 layer와 layer 간의 Relevance propagation을 더 직관적으로 이해할 수 있습니다.
GELU같은 ReLU외의 비선형성은 positive/negative values를 모두 반환한다. 이를 다루기 위해 식 (4)의 LRP propagation은 여러 인덱스인 의 부분집합을 구축함으로써 수정될 수 있다. 결과는 아래와 같다.
비선형성은 layer의 각 원소 에 대해서 적용됩니다.
달리 말하면, 오직 positive weighed relevance만을 고려한다. relevance propagation의 초기화를 위해 를 target class 를 표현하는 원핫벡터라 할 때, 로 설정한다.
첫번째 relevance layer 에서 총 타당성의 합은 1이다. 이로부터 이후 layer들의 타당성 총 합도 1이라는 사실을 예상할 수 있다.
- ReLU는 비선형이 맞지만, 본문 초반에 ReLU와는 다르게 attention layer는 비선형적이라는 말이 나온다. --> ReLU가 선형적인 게 아니라, ReLU는 0과 양수만 반환하는 반면, Attention은 음수까지 반환할 수 있다는 얘기.
- negative를 다루기 위해서 positive (weighed) relevance만 고려하는 게 지당한 일일까?
- 각 layer의 neuron(?)개수는 모두 같을까? 즉, classification의 개수일까(위에서 )? --> 당연히 다름.
트랜스포머 모델에는 두 개의 feature map tensors를 혼합하는데 관여하는 두 개의 연산자가 있다.
skip connection
matrix multiplications(attention modules)
위 연산자들도 두 개의 input tensors를 관통하는 relevance propagation을 필요로 한다.
단순히 두 연산자에 대한 Relevance propagation(타당성 전파)가 필요하다는 것입니다.
당연히, 2번에 나타난 행렬 곱의 경우 두 매트릭스의 크기가 다를 수 있습니다(attention modules).
이 때, 두 tensors 와 에 대한 타당성 전파는 아래와 같이 연산합니다.
식 (4)를 참고합시다.
타당성의 총합은 보존될 수 있기 때문에, 합 연산의 경우 아래의 식처럼 보존법칙(conservation rule)이 성립합니다.
다만, 행렬곱의 경우 일반적으로 이 보존 법칙이 성립하지 않습니다(증명은 해당 논문 참고).
skip connections에 대한 타당성 전파를 할 때, 우리는 numericla instabilities를 마주할 수밖에 없다.
본 논문에서는 skip connection의 수치적인 이슈와 행렵곱에 따른 attention 매커니즘의 lack of conservation 을 다루기 위해 아래와 같은 normalization을 적용한다.
위의 식과, 보존 법칙(식(3))과 relevance 초기화에 따라, 최종적으로 각 layer 에 대해
이라는 결과를 얻는다.
위와같은 설정들을 토대로, 아래와 같은 장점을 얻는다.
: Transformer model
: Transformer model 내 block 개수
- 라 할 때, 각 block b는 self-attention, skip-connection, additional linear layer, normalization layers로 구성된다.
: Transformer model이 받는 token의 길이
: Transformer model이 받는 token의 차원
이 때, 모델 은 차원의 tokens의 sequence를 입력으로 받는다(classification을 위한 special token도 존재).
그 후, 모델 은 길이 의 분류 확률 vector 를 반환한다(classification token을 이용해 계산한다).
self-attention modules은 임베딩 차원 의 하위 차원에 해당하는 에서 연산이 진행된다().
self-attention module은 아래와 같이 정의된다(모두 block 에서 연산된다 가정).
이 때 는 차원의 output이다.
나머지 쿼리 , 키 , 밸류 는 모두 차원입니다.
input 을 self-attention에 돌리기 위한 projected 된 값이라 생각하면 편합니다.
는 차원의 attention map이다. 이 때 각 row 는 token 에 관한, input의 모든 tokens의 attention coefficients이다. 식(11)의 가 적용되기에, 의 각 attention head의 row의 합은 1이 된다.
즉, 각각의 head는 각기 다른 역할을 맡는다 볼 수 있고, 그 head에 대한 attention map의 row 를 참고하면 번째 token(pixel)에 대한 다른 모든 token들의 pair-wise한 확률 분포를 알 수 있는 것입니다.
아무튼, 위의 정보들을 토대로, 우리가 원하는 각 attention map 의 relevance propagation(타당성 전파)와 gradients를 얻을 수 있다.
: attention map 의 gradients
: attention map 의 relevance
- : block 의 operation에 해당하는 layer
- 즉, 는 이 layer 의 relevance이다.
위 식들은 모두 target class 에 관한 값입니다.
Relevance는 layer에 대해, gradients는 value에 대해 정의된다는 것을 생각하면 이해하기 쉽습니다.
우리 방법의 최종 output 는 아래와 같은 weighted attention relevance로 정의된다.
위에서 은 Hadamard product이고, 는 heads dimension 에 따른 평균이다.
이 때 gradients-relevance 곱의 positive value만 고려한다.
각 token의 self inhibition을 막기 위한 identity matrix를 추가했는데, 이는 트랜스포머 블록 중 skip connections을 설명하기 위함이다. 예를 들어, 아래의 roll-out method와 비교해보자.
input sample이 주어졌을 때, rollout의 결과는 시각화 할 target class와 관계없이 고정된 것을 볼 수 있다. 추가로, pairwise attention score를 제외하면 어떠한 signal도 고려하지 않는다.
우리 방법의 최종적인 설명 행렬인 는, transformer의 input이 tokens sequence일 때, 차원을 갖는다. 각 row는 해당 row를 표현하는 token과 그 나머지 모든 tokens 사이의 relevance map에 해당한다(식14, 11 참고).
본 연구는 classification에 관련된 모델이기 때문에, classification에 대한 설명을 담은 [CLS] token만 고려된다(CLS로 classification이 작동한다는 것). 따라서, [CLS] token에 대응하는 row 로부터 relevance map이 추출된다. 이 row는 classification token에 대한 각 token의 영향력을 계산한 score를 포함한다.
CLS는 Special Classifcation token입니다. 보통 CLS token은 트랜스포머를 거치고 나면 token sequence의 결합된 의미를 갖게 되는데, 이 때 classifier를 붙혀준다면 손 쉽게 분류를 진행할 수 있습니다.
우리는 [CLS] token이나 다른 구분자와 같은 special tokens을 제외한 actual input에 대응되는 tokens만 고려한다.
결국 궁금한 것은 input features와 classification의 관계이기 때문에 input features만 보면 됩니다.
ViT(An image is worth 16x16 words: Transformers for image recognition at scale)와 같은 vision models에서는, content tokens이 image patchs를 표현합니다.
우리는 최종적인 relevance map을 얻기 위해 기존의 길이의 sequence를 patches grid size로 reshape한다.
정사각형 이미지에 대해서, patch grid size는 이 됩니다.
이 map은 다시 original image size로 upsampling된다.
bilinear interpolation을 사용해 업샘플링을 진행합니다.
우리는 언어 모델 task를 위해서, BERT-based 모델을 분류기로 사용했는데, 512 length tokens를 사용했으며, classification HEAD의 input으로 쓰이는 classification token [CLS]을 가정했다.
만약 분류 문제가 아니라면 [CLS]는 사용하지 않습니다.
또한, 비쥬얼 모델 task를 위해서는, BERT와 비슷한 요소로 구성된 ViT-based 모델을 사용한다. input으론 input image를 겹치지 않는 16x16 patches를 사용한다. 이 때, 트랜스포머 모델에 투입하기 위해 flattening과 linear layer를 사용해 vector sequence로 만든다. BERT와 유사하게, [CLS]로 classification token을 사용해, input sequence의 시작점에 붙혀 사용한다.
baselines은 아래와 같이 세 가지로 나눌 수 있다.
1. attention map
2. relevance
3. gradient-based method
각각의 종류는 아키텍처에 대한 각기 다른 특성과 다른 가정을 가지며, 네트워크의 정보를 전파하기 위해 각기 다른 propagation 방법을 갖는다. 우리는 다양한 baselines의 성능을 반영하기 위해, explinability literature에서 매우 흔하고, 본 단락에서 다룬 광범위한 테스트에 적용될 수 있는 방법들에 집중했다.
즉,Pertubation과 Shapely based method로 대표되는 Black-box method는 연산하기 힘들고, 내재적으로 우리가 제안한 방법과 다르다.
위에서도 많이 다룬 rollout방법은 forward-pass를 통해 얻어진 모든 attention maps을 고려한 설명을 생성하는 방법이다.
좀 더 간단한 방법은 그냥 단순한 raw attention이다. 즉, block 1의 attention map을 사용해 relevance score를 생성하는 것이다.
이는 정의상 class-agnostic합니다. 즉, 클래스를 구분할 수 없습니다.
Relevance propagation
Attention-map based method와는 다르게, relevance propagation(타당성 전파)는 attention maps 뿐만 아니라 전체 네트워크를 통해 흐르는 information을 고려한다. 이 baseline은 식(4)와 [42] 연구를 따르는 LRP의 partial application을 포함한다. 우리가 보여줬던 것처럼 LRP method의 변종은들은 실질적으로 class-agnostic하기 때문에 다른 target class에 대해서도 시각화가 동일할 수밖에 없다.
Gradient-based methods중 가장 유명한 class-specific 설며 방법은 Grad-CAM이다. 이는 가중된 gradient-feature map을 마지막 convoluiton layer까지 연산한다. 우리가 찾은, GradCAM을 적용하는 가장 좋은 방법은 마지막 attention layer의 [CLS] token을 [CLS] token으로 여기지 않고 designated feature map으로 여기는 것이다.
classifcation-head를 적용하기 전 트랜스포머 모델의 마지막 output은 차원의 tensor 이고 오직 [CLS] token만이 classification head로 들어가는 것을 관측했다( : 다른 input tokens와 관련됨). 즉, 텐서 에 Grad-CAM을 수행하는 것은 [CLS] token을 제외한 모든 tokens을 0으로 할당한 sparse gradient tensor 를 도입할 것이다
Explaining nonlinear classification decisions with deep taylor decomposition
는 모두 양수(reLU를 사용하므로), 즉 를 음수로 가정할 경우 을 만족하는 root point 를 찾을 수 있게 됩니다.
즉, Taylor Decomposition을 적용할 수 있게 됩니다(LRP에서 0차 항인 의 값이 0이 될 경우 적용 가능합니다.)
그 결과 위와 같이 Taylor Decomposition을 수행할 수 있습니다.
단, 위에서 2차항 이상을 나타내는 은 편의상 없다고 가정합니다.
또한 위의 식은 heatmap-scale에서는 element-wise 연산자인 을 활용해 아래와 같이 나타낼 수 있습니다.
즉, 딥러닝 네트워크 의 에 대한 gradient와 (이미지 - root point ) 사이의 Difference 간에 element-wise product를 타당성으로 정의할 수 있습니다.
다시 돌아와서, 에 대한 타당성 를 에서 얻어봅시다.
즉,
식 (3)인
(input : / function : )
에서,
로 변했기 때문에 (input : / function )
아래의 식 (8)과 같이 쓸 수 있습니다( , 번 째 타당성만 표현.)
그러면, 결국 위와 같이 , 그래디언트=1을 얻을 수 있게 됩니다(reLU로 인해 는 모두 양수이고, 함수에 대한 root point는 을 만족하는 점이기 때문에).
해당 조건과 식 (1)을 이용해서 이전 layer에 해당하는 타당성 **를 구할 수 있게 됩니다.
즉, 를 에 대해 테일러 전개를 한번 더 수행하면 됩니다.
즉, 위에서 와 간의 관계식을 얻었기 때문에, 식(9)에서 를 로부터 얻었듯, 를 로부터 얻을 수 있습니다.
식 (3)에서
(input : / function : )
였으므로, 여기서 를 로 바꾸면 아래와 같은 식(4)가 도출됩니다.