정리용

[NLP] LSA (잠재 의미 분석 ), SVD ( 특이값 분해 ) 본문

딥러닝/이론

[NLP] LSA (잠재 의미 분석 ), SVD ( 특이값 분해 )

무룡룡 2022. 1. 26. 23:48

 

 

 

 

1. SVD ( 특이값 분해 ) 

 

SVD는 행렬을 분해하여 중요한 요소만을 뽑아낼때 사용된다.

https://bab2min.tistory.com/585

Truncated SVD

 

 

 

자연어 처리의 경우

 

U mertix => topic을 위한 word metrix 이고

 

Σ metrix => topic 에 대한 strength(강도)

 

Vt metrix => topic을 위한 Document matrix

 

여기서 Σr개의 특이값을 가지는데, 이것을 작은 값으로 설정하여 topic strength 상위 r 개의 정보만 뽑아낸 형태를 truncated SVD 라고 한다.

 

Σ의 대각행렬의 원소들은 크기순으로 정렬되며   r = 1 이더라도 A의 shape는 계산된다

 

 

 

 

 

 

 

r = 2 의 truncated SVD를 적용해 Σ metrix 과 Vt metrix 의 차원이 3에서 2로 축소되었음을 행렬을 통해 알 수 있다.

 

 

 

 

 

2. 활용 방법

 

1. 단어 - 단어 간의 유사도

 

U X Σ metrix 의 row 간의 코사인 유사로를 이용

 

 

2. 문서 - 문서 간의 유사도

 

Σ X Vt metrix 의 colum 간의 코사인 유사로를 이용

 

 

3. 단어 - 문서 간의 유사도

 

U X Σ X Vt metrix 의 각 요소가 단어와 문서간의 유사도이다

 

 

 

 

 

 

4. 한계점

 

문서에 포함된 단어들이 정규분포(가우시안분포)를 따라야 적용이 가능하다는 점이다.

또한 문장이 추가 되었을때 새로운 단어가 있다면 처음부터 작업을 다시 시작 해야한다.

Comments