셀프 어텐션(Self-Attention)의 수학적 비밀: AI는 어떻게 문맥을 완벽하게 이해하는가?

썸네일

서론: 인공지능이 언어의 '결'을 읽기 시작했다

우리는 지금 인공지능이 인간의 언어를 놀라운 수준으로 구사하는 시대를 살고 있습니다. 불과 몇 년 전만 해도 기계 번역은 어색한 문장의 나열에 불과했지만, 오늘날의 챗GPT나 DeepL 같은 도구들은 문장의 숨은 의도와 미묘한 뉘앙스까지 파악해냅니다. 이러한 혁명적인 변화의 중심에는 구글이 2017년 발표한 논문 'Attention Is All You Need'에서 제안한 트랜스포머(Transformer) 모델, 그리고 그 심장부에서 작동하는 셀프 어텐션(Self-Attention) 기술이 있습니다.

많은 사람들이 AI의 발전이 단순히 데이터 양의 증가 때문이라고 생각하지만, 사실 그 이면에는 언어를 수학적으로 모델링하는 방식의 근본적인 변화가 있었습니다. 기계가 문맥을 '이해'한다는 것은 추상적인 개념이 아닙니다. 그것은 정교하게 설계된 선형 대수학(Linear Algebra)과 확률 통계의 연산 과정입니다. 이번 글에서는 셀프 어텐션이 도대체 어떤 수학적 원리를 통해 단어 사이의 관계를 파악하고, 인간처럼 문맥을 읽어내는지 그 비밀스러운 메커니즘을 아주 상세하게 파헤쳐 보겠습니다.


1. 과거의 한계: 순차적 처리와 망각의 문제

셀프 어텐션의 위대함을 제대로 이해하려면, 그 이전의 지배적인 기술이었던 순환 신경망(RNN, Recurrent Neural Network)의 한계를 먼저 들여다봐야 합니다. RNN은 인간이 글을 읽는 방식처럼 데이터를 왼쪽에서 오른쪽으로 순차적으로 처리했습니다.

순차적 처리의 딜레마

예를 들어, "나는 어제 친구와 맛있는 저녁을 먹고 영화를 봤는데, 그것은 정말 재미있었다"라는 문장이 있다고 가정해 봅시다. RNN은 '나는'을 읽고, 그 정보를 기억한 채 '어제'를 읽고, 다시 그 정보를 갱신하며 나아갑니다. 하지만 문장이 길어질수록 초반에 등장했던 '나는'이나 '친구'에 대한 정보는 희석되기 마련입니다. 이를 수학적으로는 장기 의존성(Long-term Dependency) 문제라고 하며, 학습 과정에서 기울기(Gradient)가 소실되어 앞부분의 정보가 뒷부분에 영향을 미치지 못하는 현상이 발생합니다.

결국 기존 방식은 문장 끝에 다다르면 주어가 누구였는지, 시제가 언제였는지 잊어버리는 경우가 많았습니다. 바로 이 지점에서 셀프 어텐션은 혁명적인 발상을 제안합니다. "순서대로 보지 말고, 문장 전체를 한 번에 펼쳐놓고 모든 단어 사이의 관계를 동시에 계산하자!"


2. 셀프 어텐션의 핵심 엔진: Query, Key, Value

셀프 어텐션이 문맥을 파악하는 과정은 데이터베이스 검색 시스템과 매우 유사한 철학을 공유합니다. 이를 수학적으로 구현하기 위해 각 단어 벡터는 세 가지의 새로운 벡터로 변환됩니다. 바로 Query(Q), Key(K), Value(V)입니다.

  • Query (질의, $Q$): 현재 시점에서 분석의 주체가 되는 단어입니다. "나(이 단어)와 관련된 정보가 어디에 있습니까?"라고 묻는 역할을 합니다.
  • Key (키, $K$): 문장 내의 모든 단어들이 가지고 있는 식별표입니다. Query의 질문에 대해 "내가 당신이 찾는 그 정보와 얼마나 관련이 있는지"를 알려주는 역할을 합니다.
  • Value (값, $V$): 각 단어가 가진 실제 의미 정보(Contents)입니다. 최종적으로 우리가 얻어내야 할 정보의 알맹이입니다.

