RNN은 왜 sequence를 기억하는가
N-gram의 sparsity 한계부터 RNN의 parameter sharing과 hidden state 병목, teacher forcing의 exposure bias까지 — sequence 학습의 설계 결정을 관통하는 하나의 논리를 추적한다.
- 01 RNN은 왜 sequence를 기억하는가
- 02 RNN 학습은 왜 이렇게 설계됐는가
- 03 RNN Gradient 소멸은 왜 피할 수 없었나
- 04 LSTM은 어떻게 vanishing gradient를 피하는가
- 05 RNN 변형들이 공유하는 하나의 질문
- 06 Attention은 어떻게 Seq2Seq의 병목을 뚫었는가
- 07 RNN이 Transformer에 밀린 이유, 그리고 Mamba가 돌아온 이유
Sequence 학습의 역사는 하나의 질문을 중심으로 전개된다 — “얼마나 먼 과거를 봐야 하는가”. N-gram은 창문 크기를 고정하고, Neural LM은 embedding으로 sparsity를 완화하고, RNN은 창문을 아예 없앤다. 각 선택에는 구체적인 수학적 이유가 있고, 각 해결책은 다음 한계를 만들어낸다. 이 연쇄가 어디서 시작해 어디로 향하는가?
시작: N-gram의 두 가지 저주
N-gram LM의 기본 가정은 단순하다. 직전 개의 단어만 보면 다음 단어를 예측할 수 있다.
Maximum likelihood estimate은 . 문제는 두 곳에서 동시에 터진다.
첫째, sparsity. Vocab 이면 가능한 trigram 수는 . 실제로 corpus에서 관찰되는 건 수준 — 0.001%다. 이면 이 되고 전체 sentence의 log-likelihood는 로 내려간다.
둘째, 표현력 한계. “The cat which Mary saw yesterday at the park was hungry”에서 “cat”과 “was”의 수 일치는 9단어 거리에 있다. Trigram은 “park was hungry”만 본다. 이 의존성은 을 아무리 늘려도 표현 비용이 으로 폭증하므로 현실적으로 해결되지 않는다.
Kneser-Ney smoothing은 단순 count 대신 continuation count — 단어가 등장한 distinct context의 수 — 를 backoff 확률로 쓴다. “Francisco”는 count는 높지만 거의 “San” 뒤에만 나타난다. Continuation count는 그 협소함을 인코딩한다. 이 통찰은 word embedding의 distributional hypothesis와 같은 뿌리다.
Bengio 2003: embedding이 sparsity를 우회하는 방식
Bengio 2003의 Neural Probabilistic Language Model은 sparsity를 smoothing이 아니라 표현 공간의 변환으로 해결한다.
는 embedding 행렬. One-hot의 차원 직교 공간 대신, 각 단어가 의 dense vector로 표현된다. 핵심은 unseen n-gram에 대한 일반화다.
N-gram의 parameter 수는 . NLM의 parameter 수는 — vocab size와 context length가 분리된다.
NLM은 개의 가능한 context마다 별도 분포를 저장하지 않는다. Embedding의 합성 함수 가 분포를 근사한다. 학습된 함수는 unseen n-gram에도 embedding 유사도를 통해 일반화된다. , , , 기준: N-gram entries vs NLM parameters.
그러나 NLM도 창문을 고정한다. 면 4개 이전까지만 본다. “cat … was” 같은 장거리 의존성은 여전히 모델링 불가능하다.
RNN: 창문을 없애는 대신 state를 만든다
RNN의 recurrent 구조는 fixed window를 state machine으로 대체한다.
두 가지 이점이 동시에 생긴다.
첫째, parameter sharing. 와 는 모든 time step에서 공유된다. Parameter 수는 — sequence length 와 무관하다. 길이 50으로 학습한 모델을 길이 500에 그대로 적용할 수 있다.
둘째, 이론적 무한 lookback. 는 전체의 압축이다. Elman (1990)의 hidden state connection이 Jordan (1986)의 output connection보다 표준이 된 이유는 hidden dimension이 output dimension에 제약받지 않아 더 풍부한 표현이 가능하기 때문이다.
그런데 “이론적 무한”에는 대가가 있다.
가 의 정보를 lossless하게 보존하려면 가 필요하다 — 시간에 따라 선형 증가.
Distinct sequence 수 를 구별하려면 bits가 필요하다. 의 finite precision에서 표현 가능한 sequence 수는 에 비례한다. 따라서 lossless 보존에 .
고정된 는 결국 lossy compression이다. 학습이 task에 중요한 정보를 우선 보존하도록 유도할 뿐이다. 그리고 이 한계보다 실용적으로 더 치명적인 문제가 있다 — vanishing gradient. 이것이 LSTM의 동기가 되지만 그건 다음 이야기다.
손실 함수의 설계 결정들
sequence 학습의 task별 설계 결정을 관통하는 하나의 수식이 있다.
은 mask — padding 위치를 제외한다. 분모가 실제 token 수이므로 짧은 sequence의 loss가 padding으로 희석되는 편향이 사라진다.
Many-to-one (감정 분석)은 하나만 분류기에 넣는다. Many-to-many synced (POS tagging)는 매 step 를 분류한다. Seq2seq (번역)는 decoder의 autoregressive factorization을 따른다.
이 factorization은 chain rule에서 직접 나온다 — 임의의 joint distribution에 적용되는 항등식이다. Autoregressive 모델은 이것을 학습하고, non-autoregressive 모델은 여기에 conditional independence 가정을 추가로 도입한다.
Training에서는 ground truth prefix 를 쓰고, inference에서는 모델 예측 를 쓴다. 오류가 누적되면 prefix가 점점 training distribution에서 멀어지고, 모델이 본 적 없는 영역에서 generalization이 무너진다. Scheduled sampling (Bengio 2015)은 학습 중 ground truth 비율을 1에서 0으로 점진적으로 낮춰 이를 완화한다.
트레이드오프
이 장을 통틀어 나타나는 trade-off는 표현력 vs 학습성이다.
RNN의 universality — Siegelmann & Sontag (1991)의 Turing-completeness — 는 “표현 가능성”의 상한이지 “학습 가능성”의 보장이 아니다. Vanishing gradient가 long-range dependency의 학습을 차단하고, fixed precision이 information bottleneck을 실질적으로 만든다. MLP의 universal approximation theorem, Transformer의 universality도 같은 구조다: 표현력은 upper bound, 학습성은 별개의 문제다.
정리
- N-gram의 sparsity는 Kneser-Ney smoothing으로 완화되지만 표현력 한계 ( 비용)는 해결되지 않는다.
- Bengio 2003 NLM은 embedding으로 parameter 수를 로 줄이고 unseen n-gram 일반화를 얻지만 fixed window는 유지된다.
- RNN은 parameter sharing으로 가변 길이를 처리하고 이론상 무한 lookback을 갖지만, hidden state는 lossy compression이고 vanishing gradient가 실질적 학습 범위를 제한한다.
- Autoregressive factorization 는 chain rule의 항등식이다. Teacher forcing은 이를 효율적으로 학습하지만 inference와의 distribution mismatch — exposure bias — 를 만든다.
다음 글에서는 BPTT (Backpropagation Through Time)가 어떻게 RNN의 gradient를 계산하는지, 그리고 그 계산 그래프에서 vanishing이 어떻게 발생하는지 수학적으로 추적한다.