RNN Encoder-Decoder

hyeony·2025년 7월 4일

NLP

목록 보기
9/12

1. Sequence-to-Sequence(seq2seq)

가. seq2seq 모델의 개념 및 활용 분야

seq2seq 모델은 입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 데 사용되는 모델이다.

① 입력과 출력 시퀀스의 길이가 다른 경우의 적용
seq2seq 모델은 특히 입력 문장과 출력 문장의 길이가 다를 경우에 주로 사용되는 인코더-디코더 구조를 기반으로 한다.

② 챗봇, 기계 번역, 내용 요약, STT 등 주요 응용 분야
챗봇(Chatbot), 기계 번역(Machine Translation), 내용 요약(Text Summarization), STT(Speech to Text) 등

나. 인코더-디코더(Encoder-Decoder) 구조 분석

seq2seq 모델은 크게 인코더와 디코더라는 두 개의 주요 모듈로 구성된다. 인코더와 디코더 아키텍처의 내부는 두 개의 RNN 아키텍처로 이루어져 있다.

1) 인코더의 역할과 작동 원리

① 입력 문장 단어 순차 입력 및 정보 압축

  • 인코더는 입력 문장의 모든 단어를 순차적으로 입력받음

  • 각 시점의 RNN 셀은 현재 단어 정보와 이전 시점 은닉 상태(hidden state)를 결합하여 새로운 은닉 상태를 생성

  • 모든 단어를 처리한 뒤, 마지막 시점의 은닉 상태를 사용하여 전체 문장 정보를 압축

② 컨텍스트 벡터(Context Vector)의 생성과 의미

  • 컨텍스트 벡터: 인코더의 마지막 RNN 셀 은닉 상태(hidden state)

  • 입력 문장의 모든 단어 토큰 정보를 요약·집약하여 단일 벡터로 표현

  • 디코더가 활용할 문장 전체 의미의 요약본 역할

③ RNN 아키텍처 기반 은닉 상태 처리

  • 인코더는 RNN 구조를 따르며, 각 단어가 각 시점(t)의 입력으로 들어감

  • 은닉 상태는 과거 모든 정보를 누적하여 전달(“장기 의존성” 개념)

  • 최종 은닉 상태(컨텍스트 벡터)를 디코더로 전달

2) 디코더의 역할과 작동 원리

① 컨텍스트 벡터 기반 번역 단어 순차 출력

  • 디코더는 인코더로부터 전달받은 컨텍스트 벡터를 초기 은닉 상태로 사용

  • 이 벡터를 바탕으로 번역된 단어를 한 개씩 순차적으로 생성

② RNNLM(RNN Language Model)으로서의 디코더

  • 디코더 자체가 RNN 기반 언어 모델(RNNLM)의 역할을 수행

  • 시퀀스 생성 과정에서 이전에 생성된 단어(또는 <sos> 토큰)와 은닉 상태를 입력으로 받아 다음 단어 예측

③ 첫 번째 은닉 상태로 컨텍스트 벡터 사용

  • 디코더 RNN의 첫 번째 시점 은닉 상태 h0h_0 = 인코더의 컨텍스트 벡터

  • 이후 시점에서는 이전 시점의 은닉 상태가 순차적으로 다음 입력값에 반영됨

④ 예측 단어 생성 과정 및 Softmax 함수 활용
ⓐ 입력

  • 현재 시점 은닉 상태 hth_t
  • 입력 토큰 xtx_t (첫 시점은 <sos>)

ⓑ RNN 셀 연산

ht=RNNCell(xt,ht1)h_t = \text{RNNCell}(x_t, h_{t-1})

ⓒ 출력 벡터 → 확률 분포

  • RNN 셀 출력 oto_t에 소프트맥스 함수 적용
    P(yty<t,context)=Softmax(ot)P(y_t \mid y_{<t}, \text{context}) = \text{Softmax}(o_t)

ⓓ 단어 선택

  • 확률 분포 중 가장 높은 값을 갖는 단어를 예측 결과로 선택
  • 선택된 단어가 다음 시점 입력 xt+1x_{t+1}이 되어 반복 생성