입력된 문장의 모든 단어는 학습 가능한 가중치 행렬($W^Q, W^K, W^V$)과 곱해져서 이 세 가지 벡터로 다시 태어납니다. 이 과정이 중요한 이유는, 기계가 학습을 통해 어떤 단어가 질문을 던질 때(Q), 어떤 특징을 내세워야(K) 적절한 정보(V)를 얻을 수 있는지 스스로 깨우치기 때문입니다.


3. 문맥 이해의 수학적 공식: 스케일드 닷 프로덕트 어텐션

셀프 어텐션의 모든 마법은 다음의 수식 하나로 설명됩니다. 이 수식은 단순해 보이지만, 그 안에는 언어의 의미를 연결하는 깊은 통찰이 담겨 있습니다.

$$ Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V $$

이 수식이 작동하는 과정을 단계별로 뜯어보며, 어떻게 문맥이 형성되는지 알아보겠습니다.

Step 1: 관련성 점수 계산 (Dot Product, $QK^T$)

가장 먼저 하는 일은 Query 벡터와 Key 벡터의 내적(Dot Product)을 구하는 것입니다. 선형 대수학에서 두 벡터의 내적은 두 벡터가 얼마나 유사한 방향을 가리키는가를 나타내는 지표입니다.

  • 상황: 문장에 'Bank'라는 단어가 있고, 주변에 'Money', 'River'라는 단어가 있다고 합시다.
  • 연산: 'Bank'의 Query 벡터와 'Money'의 Key 벡터를 내적합니다. 동시에 'River'의 Key 벡터와도 내적합니다.
  • 의미: 만약 문맥이 금융 관련이라면, 학습된 모델은 'Bank'와 'Money' 사이의 내적 값을 매우 높게 산출할 것입니다. 반대로 'River'와의 내적 값은 낮게 나옵니다. 즉, 내적 값은 두 단어 사이의 연관성 점수(Score)가 됩니다.

Step 2: 스케일링 (Scaling, $\frac{1}{\sqrt{d_k}}$)

구해진 내적 값을 키 벡터 차원($d_k$)의 제곱근으로 나눕니다. 이는 수학적 안정성을 위한 필수적인 과정입니다.

  • 벡터의 차원이 커질수록 내적 값도 기하급수적으로 커질 수 있습니다.
  • 값이 너무 커지면 뒤이어 나올 소프트맥스 함수에서의 기울기가 0에 가까워지는(Vanishing Gradient) 문제가 발생하여 학습이 멈춥니다.
  • 이 나눗셈은 값의 크기를 적절히 조절하여 학습이 안정적으로 지속되도록 돕는 안전장치입니다.

Step 3: 확률 분포로 변환 (Softmax)

스케일링된 점수들에 소프트맥스 함수를 적용합니다. 소프트맥스는 입력된 숫자들을 0과 1 사이의 값으로 변환하며, 그 합이 정확히 1이 되도록 만듭니다.

  • 변환 전: [10.5, 2.1, -1.5, ...] (단순 점수)
  • 변환 후: [0.85, 0.12, 0.03, ...] (확률/비중)
  • 해석: 이 과정은 "집중(Attention)의 비중"을 결정하는 단계입니다. "이 단어를 해석할 때 첫 번째 단어는 85%만큼 참고하고, 두 번째 단어는 12%만큼 참고하라"는 명확한 지시가 내려지는 것입니다. 이를 통해 불필요한 정보(노이즈)는 걸러지고, 문맥상 중요한 단어만 강조됩니다.

Step 4: 정보의 합성 (Weighted Sum, $ imes V$)

마지막으로, 소프트맥스를 통해 얻은 확률값(가중치)을 각 단어의 Value 벡터($V$)와 곱하여 모두 더합니다.

  • 이것이 바로 셀프 어텐션의 하이라이트입니다.
  • 결과적으로 생성된 벡터는 더 이상 원래의 'Bank'라는 단어 벡터가 아닙니다. 'Money', 'Deposit', 'Interest' 등 문맥적으로 관련 있는 단어들의 정보(Value)가 85%, 10%씩 섞여 들어온 새로운 문맥 벡터(Context Vector)입니다.
  • 이제 기계에게 'Bank'는 단순한 사전적 단어가 아니라, "돈과 관련된 금융 기관"이라는 구체적인 문맥을 함유한 풍부한 벡터로 인식됩니다.

