AI

Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

nkm 2024. 11. 10. 22:19
728x90
반응형

Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder-decoder for statistical machine translation.arXiv preprint arXiv:1406.1078.

이 논문은 Encoder, Decoder라고 불리는 두개의 RNN 구조를 사용한 네트워크와 새로운 형태의 hidden unit GRU를 제안한다.

기존의 RNN 구조는 간단하게 설명하면 Hidden state를 통해 Input Output이 나오는 구조이다. 이번 논문에서는 새로운 형태의 Hidden State를 제안하고 있으며 위 그림은 새로운 Hidden State의 구조이다.

그림에서는 두 형태의 h h~이 나오는데, h Hidden state, h~를 현재의 Hidden state을 의미한다. new gate r Reset Gate로 이전의 Hidden state h를 얼마나 유지하고 반영할 것인지를 정하며 z Update Gate로 현재의 Hiddedn state h~을 얼마나 반영할 것인지를 정한다. r(Reset Gate)가 열려있을 수록, 0에 가까울 수록 hidden state는 이전의 hidden state의 정보를 무시하고 새로운 input으로 업데이트 한다.

 

r(reset gate), z(update)에 대한 식은 위 그림과 같다. 간단히 설명하면 ResetGate Input(x) weight(Wr)를 곱한 값과 이전 hidden state(h<t-1> weight(Ur)를 곱한 값을 더해 활성화 함수 sigmoid function에 넣어 구한다.

 


위 식은 왼쪽 차례대로 update gate, new hidden state, h~를 구하는 식이며 위와같은 방식으로 구하게 된다.

 

이 그림은 이 논문의 핵심인 Encoder-Decoder 구조를 도식화한 그림이다. 위에 설명한 새로운 Hidden state GRU(Gated Recurrent Unit)을 빗대어 설명하려 한다. 먼저 Encoder에서는 input sequence x의 임베딩 벡터를 넣어 Hidden state update한다. i hate exam”이라는 예시의 문장을 나누어 x1 = i x2 = hate, xT = exam이 들어가고 hidden state를 업데이트 하며 최종적 합쳐진 c라는 벡터가 만들어진다. Decoder Context Vector(c) 추가로 입력받는 GRU 아키텍처를 활용하여 Target 문장을 생성하는 역할을 한다. Context Vector 활용하여 생성하기 때문에이전 시점의 출력 결과와 현재 시점의 Context Vector 입력으로 사용한다.

GRU Encoder Decoder를 통해 Sequence-to-Sequence 아키텍처를 제시했다. 가변적인 길이의 Source 문장의 문법적, 의미적 특징을 고정된 크기의 벡터로 압축할 수 있는 아키텍처이다. 위 설명한 Encoder Decoder로 구성되어 있으며 Encoder는 문장을 압축, Decoder는 문장을 생성하는 역할이다. Decoder의 문장 생성방법은 Hidden Vector Linear Layer를 추가하여 Vocabulary개수만큼 Vector를 생성하여 최종 Vector Softmax 함수를 취하면 특정 단어가 나올 확률을 의미하는 Vector를 생성할 수 있다. 앞선 말한 Encoder의 방법과 현재 설명한 Decoder의 방식으로 Sequence to Sequence 아키텍처는 Target문장을 Label로 활용하여 Decoder로부터 나온 확률을 기반으로 학습한다. 이 방식은 Gradient Decent 방식으로 학습한다. 이 방식은 Decoder Encoder 이용한다. Encoder의 소스 문장을 넣고, 순차적으로 Decoder를 이용하여 타켓 문장의 단어들이 생성 될 확률을 구하여 번역한다.

 

Encoder를 통해 압축된 Vector를 이용하여 의미적 문법적으로 유사한 구문들이 뭉쳐져 있는 것을 확인하는 시각화 자료이다.

즉 이 논문에서는 GRU아키텍처를 제공하여 Input, Output, Hidden state LSTM보다 간단하게 Update gate, Reset Gate 두 노드로 계산량을 줄였다는 점이 핵심이다. 또한 Seq-to-Seq 아키텍처의 Encoder, Decoder로 구성하여 가변적인 길이를 압축 생성할 수 있다는 점에서 기본에 번역기계와는 더 정확하고 큰 데이터셋에 적응할 수 있다는 점이 핵심이었다.

이 논문은 번역기 또는 다양한 자연어 처리에서 널리 사용되는 기계 번역의 핵심기술의 초기라고 볼 수 있다. 그래서 굉장히 다양한 부분에서 더욱 발전하여 사용하고 있다. 자연어 질의 답변 생성, 대화시스템, 문서요약 등의 분야에서 이 모델을 활용하여 높은 성능을 보이고 있다.

728x90
반응형