广告预估模型(三)
GeorgePig 人气:0接着广告模型初探(二),这篇咱们主要聊聊广告预估模型集大成者DNN派系。
0.DNN模型
DNN网络结构
模型结构较为简单,不再赘述。重点关注一下Embedding部分,和NLP里面的Embedding层类似,在广告模型中Embedding层会对不同类型的特征进行如下变换:
-
单值离散特征:直接Embedding
-
多值离散特征:在Embedding 之后接上Sum Pooling 从而将多值映射为单个Embedding(Average Pooling也未尝不可)
-
数值型特征:一般先进行离散化(如特征分桶之类)转化为类似单值离散特征来处理
1.DeepFM模型
DeepFM网络结构
DeepFM模型可以分为两个部分,一部分是上篇中提到的FM模型,另一部分就是本篇中提到的DNN模型。最终输出结果通过下面公式计算得到:
从上面网络结构图中可以看到,最底层是输入的稀疏的原始特征,接着进入了Embedding层,将特征限定到有限的向量空间中,接着分别进入FM和DNN层。FM部分主要考虑的是低阶特征(主要是二阶特征)而DNN部分主要获取的是高阶特征,FM和DNN层共享Embedding。
2.SDNN模型
SDNN网络结构
相比于前面两个模型,SDNN模型的结构更为复杂,当然相应的效果也是更优的。从图中可以看出,SDNN模型分为两个阶段,一个阶段是Join阶段、一个阶段是Update阶段。图中的slot1,slot2指的是不同的特征,fea1,fea2表示的不同特征的不同取值,举个例子:slot1表示用户的兴趣爱好,fea1表示足球,fea2表示篮球。不同的fea1和fea2我们会统计show和click的值,最终累加在一起,得到对应的slot1的特征的show和click值。当然show和click对应的值最终也是通过embedding化之后加入模型中训练的。
与之前不同的是,这里的embedding是一种动态的embedding,刚开始默认的维度可以设置为1,当show&click达到一定的阈值之后,会扩展为fix+dynamic的形式。需要注意的是在Join阶段主要更新的是NN参数,从图中也可以看出梯度只回传到normalization就停止了,而在Update阶段主要更新的是Embedding参数。
之所以采用两阶段的训练方式,主要是为了:
-
保持线上线下预估的一致性
-
线上预估embedding是pass内固定的,而Update NN学习的是动态变化的embedding的NN
至此,广告模型初探系列完结,下一篇和大家聊聊广告算法工程师的日常。后会有期!
欢迎关注微信公众号:计算广告那些事儿
加载全部内容