12/18 LDA(Latent Dirichlet Allocation)
LDA
Topic Modeling
토픽 모델링은 문서의 집합에서 토픽을 찾아내는 작업을 말하며 문서의 주제를 알아내는 일이 중요한 곳에 사용된다. LDA가 토픽 모델링의 대표적인 알고리즘이다..
LDA 개요
문서1 : 저는 사과랑 바나나를 먹어요
문서2 : 우리는 귀여운 강아지가 좋아요
문서3 : 저의 깜찍하고 귀여운 강아지가 바나나를 먹어요
위의 예제에서 찾아야 하는 토픽의 개수를 k라 했을 때, k는 하이퍼 파라미터이다. k를 올바르게 설정하지 않으면 원치 않는 결과가 나올 수 있다.
전처리 과정을 거친 DTM이 LDA의 입력이 되었다고 가정했을 때 결과는 다음과 같다.
- 각 문서의 토픽 분포
문서1 : 토픽 A 100% 문서2 : 토픽 B 100% 문서3 : 토픽 B 60%, 토픽 A 40%
- 각 토픽의 단어 분포
토픽A : 사과 20%, 바나나 40%, 먹어요 40%, 귀여운 0%, 강아지 0%, 깜찍하고 0%, 좋아요 0% 토픽B : 사과 0%, 바나나 0%, 먹어요 0%, 귀여운 33%, 강아지 33%, 깜찍하고 16%, 좋아요 16%
토픽 A는 과일, 토픽 B는 강아지에 대한 것임을 판단해볼 수 있다.
LDA 가정
LDA는 빈도수 기반의 표현 방법인 BoW 행렬 DTM 또는 TF-IDF 행렬을 입력으로 한다. 즉, 단어의 순서는 신경쓰지 않는다는 의미이다. 각 문서는 아래와 같은 과정을 거쳐 작성되었다고 가정하자.
-
문서에 사용할 단어의 개수 N을 정한다.
-
문서에 사용할 토픽의 혼합을 확률분포에 기반하여 결정
- 한다.
-
강아지 60%, 과일 40%
-
문서에 사용할 단어를 정한다.
-
- 토픽 분포에서 토픽 T를 확률적으로 선택
-
60% 확률로 강아지 토픽을 선택, 40% 확률로 과일 토픽 선택
-
- 선택한 토픽 T에서 단어의 출현 확률 분포에 기반해 문서에 사용할 단어를 고른다.
-
강아지 토픽 => 33% 확률로 “강아지”라는 단어를 선택
-
이러한 과정으로 문서가 작성되었다는 가정 하에 위 과정을 역으로 추적하는 역공학을 수행한다.
LDA 수행하기
-
사용자는 알고리즘에 토픽의 개수 k를 알려준다.
-
- 모든 단어를 k개 중 하나의 토픽에 (랜덤으로) 할당한다.
-
이 작업이 끝나면 각 문서는 토픽을 가지며 토픽은 단어 분포를 가지는 상태이다. 만약 한 단어가 한 문서에서 2회 이상 등장하였다면 각 단어는 서로 다른 토픽에 할당됐을수도 있다(랜덤이므로).
-
아래 과정 반복
-
단어 w는 자신은 잘못된 토픽, 나머지 단어는 올바른 토픽에 할당되어져 있다고 가정. 이에 따라 단어 w는 두가지 기준에 따라서 토픽 재할당한다.
-
p(topic t document d) : 문서 d 단어 중 토픽 t에 해당하는 단어 비율 : 한 문서 내에서 나머지 단어들의 토픽 분포를 살펴본다.
-
p(word w topic t) : 토픽 t에서 해당 단어 w의 분포 : 전체 문서에서 단어 w가 어떤 토픽에 할당되어져 있는지를 본다.
-
-
LDA 예시
- doc1
word | apple | banana | apple | dog | dog |
---|---|---|---|---|---|
topic | B | B | ? | A | A |
- doc2
word | cute | book | king | apple | apple |
---|---|---|---|---|---|
topic | B | B | B | B | B |
첫번째 기준에 따르면 토픽 A와 B에 50대 50 비율로 할당되어져 있다. 이에 따르면 apple은 토픽 A, B에 속할 가능성을 동등하게 가지고 있다.
- doc1
word | apple | banana | apple | dog | dog |
---|---|---|---|---|---|
topic | B | B | ? | A | A |
- doc2
word | cute | book | king | apple | apple |
---|---|---|---|---|---|
topic | B | B | B | B | B |
두번째 기준은 apple이 전체에서 어떤 토픽에 할당되어져 있는지를 본다. 이에 따르면 apple은 토픽 B에 할당될 가능성이 높다. 전체 문서에 있는 다른 apple은 모두 토픽 B에 할당되어있기 때문이다.
이를 반복하여 LDA는 단어들을 어떤 토픽에 할당할지 결정한다.
댓글남기기