摘要
摘要核心
-
网络结构的非线性抽取特征是一种隐式特征表征
-
当前的ctr模型无法完全捕获特征的相互组合
-
作者提出一种网络结构Co-Action Network
-
Co-Action Network综合参数,存储,计算等的考量,能够进行在线部署
-
阿里巴巴线上效果ctr提升12% ,RPM提升8%
算法
DeepFM
在论文中作者将CAN与DeepFM进行横向对比

DIEN

与DeepFM相同,DIEN也是通过隐式向量表征进行操作,丢失了显式信息。
NCF

同上。
算法模型

消融实验:自身的对比
CAN结构


左侧CAN单元:基于特征转化为对应的参数权重,参数权重进入对应的co-action网络抽取出对应的向量/参数,处理后传入DNN输入层。
右侧DIN单元:通过向量获取到每个特征对应的向量值,经过DIN层后抽取成一个向量输入到DNN输入层。
DNN输入层进行concat...softmax得到结果。

输入部分包含用户行为序列(用户点击历史、历史类别物品)、Target与用户属性信息(user age分桶得到离散值,对应hash化)、其他类特征(gender、 item price)。

两个部分可以用同一个大参数服务器PS包含上述两个部分(key-value)的存储。
有多少个hashcode就有多少个key。
通过一个key取出一个很长的向量,前半部分是embedding,后半部分是weight,取出来后基于大小进行切分可分别放入向量层与权重层。
DIN部分

目标item向量与内部的序列向量进行加权

基于序列化模型抽取加入目标item加权。
最终得到三部分输入到DNN中:目标item向量、用户点击序列向量、用户属性向量。
CAN部分


目标item向量与每个用户序列向量进行操作,对应输入到Co-Action网络单元中输出对应的权重向量。
目标item向量也会与用户其他特征进行操作输入到Co-Action网络单元中输出对应的权重向量。
算法细节
重点:Co-Action Unit结构

注意点:
-
权重的长度:用户向量与目标item向量通常不一致
-
网络的大小:MLP结构
-
Pitem和Puser如何进行切分:目标item与用户特征
-
Reshape和MLP:切分后reshape会变成对应的权重与偏置,MLP网络如何计算。

网络左侧输入Pitem通常向量是较长值。
[w1,w2.w3.w4.w5,w6]切分为三个值。
w1/w2/w3:weight, w6/w5/w4: bias
w11 = w7^1+ w8^2 + w9^3(w8与w9进行了高阶增强转化之后才进行求和)
L1/L2/L3:特征交叉,Fn激活函数
笛卡儿积转化为MLP中权重之间的乘积。
最终输出L3层。


Puser -> matrix [hashcode * D]
Pitem -> matrix [hashcode * T]
D < T(D与T为向量长度)


实验设置和结果分析


三阶、8层、tanh


问题
实验阶段的对比存在问题,CAN网络中本身就包含了DIEN,却还是与DIEN进行对比。
本该去掉DIEN来进行对比。
线上部署方案
如何尽可能的减少参数的量,从而达到减少计算量和存储量?

总结
关键点
-
Co-Action单元
-
扩展性,序列和非序列都有效
-
在线部署方案
创新点
-
采用MLP实现权重之间的相乘
-
一种完成不一样的思路
代码实践

网友评论