[PYTHON] Einführung in nichtparametrische Bayes 2 (Indian Buffet Process und Latent Feature Model)

Indischer Buffet-Prozess und latentes Funktionsmodell

IBP (Indian Buffet Process) wird verwendet, um das Latent Feature Model zu implementieren.

Motivation

Der Zweck besteht darin, ein latentes Merkmalsmodell unter Verwendung von IBP zu implementieren. Zunächst werde ich ein allgemeines Empfehlungsbeispiel verwenden, um das latente Merkmalsmodell (lineares Faktormodell?) Hier zu erläutern. Angenommen, Sie haben eine Matrix (X) mit vertikalen Personen und horizontalen Filmtypen. (Was die Komponente betrifft, ist (i, j) die Bewertung von j durch i) Zu diesem Zeitpunkt kann das latente Merkmal durch gute Zersetzung mit X = UV wie unten gezeigt bekannt werden. image Mögliche Funktionen sind beispielsweise Abenteuerkomponenten, Mystery-Komponenten und Romantik-Komponenten. (Es ist nur ein Bild) Zu diesem Zeitpunkt repräsentiert U die Vorliebe einer Person für diese Komponenten und V repräsentiert, welche Art von Komponente jeder Film hat. (Wird verwendet, um fehlende Werte im tatsächlichen Empfehlungssystem vorherzusagen.) In anderen Verarbeitungssituationen in natürlicher Sprache denke ich an dasselbe für eine Matrix, die aus Dokumenttypen und Wörtern besteht, und in der Sprachverarbeitung verwende ich dasselbe Modell im Zusammenhang mit der Trennung von Schallquellen.

Aber wie viele latente Merkmale sollte ich haben? Mit einem deterministischen Modell kann die Anzahl der latenten Merkmale gut bestimmt werden, aber mit einem Bayes'schen Modell wird es schwierig zu bestimmen, wie viele latente Merkmale es gibt. Daher besteht die Motivation darin, einen unendlich dimensionalen stochastischen Prozess (IBP) zu verwenden, um die Anzahl der latenten Merkmale automatisch zu bestimmen. Auf den ersten Blick ist es nicht leicht zu verstehen, aber das Ergebnis der tatsächlichen Vorhersage von Z ist in der folgenden Abbildung dargestellt. Das linke ist das wahre Z, und das rechte ist das Z, das durch Gibbs-Abtastung vorhergesagt wird. image Auf den ersten Blick scheint etwas anders zu sein, aber da die Position (Spalte) des Merkmalsbetrags ursprünglich ein austauschbares Modell ist, können Sie sehen, dass es nach 33 Schritten vorhergesagt werden kann.

In diesem Artikel werden wir nach einer etwas formaleren Erläuterung zum Implementierungsteil übergehen. Danach werde ich theoretisch auf den Beta-Prozess eingehen, der eng mit IBP zusammenhängt. Abschließend werde ich über Anwendungsbeispiele schreiben.

Implementierung

Sie können dies tun, indem Sie Dr. Satos Non-Para-Buch [1] so implementieren, wie es ist. Es ist leicht zu verstehen, daher empfehle ich Ihnen, es zu lesen. Der Code ist hier angegeben. https://github.com/Ma-sa-ue/practice/tree/master/machine%20learning(python)/nonparabayes

Indian buffet process

Wie der Name schon sagt, repräsentiert es die Situation in einem indischen Restaurant. Wenn ich versuche, es zu probieren, sieht es wie das folgende aus. image

Sie können das Obige auch erhalten, indem Sie eine Matrix aus 0s und 1s wie folgt generieren.

Es ist sinnlich einfach und zeigt, wie die Leute ihre Lieblingsgerichte in Ordnung bringen. Insbesondere sind die Menschen vertikal und das Essen horizontal. Die Leute kommen der Reihe nach und nehmen so viele beliebte Gerichte wie bisher, und ich habe es satt, also wiederhole ich nach neuen Gerichten. $ \ Alpha $ ist ein Hyperparameter, der den Diffusionsgrad angibt. Je größer der Wert, desto mehr verschiedene Gerichte werden ausgegeben. Bei dieser Rate scheint es ein Problem mit der Austauschbarkeit zu geben, aber es ist wichtig, dass IBP tatsächlich eine Verteilung der Geschichte der binären Matrix des Beta-Bernoulli-Generationsmodells ist.

Latentes Feature-Modell, um diese Zeit zu berücksichtigen

