[Lecture6-Notes] Attention Mechanism

[Lecture6-Notes] Attention Mechanism

Motivation

어텐션 메커니즘의 모티브는,
.

  • 첫째는 우리가 문장을 읽을 때 모든 단어를 찬찬히 읽지 않는다는 점이다. 문장 중에서도 중요한 단어들을 좀 더 강한 임팩트를 가지고 이해한다.
  • 둘째는 (입력 문장이 매우 긴 경우에) 번역된 문장의 앞쪽 몇 단어들은 입력 문장에서도 앞 부분에 해당하는 단어들이 더 중요하게 사용될 것이고, 마찬가지로 뒤쪽 몇 단어들은 입력 문장의 뒷 부분에 해당하는 단어를 중요하게 볼 것이라는 점이다.

.
사람이 어떤 문장을 번역할 때 위 두 가지는 머릿속에서 자연스럽게 진행되는 일들인데 이를 어떻게 네트워크에 녹여낼까를 고민한 결과로 어텐션 메커니즘이 등장했다고 볼 수 있다. (앞서 본 인코더 디코더에서는 이러한 두 가지 현상을 전혀 고민하지 않고 모든 input을 때려넣어서 context vector C를 1개 만들었더랬다..)

여기서는 Bahdanau el al.이 “Neural Machine Translation by Jointly Learning to Align and Translate”에서 제시한 방법을 간략하게 살펴보려고 한다.

기존 stacked LSTM의 단점이었던, 긴 input문장에 대해서는 번역의 결과가 좋지 않았던 점이 개선되어가는 과정이 담겨있다.

Bahdanau et al. NMT model

seq2seq모델은 입력 문장을 인코딩하는 인코더와 번역된 출력 문장을 내는 디코더로 이루어져 있음을 지난 포스팅에서 살펴보았다.

■ Encoder
인코더는 특별히 바꿀 부분은 없다. 을 입력 문장을 나타내는 hidden vector라고 하자. 이 벡터들은 지난 포스팅의 용어를 사용하자면, 양방향 LSTM으로부터 나온 context vector이지만 여기서는 context vector c를 새로 정의할 예정이므로 그냥 hidden vector로 부른다.
.
.

Alt text
.
.
■ Decoder
디코더 부분에서 로직이 달라진다.
우선 디코더의 hidden state인 는 다음과 같은 recursive form을 통해서 계산되는데,

여기서 은 이전 단계의 디코더의 hidden state을 의미하고, 은 이전 단계에서 계산되어 출력된 단어, 그리고 는 원래 문장 중에서 time step = i와 관련있는 새로 정의될 context vector를 의미한다.
context vector을 계산하는 과정은 인코더에서 인코딩 된 hidden state 중 지금 진행되는 단어와 밀접하게 연관된 성분을 추려내기 위한 과정으로 아래와 같은 계산에 따라 정의된다.
수식은 어려워보이지만 예를 들어 a 함수는 의 dot product같은 것이 될 수 있다. 또는 아래와 같은 것들.
.
.

Alt text

아래 그림은 이 계산으로 첫번째 이 3으로 계산되었음을 나타낸다.
.
.

Alt text
.
.
쭉쭉 계산을 이어나간 후, scale이 중구 난방인 이 벡터 에 대해서,
.
.

Alt text
.
.
softmax 계산을 통해 normalize한다.

Alt text
.
.

Alt text
.
.
이제 hidden state의 scale 된 가중치가 완성되었으므로 이 가중치를 이용하여 i시점의 context 는 아래와 같이 정의한다.

Alt text

Connection with translation alignment

어텐션에 기반한 모델은 이와 같이 입력 문장의 단어에 서로 다른 중요도를 부여해서 현재의 스텝에 가장 적절한 입력 단어의 가중치를 높이는 방법을 사용하는데, 이는 전통적인 기계 번역에서의 “alignment” 개념과 같다. alignment는 다음 그림으로 쉽게 이해할 수 있는데 이를 alignment table이라고 한다.
.
.

Alt text
.
.
어텐션 기반의 모델을 이용하면 attension score을 이용하여 이러한 alignment table을 그려볼 수 있고, 모델이 제대로 attention 하고 있는가를 살펴볼 수도 있다.

Performance on long sentences

기존 모델의 단점을 극복하고 어텐션 기반 모델은 긴 문장에 대해서도 이러한 어텐션 기법을 통해 좀 더 효율적으로 번역할 수 있는 능력이 있음이 밝혀졌다. 입력 시퀀스의 길이가 길어져도 모델은 정보를 잃어버리지 않으면서도, 정확하게 번역이 가능하다.
어텐션 개념의 도입은 직관에 의존한 것이었지만 실제로 이러한 도입이 큰 효과를 거뒀다는 점에서 신기방기하다. 아이디어가 중요한 자연어 처리의 세계 ㅎㅎㅎ.

Other Models

Huong et al. NMT model

.
여기에서는 어텐션 메커니즘의 두 가지 다른 버전에 대해서 살펴볼 것이다. 어텐션 메커니즘을 얼마나 다양하게 사용 가능한지를 알아볼 수 있다.

■ Global attention vs Local attention

이름에서 알 수 있다시피, global attention은 인코더의 전체 hidden state에 대해서 가중치를 계산하고, local attention의 경우 윈도우를 이용하여 대략적으로 입력 문장의 단어를 추려서 계산한다. local attention을 사용하는 경우, 계산에 들어가는 cost는 입력 문장의 길이가 길더라도 일정하게 유지되며, cost가 문장의 길이와 비례하여 explode하지 않는다는 장점이 있다.

아래 그림을 보면 더 자세히 이해 된다.
.
.

Alt text
.
.

Google’s new NMT

인터넷에 구글 번역기라고 치니까 대단한게 나온다;; 와…

이른바 “zero-shot” 번역이라는 건데, 이 번역기는 multi-lingual 모델을 사용함으로서 번역 성능을 크게 향상시켰다. 심지어 두 언어 간의 training데이터 없이도 번역을 해준다;; 와ㅋㅋㅋ

그러니까 예를 들면, 한국어-영어 그리고 일본어-영어 사이의 번역 example만 있으면 일본어-한국어 번역이 튀어나오는 식이다. 진짜 성경에 나오는 그 사람들끼리 언어 장벽없이 말할 수 있는 그런게 떠오른다.

이 강력한 번역기는 디코딩 과정이 어떤 한 언어에 특화되는 것이 아니라는 것을 의미한다. 모델은 문장이 실제로 어떤 언어로 표현되어 있는가와는 무관하게 네트 워크안에 본질적인 문장의 표현을 저장할 수 있다는 것이다.
.
.

Alt text
.
.
과거의 번역 모델은 모든 두 쌍의 서로 다른 언어에 대해 각각의 번역 모델을 가졌으며, 이를 학습시키기 위한 데이터와 소요되는 계산 시간이 많이 들어 비용이 컸지만, 구글에서 개발한 시스템은 단일 시스템이며 어떠한 두 언어라도 번역이 가능하다.
이 모델은 input으로 단어 시퀀스와 함께 어떤 문장으로 번역할 것인지에 대한 토큰을 추가로 가질 것을 요구한다. 예를 들어 이런식으로.
.
.

Alt text
.
.

More advanced papers using attension

.
나중에 추가로 공부할 목록들 캡쳐만 해두고 일단 넘어간다.ㅋㅋ..