잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)?
LDA란 주어진 문서에 대하여 각 문서에 어떤 주제들이 존재하는지에 대한 확률모형
LDA는 토픽별 단어의 분포, 문서별 토픽의 분포를 모두 추정
데이터가 주어지면, LDA는 문서가 생성되던 과정을 역추적 하는 방식
- LDA 개요
topic
- 위 의 예제에서 노란색 토픽은 유전자와 관련된 단어에 각 확률을 할당한 것을 볼 수 있다. 마찬가지로 분홍생은 생물학적 용어의 단어에 확률을 할당한 것이다. 노란색 토픽의 단어들이 문서에서는 가장 많이 나타나고 있는데 이는 유전자와 관련된 글일 것으로 추측 가능 하다.
- LDA를 간단히 정의 하면 유사한 토픽을 묶어 주제를 나누고 이때 특정토픽에 단어가 존재할 확률과, 문서에서 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출하는 방법이다.
- (이해를 위한 예시 : 글쓰기를 예를 들면, 우선 글감 내지 주제를 정해야 한다. 이후 실제 글을 작성할 때는 어떤 단어를 써야할지 결정한다. LDA도 마찬가지. 우선 말뭉치로부터 얻은 토픽 분포로부터 토픽을 뽑는다. 이후 해당 토픽에 해당하는 단어들을 뽑는다. 이것이 LDA가 가정하는 문서 생성 과정이다. 이제 반대 방향으로 생각해자. 현재 문서에 등장한 단어들은 어떤 토픽에서 뽑힌 단어들인가? 이건 명시적으로 알기는 어렵다. 말뭉치에 등장하는 단어들 각각에 꼬리표가 달려있는것이 아니기 때문이다. 그런데 LDA는 이렇게 말뭉치 이면에 존재하는 정보를 추론해낼 수 있다. LDA에 잠재(Latent)라는 이름이 붙은 이유이다. LDA의 학습은 바로 이러한 잠재정보를 알아내는 과정이다.)
topic
- LDA가 가정하는 문서생성과정은 위와 같다. \(D\)는 말뭉치 전체 문서 개수, \(K\)는 전체 토픽 수(하이퍼 파라메터), \(N\)은 \(d\)번째 문서의 단어 수를 의미한다.
- 네모칸은 해당 횟수만큼 반복하라는 의미이며 동그라미는 변수를 가리킨다. 화살표가 시작되는 변수는 조건, 화살표가 향하는 변수는 결과에 해당하는 변수이다.
- 우리가 관찰 가능한 변수는 \(d\)번째 문서에 등장한 \(n\)번째 단어 \(w_{d,n}\)이 유일하다(음영 표시). 우리는 이 정보만을 가지고 하이퍼파라메터(사용자 지정) \(α\),\(β\)를 제외한 모든 잠재 변수를 추정.
- 예시를 통해서 살펴 보자.
- \(\phi_k\)는 \(k\)번째 토픽에 해당하는 벡터로 해당 단어가 \(k\)번째 토픽에서 차지하는 비중을 나타낸다.
- 행은 문서 전체의 단어이며, 열은 지정한 \(k\)개의 토픽이다.
- 첫번째 열의 topic1 즉, \(\phi_1\)의 각 요소는 확률이므로 각열의 모든 요소의 합은 1이다.
- \(\phi_k\)는 하이퍼파라메터 \(\beta\)의 영향을 받는데 이는 LDA가 토픽의 단어비중 \(\phi_k\)이 디리클레분포를 따른다는 가정을 취하기 때문이다.
- \(\theta_d\)는 \(d\)번째 문서가 가진 토픽 비중을 나타낸다.
- 행은 문서 이며, 열은 지정한 \(k\)개의 토픽이다.
- 첫번째 행의 Doc1 즉, \(\theta_1\)의 각 요소는 확률이므로 각행의 모든 요소의 합은 1이다.
- \(\theta_d\)도 하이퍼파라메터 \(\alpha\)의 영향을 받는데 이는 LDA가 토픽의 단어비중 \(\theta_d\)이 디리클레분포를 따른다는 가정을 취하기 때문이다.
728x90
반응형
'Data analysis' 카테고리의 다른 글
토픽모델링(Topic Modeling)-잠재의미분석(Latent Semantic Analysis, LSA) (0) | 2020.08.19 |
---|---|
N-gram (0) | 2020.08.07 |
KNN(K-Nearest Neighbor), 최근접 이웃법(1) (0) | 2020.07.28 |
Bayesian Network (0) | 2020.05.26 |