볼록 기반 변분 알고리즘
볼록 기반 변분 알고리즘의 기본 아이디어는 옌센 부등식을 기반으로 로그 가능도(log likelihood)의 하한값을 계산하는 것이다.[9] 로그 가능도의 하한값은 변분 매개 변수(varional paremeter)로 나타내지며, 이 매개변수는 최적화 과정을 통해 가장 좋은 하한값을 가지도록 정해진다.
이 알고리즘을 LDA에 적용하기 위해서는 LDA의 그래프 도식을 간단화시켜야 한다.
에서
와
의 결합을 제거해야 하므로, 기존의 그래프 도식에서
,
,
사이의 간선을 제거한 뒤 변분 매개변수
와
을 추가한다.
는 디리클레 분포의 매개변수이며,
는 다항 분포의 매개변수이다. 이 때 변분 매개 변수에 대한
와
의 조건부 확률은 다음과 같다.

이것을 바탕으로 임의의
에 대해 문서의 로그 가능도의 하한값을 구할 수 있다.
![{\displaystyle {\begin{aligned}\log p(\mathbf {w} |\alpha ,\beta )&=\log \int \sum _{\mathbf {z} }p(\theta ,\mathbf {z} ,\mathbf {w} |\alpha ,\beta )d\theta \\&=\log \int \sum _{\mathbf {z} }{\frac {p(\theta ,\mathbf {z} ,\mathbf {w} |\alpha ,\beta )q(\theta ,\mathbf {z} )}{q(\theta ,\mathbf {z} )}}d\theta \\&\geq \int \sum _{\mathbf {z} }q(\theta ,\mathbf {z} )\log p(\theta ,\mathbf {z} ,\mathbf {w} |\alpha ,\beta )d\theta -\int \sum _{\mathbf {z} }q(\theta ,\mathbf {z} )\log q(\theta ,\mathbf {z} )d\theta \\&=\mathrm {E} _{q}[\log p(\theta ,\mathbf {z} ,\mathbf {w} |\alpha ,\beta )]-\mathrm {E} _{q}[\log q(\theta ,\mathbf {z} )]\end{aligned}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/e352e56243f24eaabd510cc94ed0957dc67c7116)
위의 식에서 우변을 ;\alpha ,\beta )}
라 표기하자. 그러면 좌변과 우변의 차이가 쿨백-라이블러 발산임을 이용하여 다음과 같이 나타낼 수 있다.
- ;\alpha ,\beta )+D(q(\theta ,\mathbf {z} |\gamma ,\phi )||p(\theta ,\mathbf {z} |\mathbf {w} ,\alpha ,\beta ))}

따라서 문서의 로그 가능도의 하한값인 ;\alpha ,\beta )}
을 최대화 하는 것은 변분 사후 확률과 기존의 사후 확률간의 쿨백-라이블러 발산값을 최소화하는 것과 동치이다.

