잠재 디리클레 할당
Latent Dirichlet allocation![]() | 이 기사는 대부분의 독자들이 이해하기에는 너무 전문적일 수 있다.바랍니다. (2017년 ( 템플릿 삭제 방법 및 ) 을 삭제하지 할 수 |
자연어 처리에서 잠재 디리클레 할당(LDA)은 관찰되지 않은 그룹을 통해 관측치 집합을 설명하는 생성 통계 모델이며, 각 그룹은 데이터의 일부 부분이 유사한 이유를 설명합니다.LDA는 주제 모형의 예입니다.여기서 관찰(예: 단어)은 문서로 수집되고 각 단어의 존재는 문서의 주제 중 하나에 기인합니다.각 문서에는 소수의 주제가 포함되어 있습니다.
역사
집단 유전학의 맥락에서 LDA는 J. K. 프리처드, M. 스티븐스, P에 의해 제안되었다. 2000년에 [1][2]도넬리.
LDA는 2003년 [3]David Blei, Andrew Ng 및 Michael I. Jordan에 의해 기계학습에 적용되었습니다.
개요
진화생물학과 바이오의학
진화생물학과 바이오의학에서 모델은 개인의 집단에서 구조화된 유전자 변이의 존재를 감지하기 위해 사용된다.이 모델은 연구 대상 개인이 가지고 있는 대립 유전자가 다양한 현존 또는 과거 집단에서 기원한다고 가정한다.모델과 다양한 추론 알고리즘은 과학자들이 연구 대상 개체군의 대립 유전자의 빈도와 연구 대상 개체들이 가지고 있는 대립 유전자의 기원을 추정할 수 있게 해준다.선원 모집단은 다양한 진화 시나리오의 관점에서 사후 해석될 수 있다.연합 연구에서 유전자 구조의 존재를 감지하는 것은 교란 요인을 피하기 위해 필요한 예비 단계로 간주된다.
기계 학습
머신러닝에서의 LDA의 응용 프로그램 중 하나는, 특히 토픽 검출, 자연어 처리의 서브 문제 등입니다.이러한 토픽은 문서 컬렉션 내의 토픽을 검출하고, 검출된 각 토픽에 대한 「관련」의 관점에서, 컬렉션내의 개개의 문서를 자동적으로 분류하는 것입니다.주제는 하나의 용어 집합(즉, 개별 단어 또는 구)으로 간주되며, 함께 취합되어 공유 주제를 제안합니다.
예를 들어 애완 동물과 관련된 문서 컬렉션에서 dog, spaniel, beagle, golden retriver, puppy, bark, woof라는 용어는 DOG_ 관련 테마를 제안하고 cat, siamese, maine coon, tabbby, manx, 야옹, purr 및 kitten이라는 용어는 CAT_ 관련 테마를 제안합니다.컬렉션에는 단순함을 위해 논의하지 않는 다이어트, 몸단장, 의료, 행동 등과 같은 더 많은 주제가 있을 수 있습니다.(예를 들어 "the", "an", "that", "are", "is" 등 언어에서 정지어라고 불리는 매우 일반적인 단어는 주제를 구분하지 않으며 보통 LDA가 수행되기 전에 사전 처리를 통해 걸러진다.또한 전처리는 용어를 "근원" 어휘 형식으로 변환합니다. 예를 들어 "barks", "barking", "barked"는 "barked"는 "bark"로 변환됩니다).
문서 수집이 충분히 큰 경우, LDA는 개별 주제에 의미 있는 라벨을 할당하는 작업(즉, 모든 용어가 DOG_관련)은 사용자의 몫이며 종종 수집에 대한 전문 지식(예, 주제)을 필요로 하지만 개별 용어의 공존에 기초하여 그러한 용어 집합을 발견한다.기술 문서)를 참조해 주세요.LDA 접근방식은 다음과 같이 가정한다.
- 문서의 의미적 내용은 하나 이상의 주제에서 하나 이상의 용어를 결합하여 구성됩니다.
- 어떤 용어는 애매하고, 여러 주제에 속하며, 다른 가능성을 가지고 있다. (예를 들어, 훈련이라는 용어는 개와 고양이 모두에게 적용될 수 있지만, 개를 지칭하는 경우가 더 많다. 그들은 일하는 동물로 쓰이거나 복종이나 기술 경쟁에 참가한다.)단, 문서에서는 특정 인접 용어(하나의 토픽에만 속하는 용어)가 함께 존재하면 용법이 명확해집니다.
- 대부분의 문서에는 비교적 적은 수의 주제만 포함되어 있습니다.예를 들어, 컬렉션에서 개별 토픽은 다른 빈도로 발생합니다.즉, 확률 분포를 가지므로 특정 문서가 다른 문서보다 일부 주제를 포함할 가능성이 높습니다.
- 주제 내에서 특정 용어는 다른 용어보다 훨씬 더 자주 사용됩니다.즉, 항목 내의 항에도 자체 확률 분포가 있습니다.
LDA 기계 학습을 사용할 때, 베이지안 방법과 기대 최대화 알고리즘을 사용하여 훈련 단계 동안 확률의 두 세트가 모두 계산된다.
LDA는 확률론적 잠재의미분석(pLSA)의 오래된 접근방식의 일반화이다. pLSA 모델은 균일한 디리클레 사전 분포 [4]하에서의 LDA와 동일하다. pLSA는 위의 처음 두 가정에만 의존하며 나머지는 신경 쓰지 않는다.두 방법 모두 원칙적으로 유사하며 사용자가 훈련을 시작하기 전에 검색할 주제 수를 지정해야 하지만(K-평균 클러스터링과 마찬가지로) LDA는 pLSA에 비해 다음과 같은 이점이 있습니다.
- LDA는 단어를 더 잘 명확하게 하고 주제에 문서를 더 정확하게 할당할 수 있습니다.
- 확률 계산은 원래 수집의 통계적 특성을 밀접하게 반영하는 새로운 "합성 문서" 수집을 생성할 수 있는 "생성적" 프로세스를 가능하게 한다.
- LDA와 달리 pLSA는 특히 말뭉치의 크기가 증가할 때 과적합에 취약하다.
- LDA 알고리즘은 컴퓨팅 클러스터의 MapReduce 접근방식을 사용하여 대규모 데이터 세트를 쉽게 확장할 수 있습니다.
모델

