강의 복습 내용

  • 단어를 벡터로 표현하는 방법, 문서를 벡터로 표현하는 방법
  • 전체적인 NLP 트렌드
  • NLP의 word2vec과 glove를 알아보기

얻은 지식

  • bag-of-words
  • word Embedding
    • word2vec
    • GloVe

NLP소개

  • natural language processing
  • NLU
    • 문장을 이해
  • NLG
    • 문장을 생성
  • 자연어 처리 관련 기술을 학습
  • 주어진 문장을 보고, 다음 단어를 예측하는 language modeling
  • 기계번역 등

natural language processing 분야

  • 학회
    • ACL,EMNLP,NAACL
  • low-level
  • word and phrase level
  • sentence level
  • multi-sentence and paragraph level(문단)
    • entailment prediction
    • question answering
    • dialog systems
    • summarization 요약

text mining 분야

  • 빅데이터와 관련되어있다.
  • 과거의 모든 기사들로부터 특정 키워드에 따라 분류하고 분석하고 트렌드를 분석할때
  • 서로다른 키워드도 비슷한 의미일때 grouping이 필요
  • 사회과학(sns)와 많이 관련되어있다.

information retrieval 분야

  • 검색 기술을 연구
  • 검색 기술은 어느정도 성숙하여 다른 분야에 비해 성장이 느리다고 한다.
  • 추천 시스템 기술을 연구

자연어 처리의 발전과정

  • 인공지능과 딥러닝이 활발이 적용
  • 단어단위로 분리하고, vector로 표현하는 과정이 필요
  • RNN모델을 사용하였으나, 성능이 더 좋은 transformer모델을 사용
  • 기계번역시 언어의 규칙을 통해 번역하기 보단, 딥러닝을 통해 단어단위로 학습을 진행한게 더 성능이 좋았다고 한다.
  • 자가지도 학습(self-supervised training)으로 일부를 지우는 데이터를 학습하므로 문장을 이해하는 학습방식이 있다.
    • gpt-3
  • 자가지도 학습은 많은 데이터와, 리소스가 필요하다.

Bag-of-Words

  • 딥러닝 이전에 많이 활용된 단어와 문장을 숫자로 표현하는 방법

예시

  • 문장으로 부터 단어단위로 분리하여, 사전(vocabulary)으로 데이터를 저장한다

  • “john really really loves this movie”
    • {john,really,loves,this,movie}
  • 이 vacabulary를 one-hot vector형식으로 표현한다.
    • 각 단어마다 거리는 루트2, 유사도는 0으로 나타난다.
    • 단어의 의미에 상관없이 모두 동일한 관계를 가지고 있다.
  • 하나의 문장에 나오는 단어들의 one-hot vector들을 더한값으로 표현이 가능하다.
    • 이를 bag-of-words vector라고 한다.
    • 가방에 각 단어의 one-hot vector를 넣는다고 생각

NaiveBayes Classifier

  • 문서가 분류되는 카테고리가 C개
    • 정치,과학,연예 등
  • 특정한 문서 d

\(C_{MAP} = \underset{c\in C}{argmax} P(c \mid d)\)

  • C에서 하나의c에 대해 가장 높은 확률을 찾는것이 목적
    • MAP이 그런 의미, maximum a posteriori = most likely class

\(\underset{c\in C}{argmax} \frac{P(d \mid c)P(c)}{P(d)}\)

  • bayes 규칙을 통해 식을 표현
  • 분모 P(d)는 d는 하나의 고정된 문서이므로 상수로 본다.
    • 이는 무시가 가능하다고 한다.

\(C_{MAP} = \underset{c\in C}{argmax} P(d \mid c)P(c)\)

  • P(d)가 무시되어 이렇게 표현된다.

\(P(d \mid c)P(c) = P(w_1,w_2,\cdots ,w_n \mid c)P(c) = P(c)\prod\nolimits_{w_i\in W} P(w_i\mid c)\)

  • P(d c)는 c가 고정되어있을때, d가 나타날 확률을 표현
  • d문장은 각 단어 w1부터 wn까지의 단어가 동시 사건으로 볼 수 있다.
  • c가 고정되었을때 각 단어가 등장할 확률이 독립이라 할때, 곱으로 표현을 할 수있다.

word Embedding

  • word2Vec, GloVe
  • 단어를 특정한 차원의 vector로 바꾸는것
    • 특정한 좌표상에 단어를 하나의 점으로 표현하는것
  • 의미상의 유사도를 각 단어마다의 거리로 표현된다.
    • cat과 kitty는 비슷, hamburger와 cat은 멀다.
  • 예시로 긍정표현들은 비슷한 vector표현을 가질것이다.2