최적화 과정을 유도하기 위해 ;\alpha ,\beta )}
을 모델 매개 변수
와 변분 매개 변수
에 관한 식으로 나타내면 다음과 같다.
- ;\alpha ,\beta )&=\mathrm {E} _{q}[\log p(\theta |\alpha )]+\mathrm {E} _{q}[\log p(\mathbf {z} |\theta )]+\mathrm {E} _{q}[\log p(\mathbf {w} |\mathbf {z} ,\beta )]-\mathrm {E} _{q}[\log q(\theta )]-\mathrm {E} _{q}[\log q(\mathbf {z} )]\\&=\log \Gamma (\sum _{j=1}^{k}\alpha _{j})-\sum _{i=1}^{k}\log \Gamma (\alpha _{i})+\sum _{i=1}^{k}(\alpha _{i}-1)(\Psi (\gamma _{i})-\Psi (\sum _{j=1}^{k}\gamma _{j}))\\&+\sum _{n=1}^{N}\sum _{i=1}^{k}\phi _{ni}(\Psi (\gamma _{i})-\Psi (\sum _{j=1}^{k}\gamma _{j}))\\&+\sum _{n=1}^{N}\sum _{i=1}^{k}\sum _{j=1}^{V}\phi _{ni}w_{n}^{j}\log \beta _{ij}\\&-\log \Gamma (\sum _{j=1}^{k}\gamma _{j})+\sum _{i=1}^{k}\log \Gamma (\gamma _{i})-\sum _{i=1}^{k}(\gamma _{i}-1)(\Psi (\gamma _{i})-\Psi (\sum _{j=1}^{k}\gamma _{j}))\\&-\sum _{n=1}^{N}\sum _{i=1}^{k}\phi _{ni}\log \phi _{ni}\end{aligned}}}
![{\displaystyle {\begin{aligned}L(\gamma ,\phi ;\alpha ,\beta )&=\mathrm {E} _{q}[\log p(\theta |\alpha )]+\mathrm {E} _{q}[\log p(\mathbf {z} |\theta )]+\mathrm {E} _{q}[\log p(\mathbf {w} |\mathbf {z} ,\beta )]-\mathrm {E} _{q}[\log q(\theta )]-\mathrm {E} _{q}[\log q(\mathbf {z} )]\\&=\log \Gamma (\sum _{j=1}^{k}\alpha _{j})-\sum _{i=1}^{k}\log \Gamma (\alpha _{i})+\sum _{i=1}^{k}(\alpha _{i}-1)(\Psi (\gamma _{i})-\Psi (\sum _{j=1}^{k}\gamma _{j}))\\&+\sum _{n=1}^{N}\sum _{i=1}^{k}\phi _{ni}(\Psi (\gamma _{i})-\Psi (\sum _{j=1}^{k}\gamma _{j}))\\&+\sum _{n=1}^{N}\sum _{i=1}^{k}\sum _{j=1}^{V}\phi _{ni}w_{n}^{j}\log \beta _{ij}\\&-\log \Gamma (\sum _{j=1}^{k}\gamma _{j})+\sum _{i=1}^{k}\log \Gamma (\gamma _{i})-\sum _{i=1}^{k}(\gamma _{i}-1)(\Psi (\gamma _{i})-\Psi (\sum _{j=1}^{k}\gamma _{j}))\\&-\sum _{n=1}^{N}\sum _{i=1}^{k}\phi _{ni}\log \phi _{ni}\end{aligned}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/511fdddf2e5e3d6147aad648ada619fb48c557ad)
여기서
는 다이감마 함수(digamma function)이다.
변분 다항 분포 매개 변수의 최적화
우선 ;\alpha ,\beta )}
을
에 대해 최대화 한다.
는
번째 단어가
번째 주제로부터 생성될 확률을 의미하며,
을 만족한다.
가 들어간 항을 분리하고, 적당한 상수를 더하여 라그랑지언을 구하면 다음과 같다. 여기서
는 주어진
에 대해
를 만족하는 값이다.
![{\displaystyle L_{[\phi _{ni}]}=\phi _{ni}(\Psi (\gamma _{i})-\Psi (\sum _{j=1}^{k}\gamma _{j}))+\phi _{ni}\log \beta _{iv}-\phi _{ni}\log \phi _{ni}+\lambda _{n}(\sum _{j=1}^{k}\phi _{nj}-1)}](//wikimedia.org/api/rest_v1/media/math/render/svg/ed40ee571700881fe84a5a5946b481e03e30605b)
위 식을
에 대해 편미분하면 다음과 같은 식을 얻을 수 있다.

를 최대화 하기 위해 위의 식이 0이 되어야 하므로,
에 대해 다음과 같은 결론을 얻을 수 있다.

매개 변수 추정
매개 변수 추정의 목적은 전집
가 주어졌을 때, 주어진 전집에 대한 로그 가능도를 최대화하는 매개 변수
와
를 찾는 것이다.

변분 매개 변수
,
를 통해
의 하한값을 구할 수 있으므로 기댓값 최대화 알고리즘을 통하여
를 최대화하는
와
를 구할 수 있다.
1. (기댓값 단계) 각각의 문서에 대해 최적 변분 매개 변수
를 계산한다.
2. (최대화 단계) 기댓값 단계에서 구한 변분 매개 변수를 바탕으로 로그 가능도의 하한값을 최대화 하도록
,
를 갱신한다.
최대화 단계에서 로그 가능도의 하한값을 증가시키는
는 다음과 같이 구할 수 있다.
![{\displaystyle L_{[\beta ]}=\sum _{d=1}^{M}\sum _{n=1}^{N_{d}}\sum _{i=1}^{k}\sum _{j=1}^{V}\phi _{dni}w_{dn}^{j}\log \beta _{ij}+\sum _{i=1}^{k}\lambda _{i}(\sum _{j=1}^{V}\beta _{ij}-1)}](//wikimedia.org/api/rest_v1/media/math/render/svg/1c2e316c568902aee8be9a219613401034e73579)
를
에 대해 편미분하여 최대화 시키는 값을 구하면 다음과 같다.

마찬가지로 로그 가능도의 하한값을 증가시키는
는 다음과 같이 구할 수 있다.
![{\displaystyle L_{[\alpha ]}=\sum _{d=1}^{M}\left(\log \Gamma (\sum _{j=1}^{k}\alpha _{j})-\sum _{i=1}^{k}\log \Gamma (\alpha _{i})+\sum _{i=1}^{k}(\alpha _{i}-1)(\Psi (\gamma _{di})-\Psi (\sum _{j=1}^{k}\gamma _{dj})\right)}](//wikimedia.org/api/rest_v1/media/math/render/svg/a55420cf4489c97dd07a56da63ea9069aefb3dce)
![{\displaystyle {\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})}](//wikimedia.org/api/rest_v1/media/math/render/svg/7d18ae47f8a3f0409497498f44653b374bb33152)
![{\displaystyle {\frac {\partial L_{[\alpha ]}}{\partial \alpha _{i}\partial \alpha _{j}}}=\sigma (i,j)M\Psi '(\alpha _{i})-\Psi '(\sum _{j=1}^{k}\alpha _{j})}](//wikimedia.org/api/rest_v1/media/math/render/svg/c045f39a9d832257ac34cc8f9881a2350fd19ced)
뉴턴의 방법을 사용하여 새로운
를 기존의
와
,
에 대한 식으로 구할 수 있다.
붕괴 기브스 표집 알고리즘
아래의 유도 과정은 평활화(smoothed)된 LDA에 대해
와
를 소거하는 붕괴 기브스 표집을 사용한다. 유도 과정을 간략화하기 위해 모든 문서의 길이가
으로 같다고 가정한다. 물론 아래의 유도는 문서의 길이가 서로 달라도 유효하다.
모형에 대한 전체 결합 분포는 다음과 같다.

여기서
와
를 모두 더하여 주변 분포를 구할 수 있다.

모든
는
에 대해 독립적이다. 따라서
와
를 분리할 수 있다. 우선
가 포함된 식을 정리하면,

이 때 각각의
에 대해 식을 풀어 쓰면 다음과 같다.

이제
를
번째 문서의 단어 중 단어집의
번째 단어이면서
번째 주제에 포함된 것의 개수라 정의하자. 그러면
는 3차원 행렬로 정의될 수 있다. 이 때 값이 정확하게 정해지지 않은 성분은
으로 표기하기로 한다. 가령
은
번째 문서의 단어 중
번째 주제에 포함된 것의 개수를 나타낸다.
을 이용하면 위의 식의 마지막 항은 다음과 같이 다시 쓰일 수 있다.

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

위 식에서 적분하는 식은 디리클레 분포 확률 밀도 함수와 같다. 따라서 확률 밀도 함수의 정의에 의해 다음을 만족한다.

따라서 처음의 주변 분포에서
가 포함된 식은 다음과 같이 정리된다.

이제 주변 분포에서
가 포함된 식을 정리하자. 이 식은
과 포함된 식과 유사한 방법에 의해 정리될 수 있다.

위의 결과들을 종합하여
를 정리하면 다음과 같다.

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

여기서부터
를 나타낼 때
번째 문서의
번째 단어는 단어집에서
의 인덱스를 가진다고 가정한다. 또한
는
를 제외한 모든
를 의미한다. 이 때 기브스 표집은
만을 고려하기 때문에 위의 식의 정확한 값은 필요가 없으며, 모든
에 대한
의 비율만 구하면 된다. 따라서 위의 식을 다음과 같이 정리할 수 있다.

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