ALS parametreleri ve hiperparametreleri

PySpark ile Öneri Motorları Oluşturma

Jamen Long

Data Scientist at Nike

Örnek ALS model kodu

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)
PySpark ile Öneri Motorları Oluşturma

Sütun adları

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

Argümanlar

  • userCol: Kullanıcı kimliklerinin olduğu sütun adı
  • itemCol: Öğe kimliklerinin olduğu sütun adı
  • ratingCol: Puanların olduğu sütun adı
PySpark ile Öneri Motorları Oluşturma

iki boş çarpan matrisli boş orijinal puan matrisi

PySpark ile Öneri Motorları Oluşturma

öncekiyle aynı görsel, gizli boyutlar vurgulanmış

PySpark ile Öneri Motorları Oluşturma

Rank

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

Hiperparametreler

  • rank, $k$: gizli özellik sayısı
PySpark ile Öneri Motorları Oluşturma

MaxIter

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

Hiperparametreler

  • rank, $k$: gizli özellik sayısı
  • maxIter: iterasyon sayısı
PySpark ile Öneri Motorları Oluşturma

RegParam

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

Hiperparametreler

  • rank, $k$: gizli özellik sayısı
  • maxIter: iterasyon sayısı
  • regParam: Lambda
PySpark ile Öneri Motorları Oluşturma

Alpha

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

Hiperparametreler

  • rank, $k$: gizli özellik sayısı
  • maxIter: iterasyon sayısı
  • regParam: Lambda
  • alpha: Sonra ele alınacak. Yalnızca örtük puanlarla kullanılır.
PySpark ile Öneri Motorları Oluşturma

Negatif olmayan

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

Ek argümanlar

  • nonnegative = True: Pozitif değerleri garanti eder
PySpark ile Öneri Motorları Oluşturma

Soğuk başlangıç stratejisi

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

Ek argümanlar

  • nonnegative = True: Pozitif değerleri garanti eder
  • coldStartStrategy = "drop": Test/eğitim ayrımı sorunlarını ele alır
PySpark ile Öneri Motorları Oluşturma

Örtük tercihler

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

Ek argümanlar

  • nonnegative = True: Pozitif değerleri garanti eder
  • coldStartStrategy = "drop": Test/eğitim ayrımı sorunlarını ele alır
  • implicitPrefs = True: Puan tipine göre True/False
PySpark ile Öneri Motorları Oluşturma

Örnek ALS model kurulumu

als = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, 
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)
PySpark ile Öneri Motorları Oluşturma

Fit ve transform metodları

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

# Generate predictions on test dataset
predictions = model.transform(test_data)
PySpark ile Öneri Motorları Oluşturma

Hadi pratik yapalım!

PySpark ile Öneri Motorları Oluşturma

Preparing Video For Download...