Home

Awesome

队伍: 最后一次打比赛
队员:jackhuntcnPandasCuteLogicJake

运行环境

硬件

软件

run.sh 有安装指令

代码目录

.
├── data
│   ├── keras
│   ├── lgb
│   └── torch
├── models
├── probs
├── raw_data
│   ├── test
│   ├── train_preliminary
│   └── train_semi_final
├── run.sh
├── src
│   ├── blending
│   │   └── f1_blend_and_submit.py
│   ├── keras
│   │   ├── f10_AGE_m11_transformer_lstm_5inputs_train_fold.py
│   │   ├── f11_GENDER_m1_transformer_3inputs_train_fold.py
│   │   ├── f12_GENDER_m2_transformer_lstm_3inputs_train_fold.py
│   │   ├── f13_merge_fold_results.py
│   │   ├── f1_save_data.py
│   │   ├── f2_save_sequence.py
│   │   ├── f3_save_embeddings.py
│   │   ├── f4_AGE_m3_lstm_4inputs_train_fold.py
│   │   ├── f5_AGE_m4_transformer_4inputs_train_fold.py
│   │   ├── f6_AGE_m5_transformer_3inputs_train_fold.py
│   │   ├── f7_AGE_m6_transformer_lstm_2inputs_train_fold.py
│   │   ├── f8_AGE_m8_transformer_lstm_3inputs_2r_train_fold.py
│   │   └── f9_AGE_m10_transformer_lstm_5inputs_train_fold.py
│   ├── lgb
│   │   ├── f1_save_tfidf_countvec.py
│   │   ├── f2_save_target_encoding.py
│   │   ├── f3_save_AGE_tf_idf_stacking_feats.py
│   │   ├── f4_save_GENDER_tf_idf_stacking_feats.py
│   │   └── f5_run_fold_training.py
│   ├── stacking
│   │   ├── f1_merge_stacking_feats.py
│   │   ├── f2_save_embeddings.py
│   │   ├── f3_stacking_DNN_120probs_train_fold.py
│   │   ├── f4_stacking_transformer_2inputs_90probs_train_fold.py
│   │   └── f5_merge_fold_results.py
│   └── torch
│       ├── f1_save_data.py
│       ├── f2_save_embedding_w2v.py
│       ├── f3_AGE_m7_lstm_3inputs_train_5fold.py
│       ├── f4_AGE_m1_lstm_6inputs_train_5fold.py
│       ├── f5_AGE_m9_transformer_3inputs_train_5fold.py
│       ├── f6_AGE_m2_transformer_6inputs_train_5fold.py
│       ├── f7_save_data.py
│       ├── f8_AGE_GENDER_m13_transformer_4inputs_train_5fold.py
│       ├── lookahead.py
│       ├── m13_transformer_4inputs.py
│       ├── m1_lstm_6inputs_age.py
│       ├── m2_transformer_6inputs_age.py
│       ├── m7_lstm_3inputs_age.py
│       ├── m9_transformer_3inputs_age.py
│       └── pytorchtools.py
└── w2v_models

17 directories, 40 files

模型说明

keras

对 age 和 gender 两个目标分别建模

每种模型分为不同的输入 id 个数,具体模型如下: (分数均指 A 榜分数,下同)

AGE

GENDER

torch

原生 transformers 对 age 和 gender 两个目标分别建模

huggingface transformers 同时对两个目录建模,两路输出

AGE

AGE & GENDER

LGB

LGB 使用的特征为 TF-IDF 和 COUNTVEC 以及目标编码特征

后期加入了线性模型产生的概率特征, AGE 线下分数大概 0.48

本次比赛中表现不如 NN 强势, 只采用了 AGE 概率用于 stacking

stacking

本次比赛使用了两种 stacking 方式:

blending

AGE

比赛结束前一周我们使用了 huggingface transformers 重新实现了 transformer + LSTM 模型, 五折分数为 0.519, 而且相关度与之前实现的 keras 和 torch 都较低, 只有 0.93,0.94 左右 (相比 keras 之间的相似度高达 0.98, torch 之间相似度 0.96), 所有我们单独将这个模型与上面所生成的两个 stacking 模型进行融合,取得 0.52780 线上分数:

0.50 * DNN_stacking + 0.15 * transformer_stacking + 0.35 * age_m13

GENDER

Gender 主要是三个 transformer 模型进行基本均等的融合:线上分数 0.95048

0.35 * gender_m1 + 0.35 * gender_m2 + 0.30 * gender_m3