4. 멀티 헤드 어텐션: 입체적인 문맥 파악

인간이 글을 읽을 때도 문법, 의미, 대명사 지칭 등 여러 요소를 동시에 고려하듯, AI도 한 번의 어텐션만으로는 부족합니다. 그래서 등장한 것이 멀티 헤드 어텐션(Multi-Head Attention)입니다.

  • 개념: $Q, K, V$를 여러 개의 서로 다른 차원으로 쪼개어(Projection), 여러 개의 어텐션 메커니즘을 병렬로 돌리는 것입니다.
  • 작동 원리:
    • 헤드 1: 주어와 동사의 관계(문법적 구조)에 집중합니다.
    • 헤드 2: 대명사 '그것(It)'이 가리키는 대상(지칭 추론)에 집중합니다.
    • 헤드 3: 형용사가 꾸며주는 대상(수식 관계)에 집중합니다.
  • 결과: 각 헤드에서 나온 결과들을 이어 붙임(Concatenate)으로써, 모델은 문장을 다각도로 입체적으로 이해하게 됩니다. 마치 조각상을 여러 각도에서 조명하여 완벽한 형상을 파악하는 것과 같습니다.

5. 거리의 소멸: 모든 단어는 평등하다

셀프 어텐션이 가져온 가장 큰 수학적 혁신 중 하나는 문장 내 단어 사이의 '물리적 거리'를 소멸시켰다는 점입니다.

기존 RNN에서는 문장의 맨 처음 단어와 맨 마지막 단어를 연결하기 위해 수십, 수백 번의 단계를 거쳐야 했습니다. 거리가 멀면 정보 전달이 불가능에 가까웠습니다. 하지만 셀프 어텐션에서는 모든 단어가 행렬 연산을 통해 1:1로 직접 연결(Direct Connection)됩니다. 수학적으로 첫 단어와 마지막 단어 사이의 거리는 바로 옆 단어와 마찬가지로 1입니다.

이러한 전역적(Global) 문맥 파악 능력 덕분에 트랜스포머 모델은 아무리 긴 논문이나 소설이라도 앞뒤 문맥을 놓치지 않고 완벽하게 연결하여 이해할 수 있게 되었습니다. 이것이 바로 최신 AI 모델들이 긴 글을 요약하거나, 앞서 한 이야기를 기억하며 대화를 이어나갈 수 있는 비결입니다.


결론: 수학으로 빚어낸 언어의 이해

셀프 어텐션은 인간의 직관적인 "집중"이라는 인지 과정을 정교한 행렬 연산과 확률 통계로 번역해 낸 인공지능 역사의 걸작입니다. 쿼리와 키의 내적을 통해 단어 간의 숨겨진 관계를 찾아내고, 소프트맥스를 통해 정보의 중요도를 조절하며, 밸류의 가중합을 통해 문맥을 융합하는 이 일련의 과정은 AI가 단순한 계산기를 넘어 '의미(Semantic)'를 이해하는 지성체로 진화하는 발판이 되었습니다.

우리가 챗GPT와 같은 거대 언어 모델(LLM)을 사용할 때마다, 그 내부에서는 수십억 번의 셀프 어텐션 연산이 쉴 새 없이 돌아가며 단어들의 우주 속에서 최적의 의미를 찾아내고 있습니다. 문맥 이해도가 높아지는 이유는 마법이 아니라, 모든 단어를 동시에 바라보고 가장 가치 있는 정보를 수학적으로 선별해내는 셀프 어텐션의 강력한 알고리즘 덕분입니다. 이 기술은 앞으로도 계속 발전하여, 기계가 인간의 언어를 더욱 깊이 있고 풍성하게 이해하도록 만드는 핵심 엔진으로 남을 것입니다.

신고하기