A Beginner’s Guide to Latent Dirichlet Allocation(LDA)

Die Themenmodellierung ist eine Methode zur unüberwachten Klassifizierung von Dokumenten, ähnlich dem Clustering bei numerischen Daten, die einige natürliche Gruppen von Elementen (Themen) findet, selbst wenn wir nicht sicher sind, wonach wir suchen.

Ein Dokument kann zu mehreren Themen gehören, ähnlich wie beim Fuzzy Clustering (Soft Clustering), bei dem jeder Datenpunkt zu mehr als einem Cluster gehört.

Warum Themenmodellierung?

Die Themenmodellierung bietet Methoden zum automatischen Organisieren, Verstehen, Suchen und Zusammenfassen großer elektronischer Archive.
Es kann bei folgenden Aufgaben helfen:

  • Entdeckung der versteckten Themen in der Sammlung.
  • Klassifizierung der Dokumente in die entdeckten Themen.
  • Verwendung der Klassifizierung zur Organisation/Zusammenfassung/Suche der Dokumente.

Angenommen, ein Dokument gehört zu den Themen Essen, Hunde und Gesundheit. Wenn ein Benutzer also „Hundefutter“ abfragt, könnte er das oben genannte Dokument relevant finden, weil es diese Themen (neben anderen Themen) abdeckt. Wir sind in der Lage, die Relevanz des Dokuments in Bezug auf die Anfrage zu bestimmen, ohne das gesamte Dokument zu lesen.

Daher können wir unseren Suchprozess optimieren, indem wir das Dokument auf der Grundlage der von der Modellierungsmethode vorhergesagten Themen annotieren.

LDA

Es ist eine der beliebtesten Methoden zur Themenmodellierung. Jedes Dokument besteht aus verschiedenen Wörtern, und jedes Thema hat auch verschiedene Wörter, die zu ihm gehören. Das Ziel von LDA ist es, Themen zu finden, zu denen ein Dokument gehört, basierend auf den darin enthaltenen Wörtern. Sehr verwirrt? Hier ist ein Beispiel, um es Ihnen zu erläutern.

Modelldefinition

Each document is a collection of words.

We have 5 documents each containing the words listed in front of them( ordered by frequency of occurrence).

What we want to figure out are the words in different topics, as shown in the table below. Each row in the table represents a different topic and each column a different word in the corpus. Each cell contains the probability that the word(column) belongs to the topic(row).

Each topic contains a score for all the words in the corpus.

Finding Representative Words for a Topic

  • We can sort the words with respect to their probability score.
    Die obersten x Wörter werden aus jedem Thema ausgewählt, um das Thema zu repräsentieren. Wenn x = 10 ist, sortieren wir alle Wörter in Thema1 nach ihrer Punktzahl und nehmen die 10 besten Wörter, um das Thema zu repräsentieren.
    Dieser Schritt ist nicht immer notwendig, denn wenn der Korpus klein ist, können wir alle Wörter nach ihrer Punktzahl sortiert speichern.
  • Alternativ können wir auch einen Schwellenwert für die Punktzahl festlegen. Alle Wörter eines Themas, deren Punktzahl über dem Schwellenwert liegt, können als dessen Vertreter gespeichert werden, und zwar in der Reihenfolge ihrer Punktzahl.

Foto von Anusha Barwa auf Unsplash

Angenommen, wir haben 2 Themen, die als CAT_related und DOG_related klassifiziert werden können. Ein Thema hat Wahrscheinlichkeiten für jedes Wort, so dass Wörter wie „Milch“, „Miau“ und „Kätzchen“ im Thema „Katze“ eine höhere Wahrscheinlichkeit haben als im Thema „Hund“. Das Thema HUNDE_verwandt wird ebenfalls hohe Wahrscheinlichkeiten für Wörter wie Welpe, Rinde und Knochen haben.

Angenommen, wir haben ein Dokument, das die folgenden Sätze enthält:

„Hunde kauen gerne auf Knochen und holen Stöcke“.
„Welpen trinken Milch.“
„Beide bellen gerne.“

Wir können leicht sagen, dass es zum Thema HUNDE_verwandt gehört, weil es Wörter wie Hunde, Knochen, Welpen und Rinde enthält. Obwohl es das Wort Milch enthält, das zum Thema CAT_related gehört, gehört das Dokument zu DOG_related, da mehr Wörter damit übereinstimmen.

Annahmen:

  • Jedes Dokument ist nur eine Sammlung von Wörtern oder eine „Tasche voller Wörter“. Daher werden die Reihenfolge der Wörter und die grammatikalische Rolle der Wörter (Subjekt, Objekt, Verben, …) im Modell nicht berücksichtigt.
  • Wörter wie am/is/are/of/a/the/but/… enthalten keine Informationen über die „Themen“ und können daher in einem Vorverarbeitungsschritt aus den Dokumenten entfernt werden. Tatsächlich können wir Wörter eliminieren, die in mindestens %80 ~ %90 der Dokumente vorkommen, ohne dass dabei Informationen verloren gehen.
    Wenn unser Korpus beispielsweise nur medizinische Dokumente enthält, könnten Wörter wie Mensch, Körper, Gesundheit usw. in den meisten Dokumenten vorkommen und daher entfernt werden, da sie keine spezifischen Informationen hinzufügen, die das Dokument hervorheben würden.
  • Wir wissen im Voraus, wie viele Themen wir wollen.
  • Alle Themenzuordnungen außer dem aktuellen Wort sind korrekt, und dann aktualisieren wir die Zuordnung des aktuellen Wortes anhand unseres Modells, wie Dokumente generiert werden

Wie funktioniert LDA?

