본문 바로가기

데이터과학/data mining

LSA (Latent Semantic Analysis)

http://blog.sragent.pe.kr/entry/Latent-Semantic-AnalysisLSA
http://en.wikipedia.org/wiki/Singular_value_decomposition
http://stat.ethz.ch/R-manual/R-patched/library/base/html/svd.html

문서들을 N개의 차원(단어)로 이루어진 M개의 문서 행렬로 보고, SVD(Singular Value Decomposition)를 이용, 단어(T) * 가중치(S) * 문서(D) 로 분해(Decomposition). 가중치(S) 행렬은 좌측상단에서부터 우측하단으로 갈수록 그 값은 점점 작아지는 특성을 가지므로 높은 가중치를 가진 상위의 100~150 정도의 K값으로 정하고 차원을 축소할 수 있다.

이 과정에서 "단어 X 단어", "문서 X 문서" 혹은 "단어 X 문서"의 차원이 K차원으로 축소되므로 아래와 같은 2가지 효과를 거둘 수 있다.

1. 유사한 단어, 문서가 군집화 되는 효과
2. 차원이 축소되어 계산량이 줄어드는 효과

'BigData' 라는 관점에서 보았을 때에 반드시 익히고 적용해볼만 한다.

최근에는 PLSA라고 해서 (Probabilistic latent semantic analysis) 기존의 LSA를 확률적인 기법으로 접근하는 개선된 방법이 사용되고 있다고 한다.

'데이터과학 > data mining' 카테고리의 다른 글

THINK QUARTERLY  (0) 2011.08.19
Strata 2011: Hilary Mason, "What Data Tells Us"  (0) 2011.02.11
데이터마이닝의 개요 (2)  (0) 2008.03.25