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 - 用户ID
  • item_id - 商品ID
  • event - 事件类型
  • 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. 实用性

  • 完全适配真实数据库
  • 参考现有可运行代码
  • 文档详细完善

📖 推荐阅读顺序

  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
状态: ✅ 交付完成