LSA(Latent Semantic Analysis)
- LSA는 DTM이나, TF-IDF 행렬에 절단된 SVD(truncated SVD) 결합해 차원을 축소하고, 단어들의 잠재적인 의미 파악이 가능한 알고리즘
- SVD(특이값 분해): 행렬A를 3개의 행렬 곱으로 분해
- 절단된 SVD(truncated SVD)
- 단점
- tfidf와 같은 BoW 기반의 모델에서 찾지 못한 단어들의 잠재의미 파악 및 유사도, 그리고 계산 속도면에서 성능을 보이지만, 새 문서가 추가될 경우 전체 연산을 처음부터 다시 수행해야한다는 단점 존재
LDA(Latent Dirichlet Allocation)
- 디리클레분포 사용
- pLSA가 새로운 문헌에 대한 결과 분석을 제대로 못해 이를 보완해 나온 것이 LDA
- 단어가 특정 토픽에 존재할 확률과 문서에 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출
- Perplexity(혼잡도) 혼잡도가 낮을수록 가장 좋은 토픽의 수
- 단어의 순서는 신경쓰지 않음
- 연산과정: 토픽 설정 → 토픽에 사용할 단어 선택(역 공학)
- 문서에 사용된 단어 개수 N을 구함
- 문서에 사용한 토픽의 혼합을 확률분포에 기반하여 결정
- 문서에서 사용할 단어 선택
- 토픽 분포에서 토픽A를 확률적으로 선택
- 토픽A에서 단어의 출현 확률분포에 기반하여 문서내 사용할 단어 선택