728x90
반응형
LDA(Latent Dirichlet Allocation)
- 추출한 문서에 담긴 단어들의 주제(토픽)을 추출하는 ‘토픽모델링’ 기법 중 하나
- 단어가 특정 토픽에 존재할 확률과 문서에 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출
토픽 모델링
각 단어나 문서들의 집합에 대해 숨겨진 주제를 찾아내어 문서나 키워드별로 주제끼리 묶어주는 비지도학습 알고리즘
LDA는 문서가 있고, 그 안에 단어가 있다면 확률분포 중 하나인 디리클레의 분포를 가정하고,
번호가 매겨진 토픽 안에 문서와 단어들을 하나씩 넣어보며 잠재적인 의미(토픽)을 찾아주는 과정
- α, β, K : 디리클레 분포 하이퍼 파라미터 값
- α: 문서들의 토픽 분포를 얼마나 밀집되게 할 것인지에 대한 설정 값
- β: 문서 내 단어들의 토픽 분포를 얼마나 밀집되게 할 것인지에 대한 설정 값
- K: 토픽을 몇개로 설정할 것인지에 대한 설정 값
- M: 문서 개수
- N: 문서에 속한 단어의 갯수
- θ: 문서의 토픽 디리클레 분포
- φ: 주제의 단어
- Z: 해당 단어가 속한 토픽의 번호
- W : 실제 관측 가능한 값
의미 있는 인사이트를 얻기 위한 활동
추론된 주제들로 분류된 문서들과 단어들의 맥락을 살핀 후
- 모델의 하이퍼파라미터 조절
- 단어들을 대치
- 해석 불용이한 문서들의 키워드를 찾아내어 제거
- 사용자 사전을 조정하여 추출되는 단어들을 조정
LDA 모델 평가
Perplexity
특정 확률 모델이 실제로 관측되는 값을 얼마나 잘 예측하는지를 평가할때 사용
H(p): p의 정보 엔트로피
토픽 모델링에서 적용 식
LL(w): 로그 가능도
토픽 모델 내에서 특정 단어가 해당 주제로 부여될 확률값에 로그를 취한 값
N: 전체 단어의 개수
Perplexity | Topic Coherence | |
의미 | 확률 모델이 결과를 얼마나 정확하게 예측하는지 낮을수록 정확하게 예측 |
토픽이 얼마나 의미론적으로 일관성 있는지 높을수록 의미론적 일관성 높음 |
주용도 | 토픽 모델링 기법이 얼마나 빠르게 수렴하는지 확인할 때 확률 모델이 다른 모델에 비해 얼마나 개선되었는지 평가할 때 동일 모델 내 파라미터에 따른 성능 평가할 때 주로 사용 |
해당 모델이 얼마나 실제로 의미있는 결과를 내는지 확인하기 위해 사용 |
한계 | Perplexity가 낮다고 해서, 결과가 해석 용이하다는 의미가 아님 | 평가를 진행하기 위해 다른 외부 데이터(코퍼스, 시소러스 등)가 필요 특정 coherence가 너무 높아지면 정보의 양이 줄어들게 되고, coherence가 너무 낮아 정보들이 일관성이 없다면, 분석의 의미가 낮아지게 됨 |
- 의미 의미확률 모델이 결과를 얼마나 정확하게 예측하는지.낮을수록 정확하게 예측.
- 토픽 모델링 기법이 얼마나 빠르게 수렴하는지 확인할 때,
- 확률 모델이 다른 모델에 비해 얼마나 개선되었는지 평가할 때,
- 동일 모델 내 파라미터에 따른 성능 평가할 때 주로 사용
- 한계 Perplexity가 낮다고 해서, 결과가 해석 용이하다는 의미가 아님
Coherence
- 토픽이 얼마나 의미론적으로 일관성 있는지.
- 높을수록 의미론적 일관성 높음
- 해당 모델이 얼마나 실제로 의미있는 결과를 내는지 확인하기 위해 사용
- 평가를 진행하기 위해 다른 외부 데이터(코퍼스, 시소러스 등)가 필요
특정 coherence가 너무 높아지면 정보의 양이 줄어들게 되고, coherence가 너무 낮아 정보들이 일관성이 없다면, 분석의 의미가 낮아지게 됨
Topic Coherence: Topic Coherence measures score a single topic by measuring the degree of semantic similarity between high scoring words in the topic
- C_v measure is based on a sliding window, one-set segmentation of the top words and an indirect confirmation measure that uses normalized pointwise mutual information (NPMI) and the cosine similarity
- 0~1사이.
- C_p is based on a sliding window, one-preceding segmentation of the top words and the confirmation measure of Fitelson’s coherence
- C_uci measure is based on a sliding window and the pointwise mutual information (PMI) of all word pairs of the given top words
- C_umass is based on document cooccurrence counts, a one-preceding segmentation and a logarithmic conditional probability as confirmation measure
- 0에 가까울수록 완벽한 일관성을 가진다는 의미
- C_npmi is an enhanced version of the C_uci coherence using the normalized pointwise mutual information (NPMI)
- C_a is baseed on a context window, a pairwise comparison of the top words and an indirect confirmation measure that uses normalized pointwise mutual information (NPMI) and the cosine similarity
LDA Model 적용
[NLP/NLP 기초] - Gensim 을 활용해서 사용 가능
gensim.models.ldamodel.LdaModel()
- corpus (iterable of iterable of (int, int), optional): BoW 형식의 텍스트 모음
- num_topics (int, optional): Number of Topics
- passes (int, optional): Number of passes through the corpus during training.
- chunksize (int, optional): Number of documents to be used in each training chunk.
- alpha ({numpy.ndarray, str}, optional): Alpha parameter of LDA
- id2word (Dictionary, optional): 토큰 ID와 코퍼스에서 단어 사이의 매핑, 지정되지 않은 경우 -에서 유추
- optimize_interval (int, optional): optimize_interval 반복 마다 하이퍼파라미터를 최적화
- iterations (int, optional) :훈련 반복 횟수
- topic_threshold (float, optional): 주제를 고려할 확률의 임계 값
LDAvis 로 토픽 모델 시각화
pyLDAvispip install
pip install pyLDAvis
pyLDAvis
pyLDAvis.enable_notebook()
vis = gensimvis.prepare(ldamodel, corpus, dictionary)
pyLDAvis.display(vis)
pyLDAvis.save_html(vis, LDA_FILENAME)
- 토픽은 단어 개수의 차원을 가지고 있음->2 차원으로 압축하기 위해서는 차원 축소 방법 이용
- LDAvis는 Principal Component Analysis (PCA) 를 이용하여 n_terms 차원의 벡터들을 2 차원으로 압축
- 원의 크기 : 토픽의 단어들이 얼마나 속해 있고 어떻게 분포 되어있는지
- 원의 거리 : 토픽 간의 유사성 (두 개의 원이 겹친다면 , 두 개의 토픽은 유사한 토픽이라는 의미)
- 버블 중 하나로 커서를 이동하면 오른쪽의 단어와 막대가 업데이트
- 토픽을 형성하는 주도적인 키워드 확인
- λ =1 일수록
- 토픽 별로 가장 자주 등장하는 단어들을 우선적으로 키워드로 선택한다는 의미 이고
- λ = 0 일수록
- 토픽 간에 차이가 많이 나는 단어를 선택한다는 의미(해당 토픽에서 많이 등장한 단어)
LDA Sample 코드 참고 사이트
LDA 모델링 검토 결과
- Topic 개수를 최적화하기 위해 변경하거나 확인해야 할 인자 항목이 많음
- 모델링의 인자 정보의 기준은 데이터의 특성에 따라 달라질 수 있으며 실험적으로 검증해야 함
- LDA 모델링 시 단어 간 연관 정보 보다는 빈도수에 의존하게 되므로 의미를 유추한 토픽 추출은 다른 모델링 기법과 통합하여 진행할 필요가 있음
References
728x90
반응형
'Generative AI > Language Model' 카테고리의 다른 글
[Language Model] KR-BERT (0) | 2021.04.13 |
---|---|
[NLP] 통계적 언어 모델(Statistical Language Model, SLM) (0) | 2021.04.12 |
[Language Model] T5(Text-to-Text Transfer Transformer) (0) | 2021.04.08 |
[Language Model] Multilingual BERT (0) | 2021.04.08 |
[NLP] Seq2Seq Model (0) | 2021.03.12 |