본문 바로가기

[NLP] 잠재 의미 분석 (LSA) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 잠재 의미 분석 (LSA : Latent Semantic Analysis)이란, 특이값 분해를 통해 단어-문서 행렬, TF-IDF 등의 행렬 차원 수를 줄이고 잠재적 의미를 이끌어내는 방법론이다. 단어-문서 행렬 등에 잠재 의미 분석을 하여 나온 결과를 워드 임베딩으로 사용할 수 있다. 특이값 분해 특이값 분해 (SVD : Singular Value Decomposition)이란 행렬을 직교 행렬들과 대각 행렬로 분해하는 것을 말하며, 아래와 같이 나타난다. U와 V는 각각 AA^T와 A^TA를 고유값 분해하여 얻어진 행렬이며, Σ의 대각성분을..
[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..
[NLP] 토픽 모델링 (Topic Modeling : LSA & LDA) 이 포스트는 위키독스의 딥러닝을 이용한 자연어 처리 입문을 기반으로 작성되었습니다. 이번에는 문서의 주제를 찾아주는 토픽 모델링(Topic Modeling) 기법인 잠재 의미 분석 (LSA: Latent Semantic Analysis)과 잠재 디레클레 할당 (LDA: Latent Dirichlet Allocation)에 대해 정리해보았다.