(01강) Introduction to NLP, Bag-of-Words

다양한 자연어 처리 task, 그리고 최근 동향에 대해 소개합니다. 자연어를 처리하는 가장 간단한 알고리즘 중 하나인 Bag-of-Words에 대해서 소개합니다. Bag-of-Words를 이용한 문서 분류 모델을 소개합니다.

1. NLP의 활용

1.1. Low-level parsing

  • Token & Tokenization 문장에서 각 단어를 Token이라하며, Token을 추출하는 과정을 Tokenization이라 한다.

  • Stemming 단어는 어미가 다양하게 변하는데(맑다, 맑은, 맑고) 이런 다양성을 없애고 의미(어근)만을 추출하는 것

1.2. Word and phrase level

  • NER (Named Entity Recognition) 고유명사 인식

  • POS (Part Of Speech) 품사나 성분을 알아내는 Task

  • Noun-phrase chuking

  • dependency parsing

  • coreference resolution

1.3. Sentence level

  • Sentiment Analysis (감정분석) 긍정, 부정 감정 분석 Task

  • Machine Translation (기계번역) 영한 번역시 단어변형과 어순 변형등을 고려한 Task

1.4. Multi-sentence and Paragraph level

  • Entailment Prediction 두 문장간의 논리적인 내포 혹은 모순관계를 예측하는 Task ex) 나는 밥을 먹었다. / 나는 오늘 하루종일 아무것도 먹지 못했다 => 모순

  • Question Answering 질문에 대해 응답하는 Task. 구글 검색, siri 등

  • Dialog Systems 챗봇과 같이 대화를 수행하는 자연어 기술

  • Summarization 문장 요약

1.5. Text Mining

KDD, The WebConf(WWW), WSDM(CIKM, ICWSM)

  • 트랜드 분석

  • 키워드 분석

1.6. Information Retrieval

SIGIR, WSDM, CIKM, RecSys

  • 추천시스템 사용자가 좋아할 법한 데이터를 추천해주는 시스템으로 검색분야에서 등장한 새로운 Task

NLP는 꾸준한발전을 이루고 있다.

  • Word2Vec or GloVe

  • RNN-family models(LSTMs and GRUs)

  • Attention modules and Transformer models

  • Rule 기반의 번역에서 RNN기반의 번역을 통해 더 좋은 성능을 가져오게 되었다.

Transformer 이후, 각 Task 별로 모델을 구성하지 않고 Pre-Trained Model이 등장함으로써 Transfer Training이 가능해졌다. (BERT, GPT2, GPT3 ...)

단 사용되는 리소스가 매우 커서 대기업 위주로 활발하게 연구가 되고있다.

3. Bag-of-Words

리스트에 단어를 담는다는 느낌으로 Bag-of-Words 라는 명칭을 가지게 되었다.

3.1. Working Steps

  • Step1 : Constructing the vocabulary containing unique words

    • "John really really loves this movie", "Jane really likes this song"

    • vocab : {"Jone", "really", "loves", "this", "movie", "Jane", "likes", "song"}

  • Step2 : Encoding unique words to one-hot vectors

    • vocab : {"Jone", "really", "loves", "this", "movie", "Jane", "likes", "song"}

    • {[1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], ..., [0, 0, 0, 0, 0, 0, 0, 1]}

    • For any pair of words, the distance is 2\sqrt{2}

    • For any pair of words, cosine similarity(내적값) is 0

    "John really really loves this movie" => [1, 2, 1, 1, 1, 0, 0, 0] "Jane really likes this song" => [0, 1, 0, 1, 0, 1, 1, 1]

3.2. NaiveBayes Classifier for Document Classification

Bag of Words로 나타낸 문서의 분류를 처리하는 대표적인 방법이다.

  • C: Class of Document (ex. sport, financial etc..)

  • D : Document

  • MAP : Maximum a posteriori = most likely class

Document "d" 가 주어졌을때, 각 Class "c"에 해당할 조건부 확률이 최대가 되도록 하는 값을 구하는 것. Line 2에서 Line 3으로 넘어가는 것은 d라는 문서를 고정하였기 때문에 P(d)를 상수로 볼 수 있어 제거가 가능하다.

Document "d"에서 각 단어가 독립이라면 아래와 같이 나타낼 수 있다.

P(dc)P(c)=P(w1,w2,,wnc)P(c)=P(c)wWP(wc) P(d \mid c) P(c) = P(w1, w_2, \dots, w_n \mid c) P(c) = P(c) \prod_{w\in W}P(w \mid c)

예를 들어 보도록 하자, 각 Training Data와 Test Data가 아래와 같이 주어져있다면, 각 Test Data의 각 토큰 별 확률과 Test 문서 d=5가 cv, nlp일 확률을 구할 수 있다.

  • P(ccvd5)=P(ccv)wWP(wccv)=12×114×114×114×114P(c_{cv} \mid d_5) = P(c_{cv}) \prod_{w\in W}P(w \mid c_{cv}) = \frac{1}{2} \times \frac{1}{14} \times \frac{1}{14} \times \frac{1}{14} \times \frac{1}{14}

  • P(cnlpd5)=P(cnlp)wWP(wcnlp)=12×110×210×110×110 P(c_{nlp} \mid d_5) = P(c_{nlp}) \prod_{w\in W}P(w \mid c_{nlp}) = \frac{1}{2} \times \frac{1}{10} \times \frac{2}{10} \times \frac{1}{10} \times \frac{1}{10}

여기서 우리가 볼 수 있는 것은 만약 한 단어(토큰)이라도 Training 의 단어 집합에 속하지 않는다면 그 확률값은 0이 되어 해당 클래스로 분류되지 않게 된다는 것이다.

Last updated