
seq2seq 모델은 입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 데 사용되는 모델이다.
① 입력과 출력 시퀀스의 길이가 다른 경우의 적용
seq2seq 모델은 특히 입력 문장과 출력 문장의 길이가 다를 경우에 주로 사용되는 인코더-디코더 구조를 기반으로 한다.
② 챗봇, 기계 번역, 내용 요약, STT 등 주요 응용 분야
챗봇(Chatbot), 기계 번역(Machine Translation), 내용 요약(Text Summarization), STT(Speech to Text) 등
seq2seq 모델은 크게 인코더와 디코더라는 두 개의 주요 모듈로 구성된다. 인코더와 디코더 아키텍처의 내부는 두 개의 RNN 아키텍처로 이루어져 있다.
① 입력 문장 단어 순차 입력 및 정보 압축
인코더는 입력 문장의 모든 단어를 순차적으로 입력받음
각 시점의 RNN 셀은 현재 단어 정보와 이전 시점 은닉 상태(hidden state)를 결합하여 새로운 은닉 상태를 생성
모든 단어를 처리한 뒤, 마지막 시점의 은닉 상태를 사용하여 전체 문장 정보를 압축
② 컨텍스트 벡터(Context Vector)의 생성과 의미
컨텍스트 벡터: 인코더의 마지막 RNN 셀 은닉 상태(hidden state)
입력 문장의 모든 단어 토큰 정보를 요약·집약하여 단일 벡터로 표현
디코더가 활용할 문장 전체 의미의 요약본 역할
③ RNN 아키텍처 기반 은닉 상태 처리
인코더는 RNN 구조를 따르며, 각 단어가 각 시점(t)의 입력으로 들어감
은닉 상태는 과거 모든 정보를 누적하여 전달(“장기 의존성” 개념)
최종 은닉 상태(컨텍스트 벡터)를 디코더로 전달
① 컨텍스트 벡터 기반 번역 단어 순차 출력
디코더는 인코더로부터 전달받은 컨텍스트 벡터를 초기 은닉 상태로 사용
이 벡터를 바탕으로 번역된 단어를 한 개씩 순차적으로 생성
② RNNLM(RNN Language Model)으로서의 디코더
디코더 자체가 RNN 기반 언어 모델(RNNLM)의 역할을 수행
시퀀스 생성 과정에서 이전에 생성된 단어(또는 <sos> 토큰)와 은닉 상태를 입력으로 받아 다음 단어 예측
③ 첫 번째 은닉 상태로 컨텍스트 벡터 사용
디코더 RNN의 첫 번째 시점 은닉 상태 = 인코더의 컨텍스트 벡터
이후 시점에서는 이전 시점의 은닉 상태가 순차적으로 다음 입력값에 반영됨
④ 예측 단어 생성 과정 및 Softmax 함수 활용
ⓐ 입력
<sos>)ⓑ RNN 셀 연산
ⓒ 출력 벡터 → 확률 분포
ⓓ 단어 선택
BLEU Score는 기계 번역의 성능을 평가하는 데 사용되는 주요 지표이다.
① 기계 번역 성능 평가의 필요성
② 사람 번역과의 유사성 비교를 통한 성능 측정
③ n-gram 기반의 측정 기준
④ 언어 독립성과 빠른 계산 속도
⑤ 점수가 높을수록 좋은 성능을 의미
BLEU 스코어는 기계 번역 평가의 한계를 보완하며 여러 단계로 발전해 왔다.
① 개념과 단순한 접근 방식
② 순서를 고려하지 못하는 한계
① Max_Ref_Count를 이용한 보정 방법
② 예시를 통한 설명
① n-gram 도입의 필요성 (순서 문제 해결)
② Bigram, Trigram, 4-gram 등 다양한 n-gram
③ 보정된 정밀도(pₙ)의 조합
④ 가중치(wₙ)의 적용
① 짧은 문장이 높은 정밀도를 가질 수 있는 문제점
② Candidate와 Reference 길이 비교를 통한 패널티 적용
③ Brevity Penalty가 반영된 최종 BLEU 식
<참고 문헌>
유원준/안상준, 딥러닝을 이용한 자연어 처리 입문
https://wikidocs.net/21694
박호현 교수님, 인공지능, 중앙대학교 전자전기공학부, 2024