먼저 사람이 어떻게 읽는지 살펴보자
다음 두 문장을 읽어보겠습니다.
사람은 문장을 처음부터 다시 외우지 않습니다. He와 가장 관계가 있어 보이는 단어를 먼저 찾습니다.
컴퓨터도 필요한 단어를 더 많이 참고하게 하자
컴퓨터가 He를 이해하려면 문장 앞쪽의 여러 단어를 살펴봐야 합니다. 하지만 모든 단어가 똑같이 중요한 것은 아닙니다.
왜 모든 단어를 똑같이 참고하면 안 될까?
Tom, New York, city가 모두 같은 비중으로 섞입니다.
He가 누구를 가리키는지 분명하게 잡기 어렵습니다.
Tom의 정보가 가장 크게 반영됩니다.
He가 Tom을 가리킨다는 관계가 더 분명해집니다.
별의 개수는 컴퓨터 안에서 숫자가 된다
사람에게는 “많이 참고한다”, “조금 참고한다”라고 설명할 수 있습니다. 하지만 컴퓨터는 이를 숫자로 나타내야 합니다.
중요한 정보는 결과에 더 많이 반영된다
Attention은 가장 중요한 단어 하나만 고르는 방식이 아닙니다. 여러 단어의 정보를 함께 사용하되, 중요한 정보는 더 많이 반영합니다.
× 0.82
가장 크게 반영
× 0.12
조금 반영
× 0.06
아주 조금 반영
여러 정보를 섞어 현재 상황에 맞는 새 표현을 만든다
Tom, New York, city의 정보를 서로 다른 비중으로 섞으면 He를 이해하는 데 필요한 정보가 담긴 새로운 표현이 만들어집니다.
현재 단어가 바뀌면 집중할 대상도 달라진다
현재 어떤 단어를 이해하려는지에 따라 많이 참고할 단어가 달라집니다.
Self-Attention은 무엇이 다를까?
지금까지는 문장 안의 He가 앞에 있는 Tom을 참고하는 모습을 살펴봤습니다. 그런데 문장을 이해할 때 다른 단어들도 서로를 참고해야 하지 않을까요?
이 문장에서 lives를 제대로 이해하려면, 누가 사는지 알려주는 Tom과 어디에 사는지 알려주는 New York을 함께 봐야 합니다.
모든 단어가 서로를 참고한다
왜 이름에 Self가 붙을까?
한쪽 정보가 다른 쪽 정보에서 필요한 부분을 찾아 참고하는 넓은 개념입니다.
예: 번역 문장을 만들 때 입력 문장의 단어들을 참고합니다.
참고하는 쪽과 참고받는 쪽이 같은 문장 안에 있습니다.
문장 속 각 단어가 같은 문장의 다른 단어들을 살펴봅니다.
이제 새로운 질문이 생긴다
사람은 Tom과 He가 관련 있다는 것을 직관적으로 알 수 있습니다. 하지만 컴퓨터는 단어 사이의 관계를 반드시 숫자로 계산해야 합니다.
핵심 정리
- 사람은 글을 읽을 때 필요한 부분을 더 많이 참고합니다.
- Attention은 컴퓨터도 같은 방식으로 정보를 보게 합니다.
- 중요한 정보에는 큰 비중을, 덜 중요한 정보에는 작은 비중을 줍니다.
- 이 비중을 Attention Weight라고 합니다.
- 각 정보에 비중을 곱해 함께 더하는 과정을 가중합이라고 합니다.
- 그 결과 현재 상황에 맞는 새로운 문맥 표현이 만들어집니다.