jch 1 месяц назад
Родитель
Сommit
27c8cd458d
5 измененных файлов с 2007 добавлено и 0 удалено
  1. 991 0
      data_fields_v6.config
  2. 292 0
      deepfm_v13_6.py
  3. 374 0
      features_top300_new.config
  4. 58 0
      features_top50_new.config
  5. 292 0
      widedeep_v13_6.py

+ 991 - 0
data_fields_v6.config

@@ -0,0 +1,991 @@
+has_click BIGINT
+has_conversion BIGINT
+b8_yesterday_ctr DOUBLE
+b8_yesterday_ctcvr DOUBLE
+b8_yesterday_cvr DOUBLE
+b8_yesterday_conver DOUBLE
+b8_yesterday_ecpm DOUBLE
+b8_yesterday_click DOUBLE
+b8_yesterday_conver_x_log_view DOUBLE
+b8_yesterday_conver_x_ctcvr DOUBLE
+b9_1h_ctr DOUBLE
+b9_1h_ctcvr DOUBLE
+b9_1h_cvr DOUBLE
+b9_1h_conver DOUBLE
+b9_1h_ecpm DOUBLE
+b9_1h_click DOUBLE
+b9_1h_conver_x_log_view DOUBLE
+b9_1h_conver_x_ctcvr DOUBLE
+b9_2h_ctr DOUBLE
+b9_2h_ctcvr DOUBLE
+b9_2h_cvr DOUBLE
+b9_2h_conver DOUBLE
+b9_2h_ecpm DOUBLE
+b9_2h_click DOUBLE
+b9_2h_conver_x_log_view DOUBLE
+b9_2h_conver_x_ctcvr DOUBLE
+b9_3h_ctr DOUBLE
+b9_3h_ctcvr DOUBLE
+b9_3h_cvr DOUBLE
+b9_3h_conver DOUBLE
+b9_3h_ecpm DOUBLE
+b9_3h_click DOUBLE
+b9_3h_conver_x_log_view DOUBLE
+b9_3h_conver_x_ctcvr DOUBLE
+b9_4h_ctr DOUBLE
+b9_4h_ctcvr DOUBLE
+b9_4h_cvr DOUBLE
+b9_4h_conver DOUBLE
+b9_4h_ecpm DOUBLE
+b9_4h_click DOUBLE
+b9_4h_conver_x_log_view DOUBLE
+b9_4h_conver_x_ctcvr DOUBLE
+b9_5h_ctr DOUBLE
+b9_5h_ctcvr DOUBLE
+b9_5h_cvr DOUBLE
+b7_14d_ctcvr DOUBLE
+b7_14d_cvr DOUBLE
+b7_14d_conver DOUBLE
+b7_14d_ecpm DOUBLE
+b7_14d_click DOUBLE
+b7_14d_conver_x_log_view DOUBLE
+b7_14d_conver_x_ctcvr DOUBLE
+viewall DOUBLE
+clickall DOUBLE
+converall DOUBLE
+incomeall DOUBLE
+ctr_all DOUBLE
+ctcvr_all DOUBLE
+cvr_all DOUBLE
+ecpm_all DOUBLE
+timediff_view DOUBLE
+timediff_click DOUBLE
+timediff_conver DOUBLE
+actionstatic_view DOUBLE
+actionstatic_click DOUBLE
+actionstatic_conver DOUBLE
+actionstatic_income DOUBLE
+actionstatic_ctr DOUBLE
+actionstatic_ctcvr DOUBLE
+actionstatic_cvr DOUBLE
+e1_tags_3d_matchnum DOUBLE
+e1_tags_3d_maxscore DOUBLE
+e1_tags_3d_avgscore DOUBLE
+e1_tags_7d_matchnum DOUBLE
+e1_tags_7d_maxscore DOUBLE
+e1_tags_7d_avgscore DOUBLE
+e1_tags_14d_matchnum DOUBLE
+e1_tags_14d_maxscore DOUBLE
+e1_tags_14d_avgscore DOUBLE
+e2_tags_3d_matchnum DOUBLE
+e2_tags_3d_maxscore DOUBLE
+e2_tags_3d_avgscore DOUBLE
+e2_tags_7d_matchnum DOUBLE
+e2_tags_7d_maxscore DOUBLE
+e2_tags_7d_avgscore DOUBLE
+e2_tags_14d_matchnum DOUBLE
+e2_tags_14d_maxscore DOUBLE
+e2_tags_14d_avgscore DOUBLE
+b8_1h_cvr DOUBLE
+b8_1h_conver DOUBLE
+b8_1h_ecpm DOUBLE
+b8_1h_click DOUBLE
+b8_1h_conver_x_log_view DOUBLE
+b8_1h_conver_x_ctcvr DOUBLE
+b8_2h_ctr DOUBLE
+b8_2h_ctcvr DOUBLE
+b8_2h_cvr DOUBLE
+b8_2h_conver DOUBLE
+b8_2h_ecpm DOUBLE
+b8_2h_click DOUBLE
+b8_2h_conver_x_log_view DOUBLE
+b8_2h_conver_x_ctcvr DOUBLE
+b8_3h_ctr DOUBLE
+b8_3h_ctcvr DOUBLE
+b8_3h_cvr DOUBLE
+b8_3h_conver DOUBLE
+b8_3h_ecpm DOUBLE
+b8_3h_click DOUBLE
+b8_3h_conver_x_log_view DOUBLE
+b8_3h_conver_x_ctcvr DOUBLE
+b8_4h_ctr DOUBLE
+b8_4h_ctcvr DOUBLE
+b8_4h_cvr DOUBLE
+b8_4h_conver DOUBLE
+b8_4h_ecpm DOUBLE
+b8_4h_click DOUBLE
+b8_4h_conver_x_log_view DOUBLE
+b8_4h_conver_x_ctcvr DOUBLE
+b8_5h_ctr DOUBLE
+b8_5h_ctcvr DOUBLE
+b8_5h_cvr DOUBLE
+b8_5h_conver DOUBLE
+b8_5h_ecpm DOUBLE
+b8_5h_click DOUBLE
+b8_5h_conver_x_log_view DOUBLE
+b8_5h_conver_x_ctcvr DOUBLE
+b8_6h_ctr DOUBLE
+b8_6h_ctcvr DOUBLE
+b8_6h_cvr DOUBLE
+b8_6h_conver DOUBLE
+b8_6h_ecpm DOUBLE
+b4_3d_ctcvr DOUBLE
+b4_3d_cvr DOUBLE
+b4_3d_conver DOUBLE
+b4_3d_ecpm DOUBLE
+b4_3d_click DOUBLE
+b4_3d_conver_x_log_view DOUBLE
+b4_3d_conver_x_ctcvr DOUBLE
+b4_7d_ctr DOUBLE
+b4_7d_ctcvr DOUBLE
+b4_7d_cvr DOUBLE
+b4_7d_conver DOUBLE
+b4_7d_ecpm DOUBLE
+b4_7d_click DOUBLE
+b4_7d_conver_x_log_view DOUBLE
+b4_7d_conver_x_ctcvr DOUBLE
+b4_today_ctr DOUBLE
+b4_today_ctcvr DOUBLE
+b4_today_cvr DOUBLE
+b4_today_conver DOUBLE
+b4_today_ecpm DOUBLE
+b4_today_click DOUBLE
+b4_today_conver_x_log_view DOUBLE
+b4_today_conver_x_ctcvr DOUBLE
+b4_yesterday_ctr DOUBLE
+b4_yesterday_ctcvr DOUBLE
+b4_yesterday_cvr DOUBLE
+b4_yesterday_conver DOUBLE
+b4_yesterday_ecpm DOUBLE
+b4_yesterday_click DOUBLE
+b4_yesterday_conver_x_log_view DOUBLE
+b4_yesterday_conver_x_ctcvr DOUBLE
+b5_1h_ctr DOUBLE
+b5_1h_ctcvr DOUBLE
+b5_1h_cvr DOUBLE
+b5_1h_conver DOUBLE
+b5_1h_ecpm DOUBLE
+b5_1h_click DOUBLE
+b5_1h_conver_x_log_view DOUBLE
+b5_1h_conver_x_ctcvr DOUBLE
+b5_2h_ctr DOUBLE
+b5_2h_ctcvr DOUBLE
+b5_2h_cvr DOUBLE
+b5_2h_conver DOUBLE
+d1_feature_3h_ctr DOUBLE
+d1_feature_3h_ctcvr DOUBLE
+d1_feature_3h_cvr DOUBLE
+d1_feature_3h_conver DOUBLE
+d1_feature_3h_ecpm DOUBLE
+d1_feature_6h_ctr DOUBLE
+d1_feature_6h_ctcvr DOUBLE
+d1_feature_6h_cvr DOUBLE
+d1_feature_6h_conver DOUBLE
+d1_feature_6h_ecpm DOUBLE
+d1_feature_12h_ctr DOUBLE
+d1_feature_12h_ctcvr DOUBLE
+d1_feature_12h_cvr DOUBLE
+d1_feature_12h_conver DOUBLE
+d1_feature_12h_ecpm DOUBLE
+d1_feature_1d_ctr DOUBLE
+d1_feature_1d_ctcvr DOUBLE
+d1_feature_1d_cvr DOUBLE
+d1_feature_1d_conver DOUBLE
+d1_feature_1d_ecpm DOUBLE
+d1_feature_3d_ctr DOUBLE
+d1_feature_3d_ctcvr DOUBLE
+d1_feature_3d_cvr DOUBLE
+d1_feature_3d_conver DOUBLE
+d1_feature_3d_ecpm DOUBLE
+d1_feature_7d_ctr DOUBLE
+d1_feature_7d_ctcvr DOUBLE
+d1_feature_7d_cvr DOUBLE
+d1_feature_7d_conver DOUBLE
+d1_feature_7d_ecpm DOUBLE
+vid_rank_ctr_1d DOUBLE
+vid_rank_ctr_3d DOUBLE
+vid_rank_ctr_7d DOUBLE
+vid_rank_ctr_14d DOUBLE
+vid_rank_ctcvr_1d DOUBLE
+vid_rank_ctcvr_3d DOUBLE
+vid_rank_ctcvr_7d DOUBLE
+vid_rank_ctcvr_14d DOUBLE
+vid_rank_ecpm_1d DOUBLE
+vid_rank_ecpm_3d DOUBLE
+vid_rank_ecpm_7d DOUBLE
+vid_rank_ecpm_14d DOUBLE
+ctitle_vtitle_similarity DOUBLE
+b5_2h_ecpm DOUBLE
+b5_2h_click DOUBLE
+b5_2h_conver_x_log_view DOUBLE
+b5_2h_conver_x_ctcvr DOUBLE
+b5_3h_ctr DOUBLE
+b5_3h_ctcvr DOUBLE
+b5_3h_cvr DOUBLE
+b5_3h_conver DOUBLE
+b5_3h_ecpm DOUBLE
+b5_3h_click DOUBLE
+b5_3h_conver_x_log_view DOUBLE
+b5_3h_conver_x_ctcvr DOUBLE
+b5_4h_ctr DOUBLE
+b5_4h_ctcvr DOUBLE
+b5_4h_cvr DOUBLE
+b5_4h_conver DOUBLE
+b5_4h_ecpm DOUBLE
+b5_4h_click DOUBLE
+b5_4h_conver_x_log_view DOUBLE
+b5_4h_conver_x_ctcvr DOUBLE
+b5_5h_ctr DOUBLE
+b5_5h_ctcvr DOUBLE
+b5_5h_cvr DOUBLE
+b5_5h_conver DOUBLE
+b5_5h_ecpm DOUBLE
+b5_5h_click DOUBLE
+b5_5h_conver_x_log_view DOUBLE
+b5_5h_conver_x_ctcvr DOUBLE
+b5_6h_ctr DOUBLE
+b5_6h_ctcvr DOUBLE
+b5_6h_cvr DOUBLE
+b5_6h_conver DOUBLE
+b5_6h_ecpm DOUBLE
+b5_6h_click DOUBLE
+b5_6h_conver_x_log_view DOUBLE
+b5_6h_conver_x_ctcvr DOUBLE
+b5_12h_ctr DOUBLE
+b5_12h_ctcvr DOUBLE
+b5_12h_cvr DOUBLE
+b5_12h_conver DOUBLE
+b5_12h_ecpm DOUBLE
+b5_12h_click DOUBLE
+b5_12h_conver_x_log_view DOUBLE
+b8_6h_click DOUBLE
+b8_6h_conver_x_log_view DOUBLE
+b8_6h_conver_x_ctcvr DOUBLE
+b8_12h_ctr DOUBLE
+b8_12h_ctcvr DOUBLE
+b8_12h_cvr DOUBLE
+b8_12h_conver DOUBLE
+b8_12h_ecpm DOUBLE
+b8_12h_click DOUBLE
+b8_12h_conver_x_log_view DOUBLE
+b8_12h_conver_x_ctcvr DOUBLE
+b8_1d_ctr DOUBLE
+b8_1d_ctcvr DOUBLE
+b8_1d_cvr DOUBLE
+b8_1d_conver DOUBLE
+b8_1d_ecpm DOUBLE
+b8_1d_click DOUBLE
+b8_1d_conver_x_log_view DOUBLE
+b8_1d_conver_x_ctcvr DOUBLE
+b8_3d_ctr DOUBLE
+b8_3d_ctcvr DOUBLE
+b8_3d_cvr DOUBLE
+b8_3d_conver DOUBLE
+b8_3d_ecpm DOUBLE
+b8_3d_click DOUBLE
+b8_3d_conver_x_log_view DOUBLE
+b8_3d_conver_x_ctcvr DOUBLE
+b8_7d_ctr DOUBLE
+b8_7d_ctcvr DOUBLE
+b8_7d_cvr DOUBLE
+b8_7d_conver DOUBLE
+b8_7d_ecpm DOUBLE
+b8_7d_click DOUBLE
+b8_7d_conver_x_log_view DOUBLE
+b8_7d_conver_x_ctcvr DOUBLE
+b8_today_ctr DOUBLE
+b8_today_ctcvr DOUBLE
+b8_today_cvr DOUBLE
+b8_today_conver DOUBLE
+b8_today_ecpm DOUBLE
+b8_today_click DOUBLE
+b8_today_conver_x_log_view DOUBLE
+b8_today_conver_x_ctcvr DOUBLE
+b2_today_click DOUBLE
+b2_today_conver_x_log_view DOUBLE
+b2_today_conver_x_ctcvr DOUBLE
+b2_yesterday_ctr DOUBLE
+b2_yesterday_ctcvr DOUBLE
+b2_yesterday_cvr DOUBLE
+b2_yesterday_conver DOUBLE
+b2_yesterday_ecpm DOUBLE
+b2_yesterday_click DOUBLE
+b2_yesterday_conver_x_log_view DOUBLE
+b2_yesterday_conver_x_ctcvr DOUBLE
+b3_1h_ctr DOUBLE
+b3_1h_ctcvr DOUBLE
+b3_1h_cvr DOUBLE
+b3_1h_conver DOUBLE
+b3_1h_ecpm DOUBLE
+b3_1h_click DOUBLE
+b3_1h_conver_x_log_view DOUBLE
+b3_1h_conver_x_ctcvr DOUBLE
+b3_2h_ctr DOUBLE
+b3_2h_ctcvr DOUBLE
+b3_2h_cvr DOUBLE
+b3_2h_conver DOUBLE
+b3_2h_ecpm DOUBLE
+b3_2h_click DOUBLE
+b3_2h_conver_x_log_view DOUBLE
+b3_2h_conver_x_ctcvr DOUBLE
+b3_3h_ctr DOUBLE
+b3_3h_ctcvr DOUBLE
+b3_3h_cvr DOUBLE
+b3_3h_conver DOUBLE
+b3_3h_ecpm DOUBLE
+b3_3h_click DOUBLE
+b3_3h_conver_x_log_view DOUBLE
+b3_3h_conver_x_ctcvr DOUBLE
+b3_4h_ctr DOUBLE
+b3_4h_ctcvr DOUBLE
+b3_4h_cvr DOUBLE
+b3_4h_conver DOUBLE
+b3_4h_ecpm DOUBLE
+b3_4h_click DOUBLE
+b3_4h_conver_x_log_view DOUBLE
+b3_4h_conver_x_ctcvr DOUBLE
+b3_5h_ctr DOUBLE
+b3_5h_ctcvr DOUBLE
+b3_5h_cvr DOUBLE
+b3_5h_conver DOUBLE
+b3_5h_ecpm DOUBLE
+b3_5h_click DOUBLE
+b3_5h_conver_x_log_view DOUBLE
+b3_5h_conver_x_ctcvr DOUBLE
+b3_6h_ctr DOUBLE
+b3_6h_ctcvr DOUBLE
+b3_6h_cvr DOUBLE
+b3_6h_conver DOUBLE
+b3_6h_ecpm DOUBLE
+b3_6h_click DOUBLE
+b3_6h_conver_x_log_view DOUBLE
+b3_6h_conver_x_ctcvr DOUBLE
+b3_12h_ctr DOUBLE
+b3_12h_ctcvr DOUBLE
+b3_12h_cvr DOUBLE
+b3_12h_conver DOUBLE
+b3_12h_ecpm DOUBLE
+b3_12h_click DOUBLE
+b3_12h_conver_x_log_view DOUBLE
+b3_12h_conver_x_ctcvr DOUBLE
+b3_1d_ctr DOUBLE
+b3_1d_ctcvr DOUBLE
+b3_1d_cvr DOUBLE
+b3_1d_conver DOUBLE
+b3_1d_ecpm DOUBLE
+b3_1d_click DOUBLE
+b3_1d_conver_x_log_view DOUBLE
+b3_1d_conver_x_ctcvr DOUBLE
+b3_3d_ctr DOUBLE
+b3_3d_ctcvr DOUBLE
+b3_3d_cvr DOUBLE
+b3_3d_conver DOUBLE
+b3_3d_ecpm DOUBLE
+b3_3d_click DOUBLE
+b3_3d_conver_x_log_view DOUBLE
+b3_3d_conver_x_ctcvr DOUBLE
+b3_7d_ctr DOUBLE
+b3_7d_ctcvr DOUBLE
+b3_7d_cvr DOUBLE
+b3_7d_conver DOUBLE
+b3_7d_ecpm DOUBLE
+b3_7d_click DOUBLE
+b3_7d_conver_x_log_view DOUBLE
+b3_7d_conver_x_ctcvr DOUBLE
+b3_today_ctr DOUBLE
+b3_today_ctcvr DOUBLE
+b3_today_cvr DOUBLE
+b3_today_conver DOUBLE
+b3_today_ecpm DOUBLE
+b3_today_click DOUBLE
+b3_today_conver_x_log_view DOUBLE
+b3_today_conver_x_ctcvr DOUBLE
+b3_yesterday_ctr DOUBLE
+b3_yesterday_ctcvr DOUBLE
+b3_yesterday_cvr DOUBLE
+b3_yesterday_conver DOUBLE
+b3_yesterday_ecpm DOUBLE
+b3_yesterday_click DOUBLE
+b3_yesterday_conver_x_log_view DOUBLE
+b3_yesterday_conver_x_ctcvr DOUBLE
+b4_1h_ctr DOUBLE
+b4_1h_ctcvr DOUBLE
+b4_1h_cvr DOUBLE
+b4_1h_conver DOUBLE
+b4_1h_ecpm DOUBLE
+b4_1h_click DOUBLE
+b4_1h_conver_x_log_view DOUBLE
+b4_1h_conver_x_ctcvr DOUBLE
+b4_2h_ctr DOUBLE
+b4_2h_ctcvr DOUBLE
+b4_2h_cvr DOUBLE
+b4_2h_conver DOUBLE
+b4_2h_ecpm DOUBLE
+b4_2h_click DOUBLE
+b4_2h_conver_x_log_view DOUBLE
+b4_2h_conver_x_ctcvr DOUBLE
+b4_3h_ctr DOUBLE
+b4_3h_ctcvr DOUBLE
+b4_3h_cvr DOUBLE
+b4_3h_conver DOUBLE
+b4_3h_ecpm DOUBLE
+b4_3h_click DOUBLE
+b9_7d_conver_x_log_view DOUBLE
+b9_7d_conver_x_ctcvr DOUBLE
+b9_today_ctr DOUBLE
+b9_today_ctcvr DOUBLE
+b9_today_cvr DOUBLE
+b9_today_conver DOUBLE
+b9_today_ecpm DOUBLE
+b9_today_click DOUBLE
+b9_today_conver_x_log_view DOUBLE
+b9_today_conver_x_ctcvr DOUBLE
+b9_yesterday_ctr DOUBLE
+b9_yesterday_ctcvr DOUBLE
+b9_yesterday_cvr DOUBLE
+b9_yesterday_conver DOUBLE
+b9_yesterday_ecpm DOUBLE
+b9_yesterday_click DOUBLE
+b9_yesterday_conver_x_log_view DOUBLE
+b9_yesterday_conver_x_ctcvr DOUBLE
+b6_7d_ctr DOUBLE
+b6_7d_ctcvr DOUBLE
+b6_7d_cvr DOUBLE
+b6_7d_conver DOUBLE
+b6_7d_ecpm DOUBLE
+b6_7d_click DOUBLE
+b6_7d_conver_x_log_view DOUBLE
+b6_7d_conver_x_ctcvr DOUBLE
+b6_14d_ctr DOUBLE
+b6_14d_ctcvr DOUBLE
+b6_14d_cvr DOUBLE
+b6_14d_conver DOUBLE
+b6_14d_ecpm DOUBLE
+b6_14d_click DOUBLE
+b6_14d_conver_x_log_view DOUBLE
+b6_14d_conver_x_ctcvr DOUBLE
+b7_7d_ctr DOUBLE
+b7_7d_ctcvr DOUBLE
+b7_7d_cvr DOUBLE
+b7_7d_conver DOUBLE
+b7_7d_ecpm DOUBLE
+b7_7d_click DOUBLE
+b7_7d_conver_x_log_view DOUBLE
+b7_7d_conver_x_ctcvr DOUBLE
+b7_14d_ctr DOUBLE
+b5_12h_conver_x_ctcvr DOUBLE
+b5_1d_ctr DOUBLE
+b5_1d_ctcvr DOUBLE
+b5_1d_cvr DOUBLE
+b5_1d_conver DOUBLE
+b5_1d_ecpm DOUBLE
+b5_1d_click DOUBLE
+b5_1d_conver_x_log_view DOUBLE
+b5_1d_conver_x_ctcvr DOUBLE
+b5_3d_ctr DOUBLE
+b5_3d_ctcvr DOUBLE
+b5_3d_cvr DOUBLE
+b5_3d_conver DOUBLE
+b5_3d_ecpm DOUBLE
+b5_3d_click DOUBLE
+b5_3d_conver_x_log_view DOUBLE
+b5_3d_conver_x_ctcvr DOUBLE
+b5_7d_ctr DOUBLE
+b5_7d_ctcvr DOUBLE
+b5_7d_cvr DOUBLE
+b5_7d_conver DOUBLE
+b5_7d_ecpm DOUBLE
+b5_7d_click DOUBLE
+b5_7d_conver_x_log_view DOUBLE
+b5_7d_conver_x_ctcvr DOUBLE
+b5_today_ctr DOUBLE
+b5_today_ctcvr DOUBLE
+b5_today_cvr DOUBLE
+b5_today_conver DOUBLE
+b5_today_ecpm DOUBLE
+b5_today_click DOUBLE
+b5_today_conver_x_log_view DOUBLE
+b5_today_conver_x_ctcvr DOUBLE
+b5_yesterday_ctr DOUBLE
+b5_yesterday_ctcvr DOUBLE
+b5_yesterday_cvr DOUBLE
+b5_yesterday_conver DOUBLE
+b5_yesterday_ecpm DOUBLE
+b5_yesterday_click DOUBLE
+b5_yesterday_conver_x_log_view DOUBLE
+b5_yesterday_conver_x_ctcvr DOUBLE
+b8_1h_ctr DOUBLE
+b8_1h_ctcvr DOUBLE
+b4_3h_conver_x_log_view DOUBLE
+b4_3h_conver_x_ctcvr DOUBLE
+b4_4h_ctr DOUBLE
+b4_4h_ctcvr DOUBLE
+b4_4h_cvr DOUBLE
+b4_4h_conver DOUBLE
+b4_4h_ecpm DOUBLE
+b4_4h_click DOUBLE
+b4_4h_conver_x_log_view DOUBLE
+b4_4h_conver_x_ctcvr DOUBLE
+b4_5h_ctr DOUBLE
+b4_5h_ctcvr DOUBLE
+b4_5h_cvr DOUBLE
+b4_5h_conver DOUBLE
+b4_5h_ecpm DOUBLE
+b4_5h_click DOUBLE
+b4_5h_conver_x_log_view DOUBLE
+b4_5h_conver_x_ctcvr DOUBLE
+b4_6h_ctr DOUBLE
+b4_6h_ctcvr DOUBLE
+b4_6h_cvr DOUBLE
+b4_6h_conver DOUBLE
+b4_6h_ecpm DOUBLE
+b4_6h_click DOUBLE
+b4_6h_conver_x_log_view DOUBLE
+b4_6h_conver_x_ctcvr DOUBLE
+b4_12h_ctr DOUBLE
+b4_12h_ctcvr DOUBLE
+b4_12h_cvr DOUBLE
+b4_12h_conver DOUBLE
+b4_12h_ecpm DOUBLE
+b4_12h_click DOUBLE
+b4_12h_conver_x_log_view DOUBLE
+b4_12h_conver_x_ctcvr DOUBLE
+b4_1d_ctr DOUBLE
+b4_1d_ctcvr DOUBLE
+b4_1d_cvr DOUBLE
+b4_1d_conver DOUBLE
+b4_1d_ecpm DOUBLE
+b4_1d_click DOUBLE
+b4_1d_conver_x_log_view DOUBLE
+b4_1d_conver_x_ctcvr DOUBLE
+b4_3d_ctr DOUBLE
+b2_6h_cvr DOUBLE
+b2_6h_conver DOUBLE
+b2_6h_ecpm DOUBLE
+b2_6h_click DOUBLE
+b2_6h_conver_x_log_view DOUBLE
+b2_6h_conver_x_ctcvr DOUBLE
+b2_12h_ctr DOUBLE
+b2_12h_ctcvr DOUBLE
+b2_12h_cvr DOUBLE
+b2_12h_conver DOUBLE
+b2_12h_ecpm DOUBLE
+b2_12h_click DOUBLE
+b2_12h_conver_x_log_view DOUBLE
+b2_12h_conver_x_ctcvr DOUBLE
+b2_1d_ctr DOUBLE
+b2_1d_ctcvr DOUBLE
+b2_1d_cvr DOUBLE
+b2_1d_conver DOUBLE
+b2_1d_ecpm DOUBLE
+b2_1d_click DOUBLE
+b2_1d_conver_x_log_view DOUBLE
+b2_1d_conver_x_ctcvr DOUBLE
+b2_3d_ctr DOUBLE
+b2_3d_ctcvr DOUBLE
+b2_3d_cvr DOUBLE
+b2_3d_conver DOUBLE
+b2_3d_ecpm DOUBLE
+b2_3d_click DOUBLE
+b2_3d_conver_x_log_view DOUBLE
+b2_3d_conver_x_ctcvr DOUBLE
+b2_7d_ctr DOUBLE
+b2_7d_ctcvr DOUBLE
+b2_7d_cvr DOUBLE
+b2_7d_conver DOUBLE
+b2_7d_ecpm DOUBLE
+b2_7d_click DOUBLE
+b2_7d_conver_x_log_view DOUBLE
+b2_7d_conver_x_ctcvr DOUBLE
+b2_today_ctr DOUBLE
+b2_today_ctcvr DOUBLE
+b2_today_cvr DOUBLE
+b2_today_conver DOUBLE
+b2_today_ecpm DOUBLE
+cpa DOUBLE
+b2_1h_ctr DOUBLE
+b2_1h_ctcvr DOUBLE
+b2_1h_cvr DOUBLE
+b2_1h_conver DOUBLE
+b2_1h_ecpm DOUBLE
+b2_1h_click DOUBLE
+b2_1h_conver_x_log_view DOUBLE
+b2_1h_conver_x_ctcvr DOUBLE
+b2_2h_ctr DOUBLE
+b2_2h_ctcvr DOUBLE
+b2_2h_cvr DOUBLE
+b2_2h_conver DOUBLE
+b2_2h_ecpm DOUBLE
+b2_2h_click DOUBLE
+b2_2h_conver_x_log_view DOUBLE
+b2_2h_conver_x_ctcvr DOUBLE
+b2_3h_ctr DOUBLE
+b2_3h_ctcvr DOUBLE
+b2_3h_cvr DOUBLE
+b2_3h_conver DOUBLE
+b2_3h_ecpm DOUBLE
+b2_3h_click DOUBLE
+b2_3h_conver_x_log_view DOUBLE
+b2_3h_conver_x_ctcvr DOUBLE
+b2_4h_ctr DOUBLE
+b2_4h_ctcvr DOUBLE
+b2_4h_cvr DOUBLE
+b2_4h_conver DOUBLE
+b2_4h_ecpm DOUBLE
+b2_4h_click DOUBLE
+b2_4h_conver_x_log_view DOUBLE
+b2_4h_conver_x_ctcvr DOUBLE
+b2_5h_ctr DOUBLE
+b2_5h_ctcvr DOUBLE
+b2_5h_cvr DOUBLE
+b2_5h_conver DOUBLE
+b2_5h_ecpm DOUBLE
+b2_5h_click DOUBLE
+b2_5h_conver_x_log_view DOUBLE
+b2_5h_conver_x_ctcvr DOUBLE
+b2_6h_ctr DOUBLE
+b2_6h_ctcvr DOUBLE
+b9_5h_conver DOUBLE
+b9_5h_ecpm DOUBLE
+b9_5h_click DOUBLE
+b9_5h_conver_x_log_view DOUBLE
+b9_5h_conver_x_ctcvr DOUBLE
+b9_6h_ctr DOUBLE
+b9_6h_ctcvr DOUBLE
+b9_6h_cvr DOUBLE
+b9_6h_conver DOUBLE
+b9_6h_ecpm DOUBLE
+b9_6h_click DOUBLE
+b9_6h_conver_x_log_view DOUBLE
+b9_6h_conver_x_ctcvr DOUBLE
+b9_12h_ctr DOUBLE
+b9_12h_ctcvr DOUBLE
+b9_12h_cvr DOUBLE
+b9_12h_conver DOUBLE
+b9_12h_ecpm DOUBLE
+b9_12h_click DOUBLE
+b9_12h_conver_x_log_view DOUBLE
+b9_12h_conver_x_ctcvr DOUBLE
+b9_1d_ctr DOUBLE
+b9_1d_ctcvr DOUBLE
+b9_1d_cvr DOUBLE
+b9_1d_conver DOUBLE
+b9_1d_ecpm DOUBLE
+b9_1d_click DOUBLE
+b9_1d_conver_x_log_view DOUBLE
+b9_1d_conver_x_ctcvr DOUBLE
+b9_3d_ctr DOUBLE
+b9_3d_ctcvr DOUBLE
+b9_3d_cvr DOUBLE
+b9_3d_conver DOUBLE
+b9_3d_ecpm DOUBLE
+b9_3d_click DOUBLE
+b9_3d_conver_x_log_view DOUBLE
+b9_3d_conver_x_ctcvr DOUBLE
+b9_7d_ctr DOUBLE
+b9_7d_ctcvr DOUBLE
+b9_7d_cvr DOUBLE
+b9_7d_conver DOUBLE
+b9_7d_ecpm DOUBLE
+b9_7d_click DOUBLE
+j1_3h_conver_x_log_view DOUBLE
+j1_3h_ctcvr DOUBLE
+j1_3h_ctr DOUBLE
+j1_3h_cvr DOUBLE
+j1_3h_ecpm DOUBLE
+j11_3h_ctcvr DOUBLE
+j11_3h_ctr DOUBLE
+j11_3h_cvr DOUBLE
+j11_3h_ecpm DOUBLE
+j1_3d_click DOUBLE
+j2_3h_cvr DOUBLE
+j2_3h_ecpm DOUBLE
+j3_3d_click DOUBLE
+j3_3d_conver DOUBLE
+j3_3d_conver_x_ctcvr DOUBLE
+j3_3h_click DOUBLE
+j3_3h_conver DOUBLE
+j3_3h_conver_x_ctcvr DOUBLE
+j3_3h_conver_x_log_view DOUBLE
+j3_3h_ctcvr DOUBLE
+j1_3d_conver DOUBLE
+j1_3d_conver_x_ctcvr DOUBLE
+j1_3d_conver_x_log_view DOUBLE
+j1_3d_ctcvr DOUBLE
+j1_3d_ctr DOUBLE
+j11_3h_click DOUBLE
+j11_3h_conver DOUBLE
+j11_3h_conver_x_ctcvr DOUBLE
+j11_3h_conver_x_log_view DOUBLE
+j2_3d_ctcvr DOUBLE
+j2_3d_ctr DOUBLE
+j2_3d_cvr DOUBLE
+j2_3d_ecpm DOUBLE
+j2_3h_click DOUBLE
+j10_3d_ctcvr DOUBLE
+j10_3d_ctr DOUBLE
+j10_3d_cvr DOUBLE
+j10_3d_ecpm DOUBLE
+j10_3h_click DOUBLE
+j10_3d_click DOUBLE
+j10_3d_conver DOUBLE
+j10_3d_conver_x_ctcvr DOUBLE
+j10_3d_conver_x_log_view DOUBLE
+j10_3h_cvr DOUBLE
+j10_3h_ecpm DOUBLE
+j11_3d_click DOUBLE
+j11_3d_conver DOUBLE
+j11_3d_conver_x_ctcvr DOUBLE
+j11_3d_conver_x_log_view DOUBLE
+j11_3d_ctcvr DOUBLE
+j11_3d_ctr DOUBLE
+j11_3d_cvr DOUBLE
+j11_3d_ecpm DOUBLE
+j3_3d_conver_x_log_view DOUBLE
+j3_3d_ctcvr DOUBLE
+j3_3d_ctr DOUBLE
+j3_3d_cvr DOUBLE
+j3_3d_ecpm DOUBLE
+j10_3h_conver DOUBLE
+j10_3h_conver_x_ctcvr DOUBLE
+j10_3h_conver_x_log_view DOUBLE
+j10_3h_ctcvr DOUBLE
+j10_3h_ctr DOUBLE
+j1_3d_cvr DOUBLE
+j1_3d_ecpm DOUBLE
+j1_3h_click DOUBLE
+j1_3h_conver DOUBLE
+j1_3h_conver_x_ctcvr DOUBLE
+j2_3d_click DOUBLE
+j2_3d_conver DOUBLE
+j2_3d_conver_x_ctcvr DOUBLE
+j2_3d_conver_x_log_view DOUBLE
+j2_3h_conver DOUBLE
+j2_3h_conver_x_ctcvr DOUBLE
+j2_3h_conver_x_log_view DOUBLE
+j2_3h_ctcvr DOUBLE
+j2_3h_ctr DOUBLE
+j6_1d_ctr DOUBLE
+j6_1d_cvr DOUBLE
+j6_1d_ecpm DOUBLE
+j6_1h_click DOUBLE
+j4_3h_conver_x_log_view DOUBLE
+j4_3h_ctcvr DOUBLE
+j4_3h_ctr DOUBLE
+j4_3h_cvr DOUBLE
+j4_3h_ecpm DOUBLE
+j6_2h_conver_x_log_view DOUBLE
+j6_2h_ctcvr DOUBLE
+j6_2h_ctr DOUBLE
+j6_2h_cvr DOUBLE
+j6_2h_ecpm DOUBLE
+j5_3d_click DOUBLE
+j5_3d_conver DOUBLE
+j5_3d_conver_x_ctcvr DOUBLE
+j5_3d_conver_x_log_view DOUBLE
+j5_3d_ctcvr DOUBLE
+j5_3h_conver DOUBLE
+j5_3h_conver_x_ctcvr DOUBLE
+j5_3h_conver_x_log_view DOUBLE
+j5_3h_ctcvr DOUBLE
+j5_3h_ctr DOUBLE
+j6_3d_click DOUBLE
+j6_3d_conver DOUBLE
+j6_3d_conver_x_ctcvr DOUBLE
+j6_3d_conver_x_log_view DOUBLE
+j6_3d_ctcvr DOUBLE
+j4_3d_conver DOUBLE
+j4_3d_conver_x_ctcvr DOUBLE
+j4_3d_conver_x_log_view DOUBLE
+j4_3d_ctcvr DOUBLE
+j4_3d_ctr DOUBLE
+j6_3d_ctr DOUBLE
+j6_3d_cvr DOUBLE
+j6_3d_ecpm DOUBLE
+j6_3h_click DOUBLE
+j6_3h_conver DOUBLE
+j6_12h_conver_x_log_view DOUBLE
+j6_12h_ctcvr DOUBLE
+j6_12h_ctr DOUBLE
+j6_12h_cvr DOUBLE
+j6_12h_ecpm DOUBLE
+j4_3d_cvr DOUBLE
+j4_3d_ecpm DOUBLE
+j4_3h_click DOUBLE
+j4_3h_conver DOUBLE
+j4_3h_conver_x_ctcvr DOUBLE
+j6_1h_conver DOUBLE
+j6_1h_conver_x_ctcvr DOUBLE
+j6_1h_conver_x_log_view DOUBLE
+j6_1h_ctcvr DOUBLE
+j6_1h_ctr DOUBLE
+j3_3h_ctr DOUBLE
+j3_3h_cvr DOUBLE
+j3_3h_ecpm DOUBLE
+j4_3d_click DOUBLE
+j5_3d_ctr DOUBLE
+j5_3d_cvr DOUBLE
+j5_3d_ecpm DOUBLE
+j5_3h_click DOUBLE
+j6_1h_cvr DOUBLE
+j6_1h_ecpm DOUBLE
+j6_2h_click DOUBLE
+j6_2h_conver DOUBLE
+j6_2h_conver_x_ctcvr DOUBLE
+j5_3h_cvr DOUBLE
+j5_3h_ecpm DOUBLE
+j6_12h_click DOUBLE
+j6_12h_conver DOUBLE
+j6_12h_conver_x_ctcvr DOUBLE
+j6_1d_click DOUBLE
+j6_1d_conver DOUBLE
+j6_1d_conver_x_ctcvr DOUBLE
+j6_1d_conver_x_log_view DOUBLE
+j6_1d_ctcvr DOUBLE
+j8_3d_conver_x_ctcvr DOUBLE
+j8_3d_conver_x_log_view DOUBLE
+j8_3d_ctcvr DOUBLE
+j8_3d_ctr DOUBLE
+j8_3d_cvr DOUBLE
+j8_3h_ctcvr DOUBLE
+j8_3h_ctr DOUBLE
+j8_3h_cvr DOUBLE
+j8_3h_ecpm DOUBLE
+j9_3d_click DOUBLE
+j6_today_click DOUBLE
+j6_today_conver DOUBLE
+j6_today_conver_x_ctcvr DOUBLE
+j6_today_conver_x_log_view DOUBLE
+j6_today_ctcvr DOUBLE
+j6_today_ctr DOUBLE
+j6_today_cvr DOUBLE
+j6_today_ecpm DOUBLE
+j6_yesterday_click DOUBLE
+j6_yesterday_conver DOUBLE
+j6_yesterday_ecpm DOUBLE
+j7_3d_click DOUBLE
+j7_3d_conver DOUBLE
+j7_3d_conver_x_ctcvr DOUBLE
+j7_3d_conver_x_log_view DOUBLE
+j6_6h_conver_x_log_view DOUBLE
+j6_6h_ctcvr DOUBLE
+j6_6h_ctr DOUBLE
+j6_6h_cvr DOUBLE
+j6_6h_ecpm DOUBLE
+j8_3d_ecpm DOUBLE
+j8_3h_click DOUBLE
+j8_3h_conver DOUBLE
+j8_3h_conver_x_ctcvr DOUBLE
+j8_3h_conver_x_log_view DOUBLE
+j9_3h_conver_x_log_view DOUBLE
+j9_3h_ctcvr DOUBLE
+j9_3h_ctr DOUBLE
+j9_3h_cvr DOUBLE
+j9_3h_ecpm DOUBLE
+j7_3h_ctr DOUBLE
+j7_3h_cvr DOUBLE
+j7_3h_ecpm DOUBLE
+j8_3d_click DOUBLE
+j8_3d_conver DOUBLE
+j9_3d_conver DOUBLE
+j9_3d_conver_x_ctcvr DOUBLE
+j9_3d_conver_x_log_view DOUBLE
+j9_3d_ctcvr DOUBLE
+j9_3d_ctr DOUBLE
+j9_3d_cvr DOUBLE
+j9_3d_ecpm DOUBLE
+j9_3h_click DOUBLE
+j9_3h_conver DOUBLE
+j9_3h_conver_x_ctcvr DOUBLE
+j7_3h_conver DOUBLE
+j7_3h_conver_x_ctcvr DOUBLE
+j7_3h_conver_x_log_view DOUBLE
+j7_3h_ctcvr DOUBLE
+j7_3d_ctcvr DOUBLE
+j7_3d_ctr DOUBLE
+j7_3d_cvr DOUBLE
+j7_3d_ecpm DOUBLE
+j7_3h_click DOUBLE
+j6_yesterday_conver_x_ctcvr DOUBLE
+j6_yesterday_conver_x_log_view DOUBLE
+j6_yesterday_ctcvr DOUBLE
+j6_yesterday_ctr DOUBLE
+j6_yesterday_cvr DOUBLE
+j6_3h_conver_x_ctcvr DOUBLE
+j6_3h_conver_x_log_view DOUBLE
+j6_3h_ctcvr DOUBLE
+j6_3h_ctr DOUBLE
+j6_3h_cvr DOUBLE
+j6_3h_ecpm DOUBLE
+j6_6h_click DOUBLE
+j6_6h_conver DOUBLE
+j6_6h_conver_x_ctcvr DOUBLE
+weight DOUBLE
+brand STRING
+region STRING
+city STRING
+vid BIGINT
+cate1 STRING
+cate2 STRING
+cid BIGINT
+adid BIGINT
+adverid BIGINT
+user_cid_click_list STRING
+user_cid_conver_list STRING
+user_vid_return_tags_2h STRING
+user_vid_return_tags_1d STRING
+user_vid_return_tags_3d STRING
+user_vid_return_tags_7d STRING
+user_vid_return_tags_14d STRING
+ts STRING
+mid STRING
+pqtid STRING
+apptype BIGINT
+hour BIGINT
+hour_quarter BIGINT
+root_source_scene STRING
+root_source_channel STRING
+is_first_layer BIGINT
+title_split STRING
+profession STRING
+user_vid_share_tags_1d STRING
+user_vid_share_tags_14d STRING
+user_vid_return_cate1_14d STRING
+user_vid_return_cate2_14d STRING
+user_vid_share_cate1_14d STRING
+user_vid_share_cate2_14d STRING
+creative_type STRING
+creative_hook_embedding STRING
+creative_why_embedding STRING
+creative_action_embedding STRING
+user_has_conver_1y BIGINT
+user_adverid_view_3d BIGINT
+user_adverid_view_7d BIGINT
+user_adverid_view_30d BIGINT
+user_adverid_click_3d BIGINT
+user_adverid_click_7d BIGINT
+user_adverid_click_30d BIGINT
+user_adverid_conver_3d BIGINT
+user_adverid_conver_7d BIGINT
+user_adverid_conver_30d BIGINT
+user_skuid_view_3d BIGINT
+user_skuid_view_7d BIGINT
+user_skuid_view_30d BIGINT
+user_skuid_click_3d BIGINT
+user_skuid_click_7d BIGINT
+user_skuid_click_30d BIGINT
+user_skuid_conver_3d BIGINT
+user_skuid_conver_7d BIGINT
+user_skuid_conver_30d BIGINT
+is_weekday BIGINT
+day_of_the_week BIGINT
+user_conver_ad_class STRING
+category_name STRING
+user_click_ad_class STRING
+user_view_ad_class STRING
+material_md5 STRING
+user_layer STRING
+user_class STRING
+customer STRING
+landing STRING
+flag BIGINT

