Deep Learning/Natural Language Processing

Document Classification (vector space model)

frances._.sb 2022. 3. 25. 16:02
728x90

document classification 관련 예시 코드는 여기를 확인해주세요.

 

 

  • Vector space model

- A single document is transformed into a single vector

: 각 문서(doc)에서 단어에 대한 p차원(본 그림에서는 5차원)인 vector로 표현하는 것이다.

 

 여기서 자주 사용되는 DTM, Topic Models, Doc2Vec 등이 있습니다.

 

 

  • Matrix-based Model

- A document is represented as a NxP matrix

  ▷ N : single doc에서 단어들의 최대 수 (e.g. 512 of BERT)

  ▷ P : word embedding dimension (e.g. 128)

 

: 위 그림에서 5차원의 embedding된 vector를 사용하는데, 만약 512차원이 되지 않는다면 padding = 0 을 주어 matrix를 채우게 됩니다.

 

 

  • Naive Bayesian Classifier

- baye's rule : 통계에서 가장 중요한 rule 중 하나

- naive : 모든 변수들이 통계적으로 독립이라고 가정 한다.

→ 위의 수식에서 마지막 줄처럼 따로 계산을 하게 된다.

 

 

  • Maximun likelihood estimates

- data에서 간단하게 frequencies를 사용할 수 있다.

수식 입력이 안되므로..

그러나! 문제는

긍정·부정을 구분할 때 (예를 들어)"fantastic"이라는 단어가 한 번도 등장하지 않았다면, 바로 위의 식에서

 $w_i = fantastic$으로 분자가 0이 되어버립니다. 즉,$\hat {P} = 0$

 

 ① spam인지 아닌지, 즉 positive or negative로 봤을 때, probabilities를 구합니다. (training corpus를 이용해서 계산)

  → 조건부 확률에 대한 곱을 계산합니다.

 

 ② smoothing techniques

 - Laplace (add-I) : 0이 되는 부분을 방지하기 위해, 분자와 분모에 각 단어의 등장 횟수 +1을 해줍니다.

    분자에 0이 되어도(j번 째 범주에 i번째 단어가 등장하지 않았더라도) +1이 되어있고, 분모에는 |vocab| 만큼 더해지게 됩니다.

 

 

  • k-Nearest Neighbor Classifier : 각 "?"에 해당하는 범주는 어디일까?

쉽게 유유상종(類 類相從) 근묵자흑(近墨者黑)을 생각하면 된다.

 

 ① prepare the referene data

 : 새로운 데이터가 들어와야 훈련이 가능하다는 점 (BoW representation or dist. representation)

 

 ② define the similarity measure

- 거리와 반비례

- Minkovski distance with order p

 

: p = 1, Manhattan distance

  p = 2, Euclidian distance와 같다.

 

 ③ initialize the set of candidate values for k

- k 가 너무 작으면 overfitting, 너무 크면 underfitting이 되므로 적절한 k를 찾아야 한다.

 

 ④ determine the combining rule : Majority voting과 Weighted voting 두 가지가 있다.

 - Majority voting : 전체 중 해당 class의 비율

 - Weighted voting : 더 가까운 distance가 영향력이 더 클 것이므로 distance의 역수를 취해 그 역수의 비율대로 가중치의 합이 1이 되도록 계산한 것.

 

 ⑤ 최적의 k를 찾아낸다.

 

  • k-NN issue  

1. Normalization

 

- normalization과 scaling은 k-nn 찾기 전에 끝내야 한다. (두 객체 간의 거리를 계산하는 문제에서는 반드시 한다는 점)

  : 측정 지표(단위)가 다르기 때문에 해야 한다.

 

2. Cut-off

- 각 class의 prior probability를 고려한다.

 : 만약 남자가 100명 여자가 400명인 dataset이 있을 때, random 하게 5명을 선택한다. 뽑은 사람이 남성일 기댓값 = 1, 여자일 기댓값 = 4이 된다.

여기서 새로운 X라는 사람에 대해서 비슷한 신체 정보가 비슷한 사람을 5명 뽑을 때 2명은 남성이었다. majority voting = 0.4가 된다. 0.4 < 0.5이므로 기계적으로 이는 여성이다!라고 결론을 내리는 것이 아니라,

prior probability과 비교하므로, (남성일 때 0.2었으므로) 0.4 > 0.2이므로 정보가 주어지지 않았을 때에 비해 정보가 주어졌을 때 남성의 비율이 높아졌으므로 이는 남자이다.

728x90
반응형

'Deep Learning > Natural Language Processing' 카테고리의 다른 글

Document Classification (RNN)  (0) 2022.03.28
Document Classification (CNN)  (0) 2022.03.26
[python] 3D 그래프  (0) 2022.02.10
[python] 데이터 시각화_matplotlib  (0) 2022.02.10
[python]Pandas  (0) 2022.02.09