2. 모델 개요
토픽별 단어의 분포
문서별 토픽의 분포
각 문서에 어떤 주제들이 존재하는지에 대한 확률모형
3. 글쓰기의 과정
글감, 주제 정하기 어떤 단어를 쓸까?
사람
LDA 의 가정
말뭉치(corpus)로부터
얻은 토픽의 분포로부터 토픽 선정
선정된 토픽에 해당하는
단어들을 뽑아서 쓰자!
실제로 이런다는건아니고 이렇게 될 것이라 가정한다는것
4. 반대방향으로 생각해보자
현재 문서에 등장한 단어들은 어떤 토픽에서 나온 단어들일까?
명시적으로 알기가 어려움
LDA를 활용하여 말뭉치 이면에 존재하는 정보를 추론해 낸다.
그럼 D의 Dirichlet는 뭐야?
LDA의 L은 latent 잠재정보를 알아낸다는것
일단 디리클레라는 분포가 있다는것만 알고 넘어가자
7. 모델의 변수
ϕk 는 k번째 토픽의 단어비중을 나타내는 벡터
말뭉치 전체 단어 개수만큼의 길이를 갖게됨.
ϕ1 ϕ2 ϕ3
각 entry value는 해당 단어가 k번째 토픽에서
차지하는 비중을 나타냄
각 요소는 확률이므로 열의 총 합은 1이 된다.
아키텍처를 살펴보면 ϕk 는 하이퍼 파라미터 β 의
영향을 받고 있음. 이는 LDA에서 토픽의 단어비중 ϕk 이 디리클레 분포를
따른다는 가정을 취하기 때문. 자세한 이론적 내용은 잠시 후에
8. 모델의 변수
θd 는 d번째 문서가 가진 토픽 비중을 나타내는 벡터
전체 토픽 개수 K만큼의 길이를 갖게됨.
θ1 각 entry value는 k번째 토픽이 해당 d번째
문서에서 차지하는 비중을 나타냄
각 요소는 확률이므로 각 행의 총 합은 1이 된다.
아키텍처를 살펴보면 θd 는 하이퍼 파라미터 α 의
영향을 받고 있음. 이는 LDA에서 문서의 토픽 비중 θd 역시 디리클레 분포를
따른다는 가정을 취하기 때문. 자세한 이론적 내용은 잠시 후에
θ2
θ3
θ4
θ5
θ6
9. 모델의 변수
zd,n 는 d번째 문서의 n번째 단어가 어떤 토픽에 해당하는지 할당해주는 역할
예컨데 세번째 문서의 첫번째 단어는 Topic2일 가능성이 가장 높다고 할 수 있음
wd,n 은 문서에 등장하는 단어를 할당해 주는 역할.
직전 예시에서 z_3,1이 실제로 Topic2에 할당되었다고 했을때, Topic2의 단어분포 가운데
Money의 확률이 가장 높으므로 w_3,1은 Money가 될 가능성이 가장 높음
동시에 영향을 받음zd,nϕk
11. LDA의 inference
지금까지는 LDA가 가정하는 문서생성과정과 잠재변수들의 역할을 살펴보았다.
이제는 반대로 관측된 W_d,n을 가지고 잠재변수를 추정하는 inference 과정을 살펴보자.
LDA는 토픽의 단어분포와 문서의 토픽분포의 결합으로 문서 내 단어들이 생성됨을 가정하고 있다.
실제 관측된 문서 내 단어를 가지고 우리가 알고 싶은 토픽의 단어 분포, 문서의 토픽 분포를 추정할 것
문서 생성 과정이 합리적이라면 이 결합확률이 매우 클 것
ϕk θd
12. LDA의 inference
여기에서 하이퍼 파라미터 알파와 베타, 그리고 관찰 가능한 w_d,n을 제외한 모든 변수가 미지수.
p(z, ϕ, θ|w)결국, 를 최대로 만드는 z, ϕ, θ 를 찾는것이 목적
그런데 여기에서 분모에 해당하는 p(w) 를 바로 구할수 없기 때문에 깁스 샘플링 활용
18. LDA의 깁스 샘플링
LDA 에서는 나머지 변수는 고정시킨 채 한 변수만을 변화시키되, 불필요한 변수를 제외하는 collapsed gibbs sampling 기법 활용한다.
쉽게 말해서, z만 구하면 phi와 theta는 z를 활용하여 구할수 있기 때문에 z만 구하겠다는 것
LDA의 깁스 샘플링 과정을 수식으로 표현하면 다음과 같다.
i번째 단어의 토픽정보를 제외한 모든 단어의 토픽정보
28. 실제 계산 과정
이 예시에서 z_1,2는 Topic1에 할당될 가능성이 가장 크다.
하지만 확률적인 방식으로 토픽을 할당하기 때문에 무조건 Topic1에 할당된다고 할 수는 없음
29. 실제 계산 과정
결과적으로 z_1,2 가 Topic1에 할당되었다고 가정해보면 Doc1의 토픽분포 첫번째 토픽의 단어분포 는 다음과 같다.θ1 ϕ1
30. 디리클레 파라미터의 역할
A는 d번째 문서가 k번째 토픽과 맺고 있는 연관성 강도를 나타냄
B는 d번째 문서의 n번째 단어(w_d,n)가 k번째 토픽과 맺고 있는 연관성 강도를 나타냄
이전 예시에서 Topic2에 할당된 단어가 하나도 없는 상황이 있었다. (n_1,2 = 0)
원래대로라면 첫번째 문서가 Topic2와 맺고있는 연관성 강도, A는 0이어야 할 것,
A가 0이되면 z_d,i가 Topic2가 될 확률 또한 0이게 된다.
31. 디리클레 파라미터의 역할
하지만 하이퍼 파라미터 알파 덕분에 A가 아예 0이되는 상황을 방지할 수 있게 됨.
일종의 Smoothing 역할. 알파가 클수록 토픽들의 분포가 비슷해지고 작을수록 특정 토픽이 크게 나타나게 됨.