본문 바로가기

에세이

Transformer 해석과 Attention Heads

1. 서론

 

최근 딥러닝은 트랜스포머를 바탕으로 더욱 빠르게 성장하고 있다. 트랜스포머에는 어텐션 (Multi-Head Attention, MHA) 과 MLP 라는 두 개의 주요 모듈이 존재하며, 이들의 활성화된 값을 이해하는 것은 모델의 의사결정에 대한 해석을 제공해준다.  MHA 의 역할은 입력 토큰들에 대한 정보교환, MLP 의 역할은 메모리로부터 정보생성의 관점이 알려져 있다 [2,3,4,5]. 트랜스포머의 내부에 대해서는 아직 의견이 분분하지만, 적어도 두 가지 모듈 중에서 MHA 대한 해석은 상당히 많은 연구가 진행되었다 [6,7,8,9]. 이 글에서는 최근 발달한 MHA 에 대한 연구들을 기반으로, 트랜스포머 MHA 에 대하여  풀린 문제를 정의하고 풀리지 않은 추가적인 문제를 의논한다. MHA 에 대한 관점은 크게 두 가지 관점으로 연구되었다. 

  1. Computational Graph에서 회로적으로 분석하는 방법
  2. Pre-training된 모델에 대해서 각 레이어의 해드마다 의미를 해석하는 방식으로 연구

 

2장 회로적 관점에서는 계산 과정에서 일어나는 의미에 대해서 살펴보며, 입력으로 주어지는 토큰들에 대해서 그 공간을 해석하는 것을 목표로 한다. 즉, Query, Key 값에 대한 일치도를 기반으로 Attention Score가 주어지며, 각 헤드가 측정하는 값에 대해서 논의한다. 

 

3장에서는 학습된 Pre-training 모델에 대해서 학습이 완료된 후, 어텐션은 어떤식으로 형성되는지, 어떠한 특징을 가지는지 확인한다. 또한 헤드가 가지는 역할에 대해서 살펴본다. 3장에서 소개 되는 연구들은 모두 자연어분야에 국한된 해석이고, 최근 나온 Vision Transformer에 대해서는 비슷한 해석이 이루어지지 않는다. 따라서 대부분의 연구들은 자연어 모델에 대해서 MHA 의 의미를 해석한다. 

 

  • ➕ 문제 : MHA의 해석 
  • 👍 풀린 문제 : 자연어 도메인에 대하여 Pretrain 된 모델이 형성된 패턴과 의미 
  • 😣안 풀린 문제 : 이미지 모델에 대한 해석적 관점. (Syntactic, Semantic 레이블의 부재)

 

4장에서는 Vision Transformer 의 어텐션이 지니는 의미를 해석한다. BERT에서는 [CLS] 와 [SEP] 토큰이 존재했으며 마스킹 기반 학습하였고, 단어가 지니는 문법적인 의미를 파해쳤으나, 이미지에 대해서는 그 의미가 자연어만큼 명확하지 않다. 따라서 해석의 여지가 훨씬 줄어들며, Attention이 어떠한 의미를 지니는지 파악하는 것이 쉽지 않다.  그럼에도 불구하고, 어떠한 연구방향이 적절한지 고민하는 것은 중요한 문제로 사려된다. 

 

어텐션은 앞으로도 트랜스포머를 이해하는데 중요한 역할을 할 것이고, 헤드 분석 도구는 학습된 모델을 이해하는 가장 기본적인 수단으로 자리매김 할 것으로 예상된다. 이 글에서는 어텐션이 지니는 의미에 대한 기존 연구들을 해석하고 풀린 문제와, 여전히 남아 있는 문제들에 대해서 논하며, 트랜스포머의 메커니즘을 이해하고 해석하는데 필요한 연구들을 제시한다.  또한 최근 연구들을 인용하며, Attention이 어떠한 응용분야서 추가로 쓰이는지 밝힘으로써, MHA 가 가지는 의미에 대해서 더욱 고찰한다. 

 

2. 회로적 관점

 

