오랜만의 토픽 모델링 공부입니다. 오늘 포스팅할 토픽 모델은 Correlated Topic Model(CTM)입니다. 이 모델의 특징은 이름에서 알 수 있듯이 주제 간의 상관 관계를 고려할 수 있다는 것입니다. 이 모델은 LDA 토픽 모델을 개발하여 토픽 모델링이라는 기법을 태동시킨 장본인인 D. Blei가 2006년에 개발한 LDA의 업그레이드된 모형이라고 할 수 있습니다. LDA는 CTM과는 다르게 주제 간의 상관 관계를 모형화하는 능력이 없습니다. 즉 각각의 주제가 항상 독립적이라고 가정을 했는데, CTM은 이를 개선하여 특정 주제가 등장하면 이와 연관된 다른 주제가 함께 등장할 가능성이 높다는 사실을 활용한다는게 특징입니다. 본 포스팅은 다음 논문을 참조하여 작성하였습니다.
Blei, D., & Lafferty, J. (2006). Correlated topic models. Advances in neural information processing systems, 18, 147.
문헌별 주제분포의 사전 분포(prior)를 디리클레 분포로 두면 주제 간의 상관 관계를 고려할 수 없습니다. 디리클레 분포는 독립성을 가정하기 때문이죠. 따라서 이를 대체할 만한 분포가 필요합니다. 다변수 통계에서 상관관계(correlation)와 항상 같이 따라 다니는 개념이 공분산(covariance)입니다. 또 공분산과 연결되는 개념이 정규분포(normal distribution)이지요. 우리는 여러 개의 주제를 포함하는 분포를 다루고 싶으므로 다변수 정규분포(multivariate normal distribution)를 고려해야 합니다.
다양한 개념이 한꺼번에 쏟아져 나와 당황하셨을텐데, 하나씩 차근차근 짚어보도록 하겠습니다.
먼저 정규 분포입니다.
자주 보던 종 모양의 곡선입니다. 이 종모양의 곡선은 2가지 파라미터에 의해 조절됩니다. 하나는 종 모양의 중심점을 결정하는 평균(mean, 흔히 μ로 표현), 다른 하나는 종이 옆으로 얼마나 퍼졌는지를 결정하는 분산(variance, 흔히 σ²로 표현)입니다. 즉 이 두 가지 파라미터를 주면 언제든지 이 곡선을 정확하게 그릴수가 있습니다. Y축은 이 분포에서 임의의 점을 뽑았을때 그 점이 뽑힐 확률을 뜻합니다. 즉 Y축이 가장 높은 지점이 뽑힐 확률이 가장 높은 지점이 되며 양쪽 가장자리는 Y축 높이가 낮으므로 뽑힐 확률이 낮습니다.
정규분포를 다차원으로 확장하는 것도 가능합니다.
이는 X축과 Y축이 정규분포를 따르는 2차원 정규분포의 모양입니다. 이 분포에서 임의의 점(X, Y)을 뽑아 검정으로 찍으면 위의 그림처럼 중심부에 잔뜩 찍히고 주변부에는 조금만 찍히는 모양이 됩니다. 2차원 정규분포를 결정하는 두 개의 파라미터는 1차원과 동일하게 평균과 분산입니다. 단, 2차원에서부터는 분산을 공분산(covariance)라고 부릅니다. 이 경우 평균은 2차원 벡터 형태로, 공분산은 2x2행렬 형태로 표현됩니다.
평균은 전체 분포의 중심점을 결정하며, 공분산 행렬(Σ)은 전체 분포가 어떤 방향으로 얼마나 퍼져있는지를 결정합니다.
σ_xx와 σ_yy(대각 원소)만 값을 가진 경우 x축과 y축 방향으로 동일하게 퍼진 모양이 됩니다.
σ_xy (σ_yx, 비대각 원소)가 0이 아닌 경우 x축이 변할때 y축도 같이 변하는 경향이 증가합니다. 만약 이 값이 음수라면 x축이 늘어날때 y축은 감소하는 방향으로 경향이 바뀝니다.
2차원보다 더 고차원의 정규분포도 생각할 수 있습니다. 이것이 다변수 정규분포입니다.
이값은 계산하면 약 (0.09, 0.24, 0.67)이 됩니다.
그리고 공분산의 비대각 원소가 0인 경우, 주제 간의 상관 관계가 0이 되기 때문에, CTM은 LDA와 동일하게 됩니다. 즉, CTM은 LDA를 더 강력하게 일반화시킨 버전이라고 볼 수 있겠습니다. 또 다른 장점도 있는데, 학습이 끝난뒤 공분산 행렬을 봄으로써 어떤 주제끼리 연관성이 있는지 볼 수 있습니다. 특정 비대각 원소가 0이라면 이는 두 주제가 서로 상관이 없음을 의미하며, 반대로 이 값이 크다면 두 주제는 깊은 상관관계를 드러낸다고 이야기할 수 있습니다.
2016년 한국 정치/사회 분야 뉴스 데이터가 마침 있어서 이걸 가지고 CTM 모형을 돌려보았습니다. 구현은 Mimno, D., Wallach, H., & McCallum, A. (2008, December). Gibbs sampling for logistic normal topic models with graph-based priors. In NIPS Workshop on Analyzing Graphs (Vol. 61).에 제안된 깁스 샘플링 기반 로지스틱 정규분포 추론을 이용했습니다. 총 주제 개수는 48, 베타 샘플의 개수는 50, μ = 영벡터, Σ = 단위행렬로 초기값을 주었습니다.
생성된 주제 중 23개만 추려내서 주제 간의 관계도를 그려보았어요. 공분산 행렬에서 상관계수를 계산하였습니다. 상관계수가 0.33 이상인 주제 사이에는 간선을 그려넣었고, 간선 위에는 상관계수를 표시하였습니다. CTM에 따르면 가장 관계가 깊은 주제는 #21 중국 사드 배치와 #17 북한의 한반도 위협으로 밝혀졌습니다. 두번째로는 #13 특검 수사와 #15 최순실 재판이 있구요.
시험 삼아 구현한 CTM 모형은 조금 더 다듬어서 다음 버전의 tomotopy에 새 모듈로 추가할 예정입니다. 이거 구현해보느라 근 며칠 컴퓨터 앞에 매달려 있었는데 보람찬 시간이었습니다~
(2020년 6월 10일)
직접 실험해볼 수 있도록 다음 포스팅에 토픽 모델링 및 시각화 코드를 공유했으니 필요하신 분들은 확인해보시길 바랍니다.
그림으로 깁스샘플링 이해하기 (7) | 2020.01.03 |
---|---|
[기계 학습] Mean Shift 클러스터링 (5) | 2019.09.04 |
[토픽 모델링, tomotopy] sLDA를 이용하여 스팸 메일 분류하기 (1) | 2019.08.21 |
단순하지만 강력한 Smooth Inverse Frequency 문장 임베딩 기법 (0) | 2019.04.24 |
단어 임베딩을 이용한 추출적 텍스트 요약 기법 (0) | 2019.02.08 |
자동 요약 기법의 연구 동향 정리 (2) | 2018.12.28 |
댓글 영역