Natural Language Processing - 04 - 2025년03월10일
딥러닝 기반 자연어처리
- Sequence-to-sequence : 입력된 시퀀스(문장)을 다른 시퀀스로 변환하는 모델로, 인코더 RNN과 디코더 RNN로 구성
- Encoder : 입력 시퀀스를 받아들여 고정된 길이의 벡터로 변환함.
- Decoder : 문맥 벡털를 받아들여 출력 시퀀스를 생성
RNN ( Recurrent Neural Networks )
- 장점
- 모든 길이의 시퀀스를 입력으로 처리 가능
- 시간에 따라 가중치를 공유하여, 입력 시퀀스가 길어져도 모델 크기가 증가하지 않음
- 과거 정보를 고려하여 다음 시간의 출력을 계산함
- 단점
- 매번 시간에 따라 출력을 계산하므로, 병렬 처리가 불가능하여 계산 속도가 느림
- 입력 혹은 출력 시퀀스가 길어지면 오래전 정보를 반영하기 어려움(Long-term dependecy)
- 현재 상태에 대한 미래 입력을 고려할 수 없음
- Gradient vanishing / exploding
기존 RNN의 역전파 과정에서 그래디언트가 너무 작아져서(Gradient vanishing) 가중치 업데이트가 잘 안 되거나,
그래디언트가 너무 커져서(Gradient exploding) 가중치 값이 엄청나게 커지는 문제가 발생
LSTM (Long Short-Term Memory)
RNN에서 발생하는 Long-term dependecy problem 완화 방법으로 LSTM은 cell state와 gate라는 메커니즘을 도입
- Forget gate
- Input gate
- Cell state
- Output gate
GRU (Gated Recurrent Unit)
LSTM의 변형으로, 더 간단한 구조를 가짐
Attention
문맥에 따라 집중할 단어를 결정하는 방식으로 문맥을 최대한 고려할 수 있는 핵심 방식
- Encoder의 구성요소
- Self-Attention
- Layer Normalization : 각 layer의 출력을 정규화하는 방법
- Skip Connection
- Feed-Forward Networks : 각 위치에서 독립적으로 동일하게 적용되는 두 개의 선형 변환으로 구성
- 이는 모델이 각 단어를 독립적으로 처리하면서도, 전체 문장의 문맥을 고려할 수 있게 함
- Multi-Head Attention
Input Embeddings : 입력 데이터를 고차원 벡터로 변환하는 과정을 의미
Positional Encoding : 단어의 위치 정보를 포함할 수 있음
- Decoder의 구성요소
- Auto-regressive
- Teacher Forcing
- Masked Self-Attention
- Encoder-Decoder Attention : Decoder가 출력 시퀀스의 각 요소를 생성할 때, 입력 시퀀스의 모든 요소를 고려할 수 있게 함
Causal Attention : 입력된 토큰까지의 정보만 Attention에 반영하고, 미래의 입력은 반영하지 않는 것