Cornac 开源项目使用和启动教程

Cornac 开源项目使用和启动教程

cornac A Comparative Framework for Multimodal Recommender Systems cornac 项目地址: https://gitcode.com/gh_mirrors/co/cornac

1. 项目介绍

Cornac 是一个用于多模态推荐系统的比较框架。它旨在简化处理使用辅助数据(例如项目描述性文本和图像、社交网络等)的模型。Cornac 不仅支持快速实验和新型模型实现的便捷性,而且与现有机器学习库(如 TensorFlow、PyTorch)高度兼容。Cornac 被 ACM RecSys 2023 推荐用于推荐算法的评价和可复现性,其实现的 BPR 模型也被独立研究推荐作为可信赖的基线进行比较。

2. 项目快速启动

安装 Cornac 的几种方式如下:

  • 从 PyPI 安装(推荐):
    pip3 install cornac
    
  • 使用 Anaconda 安装:
    conda install cornac -c conda-forge
    
  • 从 GitHub 源代码安装(获取最新更新):
    pip3 install git+https://github.com/PreferredAI/cornac.git
    

请注意,模型所需的额外依赖项列表可以在官方文档中找到。某些算法实现使用 OpenMP 支持多线程。对于 Mac OS 用户,为了高效运行这些算法,可能需要从 Homebrew 安装 gcc 以获得 OpenMP 编译器:

brew install gcc
brew link gcc

下面是一个 Cornac 实验的简单示例:

from cornac.eval_methods import RatioSplit
from cornac.models import MF, PMF, BPR
from cornac.metrics import MAE, RMSE, Precision, Recall, NDCG, AUC, MAP

# 加载内置的 MovieLens 100K 数据集,并按比例分割数据
ml_100k = cornac.datasets.movielens.load_feedback()
rs = RatioSplit(data=ml_100k, test_size=0.2, rating_threshold=4.0, seed=123)

# 初始化模型,这里我们比较:带偏置的 MF、PMF 和 BPR
mf = MF(k=10, max_iter=25, learning_rate=0.01, lambda_reg=0.02, use_bias=True, seed=123)
pmf = PMF(k=10, max_iter=100, learning_rate=0.001, lambda_reg=0.001, seed=123)
bpr = BPR(k=10, max_iter=200, learning_rate=0.001, lambda_reg=0.01, seed=123)

models = [mf, pmf, bpr]

# 定义用于评估模型的指标
metrics = [MAE(), RMSE(), Precision(k=10), Recall(k=10), NDCG(k=10), AUC(), MAP()]

# 开始实验
cornac.Experiment(eval_method=rs, models=models, metrics=metrics, user_based=True).run()

3. 应用案例和最佳实践

  • 模型服务:Cornac 提供了一个简单的方法来通过启动一个独立的 web 服务(使用 Flask)来服务模型。这对于测试或创建演示应用程序非常方便。安装 Flask 后,可以保存训练好的模型并部署服务。

  • A/B 测试:Cornac-AB 是 Cornac Serving API 的一个扩展,可以轻松创建和管理 A/B 测试实验,以进一步了解在线用户模型的表现。

  • 向量空间中的高效检索:在部署推荐模型时,一个重要的方面是通过近似最近邻(ANN)搜索在向量空间中进行高效检索。Cornac 集成了几个向量相似度搜索框架,以方便部署。

4. 典型生态项目

Cornac 支持多种推荐模型和算法,例如比较方面和意见排序用于推荐解释(Companion)、超图注意力评审(HypAR)、可扩展近似非对称自编码器(SANSA)等。这些模型和算法通常都有对应的快速启动示例和深入解释文档,可以帮助用户更好地理解和部署。

cornac A Comparative Framework for Multimodal Recommender Systems cornac 项目地址: https://gitcode.com/gh_mirrors/co/cornac