Mathematical Circuit [1] 에 의하면 , MHA을 이해하려는 시도는 토큰 들간의 정보교환 관점에서 설명이 되며, 서로 다른 Space들을 연결하는 역할을 한다. 가장 기본적인 논의는 Attention Module이 어떤 방식으로 계산하는가로 시작한다. 계산의 관점에서 MHA 를 해석하는 경우, Q, K, V 라는 3 가지 변환(Transform) 이 존재하며, 3가지는 다음과 같은 해석을 지닌다. 

  • Q 는 Head에 들어오는 Query를 어떻게 해석해야 하는지, 
  • K 는 Head에 들어오는 Key를 어떻게 변환해야 하는지, 
  • V 는 Head에 들어오는 Value가 어떻게 변환되는지,

즉 정보처리 관점에서 3가지 서브모듈은 서로 다른 역할을 하며, 대부분의 연구자들은 Query ,Key 의 유사성 값인 Attention Score를 기반으로 정보를 해석하였다. 

 

하나의 헤드를 분석하는 것을 넘어서, MHA 의 관점에서는 12 개 혹은 그 이상의 헤드를 분석하며,  각각의 헤드가 서로 다른 Q,K,V 를 가짐으로써, 다른 방식으로 토큰들을 해석한다는 것을 가정한다. 먼저 헤드가 계산적으로 지니는 의미를 예제를 통해서 살펴보자자. 

 

  • 계산1) 만일 모든 헤드가 동일한 Q,K,V Weight를 가지고 있다면, Attention Score는 모든 헤드가 동일하고, 동일한 Value를 전파하는 커뮤니케이션을 한다. 마지막 Output Linear 까지 고려하는 경우 (Concat 후 Linear), 헤드들에 고정된 가중치를 주고 섞는 것으로 생각할 수 있다.  

 

  • 계산2) 만일 헤드가 서로 다른 Q, K, V Weight을 가지고 있다면, Attention Score는 일반적으로 모두 다르기에,  다른 가중치로 다르게 변환된 Value를 섞는다. 마지막 Output Linear 까지 고려하는 경우, 헤드에 가중치를 두고 섞는 것으로 생각할 수 있다. 

 

여기서 흥미로운 관찰 한 가지는, Self-attention의 경우, 토큰을 섞는 방법에 대한 논의이나, Output 모듈은 Head의 결과물을 가중치를 두고 섞는데 사용한다는 점이다. 따라서 Attention Output Layer는 헤드의 결과물을 입력에 의존적으로 섞지 않는다 (고정된 Weight가 섞기에). 따라서 레이어에서 Noisy 한 헤드가 있다면, Weight값이 0에 가까울 수 있으며, 반대로 Fine-tuning 시, 중요한 정보를 가지고 있는 헤드가 있다면, 해당 헤드의 정보를 대부분 손실하지 않고 그대로 전달하도록 학습될 가능성이 높다. 이로부터 다음과 같은 문제 정의가 가능하다. 

 

  • ➕ 문제 : MHA의 해석 → Output Weight 해석 
  • 👍 풀린 문제 : Output Weight  해석은 없음 – 대부분의 경우, Attention Score를 해석 
  • 😣안 풀린 문제 : Head의 정적인 역할과 Output Weight의 상관관계 

 

싱글 헤드 분석을 넘어서 헤드간의 관계성으로 어텐션을 해석하는 것은 Induction Heads 연구에서 진행되었는데, 두 개의 층이 있을 경우 Copy 메커니즘 ( [A1] [B1] → [A2] … [B2])이 가능하다. 첫 번째 레이어가  [A1] 이 [B1]을 집중해서 보는 경우, 두 번 째 레이어에서 [A2] 가 나타나면, 앞의 경우에서 처럼 Induction 으로 [B2]를 선택하는 것이다. 이러한 경향성은 모델이 MHA 을 여러 개 쌓을 경우, 복잡한 정보처리 과정이 있을 가능성을 암시한다. 하나의 레이어의 경우, 토큰이 다른 토큰에 집중하는 정도로 해석할 수 있고,  두 개를 레이어를 쌓는 경우, 아래 레이어에서 집중한 정보를 바탕으로 위 레이어에서 정보를 재사용하는 것으로 해석할 수 있다. 그러나 이러한 조합(Combination)을 기반으로 하는 해석은 수 많은 레이어의 에 적용하기 쉽지 않은 방법이다. 

 

  • ➕ 문제 : 여러 층의 MHA의 해석 
  • 👍 풀린 문제 : Induction Heads 의 존재성 

 

