1721766b
tangwang
offline tasks
|
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# Debug功能快速总结
## ✅ 已完成的工作
### 1. 核心组件
| 组件 | 状态 | 说明 |
|------|------|------|
| `debug_utils.py` | ✅ | Debug工具库(369行) |
| `offline_config.py` | ✅ | 新增DEBUG_CONFIG |
| `i2i_swing.py` | ✅ | 完整debug支持 |
| `run_all.py` | ✅ | 支持--debug参数传递 |
### 2. Debug功能特性
#### A. 详细日志输出
```python
# 自动记录:
- 算法参数
- 数据统计(行数、列数、类型、缺失值)
- 处理进度(每N条显示)
- 每个步骤的耗时
- 数据分布(行为类型、用户数、商品数)
- 中间结果采样
```
#### B. 明文索引文件
```
原始: 12345\t香蕉干\t67890:0.8567,11223:0.7234
明文: [1] i2i:swing:12345(香蕉干)
1. ID:67890(芒果干) - Score:0.8567
2. ID:11223(菠萝干) - Score:0.7234
```
#### C. 日志文件
```
offline_tasks/logs/debug/i2i_swing_20251016_193000.log
offline_tasks/output/debug/i2i_swing_20251016_readable.txt
```
## 🚀 使用方法
### 单个脚本
```bash
# i2i_swing.py 已支持debug
python3 scripts/i2i_swing.py --lookback_days 7 --top_n 10 --debug
```
### 所有任务
```bash
# run_all.py 已支持debug参数传递
python3 run_all.py --lookback_days 7 --top_n 10 --debug
```
## 📊 输出示例
### 控制台输出
```
2025-10-16 19:30:00 - i2i_swing - DEBUG - ============================================================
2025-10-16 19:30:00 - i2i_swing - DEBUG - 算法参数:
2025-10-16 19:30:00 - i2i_swing - DEBUG - alpha: 0.5
2025-10-16 19:30:00 - i2i_swing - DEBUG - top_n: 10
2025-10-16 19:30:05 - i2i_swing - INFO - 获取到 15234 条记录
2025-10-16 19:30:05 - i2i_swing - DEBUG - 总行数: 15234
2025-10-16 19:30:05 - i2i_swing - DEBUG - 行为类型分布:
2025-10-16 19:30:05 - i2i_swing - DEBUG - addToCart: 8520 (55.93%)
2025-10-16 19:30:10 - i2i_swing - INFO - 总用户数: 3456, 总商品数: 2345
```
### 明文文件示例
```
================================================================================
明文索引文件
生成时间: 2025-10-16 19:35:00
描述: Swing算法 i2i相似度推荐 (alpha=0.5, lookback_days=7)
总索引数: 2345
================================================================================
[1] i2i:swing:12345(香蕉干)
--------------------------------------------------------------------------------
1. ID:67890(芒果干) - Score:0.8567
2. ID:11223(菠萝干) - Score:0.7234
3. ID:44556(苹果干) - Score:0.6891
```
## 🔧 Debug工具函数
| 函数 | 功能 |
|------|------|
| `setup_debug_logger()` | 设置debug日志 |
| `log_dataframe_info()` | 记录DataFrame详情 |
| `log_dict_stats()` | 记录字典统计 |
| `save_readable_index()` | 保存明文索引 |
| `fetch_name_mappings()` | 获取ID到名称映射 |
| `log_algorithm_params()` | 记录算法参数 |
| `log_processing_step()` | 记录处理步骤 |
## 📝 待完成
需要为以下脚本添加debug支持(使用相同模式):
- [ ] i2i_session_w2v.py
- [ ] i2i_deepwalk.py
- [ ] i2i_content_similar.py
- [ ] interest_aggregation.py
## 💡 快速测试
```bash
# 1. 测试debug工具
cd /home/tw/recommendation/offline_tasks
python3 -c "from scripts.debug_utils import *; print('✓ Debug utils OK')"
# 2. 测试i2i_swing debug模式
python3 scripts/i2i_swing.py --lookback_days 1 --top_n 5 --debug
# 3. 查看输出
ls -lh logs/debug/
ls -lh output/debug/
```
## 📖 完整文档
详细使用指南:`DEBUG_GUIDE.md`
---
**状态**: 🚧 进行中 (i2i_swing.py完成,其他脚本待更新)
**下一步**: 批量更新其他4个脚本的debug支持
|