Wenn $ x_ {k} $ ein D-dimensionaler Vektor ist x_{k}\sim N(0,\sigma_{X}^{2}I),y_{k}\sim N(\sum_{k=0}^{\infty}z_{i,k}x_{k},\sigma_{y}^{2}I) Angenommen, Sie haben ein indisches Buffet als Priorität von Z. In der Matrixnotation ist $ Y = ZX + E $.

Implementierung

Betrachten Sie zunächst die folgenden Situationen. In der obigen Situation ist die linke Y, die mittlere Z und die rechte X. Beachten Sie, dass nur Y beobachtet wird. image Die Richtlinie besteht darin, die Stichproben Z und X entlang der bedingten Verteilung in der angegebenen Reihenfolge zu erfassen. Wenn Sie die Gibbs-Probenahme wiederholen, ist dies wie folgt. image Da die Funktionen austauschbar sind, können Sie sehen, dass sie gut vorhergesagt sind. In Wirklichkeit ist dies selten der Fall.

Theorie

Ich werde über die Beziehung zwischen Stichproben aus dem Beta-Prozess und IBP und Beta-Prozess schreiben. Einzelheiten finden Sie in [4] und [6]. Levy process

Der Levy-Prozess ist ein stochastischer Prozess mit stetigen, unabhängigen Inkrementen. Es ist ein ziemlich allgemeiner stochastischer Prozess und umfasst verschiedene stochastische Prozesse. Erstens ermöglicht die Levy-ito-Zerlegung, dass der Abgabenprozess in eine Brownsche Bewegung mit Drift- und Sprungprozess unterteilt wird. Der Sprungprozess ist das Hauptthema dieser Zeit. Der Sprungprozess umfasst den Poisson-Prozess, den Beta-Prozess und den Gamma-Prozess in einem Wahrscheinlichkeitsprozess wie dem Springen. Zunächst einmal entspricht der Abgabevorgang, der so monoton springt, als Zufallsvoraussetzung dem Zufallsmaß. Und der Abgabeprozess kann durch die Abgabenmaßnahme charakterisiert werden. Dies ist wichtig, wenn Sie die Entsprechung zwischen Abgabenmaß und Zufallsmaß (Abgabenverfahren) abtasten möchten, und Sie können das Zufallsmaß (Abgabenverfahren) durch ein Poisson-Verfahren wie das Abgabenmaß als Durchschnittsmaß konfigurieren.

Poisson process

Betrachten Sie eine Simulation aus dem Poisson-Prozess. Grundsätzlich gibt es zwei Möglichkeiten zu simulieren. Die erste ist eine Methode, bei der Personen nacheinander befragt werden, vorausgesetzt, die Personen kommen in Ordnung. Die zweite Methode ist eine Methode, um im Voraus zu entscheiden, wie viele Personen in Ordnung kommen, und um sie nach dem Mittelwert zu ordnen. Letzteres wird bei der Probenahme aus dem Beta-Prozess verwendet. Siehe [7] und [8] für Details.

Beta process Betrachten Sie einen Beta-Prozess für $ \ Omega $. Im Beta-Prozess ist es $ B (d \ omega) \ sim Beta (c \ mu (d \ omega), c (1- \ mu (d \ omega))) $. Zu diesem Zeitpunkt ist das dem Beta-Prozess entsprechende Abgabenmaß, wenn $ B_ {0} $ als Basismaß verwendet wird. \nu(d\omega,dp) = cp^{-1}(1-p)^{c-1}dp B_{0}(d\omega) ist. Mit anderen Worten, der Beta-Prozess: B stammt aus dem Poisson-Prozess $ (\ omega_ {i}, p_ {i}) (i = 1,2, ..) $ mit dem obigen Abgabemaß als Mittelwert für $ B = \ sum_ {i} Es besteht aus p_ {i} \ delta_ {\ omega_ {i}} $. Leider ist die Integration von (0,1) in $ p ^ {-1} (1-p) ^ {c-1} $ nicht endlich, daher werden wir eine gute Methode in Betracht ziehen. Wir haben also festgestellt, dass $ \ nu $ mit $ \ pi ^ {-1} = \ sum_ {k = 0} ^ {\ infty} (1- \ pi) ^ {k} $ weiter zerlegt werden kann Ich werde. Dann \nu = \sum_{k=0}\nu_{k} \nu_{k}(d\pi, d\omega)=Beta(1,c(\omega )+k)d\pi \mu_{k}(d\omega ) \mu_{k} = \frac{c(\omega)}{c(\omega)+k)}\mu(d\omega) Es wird sein. Verwenden Sie dies für die Probenahme.