+ 292 - 0
deepfm_v13_6.py

@@ -0,0 +1,292 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+# vim:fenc=utf-8
+#
+# Copyright © 2025 StrayWarrior <i@straywarrior.com>
+#
+# Distributed under terms of the MIT license.
+
+"""
+1.删除容易导致偏差的viewall特征
+2.删除分桶不均匀的cpa特征
+3.减少dense特征
+4.增加U-I交叉统计
+5.增加线性部分dense
+6.减少wide部分embedding
+7.减少部分bucket size
+"""
+
+raw_input = open("data_fields_v6.config").readlines()
+input_fields = dict(
+    map(lambda x: (x[0], x[1]),
+        map(lambda x: x.strip().split(' '), raw_input)))
+
+
+def read_features(filename, excludes=None):
+    features = open(filename).readlines()
+    features = [name.strip().lower() for name in features]
+    if excludes:
+        for x in excludes:
+            if x in features:
+                features.remove(x)
+    return features
+
+
+exclude_features = ['viewall', 'cpa']
+
+dense_features = read_features("features_top300_new.config", exclude_features)
+top_dense_features = read_features('features_top50_new.config', exclude_features)
+
+sparse_features = [
+    "cid", "adid", "adverid",
+    "region", "city", "brand",
+    "vid", "cate1", "cate2",
+    "apptype", "hour", "hour_quarter", "root_source_scene", "root_source_channel", "is_first_layer", "title_split",
+    "user_has_conver_1y",
+    "user_adverid_view_3d", "user_adverid_view_7d", "user_adverid_view_30d",
+    "user_adverid_click_3d", "user_adverid_click_7d", "user_adverid_click_30d",
+    "user_adverid_conver_3d", "user_adverid_conver_7d", "user_adverid_conver_30d",
+    "user_skuid_view_3d", "user_skuid_view_7d", "user_skuid_view_30d",
+    "user_skuid_click_3d", "user_skuid_click_7d", "user_skuid_click_30d",
+    "user_skuid_conver_3d", "user_skuid_conver_7d", "user_skuid_conver_30d",
+    "profession", "user_layer", "landing", "flag",
+    # "category_name", "customer"
+]
+tag_features = [
+    "user_vid_return_tags_2h", "user_vid_return_tags_1d", "user_vid_return_tags_3d",
+    "user_vid_return_tags_7d", "user_vid_return_tags_14d"
+]
+seq_features = [
+    "user_cid_click_list", "user_cid_conver_list"
+]
+
+input_type_map = {
+    'BIGINT': 'INT64',
+    'DOUBLE': 'DOUBLE',
+    'STRING': 'STRING'
+}
+
+bucket_size_map = {
+    'adverid': 100000,
+    'region': 1000,
+    'city': 10000,
+    'brand': 10000,
+    'cate1': 10000,
+    'cate2': 10000,
+    'apptype': 1000,
+    'hour': 1000,  # 实际上可以直接指定词表
+    'hour_quarter': 4000,
+    'root_source_scene': 100,
+    'root_source_channel': 1000,
+    'is_first_layer': 100,
+    'user_has_conver_1y': 100,
+    'profession': 500,
+    'category_name': 500,
+    'user_layer': 200,
+    'customer': 3000,
+    'landing': 100,
+    'flag': 50,
+}
+
+print("""train_config {
+  optimizer_config {
+    adam_optimizer {
+      learning_rate {
+        constant_learning_rate {
+          learning_rate: 0.0010
+        }
+      }
+    }
+    use_moving_average: false
+  }
+  optimizer_config {
+    adam_optimizer {
+      learning_rate {
+        constant_learning_rate {
+          learning_rate: 0.0006
+        }
+      }
+    }
+    use_moving_average: false
+  }
+  optimizer_config {
+    adam_optimizer {
+      learning_rate {
+        constant_learning_rate {
+          learning_rate: 0.002
+        }
+      }
+    }
+    use_moving_average: false
+  }
+  num_steps: 200000
+  sync_replicas: true
+  save_checkpoints_steps: 2000
+  log_step_count_steps: 200
+  save_summary_steps: 200
+}
+eval_config {
+  metrics_set {
+    auc {
+    }
+  }
+  eval_online: true
+  eval_interval_secs: 1200
+}
+data_config {
+  batch_size: 512
+  num_epochs: 1
+""")
+
+for name in input_fields:
+    input_type = input_type_map[input_fields[name]]
+    default_spec = ''
+    if name in dense_features:
+        default_spec = '\n    default_val: "0"'
+    print(f"""  input_fields {{
+    input_name: "{name}"
+    input_type: {input_type}{default_spec}
+  }}""")
+    # default_val: "0"
+
+print("""  label_fields: "has_conversion"
+  prefetch_size: 32
+  input_type: OdpsInputV2
+}
+""")
+
+for name in dense_features:
+    print(f"""feature_configs {{
+  input_names: "{name}"
+  feature_type: RawFeature
+  boundaries: [0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1.0]
+  embedding_dim: 6
+}}""")
+
+for name in sparse_features:
+    bucket_size = bucket_size_map.get(name, 1000000)
+    print(f"""feature_configs {{
+  input_names: "{name}"
+  feature_type: IdFeature
+  hash_bucket_size: {bucket_size}
+  embedding_dim: 6
+}}""")
+
+for name in tag_features + seq_features:
+    bucket_size = bucket_size_map.get(name, 1000000)
+    print(f"""feature_configs {{
+  input_names: "{name}"
+  feature_type: TagFeature
+  hash_bucket_size: {bucket_size}
+  embedding_dim: 6
+  separator: ','
+}}""")
+
+
+def wide_and_deep():
+    print("""
+model_config {
+  model_class: "WideAndDeep"
+   feature_groups: {
+    group_name: 'wide'""")
+
+    for name in dense_features + sparse_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: WIDE
+  }
+  feature_groups: {
+    group_name: 'deep'""")
+
+    for name in dense_features + sparse_features + tag_features + seq_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: DEEP
+  }
+  wide_and_deep {
+    wide_output_dim: 8
+
+    dnn {
+      hidden_units: [256, 128, 64]
+    }
+    final_dnn {
+      hidden_units: [64, 32]
+    }
+    l2_regularization: 1e-5
+  }
+  embedding_regularization: 1e-6
+}""")
+
+
+def deep_fm():
+    print("""
+model_config {
+  model_class: "DeepFM"
+   feature_groups: {
+    group_name: 'wide'""")
+
+    for name in dense_features + sparse_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: WIDE
+  }
+  feature_groups: {
+    group_name: 'deep'""")
+
+    for name in top_dense_features + sparse_features + tag_features + seq_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: DEEP
+  }
+  deepfm {
+    wide_output_dim: 2
+
+    dnn {
+      hidden_units: [256, 128, 64]
+    }
+
+    final_dnn {
+      hidden_units: [64, 32]
+    }
+    l2_regularization: 1e-5
+  }
+  embedding_regularization: 1e-6
+}""")
+
+
+def fm():
+    print("""
+model_config {
+  model_class: "FM"
+   feature_groups: {
+    group_name: 'wide'""")
+
+    for name in dense_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: WIDE
+  }
+  feature_groups: {
+    group_name: 'deep'""")
+
+    for name in dense_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: DEEP
+  }
+  fm {
+  }
+  embedding_regularization: 1e-5
+}""")
+
+
+def config_export():
+    print("""
+export_config {
+  exporter_type: "final"
+}
+""")
+
+
+deep_fm()
+config_export()

