
Multi Head Attention는 다양한 시점에서 토큰간의 관계를 살펴보는 것이라고 알아봤다, 그러면 Masked라는 게 뭘까?
이 Masked라는 건 말 그대로 가리는 것이다. 그럼 뭘 가릴까?
토큰간의 관계를 살펴볼 때 모든 토큰끼리의 관계를 인코더에서는 살펴봤다. 하지만 디코더에서는 단어를 생성하는 것이기 때문에 모든 토큰을 살펴보면 안된다. 즉, 문제를 푸는데 정답을 보고 풀면 의미가 없는 것과 같다.
따라서, 이런 문제를 방지하고자, 아직 생성되지 않은 단어는 가리고 연관성을 학습하는 것이다.
❗이 때, 이런 의문이 생길 수 있다. 아니 디코더에서는 어차피 생성해야되는 거라 이미 단어가 나올 일이 없지 않나?
이 이유는 훈련과 테스트로 나눠서 생각할 수 있다.
훈련 시: 정답 문장이 있기 때문에 정답 문장을 기반으로 연관도를 계산하지 못하도록 막는 것
테스트 시: 디코더의 어텐션 구조를 짤 때 전체 길이에 맞춰서 생성하기 때문에 실제로 생성이 되지 않지만, 빈칸이 생기게 된다. 따라서 연관도를 계산할 때 이 빈칸을 포함하지 않도록 하기 위해서 막는 것
그럼 어떻게 막을까?
Multi Head Attention을 할 때, Softmax를 이용해서 각 단어에 대한 확률을 출력한다 이때 0이 나오도록 만들어 특정 단어에 대해서는 아무 값이 나오지 안도록 하면된다.

위의 softmax 함수를 보면 이 값이 0이 되기 위해서는 x값이 -inf가 되어야한다. 따라서 특정 토큰 자리에 -inf를 넣어 출력할 때 0이 나오도록 설정해준다.
'논문 > Transfomer' 카테고리의 다른 글
| Transfomer - Cross Multi-Head Attention (0) | 2025.02.25 |
|---|---|
| Transfomer - Feed Forward (0) | 2025.02.25 |
| Transfomer - Multi Head Attention (0) | 2025.02.25 |
| Transfomer - Input Embedding & Positional Encoding (0) | 2025.02.25 |
| Transfomer의 전체적인 아이디어 해석 (0) | 2025.02.25 |