RNN (Recurrent Neural Network)
등장 배경
Word2Vec은 단어 수준의 표현은 해결했지만, 문장이나 문서 전체 를 이해하려면 단어의 순서(sequence) 를 처리할 수 있는 모델이 필요했습니다.핵심 원리
RNN은 이전 시간 단계의 출력을 다음 시간 단계의 입력에 연결 하는 순환 구조입니다:| 시간 단계 | 입력 (x) | 은닉 상태 (h) | 출력 (y) |
|---|---|---|---|
| t=1 | ”나는” | h₁ | y₁ |
| t=2 | ”오늘” | h₂ (← h₁ 반영) | y₂ |
| t=3 | ”회사에” | h₃ (← h₂ 반영) | y₃ |
| t=4 | ”간다” | h₄ (← h₃ 반영) | y₄ |
핵심: 각 시간 단계의 은닉 상태 h_t는 이전 은닉 상태 h_{t-1}을 입력으로 받아, 순차적으로 정보를 전달합니다.각 시간 단계에서:
h_{t-1}이 현재 계산에 참여하므로, 이론적으로는 과거의 모든 정보 를 기억할 수 있습니다.
치명적 문제 — 기울기 소실 (Vanishing Gradient)
실제로는 역전파(Backpropagation) 과정에서 기울기가 시간을 거슬러 올라갈수록 기하급수적으로 작아집니다:LSTM (Long Short-Term Memory, Hochreiter & Schmidhuber, 1997)
RNN의 기울기 소실 문제를 해결하기 위해 고안된 아키텍처입니다. 실제로 널리 활용된 것은 2014년 이후입니다.핵심 아이디어 — 게이트 메커니즘
LSTM은 세 개의 게이트 로 정보의 흐름을 정교하게 제어합니다:| 게이트 | 역할 | 비유 |
|---|---|---|
| Forget Gate(망각 게이트) | 이전 정보 중 버릴 것을 결정 | 불필요한 기억을 삭제하는 기능 |
| Input Gate(입력 게이트) | 새로운 정보 중 저장할 것을 결정 | 중요한 새 정보만 기억에 추가 |
| Output Gate(출력 게이트) | 현재 출력에 사용할 정보를 결정 | 상황에 맞는 기억만 꺼내 사용 |
| 경로 | 역할 | 특징 |
|---|---|---|
| Cell State(장기 기억) | 정보가 직통으로 전달되는 고속도로 | Forget Gate가 불필요한 정보를 삭제, Input Gate가 새 정보를 추가 |
| Hidden State(단기 기억/출력) | h_{t-1} → h_t로 전달 | Output Gate가 Cell State에서 현재 출력에 필요한 정보만 추출 |
성공 비유: RNN이 “메모장 한 장”에 모든 것을 적다 보니 앞 내용이 지워지는 것이라면, LSTM은 서류 캐비닛 입니다. 어떤 서류를 보관하고(Input Gate), 어떤 서류를 폐기하고(Forget Gate), 어떤 서류를 꺼낼지(Output Gate)를 판단합니다.
GRU (Gated Recurrent Unit, Cho et al., 2014)
LSTM의 경량화 버전 입니다. 세 개의 게이트를 두 개(Reset, Update) 로 줄여 더 빠른 학습을 가능하게 했습니다.| 비교 | LSTM | GRU |
|---|---|---|
| 게이트 수 | 3개 (Forget, Input, Output) | 2개 (Reset, Update) |
| 파라미터 수 | 더 많음 | ~25% 적음 |
| 학습 속도 | 느림 | 빠름 |
| 성능 | 긴 시퀀스에서 약간 우세 | 짧은 시퀀스에서 동등 또는 우세 |
| 실무 선택 | 복잡한 의존성이 중요한 작업 | 빠른 실험, 리소스 제한 환경 |
CNN 기반 NLP — TextCNN (Yoon Kim, 2014)
RNN/LSTM이 시퀀스 처리의 주류로 자리잡던 시기에, 합성곱 신경망(CNN) 으로도 텍스트를 효과적으로 처리할 수 있다는 연구가 등장합니다. 컴퓨터 비전에서 이미지 패턴을 포착하던 CNN을 NLP에 적용한 것입니다.핵심 아이디어
TextCNN은 다양한 크기의 1D 합성곱 필터 를 텍스트 위로 슬라이딩하여, 로컬 N-gram 패턴 을 포착합니다.RNN vs CNN for NLP
| 비교 항목 | RNN/LSTM | TextCNN |
|---|---|---|
| 처리 방식 | 순차적 (한 토큰씩) | 병렬적(모든 필터 동시 적용) |
| 학습 속도 | 느림 (순차 의존성) | 빠름(GPU 병렬화 용이) |
| 장거리 의존성 | LSTM으로 부분 해결 | 약함— 필터 크기 내의 로컬 패턴만 포착 |
| 강점 태스크 | 번역, 텍스트 생성, 요약 | 텍스트 분류, 감성 분석 |
| 시퀀스 생성 | 가능 (Decoder로 활용) | 부적합 — 순서 정보 약함 |
참고 TextCNN의 의의: RNN만이 텍스트를 처리할 수 있다는 고정관념을 깨고, 분류 태스크에서는 CNN이 더 빠르고 동등한 성능 을 보일 수 있음을 입증했습니다. 다만 CNN은 시퀀스 생성(번역, 요약) 에는 적합하지 않아, RNN이 생성 태스크에서는 주류를 유지했습니다. 이 “병렬 처리가 가능한 모델이 더 효율적”이라는 통찰은 이후 Transformer의 Self-Attention 으로 완성됩니다.
성과와 공통 한계
성과:- 기계 번역, 감성 분석, 음성 인식 등에서 획기적 성능 향상
- Google 번역이 2016년 통계 기반에서 LSTM 기반 신경망 번역으로 전환
- 가변 길이 시퀀스를 자연스럽게 처리
| 한계 | 설명 | 영향 |
|---|---|---|
| 순차 처리 | 토큰을 하나씩 순서대로 처리해야 함 | GPU 병렬 처리 불가 → 학습 속도 느림 |
| 장거리 의존성 | LSTM도 수백 토큰 이상에서는 정보 손실 | 긴 문서 처리에 한계 |
| 고정 차원 은닉 상태 | 아무리 긴 문장도 하나의 고정 크기 벡터에 압축 | 정보 병목 (bottleneck) |