
2014년에 발표한 GRU(Gated Recurrent Unit)에 관한 논문
두 개의 순환신경망(RNN)을 통해서 Encoder와 Decoder의 구조를 제안하였다.
Encoder를 통해서 가변적인 문장 시퀀스를 고정길이의 Vector 차원으로 변환하고
Decoder를 통해서는 반대로 representation을 문장 시퀀스로 변환한다.
학습 시퀀스가 주어졌을 때 타깃 시퀀스의 조건부 확률을 최대화하도록 학습시키면서 통계적 기계 번역(SMT)에서의 성능 향상을 보여주었다. 참고로 2017년에 Transformer가 나오기 전까지 구글 번역와 같은 분야에서 GRU 기반의 RNN 기반 모델들이 주로 사용되었다.
RNN Encoder-Decoder

우선 GRU의 핵심 구조인 인코더 디코더에 대해서 알아보자.
Encoder에서는 입력 문장 시퀀스 x가 들어왔을 때 단어 하나씩와 같이 $x_1, x_2, ... x_t$로 나누어서 표현하며 이를 벡터 공간으로 표현하는 embedding 작업을 거친다. 이후 RNN의 은닉 상태(hidden state)를 업데이트하고 문장의 끝인 EOS(End Of Sequence)를 만나면 은닉 상태가 전체 입력의 요약인 c 벡터가 된다.
Encoder에서 입력을 통해 은닉 상태를 업데이트 하였다면 Decoder에서는 반대로 은닉 상태에서 출력을 생성한다. 은닉 상태$h_t$가 주어졌을 때 다음 기호 $y_t$를 예측한다. 기존 RNN과 다른 점이 있다면 은닉 상태의 식에서:

요약 c 벡터에도 조건부로 존재한다.

위와 같은 조건부 log-likelihood 식을 최대화하는 방향으로 파라미터 $\theta$를 조정한다. 학습 데이터에서 (x,y)로 매칭이 되어있어서 만약 입력 시퀀스에 단어 x가 보인다면 타켓 시퀀스, 번역이라면 번역한 문장이 y로 나올 확률을 최대화하도록 조정한다.
GRU : LSTM을 대체할 새로운 hidden unit
기존에 존재한 RNN 모델인 LSTM(Long Short-Term Memory)보다 단순한 구조이며 더 적은 파라미터로 유사한 성능을 낼 수 있는 GRU라는 새로운 hidden unit을 제시한다.

LSTM은 다음의 3가지 게이트가 존재한다:
- input gate
- forget gate
- output gate
반면 GRU는 update, reset gate 2가지로 사용하여 상대적으로 계산량과 학습시간을 줄인다.
위의 오른쪽 아키텍쳐처럼 이전 상태의 h와 현재 상태 h̃의 관계를 표현한다.
reset gate r을 통해서 이전 상태 h를 어느정도 남길 것인지 정할 수 있다.
update gate z를 통해서 현재 상태 h̃를 얼마나 반영할 것인지를 정한다.
예를 들어 reste gate가 0에 가까워진다면 이전 상태는 정보를 무시한채로 새로운 입력 시퀀스를 바탕으로 업데이트한다.
따라서 이전의 정보가 무관하다고 여겨지면 이를 무시함으로써 더욱 간결하게 표현할 수 있다.
기계 번역과 GRU
구글 번역과 같은 기계 번역에서 인공신경망 번역(NMT)가 등장하기 전까지 수십 년간 표준으로 자리 잡았던 방식은 통계전 기계 번역(SMT)이다. 대규모 말뭉치(Corpus)에서 추출한 통계적 확률 기반으로 번역을 수행한다.
핵심 원리: 확률의 최대화
SMT는 특정 소스 문장(e)이 주어졌을 때, 번역으로 나올 결과물인 타겟 문장(f)이 될 확률 P(f|e)가 가장 높은 문장을 찾는 것을 목표로 한다. 그런데 여기서 베이즈 정리를 이용하여 표현하면 다음과 같이 나타낼 수 있다:

주의 : 자료에 따라 입력이 f로 출력(타겟)이 e로 반대로 표현될 수 있음
여기에 log를 씌어 덧셈 형태로 바꾸어주면

$f_n$의 경우 크게 두 가지로 나누어진다.
1. 번역 모델 (Translation Model)
- 타겟 f가 소스 e로 번역될 확률을 나타냄
- 의미적으로 얼마나 잘 매칭되는지를 봄
2. 언어 모델 (Language Model)
- 타겟 문장 f 그자체가 얼마나 자연스러운지
Z(e)는 정규화 상수로 전체 확률의 합이 1이 되도록 맞추어준다.
RNN Encoder-Decoder에서의 구문 쌍 점수 산정
기존 SMT에서는 구문 테이블(Phrase Table)에 있는 수많은 번역 후보 중 하나를 골라야한다. 여기서 통계적 한계를 보완하기 위해서 RNN이 채점을 할 수 있도록 점수를 매긴다. 이를 통해 소스 구문과 타겟 구문과의 점수를 얻을 수 있고 이를 번역 결정의 근거로 사용한다.
또한 RNN이 학습 시 말뭉치(Corpus)에서 각 구문 쌍의 출현 빈도를 무시한다. 이는 기존의 SMT에서 이미 통계적으로 점수를 매기고 있기 때문에 중복을 피하는 방법이다.
실험 및 결과
영어를 프랑스어로 번역하는 과정을 통해서 성능을 측정하였고 영어 구문을 프랑스어 구문으로 번역하는 쌍의 확률을 학습하도록 모델을 학습하였다. 대조군인 Baseline은 기존 SMT 모델이고 실험군은 나머지 3개의 모델들이다.
-CSLM : Continuous Space Language Models의 약자로 불연속적인 인덱스가 아닌 저차원의 연속적인 벡터 공간으로 투영함
-WP : Word Penalty의 약자로 희소한 단어들에 대해서 패널티를 적용한다.

우선 정량적 분석(Quantitive analysis)에서는 점수의 기준으로 BLEU를 사용하였다. BLEU란 Bilingual Evaluation Understudy의 약자로 기계 번역의 결과와 사람이 직접 번역한 결과가 얼마나 유사한지를 비교하여 성능을 측정한다.
위의 Table 1에서 보이는대로 CSLM과 RNN을 사용한 모델이 가장 좋은 성능을 내는 것을 보연준다.

다음으로 정성적 분석 측면에서 보았을 때 위 그림의 오른쪽 표처럼 이차원 임베딩이 서로 유사한 단어들 끼리 잘 모여져 있는 형태를 보여준다. 예를 들어 China와 Russian이 묶여있는 것과 English와 French가 클러스터링 되어있는 모습은 번역 모델이 의미적 부분을 잘 학습한 것으로 볼 수 있다.

마찬가지로 문법이나 구조적인 형태로도 잘 포착하고 있는 것으로 보여진다.
결론
RNN Encoder-Decoder를 통해서 임의 길이의 시퀀스에서 다른 시퀀스로의 매핑을 학습할 수 있도록 만들었다. 또한 GRU 유닛을 제안하면서 reset과 update 게이트를 통해서 더 단순하게 은닉층을 구현할 수 있게 되었다. 물론 이 모델 역시 AI의 기억력으로 불리는 컨텍스트 윈도우의 측면에서는 부족한 점이 존재하기 때문에 이후에 나오는 트렌스포머에 의해 대체되기는 하였지만 자연어 처리의 발전 과정에서 상당한 역할을 했다고 볼 수 있다.
Reference
Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation: https://arxiv.org/pdf/1406.1078
Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling: https://arxiv.org/pdf/1412.3555