ALS-parametrar och hyperparametrar

Bygg rekommendationsmotorer med PySpark

Jamen Long

Data Scientist at Nike

Exempel på ALS-modellkod

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)
Bygg rekommendationsmotorer med PySpark

Kolumnnamn

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Argument

  • userCol: Namn på kolumnen med användar-id:n
  • itemCol: Namn på kolumnen med objekt-id:n
  • ratingCol: Namn på kolumnen med betyg
Bygg rekommendationsmotorer med PySpark

tom originalbetygsmatris med två tomma faktormatriser

Bygg rekommendationsmotorer med PySpark

samma bild som tidigare med latenta dimensioner markerade

Bygg rekommendationsmotorer med PySpark

Rang

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Hyperparametrar

  • rank, $k$: antal latenta särdrag
Bygg rekommendationsmotorer med PySpark

MaxIter

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Hyperparametrar

  • rank, $k$: antal latenta särdrag
  • maxIter: antal iterationer
Bygg rekommendationsmotorer med PySpark

RegParam

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Hyperparametrar

  • rank, $k$: antal latenta särdrag
  • maxIter: antal iterationer
  • regParam: Lambda
Bygg rekommendationsmotorer med PySpark

Alpha

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Hyperparametrar

  • rank, $k$: antal latenta särdrag
  • maxIter: antal iterationer
  • regParam: Lambda
  • alpha: Behandlas senare. Används bara med implicita betyg.
Bygg rekommendationsmotorer med PySpark

Icke-negativ

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Ytterligare argument

  • nonnegative = True: Säkerställer positiva tal
Bygg rekommendationsmotorer med PySpark

Cold start-strategi

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Ytterligare argument

  • nonnegative = True: Säkerställer positiva tal
  • coldStartStrategy = "drop": Hanterar problem med test/träningssplit
Bygg rekommendationsmotorer med PySpark

Implicita preferenser

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)

Ytterligare argument

  • nonnegative = True: Säkerställer positiva tal
  • coldStartStrategy = "drop": Hanterar problem med test/träningssplit
  • implicitPrefs = True: True/False beroende på betygtyp
Bygg rekommendationsmotorer med PySpark

Exempel på ALS-modellbygge

als = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, 
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)
Bygg rekommendationsmotorer med PySpark

Metoderna fit och transform

# Fit ALS to training dataset
model = als.fit(training_data)

# Generate predictions on test dataset
predictions = model.transform(test_data)
Bygg rekommendationsmotorer med PySpark

Nu kör vi en övning!

Bygg rekommendationsmotorer med PySpark

Preparing Video For Download...