WSDM2022|阿里联合中科院提出特征协同作用网络CAN用于点击率预估(已开源)

CAN: Feature Co-Action Network for Click-Through Rate Prediction

Weijie Bian, Kailun Wu, Lejian Ren, Qi Pi, Yujing Zhang, Can Xiao,Xiang-Rong Sheng, Yong-Nan Zhu, Zhangming Chan, Na Mou, Xinchen Luo, Shiming Xiang, Guorui Zhou, Xiaoqiang Zhu, Hongbo Deng

Alibaba Group, Chinese Academy of Sciences

https://dl.acm.org/doi/pdf/10.1145/3488560.3498435

特征交互在机器学习中是一种重要的任务,在点击率预估中非常有必要。近年来,深度神经网络可以从原始稀疏特征中自动学习隐含的非线性交互,因此在工业界点击率预估中广泛应用。

然而,深层神经网络学到的隐含特征交互无法完全保持原始以及经验特征交互的完备表示能力,无法保证没有损失。比如,学习特征A和特征B的简单组合方式为显式笛卡尔积时,所得到的新特征效果可以优于先前隐式特征交互模型,比如基于因子分解机的模型,及其变体模型。

这表明,在显式和隐式特征交互模型中仍然有比较大的差距。但是,学习所有显式特征交互表示需要很大的样本空间,比如需要N倍原始参数的空间,在大多数工业界应用中,N可能会特别大。

这篇文章中,作者们提出了一种协同作用网络,CAN,来近似显式结对特征交互,同时不引入过多额外的参数。更具体的,给定特征A和关联特征B,二者之间的交互可以通过学习两个参数集合来得到,其中一个是特征A的embedding,还有一个是特征B的多层感知机表示。

近似特征交互可以通过输入特征A的embedding来得到,同时借助特征B的多层感知机网络。作者们将这种特征交互称为特征协同作用,这种特征协同网络单元可以提供一种特别强的能力,可以对复杂特征交互进行拟合。

除此之外,当多层感知机只有一层并且只有一个输出时,因子分解机可以看做CAN单元的一种特例。

在公开和工业界数据集上的实验结果表明,CAN可以超越STOA点击率预估模型以及笛卡尔积方法。此外,CAN已经部署在阿里的战士广告系统中,CTR提升了12%,千次展示收益提升8%,商业价值层面提升巨大。

特征交互图示如下

### 关于 WSDM 2022 和 C2CRS 的详细介绍 WSDM (The ACM International Conference on Web Search and Data Mining) 是专注于网络搜索和数据挖掘的高度选择性的国际会议[^2]。其发表的高质量原创论文涵盖了搜索引擎优化、推荐系统设计以及社交网络分析等多个主题,尤其强调实用性和理论基础相结合的方法论。 RUCAIBox/WSDM2022-C2CRS 是一个开源项目,旨在探索对话式推荐系统的对比学习技术[^1]。此项目的重点在于如何利用对比学习改进传统推荐算法的效果,在实际应用场景下提升用户体验。具体而言: - **目录结构及介绍**:该项目提供了详细的文档说明,帮助开发者快速上手并理解其实现细节。 此外,关于 WSDM 大会本身及其收录的研究成果,可以参考以下几点补充信息: - 论文集锦显示,WSDM 不仅关注学术界前沿进展也重视工业应用价值,大量接收稿件涉及到了信息检索与个性化服务等领域内的创新解决方案[^3]。 对于希望深入研究 “Sequential Modeling with Multiple Attributes for Watchlist Recommendation in E-Commerce” 所述模型序列化多属性电商收藏夹预测等内容,则需单独查阅对应的具体实现代码片段或实验设置描述;不过当前并未提供直接关联这部分功能模块的相关源码文件链接[^4]。 最后值得注意的是评价指标体系构建方面的重要性——《Are We Evaluating Rigorously? Benchmarking Recommendation for Reproducible Evaluation and Fair Comparison》 提出了严谨评估标准以促进研究成果间可重复验证公平比较的价值观传播[^5]。 ```python # 示例 Python 实现框架(假设) import torch from rucaibox_wsdm_c2crs import ContrastiveLearningModel def train_model(data_loader): model = ContrastiveLearningModel() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) for epoch in range(num_epochs): for batch_data in data_loader: loss = model(batch_data) optimizer.zero_grad() loss.backward() optimizer.step() train_model(training_data) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值