벡터를 더하는 방법은 알았다. 그런데 위치가 달라지면?
Part 1에서는 의미 벡터와 위치 벡터를 같은 자리끼리 더했습니다. 이제 위치가 바뀌면 최종 입력 벡터가 어떻게 달라지는지 확인해 보겠습니다.
같은 단어라도 위치가 다르면 최종 입력이 달라진다
같은 “문”이라는 토큰이 두 번 등장한다고 생각해 봅시다. 단어 자체가 같으므로 의미 벡터는 같습니다. 하지만 문장 속 자리가 다르면 서로 다른 위치 벡터가 더해집니다.
[0.31, 0.72, 0.18, 0.44]
[0.10, 0.04, 0.32, 0.08]
[0.41, 0.76, 0.50, 0.52]
[0.31, 0.72, 0.18, 0.44]
[0.52, 0.19, 0.06, 0.27]
[0.83, 0.91, 0.24, 0.71]
문장 속 모든 토큰에 각자의 위치 벡터를 더한다
한 단어에만 위치 정보를 더하는 것이 아닙니다. 문장 안에 있는 모든 토큰은 자신의 자리에 해당하는 위치 벡터를 받습니다.
토큰이 Transformer 입력이 되기까지
토큰을 선택해 의미 벡터와 위치 벡터를 확인해 보자
문장 속 토큰을 누르면 해당 토큰의 의미 벡터, 위치 벡터, 최종 입력 벡터가 표시됩니다.
의미 벡터
“문을”의 의미
위치 벡터
1번째 위치
최종 입력 벡터
의미와 위치가 합쳐진 결과
왜 두 벡터의 크기가 같아야 할까?
같은 자리의 숫자끼리 더하려면 두 벡터의 숫자 개수가 같아야 합니다. 의미 벡터가 4개의 숫자로 이루어져 있다면 위치 벡터도 4개의 숫자를 가져야 합니다.
의미 벡터
4칸 [0.21, 0.83, 0.55, 0.14]위치 벡터
4칸 [0.08, 0.03, 0.41, 0.12]위치 벡터를 더할 때 확인할 세 가지
각 토큰마다 더한다
문장 속 모든 토큰이 자신의 위치 벡터를 받습니다.
같은 차원을 사용한다
의미 벡터와 위치 벡터의 숫자 개수가 같아야 합니다.
하나의 벡터가 된다
두 벡터를 따로 보내지 않고 더한 결과를 Transformer에 넣습니다.
Transformer가 실제로 받는 것은 ‘의미 + 위치’이다
78장 전체 핵심 정리
- 단어 임베딩은 토큰의 의미를 담은 벡터입니다.
- 위치 벡터는 토큰이 문장 안에서 몇 번째인지 나타냅니다.
- 두 벡터는 같은 자리의 숫자끼리 더합니다.
- 같은 단어라도 위치가 다르면 최종 입력 벡터가 달라집니다.
- 문장 속 모든 토큰에 각자의 위치 벡터가 더해집니다.
- Transformer는 의미와 위치가 합쳐진 벡터를 입력으로 받습니다.