使用 FuxiCTR 框架训练各种 CTR 预测模型(DeepFM、DCN、DIN、DCNv2、xDeepFM 等)
本 skill 提供在 FuxiCTR 框架下配置、训练和评估各种 CTR 预测模型的完整流程。
| 模型 | 特点 | 适用场景 |
|---|---|---|
| DeepFM | FM + DNN 结合 | 一般 CTR 预测 |
| DCN/DCNv2 | 显式高阶特征交叉 | 需要特征交互建模 |
| DIN | 注意力机制 | 用户行为序列建模 |
| xDeepFM | CIN 压缩交互网络 | 高阶特征组合 |
| AutoInt | 自注意力机制 | 多特征交互 |
| NFM | Bi-Interaction Pooling | 二阶特征交互 |
| AFM | 注意力 FM | 重要特征加权 |
pip install fuxictr>=2.3.7)# 进入模型目录(以 DCNv2 为例,其他模型类似)
cd FuxiCTR/model_zoo/DCNv2
# 运行训练
python run_expid.py \
--config ./config \
--expid MyExperiment \
--gpu -1
有用户行为序列? → DIN / DIEN / BST
需要显式高阶交叉? → DCN / DCNv2 / xDeepFM
一般 CTR 任务? → DeepFM / Wide&Deep
特征数量少? → FM / AFM / NFM
需要可解释性? → AFM / xDeepFM
| 模型 | 参数量 | 训练速度 | 精度 | 实现复杂度 |
|---|---|---|---|---|
| FM | 低 | 快 | 中 | 简单 |
| DeepFM | 中 | 中 | 高 | 简单 |
| DCN | 中 | 中 | 高 | 中等 |
| DIN | 高 | 慢 | 高 | 复杂 |
| xDeepFM | 高 | 慢 | 高 | 复杂 |
路径:FuxiCTR/model_zoo/{MODEL}/config/dataset_config.yaml
# 通用模板 - 根据实际数据集修改
dataset_name:
data_format: csv
data_root: /绝对路径/到/data/ # 数据根目录
feature_cols: # 特征列定义
- {active: true, dtype: str, name: user_id, type: categorical}
- {active: true, dtype: str, name: item_id, type: categorical}
- {active: true, dtype: str, name: category, type: categorical}
label_col: {dtype: float, name: label} # 标签列
min_categr_count: 1 # 最小类别计数阈值
test_data: /绝对路径/到/data/test.csv
train_data: /绝对路径/到/data/train.csv
valid_data: /绝对路径/到/data/valid.csv
特征类型:
# 分类特征