svd(singular value decomposition), pca(principle components...

13
SVD(Singular Value Decomposition), PCA(Principle Components Analysis), and LSA(Latent Semantic Indexing) Hyopil Shin(Seoul National University) Computational Linguistics #Semantics with Dense Vectors Supplement Data

Upload: others

Post on 06-Feb-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

SVD(Singular Value Decomposition), PCA(Principle

Components Analysis), and LSA(Latent Semantic Indexing)

Hyopil Shin(Seoul National University)Computational Linguistics

#Semantics with Dense Vectors Supplement Data

PCA(Principle Components Analysis)

• 데이터의 분산(variance)을 최대한 보존하면서 서로 직교하는 새 축을 찾아 고차원 공간의 표본들이 선형 연관성이 없는 저차원 공간으로 변환하는 기법

PCA(Principle Components Analysis)• 공분산 행렬

• 원 데이터의 분산을 최대화하는 새로운 기저를 찾는 목표를 달성하려면 우선 데이터 행렬 A 의 공분산 행렬부터 구해야 함.

• 데이터가 각 변수별로 평균이 0으로 맞춰져 있을 때(centering 작업 이미 수행되어 있다고 가정) 공분산 행렬은 아래와 같이 구함

• 새로운 축을 찾기 위해 고유분해(eigen decomposition)을 수행해야 함

• Λ 의 대각성분은 데이터 행렬 A 의 각 변수에 해당하는 분산을 의미• 원 데이터의 분산을 최대화하는 새로운 기저를 찾는 것이 PCA 목표인 만큼 가장 큰 고유값 몇 개를

고르고, 그에 해당하는 고유벡터를 새로운 기저로 하여 원데이터를 사영(선형변환)• 예를 들어변수가 100개(100차원)인 데이터에 PCA를 적용한 후 가장 큰 고유값 두 개에 해당하는 고

유벡터로 원 데이터를 사영시키면 원데이터의 분산을 최대한 보존하면서도 그 차원수를 100차원에서 2차원으로 줄일 수 있음

특이값 분해(singular value decomposition)• m x n 크기의 데이터 행렬 A를 다음과 같이 분해

특이값 분해(singular value decomposition)• 특이벡터(singualar vector) –행렬 U와 V에 속한 열벡터

• 모든 특이벡터는 서로 직교

특이값 분해(singular value decomposition)• 행렬 ∑의 특이값은 모두 0보다 크거

나 같으며 내림차순으로 정렬• 행렬 ∑의 k번째 대각원소 해당하는

∑k는 행렬 A의 k번째 고유값에 제곱근을 취한 값과 같음

• 특이값 분해를 주성분 분석과 비교하기 위해 행렬 A를 제곱

• 대각행렬의 거듭제곱은 대각원소들만거듭제곱 해 준 결과와 동일

• ∑의 제곱은 대각원소, 즉 행렬 A의 특이값들을 제곱해 준 것과 동일

• 행렬 A의 특이값은 같은 행렬이 고유값에 제곱근을 취한 값과 동일하므로∑을 제곱한 행렬은 ATA의 고유값으로이루어진 Λ가 되고, 주성분 분석과 동일

특이값 분해의 종류

• thin SVD• Σ 행렬의 아랫부분(비대각 파트, 모두 0)과 U 에서 여기에

해당하는 부분을 모두 제거• 이렇게 U 와 Σ 를 줄여도 Us Σs VT 로 A 를 복원가능

• compact SVD• Σ 행렬에서 비대각파트뿐 아니라 대각원소(특이값)가 0인

부분도 모두 제거• 여기에 대응하는 U 와 V 의 요소 또한 제거• 특이값이 양수인 부분만 골라냄• 이렇게 U 와 Σ, V 를 줄여도 Ur Σr VT 로 A 를 복원 가능

• truncated SVD • Σ 행렬의 대각원소(특이값) 가운데 상위 t 개만 고름• 이렇게 하면 행렬 A 를 복원 수 없게 되지만, 데이터 정보를

상당히 압축했음에도 행렬 A 를 근사할 수 있게 됨• 잠재의미분석은 바로 이 방법을 사용합니다.

특이값 분해 예시

• SVD 예

• Truncated SVD 예

Latent Semantic Analysis

• 단어-문서행렬(word-document matrix), 단어-문맥행렬(window-based co-occurrence matrix) 등 입력 데이터에 특이값 분해를 수행해 데이터의 차원수를 줄여 계산 효율성을 키우는 한편 행간에 숨어있는 의미를 이끌어 내기 위한 방법

Latent Semantic Analysis

• n 개의 문서를 m 개의 단어로 표현된 입력데이터 행렬 A 가 주어졌을 때

• A 의 0보다 큰 고유값의 개수를 r 이라고 할때, r 보다 작은 k 를 연구자가 임의로 설정하고 Σk 를 만듬

• 이후 U 와 V행렬에서 여기에 대응하는 부분만 남겨 Uk 와 Vk 를 만들어 A와 비슷한Ak 행렬을 구축

• 이 식 양변에 Uk 의 전치행렬을 곱해준 것을X1 , Vk 를 곱해준 것을 X2라 하면

• X1 의 경우 n개의 문서는 원래 단어수 m보다훨씬 작은 k 개 변수로 표현됨

• X2 는 m개의 단어가 원래 문서 수 n보다 작은k 개 변수로 표현됨

Latent Semantic Analysis 예시

Latent Semantic Analysis 예시

Latent Semantic Analysis 예시