LDA 토픽 모델링

AI Scientist를 목표로!·2023년 2월 8일
1
post-custom-banner

LDA 토픽 모델링의 개념

  • 텍스트 대이터 기반의 문서 데이터에서 핵심 주제(Topic)를 찾는 데이터 분석 방법론

  • 확률 기반의 모델링 기법을 통해 방대한 양의 문서 데이터를 분석함으로써 문서 내에 어떤 토픽이, 어떤 비율로 구성되어 있는지 분석

  • 토픽별로 어떤 키워드가 구성되었는지 정보를 제공하기 때문에, 키워드 조합을 통해 인사이트를 도출하는 데 효과적인 장점


LDA 토픽 모델링의 분석 예시

구분내용
리뷰1여긴 삼겹살이랑 냉면 맛집으로 추천
리뷰2이집 미남 사장님 친절하시고 최고
리뷰3사장님 친절하시고 삼겹살이랑 된장찌개 맛집이라 추천
  • 토픽의 개수는 사용자가 직접 지정해야 하는 하이퍼파라미터

  • LDA 토픽 모델링의 결과는 크게 2가지를 얻을 수 있다.

    • 리뷰별 토픽 분포
    • 해당 토픽별 단어 분포

리뷰별 토픽 분포

구분내용
리뷰1토픽 A 100%
리뷰2토픽 B 100%
리뷰3토픽 A 60% / 토픽 B 40%
  • 어떤 단어들이 구성되어 있는지는 알려주지만, 해당 토픽의 제목은 알려주지 않는다.

  • 즉, 직접 토픽별로 구성된 단어의 조합을 보고 토픽의 제목을 정해야 한다.

  • 데이터가 많아질 수록 토픽 분포를 과학적으로 파악하기 위해서는 반드시 LDA가 필요하다.

토픽별 단어 분포

구분내용
토픽 A (음식)삼겹살 25% / 냉면 12.5% / 맛집 25% / 추천 25% / 된장찌개 12.5% / 미남 0% / 사장님 0% / 친절 0% / 최고 0%
토픽 B (사장님)삼겹살 0% / 냉면 0% / 맛집 0% / 추천 0% / 된장찌개 0% / 미남 16.5% / 사장님 33% / 친절 33% / 최고 16.5%
  • 모든 데이터의 모든 단어는 2개의 토픽에 위와 같은 비율로 할당된다.

  • 총 9개의 단어가 등장하였으며, 각 토픽 내 단어들이 등장한 비율을 단어 마다 출현 횟수를 고려해 계산을 할 수 있다.


LDA 토픽 모델링의 가정

  1. 문서에 사용할 단어의 개수 N을 설정
    Ex) N개의 단어 선정

  2. 문서에 사용할 토픽의 혼합을 확률 분포에 기반하여 결정
    Ex) 토픽이 2개라고 가정할 시, 음식 토픽을 60%, 사장님 토픽을 40%와 같이 선택 가능

  3. 문서에 사용할 각 단어를 선정

    3-1. 토픽 분포에서 토픽 T를 확률적으로 선정

    • 60% 확률로 음식 토픽을 선택, 40% 확률로 사장님 토픽을 선택 가능

    3-2. 선택한 토픽 T에서 단어의 출현 확률 분포에 기반해 문서에 사용할 단어를 선정

    • 음식에 관한 토픽을 선택했다면 x% 확률로 음식에 관한 단어를 선택할 수 있다.

LDA 토픽 모델링 프로세스

1. 토픽 개수 결정

  • 전체 문서 데이터에서 추출할 토픽의 총 개수는 사용자가 직접 지정
  • 일반적으로 토픽의 개수는 k로 표현, 전체 문서의 개수는 M으로 표현

2. 단어의 토픽 할당

  • M개의 모든 문서 내 모든 단어는 k개의 토픽 중 하나로 임의로 할당하는 작업을 수행

  • 위 작업을 마치면 모든 문서는 토픽을 갖게 되며 각 토픽은 단어 분포를 갖는다.

  • 모든 단어를 각각 임의의 토픽에 할당하였기 때문에 토픽 내 단어 분포의 결과는 틀린 상태

3. 확률분포 기반 토픽 재할당

  • 모든 단어에 대해 토픽을 재할당 하기 위해 모든 할당이 완료될 때 까지 아래 과정(3-1, 3-2)을 반복 수행

  • 문서 1

    단어사과비행기자동차
    토픽BB??AA
  • 문서 2

    단어바나나
    토픽BBBBB

3-1. 같은 문서 내 단어의 토픽 분포 비교

문서 1에서 3번째 단어인 '배'의 토픽을 할당하려고 할 경우

첫 번째 조건은 단어가 속한 문서의 단어들은 어떤 토픽에 할당되는지 확인하는 것

문서 1 내 모든 단어들은 토픽 A와 토픽 B에 5대5 비율로 할당되어 있기 때문에 '배'라는 단어는 토픽 A와 B 어디에도 할당이 될 수 있다.
해당 조건으로는 단어를 올바르게 재할당하기 어렵기 때문
에 3-2로 넘어간다.

3-2. 타 문서 내 단어의 토픽 분포 비교

두 번째 기준은 재할당 하려는 단어 '배'가 다른 문서까지 포함한 전체 문서에서 어떤 토픽에 할당 되었는지 확인 하는 것

문서 1과 문서 2에 '배'라는 단어는 모두 토픽 B에 할당되어 있기 때문에 '배'라는 단어는 토픽 B에 재할당될 가능성이 높다


LDA와 LSA의 차이

LSA : DTM을 차원 축소하여 축소 차원에서 근접 단어들을 토픽으로 묶는 기법

LDA : 단어가 특정 토픽에 존재할 확률과 문서에 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출

profile
딥러닝 지식의 백지에서 깜지까지
post-custom-banner

1개의 댓글

comment-user-thumbnail
2024년 5월 8일

파이썬을 이용해서 LDA코드를 작성했는데, 매번 실행할때마다 결과가 다른데 이게 맞는걸까요?! ㅜㅜ

답글 달기