더 쉽게 예를 들어 설명하겠습니다. 인코더 입력이 “나는 점심을 먹고 있어”를 디코더에서 영어로 번역하면 “I am eating lunch”입니다. 디코더가 이 문장을 생성할 때 각 단어를 예측하는 과정에서 이전 단어만 참고할 수 있고, 현재 생성하는 단어 뒤에 올 단어는 보지 못하도록 마스크드 셀프 어텐션 메커니즘이 적용됩니다.
1. 첫 번째 단어 I 생성
디코더는 첫 단어 I를 생성하기 위해 마스킹된 어텐션을 사용합니다. 이때 I는 시작 토큰만 보고 자신을 예측합니다.
어텐션 매트릭스는 [1, 0, 0, 0]으로, I 위치에만 어텐션을 주고, 나머지 위치는 0으로 마스킹됩니다.
2. 두 번째 단어 am 생성
두 번째 단어 am을 예측할 때 디코더는 I만 참고할 수 있습니다. am 이후의 단어(eating, lunch)는 보지 못하도록 마스킹합니다.
어텐션 매트릭스는 [1, 1, 0, 0]으로, I와 am에만 어텐션을 부여하고, 이후 단어는 0으로 마스킹됩니다.