더북(TheBook)

10.2 트랜스포머 어텐션

어텐션(attention)은 주로 언어 번역에서 사용되기 때문에 인코더와 디코더 네트워크를 사용합니다. 즉, 입력에 대한 벡터 변환을 인코더(encoder)에서 처리하고 모든 벡터를 디코더로 보냅니다. 이렇게 모든 벡터를 전달하는 이유는 시간이 흐를수록 초기 정보를 잃어버리는 기울기 소멸 문제를 해결하기 위해서입니다. 하지만 모든 벡터가 전달되기 때문에 행렬 크기가 굉장히 커지는 단점이 있는데, 이것을 해결하기 위해 소프트맥스 함수를 사용하여 가중합을 구하고 그 값을 디코더에 전달합니다.

가중합만 전달되었더라도 정보를 많이 전달받은 디코더는 부담일 수밖에 없습니다. 따라서 디코더는 은닉 상태에 대해 중점적으로 집중(attention)해서 보아야 할 벡터를 소프트맥스 함수로 점수를 매긴 후 각각을 은닉 상태의 벡터들과 곱합니다. 그리고 이 은닉 상태를 모두 더해서 하나의 값으로 만듭니다. 즉, 어텐션은 모든 벡터 중에서 꼭 살펴보아야 할 벡터들에 집중하겠다는 의미입니다.

▲ 그림 10-9 어텐션

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.