본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.
공부하는 습관을 들이자/Deep Learning (NLP,LLM)

[딥러닝 자연어처리] 6-1. 토픽 모델링

by 꿀먹은데이터 2023. 12. 8.

딥러닝을 이용한 자연어처리 입문 # 6-1. 토픽 모델링

토픽 모델링 :

기계 학습이나 자연어 처리 분야에서 텍스트 본문의 숨겨진 의미 구조를 발견하기 위해 사용되는 텍스트 마이닝 기법

1) 잠재 의미 분석 (Latent Semantic Analysis, LSA)

  • LSA : 토픽 모델링을 위한 최적화 알고리즘 x
  • LDA : LSA의 단점을 보완한 최적화 알고리즘 o
  • DTM or TF-IDF : 단어의 빈도 수를 이용한 수치화 방법 → 단어의 의미 고려하지 못함

⇒ 대안 = LSA : DTM의 의미를 이끌어내는 방법(잠재 의미 분석)

⇒ 특이값 분해(SVD)

특이값 분해(Singular Value Decomposition, SVD)

  • A = m x n 행렬 → 3개의 행렬의 곱으로 분해

  • 직교행렬 : 자신과 자신의 전치 행렬의 곱 또는 이를 반대로 곱한 결과가 단위행렬이 되는 행렬
  • 대각행렬 : 주대각선을 제외한 곳의 원소가 모두 0인 행렬
  • SVD로 나온 내각행렬의 대각 원소의 값을 행렬 A의 특이값
  • 전치행렬 (Transposed Matrix)
    • 원래의 행렬에서 행과 열을 바꾼 행렬
    • 주 대각선을 축으로 반사 대칭을 해서 얻는 행렬

  • 단위행렬 (Identify Matrix)
    • 주대각선의 원소가 모두 1 & 나머지 원소는 모두 0인 정사각 행렬

  • 역행렬 (Inverse Matrix)
    • 행렬 A와 어떤 행렬을 곱했을 때, 결과로 단위행렬이 나오면 어떤 행렬을 A의 역행렬

  • 직교행렬 (Orthogonal Matrix)

  • 대각행렬 (Diagonal Matrix)
    • 주대각선을 제외한 곳의 원소가 모두 0인 행렬

절단된 SVD (Truncated SVD)

  • U 행렬 : t열까지만 남김
  • 대각행렬 : 상위값 t개만 남김
  • V 행렬 : t열까지만 남김
  • t = 토픽의 수를 반영한 하이퍼파라미터 값
    • t 크면, 기존의 행렬 A로부터 다양한 의미 가질 수 있음
    • t 작으면, 노이즈 제거 가능
  • 장점)
    • 데이터 차원 줄이면 계산 비용 낮아짐
    • 불필요한 정보 삭제

잠재 의미 분석 (Latent Semantic Analysis, LSA)

DTM or TF-IDF 행렬에 절단된 SVD사용하여 차원 축소 → 잠재적인 의미 추출

 

축소된 U : 4 x 2 → 문서의 개수 x 토픽의 수 t

  • 각 행은 잠재 의미를 표현하기 위한 수치화 된 각각의 문서 벡터
  • 축소된 VT : 2 x 9 → 토픽의 수 t x 단어의 개수
    • 각 열은 잠재 의미를 표현하기 위해 수치화된 각각의 단어 벡터

LSA의 장단점 (Pros and Cons of LSA)

  • 장점)
    • 쉽고 빠르게 구현이 가능
    • 단어의 잠재적인 의미를 이끌어 낼 수 있어 문서의 유사도 계산 등에서 좋은 성능
  • 단점)
    • 이미 계산된 LSA에 새로운 데이터를 추가하려고 하면 보통 처음부터 계산해야함 → 새로운 정보에 대해 업데이터 어려움
    •  
import numpy as np

a=np.array([~~~])
np.shape(a) #DTM 생성

# Full SVD
U, s, VT = np.linalg.svd(A,full_matrices = True)