美文网首页推荐系统修行之路
实战_DCN模型在广告场景排序应用

实战_DCN模型在广告场景排序应用

作者: Nefelibatas | 来源:发表于2022-02-11 13:30 被阅读0次

    DeepCross的基础结构

    结构

    image-20220124191945941.png

    Deep network即DNN,最重要的是Cross部分

    Dense feature: 连续值如点击率直接作为一维向量拼接

    Spares feature:离散值如性别,通过embedding层转为对应的embedding向量

    如下图,假设Spares f1、f2、放都为8维,到cancat拼接层则为3*8+1densef1,最终产出25维的embedding输入向量。

    image-20220124192021150.png

    DNN部分:

    以上述25维embedding输入为例,h1对应每个x,即有25个x

    [batch,128] * W[128,64] +b[64]= [ batch,64 ]

    [batch,64] * W[ 64,32 ] +b[32] = [ batch,32 ]

    [batch,32] * W[ 32,16 ] +b[16] = [ batch,16 ]

    最终输出二维矩阵[ batch,16 ]

    image-20220124192059961.png

    Cross部分:

    特征交叉即两两内积。

    原始特征只有x1, x2,x3这三个,经过交叉后有12个(含原本的3个)。

    image-20220124192202958.png

    如上图,假设x_0为[3,1]的矩阵(x_0是固定值),x`为[1,3]矩阵,两两内积后为[3,3]矩阵。

    此时与w[3,1]内积得到[3,1]矩阵,b是[3,1]矩阵,x是x`的转置即[3,1]矩阵。

    常用双塔模型

    image-20220124192250615.png

    DeepCross的注意事项

    cross层交叉的特征是什么?

    假设人工组装,年龄有100个,性别有3个,组装成103个特征

    FM中则将年龄与性别都转为embedding得到值,然后交叉相乘,最后得到一个新的embedding向量,不会产生多余的参数。

    两种交叉方法:

    • 显性交叉直接内积:容易解释如年龄14的男生

    • 隐性特征交叉:

      • 交叉的是向量中的每一个值,即x1、x2、x3

      • 不可解释性,整体代表但不能单独某个向量值解释。

    image-20220124192343282.png

    参数量为何减少很多?

    w值进行转换。

    权重共享。

    image-20220124192400603.png

    DeepCross的应用场景

    广告、推荐、搜索等排序场景

    特征之间存在相关性

    DCN运用于广告场景中

    数据集说明

    id: 每行样本id

    date:时间

    广告特征
    user_id:用户id
    product:广告id
    campaign_id:活动id
    webpage_id:网页id

    用户特征:静态id
    product_category_id user_group_id:用户群体id
    gender: 性别
    age_level:年龄划分
    user_depth:是否活跃
    var_1: 隐含特征
    isClick: 是否会点击广告

    基于时间戳,训练集时间date必须在test之前

    流程

    step01: 读取数据

    先将数据集划分为广告特征与用户特征。

    对数据进行处理,hash化。

    数据值hash化,有两个作用

    • 特征唯一化;

    • 特征值较多的时候有一定降维效果。

    hash方法有很多,可以采用MurmurHash。

    生成tfrecord文件

    step02: 模型开发

    DCN.py

    • Cross模块

    • DNN模块

    机器学习平台框架图

    main训练文件保存于checkpoint

    step03:应用于排序

    checkpoint数据文件转化为可以部署的模式,通常为pb文件。

    step04:部署

    本地

    predict_with_pb.py

    线上:

    安装docker

    给模型save_model.pb模型设置版本号TAG必须保持一致

    docker hub官网拉取镜像

    注:关于docker会在另外一篇文章中详细讲解,欢迎关注~

    相关文章

      网友评论

        本文标题:实战_DCN模型在广告场景排序应用

        本文链接:https://www.haomeiwen.com/subject/kxiakrtx.html