헤드가 지니는 정보를 해석하는 것을 넘어서,  헤드의 정보를 기반으로 모델이 취약한지도 확인할 수 있는데 [10], 이는 발생되지 말아야 하는 정보전달 채널이 활성화 되는  것을 기반으로 한다. 즉, 만일 (의미없거나/부정적인) 토큰에 어텐션값이 활성화 된다면, 이는 결과적으로 봤을 때, 불필요한 정보가 전달됨을 나타낸다. 어텐션 값을 바라볼 때, 두 가지 해석이 가능하다는 것을 암시한다. 

 

  • 어텐션이 1에 가깝다. → 정보가 전달된다. 
  • 어텐션이 0에 가깝다. → 정보가 전달되지 않는다.  

 

모델을 분석할 때, 전달되지 않아도 되거나 말아야 한다면, 적어도 어텐션 값이 활성화 되면 안된다는 가정을 세우는 것이 가능하다. 그러나 대부분의 딥러닝 모델은 필요한 정보와 불필요한 정보의 구분이 애매하기에 오직 제한된 응용분야에서만 Attention Score는 막는 방식으로 분석이 가능하다 [10]. 

 

정보를 전달한다는 해석은 통계적으로 전달되는 정보량을 분석하는데 용이하다. 그러나 이를 위해서는 우선적으로 정보의 정체를  파악해야 한다. 그러나 대부분의 연구들은 해당 토큰 위치의 어텐션 값은 레이어 인덱스와 관계성을 고려하지 않고 분석한다. 예를 들어서, 중간 레이어에서 어텐션값이 입력 토큰의 의미를 그대로 보존하는지, 아니면 다른 의미를 지니는 지 불명확하다. 

 

  • ➕ 문제 : 레이어를 지난 후, 토큰의 의미 
  • 👍 풀린 문제 : 해당 단어의 Contextualized Representation 이다. (문맥을 고려한 해당 단어의 의미표현: )
  • 😣안 풀린 문제 : Axis Align 되는지 안되는지 정량적으로 파악하지 못한다. 

 

또 다른 해석으로 어텐션 값이 크면, 해당 정보를 사용했다거나, 선호한다고 이야기를 하지만, 이는 의인화된 해석일수 있다. 비슷한 예로, CNN에서 Activation이 많이 되는 경우, Weight Vector 와 유사도가 높았고, 해당 Weight 벡터의 정보를 많이 사용했다고 해석할 여지가 있으나, 해당 정보를 선호한다고 이야기 하는 것은 인지적인 해석에 불과하다.  

 

  • 인지적 해석: Attention Score가 컸으니, Q 토큰에 K 토큰은 Score 만큼 중요했다. 
  • 계산적 해석: Q, K Vector의 유사도가 높으니 많은 V Vector 의 정보를 전달한다. 

 





계산의 영역에서 Q, K 에 대해서 다음과 같은 추론이 가능하다. 

 

  1. 왜 Q, K 값이 일치하였는가? → 모델이 일치성이 높아지도록 학습된 것이다. 
  2. 왜 모델은 일치성을 높였는가? → 모델 성능을 높이기 위해서 높였다. 
  3. 왜 성능을 높이기 위해서 일치성이 필요한가  → 토큰의 정보교환을 위해서 

 

