OFFLINE_TASKS_SUMMARY.md
6.81 KB
📊 推荐系统离线任务 - 完整总结
✅ 项目状态:已完成
📦 交付内容
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- 用户IDitem_id- 商品IDevent- 事件类型create_time- 时间戳business_platform- 业务平台category_id- 分类ID(通过path解析出1-4级)supplier_id- 供应商ID
🚀 使用指南
快速开始
cd /home/tw/recommendation/offline_tasks
bash install.sh
python3 test_connection.py
python3 run_all.py --lookback_days 730 --top_n 50
单独运行
# 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
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. 实用性
- 完全适配真实数据库
- 参考现有可运行代码
- 文档详细完善
📖 推荐阅读顺序
- START_HERE.md ← 从这里开始
- QUICKSTART.md - 快速上手
- COMPLETE_INDEX_LIST.md - 了解所有索引
- FINAL_UPDATE.md - 了解完整功能
- 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
状态: ✅ 交付完成