Empfehlungssysteme und Matrixzerlegungen
Matrixbasierte Empfehlungssysteme
Heutzutage besitzen nahezu alle großen Firmen riesige Mengen an Nutzerdaten (z.B. Amazon: Nutzer gekaufte Produkte , TikTok: Nutzer relative Betrachtungsdauer eines Videos , Netflix: User Bewertung eines Films , ). Recommendation Systeme (RS) für genaue Vorhersage über das zu erwartende Userverhalten sind daher enorm wichtig (siehe Netflix Challenge (Bell and Koren 2007)) und ein essentieller Teil der sogenannten “Data Science”.
RS können explizite Merkmale (Genre, Produktkategorie, ) verwenden, was man typerweise als content filtering bezeichnet. Im Gegensatz hierzu gibt es das collaborative filtering, das Beziehungen zwischen Usern oder Objekten zusammenhängend (kollaborativ) bewertet, z.B. aufgrund vorherigen Interaktionen und dadurch Vorhersagen erstellt. Da dies keine explizite Erstellung von Merkmalen benötigt, können so auch komplexere Zusammenhänge erfasst werden (z.B. Einkommen, was nicht direkt aus Bewertungen ersichtlicht ist (Zhou, Kannan, and Prasanna 2020)). (Koren, Bell, and Volinsky 2009)
Matrixzerlegungs-Modelle (MZ-Modelle)
Ein erfolgreicher Ansatz für collaborative filtering sind MZs. Diese sind den sogenannten latent factor models zugeordert, da sie die User/Item Relationen mit latenten Faktoren beschreiben, die man nicht direkt messen sondern nur indirekt inferieren kann (lt. lateo verborgen sein).
Sei die Dimension des latent factor space, dann sei jedes Item mit einem Vektor und jeder User mit einem Vektor assoziert. Das resultierende Skalarprodukt misst dann die Bewertung (rating ) eines Users für das Item nach
Sortieren wir alle Bewertungen in die Bewertungsmatrix mit ein, so ergibt sich
und
Ziel ist es nun, die Einträge von und so zu wählen, dass die Faktorisierung die Matrix bestmöglich abbildet. Wären alle Einträge von bekannt, könnte man eine Singulärwertzerlegung (SVD) durchführen und nur die ersten signifikantesten Rang-1 Terme behalten, mehr dazu später. Die SVD ist nur ein Beispiel von Matrixzerlegungen, siehe (Stewart 2000). es gibt z.B. noch die Cholesky: ; pivoted LU (ger: LR): ; QR: ; Spektral: .
In der Praxis sind allerdings nicht alle Einträge der Ratingsmatrix bekannt. Ganz im Gegenteil, es gibt z.B. viel mehr Produkte als ein User kaufen bzw. bewerten könnte. Daher können wir SVD-basierte Ansätze nicht anwenden. Jedoch wollen wir trotzdem eine approximative Zerlegung finden, die Aufgaben folgender Form löst
und somit Vorhersagen für die fehlenden Werte () liefert.
Formulierung als Optimierungsproblem
Nehmen wir nun an, dass und bekannt sind, dann lässt sich das Rating vorraussagen mit
Sei nun die Menge aller Paare , für die ein Rating bekannt ist. Dies ist das Trainingsset der Größe . Dann ist der Vorhersagefehler . Um alle Fehler zu minimieren wird dann das Minimierungsproblem
in der die alternative Notation die Loss Funktion (Mean Sqaured Error, MSE) in Abhängigkeit aller Parameter minimiert (Strang et al. 2019, 4:p359). Statt dem quadratierten Fehlers , könnte man auch die Absolutbeträge minimieren. Die Wahl der Loss Funktion ist sehr stark vom Problem abhängig, in Klassifizierungsaufgaben wird sogar ein diskreter 0-1-Loss verwendet (z.B. ).
Regularisierung
In der Praxis, passiert es oft, dass Daten aus dem Trainingssset sehr gut vorhergesagt werden (sehr kleiner Felher ), das Modell für neue Datenpunkte jedoch “komische” Weter vorraussagt. Man kann dies beobachten, wenn man nicht alle bekannten Daten ins Traingsset mit aufnimmt sondern einige Daten als Testsset zur Validierung verwendet. Dieses Phänomen wird als Overfitting bezeichnet und tritt vorallem bei Modellen auf, in denen es mehr Optimierungsparameter als Daten gibt (bei uns z.B. wenn es mehr Einträge in gibt als es bekannte Bewertungen in gibt).
Man kann dem Overfitting entgegenwirken, indem man eine Regularisierung ins Minimierungsproblem einbaut, die hohe Modellkomplexität (z.B. viele Nicht-Null Einträge in ) bestraft. Oft wird die -Regularisierung (Strang et al. 2019, 4:p412) verwendet und das regularisierte Minimierungsproblem lautet
bei dem zu wählen ist. Andere Regularisierungen sind ebenfalls möglich (-Reg., diskretisierte Sobolev-style -Reg. mit Einbeziehung von Ableitungstermen, ).
Gradient Descent (GD)
In der Praxis ist das Optimierungsproblem hoch-dimensional und nicht konvex (sprich partielle Ableitung gleich Null setzen bringt uns nicht viel). Um das Problem zu lösen, könnten wir das Gradientenverfahren einsetzen. Für ein allgemeines Minimierungsproblem der Funktion , werden zuerst Statwerte für alle Parameter vorgegeben und dann
so lange iteriert, bis keine Änderung mehr auftritt (Gradient verschwindet). Anschaulich werden die Parameter in genau der Richtung verändert, die die größte Minimierung des Fehler zur Folge hat. Die Schrittweite kann variabel sein und wird (je nach Kontext) auch als learning rate bezeichnet. Die Berechnung des Gradienten pro Schritt ist aber sehr oft sehr teuer. Außerdem führt die Bedingung auf ganz viele Minima und es wurde beobachtet, dass andere Algorithmen besser “generalisierende” Resultate finden (sprich: ungesehene Daten werden besser vorrausgesagt).
Stochastic Gradient Descent (SGD)
Ein solcher Algorithmus ist SGD. Hier wird angenommen, dass der Loss geschrieben werden kann als (separierte Anteile der einzelnen Datenpunkte/Samples). In seiner ursprünglichen Form, approximiert der Algorithmus den vollen Gradienten durch einen Gradienten an nur einem Datenpunkt. Die Iterationsvorschrift wird dann ersetzt durch:
-
Permutiere Indices im Traingsset
-
Für unser Beispiel der MZ wird die Optimierung mit SGD dann nur für einen bestimmten Eintrag durchgeführt, was dann zum Update
Die Tatsache, dass SGD letztlich ein gut generalisierendes Resultat liefert ist aktuelle Forschung. Außerdem wurde die Komplexität der Gradientenberechnung erheblich reduziert. Eine weitere Variante des SGD betrachtet pro Schritt nicht nur einen Datenpunkt, sondern einen (zufälligen) Minibatch (ger: Charge) bestehend aus Datenpunkten und berechnet dann in jedem Schritt . Dies ist ebenfalls sehr effizient, da moderne Computerarchitekturen Berechnungen auch gleichzeitig auf mehreren Daten ausführen können (vectorization).
Hyperparameter
Die Minibatchgröße sowie die Learning Rate , die Modellgröße (z.B. unsere latent factor space dimension ), der Regularisierungsparameter müssen im Vorfeld sorgfältig ausgewählt werden. Da all diese Parameter nicht Teil der eigentlichen Optimierung sind sondern nur die Rahmenbedingen setzen, werden diese auch als Hyperparameter bezeichnet (vorallem im machine learning / artifical intelligence (AI) Kontext). Die Wahl ist erst einmal gar nicht so klar und wird im Kontext von “Hyperparameter optimization” untersucht.
Alternating Least Squares (ALS)
Im Fall der Suche nach einer MZ, kann man auch das alternatierende Least Squares Verfahren anwenden. Da sowohl und Unbekannte sind, ist das Problem nicht konvex. Allerdings kann man abwechselnd jeweils eine Menge der beiden als konstant fixieren. Für feste , ist das Optimierungsproblem dann nämlich konvex und kann optimal für alle gleichzeitig gelöst werden. Danach werden alle fixiert und nach allen gelöst und so weiter. Diese Vorschrift garantiert die Reduzierung des Fehlers in jedem Schritt und führt ebenfalls zu einer sehr guten Lösung. Vorteile des ALS Verfahrens sind, z.B., die gute Parallelisierbarkeit denn alle können unabhängig voneinander gelöst werden in einem Schritt.
Modellverbesserungen
Natürlich kann man das RS Modell noch beliebig erweitern. Eine Möglichkeit ist, noch Bias-Terme einzufügen. Das Vorhersagemodell (Koren, Bell, and Volinsky 2009) dafür wäre dann
mit dem global average , User Bias (User bewertet immer ), item bias (Titanic wurde mehr bewertet als Durchschnitt).
Singulärwertzerlegung (SVD)
Eine deterministische Matrixzerlegung für Matrizen ohne fehlende Werte ist die SVD und es gilt (Dahmen and Reusken 2006, p144):
Satz 1.1. Zu jeder Matrix existieren orthogonale Matrizen , und eine Diagonalmatriz
mit
so dass
Man kann dies (für quadratische Matrizen mit ) nutzen um eine bestmögliche Rang- Zerlegung zu finden, in dem man folgende Summe nach -Termen abbricht:
Die resultierende Matrix
ist eine Approximation von und es gilt in der Frobenius Norm:
was sehr gut ist, wenn bereits klein ist. Anwendungen dieser Low-Rank Approximation liegen beispielsweise in der Bildkomprimierung
Beispiel 1.2. Betrachte die Rang-2 Approximation von
Die Approximation macht in diesem Fall sogar keinen Fehler da ein Singulärwert Null ist. Die Matrix könnte als Bild eines Gaussian Filters betrachtet werden.
Referenzen
- Bell, Robert M, and Yehuda Koren. 2007. “Lessons from the Netflix Prize Challenge.” Acm Sigkdd Explorations Newsletter 9 (2): 75–79.
- Dahmen, Wolfgang, and Arnold Reusken. 2006. *Numerik für Ingenieure Und Natu
- Koren, Yehuda, Robert Bell, and Chris Volinsky. 2009. “Matrix Factorization Techniques for Recommender Systems.” Computer 42 (8): 30–37.
- Stewart, G. W. 2000. “The Decompositional Approach to Matrix Computation.” Computing in Science & Engineering 2 (1): 50–59. https://doi.org/10.1109/5992.814658.
- Strang, Gilbert et al. 2019. Linear Algebra and Learning from Data. Vol. 4. Wellesley-Cambridge Press Cambridge.
- Zhou, Shijie, Rajgopal Kannan, and Viktor K Prasanna. 2020. “Accelerating Stochastic Gradient Descent Based Matrix Factorization on FPGA.” IEEE Transactions on Parallel and Distributed Systems 31 (8): 1897–1911.