+ 374 - 0
features_top300_new.config

@@ -0,0 +1,374 @@
+viewAll
+ctr_all
+cpa
+ecpm_all
+e1_tags_14d_maxscore
+incomeAll
+e2_tags_14d_avgscore
+e2_tags_14d_maxscore
+e1_tags_14d_avgscore
+d1_feature_7d_ctr
+e2_tags_7d_maxscore
+timediff_view
+b4_7d_ecpm
+b3_7d_ctr
+b5_7d_ctcvr
+b4_7d_ctcvr
+e2_tags_7d_avgscore
+b3_1d_ctcvr
+b3_7d_ecpm
+d1_feature_7d_ecpm
+clickAll
+e2_tags_3d_avgscore
+b3_3d_ctcvr
+b2_7d_ctcvr
+converAll
+e1_tags_3d_maxscore
+e1_tags_7d_maxscore
+e2_tags_3d_maxscore
+actionstatic_view
+b5_7d_click
+d1_feature_7d_ctcvr
+ctcvr_all
+vid_rank_ctr_7d
+b4_1d_ctcvr
+b5_1d_click
+b2_3h_cvr
+b5_1d_ctcvr
+b3_7d_ctcvr
+b5_3d_click
+b4_1d_ctr
+e1_tags_3d_avgscore
+b4_3h_ctr
+b2_3h_ctcvr
+b3_3d_ctr
+b5_7d_cvr
+e1_tags_7d_avgscore
+d1_feature_3d_ctr
+b4_7d_cvr
+b2_7d_click
+b4_3d_ecpm
+cvr_all
+b3_3d_ecpm
+b4_7d_ctr
+d1_feature_3d_ecpm
+b4_3d_ctcvr
+b5_7d_ctr
+vid_rank_ctr_14d
+b4_7d_click
+d1_feature_3d_ctcvr
+b2_7d_cvr
+d1_feature_1d_ctr
+b8_1d_ctr
+d1_feature_3h_ctr
+b2_7d_conver
+d1_feature_12h_ecpm
+b3_1d_ecpm
+b4_1d_click
+b5_1d_ctr
+b4_3d_click
+b4_1d_ecpm
+b3_7d_cvr
+b7_7d_ctr
+b4_3h_ctcvr
+b5_7d_ecpm
+b8_7d_ctr
+b3_3h_ctr
+b2_3d_click
+b2_7d_ecpm
+actionstatic_ctcvr
+d1_feature_7d_conver
+b2_3h_conver_x_ctcvr
+b4_3h_ecpm
+b5_3d_ctr
+b5_1d_ecpm
+d1_feature_12h_ctr
+b3_6h_ctcvr
+d1_feature_3h_ecpm
+b3_3d_click
+vid_rank_ctcvr_7d
+b2_12h_cvr
+b2_6h_ctr
+b2_7d_ctr
+b5_7d_conver_x_log_view
+b3_12h_ctcvr
+b5_12h_click
+b2_3d_ecpm
+b3_3h_ecpm
+b3_3d_cvr
+d1_feature_1d_ecpm
+b3_3h_ctcvr
+b2_12h_ecpm
+b2_3d_ctr
+b5_3h_ecpm
+vid_rank_ctr_3d
+b2_3h_ctr
+b2_3h_conver_x_log_view
+b2_1d_conver
+b3_12h_ctr
+b5_3h_ctcvr
+b3_1d_click
+b3_7d_click
+b4_12h_ctr
+b4_6h_ctr
+b5_12h_ecpm
+vid_rank_ctr_1d
+b2_1d_click
+b3_12h_ecpm
+b6_7d_ecpm
+b5_12h_ctr
+b3_1d_ctr
+b7_7d_ecpm
+b2_12h_ctcvr
+b2_12h_click
+vid_rank_ecpm_3d
+b8_3d_click
+b2_1d_cvr
+b3_12h_click
+b5_7d_conver
+b2_7d_conver_x_log_view
+d1_feature_3h_conver
+vid_rank_ecpm_7d
+b4_3d_cvr
+b5_3d_ctcvr
+d1_feature_6h_ecpm
+b3_6h_cvr
+b5_6h_cvr
+b2_6h_ecpm
+b8_1d_ctcvr
+d1_feature_1d_ctcvr
+d1_feature_3d_conver
+b3_6h_ecpm
+b4_3h_conver_x_ctcvr
+b5_6h_ecpm
+b8_3d_cvr
+b2_6h_cvr
+b2_12h_ctr
+b7_7d_click
+vid_rank_ctcvr_3d
+b4_3d_ctr
+b5_12h_ctcvr
+b5_7d_conver_x_ctcvr
+b8_3h_ctcvr
+b8_3d_ctr
+d1_feature_6h_ctr
+b2_3h_ecpm
+b3_1d_cvr
+b4_12h_click
+b5_1d_cvr
+b6_7d_cvr
+b2_1d_ctr
+b4_6h_ctcvr
+b5_6h_ctcvr
+b8_1d_click
+b3_6h_ctr
+vid_rank_ctcvr_14d
+b3_12h_cvr
+b5_3d_cvr
+b8_7d_click
+b2_3h_click
+b2_12h_conver_x_ctcvr
+b8_3h_ctr
+b8_12h_ctr
+d1_feature_3h_ctcvr
+b2_6h_ctcvr
+b3_1d_conver_x_ctcvr
+b3_3d_conver_x_log_view
+d1_feature_12h_conver
+vid_rank_ecpm_1d
+vid_rank_ecpm_14d
+b2_6h_click
+b2_3d_conver
+b5_3h_cvr
+b8_6h_ctr
+b8_3d_ecpm
+b3_1d_conver
+b4_6h_cvr
+b4_6h_ecpm
+b5_1d_conver_x_ctcvr
+b8_7d_ecpm
+b2_3d_cvr
+b8_7d_cvr
+b3_1d_conver_x_log_view
+b4_1d_cvr
+b5_3d_conver_x_log_view
+b8_12h_ecpm
+b6_7d_ctr
+b2_1d_conver_x_log_view
+b2_7d_conver_x_ctcvr
+b3_3h_cvr
+b5_6h_ctr
+b8_6h_ctcvr
+vid_rank_ctcvr_1d
+b2_3h_conver
+b8_12h_click
+b8_3d_ctcvr
+b4_12h_ecpm
+actionstatic_ctr
+d1_feature_1d_conver
+b2_6h_conver_x_ctcvr
+b3_3h_click
+b4_12h_ctcvr
+b4_12h_cvr
+b4_1d_conver_x_ctcvr
+b5_12h_cvr
+b2_12h_conver_x_log_view
+b5_1d_conver_x_log_view
+b8_7d_ctcvr
+b6_7d_ctcvr
+d1_feature_6h_ctcvr
+b4_3h_cvr
+b5_3h_ctr
+b2_1d_ctcvr
+b5_1d_conver
+b7_7d_cvr
+b4_6h_click
+b5_3d_ecpm
+d1_feature_7d_cvr
+b2_1d_ecpm
+b2_3d_conver_x_log_view
+b4_3h_click
+b8_3h_ecpm
+d1_feature_12h_ctcvr
+b2_1d_conver_x_ctcvr
+b4_6h_conver_x_ctcvr
+b6_7d_click
+b3_6h_click
+b5_3h_click
+b8_3h_cvr
+b7_14d_ctr
+b2_6h_conver
+b2_3d_conver_x_ctcvr
+b5_3d_conver_x_ctcvr
+b8_12h_conver_x_ctcvr
+b8_1d_ecpm
+b8_1d_conver_x_ctcvr
+b2_3d_ctcvr
+b3_6h_conver_x_ctcvr
+b4_12h_conver_x_ctcvr
+b4_7d_conver_x_ctcvr
+b8_3d_conver_x_ctcvr
+b7_7d_ctcvr
+d1_feature_12h_cvr
+b3_3h_conver_x_ctcvr
+b4_3d_conver_x_ctcvr
+b5_3d_conver
+b8_3h_click
+b8_1d_cvr
+d1_feature_3h_cvr
+b3_7d_conver_x_ctcvr
+b5_12h_conver
+b8_3d_conver
+b3_3d_conver_x_ctcvr
+b8_6h_cvr
+b8_12h_ctcvr
+timediff_conver
+b2_12h_conver
+b4_12h_conver_x_log_view
+b5_12h_conver_x_ctcvr
+b8_7d_conver_x_ctcvr
+b3_3h_conver
+b3_3d_conver
+b5_3h_conver_x_ctcvr
+b8_12h_cvr
+b8_7d_conver_x_log_view
+b3_12h_conver
+b4_3h_conver_x_log_view
+b4_7d_conver_x_log_view
+b5_6h_click
+b8_1d_conver_x_log_view
+b4_1d_conver_x_log_view
+b6_7d_conver
+b3_7d_conver
+b8_1d_conver
+actionstatic_click
+b3_12h_conver_x_ctcvr
+b8_6h_conver_x_ctcvr
+b6_7d_conver_x_log_view
+b4_3d_conver_x_log_view
+b8_3h_conver_x_ctcvr
+b8_6h_ecpm
+b7_7d_conver_x_log_view
+b7_7d_conver_x_ctcvr
+d1_feature_1d_cvr
+b3_7d_conver_x_log_view
+b4_7d_conver
+b5_3h_conver_x_log_view
+b5_6h_conver_x_log_view
+b8_6h_click
+b2_6h_conver_x_log_view
+b4_6h_conver_x_log_view
+j6_3d_click
+j6_3d_conver
+j6_3d_conver_x_ctcvr
+j6_3d_conver_x_log_view
+j6_3d_ctcvr
+j6_3d_ctr
+j6_3d_cvr
+j6_3d_ecpm
+j6_3h_click
+j6_3h_conver
+j6_6h_ctr
+j6_6h_ecpm
+j6_12h_conver_x_log_view
+j6_12h_ctcvr
+j6_12h_ctr
+j6_12h_cvr
+j6_12h_ecpm
+j6_12h_click
+j6_12h_conver
+j6_12h_conver_x_ctcvr
+j6_3h_conver_x_ctcvr
+j6_3h_conver_x_log_view
+j6_3h_ctcvr
+j6_3h_ctr
+j6_3h_cvr
+j6_3h_ecpm
+j1_3d_conver_x_log_view
+j1_3d_conver
+j1_3d_ctcvr
+j1_3d_ctr
+j2_3d_conver_x_log_view
+j2_3d_conver
+j2_3d_ctcvr
+j2_3d_ctr
+j3_3h_conver_x_log_view
+j3_3h_conver
+j3_3h_ctcvr
+j3_3h_ctr
+j3_3d_conver_x_log_view
+j3_3d_conver
+j3_3d_ctcvr
+j3_3d_ctr
+j4_3d_conver_x_log_view
+j4_3d_conver
+j4_3d_ctcvr
+j4_3d_ctr
+j5_3d_conver_x_log_view
+j5_3d_conver
+j5_3d_ctcvr
+j5_3d_ctr
+j7_3d_conver_x_log_view
+j7_3d_conver
+j7_3d_ctcvr
+j7_3d_ctr
+j8_3d_conver_x_log_view
+j8_3d_conver
+j8_3d_ctcvr
+j8_3d_ctr
+j9_3h_conver_x_log_view
+j9_3h_conver
+j9_3h_ctcvr
+j9_3h_ctr
+j9_3d_conver_x_log_view
+j9_3d_conver
+j9_3d_ctcvr
+j9_3d_ctr
+j10_3d_conver_x_log_view
+j10_3d_conver
+j10_3d_ctcvr
+j10_3d_ctr
+j11_3d_conver_x_log_view
+j11_3d_conver
+j11_3d_ctcvr
+j11_3d_ctr

