Blame view

offline_tasks/CHANGES_SUMMARY.md 3.47 KB
abb122be   tangwang   fix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  # 更新总结 - 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到名称的映射
    ```python
    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. 需要执行的操作
  
  要应用这些更改,需要重新运行脚本:
  
  ```bash
  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文件生成,便于问题排查