Attention Mechanism: Overview
- "The cat ate the mouse" 라는 영어 문장을 프랑스어로 번역하는 경우 인코더-디코더를 사용
- 인코더-디코더는 한 번에 한 단어를 취해 각 단계에서 그것을 번역한다
- 그러나 소스 언어의 단어가 대상 언어의 단어와 일치하지 않는 경우가 있다.
- "Black cat ate the mouse." 라는 영어 문장을 프랑스어로 번역하는 경우 영어의 첫 단어는 "Black" 이지만 번역된 프랑스어의 첫 단어는 "Chat"으로 고양이라는 뜻의 프랑스 단어이다.
- 그렇다면 어떻게 모델이 검은색이라는 단어 대신 고양이라는 단어에 더 집중하도록 훈련시킬 수 있는가?
- 어텐션 메커니즘(Attention Mechanism)이라고 불리는 것을 인코더 디코더에 추가할 수 있다.
- 어텐션 메커니즘은 신경망이 입력 순서의 특정 부분에 집중하도록 하는 기술이다.
- 이것은 가장 중요한 부분이 가장 높은 가중치를 받는 입력 시퀀스의 다른 부분에 가중치를 할당함으로써 수행된다.
- 위는 전통적인 RNN(Recurrent Neural Network) 기반 인코더 디코더의 모습이다.
- 모델은 한 번에 하나의 단어를 취하고 히든 상태(Hidden State)를 업데이트하여 다음 단계로 전달한다.
- 인코더의 모든 단계가 끝나면 최종 히든 상태만 디코더로 전달되며, 디코더는 처리를 위해 최종 히든 상태와 함께 소스언어를 대상 언어로 번역한다.
- 어텐션 모델(Attention Model)은 두 가지 점에서 위에서 설명한 전통적인 시퀀스 to 시퀀스 모델과 다르다.
- 인코더는 훨씬 더 많은 데이터를 디코더로 전달한다.
- 어텐션 디코더가 출력결과를 만들기 전에 추가적인 단계를 수행한다.
- 인코더는 최종 히든 상태만 디코더에 넘기는 대신 인코더의 각 단계에서 생성된 모든 히든 상태를 디코더에 전달한다.
- 디코더는 모든 히든 상태 정보를 사용해 문장을 번역한다.
- 수신한 히든 상태들의 세트를 살펴본다. 각각의 인코더 히든 상태는 입력 문장 내의 특정 단어와 연관된다.
- 각각의 히든 상태에 점수를 준다.
- 각각의 히든 상태에 그것의 소프트-맥스 점수를 곱한다. 따라서 가장 높은 점수를 가진 히든 상태들을 증폭시키고 낮은 점수를 가진 히든 상태들을 축소시킨다.
- a: 각 단계에서의 어텐션 비율
- H: 각 단계에서의 인코더 RNN의 히든 상태
- B: H의 아레에 붙은(H₂의 2) B는 각 단계에서의 디코더 RNN의 히든 상태
- 어텐션 메카니즘을 사용하면 "Black cat" 번역의 반전 "Chat noir"가 어텐션 다이어그램에 명확하게 표시된다.
- "ate" 는 두 단어 "a mange"로 번역되었다.
- 우리는 어텐션 네트워크가 두 단계 동안 "ate" 라는 단어에 머무른 것을 알 수 있다.
- 어텐션 단계 동안 우리는 인코더 히든 상태와 H₄ 벡터를 사용하여 컨텍스트 벡터 a₄를 계산한다.
- 그리고 나서 H₄와 a₄를 연결한다.
- 이 연결된 벡터는 피드포워드(feedforward) 신경망을 통해 전달된다.
- 다음 작업을 예측하기 위해 모델과 공동으로 하나의 훈련을 수행한다.
- 피드포워드 신경망의 출력은 이 시간 단계의 출력 단어를 나타낸다.
- 이 프로세스는 마지막 문장 토큰이 디코더에 의해 생성될 때까지 계속된다.
- 이것이 전통적인 인코더 디코더 아키텍처의 성능을 향상시키기 위해 어텐션 메커니즘을 사용할 수 있는 방법이다.