Part 6 · Self-Attention - Measuring the Relationship Between Words

단어 사이의 관련성을 숫자로 계산하다

사람은 문장을 읽으며 어떤 단어가 서로 관련 있는지 직관적으로 판단합니다. 그러나 컴퓨터가 같은 판단을 하려면 “잘 맞는다”는 감각을 비교 가능한 숫자로 바꾸어야 합니다. Attention은 현재 단어의 Query와 각 단어의 Key를 비교해 관련성을 하나의 점수로 나타냅니다. 이 Attention Score가 높을수록 해당 단어는 현재 의미를 만드는 데 더 중요한 후보가 됩니다.

A Simple Judgment

먼저 사람이 어떻게 판단하는지 생각해 보자

다음 문장에서 He가 누구를 가리키는지 찾아보겠습니다.

Tom lives in New York. He loves the city.
He와 가장 잘 어울리는 단어는 무엇일까?

사람은 문법책을 펼치거나 계산기를 사용하지 않아도 Tom이 가장 자연스럽다고 판단합니다. 그 이유를 말로 풀면 다음과 같습니다.

Tom ★★★★★

사람 이름입니다.

He가 가리킬 수 있는 대상입니다.

New York ★

장소 이름입니다.

He가 가리키는 사람과는 잘 맞지 않습니다.

loves ★

행동을 나타내는 말입니다.

He가 가리킬 대상이 아닙니다.

사람은 후보들을 비교한 뒤, 얼마나 잘 맞는지 마음속으로 점수를 매깁니다.
Turn Judgment into Numbers

컴퓨터는 느낌 대신 숫자가 필요하다

사람은 “Tom이 가장 잘 맞는다”고 말할 수 있지만, 컴퓨터는 그렇게 막연하게 판단할 수 없습니다. 각 후보가 얼마나 잘 맞는지를 숫자로 만들어야 합니다.

Tom
9.0
New York
2.0
loves
1.0
이처럼 Query와 각 Key가 얼마나 잘 맞는지를 나타내는 숫자를 Attention Score라고 합니다.
지금의 9.0, 2.0, 1.0은 설명을 위한 예시입니다. 실제 모델은 학습된 벡터를 비교해 점수를 계산합니다.
Query Meets Key

무엇과 무엇을 비교하는가?

Query

현재 단어가 찾고 있는 정보입니다.

He: “나는 누구를 가리키는 말일까?”
↔

여러 Key

Tom사람 이름
New York장소 이름
loves행동

컴퓨터는 He의 Query를 문장 속 각 단어의 Key와 차례대로 비교합니다.

He의 Query 준비무엇을 찾는가?
Tom의 Key와 비교사람인가?
New York의 Key와 비교장소인가?
loves의 Key와 비교행동인가?
점수 만들기얼마나 잘 맞는가?
Query는 하나이고, 비교 대상인 Key는 여러 개입니다. 그래서 한 Query에 대해 여러 Attention Score가 만들어집니다.
How the Comparison Works

컴퓨터는 벡터의 방향이 비슷한지 본다

컴퓨터 안에서 Query와 Key는 문장이 아니라 숫자 묶음인 벡터입니다. 두 벡터가 비슷한 방향을 가리킬수록 서로 잘 맞는다고 판단합니다.

방향이 비슷함

찾는 정보와 후보의 특징이 잘 맞습니다.

Attention Score가 크게 나옵니다.

방향이 다름

찾는 정보와 후보의 특징이 잘 맞지 않습니다.

Attention Score가 작게 나옵니다.

쉽게 말하면 Query와 Key의 숫자들을 같은 자리끼리 비교해, 서로 얼마나 같은 방향을 가리키는지 하나의 점수로 만듭니다. Query와 Key를 비교 → Attention Score
이 계산을 수학에서는 내적(Dot Product)이라고 부릅니다. 지금은 공식을 외우기보다 두 벡터가 비슷할수록 점수가 커진다고 이해하면 충분합니다.
A Tiny Number Story

숫자를 아주 작게 줄여서 살펴보자

실제 모델의 벡터는 수백 또는 수천 개의 숫자를 가질 수 있습니다. 여기서는 이해를 위해 두 개의 숫자만 사용하겠습니다.

He의 Query

사람을 찾는 성향이 강하다고 가정합니다.

[사람 3, 장소 1]
↔

후보들의 Key

Tom[사람 3, 장소 0]
New York[사람 0, 장소 3]
loves[사람 0, 장소 0]
Tom 사람 성향이 같은 방향
큰 점수
New York 장소 성향이 강해 방향이 다름
작은 점수
loves 사람·장소 후보가 아님
매우 작음
실제 모델이 “사람”, “장소”라는 칸을 직접 사용하는 것은 아닙니다. 하지만 학습을 통해 벡터 안에 이런 관계를 나타내는 방향이 만들어집니다.
Score Is Not Yet a Weight

Attention Score가 바로 참고 비중은 아니다

Attention Score는 후보를 비교한 원점수입니다. 이 숫자는 음수가 될 수도 있고, 크기의 범위도 일정하지 않을 수 있습니다.

Attention Score

Query와 Key를 비교해 나온 원점수입니다.

예: 9.0, 2.0, 1.0 또는 음수

Attention Weight

실제로 얼마나 참고할지 나타내는 비중입니다.

전체를 합하면 1이 되도록 정리합니다.

다음 단계에서는 여러 Attention Score를 사람이 이해하기 쉬운 참고 비중으로 바꿉니다. 이때 사용하는 것이 Softmax입니다.
Try Different Queries

현재 Query가 바뀌면 점수도 바뀐다

현재 이해하려는 단어를 선택해 보세요. 찾는 정보가 달라지면 같은 문장 속 단어들의 Attention Score도 달라집니다.

현재 문장

Attention Score

Summary

핵심 정리

  • Attention Score는 Query와 Key가 얼마나 잘 맞는지를 나타내는 숫자입니다.
  • 한 Query를 문장 속 여러 Key와 각각 비교하므로 여러 점수가 만들어집니다.
  • 벡터의 방향이 비슷할수록 더 큰 점수가 나옵니다.
  • Query와 Key를 비교하는 계산을 내적(Dot Product)이라고 합니다.
  • Attention Score는 원점수이며, 아직 실제 참고 비중은 아닙니다.
  • 다음 장에서는 Softmax를 이용해 점수를 Attention Weight로 바꾸는 과정을 살펴봅니다.