Part 6 · Self-Attention - Focusing on What Matters

문장을 이해하려면 중요한 정보에 집중해야 한다

사람은 글을 읽을 때 모든 단어를 같은 비중으로 받아들이지 않습니다. 현재 이해하려는 내용과 관련이 큰 부분은 자세히 살펴보고, 관련이 적은 부분은 상대적으로 적게 참고합니다. Attention은 이러한 선택을 컴퓨터의 계산으로 옮긴 방법입니다. 문장 속 여러 정보를 함께 살펴보되, 현재 필요한 정보에 더 큰 비중을 주어 새로운 문맥 표현을 만듭니다.

Start with a Story

먼저 사람이 어떻게 읽는지 살펴보자

다음 두 문장을 읽어보겠습니다.

Tom lives in New York. He loves the city.
질문: He는 누구일까요?

사람은 문장을 처음부터 다시 외우지 않습니다. He와 가장 관계가 있어 보이는 단어를 먼저 찾습니다.

He를 본다무엇을 가리키는지 궁금함
앞 문장을 다시 본다후보를 찾음
Tom에 집중한다가장 관계가 큼
의미를 이해한다He = Tom
사람은 모든 단어를 똑같이 보지 않습니다. 현재 필요한 답과 가장 관계있는 단어를 더 많이 참고합니다.
Let the Computer Do the Same

컴퓨터도 필요한 단어를 더 많이 참고하게 하자

컴퓨터가 He를 이해하려면 문장 앞쪽의 여러 단어를 살펴봐야 합니다. 하지만 모든 단어가 똑같이 중요한 것은 아닙니다.

Tom ★★★★★ 가장 많이 참고
New York ★★ 조금 참고
city ★ 아주 조금 참고
문장 전체를 살펴본 뒤, 현재 가장 도움이 되는 정보를 더 많이 참고하는 방법이 Attention입니다.
Why Not Treat Everything Equally?

왜 모든 단어를 똑같이 참고하면 안 될까?

모든 단어를 똑같이 참고

Tom, New York, city가 모두 같은 비중으로 섞입니다.

He가 누구를 가리키는지 분명하게 잡기 어렵습니다.

필요한 단어를 더 많이 참고

Tom의 정보가 가장 크게 반영됩니다.

He가 Tom을 가리킨다는 관계가 더 분명해집니다.

Attention은 입력을 버리는 기술이 아닙니다. 여러 정보를 함께 보되, 필요한 정보에 더 큰 비중을 주는 기술입니다.
From Stars to Weight

별의 개수는 컴퓨터 안에서 숫자가 된다

사람에게는 “많이 참고한다”, “조금 참고한다”라고 설명할 수 있습니다. 하지만 컴퓨터는 이를 숫자로 나타내야 합니다.

사람이 보는 표현 ★★★★★
→
컴퓨터가 사용하는 숫자 0.82 Attention Weight
어떤 정보를 얼마나 많이 참고할지를 나타내는 숫자를 Attention Weight(어텐션 가중치)라고 합니다.
How Information Is Mixed

중요한 정보는 결과에 더 많이 반영된다

Attention은 가장 중요한 단어 하나만 고르는 방식이 아닙니다. 여러 단어의 정보를 함께 사용하되, 중요한 정보는 더 많이 반영합니다.

Tom × 0.82 가장 크게 반영
New York × 0.12 조금 반영
city × 0.06 아주 조금 반영
이렇게 각 정보에 서로 다른 비중을 곱한 뒤 함께 더하는 과정을 가중합(Weighted Sum)이라고 합니다.
지금은 계산 방법보다 뜻을 이해하는 것이 중요합니다. 숫자가 클수록 그 정보가 결과에 더 많이 반영된다고 이해하면 충분합니다.
The Result

여러 정보를 섞어 현재 상황에 맞는 새 표현을 만든다

Tom, New York, city의 정보를 서로 다른 비중으로 섞으면 He를 이해하는 데 필요한 정보가 담긴 새로운 표현이 만들어집니다.

여러 단어의 정보 Tom · New York · city
→
현재 상황에 맞는 새 표현 He는 Tom을 가리킨다
이처럼 Attention으로 만들어진 새로운 벡터를 Context Vector(문맥 벡터)라고 부릅니다.
Try It

현재 단어가 바뀌면 집중할 대상도 달라진다

현재 어떤 단어를 이해하려는지에 따라 많이 참고할 단어가 달라집니다.

Attention and Self-Attention

Self-Attention은 무엇이 다를까?

지금까지는 문장 안의 He가 앞에 있는 Tom을 참고하는 모습을 살펴봤습니다. 그런데 문장을 이해할 때 다른 단어들도 서로를 참고해야 하지 않을까요?

Tom lives in New York.

이 문장에서 lives를 제대로 이해하려면, 누가 사는지 알려주는 Tom과 어디에 사는지 알려주는 New York을 함께 봐야 합니다.

Tom 누가 사는가?
lives 어떤 행동인가?
New York 어디에 사는가?
문장 의미 Tom은 New York에 산다
문장을 이해하려면 특정 단어 하나만 다른 단어를 보는 것이 아니라, 문장 안의 모든 단어가 필요한 다른 단어들을 참고해야 합니다.

모든 단어가 서로를 참고한다

Tom lives ★★★★ · New York ★★ 자신의 역할을 이해
lives Tom ★★★★ · New York ★★★★ 주어와 장소를 함께 참고
New York lives ★★★★ · Tom ★★ 장소의 역할을 이해
이렇게 같은 문장 안의 단어들이 서로를 참고하는 Attention을 Self-Attention이라고 합니다.

왜 이름에 Self가 붙을까?

Attention

한쪽 정보가 다른 쪽 정보에서 필요한 부분을 찾아 참고하는 넓은 개념입니다.

예: 번역 문장을 만들 때 입력 문장의 단어들을 참고합니다.

Self-Attention

참고하는 쪽과 참고받는 쪽이 같은 문장 안에 있습니다.

문장 속 각 단어가 같은 문장의 다른 단어들을 살펴봅니다.

Self는 “자기 자신만 본다”는 뜻이 아닙니다. 같은 문장 자체(Self) 안에서 서로를 참고한다는 뜻입니다.

이제 새로운 질문이 생긴다

사람은 Tom과 He가 관련 있다는 것을 직관적으로 알 수 있습니다. 하지만 컴퓨터는 단어 사이의 관계를 반드시 숫자로 계산해야 합니다.

사람이 하는 판단 Tom과 He는 관련 있다
→
컴퓨터가 해야 하는 계산 관련성을 숫자로 표현
다음 페이지에서는 컴퓨터가 무엇을 찾고(Query), 무엇과 비교하고(Key), 어떤 정보를 가져오는지(Value) 살펴봅니다.
Summary

핵심 정리

  • 사람은 글을 읽을 때 필요한 부분을 더 많이 참고합니다.
  • Attention은 컴퓨터도 같은 방식으로 정보를 보게 합니다.
  • 중요한 정보에는 큰 비중을, 덜 중요한 정보에는 작은 비중을 줍니다.
  • 이 비중을 Attention Weight라고 합니다.
  • 각 정보에 비중을 곱해 함께 더하는 과정을 가중합이라고 합니다.
  • 그 결과 현재 상황에 맞는 새로운 문맥 표현이 만들어집니다.