잠재 의미 분석 Latent Semantic Analysis
- 문서 단어 행렬을 여러 행렬의 곱으로 분해하는 방법
- 문서-토픽 행렬: 문서별 토픽
- 토픽-단어 행렬: 단어별 토픽
- 토픽이 연속 변수라고 가정
- 여러 토픽들에 가중치를 곱하여 더하면 문서 단어 행렬이 된다고 가정
- 토픽들은 단어 빈도의 분산을 설명
- 수학적으로는 주성분분석과 거의 비슷
행렬의 곱셈
- 행렬(matrix): 수를 사각형 형태로 배열한 것. 간단히 생각하면 표
- 예) 문서 단어 "행렬"
- 행렬은 일반적인 수와 비슷하게 더하거나, 곱할 수 있음
- m×n 크기의 행렬은 m×k 크기의 행렬과 k×n 크기의 행렬의 곱으로 표현 가능
LSA의 기본 아이디어
- 문서 단어 행렬을 문서 토픽 행렬과 토픽 단어 행렬의 곱 형태로 표현
- 문서 단어 행렬: m개의 문서에서 n개의 단어가 각각 몇 개씩 나왔는가
- 문서 토픽 행렬: m개의 문서에서 k개의 토픽이 각각 얼마나 나왔는가
- 토픽 단어 행렬: k개의 토픽에서 n개의 단어가 각각 얼마나 나오는가
- 차원 축소: 단어보다 토픽의 수가 적음 (n ≫ k)
LSA의 특징
- 계산이 비교적 단순
- 통계학에서 매우 많이 사용하는 기법
- 토픽의 해석이 어려움
- 차원의 수를 정하기 어려움
- 해가 무수히 많음
행렬 분해 Matrix Decomposition
- 하나의 행렬을 여러 개의 행렬의 곱 형태로 나타내는 것
- LU 분해
- QR 분해
- 촐레스키 분해
- 고유값 분해(eigen decomposition)
- 특이값 분해(Singular Value Decomposition)
특이값 분해 Singular Value Decomposition
- m×n 크기의 문서단어행렬 M을 𝑈𝛴𝑉𝑇와 같이 행렬의 곱으로 분해
- 𝑈와 𝑉는 직교행렬
- 𝛴는 대각행렬
Truncated SVD
- SVD에서 U, Σ, VT에서 k개의 행 또는 열만 남김
차원 축소 dimensionality reduction
- TDM은 m개의 문서를 표현하기 위해 n가지 단어로 표현
- U*는 m개의 문서를 k가지 토픽으로 표현
- n ≫ k이므로 문서를 나타내는 차원이 축소되었다고 이해할 수 있음
- 차원 축소를 하는 이유:
- 문서들이 단어가 아닌 의미상으로 재배치
- 동음이의어, 오탈자 등이 (어느 정도) 처리됨
- 문서에 존재하는 noise가 줄어 더 잘 분류됨
주성분분석 Principal Component Analysis
- 통계에서 많이 사용하는 차원 축소 방법
- 다수의 변수로 구성된 자료가 있을 때 PCA를 통해 소수의 주성분으로 변환할 수 있음
- PCA도 LSA와 비슷하게 Truncated SVD를 이용할 수 있음
- PCA와 LSA의 차이: PCA는 원자료를 센터링(centering: X-평균)
- PCA에서 센터링을 하는 이유: 일반적인 자료는 평균 근처에 값들이 많이 분포
- LSA에서 센터링을 안하는 이유: 문서단어행렬은 평균이 아닌 0 근처에 값들이 많이 분포