+ 58 - 0
features_top50_new.config

@@ -0,0 +1,58 @@
+viewAll
+ctr_all
+cpa
+ecpm_all
+e1_tags_14d_maxscore
+incomeAll
+e2_tags_14d_avgscore
+e2_tags_14d_maxscore
+e1_tags_14d_avgscore
+d1_feature_7d_ctr
+e2_tags_7d_maxscore
+timediff_view
+b4_7d_ecpm
+b3_7d_ctr
+b5_7d_ctcvr
+b4_7d_ctcvr
+e2_tags_7d_avgscore
+b3_1d_ctcvr
+b3_7d_ecpm
+d1_feature_7d_ecpm
+clickAll
+e2_tags_3d_avgscore
+b3_3d_ctcvr
+b2_7d_ctcvr
+converAll
+e1_tags_3d_maxscore
+e1_tags_7d_maxscore
+e2_tags_3d_maxscore
+actionstatic_view
+b5_7d_click
+d1_feature_7d_ctcvr
+ctcvr_all
+vid_rank_ctr_7d
+b4_1d_ctcvr
+b5_1d_click
+b2_3h_cvr
+b5_1d_ctcvr
+b3_7d_ctcvr
+b5_3d_click
+b4_1d_ctr
+e1_tags_3d_avgscore
+b4_3h_ctr
+b2_3h_ctcvr
+b3_3d_ctr
+b5_7d_cvr
+e1_tags_7d_avgscore
+d1_feature_3d_ctr
+b4_7d_cvr
+b2_7d_click
+b4_3d_ecpm
+j3_3h_ctr
+j3_3h_ctcvr
+j6_3h_ctr
+j6_6h_ctr
+j6_3h_ctcvr
+j6_12h_ctcvr
+j6_3d_ctcvr
+j6_6h_ecpm