Probenahme aus dem Beta-Prozess

Im Folgenden sieht der Algorithmus folgendermaßen aus:

  1. sample the number of points many times : n_{k}\sim Poisson(\int_{\Omega}\mu_{k}(d\omega))
  2. for each k, sample n_{k} points from \mu_{ki}:\omega_{ki}\sim\frac{\mu_{k}}{\int_{\Omega}\mu_{k}(d\omega)}
  3. sample p_{ki}\sim beta(1,c(\omega_{ki})+k)
  4. then \cup_{k=0}^{\infty }{(\omega_{ki},p_{ki})} is a realization

Wenn beispielsweise $ \ mu_ {k} $ einheitlich ist, ist $ \ Omega = [0,1] $, $ \ int_ {\ Omega} \ mu_ {k} (d \ omega) $ $ \ gamma $ Sie können das folgende Diagramm zeichnen. image

Wenn Sie $ \ gamma = 10.0 $ tatsächlich mehrmals abtasten, beträgt der Durchschnitt von $ B (\ Omega) $ ungefähr 10.

Beziehung zwischen Beta-Prozess und IBP

Details sind in [4] beschrieben. In diesem Artikel wird die Stichprobenmethode für den Beta-Prozess auch aus der Beziehung zu ibp abgeleitet. Nach dem Satz von De Finetti ist die austauschbare Beobachtungssequenz $ Z_ {1}, ..., Z_ {n} $ P(Z_{1},...,Z_{n} )= \int[\prod_{i=1}^nP(Z_{i}|B)]dP(B) ist geworden. In IBP entspricht P (B) dem Beta-Prozess und $ P (Z_ {i} | B) $ dem Poisson-Prozess.

Verallgemeinerung durch zwei Parameter

IBP kann weiter verallgemeinert werden, indem zwei Parameter für die Beta-Bernoulli-Verteilung in einem Ein-Parameter-Verteilungsmodell vorliegen. Es unterstützt auch das Ändern von c und $ \ gamma $ im Beta-Prozess.

Anwendungsbeispiel

Es ist kein Anwendungsbeispiel für IBP, sondern ein Anwendungsbeispiel für ein latentes Merkmalsmodell durch Matrixzerlegung, es wird jedoch auf verschiedene Arten aufgelistet. Es fühlt sich an wie eine leichte Zusammenfassung der Rezension [3] von Griffiths.

Allgemeine Sache

Lineare Faktormodelle wie probabilistische PCA, Faktoranalyse und spärliche Codierung sind nachstehend zusammengefasst. http://qiita.com/masasora/items/431afb71eae60a1c826b

Empfehlungssystem

Es gibt bereits viele Seiten ([10], [11], [12]), die gute Literatur zusammenfassen, aber ich werde sie vorerst erklären. Es gibt im Allgemeinen drei Möglichkeiten, ein Empfehlungssystem zu erstellen. Die erste besteht darin, die grundlegenden Statistiken so zu verwenden, wie sie sind. Zum Beispiel die Empfehlung eines Geschäfts, das verkauft, oder eines Produkts, das so verkauft, wie es ist. Die zweite ist die Co-Filterung. Es gibt benutzerbasierte und artikelbasierte. Wenn es beispielsweise benutzerbasiert ist, um die Bewertung eines bestimmten Produkts (B) einer bestimmten Person (A) vorherzusagen, ist es so, als würde man die Bewertung von B einer Person, die A ähnlich ist, nehmen und die Bewertung von B durch A vorhersagen. Die dritte Methode ist die Matrixzerlegung. Wenn das grundlegendste Verfahren X = SVD durch Matrixzerlegung durch SVD ist, wird die Matrix durch Zerlegen von X in S und VD wie oben beschrieben zerlegt. In der Realität fehlen jedoch Werte, und negative Bewertungen sind seltsam. Daher gibt es viele Möglichkeiten, dies weiterzuentwickeln (ist es nicht mehr SVD?). Obwohl dies von der Anwendung abhängt, ist die auf 3 basierende Methode in Bezug auf die einfache Vorhersageleistung grundsätzlich überlegen. Sie können auch die zerlegte Matrix verwenden, um Informationen zu ähnlichen Benutzern und ähnlichen Filmen zu erhalten. Zurück zum Hauptthema: IBP kann auf drei Arten verwendet werden.

