FINAL_UPDATE.md
7.62 KB
最终更新说明
📅 更新日期:2025-10-16
✅ 已完成的功能(完整版)
1. i2i 相似度索引(4种算法)
1.1 行为相似(3种)
基于用户行为计算商品相似度:
| 算法 | 文件 | 特点 | 状态 |
|---|---|---|---|
| Swing | i2i_swing.py |
基于用户共同行为,效果最好 | ✅ 已完成 |
| Session W2V | i2i_session_w2v.py |
基于会话序列,捕获序列关系 | ✅ 已完成 |
| DeepWalk | i2i_deepwalk.py |
基于图游走,发现深层关系 | ✅ 已完成 |
1.2 内容相似(新增)
基于商品属性计算商品相似度:
| 算法 | 文件 | 特点 | 状态 |
|---|---|---|---|
| Content-based | i2i_content_similar.py |
基于分类、供应商、属性等 | ✅ 新增完成 |
支持的方法:
tfidf- 基于TF-IDF的文本相似度category- 基于分类的相似度hybrid- 混合方法(推荐)
使用的特征:
- 商品分类(一级到四级)
- 供应商信息
- 包装类型和包装方式
- 商品名称关键词
运行命令:
# 使用混合方法(推荐)
python3 scripts/i2i_content_similar.py --top_n 50 --method hybrid
# 只使用TF-IDF
python3 scripts/i2i_content_similar.py --top_n 50 --method tfidf
# 只使用分类
python3 scripts/i2i_content_similar.py --top_n 50 --method category
2. 兴趣点聚合索引(已完善)
支持的维度(从2个扩展到7个)
单维度:
- ✅
platform- 业务平台 - ✅
client_platform- 客户端平台 - ✅
supplier- 供应商 - ✅
category_level1- 一级分类 - ✅
category_level2- 二级分类 - ✅
category_level3- 三级分类 - ✅
category_level4- 四级分类
组合维度:
- ✅
platform_client- 业务平台 + 客户端平台 - ✅
platform_category2- 平台 + 二级分类 - ✅
platform_category3- 平台 + 三级分类 - ✅
client_category2- 客户端平台 + 二级分类
列表类型:
- ✅
hot- 热门商品 - ✅
cart- 加购商品 - ✅
new- 新品
🎯 完整的索引输出
i2i索引(4种)
# 行为相似
i2i:swing:{item_id}
i2i:session_w2v:{item_id}
i2i:deepwalk:{item_id}
# 内容相似(新增)
i2i:content_hybrid:{item_id}
i2i:content_tfidf:{item_id}
i2i:content_category:{item_id}
兴趣点聚合索引(大幅扩展)
单维度示例:
interest:hot:platform:pc
interest:hot:client_platform:web
interest:hot:supplier:10001
interest:hot:category_level1:100
interest:hot:category_level2:200
interest:hot:category_level3:300
interest:hot:category_level4:400
组合维度示例:
interest:hot:platform_client:pc_web
interest:hot:platform_category2:pc_200
interest:hot:platform_category3:mobile_300
interest:hot:client_category2:web_200
列表类型示例:
interest:hot:category_level2:200
interest:cart:category_level3:300
interest:new:supplier:10001
interest:global:platform_category2:pc_200
📊 业务场景应用(更新)
场景1: 首页猜你喜欢
# 1. 基于平台推荐
items_1 = redis.get("interest:hot:platform:pc")
# 2. 基于用户常购分类推荐
items_2 = redis.get("interest:hot:category_level2:200")
# 3. 基于平台+分类组合
items_3 = redis.get("interest:hot:platform_category2:pc_200")
# 融合多个维度
recommended = merge_and_personalize(items_1, items_2, items_3)
场景2: 详情页大家都在看
item_id = "12345"
# 1. 行为相似(用户行为)
similar_behavior = redis.get(f"i2i:swing:{item_id}")
# 2. 内容相似(商品属性)
similar_content = redis.get(f"i2i:content_hybrid:{item_id}")
# 3. 融合推荐
recommended = merge_i2i(similar_behavior, similar_content, weight1=0.6, weight2=0.4)
场景3: 分类页推荐
category_id = "200"
# 1. 该分类的热门商品
hot_items = redis.get(f"interest:hot:category_level2:{category_id}")
# 2. 该分类的新品
new_items = redis.get(f"interest:new:category_level2:{category_id}")
# 3. 组合展示
display(hot_items, new_items)
场景4: 供应商页推荐
supplier_id = "10001"
# 该供应商的热门商品
hot_items = redis.get(f"interest:hot:supplier:{supplier_id}")
🚀 运行所有任务
cd /home/tw/recommendation/offline_tasks
# 运行全部任务(包括新增的内容相似)
python3 run_all.py --lookback_days 730 --top_n 50
# 只运行内容相似
python3 run_all.py --only-content --top_n 50
# 跳过内容相似,只运行其他
python3 run_all.py --skip-content --lookback_days 730 --top_n 50
📈 性能参考(更新)
| 任务 | 数据依赖 | 预估时间 | 内存占用 |
|---|---|---|---|
| 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小时
📝 数据表依赖关系
i2i 行为相似
sensors_events- 用户行为事件prd_goods_sku- 商品SKU信息
i2i 内容相似(新增)
prd_goods_sku- 商品SKU信息prd_goods- 商品主表sup_supplier- 供应商信息prd_category- 分类信息(层级结构)prd_goods_sku_attribute- 商品属性prd_option- 属性选项prd_attribute- 属性定义
兴趣点聚合(已完善)
sensors_events- 用户行为事件prd_goods_sku- 商品SKU信息prd_goods- 商品主表prd_category- 分类信息(新增)
🔄 与原有代码的对比
原计划维度(文档中)
- ❌ 国家/销售区域(字段不存在)
- ❌ 客户类型(字段不存在)
- ⚠️ 二级分类(原以为不存在,现已支持)
- ⚠️ 三级分类(原以为不存在,现已支持)
实际实现维度(完善后)
- ✅ 业务平台
- ✅ 客户端平台
- ✅ 供应商(新增)
- ✅ 一级分类(新增)
- ✅ 二级分类(新增支持)
- ✅ 三级分类(新增支持)
- ✅ 四级分类(新增)
💡 优势总结
1. 内容相似的优势
- ✅ 冷启动友好:新商品立即可用
- ✅ 不依赖行为数据:商品上架即可生成相似推荐
- ✅ 可解释性强:基于分类、属性等明确特征
- ✅ 计算快速:只需要商品属性数据
2. 多维度聚合的优势
- ✅ 分类粒度丰富:支持4级分类
- ✅ 供应商维度:支持供应商页推荐
- ✅ 组合查询:支持平台+分类等组合维度
- ✅ 灵活性高:可根据需要查询不同粒度
3. 算法融合的优势
- ✅ 行为 + 内容:可以融合4种i2i算法
- ✅ 短期 + 长期:热门、新品等不同时效性
- ✅ 粗粒度 + 细粒度:一级到四级分类
🎉 完成状态
✅ 全部完成!
- ✅ i2i 行为相似(3种算法)
- ✅ i2i 内容相似(1种算法,3种方法)
- ✅ 兴趣点聚合(7个单维度 + 4个组合维度 + 3种列表类型)
- ✅ 统一调度脚本
- ✅ Redis加载工具
- ✅ 完整文档
📚 相关文档
- CURRENT_STATUS.md - 当前功能状态
- FIELD_MAPPING.md - 字段映射说明
- DATABASE_SETUP.md - 数据库配置
- TROUBLESHOOTING.md - 故障排除
- README.md - 完整文档
更新版本: v1.1
更新日期: 2025-10-16
主要变化:
- 新增内容相似算法
- 完善分类维度支持(1-4级)
- 新增供应商维度
- 扩展组合维度查询