학교/졸프

LDA(Latent Dirichlet Allocation

daykim 2021. 8. 19. 16:06

토픽 모델링(Topic Modeling)

문서의 집합에서 토픽(주제)을 찾아내는 프로세스

 

LDA(Latent Dirichlet Allocation)

잠재 디리클레 할당

토픽 모델링 기법의 대표적인 알고리즘

토픽별 단어의 분포, 문서별 토픽의 분포를 추정하는 확률적 모형

LDA는 문서들은 토픽들의 혼합으로 구성되어 있으며, 토픽들은 확률분포에 기반해 단어들을 생성한다고 가정한다.

 

 

위의 사진을 보면 문서에 담긴 텍스트들의 키워드를 하나씩 뽑아 토픽별로 인덱싱하여 분류하고, 특정 토픽에 특정 단어가 나타날 확률을 보여준다.

문서를 보면 노란색 토픽에 해당하는 단어들이 많기 때문에 위 문서의 메인 주제는 노란색 토픽일 가능성이 크다.

노란색 토픽에선 'gene'이라는 단어가 등장할 확률이 제일 높기 때문에 '유전자'관련 주제라는 것을 알 수 있다.

 

LDA 가정

LDA는 문서들로부터 토픽을 뽑아내기 위해서 작성자가 아래와 같은 가정을 했다고 염두해둔다.

간단한 가정

  1. 문서를 작성하기 위해 넣을 토픽 결정
  2. 토픽을 위해 넣을 단어 결정

구체적 가정

  1. 문서에 사용할 단어의 개수 N 지정
  2. 문서에 사용할 토픽의 혼합을 활률분포에 기반하여 결정
  3. 문서에 사용할 각 단어를 정함
    3-1. 토픽 분포에서 토픽 T를 확률적으로 선택
    3-2. 선택한 토픽 T에서 단어의 출현 확률 분포에 기반해 문서에 사용할 단어를 선택

 

LDA 수행

문서가 있고 그 안에 단어가 있다면, 확률분포 중 하나인 디리클레의 분포를 가정하고,

번호가 매겨진 토픽 안에 문서와 단어들을 하나씩 넣어보며 잠재적인 의미(토픽)들을 찾아주는 과정이다.

  1. 사용자는 알고리즘에게 토픽 개수 k를 알려준다.
  2. 모든 단어를 k개 중 하나의 토픽에 할당한다.
  3. 이제 모든 문서의 모든 단어에 대해 아래의 사항 반복 진행
    3-1. 어떤 문서의 각 단어 w는 자신은 잘못된 토픽에 할당되었지만, 다른 단어들은 전부 올바른 토픽에 할당됐다고 가정. 이에 따라 단어 w는 아래의 두 가지 기준에 따라 재할당 된다.
    - p(topic t | document d) : 문서 d의 단어들 중 토픽 t에 해당하는 단어들의 비율
    - p(word w | topic t) : 각 토픽들 t에서 해당 단어 w의 분포

 

모델 아키텍처

D 말뭉치 전체 문서 개수
K 전체 토픽 수 (하이퍼 파라미터)
N d번째 문서의 단어 수
α 어떤 주제의 분포 정도
β 어떤 단어의 분포 정도
z d번째 문서에 n번째 단어가 어떤 토픽에 해당하는지의 값
w 실제 관측 가능한 단어  (해당 변수를 통해 α, β 제외한 변수 모두 추론해야함)
Φ 각 토픽에서 어떤 단어들이 얼마나 분포하는지에 대한 값
Θ 각 문서들의 토픽 분포에 대한 값
사각형 해당 횟수만큼 반복
변수

 

LDA 학습 과정

  1. 모든 문서와 문서 속 단어들을 임의의 토픽 번호 부여
  2. 토픽-문서의 단어 분포를 계산
  3. 토픽-단어 분포 계산
  4. 단어 하나를 제외한 나머지 토픽-단어, 문서의 분포를 고정
  5. 미분류된 키워드의 토픽을 선정

해당 과정을 모두 반복시 가장 높은 확률을 가진 토픽에 해당 단어와 문서가 분류됨으로써 LDA학습 완료

 

 

 

 

 

 

 

 

 

 

 

 

참고한 URL

'학교 > 졸프' 카테고리의 다른 글

크롤링 속도 개선  (0) 2023.07.09
Doc2Vec  (0) 2021.08.17
selenium 네이버 뉴스 크롤링  (0) 2021.06.29
AWS EC2에서 Flask 구동하기  (0) 2021.06.28
Nginx와 Flask를 활용해서 서빙하기  (0) 2021.06.25