기계번역 : 인간이 사용하는 자연 언어를 컴퓨터를 사용하여 다른 언어로 번역하는 일
Seq2Seq까지는 고정된 Context Vector를 이용하여 기계번역을 함
Statistical Machine Translation; 통계 기반 기계 번역을 의미
긴 문장 처리가 어려운 특성을 가지고 있어서 N-gram으로 인접한 일부 단어만 고려
까다로운 learning task에도 훌륭한 성능을 보이는 강력한 model
Large DNN은 라벨링 되어 있는 training set에 network의 매개변수를 지정할 수 있는 정보가 충분하다면 Supervised Backpropagation을 활용하여 학습 가능
하지만 고정된 크기의 입력을 필요로하며 순서 정보를 손실한다는 한계가 존재
시퀀스 데이터를 처리하기 위한 신경망 구조로, 이전 단계의 출력을 현재 단계의 입력으로 사용하여순환적으로 정보를 처리
하지만 long-term dependency문제가 존재하는데, 이는 hidden layer의 과거 정보가 마지막까지 전달되지 못함을 의미
RNN의 특별한 구조로, 장기의존성을 학습할 수 있는 딥러닝 프레임워크
이전 단계의 정보를 memory cell에 저장해서 흘려보냄
현재 시점의 정보를 바탕으로 과거의 내용을 얼마나 잊을지 곱해주고, 그 결과에 현재의 정보를 더해서 다음 시점으로 정보를 전달
LSTM보다 활용하여 효율적인 기계 번역 아키텍처인 seq2seq를 제안
Transformer 등장 전까지 State of the art(SOTA) 기록하던 model
encoder와 decoder에 각각 LSTM이 사용됨
출처 : [WIKIDOCS](https://wikidocs.net/24996)
이때 encoder에는 sentence가 단어별로 토큰화되고, 단어 토큰이 순서대로 각 시점마다 입력됨
그렇게 되면 data의 구성은, <SOS> 단어들 <EOS>가 됨
encoder
: lstm의 과정으로 현시점의 단어와 이전 시점의 hidden state가 다음 hidden state가 됨
Context vecotr
: <EOS>를 만날 때 바로 직전 hidden state가 마지막 state가 되고 그것이 바로 Context Vector가 됨
Decoder
: Context Vector가 Decoder의 첫 시점에 입력되는 <SOS>와 만나서 단어를 번역하기 시작함
이때 번역된 단어가 recurrent로 다시 들어오고 다음 번역 단어를 예측하는 과정을 반복하고 <EOS>로 마무리됨
문자는 문자그대로 사용하여 one hot encoding되면 차원이 매우 커지면서 메모리 문제, 시간 복잡도 문제 등 원활한 계산이 어려움
따라서 학습을 위해 모든 문자를 숫자화하는 Word embedding을 진행하므로써 차원 축소를 함
이런 임베딩 과정으로 현재 시점t에서의 hidden state는 과거 시점(t-1, t-2, ...)의 동일한 셀에서의 모든 은닉 상태의 값들의 영향을 누적해서 받아온 값이 됨
궁극적인 목표는 의 조건부 확률이 높은 것을 선택함
이는 입력 문장이 들어왔을 때의 출력 문장에
대한 조건부확률임
의 조건부확률은 softmax를 통해 다음에 등장할 확률이 높은 단어를 예측하도록 함
이때 는 context vector를 의미
모델의 특징을 총 정리하면 다음 3가지로 정리할 수 있음
출처 : https://github.com/bentrevett/pytorch-seq2seq
실험을 통해 단어의 순서를 거꾸로 뒤집었을 때 BLEU score 증가하여 성능이 개선된 것 확인
BLEU Score는 아래에서 설명
그러나 순차적, 역순 두 경우 모두 단어쌍 사이 거리에 대한 평균값이 동일하고, 이에 따라 수학적으로 고려해보았을 때 두 결과의 차이가 크면 안됨
그럼에도 reversed의 결과가 더 좋은 것에 누구도 명확한 해석은 불가능하지만 sequential problem으로 그 이유를 유추 가능
Sequential problem에서는 앞쪽에 위치한 data가 뒤의 모든 data에 영향을 주기 때문에 앞에 위치한 data일 수록 중요도가 더 높다고 할 수 있는데
이러한 이유로 decoder 부분에서 앞쪽에 먼저 예측되는 단어가 중요하게 됨
decoder의 앞 쪽 단어의 유추가 잘 되기 위해서는 더 많은 가중치와 영향력이 가해지는 encoder의 마지막 cell과 decoder의 첫 cell이 가까울수록 좋은 예측이 가능하다고 생각하면 reversed의 결과가 더 좋은 성능을 보인다고 생각할 수 있음
Bilingual Evaluation Understudy Score의 줄임말
WMT 14' : English to French Dataset
: Source sentence
: Target sentence
: Training set
논문에서는 left to right Beam search decoder라고 표현됨
매시점 가장 확률이 높은 후보를 선택하는 greedy searh decoder와 모든 경우의 수를 고려한 후에 누적확률이 가장 높은 후보를 선택하는 방법의 절충안
특정 깊이만큼만 확률을 확인하여 결과적으로 출력 문장의 확률이 더 높은 경우를 얻는 누적 확률 방법
출처 : https://blog.naver.com/PostView.naver?blogId=sooftware&logNo=221809101199&redirect=Dlog&widgetTypeCall=true&topReferer=https%3A%2F%2Fwww.google.com%2F&directAccess=false
위의 이미지 예시는 Beam Size k=3인 경우
최종적으로 가장 높은 누적 확률값을 선택
출처 : esyooon 개인 ppt자료
동아리에서 Seq2Seq 발제를 맡았어서 제가 이해한 부분을 더 잘 녹여내고자 노력했읍니다..^^
이걸 읽게 되는 여러분들도 멋진 이해가 되셨길 바라며..ㅎㅎㅎㅎ
다른 논문들도 이만큼 이해해야하는데 어렵네요 ㅠ.ㅠ
그렇지만 화이팅