이번에는, 주어진 글에서 주제를 추출할 수 있는 "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개의 단어를 추출한다...
상위 단어간의 유사도를 계산하여, 주제의 일관성을 측정할 수 있게 된다.
즉, 유사한 단어끼리 모일수록, 더 주제가 잘 잡혔다고 볼 수 있기 때문이다.
'Archive > 데이터 분석 관련' 카테고리의 다른 글
[Data] Shapely Value 간단하게 알아보기 (0) | 2022.03.17 |
---|---|
[Data] 회귀진단이란 무엇일까? (0) | 2022.03.14 |
[Data] MAB(Multi-Armed Bandits) 찍먹하기 (0) | 2022.03.04 |
[Data] Missing Value의 여러 대체 방법 (0) | 2022.02.23 |
[Data] PCA의 주성분 개수 결정 방법 (0) | 2022.02.17 |