Xây dựng Recommendation Engine với PySpark
Jamen Long
Data Scientist at Nike
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Đối số
userCol: Tên cột chứa user id itemCol: Tên cột chứa item id ratingCol: Tên cột chứa ratings

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Siêu tham số
rank, $k$: số đặc trưng ẩnals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Siêu tham số
rank, $k$: số đặc trưng ẩnmaxIter: số vòng lặpals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Siêu tham số
rank, $k$: số đặc trưng ẩnmaxIter: số vòng lặpregParam: Lambdaals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Siêu tham số
rank, $k`: số đặc trưng ẩnmaxIter: số vòng lặpregParam: Lambdaalpha: Sẽ nói sau. Chỉ dùng với implicit ratings.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Đối số bổ sung
nonnegative = True: Đảm bảo số dươngals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Đối số bổ sung
nonnegative = True: Đảm bảo số dươngcoldStartStrategy = "drop": Xử lý vấn đề khi tách test/trainals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Đối số bổ sung
nonnegative = True: Đảm bảo số dươngcoldStartStrategy = "drop": Xử lý vấn đề khi tách test/trainimplicitPrefs = True: True/False tùy loại ratingsals = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
# Fit ALS to training dataset
model = als.fit(training_data)
# Generate predictions on test dataset
predictions = model.transform(test_data)
Xây dựng Recommendation Engine với PySpark