推荐系统炼丹笔记:聊一聊特征交叉新方式CAN
作 者:一元
公众号:炼丹笔记
昨天看非常多的群友在讨论该篇文章,很是好奇,今天就读了一下,个人感觉本文的co-action操作还是第一次碰到,但该方案在amazu等数据集上对比的方案还是较为弱的,所以是否效果比xDeepFM和NFFM等要好,还是一个问好,但是新的表示co-action的方案还是很值得思考的。有任何问题欢迎最后入群交流。好了下面进入正文,Let's Go!
目前基于特征交互的模型可以大致分为三类:
- Aggregation based方法:聚合用户的历史行为序列来获得CTR预估的判别表示;
- Graph based方法: 将特征作为节点, 通过有向和无向图的方式连接, 在这种情况下,特征协同作用作为信息沿边缘传播的边缘权重;
- Combinatorial embedding方法:直接明显的组合特征的embedding;
基于Aggregation的方法和基于Graph的方法只通过边的权值对特征的协同作用进行建模,但是边缘只用于信息聚合,而不用于信息扩充。组合嵌入方法,另一方面,结合两个特征的嵌入来建立特征的共同作用,但组合嵌入法的问题在于, 嵌入负责表示学习和协同作用建模,而表示学习和协同建模可能会互相冲突最终使我们的效果受限。
本文提出了feature Co-Action Network(CAN)捕获在输入阶段的特征的co-action并且利用交互和共同信息来对最终模型的效果进行提升。
回顾CTR预测问题的特征Co-action
Co-Action网络
CAN的整体框架如上,用户和商品的特征可以被分为两种形式:
Co-Action网络的最终结构为:
最终,我们通过最小化cross-entropy:
Co-Action 单元
其中H表示特征的co-action.对于用户序列特征例如用户的点击序列等,co-action单元会被应用到每个商品上,之后再使用一个sum-pool。
多阶(Multi-order) Enhancement
此处我们使用下面的方式进行高阶的特征组合:
其中C是阶的个数, 此处我们使用SeLU作为激活函数(当C=1的时候),同时我们使用tanh来避免数值问题。
多层(Multi-level)独立性
- 第一层:参数独立性, 我们的方法将表示学习和co-action建模区分,参数的独立性是CAN的基础;
- 第二层:组合独立性,特征的co-action随着特征组合的增加而线性增长,假设有M个weight-side和N个input-side的嵌入,
- 第三层:oders的独立性,为了进一步提升在multi-order的输入co-action建模的便利,我们的方法对不同的oder的商品
在不同的输入顺序下,进一步提高了不同输入顺序下的嵌入灵活性。weight-side嵌入的大小相应地增加了orders倍。注意,由于MLP在不同的顺序项中没有参数,因此之前的近似值不可行。
实验
效果比较
- CAN在这两个数据集上都优于其他最先进的方法。与基础模型DIEN相比,其AUC分别提高了1.7%和2.1%。
- 该方法在很大程度上优于其他协同作用方法,证明了本文方法在协同作用建模中的有效性。
- 值得注意的是,作为纯表示学习方法,笛卡尔积方法与PNN、NCF、DeepFM等其他组合嵌入方法相比,可以取得更好的性能,这说明虽然这些组合嵌入方法可以提取一些协同作用特征信息,他们真的可以通过出色的表现和合作学习嵌入。相比之下,CAN比笛卡尔积和结合嵌入的方法取得了更好的效果,这意味着基于网络的CAN机制可以同时学习表示能力和协作能力
解耦研究
- Multi orders:多阶数对性能增益的影响很小,因此在实际应用中,2或3个power项是合适的。
- MLP depth:8层的MLP可以拿到最好的结果;
- 激活函数:Tanh的激活函数可以获得最好的效果;
模型的普遍性和泛化(Universality and Generalization)
Universality: CAN比大多数方法的效果要好,和cartesian乘积效果差不大;
在真实的商业场景中,每天都会出现无数的功能组合,这就要求CTR模型能够快速响应。推广对于实际应用具有重要意义。为此,我们从测试集中移除包含现有特征组合的样本。通过这种方法,我们得到了一个新的测试集,其特征组合对于一个经过良好训练的模型来说是全新的。请注意,我们只要求特征组合为zero-shot快照,而不是所有特性。
- Generalization: CAN还是工作的非常好, 具有非常好的泛化性。
工业数据集上的表现
CAN在工业数据集上A/B Test上得到了非常大的提升。
小结
在笛卡尔产品模型的启发下,我们提出了一种新的特征交叉范式:Co-Action network,CAN。通过一个灵活的模块,co-action单元,可以将表示学习和co-action行为建模分离开来。在co-action单元中引入了多阶增强和多层次独立性,进一步提高了特征协同建模的能力。实验表明,该算法的性能优于之前的研究成果,对新的特征组合具有更好的泛化能力。
http://weixin.qq.com/r/XSjP1zrEzGezrX60931P (二维码自动识别)
推荐系统炼丹笔记:聊一聊特征交叉新方式CAN相关推荐
- 推荐系统炼丹笔记:阿里推荐算法特征交叉新方式CAN
作 者:一元 公众号:炼丹笔记 昨天看非常多的群友在讨论该篇文章,很是好奇,今天就读了一下,个人感觉本文的co-action操作还是第一次碰到,但该方案在amazu等数据集上对比的方案还是较为弱的,所 ...
- 推荐系统炼丹笔记:推荐算法特征交叉新方式CAN
作 者:一元 公众号:炼丹笔记 昨天看非常多的群友在讨论该篇文章,很是好奇,今天就读了一下,个人感觉本文的co-action操作还是第一次碰到,但该方案在amazu等数据集上对比的方案还是较为弱的,所 ...
- 推荐系统炼丹笔记:RecSys2020-SSE-PT解锁序列数据挖掘新姿势
作 者:一元 公众号:炼丹笔记 背景 现在诸多的推荐算法在处理时间信息上, 除了在自然语言常用的RNN,CNN等模型, 就是基于Transformer的模型,但是和SASRec类似, 效果不错,但是缺 ...
- 推荐系统炼丹笔记:Embedding在内存问题上的一种解法
作 者:一元 公众号:炼丹笔记 很多朋友都会发现,修改embedding的大小能对深度模型带来非常大的影响,往往越大的embedding能带来更佳的效果,但是却因为Embedding内存的问题,没法直 ...
- 推荐系统炼丹笔记:好想哭,我居然输在了内存问题上!
作 者:一元 公众号:炼丹笔记 很多朋友都会发现,修改embedding的大小能对深度模型带来非常大的影响,往往越大的embedding能带来更佳的效果,但是却因为Embedding内存的问题,没法直 ...
- 推荐系统炼丹笔记:令人着迷的时间动态CF算法
作 者:一元 公众号:炼丹笔记 背景 本文是一篇较老的文章,是Yahoo的研究员关于协同过滤中时间动态建模的最为细致的讨论. 顾客对产品的偏好随着时间的推移而变化.随着新选择的出现,产品的认知和受欢迎 ...
- 推荐系统炼丹笔记:EdgeRec阿里边缘计算推荐系统
作者:一元 公众号:炼丹笔记 背景 推荐系统(RS)已经成为大多数web应用程序的关键模块.最近,大多数RSs都是基于云到边缘框架的瀑布式的,其中推荐的结果通过在云服务器中预先计算传送到edge(例如 ...
- 推荐系统炼丹笔记:推荐系统Bias/Debias大全
作者:一元 公众号:炼丹笔记 背景 在实践中,做推荐系统的很多朋友思考的问题是如何对数据进行挖掘,大多数论文致力于开发机器学习模型来更好地拟合用户行为数据.然而,用户行为数据是观察性的,而不是实验性的 ...
- 推荐系统炼丹笔记:阿里边缘计算+奉送20个推荐系统强特
作者:一元 公众号:炼丹笔记 背景 推荐系统(RS)已经成为大多数web应用程序的关键模块.最近,大多数RSs都是基于云到边缘框架的瀑布式的,其中推荐的结果通过在云服务器中预先计算传送到edge(例如 ...
最新文章
- 威斯康辛大学《机器学习导论》2020秋季课程完结,课件、视频资源已开放
- PHP经典乱码“口”字与解决办法
- svn服务器搭建和使用_简单使用nodejs搭建一个静态服务器
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能 (转)
- [编程题] 按照左右半区的方式重新组合单链表
- 只保留日期_时间序列:日期范围、频率与偏移量
- VS2010中编写x64汇编的具体方法
- ThinkPHP的RBAC权限控制
- 在WebClient类中保持Session
- [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统
- 计算机英语构词法,计算机专业英语的构词方法论文
- js优化上传大图片显示问题(压缩图片展示)
- 北京市2009年住房建设计划
- 若泽数据公开课-JVM01
- 聪明人却没产生好点子——Why Smart People Have Bad Ideas
- Learning to Learn
- 面向切面编程(AOP)的理解
- CISSP第三章 访问控制
- ethtool在Linux里的交互
- 社交电商:流量红利已尽,裂变营销是最低成本的获客之道
热门文章
- react 技术栈项目轻量化方案调研
- 电子测量与仪器第二次作业
- data structure begin!!
- [Craftor原创]EZ-USB与FPGA的通信接口设计
- android kotlin面试题,Kotlin面试25题
- 构建论文框架的八条原则
- 超全荧光定量PCR应用常见问题
- 第24天学习Java的笔记-接口Interface
- YOLO学习-3:ubuntu16.04+ yolov3(darknet)+GPU(nvidia 1080ti)+opencv2.4.11 摄像头测试实践
- 云服务centos搭建jupyter notebook并通过外网访问