본문 바로가기
공부/머신러닝

LSA (Latent Semantic Analysis)

by ctrlab 2025. 5. 27.

LSA (Latent Semantic Analysis)는 자연어 처리(NLP)에서 문장이나 문서의 잠재 의미를 분석하는 방법 중 하나이다.  
예를 들어, 단어의 수를 $n$, 문장의 수를 $d$라고 하면, 문서들을 $n \times d$ 행렬 $A$로 표현할 수 있다.  
이 행렬에 대해 특이값 분해(SVD)를 수행하면 다음과 같이 표현된다:

$A = U \Sigma V^T$

이때 $U$, $\Sigma$, $V$를 활용하여 다양한 분석이 가능하다. 예를 들어:

- $U^T A = \Sigma V^T \in \mathbb{R}^{k \times d}$: 의미축(latent semantic directions) 기준으로 문장들을 투영한 결과  
- $AV = U \Sigma \in \mathbb{R}^{n \times k}$: 의미축 기준으로 단어들을 투영한 결과

따라서, 각 단어 또는 문장을 의미 공간에서 embedding vector로 표현할 수 있으며, 이 벡터들 간의 유사도(cosine similarity 등)를 계산할 수 있다.

또한, $A^T A = V \Sigma^2 V^T$ 또는 $A A^T = U \Sigma^2 U^T$를 통해 얻은 $V$, $U$는 각각 다음을 의미한다:

- $V$: 주어진 문장들에 걸쳐 단어들의 공통 의미 방향(선형 결합)  
- $U$: 주어진 단어 분포에 기반한 문장들의 의미적 대표 방향(선형 결합)

고유값의 크기 순서에 따라 이 고유벡터들은 문장 전체를 꿰뚫는 핵심 단어 혹은 핵심 문장을 의미하는 방향이라 해석할 수 있다.

'공부 > 머신러닝' 카테고리의 다른 글

Regression(회귀) Metric  (0) 2025.05.25
Classification(분류) Metric  (0) 2025.05.25