2. BLEU Score(Bilingual Evaluation Understudy Score)의 이해와 적용

가. BLEU Score란?

BLEU Score는 기계 번역의 성능을 평가하는 데 사용되는 주요 지표이다.

① 기계 번역 성능 평가의 필요성

  • 기계 번역 결과를 객관적으로 비교·분석하기 위한 지표 제시

② 사람 번역과의 유사성 비교를 통한 성능 측정

  • 기계 번역 결과(Candidate)와 사람이 번역한 결과(Reference) 간의 유사도를 정량적으로 평가

③ n-gram 기반의 측정 기준

  • 단어 단위(유니그램)뿐 아니라 연속된 단어 묶음(n-gram) 단위의 정밀도를 활용

④ 언어 독립성과 빠른 계산 속도

  • 특정 언어에 종속되지 않으며, 자동화된 평가가 가능해 연산 속도가 빠름

⑤ 점수가 높을수록 좋은 성능을 의미

  • 0부터 1(또는 0부터 100)의 범위로, 값이 클수록 기계 번역 품질이 높음을 나타냄

나. BLEU Score 측정 기준의 발전 과정

BLEU 스코어는 기계 번역 평가의 한계를 보완하며 여러 단계로 발전해 왔다.

1) 단어 개수 카운트: Unigram Precision

① 개념과 단순한 접근 방식

  • Candidate에서 등장한 유니그램(단어) 수 대비 Reference에 등장하는 유니그램 수를 정밀도로 계산

② 순서를 고려하지 못하는 한계

  • 단어 순서 정보가 반영되지 않아, 단어만 같으면 문장 순서가 뒤바뀌어도 동일 점수

2)중복을 제거한 보정: Modified Unigram Precision

① Max_Ref_Count를 이용한 보정 방법

  • References 중 각 유니그램이 최대 몇 번 나오는지 계산하여 Candidate 중복 카운트를 제한

② 예시를 통한 설명

  • Candidate: “the the the the the the the”
  • Reference1: “the cat is on the mat”
  • Reference2: “there is a cat on the mat”
  • 유니그램 정밀도(단순) = 7/7 = 1
  • 보정된 정밀도 = 2/7 (각 Reference에서 ‘the’ 최대 2회)

3) 순서를 고려하기 위한 n-gram 확장

① n-gram 도입의 필요성 (순서 문제 해결)

  • 단어 순서까지 평가해 더 정교한 품질 측정

② Bigram, Trigram, 4-gram 등 다양한 n-gram

  • 2-gram부터 4-gram까지 연속 단어 묶음 정밀도를 계산

③ 보정된 정밀도(pₙ)의 조합

  • 각 n-gram의 보정된 정밀도 p₁, p₂, …, pₙ을 결합 (보통 n=4)

④ 가중치(wₙ)의 적용

  • p₁, p₂, …, pₙ에 각각 가중치 w₁, w₂, …, wₙ을 부여 (합 = 1)

4) 짧은 문장 길이에 대한 패널티: Brevity Penalty

① 짧은 문장이 높은 정밀도를 가질 수 있는 문제점

  • “it is” 같은 짧은 Candidate가 유니그램·바이그램에서 모두 100% 정밀도 기록

② Candidate와 Reference 길이 비교를 통한 패널티 적용

  • Candidate 길이 C가 Reference 길이 R보다 짧으면 BP < 1 적용

③ Brevity Penalty가 반영된 최종 BLEU 식

BLEU=BPexp ⁣(n=1Nwnlogpn),BP={1C>R,e1R/CCR.\text{BLEU} = \text{BP} \cdot \exp\!\Bigl(\sum_{n=1}^N w_n \log p_n\Bigr),\quad \text{BP} = \begin{cases} 1 & C > R,\\[4pt] e^{1 - R/C} & C \le R. \end{cases}

<참고 문헌>
유원준/안상준, 딥러닝을 이용한 자연어 처리 입문
https://wikidocs.net/21694
박호현 교수님, 인공지능, 중앙대학교 전자전기공학부, 2024

profile
Chung-Ang Univ. EEE.

0개의 댓글