Transformer - 5. 패딩 마스크 (by WikiDocs)

AI Scientist를 목표로!·2022년 11월 6일
0

패딩 마스크

입력 문장에 <패드> 토큰이 있을 경우 어텐션에서 사실상 제외하기 위한 연산입니다

그런데 사실 단어 <패드>의 경우에는 실질적인 의미를 가진 단어가 아닙니다.

그래서 트랜스포머에서는 Key의 경우에 <패드>토큰이 존재한다면 이에 대해서는 유사도를 구하지 않도록 마스킹(Masking)을 해주기로 했습니다.

여기서 마스킹이란 어텐션에서 제외하기 위해 값을 가린다는 의미입니다.

어텐션 스코어 행렬에서 행에 해당하는 문장은 Query이고, 열에 해당하는 문장은 Key입니다. 그리고 Key에 <패드>가 있는 경우에는 해당 열 전체를 마스킹을 해줍니다

마스킹을 하는 방법은 어텐션 스코어 행렬의 마스킹 위치에 매우 작은 음수값을 넣어주는 것입니다.

여기서 매우 작은 음수값이라는 것은 -1,000,000,000과 같은 -무한대에 가까운 수라는 의미입니다.

현재 어텐션 스코어 함수는 소프트맥스 함수를 지나지 않은 상태입니다. 앞서 배운 연산 순서라면 어텐션 스코어 함수는 소프트맥스 함수를 지나고, 그 후 Value 행렬과 곱해지게 됩니다.

그런데 현재 마스킹 위치에 매우 작은 음수 값이 들어가 있으므로 어텐션 스코어 행렬이 소프트맥스 함수를 지난 후에는 해당 위치의 값은 0이 되어 단어 간 유사도를 구하는 일에 <패드> 토큰이 반영되지 않게 됩니다.

위 그림은 소프트맥스 함수를 지난 후를 가정하고 있습니다.

소프트맥스 함수를 지나면 각 행의 어텐션 가중치의 총 합은 1이 되는데, 단어 <패드>의 경우에는 0이 되어 어떤 유의미한 값을 가지고 있지 않습니다.

profile
딥러닝 지식의 백지에서 깜지까지

0개의 댓글