Have Done/Attention

Transformer연산에 대한 이해

에아오요이가야 2025. 5. 18. 13:40

Summary

Transformer는 입력 시퀀스의 각 요소가 다른 모든 요소와 직접 연관성을 학습하도록 하는 Self-Attention 메커니즘을 핵심으로 하며, 각 요소에 대해 Query/Key/Value 벡터를 생성해 유사도(Attention Score)를 계산한 뒤 이 값으로 정보를 가중합 합니다. 여기에 Multi-Head Attention을 적용해 여러 시점의 관계를 동시에 포착하고, 잔차연결과 LayerNorm, Feed-Forward Network를 반복 배치함으로써 안정적인 학습과 풍부한 표현력을 확보합니다. 또한 순서 정보가 없는 입력 에도 위치 인코딩을 더해 시퀀스 내 상대, 절대 위치를 반영할 수 있으며, 이를 통해 자연어뿐 아니라 3D포인트 클라우드처럼 순서가 없는 데이터에도 Transformer의 유연한 관계학습 능력을 그대로 적용할 수 있습니다.

 

Details

1.Self-attention 매커니즘 

입력시퀀스 내 각 요소가 자기 자신(self)을 포함한 모든 다른 요소들과의 관계를 학습하는 메커니즘으로, 데이터의 각 요소가 "내가 누구와 대화할지" 스스로 판단해, 주변의 모든 요소 중 중요한 정보에 더 많은 비중을 두고 자신을 다시 정의하는 메커니즘입니다. 각 요소는 자신의 Query를 통해 주변 요소들의 Key와 비교해 주목도를 계산하고, 이 Attention Score를 기반으로 주변 요소들의 Value를 가중합 하여 새로운 표현을 만듭니다. 이렇게 반복 적용하면 멀리 떨어진 관계까지 자연스럽게 포착되면서 국소와 전역 정보를 모두 아우르는 풍부한 특징을 얻을 수 있습니다.

 

2. Query, Key, Value 벡터 : 입력시퀀스의 각요소의 역할을 세가지 관점으로 투영하는 것이다.

Query : 내가 "묻고 싶은" 질문 벡터, 요구사항

Key : 상대(다른 요소)가 "어떤 정보"를 갖고 있는지 나타내는 벡터, 색인-분류표

Value : 실제 "전달할 내용" 벡터, 책 본문-정보 조각

 

예시 

query : 나는 판타지 소설을 읽고 싶어 라는 내 요청

key : 책장의 분류표 ("이 책은 판타지", "이 책은 SF"등)

value : 실제 책의 내용(본문)

 

Query와 Key가 만나 "이 책이 내 요청과 얼마나 잘 맞나?" 를 판단하고, 그 점수로 책 본문(Value)을 꺼내 보는 과정이 바로 Self-Attention입니다.

이렇게 하면 "어떤 요소가 누구와 얼마나 중요한 관계인지"를 Query-Key 매칭으로 계산하고, 그 결과로 Value를 가중합해 새로운 표현을 만드는 Self-Attention이 가능해집니다.

 

3. Attention Score

각 쿼리 벡터가 모든 키 벡터와 얼마나 관련 있는지를 수치화한 값으로, 두 벡터의 내적을 각각 차원수의 제곱근으로 나누어 스케일링한 뒤 Softmax로 확률 분포로 변환한 가중치입니다. 이 가중치는 이후 value 벡터들의 가중합을 결정하여, 모델이 입력 요소 간의 "누구에게 얼마나 주목할지"를 동적으로 조종하도록 만듭니다.

 

4. Multi-head Attention

Self-Attention을 여러 개(head) 동시에 적용해, 각 head가 서로 다른 학습된 선형 투영공간에서 입력 간 관계를 포착하도록 돕는 기법입니다. 구체적으로 입력 벡터 집합을 h개의 서로 다른 \(W^Q_h, W^K_h, W^V_h\)로\) 로 각각 투영해 h개의 어텐션 출력을 계산한 뒤, 이들을 다시 concatenate 하여 최종 선형층으로 투사함으로써 단일 어텐션에서는 놓칠 수 있는 다양한 관점의 상호작용을 동시에 학습하고, 표현력을 크게 확장합니다.

 

5. Positional Encoding

순서 정보가 없는 Self-Attention에 "어디에 있는지"라는 위치 감각을 부여하기 위한 메커니즘으로, 각 시퀀스 위치나 3D좌표에 대해 사인, 코사인 기반의 고정함수를 쓰거나 학습 가능한 임베딩을 생성해 입력특징 벡터에 더해줍니다. 이렇게 하면 모델은 "이 토큰(혹은 포인트)이 시퀀스 내/공간상 어느 위치에 있는가"를 인식할 수 있어, 단순한 유사도 계산을 넘어 절대, 상대적 순서 및 거리 관계를 학습에 반영할 수 있습니다.