AI Engineer 공간 "사부작 사부작"

트랜스포머(Transformer): 셀프 어텐션(Self-Attention) 메커니즘 본문

Theory/Transfomer

트랜스포머(Transformer): 셀프 어텐션(Self-Attention) 메커니즘

ChoYongHo 2025. 5. 17. 10:30
728x90

셀프 어텐션 메커니즘 파헤치기: 쿼리, 키, 밸류는 문맥을 어떻게 이해할까?

자연어 처리(NLP) 분야는 마치 복잡한 퍼즐과 같아서, 단어들이 모여 문장을 이루고, 문장들이 모여 문맥을 형성하는 과정을 컴퓨터가 이해하도록 만드는 것은 늘 큰 숙제였습니다. 특히 문장 속 단어들이 서로 어떤 관계를 맺고 있는지, 어떤 단어가 핵심적인 의미를 담고 있는지 파악하는 것은 매우 중요합니다. 이러한 과제를 해결하기 위해 등장한 혁신적인 기술 중 하나가 바로 셀프 어텐션(Self-Attention) 메커니즘입니다. 셀프 어텐션은 마치 문장 스스로 각 단어의 중요도를 파악하고 서로에게 '주목'하게 만드는 마법과 같습니다. 특히 트랜스포머(Transformer) 모델의 핵심 구성 요소로, 오늘날 GPT와 같은 거대 언어 모델(LLM)의 놀라운 성능을 뒷받침하고 있습니다.

그렇다면 셀프 어텐션은 정확히 어떻게 작동하며, 문장 속 단어들의 숨겨진 관계를 어떻게 찾아내는 걸까요? 이번 글에서는 셀프 어텐션의 심장부라 할 수 있는 쿼리(Query, Q), 키(Key, K), 밸류(Value, V) 벡터를 중심으로 그 비밀을 파헤쳐 보겠습니다.

문맥 이해의 핵심 삼총사: 쿼리(Q), 키(K), 밸류(V)

셀프 어텐션 메커니즘은 문장 내 각 단어가 다른 모든 단어(자기 자신 포함)와 얼마나 관련되어 있는지를 계산하여 문맥을 파악합니다. 이를 위해 각 입력 단어(정확히는 단어의 임베딩 벡터)로부터 세 가지 서로 다른 벡터를 만들어냅니다. 바로 쿼리(Query) 벡터, 키(Key) 벡터, 밸류(Value) 벡터입니다. 이 세 벡터는 각각 독특한 역할을 수행하며, 마치 탐정 팀처럼 협력하여 문맥 정보를 추출합니다.

  • 쿼리 (Query, Q): 현재 분석 대상이 되는 단어의 입장을 나타냅니다. "나는 다른 단어들과 어떤 관계를 맺고 있을까?" 혹은 "내가 주목해야 할 정보는 무엇일까?"라는 질문을 던지는 주체라고 할 수 있습니다.
  • 키 (Key, K): 문장 내 다른 모든 단어들이 가진 고유한 특징이나 정보를 나타내는 '꼬리표'와 같습니다. 쿼리의 질문에 답하기 위해, "나는 이런 정보를 가지고 있어"라고 자신을 드러내는 역할을 합니다.
  • 밸류 (Value, V): 각 단어가 실제로 담고 있는 의미 내용, 즉 '실질적인 정보값'입니다. 키가 꼬리표라면, 밸류는 그 꼬리표가 붙은 실제 내용물에 해당합니다.

이 Q, K, V 벡터들은 원래의 입력 단어 임베딩 벡터에 각각 학습 가능한 가중치 행렬(WQ, WK, WV)을 곱하여 생성됩니다. 마치 같은 배우가 다른 역할을 맡기 위해 분장과 의상을 바꾸는 것처럼, 원래 단어의 의미는 유지하되 셀프 어텐션 과정에서의 특정 역할을 수행하기 위한 새로운 표현으로 변환되는 것입니다.

비유로 이해하기: 도서관 사서의 책 찾기
셀프 어텐션 과정을 도서관에서 특정 주제의 책을 찾는 사서의 역할에 비유해 볼 수 있습니다.

  • 여러분이 사서에게 "인공지능의 역사에 대한 책을 찾아주세요"라고 요청했다고 가정해 봅시다. 이 요청 내용(찾고자 하는 정보)이 바로 쿼리(Q)입니다.
  • 사서는 도서관의 모든 책들을 살펴봅니다. 각 책에는 제목, 저자, 핵심 키워드 등 책을 식별할 수 있는 꼬리표(식별 정보)가 붙어 있습니다. 이것이 키(K)에 해당합니다.
  • 사서는 여러분의 쿼리(요청 내용)와 각 책의 키(꼬리표)를 비교하여, 요청 내용과 가장 관련성이 높은 책들을 골라냅니다.
  • 최종적으로 사서가 여러분에게 건네주는 책의 실제 내용이 바로 밸류(V)입니다. 이때, 관련성이 높은 책의 내용은 더 중요하게, 낮은 책의 내용은 덜 중요하게 반영될 것입니다.

