LSA(Latent Semantic Analysis), 잠재 의미 분석이란 기본적으로 단어의 빈도 수를 이용한 수치화 방법입니다. 이 알고리즘의 근원은 따지고 보면 NLP입니다. BoW에 기반한 DTM이나 TF-IDF는 기본적으로 단어의 빈도 수를 이용한 수치화 방법이기 때문에 단어의 의미를 고려하지 못한다는 단점이 있었고, 이를 위한 대안으로 LSA라는 방법이 나왔습니다.
미션은 SVD인데 왜 LSA 이야기를 하고 있냐구요? LSA를 이해하기 위해서는 SVD에 대해 잘 알아야 하기 때문입니다.
Latent (잠재된) 의미를 제대로 이끌어내기 위해서는, 나름대로의 <차원 축소 기술>이 필요합니다. 그리고 이때, Truncated SVD가 사용됩니다. 이를 사용함으로써 기존의 행렬에서는 드러나지 않았던 심층적인 의미를 확인할 수 있게 되죠.
여기서부터 문제입니다. [SVD와 Truncated SVD]의 개념을 공부하고, 두 개의 차이에 대해 서술하세요.
대체 어떤 방식으로 차원 축소가 된다는 것일까요?
'일부 벡터들을 삭제하는 것으로 데이터의 차원을 줄인다' 라는 말의 의미를 이해하는 것이 이 미션의 목적입니다.
위에서 설명한 SVD를 풀 SVD(Full SVD)라고 합니다.
일부 벡터들을 삭제시킨 잘린 SVD(Truncated SVD)는 대각 행렬 Σ의 대각 원소의 값 중에서 상위값 t개만 남게 됩니다.
잘린 SVD(Truncated SVD)를 수행하면 값의 손실이 일어나므로 Full SVD와 다르게 기존의 행렬 A를 복구할 수 없습니다.
또한, U행렬과 V행렬의 t열까지만 남깁니다. 여기서 t는 우리가 찾고자하는 토픽의 수를 반영한 Hyper-Paramater값입니다.
t를 선택하는 것은 쉽지 않은 일입니다. t를 크게 잡으면 기존의 행렬 A로부터 다양한 의미를 가져갈 수 있지만, t를 작게 잡아야만 노이즈를 제거할 수 있기 때문입니다.
이렇게 일부 벡터들을 삭제하는 것을 데이터의 차원을 줄인다고도 말하는데, 데이터의 차원을 줄이게되면 당연히 풀 SVD를 하였을 때보다 직관적으로 계산 비용이 낮아지는 효과를 얻을 수 있습니다.
하지만 계산 비용이 낮아지는 것 외에도 상대적으로 중요하지 않은 정보를 삭제하는 효과를 갖고 있는데, 이는 영상 처리 분야에서는 노이즈를 제거한다는 의미를 갖고, 자연어 처리 분야에서는 설명력이 낮은 정보를 삭제하고 설명력이 높은 정보를 남긴다는 의미를 갖고 있습니다. 즉, 다시 말하면 기존의 행렬에서는 드러나지 않았던 심층적인 의미를 확인할 수 있게 해줍니다.
[출처 : https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-19-%ED%96%89%EB%A0%AC]
[출처 : https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-20-%ED%8A%B9%EC%9D%B4%EA%B0%92-%EB%B6%84%ED%95%B4Singular-Value-Decomposition]
[출처 : https://wikidocs.net/24949]