FunRec-Task3
FunRec Task2高阶特征交叉
Task2中介绍了各种二阶特征交叉模型,这些模型能够明确地处理二阶交互,但对于更高阶的特征组合,它们主要靠深度神经网络来学习。针对深度网络学到的高阶交互,设计出能像FM处理二阶交叉那样能够明确捕捉高阶交叉的网络结构。
1.DCN: 残差连接的高阶交叉
Deep & Cross Network (DCN) (Wang et al., 2017) 用Cross Network替代了Wide & Deep模型中的Wide部分。Cross Network在每一层都会与原始输入特征做交叉,这样就能明确地学到高阶特征交互,减少了手工特征工程的工作。

DCN的整体结构由并行的Cross Network和Deep Network两部分组成,它们共享相同的Embedding层输入。
- 模型将稀疏的类别特征转换为低维稠密的Embedding向量,并与数值型特征拼接在一起,形成统一的输入向量X0,并同时送入Cross Network和Deep Network。
- Cross Network由多个交叉层堆叠而成,其精妙之处在于每一层的计算都保留了与原始输入X0的直接交互。Cross Network有多深,就能学到多高阶的特征交叉。而且参数量只和输入维度成正比,很高效。
- Deep Network部分是一个标准的全连接神经网络,用于隐式地学习高阶非线性关系,其结构与我们熟悉的DeepFM中的DNN部分类似
DCN用Cross Network明确地学习高阶特征交叉,再配合DNN学习复杂的非线性关系,这样就能更好地处理特征组合问题。
2.xDeepFM: 向量级别的特征交互
xDeepFM为了解决Embedding向量中的每个元素都单独和其他特征的元素交互(DCN)的问题【在 元素级别(bit-wise) 上做交叉的,把Embedding向量拆散了,没有把它当作一个完整的特征来看待】,提出了 向量级别(vector-wise) 上做特征交互,

xDeepFM包含三个部分:线性部分、DNN部分(隐式高阶交叉)和CIN网络(显式高阶交叉),最后把三部分的输出合并得到预测结果。
- CIN的设计目标是实现向量级别的显式高阶交互,同时控制网络复杂度
通过CIN网络,xDeepFM把向量级别的显式交互和元素级别的隐式交互结合到了一起,为高阶特征交互提供了一个更好的解决方案
3.AutoInt: 自注意力的自适应交互
由于DCN用残差连接做元素级别的高阶交互,xDeepFM用CIN网络做向量级别的高阶交互,但这两种方法都有个问题:交互方式比较固定。DCN每一层都要和原始输入交叉,xDeepFM的CIN网络也是按固定方式做向量交互。
AutoInt (Automatic Feature Interaction) 通过Transformer的自注意力机制,让模型自动学习各种阶数的特征交互。和前面的方法不同,AutoInt不用固定的交互模式,而是在训练中学出最好的特征交互组合。

AutoInt 的整体架构相对简洁,它将所有输入特征(无论是类别型还是数值型)都转换为相同维度的嵌入向量em,这些嵌入向量构成了自注意力网络的输入,类似于 Transformer 中的 Token Embeddings。
- AutoInt 的核心是其交互层,该层由多头自注意力机制构成
- 多层交互与高阶特征学习:“多头”机制允许模型在不同的子空间中并行地学习不同方面的特征交互。
- AutoInt 的关键创新在于其高阶特征交互的构建方式。通过堆叠多个这样的交互层,AutoInt 能够显式地构建任意高阶的特征交互。第一层的输出包含了二阶交互信息,第二层的输出则包含了三阶交互信息,以此类推。每一层的输出都代表了更高一阶的、自适应学习到的特征组合。与 DCN 和 xDeepFM 不同,AutoInt 中的高阶交互不是通过固定的数学公式构建的,而是通过注意力权重动态决定的,这使得模型能够学习到更加灵活和有效的特征交互模式。
最终,所有层输出的特征表示被拼接在一起,送入一个简单的逻辑回归层进行最终的点击率预测
参考资料
高阶特征交叉
