인코더-디코더(Encoder-Decoder)

•
2026년 11월 15일 발행•2026년 11월 15일 수정
요약

입력 시퀀스를 인코더로 표현한 뒤 디코더가 그 표현을 바탕으로 출력 시퀀스를 생성하는 신경망 구조

중급
순환 신경망과 어텐션 메커니즘, 트랜스포머 구조에 대한 이해가 필요하다.

#개념

인코더-디코더(Encoder-Decoder)는 입력 시퀀스를 인코더가 내부 표현으로 변환하고, 디코더가 그 표현을 바탕으로 출력 시퀀스를 생성하는 신경망 구조이다. 입력과 출력의 길이가 서로 다른 시퀀스 변환 문제를 하나의 모델로 처리할 수 있어 시퀀스-투-시퀀스(Sequence-to-Sequence, Seq2Seq) 모델의 기본 틀이 되었으며, 기계 번역·요약·음성 인식 등에 널리 쓰인다.
인코더-디코더는 입력 $x = (x_1, \dots, x_S)$가 주어졌을 때 출력 $y = (y_1, \dots, y_T)$의 조건부 확률을 $P(y \mid x) = \prod_{t=1}^{T} P(y_t \mid y_1, \dots, y_{t-1}, x)$로 분해해 모델링한다. 디코더는 이미 생성한 토큰과 인코더가 만든 입력 표현을 함께 보고 다음 토큰의 확률 분포를 계산하며, 문장 종료 토큰이 나올 때까지 이 과정을 반복한다.
구조는 역할이 분명히 나뉜 세 부분으로 이해할 수 있다. 인코더는 입력을 이해하는 데, 디코더는 출력을 생성하는 데 집중하며, 두 부분을 잇는 문맥 표현의 형태가 모델의 성능과 한계를 크게 좌우한다. 각 구성 요소는 다음과 같다.
인코더-디코더의 구성 요소
  • 인코더(Encoder): 입력 시퀀스 전체를 읽고 각 위치의 은닉 표현 또는 하나의 요약 벡터를 만든다. 입력 전체를 한 번에 볼 수 있으므로 양방향 문맥을 활용할 수 있다.
  • 문맥 표현(Context Representation): 인코더의 출력으로, 디코더가 입력 정보를 참조하는 통로이다. 초기 모델에서는 고정 길이 벡터였고, 어텐션 이후에는 위치별 표현의 집합이 되었다.
  • 디코더(Decoder): 문맥 표현과 이전에 생성한 토큰을 입력받아 다음 토큰을 하나씩 생성하는 자기 회귀 모델이다.