Word2Vec

  • word embedding을 학습하는 방법
  • 유사한 문맥을 가진 문장의 단어들은 비슷한 의미를 가질것이다는 가정으로 시작
    • 고양이가 갸르릉 거린다.(the cat purrs)
    • 고양이가 쥐를 사냥한다 (this cat hunts mice)
    • cat이라는 단어를 기준으로 purrs,hunts,mice,the,this가 관련있다고 생각 한다.
  • 하나의 단어는 주변의 단어들을 통해 의미를 알 수 있다는 아이디어
    • 하나의 단어를 숨기고 주변 단어들을 통해 예측하는 방식으로 학습

word2vec의 학습

  • 주어진 문장이 “i study math”
  • 학습데이터를 word별로 분류하는 tokenize를 진행
    • {i,study,math} vacabulary로 표현
    • 각 단어는 사전의 크기의 one-hot vector를 가진다.
    • i=[1,0,0], study=[0,1,0] math = [0,0,1]
  • sliding window를 통해 중심단어와 앞뒤의 단어를 각각 출력으로 가지는 쌍을 구성한다.
    • window가 3이면 바로 앞과 뒤만 본다.
    • (i,study) i 일때, 바로 뒤의 study
    • (study,i) study일때, 바로 앞의 i
    • (study,math) study 일때, 바로 뒤의 math
  • 학습을 위해 2layer의 네트워크를 구성
    • \(y = softmax(W_2W_1x)\)로 계산된다.
      • 계산이 좀 특이하게 뒤에서부터 계산된다.
    • 입력과 출력은 vacabulary의 크기가 된다.
    • 히든레이어의 노드수는 사용자의 hyper parameter로 정해진다.
      • word embedding의 좌표공간의 차원수로 정해진다.
      • 여기서는 2차원으로 설정
    • W2는 (3,2) W1은 (2,3)x는 (3,1)이 된다.
  • 입력(3,1)에서 히든레이어는 W1x가 계산되어 (2,3)(3,1)로 (2,1)을 가진다.
  • 출력에는 W2 W1x이므로 (3,2)(2,1)로 (3,1)이 된다.
    • 나온 결과는 softmax를 한다.

이미지

  • 초반 w1과 곱해질때 입력이 one-hot이므로 1로된 부분만 추출하는 형식이 된다.
    • 이를 embedding 레이어라고 한다.
    • 이 과정에서는 행렬곱이 아닌 one-hot의 1이되는 index의 값만 뽑아오는 방식으로 진행한다.
  • 이후 w2와 행렬곱이후 결과의 softmax가 ground truth에 맞게 학습을 위해서는 정답을 +무한대, 아닌부분을 -무한대로 설정하여 학습을 한다.
    • w1과 w2에서 정답에 위치한 부분은 높게, 아닌부분은 낮도록 조정하면서 학습한다.
  • 특징
    • 백터 연산으로 의미적으로 연관관계를 알 수 있다.
    • 여-남 = 여왕-왕

GloVe

  • global vectors for word representation
  • 언어마다의 관계를 미리 계산하여 학습한다고 한다.
  • 윈도우에서 동시등장확률을 미리 계산
    • w2v는 하나씩 보면서 학습하게 되어 전체적인 부분을 못본다고 한다.
  • 빠르다.
  • 관계
    • 여자,남자와 성별이 반대라는 개념을 학습하여 brother,sister의 관계도 파악
    • 우편번호, 도시 와같은 관계
    • slow, slower, slowest와 같은 형용사의 관계도 학습한다.

좀더 찾아보기

  • Bag-of-Words
  • one-hot-encoding
  • Naive Bayes Classifier
  • word embedding
  • word2Vec
  • GloVe

피어세션 정리

  • 다들 쉬었다.
    • 어느정도 공부하심
  • 오토인코더의 모든것 볼만하다.
  • 질문
    • word2vec의 차원이 왜 2개인지
    • class 와 label
  • 두가지 방식 tensor부분이 어렵다.
  • 역전파란?
  • loss와 cost, objective function 차이
    • 참고
    • cost는 loss의 평균
      • loss는 batch할때 마다, cost는 전체

further question

  • word2vec의 단점
    • 윈도우의 크기만큼의 관계를 보기때문에 전체적인 정보가 반영되기 어렵다.
  • glove
    • w2v는 하나씩 다해야한다.
    • glove는 문장 전체에 대해 윈도우크기에서 동시 등장을 계산 다 한다.

연휴후기

  • 요새 의욕이 많이 떨어지고 무기력하고 집중력이 많이 떨어졌다.
  • 연휴동안 뭔가 하고싶었는데, 다 안하고 그냥 쉬었다.
  • 먼저 주어진 과제부터 하나씩 해결하면서 진행하면서 의욕을 높여야겠다.