따라서 어텐션 점수는 모델이 토큰의 정보를 적절히 교환하기 위해서 설정된 가중치로 분석하는 것이 타당하며, 인지적 유사성이 있는지는 사람들의 기대에 불과하다. 물론 우연의 결과로, 혹시 학습의 효율성을 위해서 토큰의 정보교환이 사람들이 기대하는 방식과 유사하게 학습되거나, 강제로 학습시킬 수 있다. 이는 Prototypical Network 와 비슷하게, 마지막 아웃풋을 미리 정해둔 샘플들과 비교해서 의사결정을 강제하는 것과 유사하다. 해석가능한 모델구조, Loss를 설정함으로써, 토큰의 정보교환을 Communication Rule을 기반으로 가능하도록 만드는 것이다. 그러나 수 많은 토큰에 대해서 룰을 만들고, Contextualized Representation에 대해서 룰을 디자인 하는 것은 불가능하다. 

 

  • ➕ 문제 :  커뮤니케이션 룰에 대한 해석 혹은 디자인
  • 👍 풀린 문제 : Dependency Parse Tree와 어느정도 유사하며, Tagging 문제에도 사용가능하다. 언어에 대해서 사람들이 바라보는 방식을 어느정도는 가지고 있지만, 완벽하게 일치하지 않으며, 모델이 알아서 룰을 만드는 것으로 보인다. 
  • 😣안 풀린 문제 : 커뮤니케이션 룰에 대한 정량적, 정성적 분석 방법론 

 

따라서 어텐션 값을 단순히 중요성으로 해석하는 것이 아니라, 정보교환의 정도로 해석하면, 헤드의 역할이 어떤 정보에 집중하고, 어떤 정보교환을 진행하는지 분석하는 것이 올바르다. 따라서 헤드의 역할을 보기 위해서는 다음과 같은 정보가 필요하다. 

 

  • 헤드에 입력으로 들어오는 정보의 의미 (representational analysis)  
  • QK로 인해서 발생하는 정보의 전달 (pairwise-analysis)
  • V에 의해서 발생하는 정보의 의미 (representational analysis)  

 

이러한 회로적인 해석으로부터 도출한 해드의 의미분석과는 다르게 실제 BERTology에서 분석하는 방법은 헤드의 표현공간으로부터 Probing을 하는 방식이고, 레이어별로 그 의미를 찾는 정도로 진행되었다 [11]. 즉 실제로는 단순히 Attention의 값에 대해서 분석을 하며, 토큰별로 동일한 의미를 지닌다고 해석하였는데, 만일 정보가 치환된경우 (Attention Matrix 의 Diagonal이 0인 경우) 이러한 의미는 타당하지 못하다. 왜냐하면 Residual 로 부터 오는 정보가 없다면 토큰의 정보는 없으며, Residual 로 절반의 정보가 인코딩 된다고 가정한다면, 절반만큼의 토큰 의미를 지니기 때문이다. 이러한 문제인식은 다음과 같은 연구 분야를 이끌어 낸다. 

 

  • ➕ 문제 : 레이어를 지난 후, 토큰의 의미 
  • 😣안 풀린 문제 : 다른 토큰 정보를 얼마나 받아들였고, 기존 정보가 유지되는가?

 

이는 두 벡터를 더했을 때, 어떤 벡터가 지배적인지 분석하는 연구를 기반으로 더욱 깊이 분석되어야 한다. 

 

3. Transformer는 자연어 특징을 반영하는가? BERTology 

BERT 는 2017년 자연어에 대한 Masking 기반 Pre-training 을 Transformer 에 학습한 모델이다. 해당 모델은 어텐션을 활용하며, 12개의 레이어로 구성되어 있다. 또한 Head는 12개를 가지고 있어, 전체적인 헤드의 개수는 144개이다. 어텐션 스코어에 대한 일반적인 믿음은 사람이 단어들에 대한 관계성을 해석하는 것과 비슷하게, Head 또한 단어들에 대한 관계성을 바라본다는 점이다. 

 

  • ➕ 문제 : MHA는 사람이 언어를 보는 방식과 유사한가? 
  • 👍 풀린 문제 : 유사하지 않은 경우가 대부분이고, 본인만의 방식으로 본다. 

 

