자연어 처리에서 **잠재 디리클레 할당**은 주어진 문서에 대하여 각 문서에 어떤 주제들이 존재하는지를 서술하는 대한 확률적 토픽 모델 기법 중 하나이다.{{저널 인용

## 개요
LDA는 이산 자료들에 대한 확률적 생성 모형이다. 문자 기반의 자료들에 대해 쓰일 수 있으며 사진 등의 다른 이산 자료들에 대해서도 쓰일 수 있다. 기존의 정보 검색분야에서 LDA와 유사하게 문헌 내의 잠재적인 의미구조를 파악하려는 시도들은 계속 이루어져 왔다. TF-IDF를 필두로 하여 잠재 의미 분석, 확률 잠재 의미 분석등을 거쳐 LDA로 도달하게 되었고, 이는 토픽 모델링이라 불리는 분야를 탄생시켰다. 확률 잠재 의미 분석은 확률 잠재 의미 인덱싱 라고도 한다.

LDA에는 몇 가지 가정이 있는데 그 중 중요한 것은 단어의 교환성(exchangeability)이다. 이는 '단어 주머니(bag of words)'라고 표현하기도 한다. 교환성은 단어들의 순서는 상관하지 않고 오로지 단어들의 유무만이 중요하다는 가정이다. 예를 들어, 'Apple is red'와 'Red is apple' 간에 차이가 없다고 생각하는 것이다. 단어의 순서를 무시할 경우 문헌은 단순히 그 안에 포함되는 단어들의 빈도수만을 가지고 표현이 가능하게 된다. 이 가정을 기반으로 단어와 문서들의 교환성을 포함하는 혼합 모형을 제시한 것이 바로 LDA이다. 하지만 단순히 단어 하나를 단위로 생각하는 것이 아니라 특정 단어들의 묶음을 한 단위로 생각하는 방식(n-gram)으로 LDA의 교환성 가정을 확장시킬 수도 있다.

LDA는 문헌의 주제를 찾기 위한 방법으로 고안되었지만, 이미지, 소리 등 텍스트 처리 이외의 다양한 분야에 쓰일 수 있고 이산 자료들, 즉 불연속적인 자료들뿐만 아니라 연속적인 자료들에 대해서 적용할 수 있고 또한 다항 분포가 아닌 자료들에 대해서도 적용할 수 있는 가능성이 있다.

## 역사
데이비드 블라이(David M. Blei), 앤드류 응(Andrew Y. Ng), 마이클 어윈 조던(Michael I. Jordan)은 기존 pLSI가 문서 수준에서 확률 모형이 없었던 점을 보완하여 2003년 잠재 디리클레 할당(Latent Dirichlet Allocation)을 제시하였다. 이후 2009년 병렬 잠재 디리클레 할당(PLDA: Parallel Latent Dirichlet Allocation)을 Yi Wang 이 MPI와 맵리듀스(MapReduce)를 이용하여 병렬분산처리가 가능하도록 구현하였다.{{저널 인용

## LDA에서의 주제
LDA에서 각각의 문서는 여러개의 주제를 가지고 있다. 확률 잠재 의미 분석  와 비슷하지만 주제들이 디리클레 분포를 따른다고 가정한다.

예를 들어 [양자역학, 힉스 입자, 맥스웰 방정식, 상대성 이론, 불확정성 원리]등의 단어들이 많이 쓰인 문서와 [셰익스피어, 톨스토이, 파우스트, 1984]등의 단어들이 많이 쓰인 문서가 있다고 해보자. 우리는 첫번째 문서가 물리학에 관련된 내용이고, 두번째 문서가 문학에 관련된 내용으로 추측할 수 있다. 그 이유는 우리는 문서에 들어가 있는 단어들이 해당 해당 주제들을 표현하고 있음을 알기 때문이다. 이러한 사전 정보가 없다면 주제를 예측할 수 없다. 하지만 사전정보가 없어도 단어들과 주제들은 연관성이 있다. 주제는 의미나 인식으로 결정되는 것이 아니고, 지도 학습으로 라벨링된 단어들의 가능도로 결정된다.

## 모형
개의 주제 중 하나에 속할 때,

LDA는 각각의 문서 에 대해 다음과 같은 생성 과정을 가정한다.

1.  을 선택한다.

2. 를 선택한다.

3. 문서 내의 단어  에 대해서

생성 과정에서 각각의 변수는 다음과 같은 의미를 가진다.

여기에서 는 실제 문서를 통해 주어지며, 다른 변수는 관측할 수 없는 잠재 변수이다.

이 모형은 다음과 같이 해석될 수 있다. 각 문서에 대해 에 기반하여 선택된다.

잠재 변수 

여기서 

마지막으로 각각의 문서에 대한 주변 분포를 모두 곱하여 전집의 확률을 구할 수 있다.

p =
\prod_{d=1}^M \int p( \theta_d | \alpha ) \left( \prod_{n=1}^{N_d} \sum_{z_{dn}} p( z_{dn} | \theta_d ) p \right) d\theta_d

### 기존의 잠재 변수 모형과의 차이점
LDA 이전에도 다양한 잠재 변수 모형(latent variable model)이 제시되어 왔다. 아래에서는 그 중 대표적인 유니그램 혼합(mixture of uni-grams) 모형{{저널 인용

#### 유니그램 혼합 모형
유니그램 혼합 모형은 다음과 같은 생성 과정을 가정한다.

1. 로부터 문서의 주제를 선택한다.

2. 문서의 주제가 주어졌을 때  로부터 선택한다.

위 과정으로부터 문서의 확률을 구하면 다음과 같다.

유니그램 혼합 모형의 생성 과정은 각각의 문서가 정확히 하나의 주제를 가진다는 것을 가정한다. 따라서 문서의 개수가 많아질 때 전집을 효율적으로 모형화할 수 없다는 단점이 있다. 반면, LDA는 하나의 문서에 대해 여러 개의 주제가 서로 다른 가중치로 혼합되는 것을 허용한다.

#### pLSI 모형
pLSI 모형은 다음과 같은 생성 과정을 가정한다.

1. 문서의 주제 분포 를 선택한다.

2. 주제  로부터 선택한다.

위 과정으로부터 문서와 단어가 나올 결합 확률을 구하면 다음과 같다.

pLSI 모형은 는 트레이닝 셋에 포함된 문서에 대해서만 정의된다. 따라서 pLSI 새로운 문서에 대한 확률을 계산할 수 없으며, 이 때문에 잘 정의된(well-defined) 생성 모형이 아니다.

또한 pLSI에서 각각의 주제는 에 대해 선형적으로 증가한다. 따라서 트레이닝 셋의 크기가 커질 때 모형이 과적합(overfitting)되기 쉽다.

반면, LDA는 잘 정의된 생성 모형이기 때문에 새로운 문서에 대해서도 쉽게 일반화될 수 있다. 또한 각각의 주제가 
p

## \frac{ \Gamma( \sum_i \alpha_i )}{ \prod_i \Gamma ( \alpha_i ) } \int \left( \prod_{i1}^k \theta_i^{\alpha_i - 1} \right) \left( \prod_{n1}^N \sum_{i1}^k \prod_{j1}^V ( \theta_i \beta_{ij} )^{w_n^j} \right) d\theta
그러나 이 분포는 잠재 변수인 {{저널 인용

### 볼록 기반 변분 알고리즘
볼록 기반 변분 알고리즘의 기본 아이디어는 옌센 부등식을 기반으로 로그 가능도(log likelihood)의 하한값을 계산하는 것이다.{{저널 인용

이 알고리즘을 LDA에 적용하기 위해서는 LDA의 그래프 도식을 간단화시켜야 한다. 

이것을 바탕으로 임의의 

위의 식에서 우변을 

따라서 문서의 로그 가능도의 하한값인 

최적화 과정을 유도하기 위해 

여기서 는 다이감마 함수(digamma function)이다.

#### 변분 다항 분포 매개 변수의 최적화
우선 을 만족한다.

위 식을

#### 변분 디리클레 매개 변수의 최적화
마찬가지로 

위 식을 

이 때 변분 매개 변수 는 서로 의존하므로 두 값은 수렴할 때까지 번갈아가면서 계산되어야 한다.

#### 매개 변수 추정
매개 변수 추정의 목적은 전집 

변분 매개 변수 를 구할 수 있다.

1. (기댓값 단계) 각각의 문서에 대해 최적 변분 매개 변수 를 계산한다.

2. (최대화 단계) 기댓값 단계에서 구한 변분 매개 변수를 바탕으로 로그 가능도의 하한값을 최대화 하도록 를 갱신한다.

최대화 단계에서 로그 가능도의 하한값을 증가시키는 

마찬가지로 로그 가능도의 하한값을 증가시키는 
\frac{ \partial L_{[ \alpha ]} }{ \partial \alpha_i } = M( \Psi( \sum_{j=1}^k \alpha_j ) - \Psi( \alpha_i ) ) + \sum_{d=1}^M ( \Psi( \gamma_{di} ) - \Psi( \sum_{j=1}^k \gamma_{dj} )

뉴턴의 방법을 사용하여 새로운 에 대한 식으로 구할 수 있다.

### 붕괴 기브스 표집 알고리즘
아래의 유도 과정은 평활화(smoothed)된 LDA에 대해 

여기서 

모든 

이 때 각각의 

이제 

마찬가지로 식 전체를 다시 쓰면,

\begin{align}
& \int_{\theta_d} \frac{\Gamma\bigl(\sum_{i=1}^k \alpha_i \bigr)}{\prod_{i=1}^k \Gamma(\alpha_i)} \prod_{i=1}^k \theta_{di}^{\alpha_i - 1} \prod_{i=1}^k \theta_{di}^{c_{d,(\cdot)}^i} \, d\theta_d \\
 = & \int_{\theta_d} \frac{\Gamma\bigl(\sum_{i=1}^k \alpha_i \bigr)}{\prod_{i=1}^k \Gamma(\alpha_i)} \prod_{i=1}^k \theta_{di}^{c_{d,(\cdot)}^i+\alpha_i - 1} \, d\theta_d.
\end{align}

따라서 처음의 주변 분포에서 

이제 주변 분포에서 

위의 결과들을 종합하여 

기브스 표집의 목표는 의 분포를 근사(approximate)하는 것이다. 이를 위해 다음과 같은 식을 사용하도록 한다.

\mathbf{w}, \alpha,\beta)=\frac{P}

여기서부터 

위의 유도 과정은 디리클레 다항 분포나 디리클레 분포를 사전 확률 분포로 사용하는 베이즈 네트워크에서 사전 확률을 모두 더한 주변 확률을 구할 때에도 사용된다.

## 변형 모형
LDA 모형은 모듈형 구조여서 쉽게 확장될 수 있다. 여러 주제들 사이의 관계를 알아내는 연구가 주요 관심 목적이다. 이 목적을 달성하기 위해 디리클레 분포 대신 다른 분포를 사용해서 다양한 변형 모형을 만들 수 있다. 상관 주제 모형{{저널 인용

## 응용

### 문서 모형화
문서 모형화는 LDA가 가장 많이 쓰이는 분야 중 하나이다.

### 생물정보학
유전자 온톨로지는 유전자와 관련된 정보들을 담고 있는 지식베이스이다. 유전자 기능 분석을 효율적으로 진행하기 위해서는 방대하고 신뢰성이 보장된 유전자 온톨로지가 필수적이다. 때문에 생물학 문헌에서 정보를 자동으로 추출하여 유전자 온톨로지를 자동으로 확장하는 연구가 진행되고 있다. 이러한 유전자 온톨로지 연구에 LDA가 사용될 수 있다.{{저널 인용

### 화상 분류
LDA를 이용하면 이미지에 나타난 물체가 어떤 종류인지 알아낼 수 있다. Sivic{{저널 인용

### 자동 화성 분석
음악에서도 LDA을 이용한 연구들이 진행되고 있다. 음악에서 LDA를 사용하기가 쉽지 않은 이유는 단어와 같이 "단위"가 되는 정보가 없기 때문이다. 그래서 화성 분석과 같이 음의 조합으로부터 특징을 추출할 수 있는 문제에 대해서만 LDA를 적용할 수 있다.{{저널 인용

### 한국어와 LDA
LDA를 사용할 때 단어의 집합이 필요하다. 영어에서는 공백문자 단위로 나누어서 집합에 넣은 후 'and', 'in', 'to'와 같은 불용어(stop word)를 제거함으로써 단어의 집합을 생성할 수 있다. 하지만 한국어는 단어에 조사와 동사 활용으로 인해 추가적인 처리가 필요하다. 보통 한국어 형태소 분석기를 이용하여 문서에서 명사와 동사 원형만 걸러낸 후에 LDA에 사용한다.

## 구현

### Python
붕괴 깁스 표집을 이용한 잠재 디리클레 할당 구현이다. 모질라 공용 허가서 2.0으로 배포하고 있다.

다양한 토픽 모델링을 지원하는 라이브러리이다. 잠재 디리클레 할당과 모든 CPU의 코어를 병렬적으로 사용하는 병렬 잠재 디리클레 할당 구현을 포함하고 있다. GNU 약소 일반 공중 사용 허가서로 배포하고 있다.

### Java
매개 변수 추정과 추론을 위해 깁스 표집을 이용한 잠재 디리클레 할당구현이다. GNU 일반 공중 사용 허가서로 배포하고 있다.

통계적 자연어 처리, 문서 분류, 클러스터링, 토픽 모델링, 정보 추출 등의 문서 머신 러닝을 지원하는 패키지이다. MALLET 토픽 모델링 툴킷은 잠재 디리클레 할당, 파친코 할당, 계층 잠재 디리클레 할당을 지원한다. 커먼 퍼블릭 라이선스로 배포하고 있다.

### C, C++
야후의 토픽 모델링을 위한 잠재 디리클레 할당의 구현이다. 아파치 라이선스 2.0으로 배포하고 있다.

빠른 깁스 표집을 이용한 잠재 디리클레 할당의 구현이다. 아파치 라이선스 2.0으로 배포하고 있다.