+ 292 - 0
widedeep_v13_6.py

@@ -0,0 +1,292 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+# vim:fenc=utf-8
+#
+# Copyright © 2025 StrayWarrior <i@straywarrior.com>
+#
+# Distributed under terms of the MIT license.
+
+"""
+1.删除容易导致偏差的viewall特征
+2.删除分桶不均匀的cpa特征
+3.减少dense特征
+4.增加U-I交叉统计
+5.增加线性部分dense
+6.减少wide部分embedding
+7.减少部分bucket size
+"""
+
+raw_input = open("data_fields_v6.config").readlines()
+input_fields = dict(
+    map(lambda x: (x[0], x[1]),
+        map(lambda x: x.strip().split(' '), raw_input)))
+
+
+def read_features(filename, excludes=None):
+    features = open(filename).readlines()
+    features = [name.strip().lower() for name in features]
+    if excludes:
+        for x in excludes:
+            if x in features:
+                features.remove(x)
+    return features
+
+
+exclude_features = ['viewall', 'cpa']
+
+dense_features = read_features("features_top300_new.config", exclude_features)
+top_dense_features = read_features('features_top50_new.config', exclude_features)
+
+sparse_features = [
+    "cid", "adid", "adverid",
+    "region", "city", "brand",
+    "vid", "cate1", "cate2",
+    "apptype", "hour", "hour_quarter", "root_source_scene", "root_source_channel", "is_first_layer", "title_split",
+    "user_has_conver_1y",
+    "user_adverid_view_3d", "user_adverid_view_7d", "user_adverid_view_30d",
+    "user_adverid_click_3d", "user_adverid_click_7d", "user_adverid_click_30d",
+    "user_adverid_conver_3d", "user_adverid_conver_7d", "user_adverid_conver_30d",
+    "user_skuid_view_3d", "user_skuid_view_7d", "user_skuid_view_30d",
+    "user_skuid_click_3d", "user_skuid_click_7d", "user_skuid_click_30d",
+    "user_skuid_conver_3d", "user_skuid_conver_7d", "user_skuid_conver_30d",
+    "profession", "user_layer", "landing", "flag",
+    # "category_name", "customer"
+]
+tag_features = [
+    "user_vid_return_tags_2h", "user_vid_return_tags_1d", "user_vid_return_tags_3d",
+    "user_vid_return_tags_7d", "user_vid_return_tags_14d"
+]
+seq_features = [
+    "user_cid_click_list", "user_cid_conver_list"
+]
+
+input_type_map = {
+    'BIGINT': 'INT64',
+    'DOUBLE': 'DOUBLE',
+    'STRING': 'STRING'
+}
+
+bucket_size_map = {
+    'adverid': 100000,
+    'region': 1000,
+    'city': 10000,
+    'brand': 10000,
+    'cate1': 10000,
+    'cate2': 10000,
+    'apptype': 1000,
+    'hour': 1000,  # 实际上可以直接指定词表
+    'hour_quarter': 4000,
+    'root_source_scene': 100,
+    'root_source_channel': 1000,
+    'is_first_layer': 100,
+    'user_has_conver_1y': 100,
+    'profession': 500,
+    'category_name': 500,
+    'user_layer': 200,
+    'customer': 3000,
+    'landing': 100,
+    'flag': 50,
+}
+
+print("""train_config {
+  optimizer_config {
+    adam_optimizer {
+      learning_rate {
+        constant_learning_rate {
+          learning_rate: 0.0010
+        }
+      }
+    }
+    use_moving_average: false
+  }
+  optimizer_config {
+    adam_optimizer {
+      learning_rate {
+        constant_learning_rate {
+          learning_rate: 0.0006
+        }
+      }
+    }
+    use_moving_average: false
+  }
+  optimizer_config {
+    adam_optimizer {
+      learning_rate {
+        constant_learning_rate {
+          learning_rate: 0.002
+        }
+      }
+    }
+    use_moving_average: false
+  }
+  num_steps: 200000
+  sync_replicas: true
+  save_checkpoints_steps: 1000
+  log_step_count_steps: 200
+  save_summary_steps: 200
+}
+eval_config {
+  metrics_set {
+    auc {
+    }
+  }
+  eval_online: true
+  eval_interval_secs: 1200
+}
+data_config {
+  batch_size: 512
+  num_epochs: 1
+""")
+
+for name in input_fields:
+    input_type = input_type_map[input_fields[name]]
+    default_spec = ''
+    if name in dense_features:
+        default_spec = '\n    default_val: "0"'
+    print(f"""  input_fields {{
+    input_name: "{name}"
+    input_type: {input_type}{default_spec}
+  }}""")
+    # default_val: "0"
+
+print("""  label_fields: "has_conversion"
+  prefetch_size: 32
+  input_type: OdpsInputV2
+}
+""")
+
+for name in dense_features:
+    print(f"""feature_configs {{
+  input_names: "{name}"
+  feature_type: RawFeature
+  boundaries: [0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1.0]
+  embedding_dim: 6
+}}""")
+
+for name in sparse_features:
+    bucket_size = bucket_size_map.get(name, 1000000)
+    print(f"""feature_configs {{
+  input_names: "{name}"
+  feature_type: IdFeature
+  hash_bucket_size: {bucket_size}
+  embedding_dim: 6
+}}""")
+
+for name in tag_features + seq_features:
+    bucket_size = bucket_size_map.get(name, 1000000)
+    print(f"""feature_configs {{
+  input_names: "{name}"
+  feature_type: TagFeature
+  hash_bucket_size: {bucket_size}
+  embedding_dim: 6
+  separator: ','
+}}""")
+
+
+def wide_and_deep():
+    print("""
+model_config {
+  model_class: "WideAndDeep"
+   feature_groups: {
+    group_name: 'wide'""")
+
+    for name in dense_features + sparse_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: WIDE
+  }
+  feature_groups: {
+    group_name: 'deep'""")
+
+    for name in dense_features + sparse_features + tag_features + seq_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: DEEP
+  }
+  wide_and_deep {
+    wide_output_dim: 8
+
+    dnn {
+      hidden_units: [256, 128, 64]
+    }
+    final_dnn {
+      hidden_units: [64, 32]
+    }
+    l2_regularization: 1e-5
+  }
+  embedding_regularization: 1e-6
+}""")
+
+
+def deep_fm():
+    print("""
+model_config {
+  model_class: "DeepFM"
+   feature_groups: {
+    group_name: 'wide'""")
+
+    for name in dense_features + sparse_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: WIDE
+  }
+  feature_groups: {
+    group_name: 'deep'""")
+
+    for name in top_dense_features + sparse_features + tag_features + seq_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: DEEP
+  }
+  deepfm {
+    wide_output_dim: 2
+
+    dnn {
+      hidden_units: [256, 128, 64]
+    }
+
+    final_dnn {
+      hidden_units: [64, 32]
+    }
+    l2_regularization: 1e-5
+  }
+  embedding_regularization: 1e-6
+}""")
+
+
+def fm():
+    print("""
+model_config {
+  model_class: "FM"
+   feature_groups: {
+    group_name: 'wide'""")
+
+    for name in dense_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: WIDE
+  }
+  feature_groups: {
+    group_name: 'deep'""")
+
+    for name in dense_features:
+        print(f"""    feature_names: '{name}'""")
+
+    print("""    wide_deep: DEEP
+  }
+  fm {
+  }
+  embedding_regularization: 1e-5
+}""")
+
+
+def config_export():
+    print("""
+export_config {
+  exporter_type: "final"
+}
+""")
+
+
+deep_fm()
+config_export()