확률론적 그래픽 모델(PGM)을 나타내는 데 자주 사용되는 플레이트 표기법을 사용하면 여러 변수 간의 의존성을 간결하게 포착할 수 있다.상자는 반복된 도면요소인 반복실험을 나타내는 "플레이트"입니다.바깥쪽 판은 문서를 나타내며 안쪽 판은 주어진 문서에서 반복되는 단어 위치를 나타냅니다. 각 위치는 주제 및 단어 선택과 관련이 있습니다.변수 이름은 다음과 같이 정의됩니다.
- M은 문서 수를 나타냅니다.
- N은 특정 문서 내의 단어 수(문서 i에는 }) 단어가 )
- α는 문서별 주제 분포에 앞서 Dirichlet의 매개변수이다.
- β는 주제별 단어 분포 이전의 Dirichlet 매개변수이다.
- i})는 문서 i의 토픽 배포입니다.
- \k는 토픽 k의 단어 분포입니다.
- j(\는 문서 i의 j번째 단어의 주제입니다.
- i { style _ { } w 。
W가 회색으로 표시되어 있다는 것은 단어만이 관측 가능한 변수이고 다른 변수는 잠재 변수임을 의미합니다.원본 [3]논문에서 제안했듯이, 주제의 단어에 대한 확률 분포가 왜곡되어 소수의 단어 세트만 높은 확률을 갖는다는 직관에 따라, 희소 디리클레를 사용하여 주제-단어 분포를 모델링할 수 있다.결과 모델은 현재 가장 널리 적용되는 LDA 변형입니다.이 모델의 플레이트 표기법은 오른쪽에 표시되어 있습니다.K }는토픽의 수를 나타내고 있습니다.K displaystyle 1} \, \K}는 디리클레 분산된 토픽의 파라미터를 저장하는 V{\ V차원 입니다. V는 어휘의 단어 수입니다).
와 로 표현되는 엔티티는 모델링되는 문서의 말뭉치를 나타내는 원래의 문서-워드 매트릭스를 분해하여 작성된 매트릭스라고 생각하면 도움이 됩니다. 뷰에서 { }는 문서와 토픽으로 정의된 열로 구성되며, { \ \ }는 토픽으로 정의된 열과 단어로 정의된 열로 구성됩니다. " "\ "\K}"는 각각 단어에 대한 분포인 행 또는 벡터 집합을 나타내며 "1, "\ style },\ _}}"는 각 행 집합을 나타냅니다.
생성 과정
실제로 말뭉치 내의 주제를 추론하기 위해 우리는 문서가 생성되는 생성 과정을 상상하고, 이를 추론하거나 역설계할 수 있습니다.우리는 그 생성 과정을 다음과 같이 상상한다.문서는 잠재 주제에 대한 무작위 혼합으로 표현되며, 각 주제는 모든 단어에 대한 분포로 특징지어집니다.LDA는 각각 Nii의M개의 문서({M})로 구성된 D(\ D에 대해 다음과 같은 생성 프로세스를 가정한다.
1. ~ (α) \ { } \ \{}( \ )를 선택합니다.서 i 1, , M { i \ \ , \, \ 、 \ style \ dots \ { } ) 。e (< \ )
. [] k ~ [ () \ \ _ { k } \ { Dir ( \ )]를 선택합니다.서 k { , , { k \ { 1, \ ,K\} 및}는 일반적으로 sparse입니다.
3. 각 단어 i서 i { , ,M { i \ \ , \} , {, ..., i { j \ \1 \ , N ) 。
- (a) i ~ ( i ).{ _을 선택합니다.
- (b) 단어 i ~ ( z ,) .{ , j{ ( \ { _ { , )를 선택합니다.
(여기서 다항 분포는 범주형 분포라고도 하는 시행이 하나만 있는 다항 분포를 가리킵니다.)
는 다른 모든 데이터 생성 변수 w 및(\ z와는 무관한 것으로 취급됩니다.여기에 표시된 플레이트 다이어그램과 같이 첨자가 자주 떨어집니다.
정의.
LDA에 대한 공식적인 설명은 다음과 같습니다.
변수 | 유형 | 의미. |
---|---|---|
정수 | 주제 수(예: 50) | |
정수 | 어휘의 단어 수(예: 50,000 또는 100,000) | |
정수 | 문서수 | |
정수 | 문서 d의 단어 수 | |
정수 | 모든 문서의 총 단어 수: 모든 { _ { } N d \ _ { d=}^{ { } } N _ { d } 。 | |
정의 실수 | 문서의 주제 k의 이전 가중치. 일반적으로 모든 주제에 대해 동일하며, 일반적으로 1보다 작은 숫자(예: 0.1)는 희박한 주제 분포를 선호한다. 즉, 문서당 몇 개의 주제 | |
양의 실수의 K차원 벡터 | k _ 값 집합, 단일 벡터로 표시 | |
정의 실수 | 토픽에서 단어 w의 이전 가중치. 보통 모든 단어에 대해 동일하며, 일반적으로 1보다 훨씬 적은 수(예: 0.001)는 희박한 단어 분포를 강하게 선호한다. 즉, 주제당 단어 수 | |
양의 실수의 V차원 벡터 | w\ \ style _ { } 값 집합, 단일 벡터로 표시 | |
확률(0과 1) 사이의 실수 | 항목 k에서 단어 w가 발생할 확률 | |
확률의 V차원 벡터. 합계는 1이어야 합니다. | 토픽 k의 단어 분포 | |
확률(0과 1) 사이의 실수 | 문서 d에서 주제 k가 발생할 확률 | |
K차원 확률 벡터, 합계는 1이어야 합니다. | 문서 d의 주제 분포 | |
1과 K 사이의 정수 | 문서 d의 단어 w의 주제 동일성 | |
1과 K 사이의 정수의 N차원 벡터 | 모든 문서에서 모든 단어의 주제 동일성 | |
1과 V 사이의 정수 | 문서 d의 단어 w의 동일성 | |
1과 V 사이의 정수의 N차원 벡터 | 모든 문서에 포함된 모든 단어의 동일성 |
그런 다음 랜덤 변수를 다음과 같이 수학적으로 설명할 수 있습니다.
추론
다양한 분포(주제의 집합, 연관된 단어 확률, 각 단어의 주제 및 각 문서의 특정 주제 혼합)를 배우는 것은 통계적 추론의 문제이다.
몬테카를로 시뮬레이션
Pritchard [1]등의 오리지널 논문.몬테카를로 시뮬레이션에 의한 후방 분포의 근사치를 사용했다.추론 기법의 대안적 제안에는 깁스 [5]표본 추출이 포함된다.
변이 베이즈
원래의 ML 논문은 후방 [3]분포의 변형 베이즈 근사치를 사용했다.
우도 최대화
블록 완화 알고리즘을 사용하여 우도를 직접 최적화하는 것이 MCMC의 [6]빠른 대안임을 증명한다.
모집단/토픽 수를 알 수 없습니다.
실제로 최적의 모집단 또는 주제 수는 사전에 알려져 있지 않습니다.이는 가역 점프 마르코프 연쇄 몬테 [7]카를로의 후방 분포 근사치로 추정할 수 있다.
대체 어프로치
최근의 연구는 다수의 문서에서 방대한 수의 주제를 포착하는 것을 지원하기 위해 잠재된 디리클레 할당의 추론을 가속화하는 데 초점을 맞추고 있다.앞에서 언급한 접힌 깁스 샘플러의 업데이트 방정식은 그 안에 이용할 수 있는 자연스러운 희소성을 가지고 있다.직관적으로 각 문서에는 d\ K _ { 의 서브셋만이 포함되어 있고, w\ K _ { 의 서브셋에만 단어가 표시되므로 위의 업데이트 방정식은 이 희소성을 [9]활용하기 위해 다시 작성할 수 있습니다.
이 방정식에서는 세 개의 항이 있는데, 그 중 두 개는 희박하고 다른 하나는 작습니다.이 을 a, b c라고 부릅니다.모든 토픽을 요약하여 각 용어를 정규화하면 다음과 같은 결과가 나옵니다.
여기서 B B는 d d에 기재된 토픽의 합계이며, C도 단어 w w가 전체에 걸쳐 할당되어 있는 토픽의 희박한 을 알 수 있습니다.밀도가 높지만 α 스타일 \alpha와β(스타일 \의 값이 작기 때문에 다른 두 항에 비해 값이 매우 작습니다.
토픽을 샘플링 할 때 랜덤 변수를 s~ ( A + + )\ s \ U ( \ A + + )에서 균일하게 샘플링하면 샘플이 어느 버킷에 도착하는지 확인할 수 있습니다.작기 에 이 버킷에 빠질 가능성은 거의 없습니다.단, 이 버킷에 빠졌을 경우 토픽을 샘플링하는 데 O이 (원래 Collapse Gibbs Sampler와 동일).그러나 다른 두 버킷에 속할 경우 희박한 주제를 기록하면 일부 항목만 확인할 수 있습니다.토픽은 O d 에 B 버킷에서 샘플링할 수 있으며, 토픽은 O w 에 C C 에서 샘플링할 수 있습니다. 서 K O 시간에는 K_ 시간 및 입니다 .현재 문서와 현재 단어 유형에 각각 할당된 항목의 mber.
각 항목을 샘플링한 후 이러한 버킷을 업데이트하는 작업은 모두 O( {O( 산술 연산입니다.
컴퓨터 상세 측면
다음은 접힌 Gibbs 샘플링 방정식의 도출입니다. , {\\ \ 및 \ 가 적분됨을 의미합니다.간단히 말하면, 이 파생 자료에서는 모든 문서의 가 N인 것으로 가정합니다. 문서의 길이가 다른 경우에도 파생 자료는 동일하게 유효합니다.
모형에 따르면 모형의 총 확률은 다음과 같습니다.
여기서 굵은 글씨로 표시된 변수는 변수의 벡터 버전을 나타냅니다., })과(\displaystyle\를 통합해야 합니다.
\는 독립적이며 모든 \ \ 동일합니다따라서 과 을 개별적으로 취급할 수 있습니다. \ 부분에만 초점을 맞춥니다.
다음과 같이 에만 초점을 맞출 수 있습니다.
사실 j (\}) 의 모델 숨겨진 부분입니다.이제 위의 방정식의 확률을 진정한 분포식으로 대체하여 명시적 방정식을 작성합니다.
j i{\는 h 내의 단어 토큰의 수이며, 같은 단어 기호(어휘의 h { r는 h { i 토픽에 할당됩니다. n j 는3차원 n_{j_{는 3차원입니다.3차원 중 어느 것이 특정 값으로 제한되지 않는 경우 괄호 안에 있는 점 )(\))을 사용하여 나타냅니다.예를 들어 n , ( ) \ ( )^{는 \ i 토픽에 내의 토큰의 수를 나타냅니다.따라서 위의 방정식의 오른쪽 부분은 다음과 같이 고쳐 쓸 수 있습니다.
따라서 j \ _ 통합식을 다음과 같이 변경할 수 있습니다.
적분 내부의 방정식은 디리클레 분포와 동일한 형태를 가집니다.디리클레 분포에 따르면
따라서,
style 파트로 시선을 돌립니다.실제로 파트의 파생은 와 매우 유사합니다.여기서는 파생 단계만 나열합니다.
알기 쉽게 하기 위해 과 같은 최종 방정식을 와 모두 .
Gibbs 샘플링의 목표는 P( W ; ,β) { P ( { \ symbol {} } } \ { \ { W} ; \ alpha , \ } }。P ( ; , ) \ P ( \ { \ symbol { \ symbalphol { \ symbalphol } ) } } } ) } {\ 직접요점은 다음과 같은 조건부 확률을 도출하는 것이다.
where denotes the hidden variable of the word token in the document.또한 그 단어의 기호는 어휘 내의 t v 단어라고 가정합니다.-( ,n) { {{ - ( m , n )} } , (m, n )。 Gibbs 은 m , ) a a a for for for for for for for for for for for for for for for ( m , )。
Z (m ,) { Z _ { ( , ) } } 。따라서 위의 방정식은 다음과 같이 단순화할 수 있습니다.
마지막으로 n - ( ,) { _ { , }^, - ( ,) } 、 nj , _ { , }^{i } as as 、Z { , 。위의 방정식은 감마 함수의 특성을 이용하여 더욱 단순화할 수 있다.먼저 합계를 분할한 후 다시 합계를 병합하여k\k-독립 를 구합니다. 이 합계는 폐기될 수 있습니다.
Note that the same formula is derived in the article on the Dirichlet-multinomial distribution, as part of a more general discussion of integrating Dirichlet distribution priors out of a Bayesian network.
Related problems
Related models
Topic modeling is a classic solution to the problem of information retrieval using linked data and semantic web technology.[10] Related models and techniques are, among others, latent semantic indexing, independent component analysis, probabilistic latent semantic indexing, non-negative matrix factorization, and Gamma-Poisson distribution.
The LDA model is highly modular and can therefore be easily extended. The main field of interest is modeling relations between topics. This is achieved by using another distribution on the simplex instead of the Dirichlet. The Correlated Topic Model[11] follows this approach, inducing a correlation structure between topics by using the logistic normal distribution instead of the Dirichlet. Another extension is the hierarchical LDA (hLDA),[12] where topics are joined together in a hierarchy by using the nested Chinese restaurant process, whose structure is learnt from data. LDA can also be extended to a corpus in which a document includes two types of information (e.g., words and names), as in the LDA-dual model.[13] Nonparametric extensions of LDA include the hierarchical Dirichlet process mixture model, which allows the number of topics to be unbounded and learnt from data.
As noted earlier, pLSA is similar to LDA. The LDA model is essentially the Bayesian version of pLSA model. The Bayesian formulation tends to perform better on small datasets because Bayesian methods can avoid overfitting the data. For very large datasets, the results of the two models tend to converge. One difference is that pLSA uses a variable to represent a document in the training set. So in pLSA, when presented with a document the model has not seen before, we fix —the probability of words under topics—to be that learned from the training set and use the same EM algorithm to infer —the topic distribution under . Blei argues that this step is cheating because you are essentially refitting the model to the new data.
Spatial models
In evolutionary biology, it is often natural to assume that the geographic locations of the individuals observed bring some information about their ancestry. This is the rational of various models for geo-referenced genetic data.[7][14]
Variations on LDA have been used to automatically put natural images into categories, such as "bedroom" or "forest", by treating an image as a document, and small patches of the image as words;[15] one of the variations is called spatial latent Dirichlet allocation.[16]
See also
References
- ^ a b Pritchard, J. K.; Stephens, M.; Donnelly, P. (June 2000). "Inference of population structure using multilocus genotype data". Genetics. 155 (2): pp. 945–959. doi:10.1093/genetics/155.2.945. ISSN 0016-6731. PMC 1461096. PMID 10835412.
- ^ Falush, D.; Stephens, M.; Pritchard, J. K. (2003). "Inference of population structure using multilocus genotype data: linked loci and correlated allele frequencies". Genetics. 164 (4): pp. 1567–1587. doi:10.1093/genetics/164.4.1567. PMC 1462648. PMID 12930761.
- ^ a b c Blei, David M.; Ng, Andrew Y.; Jordan, Michael I (January 2003). Lafferty, John (ed.). "Latent Dirichlet Allocation". Journal of Machine Learning Research. 3 (4–5): pp. 993–1022. doi:10.1162/jmlr.2003.3.4-5.993. Archived from the original on 2012-05-01. Retrieved 2006-12-19.
- ^ Girolami, Mark; Kaban, A. (2003). On an Equivalence between PLSI and LDA. Proceedings of SIGIR 2003. New York: Association for Computing Machinery. ISBN 1-58113-646-3.
- ^ Griffiths, Thomas L.; Steyvers, Mark (April 6, 2004). "Finding scientific topics". Proceedings of the National Academy of Sciences. 101 (Suppl. 1): 5228–5235. Bibcode:2004PNAS..101.5228G. doi:10.1073/pnas.0307752101. PMC 387300. PMID 14872004.
- ^ Alexander, David H.; Novembre, John; Lange, Kenneth (2009). "Fast model-based estimation of ancestry in unrelated individuals". Genome Research. 19 (9): 1655–1664. doi:10.1101/gr.094052.109. PMC 2752134. PMID 19648217.
- ^ a b Guillot, G.; Estoup, A.; Mortier, F.; Cosson, J. (2005). "A spatial statistical model for landscape genetics". Genetics. 170 (3): pp. 1261–1280. doi:10.1534/genetics.104.033803. PMC 1451194. PMID 15520263.
- ^ Minka, Thomas; Lafferty, John (2002). Expectation-propagation for the generative aspect model (PDF). Proceedings of the 18th Conference on Uncertainty in Artificial Intelligence. San Francisco, CA: Morgan Kaufmann. ISBN 1-55860-897-4.
- ^ Yao, Limin; Mimno, David; McCallum, Andrew (2009). Efficient methods for topic model inference on streaming document collections. 15th ACM SIGKDD international conference on Knowledge discovery and data mining.
- ^ Lamba, Manika; Madhusudhan, Margam (2019). "Mapping of topics in DESIDOC Journal of Library and Information Technology, India: a study". Scientometrics. 120 (2): 477–505. doi:10.1007/s11192-019-03137-5. S2CID 174802673.
- ^ Blei, David M.; Lafferty, John D. (2005). "Correlated topic models" (PDF). Advances in Neural Information Processing Systems. 18.
- ^ Blei, David M.; Jordan, Michael I.; Griffiths, Thomas L.; Tenenbaum, Joshua B (2004). Hierarchical Topic Models and the Nested Chinese Restaurant Process (PDF). Advances in Neural Information Processing Systems 16: Proceedings of the 2003 Conference. MIT Press. ISBN 0-262-20152-6.
- ^ Shu, Liangcai; Long, Bo; Meng, Weiyi (2009). A Latent Topic Model for Complete Entity Resolution (PDF). 25th IEEE International Conference on Data Engineering (ICDE 2009).
- ^ Guillot, G.; Leblois, R.; Coulon, A.; Frantz, A. (2009). "Statistical methods in spatial genetics". Molecular Ecology. 18 (23): pp. 4734–4756. doi:10.1111/j.1365-294X.2009.04410.x. PMID 19878454.
- ^ Li, Fei-Fei; Perona, Pietro. "A Bayesian Hierarchical Model for Learning Natural Scene Categories". Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05). 2: 524–531.
- ^ Wang, Xiaogang; Grimson, Eric (2007). "Spatial Latent Dirichlet Allocation" (PDF). Proceedings of Neural Information Processing Systems Conference (NIPS).
External links
![]() | This article's use of external links may not follow Wikipedia's policies or guidelines. (June 2016) |
- jLDADMM A Java package for topic modeling on normal or short texts. jLDADMM includes implementations of the LDA topic model and the one-topic-per-document Dirichlet Multinomial Mixture model. jLDADMM also provides an implementation for document clustering evaluation to compare topic models.
- STTM A Java package for short text topic modeling (https://github.com/qiang2100/STTM). STTM includes these following algorithms: Dirichlet Multinomial Mixture (DMM) in conference KDD2014, Biterm Topic Model (BTM) in journal TKDE2016, Word Network Topic Model (WNTM ) in journal KAIS2018, Pseudo-Document-Based Topic Model (PTM) in conference KDD2016, Self-Aggregation-Based Topic Model (SATM) in conference IJCAI2015, (ETM) in conference PAKDD2017, Generalized P´olya Urn (GPU) based Dirichlet Multinomial Mixturemodel (GPU-DMM) in conference SIGIR2016, Generalized P´olya Urn (GPU) based Poisson-based Dirichlet Multinomial Mixturemodel (GPU-PDMM) in journal TIS2017 and Latent Feature Model with DMM (LF-DMM) in journal TACL2015. STTM also includes six short text corpus for evaluation. STTM presents three aspects about how to evaluate the performance of the algorithms (i.e., topic coherence, clustering, and classification).
- Lecture that covers some of the notation in this article: LDA and Topic Modelling Video Lecture by David Blei or same lecture on YouTube
- D. Mimno's LDA Bibliography An exhaustive list of LDA-related resources (incl. papers and some implementations)
- Gensim, a Python+NumPy implementation of online LDA for inputs larger than the available RAM.
- topicmodels and lda are two R packages for LDA analysis.
- MALLET Open source Java-based package from the University of Massachusetts-Amherst for topic modeling with LDA, also has an independently developed GUI, the Topic Modeling Tool
- LDA in Mahout implementation of LDA using MapReduce on the Hadoop platform
- Latent Dirichlet Allocation (LDA) Tutorial for the Infer.NET Machine Computing Framework Microsoft Research C# Machine Learning Framework
- LDA in Spark: Since version 1.3.0, Apache Spark also features an implementation of LDA
- LDA, exampleLDA MATLAB implementation