借一步网
作者:
在
推荐系统领域中,矩阵分解技术是协同过滤算法的重要分支。传统的矩阵分解方法通常只考虑用户和物品之间的交互信息,而忽略了用户和物品本身的特征。GeoIMC 算法将用户和物品的特征信息融入到矩阵分解过程中,并利用黎曼优化方法求解模型参数,从而提升推荐效果。
GeoIMC 算法基于 Jawanpuria 等人 (2019) 的研究成果,将用户和物品的特征信息融入到矩阵分解过程中。以 MovieLens-100K (ML100K. 数据集为例,假设 ✅ 和 分别表示用户和电影的特征矩阵, 表示用户对电影的评分矩阵。GeoIMC 算法将评分矩阵建模为 ,其中 、 和 分别为正交矩阵、正交矩阵和对称正定矩阵。模型参数通过 Pymanopt 工具包进行黎曼优化求解。
本示例使用 MovieLens 100K 数据集,并使用与 Xin Dong 等人 (2017) 相同的方法生成用户和电影的特征向量。
# 创建临时目录下载 ML100K 数据集 dp = tempfile.mkdtemp(suffix='-geoimc') movielens.download_movielens(MOVIELENS_DATA_SIZE, f"{dp}/ml-100k.zip") with zipfile.ZipFile(f"{dp}/ml-100k.zip", 'r') as z: z.extractall(dp) # 加载数据集和特征 dataset = ML_100K( normalize=normalize, target_transform='binarize' ) dataset.load_data(f"{dp}/ml-100k/")
使用 IMCProblem 类初始化 GeoIMC 问题,并设置正则化参数和模型秩。
IMCProblem
np.random.seed(10) prblm = IMCProblem( dataset.training_data, lambda1=regularizer, rank=rank ) # 求解优化问题 prblm.solve( max_time, max_iters, verbosity )
使用 Inferer 类初始化推理器,并使用训练得到的模型参数预测用户对电影的评分。
Inferer
# 初始化推理器 inferer = Inferer( method='dot' ) # 预测评分 predictions = inferer.infer( dataset.test_data, prblm.W )
使用 rmse 和 mae 函数计算模型的均方根误差 (RMSE) 和平均绝对误差 (MAE)。
rmse
mae
# 准备测试集和预测结果数据框 user_ids = dataset.test_data.get_data().tocoo().row item_ids = dataset.test_data.get_data().tocoo().col test_df = pd.DataFrame( data={ "userID": user_ids, "itemID": item_ids, "rating": dataset.test_data.get_data().data } ) predictions_df = pd.DataFrame( data={ "userID": user_ids, "itemID": item_ids, "prediction": [predictions[uid, iid] for uid, iid in list(zip(user_ids, item_ids))] } ) # 计算 RMSE 和 MAE RMSE = rmse( test_df, predictions_df ) MAE = mae( test_df, predictions_df ) print(f""" RMSE: {RMSE} MAE: {MAE} """)
GeoIMC 算法通过将用户和物品的特征信息融入到矩阵分解过程中,并利用黎曼优化方法求解模型参数,能够有效提升推荐效果。本示例展示了如何使用 Recommenders 工具包实现 GeoIMC 算法,并对模型性能进行了评估。
[1] Pratik Jawanpuria, Arjun Balgovind, Anoop Kunchukuttan, Bamdev Mishra. Learning Multilingual Word Embeddings in Latent Metric Space: A Geometric Approach. Transaction of the Association for Computational Linguistics (TACL), Volume 7, p.107-120, 2019.
[2] Xin Dong, Lei Yu, Zhonghuo Wu, Yuxia Sun, Lingfeng Yuan, Fangxi Zhang. A Hybrid Collaborative Filtering Model withDeep Structure for Recommender Systems.Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence (AAAI-17), p.1309-1315, 2017.
要发表评论,您必须先登录。
引言
推荐系统领域中,矩阵分解技术是协同过滤算法的重要分支。传统的矩阵分解方法通常只考虑用户和物品之间的交互信息,而忽略了用户和物品本身的特征。GeoIMC 算法将用户和物品的特征信息融入到矩阵分解过程中,并利用黎曼优化方法求解模型参数,从而提升推荐效果。
GeoIMC 算法原理
GeoIMC 算法基于 Jawanpuria 等人 (2019) 的研究成果,将用户和物品的特征信息融入到矩阵分解过程中。以 MovieLens-100K (ML100K. 数据集为例,假设 ✅
和
分别表示用户和电影的特征矩阵,
表示用户对电影的评分矩阵。GeoIMC 算法将评分矩阵建模为
,其中
、
和
分别为正交矩阵、正交矩阵和对称正定矩阵。模型参数通过 Pymanopt 工具包进行黎曼优化求解。
数据准备
本示例使用 MovieLens 100K 数据集,并使用与 Xin Dong 等人 (2017) 相同的方法生成用户和电影的特征向量。
模型训练
使用
IMCProblem
类初始化 GeoIMC 问题,并设置正则化参数和模型秩。生成推荐结果
使用
Inferer
类初始化推理器,并使用训练得到的模型参数预测用户对电影的评分。模型评估
使用
rmse
和mae
函数计算模型的均方根误差 (RMSE) 和平均绝对误差 (MAE)。总结
GeoIMC 算法通过将用户和物品的特征信息融入到矩阵分解过程中,并利用黎曼优化方法求解模型参数,能够有效提升推荐效果。本示例展示了如何使用 Recommenders 工具包实现 GeoIMC 算法,并对模型性能进行了评估。
参考文献
[1] Pratik Jawanpuria, Arjun Balgovind, Anoop Kunchukuttan, Bamdev Mishra. Learning Multilingual Word Embeddings in Latent Metric Space: A Geometric Approach. Transaction of the Association for Computational Linguistics (TACL), Volume 7, p.107-120, 2019.
[2] Xin Dong, Lei Yu, Zhonghuo Wu, Yuxia Sun, Lingfeng Yuan, Fangxi Zhang. A Hybrid Collaborative Filtering Model withDeep Structure for Recommender Systems.
Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence (AAAI-17), p.1309-1315, 2017.