feat(training): TabM 排序模型架构优化与 Rank-Gauss 标签工程
- TabMSetRank: 将 TabM 输出改为隐藏层特征,经 SetRankHead 交互后通过 final_mlp 输出 Ensemble 排序分 - SetRankHead 引入可学习残差缩放因子(Zero-init)与 Pre-Norm 结构,提升训练稳定性 - TabMRankTask 新增 Rank-Gauss 连续标签变换,支持标准分位数/指数增益/Rank-Gauss 三种标签模式 - 修复 NDCG 评估在负值标签下的计算问题 - 调整实验脚本超参数(dropout、hidden dim、weight decay)及排除因子列表 - 迁移废弃的 torch.cuda.amp 到 torch.amp,并将数据预加载至 GPU 减少循环拷贝
This commit is contained in:
@@ -46,12 +46,16 @@ TRAINING_TYPE = "tabm_rank"
|
||||
# Label 配置(从 common.py 统一导入)
|
||||
# LABEL_NAME 和 LABEL_FACTOR 已在 common.py 中绑定,只需从 common 导入
|
||||
|
||||
# 分位数配置(提高分辨率以更好地区分头部)
|
||||
# 分位数配置(分桶模式下使用;Rank-Gauss 模式下不使用,但保留兼容性)
|
||||
N_QUANTILES = 50
|
||||
|
||||
# 【Top-K 优化】标签工程配置 - 默认启用平方增益
|
||||
LABEL_TRANSFORM = "exponential" # 启用平方增益标签 (rank^2)
|
||||
LABEL_SCALE = 20.0 # 保留参数(当前未使用,平方变换不需要缩放)
|
||||
# 标签工程配置
|
||||
# 可选值:
|
||||
# - "rank_gauss": Rank-Gauss 连续化标签(推荐,神经网络更友好)
|
||||
# - "exponential": 指数化增益标签 (rank^2)
|
||||
# - None: 标准分位数标签 (0, 1, ..., n_quantiles-1)
|
||||
LABEL_TRANSFORM = "rank_gauss"
|
||||
LABEL_SCALE = 20.0 # 保留参数(rank_gauss / exponential 下均未使用)
|
||||
|
||||
# 排除的因子列表
|
||||
EXCLUDED_FACTORS = ["GTJA_alpha041", "GTJA_alpha127"]
|
||||
|
||||
Reference in New Issue
Block a user