พารามิเตอร์และไฮเปอร์พารามิเตอร์ของ ALS

การสร้าง Recommendation Engines ด้วย PySpark

Jamen Long

Data Scientist at Nike

ตัวอย่างโค้ดโมเดล ALS

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, alpha=40,
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)
การสร้าง Recommendation Engines ด้วย PySpark

ชื่อคอลัมน์

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

อาร์กิวเมนต์

  • userCol: ชื่อคอลัมน์ที่เก็บ id ของผู้ใช้
  • itemCol: ชื่อคอลัมน์ที่เก็บ id ของไอเทม
  • ratingCol: ชื่อคอลัมน์ที่เก็บคะแนนรีวิว
การสร้าง Recommendation Engines ด้วย PySpark

เมทริกซ์คะแนนเปล่าพร้อมเมทริกซ์ factor สองชุดที่ยังว่างอยู่

การสร้าง Recommendation Engines ด้วย PySpark

ภาพเดิมที่เน้น latent dimensions

การสร้าง Recommendation Engines ด้วย PySpark

Rank

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

ไฮเปอร์พารามิเตอร์

  • rank, $k$: จำนวน latent features
การสร้าง Recommendation Engines ด้วย 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)

ไฮเปอร์พารามิเตอร์

  • rank, $k$: จำนวน latent features
  • maxIter: จำนวนรอบการวนซ้ำ
การสร้าง Recommendation Engines ด้วย 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)

ไฮเปอร์พารามิเตอร์

  • rank, $k$: จำนวน latent features
  • maxIter: จำนวนรอบการวนซ้ำ
  • regParam: Lambda
การสร้าง Recommendation Engines ด้วย 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)

ไฮเปอร์พารามิเตอร์

  • rank, $k$: จำนวน latent features
  • maxIter: จำนวนรอบการวนซ้ำ
  • regParam: Lambda
  • alpha: จะกล่าวถึงในภายหลัง ใช้กับ implicit ratings เท่านั้น
การสร้าง Recommendation Engines ด้วย PySpark

Non-negative

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

อาร์กิวเมนต์เพิ่มเติม

  • nonnegative = True: กำหนดให้ค่าทั้งหมดเป็นบวก
การสร้าง Recommendation Engines ด้วย PySpark

Cold start strategy

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

อาร์กิวเมนต์เพิ่มเติม

  • nonnegative = True: กำหนดให้ค่าทั้งหมดเป็นบวก
  • coldStartStrategy = "drop": แก้ปัญหาที่เกิดจากการแบ่ง test/train
การสร้าง Recommendation Engines ด้วย PySpark

Implicit preferences

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

อาร์กิวเมนต์เพิ่มเติม

  • nonnegative = True: กำหนดให้ค่าทั้งหมดเป็นบวก
  • coldStartStrategy = "drop": แก้ปัญหาที่เกิดจากการแบ่ง test/train
  • implicitPrefs = True: True/False ขึ้นอยู่กับประเภทของ ratings
การสร้าง Recommendation Engines ด้วย PySpark

ตัวอย่างการสร้างโมเดล ALS

als = ALS(userCol="userId", itemCol="movieId", ratingCol="rating", 
            rank=25, maxIter=100, regParam=.05, 
            nonnegative=True,
            coldStartStrategy="drop",
            implicitPrefs=False)
การสร้าง Recommendation Engines ด้วย PySpark

เมธอด fit และ transform

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

# Generate predictions on test dataset
predictions = model.transform(test_data)
การสร้าง Recommendation Engines ด้วย PySpark

มาฝึกกันเถอะ!

การสร้าง Recommendation Engines ด้วย PySpark

Preparing Video For Download...