本作品旨在开发一个轻量化、个性化驱动且隐私保护的联邦推荐系统,以克服现有系统中模型复杂度高、个性化不足以及隐私泄露的问题。 作品基于隐语平台,实现了个性化联邦推荐算法,具备模型训练、商品推荐和模型评估三大功能。
在山东大学与隐语社区联合举办的2024年数据要素流通创意大赛中,获得二等奖。
联邦推荐是新的互联网应用服务架构,旨在保护用户隐私的同时提供个性化推荐服务。
- 轻量化模型:在用户设备上部署轻量级模型,减少对服务器通信的依赖。
- 增强个性化:通过改进项目嵌入和评分函数模块,提升推荐精度。
- 基于隐语平台的定制化联邦学习模型,支持隐私保护;
- 轻量化本地模型部署;
- 用户个性化推荐;
- 可选的双模型。
- 调用隐语提供的接口,应用安全聚合。
- 减少模型模块数,即去掉用户嵌入模块;评分函数模块的参数不参与聚合。
- 采用个性化的项目嵌入模块和个性化的评分函数模块,实现模型个性化。
- 两种模型在三个功能中均可选。
采用隐语的水平联邦模型和安全聚合技术,通过继承隐语的FLModel类,重写其fit()方法,得到了NewFLModel类,实现了选择性参数聚合和个性化训练。
- 模型一构成: 个性化的项目嵌入模块和评分函数模块。
- 模型二构成: 全局项目嵌入模块、个性化项目嵌入模块和评分函数模块。
使用MovieLens-100K、MovieLens-1M、Lastfm-2K和Amazon-Video数据集,采用隐式推荐方法,设置正样本和负样本,进行模型训练和评估。
- 主界面: 提供模型训练、商品推荐、模型评估三个功能。
- 模型训练: 选择数据集和模型,设置epochs和batch_size进行训练。
- 商品推荐: 选择模型进行加载,设置推荐商品范围和batch_size进行推荐。
- 模型评估: 选择模型进行加载,设置batch_size进行评估。
添加多种安全聚合接口,支持恶意安全与可验证聚合。
欢迎对本项目进行贡献,包括但不限于:
- 功能增强
- 代码优化
- 文档完善
本项目采用MIT许可证。
通过docker配置隐语环境即可,运行SecretFlow的docker image命令为
docker pull -it secretflow/secretflow-anolis8:latest
docker run -it secretflow/secretflow-anolis8:latest
运行TheMain.py即可