Sprachverarbeitung

Eine typische Anwendung der Sprachverarbeitung ist das Problem der Trennung von Schallquellen. Beachten Sie, dass der Prior von X nicht Gauß ist. Zum Beispiel hat es eine Laplace-Verteilung oder eine t-Verteilung.

Biologie

Die erste Anwendung ist die Zersetzung der Matrix (Z), die das Expressionsniveau von Genen und Zellen darstellt. Ob das Gen i in Zelle k exprimiert wird oder nicht, ist $ z_ {ik} $. Eine andere Anwendung ist die Untersuchung von Proteinwechselwirkungen. Ob das Protein $ i $ zum Komplex $ k $ gehört oder nicht, ist $ z_ {ik} $. Sie können ähnliche Proteine unter Verwendung der zerlegten Matrix finden. (Das heißt, je größer $ \ sum z_ {ik} z_ {jk} $, desto ähnlicher.)

Verweise

  1. Professor Satos Non-Para-Buch Die Algorithmen und Theorien sind sehr übersichtlich organisiert. http://www.kspub.co.jp/book/detail/1529151.html
  2. Dr. Satos Folie http://www.slideshare.net/issei_sato/ss-37837949
  3. Eine Überprüfung, die Sie auf jeden Fall sehen werden, wenn Sie IBP https://cocosci.berkeley.edu/tom/papers/indianbuffet.pdf studieren
  4. So erstellen Sie einen hierarchischen Beta-Prozess, der die Beziehung zwischen dem Beta-Prozess und IBP beschreibt: http://www.cs.berkeley.edu/~jordan/papers/thibaux-jordan-aistats07.pdf
  5. Es ist auf verschiedene Arten als Nonpara für maschinelles Lernen einschließlich Beta-Prozess geschrieben. Gleicher Autor wie oben. (Jordans Schüler) http://digitalassets.lib.berkeley.edu/techreports/ucb/text/EECS-2008-130.pdf
  6. Es beschreibt die Probenahmemethode aus dem Beta-Prozess und dem Gamma-Prozess. http://people.ee.duke.edu/~lcarin/Yingjian_ICML_2012.pdf
  7. Poisson-Prozesse sind überraschend leicht zu verstehen. (Wikipedia) https://en.wikipedia.org/wiki/Poisson_point_process#Simulation
  8. Über den Poisson-Prozess Vorlesungsunterlagen bei RIKEN? http://toyoizumilab.brain.riken.jp/hideaki/res/lecture/point_process.html
  9. Es gibt ein zusammenhängendes Kapitel zum Modell des linearen Faktors. (Das Deep Learning-Buch von Bengio et al.) http://www.deeplearningbook.org/contents/linear_factors.html
  10. Das empfohlene Modell ist leicht verständlich organisiert. Http://ameblo.jp/principia-ca/entry-10980281840.html
  11. Das empfohlene Modell ist leicht verständlich organisiert. http://smrmkt.hatenablog.jp/entry/2014/08/23/211555
  12. Lehrbuch der Coursera-Klasse Es gibt einen Teil, der das empfohlene Modell http://infolab.stanford.edu/~ullman/mmds/book.pdf zusammenfasst
  13. Wenn die Theorie der messungstheoretischen Wahrscheinlichkeit ein japanisches Buch ist, ist Williams ein Standard für Mr. Funakis ausländische Bücher (ich habe das Buch über den Wahrscheinlichkeitsprozess der kontinuierlichen Zeit nie streng studiert, aber wenn es sich um eine Brownsche Bewegung handelt, ist das Buch hier üblich. Ich denke, dass die Person, die "für Finanzen" sagt, nicht streng ist, aber leicht zu lesen ist. Was ist ein gutes Punkt-Prozessbuch?)
  14. Handbuch der Markov-Kette Monte Calro Der Punktprozess wird auch unter dem Gesichtspunkt der Computerstatistik sorgfältig geschrieben. Http://www.mcmchandbook.net/HandbookTableofContents.html

Recommended Posts

Einführung in nichtparametrische Bayes 2 (Indian Buffet Process und Latent Feature Model)
Einführung in nichtparametrische Felder
[Einführung in das Modell der Infektionskrankheiten] Ich habe versucht, zu passen und zu spielen ♬
[Einführung in Tensorflow] Verstehen Sie Tensorflow richtig und versuchen Sie, ein Modell zu erstellen
[Einführung in Python3 Tag 1] Programmierung und Python