인공지능/자연어 처리

자연어 처리 문장 임베딩 만들기 - Seq2Seq

이게될까 2024. 3. 24. 20:40
728x90
728x90

목표 - 초기 문장 생성 모델인 Seq2Seq의 작동 원리를 이해할 수 있다.

Seq2Seq 등장 배경

2014년에 등장한 모델이다.

가변적인 길이의 입출력이 필요했다.

RNN

같은 셀을 재귀적으로 사용하는 모델이다.

패딩토큰을 활용하여도 크게 개선하지 못했다.

 

Seq2Seq란

RNN기반의 고정 시퀀스를 사용하는 것을 개선하기 위해 나왔다.

가변적인 길이로 변환이 가능해졌다.

Seq2Seq 모델 구조

결국 이것도 Xn이 제일 쎄게 들어가긴 하겠네요

LSTM과 GRU가 그나마 Long Term를 해결해줬기 때문에 사용했다.

Seq2Seq 모델 구조 (인코더)
Seq2Seq 모델 구조 (디코더)

eos가 나올때 까지 재귀적으로 반복한다.

입력은 단어가 아니라 임베딩 벡터이다!!!

 

Seq2Seq 학습 과정

 

오답간의 loss만 반영하고, 디코더 입력칸엔 정답 집어넣기!

 

Seq2Seq 모델의 한계

인코더에 천개, 만개의 단어가 들어갈수록 정보 손실이 커진다.

 

 

Attention Mechanism

Transformer에 사용된다.

Attention의 아이디어

 

Attention 함수

키 - 입력문장의 모든 단어 토큰

Attention with Seq2Seq

t 시점의 hiddenstate - 디코더에서의!

key - 인코더에서의 히든 스테이트

value - 랜덤보다 좋으니까!

attention 작동 원리

St랑 h3의 유사도가 가장 높으면 h3를 많이 봐라!

score일 뿐이다

어떻게 쓰냐!

 

인코더의 hidden state와 곱해서 더한다.

 

 

이전에 concat해서 백터가 길어졌으므로 이 과정을 통해 다시 그대로 줄여준다.

 

다양한 종류의 Attention

 

728x90