5

Używam Apache Spark (Pyspark API for Python) ALS MLLIB do opracowania usługi, która wykonuje żywych rekomendacji dla użytkowników anonimowych (użytkownicy nieuczestniczący w szkoleniu zestaw) w mojej witrynie. W moim usecase trenuję model o oceny użytkowników w ten sposób:Apache Spark ALS - jak wykonać Live Zalecenia/fold anonimowy użytkownik

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) 

Teraz, za każdym razem użytkownik anonim wybierze element w katalogu, chcę składany w jej wektora w model ALS i uzyskaj rekomendacje (podobnie jak wywołanie recommendProducts()), ale unikaj ponownego szkolenia całego modelu.

Czy istnieje sposób na łatwe zrobienie złożenia nowego wektora użytkownika anonimowego po przeszkoleniu modelu ALS w Apache Spark?

góry dzięki

+0

Aby wyjaśnić sprawę: czy chcesz po prostu uruchomić swój model na zestawie testowym, czy też chcesz mieć jakiś rodzaj rozwiązania "służącego modelowi" do zasilania strony internetowej w czasie rzeczywistym? –

+0

Zdecydowanie chcę, aby rozwiązanie "modelująca" służyło do zasilania strony internetowej w czasie rzeczywistym! –

+0

Oznaczam to pytanie jako duplikat, mam nadzieję, że będzie on miał więcej ekspozycji dzięki połączeniu: http://stackoverflow.com/questions/30509335/how-to-update-spark-matrixfactorizationmodel-forals –

Odpowiedz

0

Istnieje kilka Open Source „serwer Model” rozwiązania, które widziałem reklamowane, ale nie mają praktyczne doświadczenie na. Słyszałem również o ofercie komercyjnej, ale nie mogę teraz przypomnieć sobie tej nazwy.
Stwórz własną opinię i obserwuj możliwe alternatywy.

PredictionIO(start-up została wchłonięta przez SalesForce ale ich rozwiązanie jest jeszcze dostępna) używa Spark + Hadoop + HBase stos, plus jakiś komponent serwera WWW.

MLeap jest jeszcze-innego-ML-biblioteka-z-ograniczona-zestaw funkcji, które mogą być podłączone do Spark/scikit-learn/cokolwiek, a może tarło usługi internetowej - lub wyeksportować model do hostowana rozwiązanie o nazwie Combust.ml

MLDB jest jeszcze-innego-ML-biblioteka-z-ograniczona-zestaw funkcji, całkowicie poza Python/Spark ekosystemu, ale twierdzi, pełną integrację z TensorFlow - w tym możliwość import existing Deep Learning models and tweak them for different uses.

+0

Wielkie dzięki za podanie mi tych sugestii, wkrótce się obejrzę. Jednak, jak napisałem w pierwotnym pytaniu, chcę zaimplementować własne rozwiązanie za pomocą Apache Spark MLLIB, więc potrzebuję odpowiedzi technicznej, jak to zrobić w tej bibliotece. –