Encoder (Transformer) (KO)
인코더 (영어: Encoder, 코더) — 머신 러닝과 딥 러닝에서 신경망의 구성 요소로, 주요 역할은 입력 데이터 시퀀스(예: 텍스트 또는 이미지)를 풍부한 수치 표현으로 변환하는 것입니다. 이 표현은 일반적으로 은닉 상태, 컨텍스트 벡터 또는 임베딩이라고 불립니다. 이 표현은 입력 데이터의 핵심 특성과 의미론적 정보를 추가 처리에 적합한 형태로 담아냅니다.
더 넓은 의미에서, 정보 이론에서 인코더는 정보를 한 형식에서 다른 형식으로 변환하는 장치 또는 알고리즘으로, 종종 압축이나 전송을 목적으로 합니다.
개념과 목적
신경망에서 인코더의 주요 목적은 입력 데이터에서 유용한 특징을 추출하고 이를 고정 길이의 밀집 벡터로 "인코딩"하는 것입니다. 이 과정은 비선형 차원 축소의 한 형태로 볼 수 있으며, 고차원의 희소한 입력 데이터(예: one-hot 벡터로 표현된 텍스트)가 저차원이지만 정보가 풍부한 벡터 공간(잠재 공간)으로 변환됩니다.
이렇게 인코딩된 벡터는 이후 다음과 같이 활용될 수 있습니다:
- 디코더에 의해 새로운 시퀀스 생성(예: 기계 번역)
- 분류기에 의해 분석 작업 수행(예: 텍스트 감성 판별)
- 전체 입력 컨텍스트의 이해를 필요로 하는 작업
다양한 아키텍처에서의 인코더
오토인코더에서의 인코더
고전적인 예시 중 하나는 오토인코더 아키텍처입니다. 이는 두 부분으로 구성됩니다:
- 인코더: 입력 데이터를 더 낮은 차원의 은닉 표현(잠재 코드)으로 압축합니다.
- 디코더: 이 압축된 표현에서 원본 데이터를 복원하려고 시도합니다.
이러한 네트워크를 복원 오류를 최소화하도록 훈련함으로써, 인코더는 데이터에서 가장 중요한 특징을 추출하는 방법을 학습합니다.
순환 신경망(RNN/LSTM)에서의 인코더
Transformer 아키텍처가 등장하기 전, 시퀀스 처리(seq2seq) 작업에서 인코더는 순환 신경망(RNN) 또는 그 개선된 변형인 LSTM을 기반으로 구축되었습니다.
- 작동 원리: RNN 인코더는 입력 시퀀스를 토큰 단위로 처리합니다. 각 단계에서 현재 토큰과 이전 상태의 정보를 통합하여 은닉 상태를 업데이트합니다. 전체 시퀀스를 처리한 후 얻어진 최종 은닉 상태는 전체 입력 시퀀스의 의미를 인코딩하는 벡터로 간주됩니다. 이 벡터는 종종 컨텍스트 벡터 또는 "사고 벡터"(thought vector)라고 불립니다.
Transformer 아키텍처에서의 인코더
자연어 처리의 혁명은 Transformer 아키텍처 기반 인코더의 등장과 관련이 있습니다. RNN과 달리, 이 인코더는 시퀀스의 모든 토큰을 병렬로 처리합니다.
Transformer 인코더는 동일한 레이어의 스택()으로 구성됩니다. 각 레이어에는 두 가지 주요 서브레이어가 있습니다:
- 다중 헤드 셀프 어텐션(Multi-Head Self-Attention): 이 메커니즘은 입력 시퀀스의 각 토큰이 다른 모든 토큰에 "주의를 기울이고" 자신의 맥락적 표현을 형성하기 위해 그 중요도를 가중할 수 있게 합니다. 이를 통해 모델은 위치에 관계없이 단어 간의 복잡한 의존 관계를 포착할 수 있습니다.
- 완전 연결 신경망(Feed-Forward Network): 각 토큰의 표현에 개별적으로 적용되어 추가적인 비선형 변환을 수행합니다.
Transformer 인코더와 RNN 인코더의 핵심적인 차이점은, Transformer 인코더가 하나의 컨텍스트 벡터가 아니라 컨텍스트화된 벡터의 시퀀스를 출력한다는 것입니다 — 각 입력 토큰마다 하나씩. 각 벡터는 전체 시퀀스의 맥락 속에서 해당 토큰에 대한 정보를 담고 있습니다.
인코더 기반 모델의 유형
인코더-디코더 모델
이것은 기계 번역이나 요약과 같은 시퀀스 대 시퀀스(seq2seq) 변환 작업을 위한 고전적인 아키텍처입니다.
- 작동 원리: 인코더는 전체 입력 시퀀스(예: 원본 언어의 문장)를 처리합니다. 그 출력 표현은 디코더에 전달되며, 디코더는 이를 활용하여 자기회귀적으로 출력 시퀀스(목표 언어의 문장)를 생성합니다. 디코더는 특수한 교차 어텐션(cross-attention) 메커니즘을 통해 인코더의 출력을 "참조"합니다.
- 예시: 원본 Transformer, T5, BART.
인코더 전용 모델(Encoder-Only)
이러한 모델은 Transformer 인코더 스택만을 사용합니다.
- 작동 원리: 전체 입력 텍스트의 맥락에 대한 깊은 이해를 필요로 하는 작업을 위해 설계되었습니다. 셀프 어텐션 메커니즘의 양방향적 특성 덕분에 각 토큰에 대한 풍부한 맥락적 표현을 생성합니다.
- 적용: 다음과 같은 언어 분석 및 이해(NLU) 작업에 이상적입니다:
- 텍스트 분류(예: 감성 분석)
- 개체명 인식(NER)
- 질의응답(Question Answering), 답변이 텍스트의 일부인 경우
- 예시: BERT 및 그 파생 모델(RoBERTa, ALBERT)
디코더와의 관계
인코더-디코더 아키텍처에서 인코더와 디코더는 상호 보완적인 역할을 수행합니다:
- 인코더는 입력 시퀀스의 이해를 담당합니다.
- 디코더는 출력 시퀀스의 생성을 담당합니다.
이 둘을 잇는 핵심적인 연결 고리는 디코더 내부의 교차 어텐션(cross-attention) 메커니즘입니다. 생성의 각 단계에서 디코더는 이미 생성된 출력 시퀀스 부분을 기반으로 쿼리(Query)를 형성하고, 이를 사용하여 인코더의 출력 표현(키와 값 — Key와 Value로 작용)에 "주의를 기울입니다". 이를 통해 디코더는 다음 토큰 생성을 위해 입력 시퀀스에서 가장 관련성 높은 부분에 집중할 수 있습니다.
참고 문헌
- Hinton, G. E.; Salakhutdinov, R. R. (2006). Reducing the Dimensionality of Data with Neural Networks. Science. DOI:10.1126/science.1127647.
- Cho, K. et al. (2014). Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. arXiv:1406.1078.
- Sutskever, I.; Vinyals, O.; Le, Q. V. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
- Bahdanau, D.; Cho, K.; Bengio, Y. (2015). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
- Kingma, D. P.; Welling, M. (2014). Auto-Encoding Variational Bayes. arXiv:1312.6114.
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Dai, Z. et al. (2019). Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. arXiv:1901.02860.
- Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
- Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Dosovitskiy, A. et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.
같이 보기
- BERT