-
-XLNet
1. 참고 링크
- 1) PR-175: XLNet: Generalized Autoregressive Pretraining for Language Understanding
- 동영상 정리글입니다.
2. 설명
- -Pretraining Methods
- 1) AutoRegressive
- 시퀀스가 주어졌을때 다음 토큰에 대한 분포를 찾아내는 방식
- Forward와 Backward가 있는데 단방향만 가능함
- Text Generation과 잘맞는다.(시퀀스를 보고 다음 토큰을 예측)
- 1) AutoEncoding
- 전체 중 일부를 masking한 뒤 해당 토큰을 맞춘다.
- 전체를 보고 맞추기 때문에 문맥 파악, 주제 파악 등에 좋다.
- masking 토큰들이 독립적이라고 가정한다는 단점이 있다.
- masking을 하므로 generalized model에서는 쓰면 안된다.
- real world에는 mask라는 토큰이 없고, long-term에서 성능이 좋지 않다.
-
- -AR과 AE의 장점을 취합
- 1) Permutation Language Modeling
- permutation : forward(1 2 ... 8 9), backward(9 8 ... 2 1)과 달리 랜덤한 순서로 진행(5 2 ... 6 1)
- 6을 예측한다고 하면 5 2 ... 만을 보고 뒤에 1은 보지 않는다.
- mem은 이전 context의 정보이다
-
-
- 2) Two-Stream Self-Attention
- permutation은 순서를 섞어서 예측하므로 예측한 결과가 어떤 순서로 배치되어야 하는지 모른다.
- Bert의 Self Attention(Content Stream)은 예측하는 토큰의 값도 같이 사용함
- 그래서 Query Stream에서는 예측하는 토큰의 값은 빼고 계산함
- g는 word-embbeding이 아닌 random값과 위치 정보만 들어있음
-
- 3) Transformer-XL
- PR-161 참고
- Segement Recurrenc, Fixed(회색 점선) 부분이 Query Stream에서 메모리에 해당
- 필요에 따라 segment는 늘릴 수 있음
-
- Relative Positional Embedding, key와 query간의 거리가 상대적으로 얼마나 떨어져 있는지 적용