본문 바로가기
Archive/데이터 분석 관련

[Data] Topic Modeling - LDA

by 다람이도토리 2022. 3. 11.

이번에는, 주어진 글에서 주제를 추출할 수 있는 "topic modeling"에 대해 알아보고자 한다.
그 중 한 가지 방법인 Latent Dirichlet Allocation, LDA에 대해 알아보고자 한다.

LDA는 뭐를 하는 건가?

LDA는 주어진 문서에 대해서, 각 문서들이 어떤 주제를 가질 수 있는지 "확률"로 표현하게 된다.

LDA의 가정

LDA는 다음을 가정하여 모델이 만들어지게 된다.

- 빈도수 기반의 표현 방법(ex-TF-IDF 등)
- 단어의 순서는 토픽에 기여하지 않는다.
- 문서에 사용할 토픽의 혼합을 확률 분포에 기반하여 결정한다.

LDA의 수행 순서

1) 토픽의 개수 k개를 지정한다.
2) 모든 단어를 k개 중 하나의 토픽에 할당한다.
   랜덤 할당이므로, 틀렸을 것이기에 학습 과정이 필요하다.
3) 모든 단어들에 대해, 다음 학습을 진행한다.
  - 자기 자신은 틀렸지만, 다른 단어들의 할당은 옳다고 가정한다.
  - 단어 w에 토픽 t가 할당되었다면, 
     O 하나의 문서에 토픽 t가 차지하는 비율
     O 단어 w를 가진 모든 문서들 중 토픽 t가 할당된 비율
이 두 가지를, 고려하여 LDA를 학습하게 된다.

그런데 최적 토픽수는 어떻게 찾을까?

(1) 혼란도 (Perplexity)

결국은, 주제 예측은 "확률"로 이루어지게 되는데, 이 확률 모델이 얼마나 잘 예측을 하는지를 평가하는 것이 혼란도 지표가 된다.

혼란도를 계산할 때는, 정보 엔트로피를 사용하게 되기 때문에 혼란도의 값이 낮을 수록, 주제를 잘 분류하고 학습이 잘 되었다고 볼 수 있게 된다.

(2) 주제 일관성(Topic Coherence)

토픽 모델링 결과로 나온 주제 기준, 각 주제에서 상위 N개의 단어를 추출한다...

상위 단어간의 유사도를 계산하여, 주제의 일관성을 측정할 수 있게 된다.
즉, 유사한 단어끼리 모일수록, 더 주제가 잘 잡혔다고 볼 수 있기 때문이다.