어텐션 스코어 계산: '너와 나의 연결 고리'는 얼마나 강할까?

Q, K, V 벡터가 준비되었다면, 이제 본격적으로 단어들 간의 관계를 측정할 차례입니다. 특정 단어의 쿼리(Q) 벡터와 문장 내 모든 단어(자기 자신 포함)의 키(K) 벡터를 사용하여 '어텐션 스코어(Attention Score)'를 계산합니다. 이 스코어는 현재 단어가 다른 단어들과 얼마나 의미적으로 유사하고 연관되어 있는지를 나타내는 값입니다.

일반적으로 스케일드 닷-프로덕트 어텐션(Scaled Dot-Product Attention) 방식이 사용됩니다. 계산 과정은 다음과 같습니다.

  1. 내적 (Dot Product): 특정 단어의 Q 벡터와 다른 모든 단어의 K 벡터를 각각 내적합니다. 내적 값은 두 벡터가 얼마나 비슷한 방향을 가리키는지, 즉 얼마나 유사한지를 측정하는 지표입니다.
  2. 스케일링 (Scaling): 계산된 내적 값을 키 벡터 차원(dk)의 제곱근(√dk)으로 나누어줍니다. 키 벡터의 차원이 커질수록 내적 값이 지나치게 커질 수 있는데, 이는 이후 소프트맥스 함수에서 기울기(gradient)가 매우 작아져 학습이 제대로 이루어지지 않는 문제를 야기할 수 있습니다. 스케일링은 이러한 문제를 완화하는 역할을 합니다.

이렇게 계산된 스코어는 일종의 '원시적인' 관련성 점수라고 할 수 있습니다.

어텐션 가중치: '누구에게 더 집중해야 할까?'

다음 단계는 계산된 어텐션 스코어들을 소프트맥스(Softmax) 함수에 통과시켜 정규화하는 것입니다. 소프트맥스 함수는 입력된 값들을 0과 1 사이의 확률값으로 변환하며, 이 확률값들의 총합은 항상 1이 됩니다. 이렇게 변환된 값을 어텐션 가중치(Attention Weight)라고 부릅니다.

어텐션 가중치는 현재 단어가 문맥을 파악하기 위해 문장 내 다른 단어들에게 각각 얼마나 '주의'를 기울여야 하는지, 즉 중요도의 비율을 나타냅니다. 가중치가 높을수록 해당 단어의 정보가 현재 단어의 의미를 파악하는 데 더 중요하게 작용한다는 의미입니다.

최종 출력: 문맥을 머금은 새로운 '나'의 탄생

마지막으로, 이렇게 얻어진 어텐션 가중치를 각 단어의 밸류(V) 벡터에 곱한 후, 이 값들을 모두 더하여 최종적인 출력 벡터를 생성합니다. 이를 '가중 합(weighted sum)'이라고 합니다.

수식으로 표현하면 다음과 같습니다.

이 과정을 통해 각 단어는 문장 전체의 문맥 정보를 효과적으로 통합한, 더욱 풍부하고 정교한 새로운 표현(representation)으로 거듭나게 됩니다. 예를 들어 "은행(bank)"이라는 단어가 문맥에 따라 '금융 기관'인지 '강둑'인지를 구분하는 데 있어, 주변 단어들의 밸류 값들이 어텐션 가중치에 따라 차등적으로 반영되어 해당 문맥에서의 정확한 의미를 파악하게 되는 것입니다.

셀프 어텐션의 강력함

셀프 어텐션 메커니즘은 다음과 같은 강력한 장점들을 가지고 있습니다.

  • 병렬 처리: 각 단어에 대한 어텐션 계산은 독립적으로 이루어질 수 있어 병렬 처리가 가능하며, 이는 모델 학습 속도를 크게 향상시킵니다.
  • 장거리 의존성 포착: 문장 내 멀리 떨어진 단어들 간의 관계도 직접적으로 계산할 수 있어, 기존의 순차 처리 방식(RNN, LSTM 등)에서 어려움을 겪었던 장거리 의존성 문제를 효과적으로 해결합니다.

마무리하며

셀프 어텐션 메커니즘, 특히 쿼리, 키, 밸류 벡터를 활용한 어텐션 계산 과정은 트랜스포머 모델이 복잡한 언어의 패턴을 학습하고 이해하는 데 핵심적인 역할을 합니다. 마치 오케스트라의 지휘자가 각 악기 파트의 소리에 귀 기울여 조화로운 화음을 만들어내듯, 셀프 어텐션은 문장 속 각 단어의 의미에 집중하고 이들을 유기적으로 연결하여 풍부한 문맥 정보를 추출해냅니다.


https://arxiv.org/abs/1706.03762

 

Attention Is All You Need

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new

arxiv.org

 

728x90