사람들이 언어에 대한 구조를 해석하는 것 (Parse Tree) 과 다르게 일반적으로 모델은 적절한 방식으로 단어들을 보는 것으로 알려져 있으며, 이 중에는 일부 사람들이 보는 방식과 유사한 점이 있다는 것이 알려져 있다. 그러나 모든 헤드가 의미가 있는 것도 아니며, 대부분의 헤드들은 의미가 없으며, 어텐션 패턴이 비슷하다고 알려져 있다. 예를 들어서, [CLS] 토큰이나 [SEP] 토큰에 어텐션 값이 몰리는 현상이 나타나며, 포지션에 대한 정보를 인코딩하는 헤드가 있다는 것이 알려져 있다. 물론 적은 수의 헤드들은 제거 했을 경우, 퍼포먼스가 심각하게 줄어드는 것을 보였는데, 이는 Downstream task 를 위한 헤드 정보교환은 오직 적은 수의 헤드만 의미있다는 것을 나타낸다. 즉, 모든 헤드가 의미있게 학습되기 보다는, Task 별로 의미있는 적은 수의 헤드가 필요한 것이다. 

 

  • ➕ 문제 :Task에 중요한 Head 를 결정하는 문제 
  • 👍 풀린 문제 : 대부분은 중요하지 않고 제거했을 때 성능향상. 일부 헤드는 제거 불가능. 
  • 😣안 풀린 문제 : 그럼 MultiTask 로 학습하면, 서로 다른 헤드들이 의미있게 활성화 되는가 

 

BERTology는 내부를 분석하는 것을 넘어서, BERT 에 대한 모든 것을 다루는 분야이다. Embedding, Attention, Layer 에 대한 분석들은 Syntactic, Semantic, World 지식들의 존재여부에 대해서 판단하는 연구에 사용되었고, 더 추상적인 지식이 될수록 존재성을 파악하는 것이 어려운 것으로 확인되었다. 그러나 이는 Probing 하는 방법이 적절하지 못할 가능성이 있으므로, 존재하지 않는다는 것을 제대로 입증하기 쉽지 않은 분야이다. 

 

  • ➕ 문제 :네트워크에 정보가 있는지의 여부 
  • 👍 풀린 문제 : Probing 을 했을 때, 정확도가 높으면 존재
  • 😣안 풀린 문제 : Probing 을 했을 때, 정확도가 낮을 경우, 없다고 할 순 없음. 

 

즉, “정보가 없다는 것을 증명”하는 것은 “정보가 있다는 것을 증명”하는 것보다 어렵다. 따라서 모델이 지니는 정보를 추출해내는 기술들이 개발되어야 한다.  

4. 이미지에서 Transformer의 해석성  

 

최근 많은 연구들은 Transformer 구조를 이미지와 강화학습 분야에서 사용되고 있다. 그리고 두 분야에서 모두 우수한 성능을 보여준다. 따라서 학습된 모델에 대해서 어텐션을 해석하는 것은 중요하며, 모델의 의사결정과정 해석과 디버깅을 위해서 필요한 기술이다. 그러나 이미지를 기반으로 한 Transformer 모델이 어떤 방식으로 어텐션을 사용하는지, 그 해석 방법이 무엇인지는 아직까지 밝혀지지 않고 있다. 크게 이미지 기반 모델은 두 종류로 나눌 수 있다. 

  • 이미지 패치 기반  : 이미지를 그대로 임베딩에 넣는다. 
  • Discrete AutoEncoder 코드 기반 : VAE 인코더를 거쳐서 나온 토큰에 넣는다. 

두 모델은 동일한 ViT를 사용할지라도, 입력의 공간이 다르기 때문에, 해석의 방식이 서로 다를 수 있다. 토큰 기반은 적어도 NLP와는 비슷하게 해석될 수 있지만, 이미지 패치기반을 NLP에서처럼 해석하는데는 논란의 여지가 따른다. 이미지 패치는 연속적인 값들을 입력으로 넣기 때문이고, 사실상 토큰 개수가 수없이 많은 경우이니, 어텐션이 동일하게 해석되는지는 논란의 여지가 있다. 

 

  • ➕ 문제 : 이미지 기반 어텐션의 해석 
  • 😣안 풀린 문제 : 패치 기반과 토큰 기반은 동일하게 해석될 수 있는가? 

 

문제를 더 어렵게 만드는 것은 이미지기반 트랜스포머는 Self-Supervised Learning을 하는 방식이 수없이 많다는 것이다. 이 경우,  개별적인 해석을 넘어서, 일반화된 어텐션의 커뮤니케이션에 대한 이론을 이끌어내는 것이 중요하다. 

 

  • ➕ 문제 : 이미지 기반 어텐션의 해석 
  • 😣안 풀린 문제 : 학습방식에 의존적이지 않은 일반화된 해석 방법 

 

