5

Ich benutze Apache Spark (Pyspark API für Python) ALS MLLIB zu entwickeln einen Dienst, der Live-Empfehlungen für anonyme Benutzer (Benutzer nicht in der Ausbildung eingestellt) auf meiner Website. In meinem usecase trainiere ich das Modell auf der Nutzerbewertungen auf diese Weise:Apache Spark ALS - wie Live-Empfehlungen durchzuführen/anonymous Benutzer falten

from pyspark.mllib.recommendation import ALS, MatrixFactorizationModel, Rating 
ratings = df.map(lambda l: Rating(int(l[0]), int(l[1]), float(l[2]))) 
rank = 10 
numIterations = 10 
model = ALS.trainImplicit(ratings, rank, numIterations) 

Nun, jedes Mal ein anonym Benutzer ein Element im Katalog auswählt, ich Einfalt- seinen Vektor wollen in das ALS-Modell und erhalten Sie die Empfehlungen (genau wie die recommendProducts() Anruf), aber Vermeidung der Umschulung des gesamten Modells.

Gibt es eine Möglichkeit, leicht die Falte des neuen anonym Benutzervektors nach dem Training des ALS-Modells in Apache Spark zu tun?

Vielen Dank im Voraus

+0

Um es klar zu stellen: Möchten Sie Ihr Modell nur auf einem Test-Set ausführen oder möchten Sie eine Art "Model Serving" -Lösung, um eine Website in Echtzeit zu betreiben? –

+0

Ich möchte definitiv die "Model Serving" -Lösung, um eine Website in Echtzeit zu betreiben! –

+0

Ich markiere diese Frage als ein Duplikat, hoffentlich wird es mehr Aufmerksamkeit bekommen, indem man verlinkt: http://stackoverflow.com/questions/30509335/how-to-update-spark-matrixfactorizationmodel-for-als –

Antwort

0

Es gibt ein paar Open Source „-Modell Server“ Lösungen, die ich beworben gesehen haben, haben aber keine praktische Erfahrung auf. Ich habe auch von einem kommerziellen Angebot gehört, kann mich aber gerade nicht an den Namen erinnern.
Also machen Sie Ihre eigene Meinung und beobachten Sie mögliche Alternativen.

PredictionIO(das Start-up wird von Salesforce verschlungen worden, aber ihre Lösung ist noch verfügbar) verwendet einen Funken + Hadoop + HBase Stack sowie eine Art von Web-Server-Komponente.

MLeap ist noch eine andere-ML-Bibliothek-mit-limited-feature-set, die in Spark/Scikit-Learn/was auch immer angeschlossen werden kann, und kann einen Web-Service erstellen - oder exportieren Sie Ihr Modell zu einem gehostet Lösung namens Combust.ml

MLDB ist noch-another-ML-Bibliothek-mit-limited-Feature-Set, vollständig außerhalb des Python/Spark-Ökosystem, aber behauptet, die vollständige Integration mit TensorFlow - einschließlich der Fähigkeit, import existing Deep Learning models and tweak them for different uses.

+0

Vielen Dank für diese Vorschläge, ich werde es mir gleich ansehen. Wie ich jedoch in der ursprünglichen Frage schrieb, möchte ich meine eigene Lösung mit Apache Spark MLLIB implementieren, also brauche ich eine technische Antwort, wie man es in dieser Bibliothek macht. –