신경망 기반 인코더-디코더는 2014년에 본격적으로 등장했다. Cho 등(2014)은 두 개의 순환 신경망(Recurrent Neural Network, RNN)으로 구성된 RNN 인코더-디코더를 제안했다. 하나의 RNN이 입력 시퀀스를 고정 길이 벡터로 인코딩하고, 다른 RNN이 이를 출력 시퀀스로 디코딩하며, 두 네트워크를 함께 학습해 목표 시퀀스의 조건부 확률을 최대화한다. 이 모델의 구문 쌍 점수를 통계적 기계 번역 시스템의 특징으로 추가해 번역 품질을 높였다.
Sutskever 등(2014)은 다층 LSTM(Long Short-Term Memory)으로 인코더와 디코더를 구성한 종단 간 시퀀스 학습 방법을 제시했다. WMT'14 영어-프랑스어 번역에서 BLEU 34.8을 기록해 구문 기반 통계 번역 시스템의 33.3을 넘어섰다. 또한 원문 문장의 단어 순서를 뒤집어 입력하면 원문과 번역문 사이에 짧은 거리의 의존 관계가 많이 생겨 최적화가 쉬워지고 성능이 크게 오른다는 점을 보고했다.
초기 구조의 가장 큰 약점은 입력 문장 전체를 인코더의 마지막 은닉 상태 하나, 즉 고정 길이 문맥 벡터에 압축해야 한다는 점이었다. 입력이 길어질수록 벡터 하나에 담아야 할 정보가 늘어나 앞부분 정보가 손실되기 쉽고, 긴 문장에서 번역 품질이 급격히 떨어지는 병목이 생겼다.
Bahdanau 등(ICLR 2015)은 이 병목을 해결하기 위해 어텐션 메커니즘(Attention Mechanism)을 도입했다. 디코더가 출력 토큰을 하나 생성할 때마다 인코더의 모든 위치별 표현에 가중치를 부여하고, 그 가중합을 해당 시점의 문맥 벡터로 사용한다. 입력과 출력 사이의 정렬을 학습과 함께 얻게 되어 긴 문장에서도 번역 품질이 유지되었으며, 이 아이디어는 이후 트랜스포머의 바탕이 되었다.
Vaswani 등(2017)의 트랜스포머(Transformer)는 순환 구조 없이 어텐션만으로 인코더-디코더를 구성했다. 원 논문의 모델은 인코더와 디코더가 각각 6개의 동일한 층을 쌓은 구조이며, 인코더 층은 셀프 어텐션과 피드포워드 신경망으로, 디코더 층은 여기에 인코더 출력을 참조하는 어텐션 하위 층을 하나 더 가진다. WMT 2014 영어-독일어 번역에서 큰 모델이 BLEU 28.4를 기록했다.
디코더의 세 하위 층 중 핵심은 교차 어텐션(Cross-Attention)이다. 쿼리는 디코더의 이전 층 출력에서, 키와 값은 인코더의 최종 출력에서 가져오므로 디코더의 모든 위치가 입력 시퀀스 전체를 참조할 수 있다. 반면 디코더의 셀프 어텐션은 미래 위치에 해당하는 소프트맥스 입력을 $-\infty$로 마스킹해, 각 위치가 이전 위치만 보도록 하여 자기 회귀 성질을 유지한다.
인코더-디코더는 보통 교사 강요(Teacher Forcing) 방식으로 학습한다. 디코더의 각 시점 입력으로 모델이 직접 생성한 토큰 대신 정답 시퀀스의 이전 토큰을 넣고, 모든 위치의 다음 토큰 교차 엔트로피를 한꺼번에 계산한다. 트랜스포머에서는 마스킹 덕분에 출력 시퀀스 전체를 병렬로 학습할 수 있어 학습 속도가 빠르다.
그러나 추론 시에는 정답 대신 모델이 생성한 토큰을 다음 입력으로 써야 하므로, 학습과 추론의 입력 분포가 달라지는 노출 편향(Exposure Bias)이 생긴다. 초반에 잘못 생성한 토큰이 이후 생성에 연쇄적으로 영향을 줄 수 있으며, 학습 중 일정 확률로 모델의 예측 토큰을 입력으로 섞는 스케줄드 샘플링 같은 완화 기법이 연구되었다.
학습된 디코더로 실제 출력을 만들 때는 디코딩 전략을 선택해야 한다. 같은 모델이라도 전략에 따라 출력의 품질과 다양성, 추론 비용이 달라지며, 모든 가능한 시퀀스를 탐색하는 것은 어휘 크기와 길이에 따라 지수적으로 비용이 늘어 현실적으로 불가능하다. 대표적인 디코딩 전략은 다음과 같다.
주요 디코딩 전략
  • 그리디 디코딩(Greedy Decoding): 각 시점에서 확률이 가장 높은 토큰 하나를 고른다. 빠르지만 전체 시퀀스 관점에서 최적이 아닐 수 있다.
  • 빔 서치(Beam Search): 각 시점에 점수가 높은 상위 $k$개의 부분 시퀀스를 유지하며 확장한다. 번역·요약처럼 정답에 가까운 출력이 중요한 과제에서 널리 쓰인다.
  • 샘플링(Sampling): 확률 분포에서 토큰을 무작위로 뽑으며, 상위 $k$개나 누적 확률 $p$ 이내로 후보를 제한하기도 한다. 다양한 출력이 필요한 생성 과제에 적합하다.
트랜스포머 이후 사전 학습 언어 모델은 인코더와 디코더 중 무엇을 쓰는지에 따라 세 갈래로 나뉜다. 구조 선택은 사전 학습 목표, 적합한 하위 과제, 추론 효율에 직접 영향을 주므로 과제 특성에 맞춰 결정해야 한다. 각 구조의 특징은 다음과 같다.
트랜스포머 기반 모델 구조 비교
  • 인코더 전용(Encoder-only): BERT처럼 인코더만 사용하며, 양방향 문맥 표현을 만들어 분류·개체명 인식·임베딩 같은 이해 과제에 강하다.
  • 디코더 전용(Decoder-only): GPT 계열처럼 마스킹된 셀프 어텐션의 디코더만 쌓아 다음 토큰 예측으로 학습하며, 현재 대규모 언어 모델의 주류 구조이다.
  • 인코더-디코더: T5와 BART처럼 양방향 인코더와 자기 회귀 디코더를 함께 사용하며, 입력을 충실히 변환해야 하는 번역·요약에 적합하다.
