-
Notifications
You must be signed in to change notification settings - Fork 94
Open
Labels
help wantedExtra attention is neededExtra attention is needed
Description
任务类型 / Task Type
请选择任务类型 / Please select the task type:
- 新功能实现 / New feature implementation
- 代码优化 / Code optimization
- 数据集支持 / Dataset support
- 文档编写 / Documentation
- 教程制作 / Tutorial creation
- 测试用例 / Test cases
- Bug修复 / Bug fixes
- 其他 / Other
任务描述 / Task Description
背景 / Background
当前torch-rechub中的不同模型支持的采样方式不统一,有些模型只支持point-wise,有些只支持pair-wise或list-wise。为了提供更好的用户体验和更灵活的训练选择,需要为所有模型统一添加三种采样方式的支持。
目标 / Objectives
- 整合所有现有模型,统一采样接口
- 为每个模型添加point-wise、pair-wise、list-wise三种采样方式支持
- 保持向后兼容性,不破坏现有API
- 提供统一的配置接口和文档
详细要求 / Detailed Requirements
- 分析现有模型的采样支持情况
- 设计统一的采样接口和抽象基类
- 为每个模型实现三种采样方式的支持
- 修改训练器以支持统一的采样配置
- 确保所有模型在三种采样方式下都能正常训练
- 添加采样方式切换的配置选项
技能要求 / Required Skills
必需技能 / Required Skills
- Python编程 / Python programming
- PyTorch框架 / PyTorch framework
- 推荐系统基础 / Recommender systems basics
- 面向对象编程 / Object-oriented programming
- 其他: 深度学习模型架构理解 / Understanding of deep learning model architectures
加分技能 / Preferred Skills
- 深度学习 / Deep learning
- 机器学习 / Machine learning
- 数据处理 / Data processing
- 软件架构设计 / Software architecture design
- 文档写作 / Technical writing
- 其他: / Other:
预期产出 / Expected Deliverables
- 代码实现 / Code implementation
- 单元测试 / Unit tests
- 文档更新 / Documentation updates
- 使用示例 / Usage examples
- 其他: 兼容性测试和迁移指南 / Compatibility tests and migration guide
参考资料 / References
相关论文 / Related Papers
- BPR: Bayesian Personalized Ranking from Implicit Feedback (pair-wise)
- Learning to Rank for Information Retrieval (list-wise)
- Deep Learning for Recommender Systems
代码参考 / Code References
- 现有模型实现:
torch_rechub/models/
- 训练器实现:
torch_rechub/trainers/
- 采样工具:
torch_rechub/utils/match.py
文档资源 / Documentation Resources
难度评估 / Difficulty Level
- 🟢 初级 (适合新手) / Beginner (Good for newcomers)
- 🟡 中级 (需要一定经验) / Intermediate (Requires some experience)
- 🔴 高级 (需要深入理解) / Advanced (Requires deep understanding)
预估工作量 / Estimated Effort
- 📅 1-3天 / 1-3 days
- 📅 1周 / 1 week
- 📅 2-4周 / 2-4 weeks
- 📅 1个月以上 / More than 1 month
贡献指南 / Contribution Guidelines
开始之前 / Before You Start
- 请在评论中表明您的兴趣,避免重复工作 / Please comment to express your interest to avoid duplicate work
- 阅读 CONTRIBUTING.md 了解开发流程 / Read CONTRIBUTING.md to understand the development process
- 设置开发环境并熟悉项目结构 / Set up the development environment and familiarize yourself with the project structure
- 分析现有模型的采样支持情况
开发流程 / Development Process
- Fork 项目并创建新分支
feature/unified-sampling-support
- 调研现有模型的采样方式实现
- 设计统一的采样接口抽象
- 逐个模型实现三种采样方式支持
- 修改训练器以支持统一配置
- 编写全面的测试用例
- 运行代码格式化:
python config/format_code.py
- 提交 Pull Request
代码规范 / Code Standards
- 遵循项目的代码风格 / Follow the project's code style
- 添加适当的注释和文档字符串 / Add appropriate comments and docstrings
- 确保所有测试通过 / Ensure all tests pass
- 更新相关文档 / Update relevant documentation
- 保持向后兼容性 / Maintain backward compatibility
联系方式 / Contact Information
获取帮助 / Getting Help
- 💬 在此 Issue 下评论提问 / Comment on this issue with questions
- 📧 联系项目维护者: morningsky
- 🔗 查看更多 Issues: GitHub Issues
社区支持 / Community Support
- 📖 查看项目文档和示例 / Check project documentation and examples
- 🤝 与其他贡献者交流 / Communicate with other contributors
- ⭐ 关注项目更新 / Follow project updates
额外信息 / Additional Information
模型清单 / Model Checklist:
需要支持的模型包括但不限于:
- Matching模型: DSSM, YouTubeDNN, MIND, etc.
- Ranking模型: DeepFM, Wide&Deep, DCN, etc.
- Multi-task模型: MMOE, PLE, etc.
实现建议 / Implementation Suggestions:
- 可以按模型类型分组进行实现
- 建议先实现一个模型作为模板,然后推广到其他模型
- 注意不同采样方式对损失函数的影响
测试要求 / Testing Requirements:
- 确保每个模型在三种采样方式下都能收敛
- 验证采样方式切换不会影响模型性能
- 提供性能对比和使用建议
感谢您对 torch-rechub 项目的贡献兴趣!我们期待与您合作。
Thank you for your interest in contributing to torch-rechub! We look forward to working with you.
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is needed