.Foto av Anusha Barwa på Unsplash
Vi kan säga att vi har två ämnen som kan klassificeras som KATTRelaterade och HUNDARelaterade. Ett ämne har sannolikheter för varje ord, så ord som milk, meow och kitten har en högre sannolikhet i ämnet CAT_related än i ämnet DOG_related. DOG_related-ämnet kommer på samma sätt att ha höga sannolikheter för ord som valp, skäll och ben.
Om vi har ett dokument som innehåller följande meningar:
”Hundar gillar att tugga på ben och hämta pinnar”. ”Valpar dricker mjölk.” ”Båda gillar att skälla.”
Vi kan lätt säga att det hör till ämnet DOG_related eftersom det innehåller ord som Hundar, ben, valpar och skäll. Även om det innehåller ordet mjölk som hör till ämnet CAT_related hör dokumentet till DOG_related eftersom fler ord matchar det.
Antaganden:
Varje dokument är bara en samling ord eller en ”bag of words”. Ordets ordning och ordens grammatiska roll (subjekt, objekt, verb, …) beaktas alltså inte i modellen.
Ord som am/is/are/of/a/the/but/… innehåller ingen information om ”ämnena” och kan därför avlägsnas från dokumenten som ett förbehandlingssteg. Faktum är att vi kan eliminera ord som förekommer i minst 80 % ~ 90 % av dokumenten utan att förlora någon information. Om vår korpus till exempel endast innehåller medicinska dokument kan ord som människa, kropp, hälsa etc. förekomma i de flesta dokumenten och kan därför tas bort eftersom de inte tillför någon specifik information som skulle få dokumentet att sticka ut.
Vi vet i förväg hur många ämnen vi vill ha. ’k’ är bestämt i förväg.
Alla ämnestilldelningar utom det aktuella ordet i fråga är korrekta, och sedan uppdaterar vi tilldelningen av det aktuella ordet med hjälp av vår modell för hur dokumenten genereras
Hur fungerar LDA?
Det finns 2 delar i LDA:
De ord som hör till ett dokument, som vi redan känner till.
De ord som hör till ett ämne eller sannolikheten för att orden hör till ett ämne, som vi måste beräkna.
Algoritmen för att hitta det sistnämnda
Gå igenom varje dokument och tilldela slumpmässigt varje ord i dokumentet till ett av k ämnen (k väljs i förväg).
För varje dokument d, gå igenom varje ord w och beräkna :
p(ämne t | dokument d): andelen ord i dokument d som tilldelas ämne t. Försöker fånga upp hur många ord som tillhör ämnet t för ett givet dokument d. Exklusive det aktuella ordet. Om många ord från d tillhör t är det mer sannolikt att ord w tillhör t. ( #words in d with t +alpha/ #words in d with any topic+ k*alpha)
p(word w| topic t): Andelen uppdrag till topic t över alla dokument som kommer från detta ord w. Försöker fånga hur många dokument som ingår i topic t på grund av ord w. LDA representerar dokumenten som en blandning av topics. På samma sätt är ett ämne en blandning av ord. If a word has high probability of being in a topic, all the documents having w will be more strongly associated with t as well. Similarly, if w is not very probable to be in t, the documents which contain the w will be having very low probability of being in t, because rest of the words in d will belong to some other topic and hence d will have a higher probability for those topic. So even if w gets added to t, it won’t be bringing many such documents to t.
Update the probability for the word w belonging to topic t, as
p(word w with topic t) = p(topic t | document d) * p(word w | topic t)
A layman’s example
Suppose you have various photographs(documents) with captions(words). You want to display them in a gallery so you decide to categorize the photographs on various themes(topics) based on which you will create different sections in your gallery.
Foto av Soragrit Wongsa på Unsplash
Du bestämmer dig för att skapa k=2 sektioner i ditt album – natur och stad. Naturligtvis är indelningen inte så tydlig eftersom vissa fotografier med stad har träd och blommor medan naturbilderna kanske har några byggnader. Till att börja med bestämmer du dig för att placera de fotografier som endast innehåller natur- eller stadselement i sina respektive kategorier medan du slumpmässigt fördelade resten.
Du lägger märke till att många naturfotografier har ordet träd i sina bildtexter. Så du drar slutsatsen att ordet träd och ämnet natur måste vara nära besläktade.
Nästan väljer du ordet byggnad och kontrollerar hur många fotografier som hör till natur eftersom de har ordet byggnad i sin bildtext. Du hittar inte många och är nu mindre säker på att byggnad tillhör ämnet natur och associerar det starkare med ämnet stad.
Därefter väljer du ett fotografi som har bildtexten ”Trädet står framför byggnaden och bakom en bil” och ser att det för närvarande tillhör kategorin natur. Du väljer sedan ordet träd och beräknar den första sannolikheten p(ämne t | dokument d): andra ord i bildtexten är byggnad och bil, de flesta fotografier som har bildtexter med byggnad eller bil i är i stad, så du får en låg sannolikhet. Nu kommer den andra sannolikheten p(ord w| ämne t): vi vet att en hel del fotografier i natur har ordet träd i det. Så du får en hög poäng här. Du uppdaterar sannolikheten för att träd hör hemma i naturen genom att multiplicera de två. Du får ett lägre värde än tidigare för träd i ämnet natur eftersom du nu har sett det trädet och ord som byggnad/bil i samma bildtext, vilket antyder att träd också kan finnas i städer. är du uppdaterar sannolikheten för att träd tillhör ämnet stad kommer du av samma anledning att märka att den blir större än vad den var tidigare.
Efter flera iterationer över alla fotografier och för varje ämne kommer du att ha korrekta poäng för varje ord med avseende på varje ämne. Dina gissningar kommer att bli bättre och bättre eftersom du utifrån sammanhanget kommer att dra slutsatsen att ord som byggnader, trottoar, tunnelbana förekommer tillsammans och därmed måste tillhöra samma ämne, vilket vi lätt kan gissa är stad. rd som berg, fält, strand förekommer kanske inte tillsammans i många bildtexter, men de förekommer ofta utan stadsord och kommer därför att få högre poäng för natur. Men ord som träd, blommor, hundar och himmel har nästan samma sannolikhet att ingå i något av dem eftersom de förekommer i båda ämnena.
För fotografiet ser du att det har ett ord (med genomsnittlig sannolikhet) från kategorin natur och två ord (med hög sannolikhet) från staden, och du drar slutsatsen att det hör till staden i högre grad än det hör till naturen, och därför beslutar du dig för att lägga till det i staden.
Notis vid sidan om
Ansökningarna av LDA behöver inte begränsas till behandling av naturliga språk. Jag har nyligen genomfört en artikel där vi använder LDA (tillsammans med ett neuralt nätverk) för att extrahera en bilds scenspecifika sammanhang. Om du är intresserad av att lära dig mer om detta kan du lämna en kommentar eller ett meddelande.