LDA(Latent Dirichlet Allocation)은 토픽 모델링의 대표적인 알고리즘이다. LDA는 문서들은 토픽들의 혼합으로 구성되어져 있으며, 토픽들은 확률 분포에 기반하여 단어들을 생성한다고 가정한다. 데이터가 주어지면 LDA는 문서가 생성되던 과정을 역추적한다.
LDA 모델링 : https://lettier.com/projects/lda-topic-modeling/
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%
LDA는 토픽의 제목을 정해주지 않지만 위의 결과로부터 두 개의 토픽이 각각 과일과 강아지에 대한 토픽임을 판단할 수 있다.
토픽의 개수는 하이퍼파라미터. LDA에는 전퍼리 과정을 거친 DTM이 들어온다. 각 문서의 토픽 분포와 각 토픽의 단어 분포를 통해 사옹자는 토픽을 판단할 수 있다.
LDA는 문서의 집합에서 어떤 토픽이 존재하는지 알아내는 알고리즘이다. LDA는 BoW의 행렬 DTM 또는 TF-IDF 행렬을 입력으로 하며, 이로부터 LDA가 단어의 순서에는 신경쓰지 않음을 알 수 있다. LDA는 각각의 문서가 아래의 과정을 거쳐 작성되었다고 가정한다.
1) 문서에 사용할 단어의 개수 N을 정한다. (여기서는 5라 가정)
2) 문서에 사용할 토픽의 혼합을 확률 분포에 기반해 결정한다.(토픽이 2개면 강아지 토픽을 60%, 과일 토픽을 40%로 선택)
3) 문서에 사용할 각 단어를 아래와 같이 정한다.
3-1) 토픽 분포에서 토픽 T를 확률적으로 고른다.(60% 확률로 강아지 토픽을 선택하고 40%의 확률로 과일 토픽을 선택할 수 있다.)
3-2) 선택한 토픽 T에서 단어의 출현 확률 분포에 기반해 문서에 사용할 단어를 고른다.(강아지 토픽을 선택하면 33%의 확률(??왜 이렇게 나와??)로 단어 강아지를 선택) 이 과정을 반복하며 문서를 완성한다.
이 과정을 통해 문서가 작성되었다는 가정 하에 LDA는 토픽을 뽑아내려고 위 과정을 역으로 추적하는 역공학(reverse engneering)을 수행한다.
이를 반복하면 모든 할당이 완료된 수렴 상태가 된다.
두 개의 문서 doc1과 doc2가 있다. doc1의 세 번째 단어 apple의 토픽을 결정하자.
LSA : DTM을 차원 축소 하여 축소 차원에서 근접 단어들을 토픽으로 묶는다.
LDA : 단어가 특정 토픽에 존재할 확률과 문서에 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출한다.
토픽모델 LDA 설명 요약
문서에 대한 토픽 분포와 토픽에 대한 단어 분포가 존재한다고 하자. 여리서 각 분포는 다항 분포이며 디리클레라는 분포를 사용한다. (디리클레를 사용하는 이유는 계산이 편하기 때문) 각 분포는 와 라는 사전정보를 사용한다.
문서에서 각 토픽이 나올 확률이 , 각 토픽에 단어가 등장할 확률이 이라고 하자. 을 가지는 문서1에서 토픽3을 랜덤하게 선택하고, 토픽3에서 단어4를 랜덤하게 선택한다. 단어 4를 선택할 때는 이 같이 고려된다. 을 가지는 문서1에서 여러 개의 토픽을 샘플링하고, 그 토픽에서 단어를 샘플링한다. 이런 식으로 각 에 대해서 토픽과 단어를 샘플링하여 D개의 문서를 생성한다. 이 과정을 역으로 하는 것이 LDA이다. 즉 문서로부터 단어를 관찰해서 와 를 알아낸다.
관측된 단어 W로부터 토픽 Z를 추론하고 토픽으로부터 와 를 추론하는 것이 LDA의 목적이다. 단어로부터 토픽과 단어의 분포들을 추론하면 문서를 주제별로 분류할 수 있고, 새로운 문서가 나타났을 때 어떤 주제인지 판별할 수도 있다.
영상 후반에는 LDA모델의 결합확률분포로부터 어떻게 Z를 추론하는지를 설명하지만 여기서는 그 설명은 생략한다.
LDA는 비지도학습이고, 문서 집합으로부터 여러 토픽을 클러스터링하는 알고리즘이다. 이 모델을 조금 더 개선한 모델이 지도학습인 SLDA 모델이다.