MaskNet提出了一种instance-guided mask方法,该方法在DNN中的特征嵌入层和前馈层同时使用element-wise product。instance-guided mask包含全局上下文信息,动态地融入到特征嵌入层和前馈层,突出重要的特征。
model_config {
model_name: 'MaskNet'
model_class: 'RankModel'
feature_groups: {
group_name: 'all'
feature_names: 'user_id'
feature_names: 'movie_id'
feature_names: 'job_id'
feature_names: 'age'
feature_names: 'gender'
feature_names: 'year'
feature_names: 'genres'
wide_deep: DEEP
}
backbone {
blocks {
name: "mask_net"
inputs {
feature_group_name: "all"
}
keras_layer {
class_name: 'MaskNet'
masknet {
mask_blocks {
aggregation_size: 512
output_size: 256
}
mask_blocks {
aggregation_size: 512
output_size: 256
}
mask_blocks {
aggregation_size: 512
output_size: 256
}
mlp {
hidden_units: [512, 256]
}
}
}
}
concat_blocks: ['mask_net']
}
model_params {
}
embedding_regularization: 1e-4
}
-
model_name: 任意自定义字符串,仅有注释作用
-
model_class: 'RankModel', 不需要修改, 通过组件化方式搭建的单目标排序模型都叫这个名字
-
feature_groups: 配置一个名为'all'的feature_group。
-
backbone: 通过组件化的方式搭建的主干网络,参考文档
- blocks: 由多个
组件块
组成的一个有向无环图(DAG),框架负责按照DAG的拓扑排序执行个组件块
关联的代码逻辑,构建TF Graph的一个子图 - name/inputs: 每个
block
有一个唯一的名字(name),并且有一个或多个输入(inputs)和输出 - keras_layer: 加载由
class_name
指定的自定义或系统内置的keras layer,执行一段代码逻辑;参考文档 - masknet: MaskNet模型的参数,详见参考文档
- concat_blocks: DAG的输出节点由
concat_blocks
配置项定义,如果不配置concat_blocks
,框架会自动拼接DAG的所有叶子节点并输出。
- blocks: 由多个
-
model_params:
- l2_regularization: (可选) 对DNN参数的regularization, 减少overfit
-
embedding_regularization: 对embedding部分加regularization, 减少overfit