Björn Piepenburg
Björn Piepenburg
Jun 21, 2021 3 min read

Deep Lattice Netzwerke (DLN)

thumbnail for this post

Häufige Problemstellungen, mit denen wir konfrontiert werden, lassen sich auf eine (mehrdimensionale) Regression oder eine Klassifizierung zurückführen. Ausgehend von einer Menge von Merkmalen versucht man bei der Regression, die Abhängigkeit zwischen den Merkmalen und einer Zielgröße als Funktion darzustellen. Ein Beispiel wäre die Abhängigkeit des Umsatzes von den Ausgaben für Forschung sowie von der Mitarbeiter-Zufriedenheit in einem Unternehmen. Bei einer Klassifizierung werden Wahrscheinlichkeiten dafür geschätzt, dass ein Objekt zu einer vordefinierten Klasse gehört. Ein bekanntes Beispiel ist die Klassifizierung von Bildinhalten (Hund, Katze, LKW, …).

Die Komplexität von Regressions- und Klassifizierungsproblemen hängt von der Menge der Merkmale sowie vom Grad des Zusammenhanges zwischen den Merkmalen und der Zielgröße ab. Ein weiterer Aspekt ist die Abhängigkeit der Merkmale untereinander. Einfache Probleme lassen sich durch klassische statische Verfahren lösen, welche den Vorteil haben, dass man die Ergebnisse gut interpretieren kann. Praxisrelevante Problemstellungen sind im Allgemeinen durch mehrere Merkmale beschrieben, welche sich untereinander beeinflussen. Ein bekanntes und häufig verwendetes Verfahren zur Lösung solcher Problemstellungen ist ein künstliches neuronales Netz, welches sehr leistungsstark bei der Lösung der genannten Problemstellungen ist.

Deep Lattice Netzwerke erweitern die Eigenschaften eines künstlichen neuronalen Netzes um Monotoniebedingungen zwischen einzelnen Merkmalen und der Zielgröße. Ein Beispiel für die Notwendigkeit ist ein Preismodell, bei dem sich der Preis einer Einheit mit der Bestellquantität reduzieren soll. Das unter der Initiative und Mitarbeit von Google entwickelte Verfahren besteht im Kern aus $n$-dimensionalen Hyperwürfeln der Kantenlänge $1$, wobei $n$ die Anzahl der Merkmale beschreibt. Es wird also durch jede Dimension des Würfels ein Merkmal abgebildet. In den Würfel legt man eine (mehrdimensionale) Funktion, welche den Zusammenhang zwischen den Merkmalen und der Zielgröße beschreibt. Dazu werden für die Eckpunkte des Würfels, welche die variablen Parameter des Modells darstellen, Funktionswerte auf Basis von Trainingsdaten berechnet. Zwischen den Eckpunkten wird die Zielfunktion linear interpoliert. Zur Erhöhung der Detaillierung der Funktion können die Kanten des Würfels unterteilt werden. Durch die Teilungspunkte wird ein Gitter (Lattice) gelegt, dessen Schnittpunkte als zusätzliche Parameter des Modells mit Funktionswerten belegt werden.

In der folgenden Abbildung ist ein Lattice mit zwei Merkmalen (also ein Quadrat) dargestellt. Für die vier Eckpunkte $\theta[i]$ als Parameter des Modells wurden Werte aus einer Menge aus Trainingsdaten abgeleitet. Die darzustellende Funktion $f(x)$ wird durch lineare Interpolation zwischen den vier Eckpunkten approximiert. Weitere Stützstellen zwischen den Eckpunkten zur Verdichtung des Gitters und zur Erhöhung des Detailierungsgrades der approximierten Funktion wurden nicht verwendet.

Lattice mit zwei Merkmalen und vier Stützstelllen

Mit Zunahme der Merkmale bzw. durch Erhöhung des Detaillierungsgrades der darzustellenden Funktion steigt die Anzahl der zu optimierenden Parameter exponentiell. Nehmen wir ein Beispiel: Sie haben $15$ Merkmale, welche einen Einfluss auf die Zielgröße haben. Jedes Merkmal soll durch $10$ Stützstellen ($2$ Eckpunkte und $8$ zusätzliche Unterteilungspunkte) im Lattice beschrieben werden. Dadurch entsteht ein Würfel mit $10^{15}=1$ Billiarde variablen Parametern. Zur Reduzierung der Komplexität des Modells lassen sich die Merkmale auf mehrere voneinander getrennte Würfel aufteilen, deren Ergebnisse nach den Trainings zusammengeführt werden. Der sogenannte Crystal-Algorithmus kann verwendet werden, um die Merkmale entsprechend ihrer Ähnlichkeit auf unterschiedliche Würfel aufzuteilen. Die Zusammenführung kann über eine einfache Mittelwertbildung erfolgen oder durch weitere Lattices, wodurch ein Lattice-Netzwerk entsteht.

Verwendung des Crystal-Algorithmus und Zusammmenführung von Lattices durch Mittelwertbildung

Das Training erfolgt ähnlich wie bei einem künstlichen neuronalen Netz durch eine iterative Anpassung der Parameter mit dem Ziel, den Fehler zwischen der Modellausgabe und der beobachteten Ausprägungen der Zielgröße zu minimieren. Das Vorgehen wird als überwachtes Lernen bezeichnet. Nach dem Training können für (unbekannte) Merkmalskombinationen Werte für die Zielgröße bestimmt werden. In einem weiteren Post in diesem Blog beschreibe ich die Anwendung eines Deep Lattice Netzwerkes zur Bestimmung der Annahmewahrscheinlichkeiten für Transportaufträge. Dies ist Teil eines durch den mFund geförderten Forschungsprojektes, welches wir erfolgreich umgesetzt haben.