Study/NLP

[WikiDocs] 딥러닝 자연어 처리 입문 노트 정리, Part 2

eatchu 2022. 4. 5. 13:47
반응형

 

해당 포스트는 [WikiDocs] 딥 러닝을 이용한 자연어 처리 입문 을 보고 공부하면서 이론 위주의 요약 및 정리한 내용을 담았습니다. 

 

자연어를 어떻게 수치화 할 것인가?
- 이산표현의 corpus 수치화 방법들

 

   언어 모델 Language Model   

 

다양한 단어의 표현 방법

  1. 국소 표현(Local) = 이산 표현(Discrete)
    • 단어 그 자체만을 가지고 특정값을 매핑하여 단어를 표현 : Integer Encoding
  2. 분산 표현(Distributed) = 연속 표현(Continuous)
    • 주변을 참고하여 단어를 표현

Part2에서 우리는 Local Representation에 대한 수치화 방법들을 알아볼 것

 


One Hot Vector

  • 단어 개수가 늘어날 수록 벡터 차원이 너무 커져 비효율적
  • 단어 간 유사성을 알 수 없음
  • 해결 : 다차원 공간에 벡터화
    1) count based : LSA, HAL
    2) predict based : NNLM, RNNLM, Word2Vec, FastText
    3) both : GloVe

SLM, Statistical Language Model

 

$x_1, x_2, x_3, x_4, x_5$ 이렇게 다섯개의 단어 존재할 때 조건부 확률에 대한 정의를 통해 문장의 확률을 구할 수 있다. 

$P(x_1, x_2, x_3, x_4, x_5) = P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)P(x_4|x_1,x_2,x_3)P(x_5|x_1,x_2,x_3,x_4)$

전체 문장이 나올 확률은 다음 단어에 대한 예측 확률을 모두 곱하는 것

  • Sparsity problem
    • 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못함
    • 코퍼스에 확률을 계산하고 싶은 문장이나 단어가 없을 수 있음

 

N-gram

  • 카운트에 기반한 통계적 접근으로 SLM의 일종
  • 일부 단어 n개만 고려하는 접근 방법을 사용함 : n-1개만큼의 이전 단어로 n번째 단어 예측
    Ex) $P(is | An adorable little boy)$ -> $P(is | little boy)$
  • N-gram의 한계
    1) Low Accuracy : 뒤의 단어 몇개만을 선택하기 때문에 문맥에 맞지 않는 단어가 선택될 수 있음
    2) Sparsity Problem : 여전히 존재하는 희소 문제
    3) Trade-off : N이 커지면 정확도는 높아질 수 있지만 Sparsity가 커짐

 

PPL, Perplexity

  • 언어 모델을 평가하기 위한 성능 지표
  • 선택할 수 있는 가능한 경우의 수를 의미하는 분기계수.
    즉, PPL값 k의 의미는 모델이 단어를 예측할 때 평균 k개의 단어 중에서 고민하고 있는 것.
  • 수치가 낮을수록 성능이 좋다는 것을 의미

 


 

BoW, Bag of Words

  • 단어의 순서는 전혀고려하지 않고 단어들의 출현 빈도에만 집중하는 텍스트 데이터의 수치화 표현 방법
  1. 각 단어에 고유한 정수 인덱스 부여
    1) "소비는 할수록 소비가 커진다"
    2) {소비:0, 는:1, 할수록:2, 가:3, 커진다:4}
  2. 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터 생성
    1) [2, 1, 1, 1, 1]

 

 

DTM, Document-Term Matrix

  • 서로 다른 문서들의 BoW를 결합한 표현 방법
  • 다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것
  • 한계
    1. Sparse representation
    2. 단순 빈도 수 기반 접근

 

 

TF-IDF, Term Frequency-Inverse Document Frequency

  • DTM 내에 있는 각 단어에 대한 중요도를 계산할 수 있음
  • DTM을 생성한 후 TF-IDF 가중치를 부여하며 다양한 작업에 쓰임
    1) 문서 유서도 구하는 작업
    2) 검색 결과의 중요도를 정하는 작업
    3) 문서 내 특정 단어의 중요도를 구하는 작업
  • $tf(d, t)$ : 특정 문서 d에서 특정 단어 t의 등장 횟수
  • $df(t)$ : 특정 단어 t가 등장한 문서의 수
  • $idf(d, t)$ : $df(t)$에 반비례하는 수
반응형