본문 바로가기

[NLP] BERT (Bidirectional Encoder Representations from Transformer) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 구글에서 공개한 모델인 BERT는 앞에서 소개했던 트랜스포머 블록을 사용하고 bi-directional하기 때문에 좋은 성능을 내어 많이 사용되고 있다. (논문 pdf : https://arxiv.org/pdf/1810.04805.pdf) 이전 다른 모델들(GPT, ELMo)과 BERT를 비교해보자. GPT는 주어진 sequence로 다음 단어를 예측하는 언어 모델이라서 단어 sequence를 한 방향으로만 보는 아키텍쳐를 지니고 있으며, ELMo는 bi-LSTM layer 상단은 양방향이지만 중간 layer는 한 방향으로 학습되는 모델이다. ..
[NLP] Transformer Network 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 구글 NIPS에서 공개한 트랜스포머 네트워크는 자연어처리에 큰 획을 그었다. 이후 개발된 BERT, GPT 등의 모델은 모두 이 트랜스포머 블록을 기본 모델로 사용하고 있다. (논문 pdf : https://arxiv.org/pdf/1706.03762.pdf) Scaled Dot-Product Attention Transformer block의 주 요소 중 하나인 Scaled Dot-Product Attention은 아래 수식을 통해 계산된다. 행렬 형태인 입력 X는 (입력 문장 단어 수) * (입력 임베딩 차원 수) 크기를 가지고 있으며, 쿼..
[NLP] ELMo (Embeddings from Language Models) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. ELMo는 문장 임베딩 기법 중 하나로, 전이 학습(transfer learning)을 NLP에 접목시킨 언어 모델이다. 단어 sequence가 얼마나 자연스러운지에 대해 확률값을 부여하며, 입력한 단어들 뒤에 어떤 단어가 올지 맞추는 방식으로 학습된다. ELMo가 등장한 이후, 모델을 pre-train시킨 뒤 각종 downstream task (classification 등 우리가 풀고 싶은 task들)에 적용하는 방식이 일반화되었으며, 이런 과정을 pre-train model을 downstream task에 맞게 fine tuning한다고 ..
[NLP] 잠재 디레클레 할당 (LDA) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 토픽 모델링 (Topic Modeling)이라고 불리기도 하는 LDA (Latent Dirichlet Allocation)란, 각 문서에 어떤 주제가 존재하는지 나타내는 확률 모형이다. LDA는 말뭉치 이면에 존재하는 정보를 추론하는, 잠재 정보를 알아내는 과정이므로 잠재(Latent)라는 단어가 붙으며, 변수 중 디레클레 분포를 따르는 변수가 있기 때문에 디레클레(Dirichlet)라는 단어로 명명되어 있다. http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf http://www.cs.columb..
[NLP] Doc2Vec 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. Doc2Vec이란 이름에서 유추할 수 있듯이, Word2Vec을 문장 단위로 확장한 문서 임베딩 기법이다. (논문 pdf : https://cs.stanford.edu/~quocle/paragraph_vector.pdf) Doc2Vec 기법은 문장 전체에 대해 단어 k개씩 슬라이딩해가며 단어 k개가 주어졌을 때 다음 단어를 맞추는 과정을 학습한다. 예를 들어, 'The cat sat on the mat'라는 문장에서 k=3일 때 아래 알고리즘 그림처럼 the, cat, sat으로 on을 예측한다. 이 과정을 한 단어씩 sliding하며 문장 내..
[NLP] 가중 임베딩 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. word2vec, fast text 등 이전까지는 워드 임베딩에 대해 다뤄보았다. 그렇다면 문장을 기준으로는 어떻게 할까? 이러한 단어 임베딩을 문장으로 확장시키는 방법 중에 가중 임베딩이 있다. (pdf 링크 : https://openreview.net/pdf?id=SyK00v5xx) 가중 임베딩 방식에는 '문서 안의 단어는 글쓴이가 생각한 주제에 의존한다'는 내용이 기반되어 있다. 즉, 주제에 따라 단어 사용 양상이 달라진다는 것이다. 주제 벡터 c_s가 있을 때, 임의의 단어 w가 나타날 확률은 다음과 같다. P(w) : 주제와 상관없이 ..
[NLP] Swivel (Submatrix-Wise Vector Embedding Leamer) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. Swivel (Submatrix-Wise Vector Embedding Leamer)이란 2016년 구글에서 발표한 행렬 분해 기반 단어 임베딩 기법이다. (논문 pdf : https://arxiv.org/pdf/1602.02215.pdf) GloVe가 단어-문맥 행렬을 분해하는 반면, Swivel은 PMI 행렬을 분해하여 PMI의 단점을 커버할 수 있도록 설계되었다. 점별 상호 정보량 (PMI : Pointwise Mutual Information) 두 확률변수 사이 상관성을 수치화할 때 사용하는 단위로, 여기에서는 두 단어가 같이 등장하는 ..
[NLP] GloVe (Global Word Vectors) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. GloVe (Global Word Vectors)는 2014년 미국 스탠포드대에서 개발된 워드 임베딩 기법이다. (논문 pdf : https://www-nlp.stanford.edu/pubs/glove.pdf) 기존의 임베딩 기법인 Word2Vec은 단어 간 유사도 측정은 잘 할 수 있었으나, 사용자가 지정한 window size 내 문맥만 학습하기 때문에 말뭉치 전체에 대해 학습하기에는 어려웠다. 또한, LSA는 말뭉치 전반적인 통계량은 잘 파악되었지만 단어간 유사도 측정은 잘 하지 못한다는 단점이 있었다. GloVe는 이러한 Word2Vec..