阿里残:特色交互新思路
论文地址:/p/287898562
在CTR预测的任务中,特征之间的交互一直是业界的热门话题。由于DNN以隐式的方式学习输入特征,单纯依靠DNN很难从庞大的稀疏特征集中学习到有效的特征交互,因此很多作品在特征工程中采用了人工特征交互。FM、FNN、PNN、DCN和DeepFM都从不同的方面阐述了这一点。有兴趣的同学可以参考作者之前的文章:从FM到DeepFM:浅谈推荐系统中的模型进化。
特征工程在推荐系统模型的构建中起着非常重要的作用。在海量输入特征中,用户行为与推荐项目之间的交互可以准确地建模用户的兴趣。本文作者将这种交互特征统一命名为co-action,如图1: A和B代表模型的输入,Target可以是ctr的估计值。一般来说,A和B之间的关系可以通过DNN了解到。但如果我们在输入端手动交互A和B,学习的难度会大大降低。
对于特征交互,最基本的方式就是做笛卡尔积。在tensorflow中,这个操作是跨列[1]。对于特征A和B,笛卡尔积将它们组合成一个新的特征(A,B);改变a或b的值,你会得到一个全新的特征。这样,A和B之间的所有组合都可以被描述。在训练样本足够且不考虑性能的情况下,笛卡尔积是最好的特征交互方法。但是笛卡尔积有两个缺点:
顾名思义,CAN的目的是对不同特征之间的相互作用进行建模,可以理解为一种新的特征交互方式。简单来说,本文实现了一个可插拔的CAN网络单元,它将两类需要交互的特征分别作为CAN网络的输入和权重,网络的输出作为特征交互的结果。
图2显示了CAN的基本结构。输入特征可以分为用户行为序列、目标项目、用户画像特征(用户年龄等。)等特点。其中,用户序列、目标项和其他特征通过嵌入层后输入到迪恩网络结构中。对于CAN部分,将用户序列和目标项的嵌入作为CAN的输入和权重参数,最终输出结果求和,与迪恩的输出concat一起通过后面的DNN部分。下面重点介绍整个网络结构的关键:协作单元。
CAN的整体实现逻辑比较简单。CAN中的全连通网络记为:候选产品特征是网络的权值和偏差,用户行为序列特征是网络的输入。这里是所有唯一ID的编号,即项目ID的参数空间;和是嵌入大小,和
与其他特征交互方法相比,CAN具有以下优点:
前述的CAN结构只能显式地模拟一阶特征相互作用。对于高阶情况,可以通过高阶输入来实现,即
其中c是特征交互的顺序。
本文介绍了三种保证CAN学习独立性的方法。
从表2可以看出,CAN的AUC指数优于PNN、NCF[2]和DeepFM在两个实验数据集上。此外,作为最基本的特征交互手段,笛卡尔积优于PNN、NCF和DeepFM。但是CAN的实验结果甚至比笛卡尔积的结果还要好。我认为这里有两个原因:
为了验证CAN的泛化能力,作者在测试数据集中删除了所有出现在训练集中的特征组合,构建了一个冷数据测试集。测试集中的所有特性组合在模型中都是前所未有的。实验结果如表5所示:
可以看出,NCF和DeepFM的结果优于笛卡尔积。对比表2中的结论,证明笛卡尔积的推广确实存在问题。同时CAN的AUC最高,也证明了CAN结构的泛化能力明显强于笛卡尔积等特征交互方法。
我认为这是本文最重要的部分之一。在本节中,作者详细论述了CAN模型部署到阿里巴巴展示广告系统时的一些难点和解决方案,对复杂ctr预测模型的落地具有重要的指导意义。
特征交互是在原有特征的基础上增加特征对的组合,这必然会引入额外的存储和计算开销。我们知道,CTR模型的大部分参数都集中在嵌入部分,笛卡尔积会线性增加嵌入大小。对于M和N两个维度(这里的维度是指唯一id的个数)的特征,笛卡尔积需要引入一个大小为(M×N,embedding_size)的嵌入矩阵;此外,新的嵌入还将引入更多的查找操作,这将严重影响模型的响应时间,增加延迟。作者提到,即使采用IDs频率滤波(个人理解是根据ID出现的频率过滤掉部分低频ID以减少参数量,即低频滤波),也无法缓解。
对于CAN模型,虽然参数大幅降低,但上述问题仍然会影响模型的部署。本文采用6个ad端特征和15个用户端特征进行交互,理论上将引入15×6 = 90个特征组合。而用户端特征多为用户的行为序列,一般长度在100以上,会带来较大的负担。
为了解决上述问题,本文采用了以下方案:
特征之间的交互对ctr预测模型具有重要意义。阐述了笛卡尔积的缺点和一些常见的模型结构(FM、PNN、DeepFM等)。),并提出了一种新的网络能来模型特征的共同作用。CAN利用DNN的输入和权重对特征交互进行建模,不仅解决了笛卡尔积的空间复杂度和泛化问题,而且获得了更好的特征交互效果(体现在模型的auc指标上)。同时引入多阶增强和模块间多级独立,使CAN的功能更加完善。最后,介绍了模型上线中遇到的困难和解决方案,对大型ctr预测模型的部署具有重要的参考意义。
。