Tensorflow 2 NLP(자연어처리)/문장 임베딩 5

[4-5] 잠재 디리클레 할당(LDA, Latent Dirichlet Allocation)이란? + 베이즈 정리,깁스 샘플링

잠재 디리클레 할당(LDA)은 주어진 문서들에 대하여 각 문서에 어떤 토픽(주제)들이 존재하는지에 대한 확률 모형이다. 말뭉치 이면에 잠재된 토픽(주제)를 추출함으로써 토픽 모델링(topic modeling)이라 부르기도 한다. 문서들의 토픽 활률 분포로 각각 알아낸 다음 이를 이용해 문서를 임베딩한는 것이다. ​ 참고 자료는 다음과 같다. 1. 글쓴이가 글을 쓸 때 의도를 가지고 쓴다. 2. 그러므로 그 의도에 유사한 주제들이 글 속에 뭉텅이씩 차지하고 있을 것이다. 3. 그리고 주제에 해당하는 단어들이 글 속에 쓰였을 것이다. 특정 주제에 대한 글을 쓸 때 자주 쓰는 단어들 말이다. ​ 하지만, 우리가 볼 수 있는 것은 문서(글) 내의 단어들 뿐이다. 우리는 단어들로부터 문서의 의도를 추출해내고 그 ..

[4-4] Word2Vec에서 Doc2Vec까지

Word2Vec은 내 블로그에서 이미 다룬적이 있는 내용이다. 하지만 Doc2Vec은 Word2Vec의 응용형으로 생각 할 수 있기 때문에 다시한번 집는 동시에 이미지를 이용한 공간적 이해를 정확하게 해보면 좋을 것이다. ​ Word2Vec 단어 임베딩으로써 Word2Vec의 기본 개념은 1. 타깃단어와 문맥단어(주변단어)를 문장 내에서 선택한다. (window 사이즈(주변단어로 몇개까지 인정할것인가)를 정해놓아야 한다.) 2. 타깃단어와 문맥단어의 벡터 공간상 비슷한 공간에 위치하도록 한다. (유사한 방향을 보도록 = 코사인 유사도가 크도록) 3. 동시에 문맥단어가 아닌 단어(negative sample에서 negative word)들을 몇개 뽑아(negative sampling) 다른 방향으로 놓는다..

[4-3] 잠재 의미 분석(LSA), TF-IDF를 이용한 문서 임베딩

우리는 단어 임베딩을 할 때, LSA를 써서 단어 임베딩의 품질을 높였다. LSA를 사용하면 중심 단어와 문맥 단어(주위단어) 간의 내재적인 의미를 효과적으로 보존하고, 입력 데이터의 노이즈,희소성(sparsity : 행렬에 0많은 것 해결) 을 보완 가능하다. ​ 하지만 우리는 LSA의 성질을 사용하여 문장임베딩도 가능하다. ​ 1. 일단 형태소 분석기를 통해 문서들 내의 명사를 추출한다. 2. TF-IDF행렬을 만든다. (단어가 특정 문서에 어느정도의 영향을 끼치고 있는가를 수치적으로 표현 가능) 3. LSA를 하여(TruncatedSVD이용) 품질을 보존 한 채, 차원축소 4. 특정 문서를 가장 특징지을 수 있는 단어들(특정 문서의 정보성이 높은 단어들 = TF-IDF가 높은 단어)을 문서를 대표하..

[4-2] PCA(주성분 분석)와 SVD(특이값 분해) 차원축소를 완벽하게 이해하기

오늘은 정말 중요한 PCA와 SVD (특이값 분해)차원축소에 대해 다룰 것이다. 선형대수학을 배웠으면 천천히 따라가면서 충분히 이해 할 수 있을 것이다. 부디 이를 정확이 이해하고 싶다면 자신만의 언어로 만드는 시간을 들여 곱씹어 갔으면 좋겠다. ​ 솔직히 개념만 단순히 들으면, 직관적인 이해보다는 때려넣기식으로 느낄 수 있다. 이번 정리는 눈에 보이도록 하여 직관적인 이해를 가능하게 할 것이다. ​ ​ ​ 가장먼저 PCA를 설명하겠다. SVD는 더 간단하므로 PCA를 이해하고 나면 껌으로 보인다. PCA PCA를 설명하기 전에 차원축소에도 종류가 있다. 1. Feature extraction과 2. Feature selection으로 나뉜다. ​ Feature extraction은 모든 feature들..

[4-1] 가중 임베딩, SIF(Smooth Inverse Frequency)란?

SIF는 (Arora et al., 2016)에서 소개된 단어 임베딩을 문장 수준 임베딩으로 확장하는 기법이다. ​ 해당 논문은 다음과 같다. A Simple but Tough-to-Beat Baseline for Sentence Embeddings SIF의 구조를 간단히 정리해 보면 다음과 같다. 1. 문장 내 단어의 등장은 글쓴이가 의도한 주제와 연관이 깊다. 2. 하지만 주제와 관련되지 않은 단어들도 문장 내 포함가능하니 이 부분도 고려하자. 3. 문장 내 등장하는 단어들의 벡터 정보를 가지고(기존 단어 임베딩 기법을 통해 얻을 수 있음) 그 문장을 대표하는 벡터를 만들어 보자. ​ 이다. ​ ​ ​ ​ 이제 논문의 내용을 천천히 따라가 보자 ​ 가장먼저 논문 요약부분이다. 여기서 PCA/SVD부분..