读《CAN:co-action network》有感

碎碎念(借用)

  不得不说周国睿是个大佬,在RANK模型思考很深。达不到大佬的水平,就跟上大佬的步伐。DIN是建模U2I,CAN是建模i2i。其实CAN就是把id sequence和待预估id的共现(也就是i2i)考虑进来了。有次我问面试者一个问题,大家都在做推荐,你觉得你做推荐有什么不同呢,或者说你对推荐深入思考过吗?这个问题没有标准答案,自己也一直在困惑,从接触推荐就在困惑这个问题。个人浅见:

1.挖掘特征很重要。推荐rank或者说其他领域,永远都是特征第一。特征决定了模型的上限,模型只是取逼近这个上限。从业务场景出发,挖掘到和场景相关的特征。这几年除了在建模U和I,建模sequence这块也显得十分重要,就是在用用户的点击、加购、收藏、购买等序列表达人,建模人。DIN说是模型的成功,但不如说是序列特征的功劳。

2.模型工程。在DNN时代,MLP基本上就将dnn非线性拟合能力发挥到了极致。deepFM, DCN, PNN其实本质上提升不大。剩下就是构建新颖的网络结构,如mmoe,bias net等。但打动我的点就是和特征结合的模型工程。DIN、CAN其实就是这样的典范。DIN开创了序列特征建模,CAN进一步扩充了特征间笛卡尔积交叉的建模,简而言之就是把特征表现学习建模到网络中,从而提升模型的效果。mmoe,multi-task方式是从训练角度出发,把不同任务的信息共享,从而提升效果,出发角度稍有不同。

3.第3部分可能就是工程。算法工程师搞个模型不上线是没有意义的,需要自己把模型上线到线上,看模型线上真实的效果,可能和离线会有偏差。打分一致性校验等,这块深入思考就不多了。

 

CAN网络

 

 

 

CAN unit

 

CAN网络已经设计成这样了,思路和建模比较流畅。自己的困惑在于为啥co-action unit的效果会比笛卡尔积的效果还好?  

总结

序列特征建模演进

 DIN->DIEN->MIMN->SIM->CAN

DIN: 开创序列建模,对序列item和target item求attention score;prelu + Dice

DIEN:兴趣演化网络,Gru建模序列,最后一层输出代替之前的pooling,auxloss保障Gru更容易训练;

MIMN:解决用户序列长的问题,神经图灵机利用一个额外的记忆网络来存储长序列信息,NTM

SIM:超长用户行为建模 search-based interest model

CAN:特征交叉的工作

 

交叉特征网络模型建模:FM/NCF/deepFM/PNN/DCN

 

链接

想为特征交互走一条新的路 https://zhuanlan.zhihu.com/p/287898562

你真的懂点击率(CTR)建模吗? https://zhuanlan.zhihu.com/p/372048174

算力经济时代:阿里展示广告引擎的"柔性"变形之路 https://zhuanlan.zhihu.com/p/340467381

 

 

posted @ 2021-06-01 11:17  Data'Insight  阅读(1929)  评论(0)    收藏  举报