가장 기본이 되는 Image Classification 학습에 대해서 할 수 있는 Head에 대한 가정은 

클래스별로  유의미하게 헤드가 나눠져 있다는 것이다. 왜냐하면 ImageNet 21k든 1k든 학습의 목적성은 Classification 에 있기 때문이다. 개인적으로 이런식으로 가정 세워서 하나씩 해결해나가는 방식은 XAI 가 앞으로 필요해보인다. 

5. 결론 

트랜스포머가 나오고 6년 정도의 시간이 흘렀고, 그 동안 트랜스포머의 활용도는 기하급수적으로 올라갔다. 그러나 모델을 해석하는 도구는 크게 발전하지 못하였고, 단순히 모델에 학습된 Feature 들을 해석하는 수준에 머물러 있다. 더욱 빠르고 안정적인 트랜스포머의 발전을 위해서는 모델을 해석하는 도구나 방식이 필요하고 연구되어야 한다. 최근 MLP 에 대해서 Key-Value 메모리적인 해석이 되는 것처럼, 앞으로 어텐션에 대한 의미가 확고해져야 한다. 

 

이를 위해서 필요한 것은 모델에 대한 가정과 증명이라고 생각한다. 즉, 모델이 연산하고 정보를 저장하는 방법에 대한 가정을 기반으로 이를 보이려는 지속적인 노력만이 트랜스포머를 이해하는데 큰 도움이 될 것으로 보인다. 대표적인 예를 들면 다음과 같다. 

 

  • Vision Transformer 는 Class 별로 선호하는 헤드가 있는가?  (아직 연구 안됨)
  • NLP Downstream Task 는 선호하는 헤드가 있는가 (Yes) 
  • 두 어텐션 레이어는 복합적인 의미를 지니는 가 (Induction Head) 
  • MLP 를 수정해서 모델의 아웃풋을 수정할 수 있는가? (Factual GPT) 
  • 인풋에 Poison 을 넣으면  어텐션이 어떻게 되는가? (Trojan Attack) 

 

좋은 연구들은 모두 모델에 대해서 적절한 가정을 기반으로 이를 효율적으로 보였다. 이 글을 읽는 연구자들도 모델에 대한 적절한 가정과 이를 실험적 혹은 이론적으로 보임으로써 트랜스포머를 한 층 더 이해할 수 있기를 바란다. 

 

References 

[1] Elhage, et al., "A Mathematical Framework for Transformer Circuits", Transformer Circuits Thread, 2021. 

 

[2] Meng, Kevin, et al. "Locating and editing factual associations in GPT." Advances in Neural Information Processing Systems 35 (2022): 17359-17372.

 

[3] Dai, Damai, et al. "Knowledge Neurons in Pretrained Transformers." Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2022.

 

[4] Geva, Mor, et al. "Transformer Feed-Forward Layers Are Key-Value Memories." Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing. 2021.

 

[5] Meng, Kevin, et al. "Mass-editing memory in a transformer." arXiv preprint arXiv:2210.07229 (2022).

 

[6] Kovaleva, Olga, et al. “Revealing the Dark Secrets of BERT.” Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019.

 

[7] Rogers, Anna, Olga Kovaleva, and Anna Rumshisky. “A primer in BERTology: What we know about how BERT works.” Transactions of the Association for Computational Linguistics 8 (2021): 842-866.

 

[8] Clark, Kevin, et al. “What Does BERT Look at? An Analysis of BERT’s Attention.” Proceedings of the 2019 ACL Workshop BlackboxNLP: Analyzing and Interpreting Neural Networks for NLP. 2019.

 

[9] Voita, Elena, et al. “Analyzing Multi-Head Self-Attention: Specialized Heads Do the Heavy Lifting, the Rest Can Be Pruned.” Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019.

 

[10] Lyu, Weimin, et al. "A Study of the Attention Abnormality in Trojaned BERTs." Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2022.

 

[11] Rogers, Anna, Olga Kovaleva, and Anna Rumshisky. "A primer in BERTology: What we know about how BERT works." Transactions of the Association for Computational Linguistics 8 (2021): 842-866.

오늘도 즐거운 연구생활~~~