tensorflow wide and deep模型
2018-07-28 本文已影响0人
空空格格
论文地址:https://arxiv.org/abs/1606.07792
模型核心思想: 结合线性模型的记忆能力(memorization)和 DNN 模型的泛化能力(generalization),在训练过程中同时优化 2 个模型的参数,从而达到整体模型的预测能力最优.
模型输入:
wide侧:离散特征
deep侧:连续特征 + 离散特征
模型结构:
wdl.png模型输出:
output.png代码详解
tensorflow封装实现:
deep侧 :
embedding层 + 两层隐层 + 输出
wide侧:
使用embedding实现logistic回归(离散特征被映射为1维的数字)
源码解析:
deep侧embedding层将离散特征做embedding以后与连续特征concat作为神经元的输出
deep_embedding.pngdeep侧fully全连接层
deep_fullyconnected.pngdeep侧输出层
deep_logits.pngwide侧离散特征embedding后相加作为logits
wdl_embedding.pngweighted_sum_from_feature_columns函数中定义了lookuptable,利用传入的sparse_id去获得embedding以后的输出值
weighted_sum_from_feature_columns.png结果:
deep + wide
特征处理:
离散的特征通过sparse column with hash bucket将整数转换成对应的字符串表示形式,用字符串计算哈希值然后取模,转换后的特征值是0到hash_bucket_size的一个整数,再根据embedding_lookup_table转换成对应的embedding值
cross
本文遵守知识共享协议:署名-非商业性使用-相同方式共享 (BY-NC-SA)及简书协议
转载请注明:作者空空格格,首发简书 Jianshu.com