일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Transformer
- GaN
- 분산 학습
- gru-d
- 딥러닝
- nccl 업데이트
- 불규칙적 샘플링
- pre-trained llm
- first pg on this rank that detected no heartbeat of its watchdog.
- 패혈증 관련 급성 호흡곤란 증후군
- length of stay
- Time Series
- nccl 설치
- timesfm
- 리뷰
- moirai
- 토픽모델링
- ed boarding
- pytorch
- nccl 업그레이드
- multi gpu
- 의료정보
- irregularly sampled time series
- operation management
- ERD
- m/m/s
- 대기행렬
- NTMs
- queueing theory
- timellm
- Today
- Total
데알못정을
pLSA(Probabilistic Latent Semantic Analysis) 본문
1. pLSA(Probabilistic Latent Semantic Analysis)
pLSA는 문서 내에 특정 용어가 등장한 확률을 기반으로 하여 구축한다. 하지만 한 문서 안에 특정 단어가 등장할 확률을 단순히 빈도에 기반해 계산한다면 문서상에 나타나지 않은 단어는 0인 확률값을 가지므로 적절하지 않다. 그래서 pLSA는 한 문서가 아닌 다른 문서들을 활용하여 확률을 추정한다. 이를 이뤄내기 위해 Latent Concept(=Topic)을 도입하여 문서와 단어의 확률을 계산한다. 이때, 토픽에 대한 사전정보 없이, 문서-단어 동시 발생행렬만을 이용한다.
pLSA의 관점은 그림 1과 같다. 왼쪽의 초록색 노드들은 각 document이다. 그림에서 볼 수 있듯, 총 8개의 문서를 갖고있다고 가정하자. 우리는 각 document와 파라미터 $\theta$가 주어졌을 때 $z$라는 latent vector를 추정하고, 그러한 $z$가 주어졌을 때 단어가 출현할 확률을 추정할 수 있을 것이다. 앞의 LSA는 이러한 latent concept를 생략하여 문서와 단어의 관계를 밝혔지만, pLSA에서는 문서로부터 어떠한 concept이 생성되고 이 concept으로부터 단어들이 생성된다는 나름의 구조를 만든다. 그래서 그림 1을 해석해보면, 4번째 문서는 ‘TRADE’라는 concept을 갖고 있고, 이 concept에 대해서는 다른 단어들보다 ‘economic’, ‘imports’, ‘trade’라는 단어가 많이 쓰였다는 것을 알 수 있다. pLSA를 도식화하면 그림 2과 같다.
따라서 이러한 세 가지의 확률분포를 통해 문서가 주어졌을 때 단어가 출현할 확률, 단어가 주어졌을 때 문서가 출현할 확률을 추정할 수 있다. 후자의 경우를 사용하여 pLSA를 표현하면 $\hat{P}_{LSA}(d,w)$ 이며, 이는 Mixture model로써 표현할 수 있고 이는 다음과 같다.
$\hat{P}_{LSA}(d,w)=\sum_{z}^{}P(d|z)P(z)P(w|z)$
Mixture model은 matrix factorization 형태로 표현할 수 있는데, 이는 그림 3와 같다.
그림 3에서 $P(d|z)$ 에 해당하는 것이 $U_k$행렬이 되고, $P(z)$ 에 해당하는 것이$\sum$행렬이 되며, $P(w|z)$에 해당하는 것이 $V_k$행렬이 된다. LSA와 다르게 이러한 행렬들은 모든 원소가 음수가 아니며, 각각의 행렬의 원소의 합은 모두 1이다. 따라서 확률의 의미를 부여할 수 있다. pLSA는 m개의 단어, n개의 문서, k개 주제(토픽)에 대해 아래 우도 함수를 최대화하는 것을 목표로 한다.
$$L = \prod_{i=1}^{m}\prod_{j=1}^{n}p(w_i,d_j)^{n(w_i,d_j)}
=\prod_{i=1}^{m}\prod_{j=1}^{n}\sum_{l=1}^{k}p(d_j|z_l)p(z_l)p(w_i|z_l)^{n(w_i,d_j)}$$
위 식에서 $n(w_i,d_j)$는 $j$번째 문서에 $i$번째 단어가 등장한 횟수를 의미한다. 또한 수식에서 $\sum$을 모든 주제($k$개)에 대해 수행하는 것을 볼 수 있는데 이는 같은 단어라도 여러 토픽에 쓰이는 경우를 고려하는 효과를 줄 수 있다. 즉, 다의어를 고려할 수 있는 모델이 된다는 것이다. 예를들어 (government라는 단어는 정치, 경제, 외교/국방 등 다양한 주제에 쓰일 수 있음) 이 식을 최적화하기 쉽게 로그변환을 하여 다음과 같이 나타낼 수 있다.
$$L = \sum_{i=1}^{m}\sum_{j=1}^{n}n(w_i,d_j)log(p(w_i,d_j))
= \sum_{m}^{i=1}\sum_{j=1}^{n}n(w_i,d_j)log(\sum_{l=1}^{k}p(w_i|z_l)p(z_l)p(d_j|z_l))$$
하지만 이러한 likelihood function은 로그가 씌워져 있어 closed form이 아니어서 최적화하기 어렵다. 따라서 EM 알고리즘(Expectation-Maximization)을 사용하여 파라미터를 찾아야 한다. EM 알고리즘은 동시에 최적화할 수 없는 복수의 변수들을 반복적인 방식으로 계산하는 기법이다. 우선 모든 값을 랜덤으로 초기화하고, 하나의 파라미터를 고정시킨 다음에 다른 파라미터를 업데이트하고, 이후 단계에선 업데이트된 파라미터로 고정시켰던 파라미터를 다시 업데이트한다. 자세한 과정은 그림 4과 같다.
3. Summary
1) LSA와 다르게 단어-문서 행렬을 분해하는 것이 아니라, 문서- 단어간의 관계가 확률의 개념을 도입하여 문서의 확률 분포, concept의 확률 분포, 단어의 확률 분포가 결합된 형태라는 가정을 통해 모델링한다.
2) LSA와 다르게 다의어를 고려할 수 있다.
3) LSA와 마찬가지로 단어의 순서를 고려하지 않으며, 새로운 단어나 문서가 추가되면 EM알고리즘을 다시 수행해야한다.
3) 문서가 많고 단어의 수가 많을 수록 EM 알고리즘 연산이 무거울 수 있다.
4) EM알고리즘을 사용하기 때문에 초기 값에 따라 local optima에 빠질 수 있다.
참고문헌
[1] 김도현, “Unstructured Data Analysis”, 명지대학교, 2022
[2]“Probabilistic Latent Semantic Analysis.” ratsgo’s blog.last modified May 25, 2017,accessed Dec 19, 2022, https://ratsgo.github.io/from%20frequency%20to%20semantics/2017/05/25/plsa/
'Topic Modeling' 카테고리의 다른 글
Dirichlet Distribution & LDA(Latent Dirichlet Allocation) (1) | 2022.12.19 |
---|---|
SVD(singular value decomposition) & LSA(Latent Semantic Analysis) (0) | 2022.12.19 |
Cosine Similarity & TF-IDF (0) | 2022.12.19 |
Topic Modeling 이란? (0) | 2022.12.19 |