Latent Dirichlet Allocation (LDA) och Hierarkisk Dirichlet-process (HDP) är båda ämnesmodelleringsprocesser. Den största skillnaden är att LDA kräver specifikation av antalet ämnen och HDP inte. Varför är det så? Och vad är skillnaderna, fördelarna och nackdelarna med båda ämnesmodelleringsmetoderna?
Kommentarer
- Är HDP tänkt att vara datadrivet med avseende på antalet ämnen som de väljer? På den praktiska sidan försökte jag köra Blei ' HDP-implementering och det åt bara allt minne tills jag dödade processen. Jag har 16 GB RAM och drygt 100 000 korta dokument att analysera.
Svar
HDP är en förlängning av LDA, utformad för att ta itu med fallet där antalet blandningskomponenter (antalet ”ämnen” i dokumentmodelltermer) inte är känt på förhand. Så det är anledningen till att det är en skillnad.
Med hjälp av LDA för dokumentmodellering behandlar man varje ”ämne” som en fördelning av ord i någon känd ordförråd. För varje dokument dras en blandning av ämnen från en Dirichlet-distribution, en och sedan är varje ord i dokumentet en oberoende dragning från den blandningen (det vill säga att välja ett ämne och sedan använda det för att generera ett ord).
För HDP (tillämpas på dokumentmodellering) använder man också en Dirichlet-process för att fånga osäkerheten i antalet ämnen. Så en gemensam basfördelning väljs som representerar den oändligt oändliga uppsättningen av möjliga ämnen för corpus, och sedan samplas den slutliga fördelningen av ämnen för varje dokument från denna basfördelning.
Så långt som proffs och nackdelar har HDP fördelen att det maximala antalet ämnen kan vara obegränsat och läras av data snarare än specificerat i förväg. Jag antar att det är mer komplicerat att implementera och onödigt i fallet då ett begränsat antal ämnen är acceptabelt.
Svar
Anekdotiskt har jag aldrig varit imponerad av produktionen från hierarkisk LDA. Det verkar bara inte hitta en optimal granularitet för att välja antal ämnen. Jag har fått mycket bättre resultat genom att köra några iterationer av vanlig LDA, manuellt inspektera de ämnen den producerade, besluta om jag vill öka eller minska antalet ämnen och fortsätta itera tills jag får den detaljerade jag letar efter.
Kom ihåg: hierarkisk LDA kan inte läsa dina tankar … den vet inte vad du faktiskt tänker använda ämnesmodelleringen för. Precis som med k-betyder kluster bör du välja det k som är bäst för ditt användningsfall.
Svar
Jag ville påpeka, eftersom detta är en av de bästa Google-träffarna för detta ämne, att Latent Dirichlet Allocation (LDA), Hierarchical Dirichlet Processes (HDP), and hierarchical Latent Dirichlet Allocation (hLDA) är alla distinkta modeller.
LDA-modeller dokumenterar som dirichletblandningar av ett fast antal ämnen – valda som en parameter för modellen av användaren – som i sin tur är dirichletblandningar av ord. Detta genererar en platt, mjuk probabilistisk gruppering av termer i ämnen och dokument i ämnen.
HDP modellerar ämnen som ordblandningar, ungefär som LDA, men snarare än att dokument är blandningar av ett fast antal ämnen, genereras antalet ämnen genom en dirichlet-process, vilket resulterar i att antalet ämnen blir en slumpmässig variabel också. Den ”hierarkiska” delen av namnet hänvisar till att en annan nivå läggs till i den generativa modellen (dirichlet-processen som producerar antalet ämnen), inte själva ämnena – ämnena är fortfarande platta kluster.
hLDA, å andra sidan är en anpassning av LDA som modellerar ämnen som blandningar av en ny, distinkt nivå av ämnen, hämtad från dirichlet distribution och inte processer. Det behandlar fortfarande antalet ämnen som en hyperparameter, dvs. oberoende av data. Skillnaden är att klustret nu är hierarkiskt – det lär sig en gruppering av den första uppsättningen ämnen själva, vilket ger en mer allmän, abstrakt relation mellan ämnen (och därmed ord och dokument). Tänk på det som att gruppera stackutbytena i matematik, naturvetenskap, programmering, historia, etc. i motsats till att gruppera datavetenskap och korsvalidering till ett abstrakt statistik- och programmeringsämne som delar några koncept med exempelvis programvaruteknik, men mjukvaruteknik utbytet är grupperat på en mer konkret nivå med datavetenskapens utbyte, och likheten mellan alla nämnda utbyten visas inte lika mycket tills det övre lagret av kluster.
Svar
Jag har en situation där HDP fungerar bra jämfört med LDA. Jag har cirka 16000 dokument som tillhör olika klasser.Eftersom jag inte är medveten om hur många olika ämnen jag kan samla för varje klass, är HDP verkligen till hjälp i det här fallet.
Svar
Egentligen kräver HDP många dolda parametrar, som finns i koden. Om du spelar med sådana parametrar får du olika resultat (olika ämnen). Människor är vanligtvis inte uppmärksamma på sådana dolda parametrar och tror att modellen kan hitta sådana parametrar. Det är inte sant. Användaren måste definiera parametrarna eta gamma och alfa och maximalt antal ämnen. Om du anger max ämnen säg om 23 ämnen så ger du modellen 23 ämnen i utdata. Om du ställer in 15 ämnen får du 15 ämnen i utdata ….
Svar
Yee Whye Teh et al ”2005-papper Hierarkiska dirichletprocesser beskriver en icke-parametrisk prior för grupperad klusterproblem. För exempel hjälper HDP till att generalisera Latent Dirichlet Allocation modell till fallet antalet ämnen i data upptäcks av slutsalgoritmen istället för att specificeras som en parameter för modellen. förklaring om Dirichlet-processen finns här
Ämnesmodeller lovar att hjälpa till att sammanfatta och organisera stora arkiv av texter som inte lätt kan analyseras för hand Hierarkisk Dirichlet-process (HDP) är en kraftfull blandad medlem höftmodell för oövervakad analys av grupperade data. Till skillnad från sin ändliga motsvarighet latent Dirichlet-allokering , hämtar HDP-ämnesmodellen antalet ämnen från data.