본문 바로가기

데이터 다루기/Textmining

(5)
[Text mining] 5. Word2vec (4) Negative sampling 안녕하세요. 이번에는 Negative sampling에 대해서 배워볼게요. Negative sampling은 중심단어를 학습할 때, 모든 단어의 weight들을 업데이트시키지 않게 하는 아이디어입니다. 보통 주변 단어 + 20개의 negative samples 를 사용하여 학습을 진행한다고 합니다. 예를 들어서, 100만개의 단어가 들어있는 corpus가 있습니다. ​ 이 안에 I live in Seoul and like data analysis. 이라는 문장이 들어 있습니다. 'Seoul' 이라는 단어를 학습할 때, window size = 2 라고 가정할 경우, 주변 단어 (Positive sampling) 은 'live', 'in', 'and', 'like' 입니다. 이 때, negative sam..
[Text mining] 4. Word2vec (3) Hierarchical Softmax 안녕하세요. 이번 포스팅에서는 Skip-gram Word2vec의 계산 복잡성을 해결하기 위한 방법으로 Hierarchical Softmax에 대해 배워보도록 하겠습니다. ​ Skip-gram Word2vec에서 하나의 중심단어의 embedding 시에 100만개의 단어가 Corpus에 있다면, 벡터의 내적을 100만번 진행해야 했습니다. 이는 엄청난 계산 과정이죠. ​ 하지만 Hierarchical Softmax 방법을 사용하면 이진 분류를 통해 log2(100만) 으로 계산량이 줄어듭니다. 이는 실제로 엄청난 차이입니다. log2(100만) 은 사실 보기에만 커보이지만 19~20 사이의 값을 가집니다... ​ 논문에서 Hierarchical Softmax는 아래와 같이 설명이 됩니다. 처음에 이 식만..
[Text mining] 3. Word2vec (2) Skip-gram 안녕하세요. 이번포스팅에서는 지난 포스팅에 이어서 Word2vec의 학습에 대해서 배워볼려고 합니다. 이번에는 Skip-gram 방법입니다. ​ CBOW 방법과 학습과정은 굉장히 유사하니 앞 포스팅을 꼭 읽어주세요! 2020/01/01 - [데이터 다루기/Textmining] - [Text mining] 2. Word2vec (1) CBOW Skip-gram 은 CBOW 방법과 반대로, 중심 단어로부터 주변 단어들을 학습하는 것입니다. CBOW와 마찬가지로 Look-up table을 사용해, 원하는 차원으로 embedding 합니다. 그리고 이번에는 중심단어로 부터, 주변 단어를 예측해야 하므로 window size = 2 일 때, 총 4번의 학습을 진행합니다. 즉, W`의 파라미터들을 4번의 학습을 통..
[Text mining] 2. Word2vec (1) CBOW 안녕하세요. 이번 포스팅에서는 Word2vec에 대해서 배워보도록 하겠습니다. Word2vec은 Mikolov가 2013년에 제안한 방법론으로, 현재 인용 수가 17000이나 됩니다. "Distributed Representations of Words and Phrases and their Compositionality" 가 논문 제목입니다. ​ Word embedding에 있어서, 근처에 나오는 단어들은 유사한 벡터를 가지도록 하기 위해서 Mikolov는 신경망 구조를 채택했습니다. ​ "I like studying data analysis." 라는 문장이 주어져있다고 합시다. 저희는 studying 이라는 단어의 정보를 주변의 단어의 정보로부터 얻고자 합니다. Word2vec에는 window size..
[Text mining] 1. Word embedding 안녕하세요. 이번 카테고리에서는 Text mining에 대해서 배워보려고 해요. Text mining의 가장 기본적인 개념으로 Word embedding이 있습니다. 텍스트 분석을 위해서는 우선 텍스트에 존재하는 단어들을 정형 데이터로 바꾸어 주어야 합니다. 이를 Word embedding 이라고 정의합니다. ​ 텍스트 분석을 해본 경험이 있으신 분들은 아시겠지만, 가장 기본적인 Word embedding 방법이 있습니다. 바로 Term-document matrix를 사용하여, one-hot encoding vector로 표현하는 것입니다. one-hot encoding vector는 벡터의 성분이 하나만 1이고 나머지는 0인 것을 의미합니다. ​ 예를 들어볼게요. I am a blogger studyi..