작성자: 15기 조우영
pLSA: document와 term의 발생과 연관이 있는 숨겨진 컨셉 z(topic)이 있다고 가정하고 현재의 코퍼스가 발생할 확률 P(d, w)를 최대가 되게 하는 컨셉 z를 찾아내는 방법
Word: Vocabulary {1,...,V}에 속하는 item, 해당 word인 경우에는 1, 아닌 경우에는 0의 값을 갖는 벡터(원 핫 벡터를 생각하면 이해가 쉬울 듯 하다)로 표현된다.
Document: N개 words의 sequence로 다음과 같이 표현된다.
w = $(w_1, w_2,...,w_N)$. 이때, $w_n$은 sequence에 속하는 n번째 word(in the form of vector as described above)이다.
Corpus: M개 documents의 collection으로 다음과 같이 표현된다.
D = $(\bf{w}_1, \bf{w}_2,...,\bf{w}_M)$
Corpus의 member에만 높은 확률을 할당하는 것을 넘어 다른 similar document들에도 높은 확률을 할당하는 어떤 probabilistic model을 찾고자 한다.
LDA는 generative probabilistic model이다.
* Generative probabilistic model이란??
머신러닝은 2가지 모델로 분류되는데 바로 generative model과 discriminative model이다. 간단히만 설명하고 넘어가자면, generative model은 단순히 분류만을 하는 것이 아니라 확률분포를 구하는(가장 가까운 확률분포에 속하도록 분류된다) 모델이고, discriminative model은 decision boundary를 찾는데에만 집중하는 모델이다. 각각의 모델에 속하는 예를 보면 이해가 쉬울 것으로 생각된다. Naive Bayes Classifier는 generative model에 속하고, logistic regression, SVM등은 discrimnative model에 속한다.
보다 자세한 설명은 아래 영상을 참고하면 좋을 듯 하다.
https://www.youtube.com/watch?v=6F4zxCN0Wtc&t=192s
LDA는 corpus D에 다음과 같은 과정을 통해 문서 w를 생성한다고 가정한다.
위 과정들에 대해서 보다 자세하게 살펴보자.
2. Topic에 관한 multinomial 분포 $\theta$ ~ Dir($\alpha$)
: $\theta$는 여러 개의 토픽 분포를 합쳐 놓은 mixture model이다. Mixture model이란, 여러 하위 분포의 결합으로 생성된 큰 분포를 의미한다. LDA에서는 하나의 문서가 여러 개의 토픽으로 이루어져 있을 수 있다고 가정하기 때문에, 이것이 가능하다. 아래 그림을 보면 보다 이해가 수월할 것이다.
이렇듯 mixture model을 Dirichlet 분포로부터 뽑아오는데, 여기서 Dirichlet 분포란 multinomial 분포들의 분포라고 생각하면 된다. 예를 들어 차원 k = 3인 Dirichlet 분포 즉, topic의 수가 3개인 경우, (0.5, 0.3, 0.2)와 같이 Topic A가 선택될 확률은 0.5, B가 선택될 확률은 0.3, C가 선택될 확률은 0.2인 multinomial 분포를 뽑을 수 있는 것이다.
그렇다면 k차원의 Dirichlet 분포는 어떻게 표현될까?? k차원의 Dirichlet 분포는 (k-1) simplex에서 값을 가지는데 simplex란 확률분포가 표현되는 어떠한 공간이다.
k = 3일 때, 즉 2 simplex는 삼각형의 모양을 가진다.
$\alpha$ = 1일 때는, 분포들이 uniform하게 삼각형에 분포하고, 1보다 작은 경우, 꼭짓점 쪽에 밀집되는 경향을 보이며, 반대로 1보다 큰 경우에는 삼각형의 중심에 밀집되는 경향을 보인다.
아래와 같이 Dirichlet 분포에 존재하는 다양한 multinomial 분포 중 하나를 선택하여 topic에 대한 분포로 사용한다.
노란색 점은 document에 해당하고 각 꼭짓점들이 특정한 topic을 나타낸다.
* 참고로, 아래 사진은 해당 유튜브에서 설명을 위해 sport, science, politics와 같이 이름 붙였을 뿐이며, 실제로 컴퓨터에서 저렇게 topic이 무엇인지 명명해주는 경우는 없고, 사람이 후에 결과를 보고 직접 해석해야한다.
3. 문서에 속하는 N개의 단어 $w_n$에 대해
위에서 multinomail($\theta$)로 (0.5, 0.3, 0.2)가 뽑혔다고 가정했으니, 높은 확률로 토픽 $z_n$은 topic 1이 될 것이다.
2. 위에서 구한 토픽 $z_n$에 기반해 multinomial probability p($w_n|z_n, \beta$)에서부터 단어 $w_n$을 뽑는다.
여기서 $\beta$란, k(# topics) x V(# words) matrix이다. 다음과 같이 topic별 단어의 출현 빈도를 통해 각 토픽들에 대한 단어의 분포를 multinomial 분포의 형태로 얻어낸다.
각각의 점들은 특정한 topic을 의미하고 각 꼭짓점들은 word를 나타낸다.
후의 작업은 pLSA에서와 유사한데, 해당 문서를 만들어낼(혹은 가장 유사한) 확률이 가장 높은 topic을 고르는 것이다.
LHS는 document가 나올 확률이다.
RHS의 첫번째는 파라미터 $\alpha$가 주어진 Dirichlet distribution에서 특정 topic mixture model을 뽑을 확률이다.
세번째는 뽑은 topic mixture를 통해 topic을 고르는 과정이다.
두번째는 골라낸 topic을 통해 단어를 고르는 과정이다.
다시 설명하면,
1. 처음에는 dirichlet distribution을 통해 topic에 대한 multinomial 분포를 얻어낸다.
2. 각 topic에 대해 word들의 multinomial 분포를 얻어낸다.
3. 처음에 뽑은 topic에 대한 multinomial 분포를 통해 topic들을 뽑는다.
4. 뽑아낸 topic 하나당 해당하는 multinomial에서 단어를 추출한다.
위의 과정을 통해 하나의 문서를 생성할 수 있다. 이를 반복해 corpus에 있는 문서의 수만큼 문서를 만들어낸다.
이 중 확률을 가장 크게하는 topic을 고른다.
위에 몇 번 등장한 유튜브 속 사례를 살펴보자
목적: ball, planet, galaxy, refrendum 4개의 단어로 이루어진 4개의 문서를 갖는 corpus가 있고, 이를 3개의 topic으로 구분하고자 하는 것
이를 위해 우리는 2가지 성질을 따르면서 각각의 단어들에 토픽을 배정하려고 한다.
두 가지 성질이란,
1. 각각의 문서는 가능한 적은 topic으로 구성된다.
2. 각각의 단어들 또한 가능한 적은 topic으로 구성된다.
최초에는 다음과 같이 랜덤하게 단어들에 topic을 배정한다.
doc1의 word1인 ball에 대해 고려해보자.
이때는, ball이 Topic2에 배정되었었다는 것은 고려하지 않는다.
우선 document1의 topic분포를 보면, topic1이 2개, 그리고 topic3가 2개이다.
그 후 전체 문서에 대해 topic들에 대한 ball의 분포를 보면, topic1에 0개, topic2에 1개, topic3에 3개로 구성되어있다.
이를 각각 곱해준다.
즉 topic 1은 2 x 0 = 0, topic2는 0 x 1 = 0, topic3 = 2 x 3으로 topic3가 가장 큰 값을 지니기 때문에 ball을 topic2에서 topic3로 재배정해준다.
이 때 랜덤하게 초기화한 결과에 특정 topic이 포함되지 않았다고 그 가능성 자체를 배제할 수는 없기 때문에 작은 임의의 값 $\alpha$와 $\beta$를 각각의 값에 더해준다.
위의 과정을 반복적으로 수행하면 아래와 같은 결과가 나온다.
document1은 topic3가 80%, topic1이 20%를, document2는 topic2가 80%, topic1이 20%를, document3는 topic1이 80%, topic3가 20%를, 마지막으로 document4는 topic1이 60%, topic2가 20%, topic3가 20%로 구성되어있다.
이제 각각의 topic이 무엇을 의미하는지를 보기 위해 각각의 토픽에 속하는 단어들을 살펴보자.
topic 1에는 planet과 galaxy로 구성되어있으므로 science, topic2는 referendum과 planet으로 구성되어있으므로 politics, topic3는 ball과 galaxy로 구성되어있으므로 sports라고 할 수 있다. 이는 인간의 개입이 요구되므로, 사람에 따라 각각의 Topic을 무엇으로 판단하는지 또한 다를 수 있다.
다시 문서로 돌아와, 이제는 문서 1은 주로 스포츠에 관한, 문서2는 정치에 관한, 문서 3은 과학에 관한 문서 4는 과학이 주를 이루지만 정치와 스포츠에 대해서도 나오는 문서라는 것을 알 수 있다.
참고
https://www.youtube.com/watch?v=3mHy4OSyRf0
https://www.youtube.com/watch?v=4AGjlcEQ6I8&t=1260s
https://www.youtube.com/watch?v=T05t-SqKArY&t=1448s
https://www.youtube.com/watch?v=BaM1uiCpj_E&t=671s
댓글 영역