본문 바로가기

[NLP] FastText 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. FastText는 Word2Vec에서 단어 대신 문자 단위로 n-gram을 한 모델로, 페이스북에서 2017년에 개발했다. (공식 github : https://github.com/facebookresearch/fastText) Word2Vec과 대부분 내용이 동일하며, 사용하는 단위가 다르다는 차이점이 있다. 예를 들어, "카카오톡"이라는 단어를 n=3인 n-gram을 나타낼 때, 이 끝을 의미하는 기호라면, 으로 나타내며, n-gram으로 나누지 않은 도 포함하여 나타낸다. 단어 임베딩은 아래와 같이 n-gram 벡터의 합으로 나타낸다. 이..
[NLP] Word2Vec (Skip-gram & CBOW) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 자연어처리 쪽에 관심이 있는 사람이라면 한번쯤 들어봤을 Word2Vec은 2013년 구글에서 발표한, 가장 보편적인 단어 임베딩 모델이다. CBOW와 Skip-Gram 모델이 제안된 Efficient Estimation of Word Representations in Vector Space 논문과, negative sampling 등의 최적화 기법을 제시한 Distributed Representations of Words and Phrase and their Compositionality 논문을 통해 발표되었다. Word2Vec의 종류를 나누자..
[NLP] NPLM(Neural Probabilistic Language Model) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. NPLM (Neural Probabilistic Language Model)은 2003년에 개발된 임베딩 기법으로, n-1개 단어 순서 기반으로 다음 n번째에 등장할 단어를 맞추는 n-gram 언어 모델이다. (논문 참고) 이는 기존의 언어 모델이 가지고 있던 문제점을 보완한 모델이다. 존재하지 않는 n-gram에 대한 확률 0으로 부여하는 문제점 차원의 저주 : n을 크게 설정하면 위와 같이 확률이 0이 되는 경우가 빈번하게 발생하는 문제점 단어 간 유사도를 계산할 수 없는 문제점 전반적인 모델 구조는 다음과 같으며, 아래부터 입력받아 위에서..
[NLP] 한국어 형태소 분석 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 한국어 NLP를 위해 사용할 수 있는 공개된 데이터 위키백과 : 한국어 말뭉치(corpus) 문서 중 가장 방대한 데이터 (https://dumps.wikimedia.org/kowiki/) (TMI - 위키백과는 누구나 편집할 수 있는 문서라서 자연어처리에서는 잘 이용하지 않을 것 같았다. 하지만 실제 현업에서뿐만 아니라 NLP 연구에서 보편적으로 쓰이는 데이터 중 하나인 것 같다. 관련 논문을 찾아봐도 wiki 관련 내용이 많이 나오고, 인턴을 시작할 때 가장 먼저 처리한 데이터도 위키백과였다.) KorQuAD : LG CNS에서 구축한 문서..
[NLP] 임베딩(Embedding) 방식의 종류 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 지난 포스트에서 모델에게 자연어를 입력하기 위해 임베딩을 실시한다는 내용을 다뤘다. 그렇다면 이 임베딩은 어떻게 만들까? 문장에 많이 쓰인 단어가 무엇인지, 어떤 순서로 등장하는지, 어떤 단어가 같이 나타나는지 등에 따라 임베딩이 진행되는데, 그 종류에 대해 알아보자. Bag of Words : 문장에 많이 쓰인 단어는? 주제가 비슷한 문서는 등장하는 단어도 비슷할 것이다. 즉, 단어 순서와 상관없이 많이 등장하는 단어는 그 주제랑 관련이 있을 것이다. 이러한 전제 하에 만드는 방식이 Bag of Words 임베딩이다. * Bag : 순서를 고..
[NLP] 임베딩(Embedding) 개념 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 임베딩(embedding)이란? 자연어처리에서 임베딩(embedding)이란, 일반적으로 사람들이 쓰는 언어(자연어)를 기계가 알아들을 수 있게 수치화(벡터화)하는 것으로, 단어나 문장을 벡터 공간에 끼워 넣는다(embed)는 의미를 가지고 있다. 임베딩을 통해 가능해진 것 단어나 문장 사이의 유사도 계산 코사인 유사도가 가장 높은 단어를 구하는 등의 계산 가능 (+ t-SNE 차원 축소 기법으로 시각화 가능) 단어들 사이의 의미/문법적 정보 도출 벡터 간 연산으로 단어 사이 문법적 관계 도출 (평가 방법으로는 단어 유추 평가(word anal..
[Deep Learning] 기울기 소실과 폭주 (Gradient Vanishing & Exploding) 방지하기 이 포스트는 위키독스의 딥러닝을 이용한 자연어 처리 입문을 기반으로 작성되었습니다. 이번에는 기울기(Gradient)가 사라지거나 폭주할 때를 막아주는 방법인 Gradient Clipping, 가중치 초기화(Weight Initialization), 배치 정규화(Batch normalization), 층 정규화(Layer normalization) 등에 대해 알아보고자 한다.
[Deep Learning] 딥러닝 기초 지식 (활성화 함수(activation function), 옵티마이저(optimizer), 역전파(back propagation) 등) 이 포스트는 위키독스의 딥러닝을 이용한 자연어 처리 입문을 기반으로 작성되었습니다. 이번에는 딥러닝을 배우기 전 꼭 알아야 하는 기초 지식인 퍼셉트론(perceptron)부터 Fully-Connected layer, 활성화 함수(Activation function), 순전파(Forward propagation)와 역전파(Back propagation) 과정, 손실함수(Loss function)와 옵티마이저(Optimizer) 종류, epoch, batch size, iteration, 그리고 과적합을 막는 방법 등에 대해 정리해보았다.