# 最终更新说明 ## 📅 更新日期: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` - 混合方法(推荐) **使用的特征**: - 商品分类(一级到四级) - 供应商信息 - 包装类型和包装方式 - 商品名称关键词 **运行命令**: ```bash # 使用混合方法(推荐) 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个) **单维度**: 1. ✅ `platform` - 业务平台 2. ✅ `client_platform` - 客户端平台 3. ✅ `supplier` - 供应商 4. ✅ `category_level1` - 一级分类 5. ✅ `category_level2` - 二级分类 6. ✅ `category_level3` - 三级分类 7. ✅ `category_level4` - 四级分类 **组合维度**: 1. ✅ `platform_client` - 业务平台 + 客户端平台 2. ✅ `platform_category2` - 平台 + 二级分类 3. ✅ `platform_category3` - 平台 + 三级分类 4. ✅ `client_category2` - 客户端平台 + 二级分类 **列表类型**: 1. ✅ `hot` - 热门商品 2. ✅ `cart` - 加购商品 3. ✅ `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: 首页猜你喜欢 ```python # 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: 详情页大家都在看 ```python 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: 分类页推荐 ```python 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: 供应商页推荐 ```python supplier_id = "10001" # 该供应商的热门商品 hot_items = redis.get(f"interest:hot:supplier:{supplier_id}") ``` --- ## 🚀 运行所有任务 ```bash 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算法 - ✅ **短期 + 长期**:热门、新品等不同时效性 - ✅ **粗粒度 + 细粒度**:一级到四级分类 --- ## 🎉 完成状态 **✅ 全部完成!** 1. ✅ i2i 行为相似(3种算法) 2. ✅ i2i 内容相似(1种算法,3种方法) 3. ✅ 兴趣点聚合(7个单维度 + 4个组合维度 + 3种列表类型) 4. ✅ 统一调度脚本 5. ✅ Redis加载工具 6. ✅ 完整文档 --- ## 📚 相关文档 - **CURRENT_STATUS.md** - 当前功能状态 - **FIELD_MAPPING.md** - 字段映射说明 - **DATABASE_SETUP.md** - 数据库配置 - **TROUBLESHOOTING.md** - 故障排除 - **README.md** - 完整文档 --- **更新版本**: v1.1 **更新日期**: 2025-10-16 **主要变化**: - 新增内容相似算法 - 完善分类维度支持(1-4级) - 新增供应商维度 - 扩展组合维度查询