AI VIDEO BRIEFING
트랜스포머 인코더 구조 정리: 위치 인코딩, 멀티헤드 어텐션, Add & Norm과 피드포워드
트랜스포머 인코더를 구성 요소별로 뜯어본 강의 정리. 어순 정보를 실어 주는 위치 인코딩, 여러 헤드를 병렬로 돌리는 멀티헤드 어텐션, 잔차 연결과 정규화, 피드포워드 층의 역할을 차례로 설명한다.

핵심 메시지
쉽게 이해하기
이 영상은 트랜스포머 구조를 여러 편으로 나눠 설명하는 시리즈의 세 번째 편으로, 셀프 어텐션을 이미 다룬 뒤 인코더 전체를 조립하는 단계다. 인코더는 같은 모양의 블록을 여러 개 쌓아 만드는데, 블록마다 파라미터는 다르지만 구조는 동일하다. 각 블록은 받은 벡터의 개수와 길이를 그대로 돌려주기 때문에 원하는 만큼 위로 쌓기가 간단하다.
먼저 순서 문제를 짚는다. '그들은 부유하지만 행복한가'와 '그들은 행복하지만 부유한가'는 담긴 단어가 같지만 뜻이 다르다. 그런데 인코더가 입력을 집합으로만 본다면 두 문장을 구분할 수 없다. 해결책은 단순하다. 각 벡터에 그 단어가 문장에서 몇 번째였는지를 함께 실어 주면, 순서를 따로 관리하지 않아도 벡터만 보고 알아낼 수 있다.
구체적인 계산 방식도 소개된다. 문장을 사전에 있는 토큰들로 쪼갠 뒤 단어마다 원핫 벡터를 만들고, 위치에 대해서도 같은 방식으로 원핫 벡터를 만든다. 이 둘을 그냥 이어 붙이면 벡터가 지나치게 길어지므로, 각각에 행렬을 곱해 적당한 차원으로 줄인다. 원핫에 행렬을 곱하는 것은 결국 해당 열 벡터를 하나 꺼내는 일이고, 강의는 이렇게 뽑은 두 벡터를 그냥 더한다고 설명한다.
단어와 위치를 더해 버리는 것이 처음에는 이상하게 느껴질 수 있다. 강의의 설명은 차원이 충분히 크기 때문에 네트워크가 두 행렬을 학습하면서 위치 정보는 어떤 좌표에, 단어 정보는 다른 좌표에 담도록 스스로 나눌 수 있다는 것이다. 두 행렬 모두 다른 파라미터와 함께 데이터로부터 학습된다.
이어서 멀티헤드 어텐션이 나온다. 구조가 같고 파라미터가 다른 헤드 여러 개가 각자 다른 것을 보도록 어텐션을 수행하고, 헤드별 결과를 이어 붙여 긴 임베딩을 만든 다음, 행렬 하나를 더 곱해 원래 길이로 되돌린다. 뒤따르는 Add & Norm 층이 두 입력을 더한 뒤 전체 원소의 평균과 표준편차로 정규화하려면 차원이 맞아야 하기 때문이다. 마지막 피드포워드는 선형 변환과 ReLU, 다시 선형 변환으로 이뤄지고 모든 단어에 같은 가중치를 적용하는데, 이 가중치 공유가 파라미터 수를 줄이고 길이가 다른 문장에 대한 일반화를 돕는다.
주요 인사이트
- 모든 층이 입출력 차원을 보존하도록 설계한 것은 단순한 우연이 아니다. 덕분에 블록을 원하는 만큼 쌓을 수 있고 잔차 연결도 자연스럽게 붙는다.
- 멀티헤드의 출력이 헤드 수만큼 길어지는데도 굳이 원래 차원으로 되돌리는 이유는, 뒤에 오는 Add & Norm이 입력과 출력의 모양을 맞춰야 하기 때문이라고 명시된다.
- 위치 인코딩 행렬이 미리 정해진 규칙이 아니라 데이터에서 학습되는 파라미터로 소개된다는 점은, 위치 표현 방식이 여러 가지일 수 있음을 보여 준다.
- 정규화의 통상적인 근거는 더 큰 학습률을 쓸 수 있다는 점이지만, 강의는 임베딩이 원점 주변에 모이는 효과가 내적으로 유사도를 재는 어텐션 층에도 도움이 될 수 있다고 덧붙인다.
- 피드포워드 층이 각 단어에 독립적으로 적용된다는 사실은 이를 1차원 합성곱 두 번으로 볼 수 있게 해 주며, 빠르고 간단한 구현으로 이어진다.
자주 묻는 질문
왜 트랜스포머에 위치 인코딩이 필요한가요?
인코더는 입력을 순서 없는 벡터들의 집합으로 다루기 때문입니다. 단어 구성이 같고 순서만 다른 두 문장은 뜻이 전혀 다를 수 있는데, 위치 정보를 벡터에 넣지 않으면 모델이 그 차이를 구분할 방법이 없습니다.
단어 임베딩과 위치 임베딩을 이어 붙이지 않고 더하는 이유는 무엇인가요?
이어 붙이면 벡터가 지나치게 길어져 실용적이지 않기 때문입니다. 강의는 임베딩 차원이 충분히 크기 때문에, 네트워크가 두 행렬을 학습하면서 위치와 단어 정보를 서로 다른 좌표에 나눠 담도록 만들 수 있다고 설명합니다.
멀티헤드 어텐션에서 각 헤드는 무엇이 다른가요?
구조는 모두 같고 가중치 행렬만 다릅니다. 헤드마다 질의·키·값 행렬을 따로 가지기 때문에 각 헤드가 서로 다른 것에 주목할 수 있고, 그 결과들을 이어 붙여 하나의 표현으로 합칩니다.
Add & Norm 층은 구체적으로 무슨 일을 하나요?
이름 그대로 두 입력 행렬을 더한 다음 정규화합니다. 전체 원소의 평균과 분산을 구해 평균을 빼고 표준편차로 나누며, 수치 안정성을 위해 작은 값을 더하기도 합니다. 더하기 부분은 잔차 연결에 해당해 그래디언트를 강하게 유지하는 효과가 있습니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