Raffel 등(2019)의 T5 연구는 모든 과제를 텍스트 입력에서 텍스트 출력으로 바꾸는 통일된 틀에서 구조를 비교했으며, 잡음 제거 목표와 결합했을 때 인코더-디코더 구조가 모든 과제에서 가장 좋은 성능을 보였다고 보고했다. Lewis 등(2019)의 BART는 문장 순서 섞기와 구간 마스킹으로 손상된 텍스트를 원문으로 복원하도록 사전 학습해 요약과 생성 과제에서 강점을 보였다.
인코더-디코더는 텍스트 외의 입력에도 쓰인다. OpenAI의 Whisper(Radford 등, 2022)는 68만 시간 분량의 음성 데이터로 학습한 인코더-디코더 트랜스포머로, 30초 단위 오디오를 80채널 로그 멜 스펙트로그램으로 변환해 인코더에 넣고, 디코더가 전사·번역·언어 식별 결과를 토큰 시퀀스로 생성한다. 이미지 캡셔닝처럼 이미지 인코더와 텍스트 디코더를 결합하는 구조도 같은 원리를 따른다.
인코더-디코더는 오토인코더(Autoencoder)와 구조가 비슷해 혼동되기도 한다. 오토인코더는 입력을 압축한 뒤 같은 입력을 복원하는 것이 목적이며 주로 차원 축소나 표현 학습에 쓰인다. 반면 Seq2Seq 인코더-디코더는 원문과 번역문처럼 입력과 다른 출력 시퀀스를 생성하는 것이 목적이다. BART처럼 손상된 입력을 원문으로 복원하는 사전 학습은 두 개념이 만나는 지점으로 볼 수 있다.
정리하면 인코더-디코더는 이해와 생성을 분리해 각 단계에 맞는 구조를 쓸 수 있다는 장점이 있지만, 디코더 전용 모델보다 구조가 복잡하고 인코더 출력을 디코딩 내내 유지해야 한다. 입력과 출력의 형태가 뚜렷이 다르고 입력에 충실한 변환이 중요한 과제에서는 여전히 유력한 선택지이다.

#관련 용어

어텐션 메커니즘
디코더가 출력 시점마다 입력의 각 위치에 가중치를 부여해 필요한 정보를 선택적으로 참조하는 기법
교차 어텐션
디코더의 쿼리로 인코더 출력의 키와 값을 참조하는 트랜스포머 디코더의 어텐션 하위 층
교사 강요
학습 시 디코더 입력으로 모델 예측 대신 정답 시퀀스의 이전 토큰을 넣는 학습 방식
노출 편향
학습 때는 정답 토큰을, 추론 때는 모델 생성 토큰을 입력으로 쓰면서 생기는 분포 불일치
빔 서치
각 시점마다 점수가 높은 상위 k개의 부분 시퀀스를 유지하며 출력을 탐색하는 디코딩 방법
마스크 언어 모델링(MLM)
입력 토큰 일부를 가리고 원래 토큰을 예측하게 하는 인코더 전용 모델의 사전 학습 목표

#직무 연관도

DA
Data Analyst
낮음
요약·번역·음성 전사 모델의 출력을 활용해 텍스트와 음성 데이터를 분석
DS
Data Scientist
밀접
번역·요약·음성 인식 등 시퀀스 변환 모델의 구조와 학습 목표, 디코딩 방법을 연구
DE
Data Engineer
높음
사전 학습된 인코더-디코더 모델을 미세 조정하고 빔 크기 등 디코딩 설정과 추론 지연을 최적화해 서비스에 배포

#사용 사례

인터넷 서비스미디어통신전자상거래금융
개요
인코더-디코더는 입력과 출력의 형태나 길이가 다른 변환 과제에 활용된다. 인터넷 서비스와 전자상거래에서는 다국어 번역과 리뷰·문서 요약에, 미디어에서는 자막 생성과 기사 요약에, 통신과 금융에서는 상담 음성 전사와 요약에 쓰인다.
사례
고객센터 상담 통화를 Whisper 같은 인코더-디코더 음성 인식 모델로 전사한 뒤, BART·T5 계열 요약 모델로 상담 요약문을 자동 생성해 상담 기록 작성 시간을 단축

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.