한 줄 정의

트랜스포머(Transformer) 아키텍처에서 문장 내 모든 단어 간의 실시간 의미적/문법적 연대 관계(Relationship)를 파악하기 위해, 단어들끼리 서로를 조회(Query)하고 대조(Key)하여 문맥 정보를 유기적으로 엮어내는 어텐션 메커니즘.

핵심 요지

  • 실시간 관계 포착: 위치 인코딩(Positional Encoding)만으로 파악할 수 없는 단어 간의 유기적 의미 및 문장 구조 내 연결고리(예: 대명사가 가리키는 실제 명사)를 정밀 조준한다.
  • Q, K, V 선형 변환: 입력 단어 임베딩에 각각 가중치 매개변수 행렬(, , )을 곱해 질문용 쿼리(Query, Q), 색인용 키(Key, K), 알맹이 정보 전달용 밸류(Value, V) 벡터로 재정형한다.
  • 스케일드 닷 프로덕트: 쿼리(Q)와 키(K)의 점곱 결과(유사도)를 벡터 차원의 제곱근()으로 나누어 보정(Scaling)함으로써, 소프트맥스 함수의 기울기 소실(Vanishing Gradient) 문제를 방지한다.
  • 병렬 연산 최적화: 이전 연산 결과의 전달을 기다려야 하는 순환 신경망(RNN/LSTM)과 달리, 행렬 연산을 통해 문장 내 모든 단어 조합에 대한 어텐션 계산이 메모리 상에서 동시에 일괄 처리된다.
  • 다각도 문맥 추적(Multi-Head): 여러 개의 어텐션 헤드가 병렬로 작동하면서 대명사 지시 관계, 동사-목적어 호응 관계, 형용사 수식 관계 등을 각기 독자적인 시각으로 추적한다.

상세

Q, K, V의 개념적 직관 (추천 엔진 비유)

동영상 추천 시스템(예: 넷플릭스)의 작동 메커니즘과 비유해 이해할 수 있다.

  1. Q (Query): 검색창에 치는 검색어 (예: “SF 영화 조회해 줘”) -> 정보를 찾고자 하는 주체.
  2. K (Key): 데이터베이스 영화들에 지정된 분류 태그 정보 (예: SF, 액션, 멜로 등) -> 대조 검정을 당하는 색인 목록.
  3. V (Value): 검색 결과로 사용자 화면에 뿌려지는 실제 영화 데이터 (예: 포스터 이미지, 영화 소개 정보 등) -> 가치 있는 실제 정보.

자가 어텐션은 이 구조를 문장 속 단어들에 이식하여, 질문자 단어(Q)가 문장 전체의 단어 태그(K)들과 유사도를 비교한 뒤, 그 적합도(가중치)에 맞추어 실제 정보(V)를 종합해 냅니다.

4단계 계산 프로세스

  1. 내적 유사도 분석 (MatMul of )
    • 쿼리 벡터 와 키 벡터 를 행렬 곱셈하여 유사도 점수 행렬(Similarity Matrix)을 구한다.
    • 각 원소는 검색 단어와 대상 단어 사이의 의미적 연대감을 의미하는 실수 스코어이다.
  2. 차원 크기 보정 (Scaling)
    • 임베딩 차원()이 512, 1024처럼 클수록 점곱 결과값이 매우 비대해진다.
    • 스코어가 너무 커지면 다음 단계인 소프트맥스 함수의 출력 확률이 특정 한 단어로 100% 쏠리고 나머지 단어들은 0에 수렴하게 되어, 모델 학습의 역전파 시 기울기가 소실된다.
    • 이를 방지하기 위해 점수를 로 나누어 범위를 안정적으로 조절한다.
  3. 소프트맥스(Softmax) 정형화
    • 보정된 원시 스코어를 0과 1 사이의 양수 비율로 규격화하고, 가로 행의 합산 누적이 정확히 1(100%)이 되도록 정돈한다.
    • 지수함수의 비선형성을 활용해 단순 행렬 곱 이상의 유기적인 차원적 결합 정보를 매끄럽게 추출한다.
  4. 가중 종합 결합 (MatMul with )
    • 정제된 어텐션 가중치 확률 행렬과 실제 지식 속성 정보가 담긴 행렬을 최종 곱한다.
    • 최종 출력은 단순한 확률 분포가 아니라, 가중치를 비율 삼아 밸류 벡터들을 결합한 고차원 정보 벡터이다.

멀티헤드 어텐션(Multi-Head Attention)

단일 어텐션에만 의존하지 않고, 이 가중 결합 연산을 병렬로 여러 개(헤드 수 ) 돌린다.

  • 각 헤드는 문맥 안에서 서로 다른 특징(대명사, 문법, 형용사 등)에 주목한다.
  • 계산이 끝난 각 헤드의 출력 벡터들을 가로로 길게 접합(Concatenate)하여 풍부한 특징 차원으로 확장한다. (예: 4차원 밸류 벡터를 8개 헤드로 처리하면 차원의 종합 벡터 완성)

예시

  • 구체적 문맥 업데이트 시나리오 문장: "I ate the cake and it was delicious."
    • 단어 "it"이 쿼리(Q)가 되어 문장 내 다른 단어들의 키(K) 벡터들과 내적을 수행한다.
    • 보정과 소프트맥스를 거치며 "it""cake" 간의 어텐션 스코어가 가장 높게(예: 가중치 0.82) 계산된다.
    • 가중치가 적용된 행렬 곱을 통과하며 "it"의 출력 벡터는 단순한 대명사 토큰을 넘어 "cake"가 가진 ‘달콤한 디저트’, ‘식사용 에이전트 대상’이라는 의미적 밸류를 흡수하여 종합적인 맥락 벡터로 갱신된다.

충돌

  • 순환 구조의 속도 한계 vs 자가 어텐션의 공간복잡도
    • 자가 어텐션은 순환 신경망(LSTM 등)과 달리 이전 시점의 연산을 기다리지 않고 행렬 곱을 활용해 병렬 연산을 수행하므로 속도가 획기적으로 향상된다.
    • 그러나 문장 길이 이 길어질수록 모든 단어 간의 쌍을 계산하므로 시퀀스 길이에 대해 제곱 비례하는 의 연산량 및 메모리 공간복잡도를 감당해야 한다는 공간적 한계를 지닌다.

관련 노트