Es gibt 2 Teile in LDA:

  • Die Wörter, die zu einem Dokument gehören, die wir bereits kennen.
  • Die Wörter, die zu einem Thema gehören, oder die Wahrscheinlichkeit, dass Wörter zu einem Thema gehören, die wir berechnen müssen.

Der Algorithmus, um letztere zu finden

  • Gehen Sie durch jedes Dokument und ordnen Sie jedes Wort in dem Dokument zufällig einem von k Themen zu (k wird im Voraus gewählt).
  • Gehen Sie für jedes Dokument d jedes Wort w durch und berechnen Sie :
  1. p(Thema t | Dokument d): der Anteil der Wörter in Dokument d, die dem Thema t zugeordnet sind. Versucht zu erfassen, wie viele Wörter für ein gegebenes Dokument d zum Thema t gehören. Ausgenommen das aktuelle Wort.
    Wenn viele Wörter aus d zu t gehören, ist es wahrscheinlicher, dass Wort w zu t gehört.
    ( #Wörter in d mit t +alpha/ #Wörter in d mit beliebigem Thema+ k*alpha)
  2. p(Wort w| Thema t): der Anteil der Zuordnungen zum Thema t über alle Dokumente, die von diesem Wort w stammen. Versucht zu erfassen, wie viele Dokumente wegen des Wortes w im Thema t sind.
    LDA stellt Dokumente als eine Mischung von Themen dar. In ähnlicher Weise ist ein Thema eine Mischung von Wörtern. 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 von Soragrit Wongsa auf Unsplash

Sie entscheiden sich, k=2 Bereiche in Ihrem Album anzulegen – Natur und Stadt. Natürlich ist die Einteilung nicht so eindeutig, denn einige Fotos mit Stadtmotiven haben Bäume und Blumen, während auf den Naturfotos vielleicht Gebäude zu sehen sind. Sie beschließen, zunächst die Fotos, die nur Natur- oder Stadtelemente enthalten, den jeweiligen Kategorien zuzuordnen, während Sie den Rest nach dem Zufallsprinzip zuordnen.

Sie stellen fest, dass viele Fotos in der Kategorie Natur das Wort Baum in ihren Bildunterschriften haben. Daraus schließt du, dass das Wort Baum und das Thema Natur eng miteinander verbunden sein müssen.

Als Nächstes wählst du das Wort Gebäude aus und überprüfst, wie viele Fotos in der Kategorie Natur sind, weil sie das Wort Gebäude in ihrer Bildunterschrift haben. Sie finden nicht viele und sind sich nun weniger sicher, dass Gebäude zum Thema Natur gehören und assoziieren es stärker mit dem Thema Stadt.

Dann wählen Sie ein Foto mit der Bildunterschrift „Der Baum steht vor dem Gebäude und hinter einem Auto“ und sehen, dass es gerade in der Kategorie Natur ist.
Dann wählt man das Wort Baum und berechnet die erste Wahrscheinlichkeit p(Thema t | Dokument d): andere Wörter in der Bildunterschrift sind Gebäude und Auto, die meisten Fotos mit Bildunterschriften, die Gebäude oder Autos enthalten, sind in der Kategorie Stadt, also erhält man eine geringe Wahrscheinlichkeit.
Nun die zweite Wahrscheinlichkeit p(Wort w| Thema t): wir wissen, dass viele Fotos in der Kategorie Natur das Wort Bäume enthalten. Also erhält man hier einen hohen Wert.
Die Wahrscheinlichkeit, dass ein Baum in der Natur vorkommt, wird durch Multiplikation der beiden Werte aktualisiert. Du erhältst einen niedrigeren Wert als vorher für Baum im Thema Natur, weil du jetzt den Baum und Wörter wie Gebäude/Auto in der gleichen Bildunterschrift gesehen hast, was bedeutet, dass Bäume auch in Städten vorkommen können.
Aus demselben Grund werden Sie feststellen, dass die Wahrscheinlichkeit, dass ein Baum zum Thema Stadt gehört, größer ist als vorher.

Nach mehreren Iterationen über alle Fotos und für jedes Thema werden Sie genaue Werte für jedes Wort in Bezug auf jedes Thema haben. Deine Vermutungen werden immer besser, weil du aus dem Kontext schließen wirst, dass Wörter wie Gebäude, Bürgersteig, U-Bahn zusammen vorkommen und daher zum selben Thema gehören müssen, von dem wir leicht annehmen können, dass es die Stadt ist.
Wörter wie Berge, Felder, Strand, die vielleicht nicht in vielen Bildunterschriften zusammen vorkommen, aber sie kommen oft vor, ohne dass Wörter aus der Stadt vorkommen, und haben daher eine höhere Punktzahl für Natur.
Während Wörter wie Bäume, Blumen, Hunde, Himmel fast die gleiche Wahrscheinlichkeit haben, in beiden Kategorien zu sein, da sie in beiden Themen vorkommen.

Bei dem Foto sehen Sie, dass es 1 Wort (mit durchschnittlicher Wahrscheinlichkeit) aus der Kategorie Natur und 2 Wörter (mit hoher Wahrscheinlichkeit) aus der Kategorie Stadt hat, Sie schließen daraus, dass es stärker zur Stadt als zur Natur gehört und entscheiden sich daher, es der Stadt hinzuzufügen.

Nebenbemerkung

Die Anwendungen von LDA müssen nicht auf die Verarbeitung natürlicher Sprache beschränkt sein. Ich habe kürzlich eine Arbeit durchgeführt, in der wir LDA (zusammen mit einem neuronalen Netz) verwenden, um den szenenspezifischen Kontext eines Bildes zu extrahieren. Wenn Sie daran interessiert sind, mehr darüber zu erfahren, hinterlassen Sie bitte einen Kommentar oder eine Nachricht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.