논문: https://arxiv.org/abs/1409.3215
저자: Ilya Sutskever - ilyasu@google.com, Oriol Vinyals - vinyals@google.com, Quoc V. Le - qvl@google.com
인용: Sutskever, I. "Sequence to Sequence Learning with Neural Networks." arXiv preprint arXiv:1409.3215 (2014).
0. 초록 (Abstract)
심층신경망 (Deep Neural Networks, DNNS)은 대규모 라벨 데이터셋이 존재한다면, 여러 테스크에 대해 좋은 성능을 보여주었다. 하지만 문장 번역에 대해서는 그렇지 않다. 저자는 언어 구조에 대한 최소한의 조건으로 문장 간 번역을 수행하는 모델 (Seq2Seq)을 제시하였다. 번역 모델은 인코더와 디코더에 각각 Long Short-Term Memory (LSTM)을 사용하였다. 인코더는 입력 문장을 고정된 차원의 벡터 (context vector)로 변환하고, 디코더는 이를 활용해 번역 문장을 생성한다. Seq2Seq 모델은 영어-프랑스어 데이터셋 * WNT'14 dataset에서 ** BLEU score 36.5를 보여주며 이전 모델인 *** SMT (33.3)보다 성능이 좋았다.
* WMT'14: "Workshop on Machine Translation 2014"에서 제공한 기계 번역 데이터셋
** Bilingual Evaluation Understudy (BLEU): 번역된 문장이 기준 번역(reference translation)과 얼마나 유사한지를 측정하는 정량적 지표
*** Statistical Machine Translation (SMT): 통계적 접근법으로 번역을 수행하는 모델로, 데이터에 기반해 번역 확률을 계산
1. 서론 (Introduction)
심층 신경망 (DNNs)은 기계 학습에서 좋은 모델이며, 시각 객체 인식 등과 같이 여러 분야에서 높은 성과를 기록하였다. 하지만 좋은 성능을 내는 과제들은 입력값과 출력값이 **고정된 차원의 벡터**인 경우이다. 반면 음성 인식이나 기계 번역과 같은 순서가 있는 데이터인 경우 데이터의 길이를 사전에 알 수 없다. 해당 문제를 해결하기 위해 저자는 Long Short-Term Memory (LSTM)을 사용한 기계 번역 모델을 제시한다. 제안 모델은 인코더에 LSTM 1개, 디코더에 LSTM 1개를 사용한다. 인코더는 한 시점에 입력 문장의 한 단어씩 입력으로 받아, **고정된 크기의 표현 벡터 (vector representation)**를 생성한다. 디코더는 순환 신경망을 사용하여 문장의 이전 단어와 이후 단어의 관계와 같은 시간 종속성 (temporal dependency)을 학습한다. 이를 통해 입력 문장에 대한 적절한 번역 문장을 새생성한다. 번역 모델의 구조는 아래 그림1 과 같다.
2. 모델 (The model)
순환 신경망 (RNN)은 전방향 신경망 (Feedforward Neural Network, FNN)을 sequence 데이터에 적합하게 일반화한 모델이다. 입력 데이터 {$x_1, \ldots, x_T$} 가 주어지면 RNN은 출력 데이터 {$y_1, \ldots, y_{T'}$} 을 생산한다. 수식은 아래와 같다.
\begin{align*}
& h_t = \text{sigm}\left(W^{hx} x_t + W^{hh} h_{t-1}\right),
& y_t = W^{yh} h_t.
\end{align*}
RNN은 sequence 입력 데이터를 sequence 출력 데이터로 변환하기 좋은 모델이나, 장기 의존성 (long term dependency)을 해결하기 어렵다. 이에 LSTM이 좋은 대안이 될 수 있다. LSTM의 목적은 입력 문장에 대한 적절한 출력 문장을 생성하도록 조건부 확률 (conditional probability)를 추정하는 것이다. 수식은 아래와 같다.
\begin{align*}
& p(y_1, \ldots, y_{T'} \mid x_1, \ldots, x_T) = \prod_{t=1}^{T'} p(y_t \mid v, y_1, \ldots, y_{t-1}),
\end{align*}
여기서 입력 문장은 {$x_1, \ldots, x_T$} 이며 번역 (출력) 문장은 {$y_1, \ldots, y_{T'}$} 이다. 그리고 $T'$은 $T$에 따라 결정된다. $v$는 입력 문장 {$x_1, \ldots, x_T$} 을 인코딩한 표현 벡터이다. 추가로 각 문장의 끝은 특수기호 End-Of-Sentence(EOS)를 사용한다.
'[논문 리뷰] > 자연어처리' 카테고리의 다른 글
[논문 리뷰] LSTM: Long Short-Term Memory (0) | 2024.12.03 |
---|---|
[논문 리뷰] Attention: Neural Machine Translation by Jointly Learning to Align and Translate (0) | 2024.11.29 |
[논문 리뷰] LORA: Low-Rank Adaptation of Large Language Models (1) | 2024.11.26 |