1. Transformer Network
1)개념
-2017년 구글이 제안한 시퀀스-투-시퀀스(sequence-to-sequence) 모델
-구글이 발표한 논문인 "Attention is all you need"에서 나온 모델
-기존의 seq2seq의 구조인 인코더-디코더를 따르면서도, 논문의 이름처럼 어텐션(Attention)만으로 구현한 모델
RNN을 사용하지 않고, 인코더-디코더 구조를 설계하였음에도 번역 성능에서도 RNN보다 우수한 성능을 보여줌
2)시퀀스-투-시퀀스(sequence-to-sequence) 모델
-시퀀스란 단어(word) 같은 무언가(something)의 나열을 의미.
시퀀스-투-시퀀스는 특정 속성을 지닌 시퀀스를 다른 속성의 시퀀스로 변환하는 작업.
인코더가 입력 시퀀스를 하나의 벡터로 압축하는 과정에서 입력 시퀀스 정보가 일부 손실된다는 단점을 보완하기 위해 어텐션이 사용됨.
3)인코더 디코더
인코더는 소스 시퀀스의 정보를 압축해 디코더로 보내주는 역할을 담당
인코딩: 인코더가 소스 시퀀스 정보를 압축하는 과정
디코더는 인코더가 보내준 소스 시퀀스 정보를 받아서 타깃 시퀀스를 생성
디코딩: 디코더가 타겟 시퀀스를 생성하는 과정
트랜스포머의 학습(train)은 인코더와 디코더 입력이 주어졌을 때 정답에 해당하는 단어의 확률 값을 높이는 방식으로 수행
4) 포지셔널 인코딩
포지셔널 인코딩:
트랜스포머가 단어의 위치 정보를 얻기 위해서 각 단어의 임베딩 벡터에 위치 정보들을 더하여 모델의 입력으로 사용하는 것. (RNN과 달리 순차적으로 입력받는 방식이 아님)
5) 어탠션
시퀀스 입력에 수행하는 기계학습 방법의 일종.
어텐션은 시퀀스 요소들 가운데 태스크 수행에 중요한 요소에 집중하고 그렇지 않은 요소는 무시해 태스크 수행 성능을 끌어 올림.
2. BERT
1) 개념
-2018년에 구글이 공개한 사전 훈련된 모델
- 트랜스포머를 이용하여 구현됨
-위키피디아(25억 단어)와 BooksCorpus(8억 단어)와 같은 레이블이 없는 텍스트 데이터로 사전 훈련된 언어 모델
-전이 학습 모델, 사전 학습 모델 이라는 특징이 있음
-Contextual Embedding
문맥을 반영한 임베딩 사용.
BERT의 연산을 거친 후의 출력 임베딩은 문장의 문맥을 모두 참고한 문맥을 반영한 임베딩이 됨.
-Token Embeddings: WordPiece
서브워드 토크나이저는 기본적으로 자주 등장하는 단어는 그대로 단어 집합에 추가하지만, 자주 등장하지 않는 단어의 경우에는 더 작은 단위인 서브워드로 분리되어 서브워드들이 단어 집합에 추가된다는 아이디어
-Position Embedding
트랜스포머에서는 포지셔널 인코딩(Positional Encoding)이라는 방법을 통해서 단어의 위치 정보를 표현
포지셔널 인코딩은 사인 함수와 코사인 함수를 사용하여 위치에 따라 다른 값을 가지는 행렬을 만들어 이를 단어 벡터들과 더하는 방법
BERT에서는 이와 유사하지만, 위치 정보를 사인 함수와 코사인 함수로 만드는 것이 아닌 학습을 통해서 얻는 포지션 임베딩(Position Embedding)이라는 방법을 사용
2)구조
BERT의 기본 구조는 트랜스포머의 인코더를 쌓아올린 구조
-WordPiece Embedding : 실질적인 입력이 되는 워드 임베딩.
-Position Embedding : 위치 정보를 학습하기 위한 임베딩.
-Segment Embedding : 두 개의 문장을 구분하기 위한 임베딩.
3)BERT 파인 튜닝 방법
-Single Text Classification
-Tagging
-Text Pair Classification or Regression
-Question Answering
Reference:
https://ratsgo.github.io/nlpbook/docs/language_model/transformers/