LDA Latent Dirichlet Allocation

2021. 8. 16. 11:16AI/Machine learning

    목차
반응형
  • 문서들을 보고,
    • 단어들을 topic 별로 clustering 수행
    • 이후, 각 문서들이 어느 topic에 더 유사한지를 계산하여 문서의 topic을 결정

 

문서의 주제를 알아내는 일이 중요한 곳에서 사용

검색 엔진, 고객 민원 시스템

 

여러 topic들이 혼재되어 있으며, 

topic들은 확률 분포에 기반하여 단어를 생성한다고 가정

 

LDA는 각 문서의 토픽 분포와 각 토픽 내의 단어 분포를 추정

 

 

토픽A : 사과 20%, 바나나 40%, 먹어요 40%, 귀여운 0%, 강아지 0%, 깜찍하고 0%, 좋아요 0%

토픽B : 사과 0%, 바나나 0%, 먹어요 0%, 귀여운 33%, 강아지 33%, 깜찍하고 16%, 좋아요 16%

 

LDA는 토픽의 이름을 지정하지 않으나, 위 토픽 내 단어 분포를 보면,

토픽A는 과일에 대한 토픽

토픽B는 강아지에 대한 토픽

즉, 문서가 어떤 토픽에 해당하는지 분류 (%로)

 

LDA의 가정

LDA는 문서의 집합에 어떤 토픽이 존재하는지를 알아내기 위한 알고리즘

LDA 입력

 - DTM

 - TF-IDF matrix

 

문서 별 주제가 있고, 이 주제에 연관된 단어들이 있음

문서에 사용할 토픽의 혼합을 확률 분포에 기반하여 결정

토픽이 2개라고 하였을 때 

강아지 토픽을 60%, 과일 토픽을 40%와 같이 선택할 수 있음

 

 

문서에 사용할 각 단어를 (아래와 같이) 정함

1. 토픽 분포에서 토픽 T를 확률적으로 선택

2. 선택한 토픽 T에서 단어의 출현 확률 분포에 기반해 문서에 사용할 단어를 선택

3. 1~2 반복

 

이러한 과정을 통해 문서가 작성되었다는 가정 하에 LDA는 토픽을 뽑아내기 위하여 위 과정을 역으로 추적하는 역공학

 

모든 문서에 대해

단어 w는 두 가지 기준에 따라서 토픽 재할당

p(topic t | document d)

문서 d의 단어들 중 토픽 t에 해당하는 단어들의 비율

 

p(word w | topic t)

단어 w를 갖고 있는 모든 문서들 중 토픽 t가 할당된 비율

 

이를 반복하면 모든 할당이 완료된 수렴 상태가 됨

 

각 문서의 단어를 어느 topic에 할당할지를 결정

1) 각 문서 내 단어들의 topic 중 가장 높은 topic에 현재 단어를 할당

2) 모든 문서 내 해당 단어의 topic ratio를 보고 가장 높은 topic에 할당

 

잠재 디리클레 할당과 잠재 의미 분석의 차이

LSA: DTM을 차원 축소 하여 축소 차원에서 근접 단어들을 토픽으로 묶음

LDA: 

단어가 어떤 topic에 존재할 확률

문서에 어떤 topic이 존재할 확률

이를 결합확률로 추정하여 topic을 추출

 

 

 

 

반응형

'AI > Machine learning' 카테고리의 다른 글

K-means clustering  (0) 2021.08.16
kNN  (0) 2021.08.16
LSA Latent Semantic Analysis  (0) 2021.08.16
특징 생성  (0) 2021.08.14
모델 평가 지표  (0) 2021.08.14