我有简单的Python应用程序。 采用具有user_id,product_id,rating的ratings.csv 其中包含4 M记录然后我使用Spark AlS并保存模型,然后我将其加载到matrixFactorization。
我的方法预测问题需要超过一秒的时间来预测用户和产品之间的评级。 我的服务器是32 G和8核。 任何建议如何将预测时间提高到小于100毫秒。 以及数据集中的多个记录与预测时间之间的关系。
这是我正在做的事情:
spark_config = SparkConf().setAll([('spark.executor.memory', '32g'), ('spark.cores.max', '8')])
als_recommender.sc = SparkContext(conf=spark_config) #training_data is array of tulips of 4 M record
training_data = als_recommender.sc.parallelize(training_data) als_recommender.model = ALS.trainImplicit(training_data, 10, 10, nonnegative=True)
als_recommender.model.save(als_recommender.sc, "....Ameer/als_model")
als_recommender_model = MatrixFactorizationModel.load(als_recommender.sc, "....Ameer/als_model")
als_recommender_model.predict(1,2913)
答案 0 :(得分:1)
基本上,您不希望每次需要回答时都要加载完整的模型。
根据模型更新频率和预测查询的数量,我会: