Books/한국어 임베딩 6

[Books] Weighted Embedding

가중 임베딩(Weighted Embedding)은 단어 임베딩을 문장 수준 임베딩으로 확장하는 방법이다. 제안한 논문에서는 문서 내 단어의 등장은 저자가 생각한 주제에 의존한다고 가정한 후 분석을 수행한다. 즉, 주제에 따라 단어의 사용 양상이 달라진다는 것이다. 이를 위해 주제 벡터(Discourse vector) $\text{c}_s$라는 개념을 도입했다. 본 논문에서는 $\text{c}_s$가 주어졌을 때 어떤 단어 $w$가 등장할 확률을 다음과 같이 정의했다. \[ \text{P}(w|\text{c}_s) = \alpha \text{P}(w) + (1-\alpha) \frac{\exp(\tilde{c}_s \cdot \text{v}_w)}{\text{Z}}\] \[ \text{where} \ \t..

[Books] 행렬 분해 기반 언어 모델 (LSA, GloVe, Swivel)

Contents 행렬 분해는 단어-문서 행렬이나 TF-IDF 행렬 등의 행렬 구조에 차원 축소 방법을 적용해 차원의 수를 줄여 계산 효율성을 키우고, 행간에 숨어 있는 잠재 의미를 파악하는 것이 목표다. 언어 모델이 가질 수 있는 행렬은 단어-문서 행렬, TF-IDF 행렬, 단어-문맥 행렬, 점별 상호 정보량(PMI) 등이 존재하는데, 이번 글에서는 PMI 행렬의 특수한 버전인 PPMI 행렬에 대해서 다루어볼 것이다. PMI는 두 확률변수 사이의 상관성을 계량화한 지표이며, 두 단어의 등장이 독립을 가정했을 때 대비 얼마나 자주 같이 등장하는지를 수치화한 것이고, 수식은 다음과 같다. \[ \text{PMI}(A,B) = \log \frac{\text{P}(A,B)}{\text{P}(A) \times \..

[Books] 확률 기반 언어모델 (NPLM, Word2Vec, FastText)

Contents 단어수준 임베딩이란 추후 나올 문장수준 임베딩이 나오기 이전에 나온 방법론으로, 단어들을 임베딩해 모델을 구축하는 것을 의미한다. 단어수준 임베딩은 예측기반 모델(rediction based model)과 행렬 분해기반 모델(Matrix Factorization based model)이 존재한다. Prediction based model NPLM, Word2Vec, FastText Matrix Factorization based model LSA, GloVe, Swivel 이번 글에서는 NPLM, Word2Vec, FastText 등의 확률 기반 언어모델에 대해서 다룰 것이고, 행렬 분해 기반 언어모델은 다음에 다루어볼 것이다. Prediction Based Model NPLM (Neur..

[Books] 한국어 전처리

이기창님께서 작성하신 한국어 임베딩을 정리 및 요약했습니다. 영어의 경우 상대적으로 전처리하는 작업이 수월하다. 하지만 한국어의 경우 띄어쓰기가 사람마다 제각각일 수 있고, 단어의 순서가 바뀌더라도 해석하는데 있어 문제가 되지 않는다. 그로 인해 다른 언어에 비해 전처리하는 과정이 어렵다. 하지만 이 책에서는 한국어를 전처리하는 과정을 상세히 작성해주었기 때문에 많은 도움이 될 것이다. 본 책에서는 위키피디아, 네이버 영화 말뭉치 등 여러 오픈 데이터를 기반으로 한국어 전처리를 수행하였다. 한국어 형태소 분석기에는 은전한닢, 꼬꼬마, 한나눔, Okt, 코모란 등 5개의 오픈소스 형태소 분석기가 존재하는데 KoNLPy에서 모두 사용 가능하도록 제공해주고 있다. 또한, 형태소 분석기를 지도 학습 형태소 분석..

[Books] 임베딩(embedding)의 종류

이기창님께서 작성하신 한국어 임베딩을 정리 및 요약했습니다. 컴퓨터는 사람이 사용하는 자연어를 제대로 이해할 수가 없다. 그렇기 때문에 기계가 이해할 수 있도록 변환해주는 작업이 필요하다. 자연어가 가지는 통계적인 패턴(statistical pattern)을 벡터로 변환해주는 것이다. 임베딩을 만들 때 쓰는 통계 정보는 단어의 빈도, 언어 모델, 분포 가정으로 총 세 가지가 존재한다. 단어의 빈도 단어의 빈도는 BoW(Bag of Words)라고도 부르며, 어떤 단어가 많이 쓰였는지를 중요시한다. 순서를 고려하지 않고 단어들을 파싱(parsing)해서 단어의 빈도 수만 확인하는 방법이며, 대표적인 기법으로는 TF-IDF(Term Frequency-Inverse Document Frequency)이다. 딥..

[Books] 한국어 임베딩 시작하기

이기창님께서 작성하신 한국어 임베딩을 정리 및 요약했습니다. 한국어 임베딩은 한국어 자연어 처리를 하는 것에 있어 바이블과 같은 책이라고 말할 수 있다. 본 책의 내용을 간략하게 설명하고 본인의 스타일대로 추가 작성할 것이다. 일단 시작하기에 앞서 환경 설정 부터 진행할 것인데, 본인은 도커 환경에 컨테이너를 설치한 후 로컬 호스트에 연결시켜서 사용할 것이다. $ docker pull ratsgo/embedding-cpu docker run -it --rm --name ko_embedding \ -p 8888:8888 -v C:\[local directory]\:/notebook/embedding \ ratsgo/embedding-cpu:latest 로컬 호스트의 포트와 컨테이너의 포트를 연결시켜 준 후..

반응형