Latent Dirichlet Allocation (LDA) og Hierarkisk Dirichlet-proces (HDP) er begge emnemodelleringsprocesser. Den største forskel er, at LDA kræver specifikation af antallet af emner, og HDP gør det ikke. Hvorfor er det så? Og hvad er forskellene, fordelene og ulemperne ved begge emnemodelleringsmetoder?
Kommentarer
- Skal HDP være datadrevet med hensyn til antallet af emner, det vælger? På den praktiske side forsøgte jeg at køre Blei ‘ HDP-implementering, og den spiste bare al hukommelse, indtil jeg dræbte processen. Jeg har 16 GB RAM og lidt over 100.000 korte dokumenter til analyse.
Svar
HDP er en udvidelse af LDA, designet til at adressere det tilfælde, hvor antallet af blandingskomponenter (antallet af “emner” i dokumentmodelleringsudtryk) ikke er kendt på forhånd. Så det er grunden til, at der er en forskel.
Ved hjælp af LDA til dokumentmodellering behandler man hvert “emne” som en fordeling af ord i noget kendt ordforråd. For hvert dokument tegnes en blanding af emner fra en Dirichlet-distribution, en og derefter er hvert ord i dokumentet et uafhængigt træk fra den blanding (det vil sige at vælge et emne og derefter bruge det til at generere et ord).
For HDP (anvendes til dokumentmodellering) bruger man også en Dirichlet-proces for at fange usikkerheden i antallet af emner. Så der vælges en fælles basisfordeling, der repræsenterer det utallige uendelige sæt mulige emner for corpus, og derefter samples den endelige fordeling af emner for hvert dokument fra denne basefordeling.
For så vidt som fordele og ulemper, HDP har den fordel, at det maksimale antal emner kan være ubegrænset og lært af dataene snarere end specificeret på forhånd. Jeg formoder, at selvom det er mere kompliceret at implementere og unødvendigt i tilfælde, hvor et begrænset antal emner er acceptabelt.
Svar
Anekdotisk har jeg aldrig været imponeret over output fra hierarkisk LDA. Det ser bare ikke ud til at finde et optimalt granularitetsniveau til valg af antal emner. Jeg har fået meget bedre resultater ved at køre et par iterationer af regelmæssig LDA, manuelt inspicere de emner, det producerede, beslutte, om jeg vil øge eller mindske antallet af emner, og fortsætte iterationen, indtil jeg får den granularitet, jeg leder efter. p>
Husk: hierarkisk LDA kan ikke læse dit sind … det ved ikke, hvad du faktisk har til hensigt at bruge emnemodelleringen til. Ligesom med k-betyder klyngedannelse, skal du vælge det k, der giver mest mening for din brugssag.
Svar
Jeg ville gerne påpege, da dette er et af de bedste Google-hits for dette emne, at Latent Dirichlet Allocation (LDA), Hierarchical Dirichlet Processes (HDP), and hierarchical Latent Dirichlet Allocation (hLDA) er alle forskellige modeller.
LDA-modeller dokumenterer som dirichletblandinger af et fast antal emner – valgt som en parameter af modellen af brugeren – som igen er dirichletblandinger af ord. Dette genererer en flad, blød probabilistisk gruppering af termer i emner og dokumenter i emner.
HDP modellerer emner som blandinger af ord, ligesom LDA, men snarere end at dokumenter er blandinger af et fast antal emner, genereres antallet af emner ved en dirichlet-proces, hvilket resulterer i, at antallet af emner bliver også en tilfældig variabel. Den “hierarkiske” del af navnet henviser til et andet niveau, der føjes til den generative model (dirichlet-processen, der producerer antallet af emner), ikke selve emnerne – emnerne er stadig flade klynger.
hLDA, på den anden side er en tilpasning af LDA, der modellerer emner som blandinger af et nyt, særskilt niveau af emner, hentet fra dirichlet distributioner og ikke processer. Det behandler stadig antallet af emner som et hyperparameter, dvs. uafhængigt af dataene. Forskellen er, at klyngen nu er hierarkisk – den lærer en klyngedannelse af det første sæt emner i sig selv, hvilket giver et mere generelt, abstrakt forhold mellem emner (og dermed ord og dokumenter). Tænk på det som at klynge stakudvekslingen i matematik, videnskab, programmering, historie osv. I modsætning til at gruppere datalogi og krydsvalidering til et abstrakt statistik- og programmeringsemne, der deler nogle koncepter med f.eks. Software engineering, men software engineering udveksling er grupperet på et mere konkret niveau med informatikudvekslingen, og ligheden mellem alle de nævnte udvekslinger vises ikke så meget, før det øverste lag af klynger.
Svar
Jeg har en situation, hvor HDP fungerer godt sammenlignet med LDA. Jeg har omkring 16000 dokumenter, der tilhører forskellige klasser.Da jeg ikke er opmærksom på, hvor mange forskellige emner jeg kan samle til hver klasse, er HDP virkelig nyttig i dette tilfælde.
Svar
Faktisk kræver HDP en masse skjulte parametre, der er i kode. Hvis du spiller med sådanne parametre, får du forskellige resultater (forskellige emner). Folk er normalt ikke opmærksomme på sådanne skjulte parametre og mener, at modellen er i stand til at finde sådanne parametre. Det er ikke sandt. Brugeren skal definere parametrene eta gamma og alpha og maksimalt antal emner. Hvis du angiver maksimalt antal emner, siger omkring 23 emner, giver du model 23 emner i output. Hvis du opretter 15 emner, får du 15 emner i output …
Svar
Yee Whye Teh et al “s papir fra 2005 Hierarkiske dirichletprocesser beskriver en ikke-parametrisk prior for grupperet klyngeproblemer. For eksempel hjælper HDP med at generalisere Latent Dirichlet Allocation model til sagen antallet af emner i dataene opdages af inferensalgoritmen i stedet for at blive specificeret som en parameter for modellen. forklaring på Dirichlet-processen kan findes her
Emnemodeller lover at hjælpe med at opsummere og organisere store arkiver af tekster, der ikke let kan analyseres manuelt Hierarkisk Dirichlet-proces (HDP) er en stærk blandet medlem hip model til den ikke-overvågede analyse af grupperede data. I modsætning til dets endelige modstykke latent dirichletallokering , udleder HDP-emnemodellen antallet af emner fra dataene.