# 📊 推荐系统离线任务 - 完整总结 ## ✅ 项目状态:已完成 --- ## 📦 交付内容 ### 1. 核心算法(5个脚本) | 脚本 | 功能 | 代码行数 | |------|------|---------| | `i2i_swing.py` | Swing算法(行为相似) | ~240行 | | `i2i_session_w2v.py` | Session W2V(行为相似) | ~240行 | | `i2i_deepwalk.py` | DeepWalk(行为相似) | ~330行 | | `i2i_content_similar.py` | 内容相似(新增) | ~320行 | | `interest_aggregation.py` | 兴趣点聚合 | ~310行 | ### 2. 工具脚本(5个) | 脚本 | 功能 | |------|------| | `run_all.py` | 统一调度所有任务 | | `load_index_to_redis.py` | 加载索引到Redis | | `test_connection.py` | 测试数据库和Redis连接 | | `example_query_redis.py` | Redis查询示例 | | `check_table_structure.py` | 检查表结构 | ### 3. 配置文件(2个) | 文件 | 功能 | |------|------| | `config/offline_config.py` | 离线任务配置 | | `requirements.txt` | Python依赖包 | ### 4. 文档(14份) | 文档 | 说明 | |------|------| | **START_HERE.md** | 开始文档(推荐阅读) | | **QUICKSTART.md** | 快速开始指南 | | **README.md** | 详细使用文档 | | **CURRENT_STATUS.md** | 当前功能状态 | | **FINAL_UPDATE.md** | 最终更新说明 | | **COMPLETE_INDEX_LIST.md** | 完整索引清单 | | **PROJECT_SUMMARY.md** | 技术架构总结 | | **FIELD_MAPPING.md** | 字段映射说明 | | **DATABASE_SETUP.md** | 数据库配置指南 | | **STRUCTURE.md** | 目录结构说明 | | **TROUBLESHOOTING.md** | 故障排除指南 | | **CHANGELOG.md** | 更新日志 | | **COMMANDS.txt** | 常用命令参考 | | **FINAL_SUMMARY.txt** | 交付总结 | --- ## 🎯 功能清单 ### i2i 相似度索引 #### 行为相似(3种) ✅ **Swing** - 基于用户共同行为 ✅ **Session W2V** - 基于会话序列 ✅ **DeepWalk** - 基于图随机游走 #### 内容相似(1种,3个方法) ✅ **Content-based** - 基于商品属性 - TF-IDF方法 - 分类方法 - 混合方法(推荐) ### 兴趣点聚合索引 #### 单维度(7个) ✅ 业务平台(platform) ✅ 客户端平台(client_platform) ✅ 供应商(supplier) ✅ 一级分类(category_level1) ✅ 二级分类(category_level2) ✅ 三级分类(category_level3) ✅ 四级分类(category_level4) #### 组合维度(4个) ✅ 平台 + 客户端 ✅ 平台 + 二级分类 ✅ 平台 + 三级分类 ✅ 客户端 + 二级分类 #### 列表类型(3种) ✅ 热门(hot) ✅ 加购(cart) ✅ 新品(new) --- ## 📊 数据依赖 ### 数据库表 - `sensors_events` - 用户行为事件(必需) - `prd_goods_sku` - 商品SKU信息(必需) - `prd_goods` - 商品主表(必需) - `prd_category` - 分类信息(用于分类维度) - `sup_supplier` - 供应商信息(用于供应商维度) - `prd_goods_sku_attribute` - 商品属性(用于内容相似) - `prd_option` - 属性选项(用于内容相似) ### 关键字段 - `anonymous_id` - 用户ID - `item_id` - 商品ID - `event` - 事件类型 - `create_time` - 时间戳 - `business_platform` - 业务平台 - `category_id` - 分类ID(通过path解析出1-4级) - `supplier_id` - 供应商ID --- ## 🚀 使用指南 ### 快速开始 ```bash cd /home/tw/recommendation/offline_tasks bash install.sh python3 test_connection.py python3 run_all.py --lookback_days 730 --top_n 50 ``` ### 单独运行 ```bash # i2i算法 python3 scripts/i2i_swing.py --lookback_days 730 --top_n 50 python3 scripts/i2i_content_similar.py --top_n 50 --method hybrid # 兴趣点聚合 python3 scripts/interest_aggregation.py --lookback_days 730 --top_n 1000 ``` ### 加载到Redis ```bash python3 scripts/load_index_to_redis.py --redis-host localhost ``` --- ## 📈 性能指标 | 任务 | 数据量 | 预估时间 | 内存占用 | |------|--------|---------|---------| | Swing | 730天行为数据 | 2-4小时 | 4-8GB | | Session W2V | 730天行为数据 | 30-60分钟 | 2-4GB | | DeepWalk | 730天行为数据 | 1-2小时 | 2-4GB | | Content-based | 全量商品属性 | 10-30分钟 | 2-4GB | | 兴趣点聚合 | 730天行为数据 | 30-60分钟 | 2-4GB | | **总计** | - | **6-10小时** | **8-16GB** | --- ## 💾 输出数据 ### 文件格式 ``` i2i_swing_20251016.txt i2i_session_w2v_20251016.txt i2i_deepwalk_20251016.txt i2i_content_hybrid_20251016.txt interest_aggregation_hot_20251016.txt interest_aggregation_cart_20251016.txt interest_aggregation_new_20251016.txt interest_aggregation_global_20251016.txt ``` ### 索引数量 - i2i索引:6种方法 × 商品数量 - 兴趣点聚合:10000-50000条索引 --- ## 🎬 业务场景 ### 1. 首页猜你喜欢 ``` interest:hot:platform:pc interest:hot:category_level2:200 interest:hot:platform_category2:pc_200 ``` ### 2. 详情页大家都在看 ``` i2i:swing:12345 i2i:content_hybrid:12345 ``` ### 3. 搜索结果页推荐 ``` interest:global:category_level2:200 interest:hot:supplier:10001 ``` --- ## ✨ 核心优势 ### 1. 完整性 - 行为 + 内容双重相似度 - 短期热门 + 长期稳定 - 粗粒度 + 细粒度查询 ### 2. 灵活性 - 4级分类查询 - 供应商维度 - 多维度组合 ### 3. 可扩展性 - 易于添加新维度 - 易于添加新算法 - 配置化管理 ### 4. 实用性 - 完全适配真实数据库 - 参考现有可运行代码 - 文档详细完善 --- ## 📖 推荐阅读顺序 1. **START_HERE.md** ← 从这里开始 2. **QUICKSTART.md** - 快速上手 3. **COMPLETE_INDEX_LIST.md** - 了解所有索引 4. **FINAL_UPDATE.md** - 了解完整功能 5. **README.md** - 详细使用说明 --- ## 🔍 关键数字 | 指标 | 数值 | |------|------| | 总代码行数 | ~2500行 | | 算法数量 | 4种(3行为+1内容) | | 维度数量 | 11个(7单+4组合) | | 分类层级 | 4级 | | 文档数量 | 14份 | | 脚本数量 | 10个 | | 预计索引总数 | 10000-50000条 | --- ## 📅 项目时间线 - **2025-10-16 上午**: 创建基础框架和配置 - **2025-10-16 中午**: 实现3种行为相似算法 - **2025-10-16 下午**: 实现兴趣点聚合 - **2025-10-16 下午**: 根据实际表结构适配 - **2025-10-16 傍晚**: 新增内容相似算法 - **2025-10-16 傍晚**: 完善分类和供应商维度 - **2025-10-16 晚上**: 完成所有文档 --- ## 🎉 交付状态 **✅ 已完成并可用!** 所有代码、配置、文档均已完成,可以立即部署使用。 --- ## 📞 支持 ### 文档 - 完整文档在 `offline_tasks/` 目录 - 从 `START_HERE.md` 开始 ### 日志 - 查看 `offline_tasks/logs/` 目录 - `tail -f logs/run_all_*.log` ### 帮助 - 各个脚本都支持 `--help` 参数 - 查看 `TROUBLESHOOTING.md` 排查问题 --- **项目目录**: `/home/tw/recommendation/offline_tasks/` **入口文档**: `START_HERE.md` **主脚本**: `run_all.py` **版本**: v1.1 **日期**: 2025-10-16 **状态**: ✅ 交付完成