Latent Dirichlet Allocation (LDA) og Hierarkisk Dirichlet-prosess (HDP) er begge emnemodelleringsprosesser. Den største forskjellen er at LDA krever spesifikasjon av antall temaer, og HDP ikke. Hvorfor er det slik? Og hva er forskjellene, fordelene og ulempene ved begge modelleringsmetodene?
Kommentarer
- Skal HDP være datadrevet med hensyn til antall emner den vil velge? På praktisk side prøvde jeg å kjøre Blei ' HDP-implementering og den spiste bare alt minne til jeg drepte prosessen. Jeg har 16 GB RAM og litt over 100 000 korte dokumenter å analysere.
Svar
HDP er en utvidelse av LDA, designet for å adressere saken hvor antall blandingskomponenter (antall «emner» i dokumentmodelleringsform) ikke er kjent på forhånd. Så det er grunnen til at det er en forskjell.
Ved å bruke LDA for dokumentmodellering behandler man hvert «emne» som en fordeling av ord i et kjent ordforråd. For hvert dokument tegnes en blanding av emner fra en Dirichlet-distribusjon, en og da er hvert ord i dokumentet et uavhengig trekk fra den blandingen (det vil si å velge et emne og deretter bruke det til å generere et ord).
For HDP (brukes på dokumentmodellering) bruker man også en Dirichlet-prosess for å fange usikkerheten i antall emner. Så det blir valgt en felles basefordeling som representerer det utallige uendelige settet av mulige emner for korpuset, og deretter blir den endelige fordelingen av emner for hvert dokument prøvetatt fra denne basedistribusjonen.
Så langt som fordeler og ulemper, HDP har fordelen at maksimalt antall emner kan være ubegrenset og lært av dataene i stedet for spesifisert på forhånd. Jeg antar at det er mer komplisert å implementere, og unødvendig i tilfeller hvor et begrenset antall emner er akseptabelt.
Svar
Anekdotisk har jeg aldri vært imponert over resultatet fra hierarkisk LDA. Det ser ikke ut til å finne et optimalt granularitetsnivå for å velge antall emner. Jeg har fått mye bedre resultater ved å kjøre noen iterasjoner av vanlig LDA, inspisere manuelt emnene den produserte, bestemme om jeg vil øke eller redusere antall emner, og fortsette å itere til jeg får den granulariteten jeg leter etter.
Husk: hierarkisk LDA kan ikke lese tankene dine … den vet ikke hva du egentlig har tenkt å bruke emnemodelleringen til. Akkurat som med k-betyr klynging, bør du velge det k som gir mest mening for ditt brukstilfelle.
Svar
Jeg ønsket å påpeke, siden dette er en av de beste Google-treffene for dette emnet, at Latent Dirichlet Allocation (LDA), Hierarchical Dirichlet Processes (HDP), and hierarchical Latent Dirichlet Allocation (hLDA) er alle forskjellige modeller.
LDA-modeller dokumenterer som dirichletblandinger av et fast antall emner – valgt som en parameter av modellen av brukeren – som igjen er dirichletblandinger av ord. Dette genererer en flat, myk probabilistisk gruppering av termer i emner og dokumenter i emner.
HDP modellerer emner som blandinger av ord, omtrent som LDA, men i stedet for at dokumenter er blandinger av et fast antall emner, genereres antall emner av en dirichlet-prosess, noe som resulterer i at antall emner blir en tilfeldig variabel også. Den «hierarkiske» delen av navnet refererer til et annet nivå som legges til den generative modellen (dirichlet-prosessen som produserer antall emner), ikke emnene i seg selv – emnene er fremdeles flate klynger.
hLDA, derimot, er en tilpasning av LDA som modellerer emner som blandinger av et nytt, tydelig nivå av emner, hentet fra dirichlet distribusjoner og ikke prosesser. Det behandler fortsatt antall emner som et hyperparameter, dvs. uavhengig av dataene. Forskjellen er at klyngingen nå er hierarkisk – den lærer seg en klynging av det første settet med emner i seg selv, noe som gir en mer generell, abstrakt sammenheng mellom emner (og dermed ord og dokumenter). Tenk på det som å klynge stack-utvekslingene i matematikk, naturfag, programmering, historie, etc. i motsetning til å gruppere datavitenskap og kryssvalidering til et abstrakt statistikk- og programmeringsemne som deler noen konsepter med for eksempel programvareteknikk, men programvareteknikk utveksling er gruppert på et mer konkret nivå med informatikkutvekslingen, og likheten mellom alle de nevnte sentrene vises ikke like mye før det øvre laget av klynger.
Svar
Jeg har en situasjon der HDP fungerer bra sammenlignet med LDA. Jeg har omtrent 16000 dokumenter som tilhører forskjellige klasser.Siden jeg ikke er klar over hvor mange forskjellige emner jeg kan samle for hver klasse, er HDP veldig nyttig i dette tilfellet.
Svar
HDP krever faktisk mange skjulte parametere, som er i kode. Hvis du spiller med slike parametere vil du få forskjellige resultater (forskjellige emner). Folk tar vanligvis ikke hensyn til slike skjulte parametere og tror den modellen er i stand til å finne slike parametere. Det er ikke sant. Brukeren må definere parametrene eta gamma og alfa og maksimalt antall emner. Hvis du spesifiserer maksimalt antall emner, sier om 23 emner, gir du modellen 23 emner i utdata. Hvis du setter opp 15 emner, får du 15 emner i utdata ….
Svar
Yee Whye Teh et al «s 2005 paper Hierarchical Dirichlet Processes beskriver en ikke-parametrisk prior for gruppert klyngeproblemer. For eksempel , hjelper HDP med å generalisere Latent Dirichlet Allocation modell i tilfelle antall emner i dataene blir oppdaget av inferensalgoritmen i stedet for å bli spesifisert som en parameter for modellen. forklaring på Dirichlet Process finner du her
Emnemodeller lover å hjelpe til med å oppsummere og organisere store arkiver med tekster som ikke lett kan analyseres for hånd . Hierarchical Dirichlet process (HDP) er en kraftig blandet medlem hipmodell for uten tilsyn analyse av grupperte data. I motsetning til det endelige motstykket latent Dirichlet-tildeling , utleder HDP-emnemodellen antall emner fra dataene.