CAN:点击率预估中特征交互作用02

2022-03-06  本文已影响0人  Nefelibatas

摘要

摘要核心

算法

DeepFM

在论文中作者将CAN与DeepFM进行横向对比

image-20220227234057218.png

DIEN

image-20220227234201388.png

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

NCF

image-20220227234232948.png

同上。

算法模型

image-20220227234707715.png

消融实验:自身的对比

CAN结构

image-20220227234804124.png image-20220227234849574.png

左侧CAN单元:基于特征转化为对应的参数权重,参数权重进入对应的co-action网络抽取出对应的向量/参数,处理后传入DNN输入层。

右侧DIN单元:通过向量获取到每个特征对应的向量值,经过DIN层后抽取成一个向量输入到DNN输入层。

DNN输入层进行concat...softmax得到结果。

image-20220227235009799.png

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

微信截图_20220227235044.png

两个部分可以用同一个大参数服务器PS包含上述两个部分(key-value)的存储。

有多少个hashcode就有多少个key。

通过一个key取出一个很长的向量,前半部分是embedding,后半部分是weight,取出来后基于大小进行切分可分别放入向量层与权重层。

DIN部分

image-20220227235323833.png

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

微信截图_20220227235353.png

基于序列化模型抽取加入目标item加权。

最终得到三部分输入到DNN中:目标item向量、用户点击序列向量、用户属性向量。

CAN部分

image-20220228174245458.png image-20220228174303760.png

目标item向量与每个用户序列向量进行操作,对应输入到Co-Action网络单元中输出对应的权重向量。

目标item向量也会与用户其他特征进行操作输入到Co-Action网络单元中输出对应的权重向量。

算法细节

重点:Co-Action Unit结构

image-20220227235613628.png

注意点:

image-20220227235713412.png

网络左侧输入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层。

image-20220227235916084.png image-20220227235956450.png

Puser -> matrix [hashcode * D]

Pitem -> matrix [hashcode * T]

D < T(D与T为向量长度)

image-20220228000025787.png image-20220228000047740.png

实验设置和结果分析

image-20220228000210466.png image-20220228000231195.png

三阶、8层、tanh

image-20220228000253594.png image-20220228000319330.png

问题

实验阶段的对比存在问题,CAN网络中本身就包含了DIEN,却还是与DIEN进行对比。

本该去掉DIEN来进行对比。

线上部署方案

如何尽可能的减少参数的量,从而达到减少计算量和存储量?

image-20220228000433333.png

总结

关键点

创新点

代码实践

image-20220228000758700.png
上一篇下一篇

猜你喜欢

热点阅读