Skip to content

Latest commit

 

History

History
153 lines (136 loc) · 4.13 KB

dbmtl.md

File metadata and controls

153 lines (136 loc) · 4.13 KB

DBMTL

简介

DBMTL构建了多个目标之间的贝叶斯网络,显式建模了多个目标之间可能存在的因果关系,通过对不同任务间的贝叶斯关系来同时优化场景中的多个指标。 dbmtl.png

底层的shared layer和specific layer是通过hard parameter sharing方式来人工配置的,而google的MMoE是基于soft parameter sharing来实现不同任务底层特征和网络共享,并在Youtube场景中取得了不错的效果。因此DBMTL同样支持将shared layer和specific layer模块替换成MMoE模块,即通过task gate的方式在多组expert参数中加权组合出对应task的feature。

dbmtl_mmoe.png

配置说明

DBMTL

model_config {
    feature_groups {
        group_name: "all"
        feature_names: "user_id"
        feature_names: "cms_segid"
        ...
        feature_names: "price"
        group_type: DEEP
    }
    dbmtl {
        bottom_mlp {
            hidden_units: [1024, 512, 256]
        }
        task_towers {
            tower_name: "ctr"
            label_name: "clk"
            mlp {
                hidden_units: [256, 128, 64]
            }
            metrics {
                auc {}
            }
            losses {
                binary_cross_entropy {}
            }
        }
        task_towers {
            tower_name: "cvr"
            label_name: "buy"
            mlp {
                hidden_units: [256, 128, 64]
            }
            metrics {
                auc {
                    thresholds: 1000
                }
            }
            losses {
                binary_cross_entropy {}
            }
            relation_tower_names: "ctr"
            relation_mlp {
                hidden_units: [256, 128, 64]
            }
        }
    }
}
  • feature_groups: 配置一个名为'all'的feature_group。
  • dbmtl: dbmtl相关的参数
    • bottom_mlp: 底层MLP参数
      • hidden_units: mlp每一层的channel数目,即神经元的数目
    • task_towers 根据任务数配置task_towers
      • tower_name: TaskTower名
      • label_name: tower对应的label名
      • mlp: TaskTower的MLP参数配置
      • relation_tower_names: 上游关联Tower名
      • relation_mlp: 关联Tower融合的MLP参数配置
      • losses: 任务损失函数配置
      • metrics: 任务评估指标配置

DBMTL+MMOE

model_config {
    feature_groups {
        group_name: "all"
        feature_names: "user_id"
        feature_names: "cms_segid"
        ...
        feature_names: "price"
        group_type: DEEP
    }
    dbmtl {
        bottom_mlp {
            hidden_units: [1024, 512, 256]
        }
        expert_mlp {
            hidden_units: [512, 256, 128]
        }
        num_expert: 3
        task_towers {
            tower_name: "ctr"
            label_name: "clk"
            mlp {
                hidden_units: [256, 128, 64]
            }
            metrics {
                auc {}
            }
            losses {
                binary_cross_entropy {}
            }
        }
        task_towers {
            tower_name: "cvr"
            label_name: "buy"
            mlp {
                hidden_units: [256, 128, 64]
            }
            metrics {
                auc {
                    thresholds: 1000
                }
            }
            losses {
                binary_cross_entropy {}
            }
            relation_tower_names: "ctr"
            relation_mlp {
                hidden_units: [256, 128, 64]
            }
        }
    }
}
  • dbmtl: dbmtl相关的参数
    • expert_mlp: MMOE的专家MLP配置
      • hidden_units: mlp每一层的channel数目,即神经元的数目
    • expert_num: 专家DNN的数目
    • 其余与dbmtl一致

模型输出

DBMTL模型每个塔的输出名为:"logits_" / "probs_" / "y_" + tower_name 其中,logits/probs/y对应: sigmoid之前的值/概率/回归模型的预测值 DBMTL模型每个塔的指标为:指标名+ "_" + tower_name

示例配置

dbmtl_taobao.config

参考论文

DBMTL