기초자연어처리15- RNN을 이용한 인코더-디코더

WooSeongkyun·2023년 3월 19일
0

자연어처리기초

목록 보기
15/16

인코더-디코더

  • RNN은 일대다 구조로 텍스트 분류를 해결한다던지, 다대다 구조로 개체명인식이나 품사 태깅등의 문제들을 해결할 수 있다
  • 인코더와 디코더라는 새로운 구조를 소개한다. 인코더와 디코더는 주로 입력 문장과 출력 문장의 길이가 다를 때 사용한다.
    - 예: 번역, 텍스트 요약

Seq2Seq모델

  • ![[seq2seq_5.mp4]][ref](https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/)
  • 입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 다양한 분야에서 사용되는 모델이다
    - 예: 챗봇이나 기계번역등
  • 구조
    - 구성단위
    - LSTM 또는 GRU
    - 인코더
    - 입력문장을 모두 순차적으로 입력 받은다음 정보를 압축하여 하나의 벡터로 만드는데, 이를 컨텍스트 벡터 context vector라고 불린다
    1. 입력 문장을 단어 토큰화를 통해 단어 단위로 쪼개고, 단어 토큰을 RNN 셀의 각 시점 입력이 된다
    2. RNN 셀의 마지막 은닉 상태를 디코더에게 넘겨주는데 이를 컨텍스트 벡터라 불린다
    - 디코더
    - 컨텍스트 벡터를 번역하여, 단어를 한개씩 순차적으로 출력한다
    - 테스트 과정
    - RNN Language Model로, 문장의 시작을 의미하는 <sos>를 입력받아야 한다
    1. 컨텍스트트 벡터로부터 입력받으면, 다음에 등장할 확률이 높은 단어를 첫번째로 예측한다
    2. 첫번쨰로 예측된 단어는 다음시점의 RNN셀의 입력으로 들어간다. 그 후 두번째 시점 단어를 예측한다
    3. 문장의 끝을 의미하는 가 출력되면 출력이 종료된다
    		- 훈련과정때 : 교사강요
    			- $t$ 의 타임스텝때 $t-1$ 때의 RNN셀이 출력한 정보를 그대로 활용하는 대신, $t-1$ 때의 정답을 활용한다. 왜냐하면 t-1에서 잘못된 예측이 일어났다면 그게 연쇄적으로 영향을 줘 학습이 잘 안되겔 가능성이 높기 때문이다

BLEU (Bilingual Evaluation Understudy Score)

  • 기계 번역의 결과와 사람이 직접 번역한 결과가 얼마나 유사한지 비교하여 번역에 대한 성능을 측정하는 방법
  • 방법들
    - 단어 개수 카운트로 측정하기 Unigram Precision
    - 예
    - 2개의 기계 번역기가 존재한다고 하자. 두 기계 번역기에 한국어 문장을 입력하여 번역된 영어 문장의 성능을 측정하고자 한다. 번역된 문장을 각각 candidate1,2라고 칭하자
    - 세명에게 한국어 문장을 보고 번역해달라하여 3개의 번역문장을 만들고, 이를 각각 Reference 1,2,3이라 하자
    - 결과는 다음과 같다하자
    - Candidate1 : It is a guide to action which ensures that the military always obeys the commands of the party. 
    - Candidate2 : It is to insure the troops forever hearing the activity guidebook that party direct. 
    - Reference1 : It is a guide to action that ensures that the military will forever heed Party commands. 
    - Reference2 : It is the guiding principle which guarantees the military forces always being under the command of the Party. 
    - Reference3 : It is the practical guide for the army always to heed the directions of the party.
    - Unigram Precision=Ref 중 존재하는 Ca 단어의 수 Ca 총 단어수\text{Unigram Precision}=\displaystyle\frac{\text{Ref 중 존재하는 Ca 단어의 수 }}{\text{Ca 총 단어수}}
    - Ca1 Unigram Precision=1718\text{Ca1 Unigram Precision}=\displaystyle\frac{17}{18}
    - Ca2 Unigram Precision=814\text{Ca2 Unigram Precision}=\displaystyle\frac{8}{14}
    - 이 측정법의 허술한점
    - 예
    - Candidate : the the the the the the the 
    - Reference1 : the cat is on the mat 
    - Reference2 : there is a cat on the mat
    - 해당 Candidate는 the가 7번 나오는 터무니 없는 번역임에도, 유니그램 정밀도가 7/7=17/7=1 에 달한다
    - Modified Unigram Precision=Ca의 각 유니그램에 대해 Countclip 수행한 수의 Ca의 총 유니그램수\text{Modified Unigram Precision}=\displaystyle\frac{\text{Ca의 각 유니그램에 대해 }Count_{clip}\textbf{을 수행한 수의 합}}{\text{Ca의 총 유니그램수}}
    - Countclip=min(Count,Max_Ref_Count)Count _{clip}=min(Count,Max\_Ref\_Count_)
    - Max_Ref_CountMax\_Ref\_Count : 유니그램이 하나의 레퍼런스에서 최대 몇번 등장하였는가
profile
안녕하세요!

0개의 댓글