[LDA 이해하기] Dirichlet Allocation
Latent Dirichlet Allocation(LDA)을 이해하려면, 그 기반이 되는 여러 확률 분포에 대한 개념 이해가 필요하다.
이번 글에서는 그중 하나인 Dirichlet 분포에 대해서 다뤄보려고 한다.
Dirichlet 분포란?
0과 1사이의 값을 가지는 여러 연속변수에 대한 확률 분포
간단히 말해, 여러 개의 확률 값이 어떻게 분포하는지를 정의하는 분포이다.
예시로 우리가 아이스크림 가게를 운영한다고 가정해 보자.
메뉴는 총 3가지다:
- 바닐라
- 초코
- 딸기
손님 한 명이 들어왔을 때 어떤 맛을 고를지는 알 수 없다.
그래서 아래처럼 확률 벡터로 각 맛을 고를 확률을 나타낸다:
$X_1$ = 바닐라를 고를 확률
$X_2$ = 초코를 고를 확률
$X_3$ = 딸기를 고를 확률
이 확률들의 합은 항상 1이다:
$X_1$ + $X_2$ + $X_3$ = 1
하지만 문제는, 손님마다 취향이 다르다는 것이다.
즉, 어떤 손님은 초코를 더 좋아하고, 어떤 손님은 바닐라를 더 좋아한다.
이런 확률 벡터 자체가 고정되어 있지 않고, 매일매일 달라질 수 있다는 뜻이다.
그래서 우리는 확률 벡터의 분포를 다루는 확률 분포가 필요하고, 그게 바로 Dirichlet 분포이다.
Dirichlet 분포의 형태
Dirichlet 분포의 형태는 파라미터 $\alpha$ 값에 따라 결정된다.
($\alpha$는 원소의 개수가 변수의 수와 동일한 하나의 벡터)
먼저 3가지 케이스에 따라 디리클레 분포의 형태가 어떻게 변하는지 확인해 보자.
$i$) $\alpha$ > 1
그림에서 각 점은 해당 알파값으로 만들어진 디리클레 분포로부터 뽑힌 각 샘플들을 의미한다.
그림을 보면 알파의 모든 원소의 값이 1보다 클 때,
그 원소의 값이 큰 쪽으로 분포로부터 뽑히는 샘플들의 밀도가 높다는 걸 볼 수 있다.
즉, 알파의 n번째 원소의 값이 커질수록 확률 분포에서 갖는 $X_n$ 변수의 비중이 더 커진다.
그리고 중앙값 쪽에 밀도가 높기 때문에 여러 변수들이 골고루 섞인 샘플이 많이 생성된다는 것을 알 수 있다.
$ii$) $\alpha < 1$
$\alpha$ 값이 1보다 작으면,
그림에서 보다시피 샘플들이 더 다양하게 나뉘고 삼각형의 꼭짓점에 데이터들이 몰리는 것을 볼 수 있다.
즉, 위의 경우와 반대로 여러 변수들이 섞이지 않은 샘플들이 많이 생성된다는 것을 알 수 있다.
$iii$) $\alpha_1$ = $\alpha_2$ = $\alpha_3$ =.... = $\alpha_k$
마지막으로 $\alpha$의 모든 원소 값이 같을 경우이다.
이러한 경우에는 공통적으로 모두 대칭적인 형태를 가진다는 공통점이 있지만
$\alpha$의 원소값이 1보다 크냐 작냐에 따라 케이스가 나뉜다.
(1) $\alpha$ > 1
그림에서 보다시피 각 샘플들이 대칭적인 형태로 뽑히지만,
$\alpha$의 모든 원소 값이 1보다 큰 경우에는 샘플들의 밀도가 가운데에서 높은 것을 볼 수 있다.
(2) $\alpha$ < 1
$\alpha$의 모든 원소 값이 1보다 작은 경우에는 대칭적인 형태에서 더 다양하게 샘플들이 나뉘는 것을 볼 수 있다.
요약하자면
조건 | 특징 | 분포 형태 |
$\alpha$ > 1 | 여러 변수가 골고루 섞인 샘플 | 중앙쪽에 밀집 |
$\alpha$ < 1 | 편향된 샘플 | 꼭짓점에 밀집 |
$\alpha_1$ = ... = $\alpha_k$ | 균등한 분포 | 전체적으로 고르게 분포 |