CHANGES_SUMMARY.md 3.47 KB

更新总结 - 2025-10-22

1. 修改 tag_category_similar.py 脚本

主要变更

  • SQL查询修改:从只查询分类名称改为同时查询分类ID和名称

    • 修改前:GROUP_CONCAT(pc_1.name) AS '商品信息'
    • 修改后:GROUP_CONCAT(DISTINCT CONCAT(pc_1.id, ':', pc_1.name)) AS '商品信息'
  • 数据处理修改:解析ID和名称对,建立ID到名称的映射

    cat_id_to_name = {}
    for cat_pair in categories:
      if ':' in cat_pair:
          cat_id, cat_name = cat_pair.split(':', 1)
          cat_id_to_name[cat_id] = cat_name
          unique_cats.add(cat_id)
    
  • 输出格式修改

    • 主输出文件output/tag_category_similar_YYYYMMDD.txt):只包含ID
    • 格式:category_id \t similar_id1:score1,similar_id2:score2,...
    • Debug文件output/debug/tag_category_similar_YYYYMMDD_readable.txt):包含ID+名称
    • 格式:category_id:category_name \t similar_id1:similar_name1:score1,...

输出示例

主文件(用于Redis加载):

123 456:0.8123,789:0.7654,234:0.6543

Debug文件(便于人工查看):

================================================================================
明文索引文件
生成时间: 2025-10-22 HH:MM:SS
描述: tag_category_similar (分类相似度)
总索引数: 708
================================================================================

123:BB夹/一字夹 456:横夹:0.8123,789:橡皮筋/发圈:0.7654,234:抓夹:0.6543

2. 更新详细设计文档

修改位置

文件:offline_tasks/doc/详细设计文档.md 章节:📊 数据量统计

变更内容

  • 基于真实输出文件统计了实际数据量
  • 更新了所有索引类型的准确数量和大小
  • 添加了 tag_category_similar 索引统计
  • 更新了Redis内存占用预估(从180MB更新为400MB)

实际数据统计(2025-10-22)

索引类型 索引数量 单条平均大小 总大小 更新频率
i2i_deepwalk 48,376 ~780B 36MB 每天
i2i_session_w2v 50,990 ~840B 41MB 每天
i2i_content_name 127,720 ~830B 101MB 每周
i2i_content_pic 0 - 0 每周
i2i_item_behavior 178,775 ~750B 128MB 每天
interest_hot 14,001 ~520B 6.9MB 每天
interest_cart 15,563 ~670B 10MB 每天
interest_new 6,463 ~500B 3.1MB 每天
interest_global 17,533 ~660B 11MB 每天
tag_category_similar 708 ~930B 630KB 每周
总计 ~460,000 - ~338MB -

3. 需要执行的操作

要应用这些更改,需要重新运行脚本:

cd /home/tw/recommendation/offline_tasks
python scripts/tag_category_similar.py --debug

这将生成:

  • output/tag_category_similar_20251022.txt - ID格式的主文件
  • output/debug/tag_category_similar_20251022_readable.txt - 可读格式的调试文件

4. 影响分析

向后兼容性

  • ⚠️ 破坏性变更:主输出文件格式从名称改为ID
  • 需要更新所有使用该文件的下游系统(特别是Redis加载脚本)

优势

  1. ✅ ID格式更稳定,不受名称变更影响
  2. ✅ 数据更准确,避免名称重复问题
  3. ✅ 保留可读版本便于调试和验证
  4. ✅ 与其他索引文件格式保持一致

建议

  • 更新Redis加载脚本,使其能够处理category ID
  • 在API层做ID到名称的转换(如需要)
  • 保持debug文件生成,便于问题排查