먼저 사람이 어떻게 판단하는지 생각해 보자
다음 문장에서 He가 누구를 가리키는지 찾아보겠습니다.
사람은 문법책을 펼치거나 계산기를 사용하지 않아도 Tom이 가장 자연스럽다고 판단합니다. 그 이유를 말로 풀면 다음과 같습니다.
사람 이름입니다.
He가 가리킬 수 있는 대상입니다.
장소 이름입니다.
He가 가리키는 사람과는 잘 맞지 않습니다.
행동을 나타내는 말입니다.
He가 가리킬 대상이 아닙니다.
컴퓨터는 느낌 대신 숫자가 필요하다
사람은 “Tom이 가장 잘 맞는다”고 말할 수 있지만, 컴퓨터는 그렇게 막연하게 판단할 수 없습니다. 각 후보가 얼마나 잘 맞는지를 숫자로 만들어야 합니다.
무엇과 무엇을 비교하는가?
Query
현재 단어가 찾고 있는 정보입니다.
여러 Key
컴퓨터는 He의 Query를 문장 속 각 단어의 Key와 차례대로 비교합니다.
컴퓨터는 벡터의 방향이 비슷한지 본다
컴퓨터 안에서 Query와 Key는 문장이 아니라 숫자 묶음인 벡터입니다. 두 벡터가 비슷한 방향을 가리킬수록 서로 잘 맞는다고 판단합니다.
찾는 정보와 후보의 특징이 잘 맞습니다.
Attention Score가 크게 나옵니다.
찾는 정보와 후보의 특징이 잘 맞지 않습니다.
Attention Score가 작게 나옵니다.
Query와 Key를 비교 → Attention Score
숫자를 아주 작게 줄여서 살펴보자
실제 모델의 벡터는 수백 또는 수천 개의 숫자를 가질 수 있습니다. 여기서는 이해를 위해 두 개의 숫자만 사용하겠습니다.
He의 Query
사람을 찾는 성향이 강하다고 가정합니다.
후보들의 Key
Attention Score가 바로 참고 비중은 아니다
Attention Score는 후보를 비교한 원점수입니다. 이 숫자는 음수가 될 수도 있고, 크기의 범위도 일정하지 않을 수 있습니다.
Query와 Key를 비교해 나온 원점수입니다.
예: 9.0, 2.0, 1.0 또는 음수
실제로 얼마나 참고할지 나타내는 비중입니다.
전체를 합하면 1이 되도록 정리합니다.
현재 Query가 바뀌면 점수도 바뀐다
현재 이해하려는 단어를 선택해 보세요. 찾는 정보가 달라지면 같은 문장 속 단어들의 Attention Score도 달라집니다.
현재 문장
Attention Score
핵심 정리
- Attention Score는 Query와 Key가 얼마나 잘 맞는지를 나타내는 숫자입니다.
- 한 Query를 문장 속 여러 Key와 각각 비교하므로 여러 점수가 만들어집니다.
- 벡터의 방향이 비슷할수록 더 큰 점수가 나옵니다.
- Query와 Key를 비교하는 계산을 내적(Dot Product)이라고 합니다.
- Attention Score는 원점수이며, 아직 실제 참고 비중은 아닙니다.
- 다음 장에서는 Softmax를 이용해 점수를 Attention Weight로 바꾸는 과정을 살펴봅니다.