Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Bringing Probabilistic Programming to MS Excel Tobias Standop
30. Juni 2016
Add-In Quellen
1 / 57
Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
1 Einleitung und Motivation
Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular
Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun
Update 3 Vorstellung des Add-Ins 4 Referenzen 2 / 57
Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
1 Einleitung und Motivation
Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular
Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun
Update 3 Vorstellung des Add-Ins 4 Referenzen 3 / 57
Einf¨uhrendes Beispiel Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
4 / 57
Darstellung in Tabellen Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In
ID 0 1 2
Name Anna Bob Cynthia
ID 0 1 2
Spieler1 0 1 0
Spieler2 1 2 2
Spieler1Gewinnt ja nein ?
Diese Tabellen k¨ onnten so in MS Excel festgehalten werden!
Quellen
5 / 57
Darstellung der Tabellen Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Diese Tabellen werden im Folgenden auch so dargestellt: Spieler Name
string
Partie Spieler1 Spieler2 Spieler1Gewinnt
link (Spieler) link (Spieler) bool
Add-In Quellen
6 / 57
TrueSkill-Modell Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Bayes’scher Ranking-Algorithmus Entwickelt von Microsoft Research im Jahr 2006 Sch¨atzt die F¨ahigkeit eines Spielers in Bezug auf dessen Leistungen und Ergebnisse Zum Matchmaking in Onlinespielen auf der Xbox verwendet
Add-In Quellen
7 / 57
Was ist Microsoft Excel? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
8 / 57
Ziel des Vortrags Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Vorstellung der wahrscheinlichkeitstheoretischen Programmiersprache Tabular Nicht: Ablauf/Berechnung der Schlussfolgerungen
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
9 / 57
Quellen des Vortrags Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Gordon, A. et al. (2013): Tabular: A Schema-Driven ” Probabilistic Programming Language“. Gordon, A. et al. (2014): Probabilistic Programs as ” Spreadsheet Queries“.
Add-In Quellen
10 / 57
Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
1 Einleitung und Motivation
Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular
Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun
Update 3 Vorstellung des Add-Ins 4 Referenzen 11 / 57
Was ist Tabular ? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Wahrscheinlichkeitstheoretische Programmiersprache f¨ ur maschinelles Lernen Als Add-In f¨ ur MS Excel erh¨altlich Kernidee: Programme werden durch Hinzuf¨ ugen von probabilistischen Modellausdr¨ ucken zu existierenden Relationenschemata geschrieben Anwendungsgebiete: Erstellung von Klassifikationen, Empfehlungen, Rankings oder Zusammenlagerungen aus vorhandenen Daten
Add-In Quellen
12 / 57
Wof¨ur braucht man Tabular ? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Lernen und Schlussfolgerungen bilden aus gegebenen Daten Weltweit große Anzahl an Datens¨atzen in Tabellenkalkulationsprogrammen gehalten Dem einfachen Nutzer von Excel erm¨ oglichen Schlussfolgerungen durch textuelle Anmerkungen zu bilden ohne selbst Code zu schreiben. Keine Datenexporte notwendig!
Add-In Quellen
13 / 57
Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
1 Einleitung und Motivation
Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular
Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun
Update 3 Vorstellung des Add-Ins 4 Referenzen 14 / 57
Funktionsweise von Tabular Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
15 / 57
Funktionsweise von Tabular Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Kernidee: Hinzuf¨ ugen von probabilistischen Modellausdr¨ ucken zu existierenden Relationenschemata Konstruktion von probabilistischen Modelle aus nicht-probabilistischen Datenschemata ¨ Ubersetzung eines solches probabilistisches Modell in Fun
Add-In Quellen
16 / 57
Was ist Fun? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Kalk¨ ul, das Bayes’sche Schlussfolgerungen durch funktionale Wahrscheinlichkeitsprogrammierung erm¨oglicht Infer.NET Fun die dazugeh¨ orige imperative Sprache Infer.NET Fun wandelt F#-Syntax in ausf¨ uhrbare, probabilistische Modellsprache f¨ ur Bayes’sches Maschinenlernen um
Add-In Quellen
17 / 57
Fortsetzung: Funktionsweise von Tabular Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Konstruktion von probabilistischen Modelle aus nicht-probabilistischen Datenschemata ¨ Ubersetzung eines solches probabilistisches Modell in Fun C#-Programm berechnet aus von Fun erschlossenen Schlussfolgerungen die Resultate und schreibt sie zur¨ uck in Tabellenkalkulationsprogramm
Add-In Quellen
18 / 57
Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
(1) Starte mit einem Relationenschema.
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
19 / 57
Relationenschema Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Spieler Name
string
Partie Spieler1 Spieler2 Spieler1Gewinnt
link (Spieler) link (Spieler) bool
Add-In Quellen
20 / 57
Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
(1) Starte mit einem Relationenschema. (2) F¨ uge verborgene Spalten hinzu.
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
21 / 57
Arten von Spaltentypen Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
Input Setzt probabilistisches Modell fest Hat keinen Modellausdruck Werte k¨ onnen nicht berechnet werden Werte in einer solchen Spalte d¨ urfen nicht unbekannt sein
Output Hat einen Modellausdruck Werte k¨ onnen berechnet werden Entweder vollst¨andig (observed) oder l¨ uckenhaft (observable)
Latent Hilfsspalte Nicht in urspr¨ unglicher Datenbank vorhanden Hat einen Modellausdruck Werte k¨ onnen berechnet werden 22 / 57
Anwendung auf das Relationenschema Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Spieler Name F¨ahigkeit
string real
Partie Spieler1 Spieler2 Leistung1 Leistung2 Spieler1Gewinnt
input latent
link (Spieler) link (Spieler) real real bool
input input latent latent output
Add-In Quellen
23 / 57
Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular
(1) Starte mit einem Relationenschema. (2) F¨ uge verborgene Spalten hinzu. (3) Erg¨anze probabilistische Modellausdr¨ ucke f¨ ur verborgene und Output-Spalten.
Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
24 / 57
Anwendung auf das Relationenschema Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Spieler Name F¨ahigkeit
string real
Partie Spieler1 Spieler2 Leistung1 Leistung2 Spieler1Gewinnt
input latent
link (Spieler) link (Spieler) real real bool
Gaussian(25.0,0.1)
input input latent latent output
Gaussian(Spieler1.F¨ ahigkeit, 1.0) Gaussian(Spieler2.F¨ ahigkeit, 1.0) Leistung1 > Leistung2
Add-In Quellen
25 / 57
Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
(1) Starte mit einem Relationenschema. (2) F¨ uge verborgene Spalten hinzu. (3) Erg¨anze probabilistische Modellausdr¨ ucke f¨ ur verborgene und vollst¨andige Spalten. (4) Ermittle Daten und Schlussfolgerungen.
Add-In Quellen
26 / 57
Zwei Arten der Deduktion Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
(a) Query-by-Latent-Column Vollst¨andige Datenbank gegeben Bestimmung der Werte/der Verteilungsfunktionen f¨ ur verborgene Spalten
(b) Query-by-Missing-Value Fehlende Werte in Output-Spalte vorhanden Berechnung/Voraussage dieser fehlenden Werte
Add-In Quellen
27 / 57
Query-by-Latent-Column - Beispiel Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
ID 0 1 2
Name Anna Bob Cynthia
ID 0 1 2
Spieler1 0 1 0
Spieler2 1 2 2
Spieler1Gewinnt nein nein nein
) Z. B. F¨ahigkeit der einzelnen Spieler berechnen 28 / 57
Query-by-Missing-Value - Beispiel Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Add-In Quellen
ID 0 1 2
Name Anna Bob Cynthia
ID 0 1 2
Spieler1 0 1 0
Spieler2 1 2 2
Spieler1Gewinnt nein nein ?
) Ergebnis der Partie zwischen Anna und Cynthia ermitteln 29 / 57
¨ Ubersetzung in Fun Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
¨ Ubersetzung von Datenbankschema hin zu einem Modell in Fun: ¨ Ubersetze erst jede Tabelle des Schemas einzeln ¨ Ubersetze danach zus¨atzlich das gesamte Schema
Add-In Quellen
30 / 57
¨ Ubersetzung in Fun - Illustration am Beispiel(1) Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
LineareRegression muA muB A B X Z Y
real real real real real real real
hyper hyper param param input latent output
0 0 Gaussian(muA,1) Gaussian(muB,1) A*X + B Gaussian(Z,1)
Add-In Quellen
31 / 57
Illustration am Beispiel(1) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Modell einer Zeile der Tabelle LineareRegression: Hyper Prior(h)
Gen(h,w,x)
{muA = 0;muB = 0} {A$ = {};A = Gaussian(h.muA,1); B$ = {};B = Gaussian(h.muB,1); Z$ = {};Y$ = {}} let Z = w.A*x.X + w.B in let Y = Gaussian(Z,1) in ({Y=Y},{Z=Z})
Add-In Quellen
32 / 57
¨ Ubersetzung in Fun - Illustration am Beispiel(2) Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Spieler Name F¨ahigkeit
string real
Partie Spieler1 Spieler2 Leistung1 Leistung2 Spieler1Gewinnt
input latent
link (Spieler) link (Spieler) real real bool
Gaussian(25.0,0.1)
input input latent latent output
Gaussian(Spieler1.F¨ ahigkeit, 1.0) Gaussian(Spieler2.F¨ ahigkeit, 1.0) Leistung1 > Leistung2
Add-In Quellen
33 / 57
Illustration am Beispiel(2) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop
Modell P1 einer Zeile der Tabelle Spieler :
Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Hyper Prior(h) Gen(h,w,x)
{} {F¨ahigkeit$ = {}} let F¨ahigkeit = Gaussian(25,0.1) in ({},{F¨ahigkeit = F¨ahigkeit})
Add-In Quellen
34 / 57
Illustration am Beispiel(2) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Modell P2 einer Zeile der Tabelle Partie: Hyper Prior(h) Gen(h,w,x)
{} {Leistung1$ = {};Leistung2$ = {};Spieler1Gewinnt$ = {}} let Leistung1 = Gaussian(Spieler[x.Spieler1].F¨ ahigkeit,1)) in let Leistung2 = Gaussian(Spieler[x.Spieler2].F¨ ahigkeit,1)) in let Spieler1Gewinnt = Leistung1 > Leistung2 in ({Spieler1Gewinnt = Spieler1Gewinnt}, {Leistung1 = Leistung1;Leistung2 = Leistung2})
Add-In Quellen
35 / 57
Illustration am Beispiel(2) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags
Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update
Modell f¨ ur das TrueSkill-Schema Hyper Prior(h)
{#Spieler = 1,#Partien = 1} {Spieler = P1 .Prior(P1 .Hyper), Partien = P2 .Prior(P2 .Hyper)}
Gen(h,w,x) let Spieler = [for i