Part 7 · Transformer Architecture - Combining Meaning and Position

의미와 위치를 하나의 벡터로 만들다

위치 정보는 단순한 번호가 아닙니다. 컴퓨터가 계산할 수 있는 또 하나의 벡터입니다. Transformer는 의미를 담은 임베딩 벡터와 위치 벡터를 같은 차원에서 더하여 하나의 입력 벡터를 만듭니다.

From Number Ticket to Vector

번호표는 붙였는데, 컴퓨터는 이 번호를 어떻게 받을까?

T
“사람은 ‘1번째’, ‘2번째’라는 번호표를 바로 이해합니다. 하지만 Transformer에 넣으려면 위치도 숫자들의 묶음으로 바꾸어야 합니다.”
1번째문을 열고
2번째불을 켰다

이전 페이지에서는 카드마다 번호표를 붙여 순서를 알려주었습니다. 이제 그 번호표를 컴퓨터가 계산할 수 있는 형태로 바꿀 차례입니다.

단어의 의미가 벡터라면, “첫 번째 자리”라는 위치도 벡터로 표현할 수 있지 않을까요?
Position Becomes Numbers

‘첫 번째 자리’도 여러 숫자의 묶음이 된다

컴퓨터는 문장, 단어, 위치를 모두 숫자로 계산합니다. 따라서 “첫 번째 자리”라는 위치 정보도 여러 숫자가 나란히 놓인 위치 벡터(Position Vector)로 바꿉니다.

사람이 보는 번호표
1번째

문장 안에서 가장 앞에 있는 자리

→
컴퓨터가 받는 위치 벡터
0.080.030.410.12

첫 번째 위치를 표현하는 숫자들의 묶음

위 숫자들은 원리를 보여주기 위한 간단한 예시입니다. 각각의 숫자를 따로 해석할 필요는 없습니다. 핵심은 위치도 하나의 벡터로 표현된다는 점입니다.
The Main Picture

의미 벡터와 위치 벡터를 더한다

“문을 열고”라는 단어 표현은 이미 임베딩을 통해 의미 벡터가 되었습니다. 여기에 “첫 번째 자리”를 나타내는 위치 벡터를 더합니다.

문을 열고 · 첫 번째 위치
뜻
의미 벡터
“문을 열고”가 무엇을 뜻하는지 담은 숫자들
0.210.830.550.14
+
자리
위치 벡터
첫 번째 자리에 있다는 정보를 담은 숫자들
0.080.030.410.12
=
입력
최종 입력 벡터
단어의 의미와 위치를 함께 담은 숫자들
0.290.860.960.26
Transformer에 들어가는 벡터에는 “이 단어가 무엇인가?”와 “이 단어가 어디에 있는가?”가 함께 담깁니다.
Add the Same Places

벡터는 같은 자리의 숫자끼리 더한다

벡터를 더하는 방법은 어렵지 않습니다. 첫 번째 숫자는 첫 번째 숫자끼리, 두 번째 숫자는 두 번째 숫자끼리 더합니다.

의미 벡터
0.21
0.83
0.55
0.14
+ 위치 벡터
0.08
0.03
0.41
0.12
최종 입력 벡터
0.29
0.86
0.96
0.26
두 벡터의 길이가 같기 때문에 같은 위치의 숫자끼리 더할 수 있습니다. 실제 모델에서는 네 칸보다 훨씬 많은 숫자를 사용하지만 원리는 같습니다.
Paint Analogy

의미 위에 위치 정보를 덧칠한다고 생각해 보자

벡터 덧셈이 낯설다면 색을 덧칠하는 장면으로 생각할 수 있습니다. 파란색은 단어의 의미이고, 보라색 무늬는 문장 속 위치입니다.

의미 정보

이 단어가 무엇을 뜻하는가?

+
위치 정보

문장 안에서 몇 번째인가?

=
합쳐진 입력

의미와 위치를 동시에 가진 표현

‘덧칠’은 이해를 돕기 위한 비유입니다. 실제로는 색을 섞는 것이 아니라 두 벡터의 같은 자리 숫자들을 더합니다.
Interactive Vector Merge

의미만 보고, 위치만 보고, 둘을 합쳐 보자

아래 버튼을 눌러 각 정보가 어떻게 나타나는지 확인해 보세요.

의미 벡터

“문을 열고”의 뜻

+

위치 벡터

첫 번째 자리의 정보

=

최종 입력 벡터

의미 + 위치

현재는 단어가 무엇을 뜻하는지 나타내는 의미 벡터만 보고 있습니다.
Do Not Misunderstand

위치 정보가 단어의 원래 의미를 지우는 것은 아니다

위치 벡터를 더한다고 해서 “문을 열고”라는 말이 갑자기 다른 단어로 바뀌는 것은 아닙니다. 단어의 의미를 담은 정보 위에 문장 속 자리 정보를 함께 실어 보내는 것입니다.

위치 벡터의 역할은 단어의 뜻을 새로 만드는 것이 아니라, 그 단어가 문장 안에서 어디에 있었는지 알려주는 것입니다.
실제 고차원 벡터에서는 의미와 위치가 각각 특정 칸에 따로 저장되는 것은 아닙니다. 두 정보가 같은 크기의 벡터로 표현되어 더해지고, 모델은 합쳐진 전체 패턴을 사용합니다.
Part 1 Summary

이번 페이지에서 기억할 것

  • 문장 속 위치도 컴퓨터가 계산할 수 있도록 벡터로 표현합니다.
  • 단어 임베딩은 단어의 의미를 담은 의미 벡터입니다.
  • 위치 벡터는 단어가 몇 번째 자리에 있는지 나타냅니다.
  • 두 벡터는 같은 자리의 숫자끼리 더합니다.
  • 그 결과 의미와 위치를 함께 담은 Transformer 입력 벡터가 만들어집니다.
다음 Part에서 이어집니다같은 단어가 다른 위치에 나타나면 최종 벡터가 어떻게 달라지는지, 문장 전체의 각 토큰에 위치 벡터를 어떻게 더하는지 살펴봅니다.