Seq2Seq
#
Find similar titles
- (rev. 7)
- dongiljogun
Structured data
- Category
- Algorithm
Table of Contents
Seq2Seq #
개요 #
딥러닝의 발전과 함께 자연어 처리에서의 딥러닝 기술 활용이 증가하고 있으며 간단한 RNN, LSTM 구조부터 인코더, 디코더 형식을 활용하는 Seq2Seq 모델과 Transformer, 인코더 형식을 차용하고 사전학습 방식이 적용된 BERT, GPT까지 자연어 처리에서의 딥러닝은 비약적으로 발전하고 있습니다.
Seq2Seq이란? #
이 중 인공지능 자연어 처리 모델들의 뼈대가 되는 Seq2Seq(sequence to sequence)모델은 시퀀스를 입력받아 또 다른 시퀀스를 출력하는 모델을 말합니다. 텍스트, 음성, 영상 분야의 번역 등의 다양한 Task에서 활용됩니다. Seq2Seq
Seq2Seq 구조 #
Seq2Seq 모델은 크게 인코더와 디코더가 연결된 구조로 이루어져 있습니다. 인코더는 입력 데이터를 부호화 하여 하나의 벡터(context)로 만들어 내고, 입력된 모든 단어에 대한 처리가 끝난 후 context를 디코더에 보냅니다. 디코더는 해당 context 정보로 아이템을 예측하여 출력하게 됩니다. EncoderDecoder
인코더와 디코더 구조를 더 상세하게 살펴보면 두 구조 모두 RNN으로 이루어져 있습니다. 인코더에서는 각 아이템이 입력될 때마다 은닉 상태가 업데이트됩니다. 가장 마지막 아이템이 입력된 후의 은닉 상태를 벡터 형식(context)으로 디코더에 넘겨주게 됩니다. 디코더는 해당 벡터를 활용하여 번역된 아이템을 반환합니다. EncoderDecoderDetail
Attention 구조 #
Seq2Seq의 기본 뼈대인 RNN에는 몇 가지 단점이 있습니다. RNN 알고리즘 자체의 기울기 소실 문제와 Seq2Seq 인코더에서 입력 시퀀스를 하나의 벡터로 압축하는 과정에서 입력 정보 일부가 손실된다는 점입니다.
이러한 문제를 해결하기 위해 Attention 구조가 등장했습니다. Attention은 Seq2Seq 모델의 디코더에서 개선된 구조로 출력 단어를 예측하는 시점마다 인코더의 전체 문장을 참고한다는 것입니다. 단 전체 문장을 전부 보는 것이 아닌 가장 연관성이 높은 단어 부분을 집중(Attention)해서 볼 수 있도록 하는 방법입니다.
Attention 구조는 Seq2Seq 구조와 두 가지 차이점이 있습니다. 첫 번째는 각 단어별 은닉 상태를 모두 디코더에 전달한다는 점과 연관성이 높은 단어를 집중적으로 보기 위해 Attention Score을 계산하여 가중치를 부여한다는 점이 다릅니다. Attention
Teacher-forcing (교사 강요) #
Seq2Seq 기반 모델의 훈련 과정에서 사용하는 방법으로, 원래는 이전 시점의 디코더 셀의 출력이 현재 시점의 디코더 셀의 입력값으로 들어가 예측에 활용하게 되나, 해당 방법은 이전 시점의 디코더 셀의 예측이 틀렸을 때는 연쇄작용으로 다음 시점의 디코더 셀의 예측을 어렵게 합니다. 이러한 문제를 해결하기 위해 이전 시점의 디코더 셀의 예측값이 아닌 이전 시점의 실제값을 현재 시점의 디코더 셀의 입력으로 사용하는 방법입니다.