特征交叉
一、Factorized Machine (FM)
1.1 线性模型
- 有
个特征,记作 - 线性模型:
- 模型有
个参数: 和 - 预测是特征的加权和。(只有加,没有乘。)
1.2 二阶交叉特征
- 线性模型+⼆阶交叉特征:
如果很大参数量 就会很大,可以用以下方式减少参数数量

- Factorized Machine (FM):
- FM模型有
个参数。
Factorized Machine[1]
- FM是线性模型的替代品,能⽤线性回归、逻辑回归的场景,都可以⽤FM。
- FM使⽤⼆阶交叉特征,表达能⼒⽐线性模型更强。
- 通过做近似
,FM把⼆阶交叉权重的数量从 降低到
二、深度交叉网络(DCN)[2]
Deep & Cross Networks (DCN) 译作“深度交叉网络”,可以用于召回双塔模型、粗排三塔模型、精排模型。DCN 由一个深度网络和一个交叉网络组成,交叉网络的基本组成单元是交叉层 (Cross Layer)。
交叉网络是 DCN 的核心,它能够以高效的方式实现显式的特征交叉。与传统的深度神经网络(DNN)隐式学习特征交互不同,交叉网络显式地建模特征交叉,使其在特征交互至关重要的任务中表现出色。
2.1 交叉层
交叉网络中的每一层遵循以下公式:
其中:
分别时第 层和第 层的输出 是第 层的权重和偏置参数 为哈达玛积
计算方式可以参考下图:

也可以表述为下图:

2.2 交叉网络
多个交叉层叠加就形成了交叉网络

交叉网络的独特结构使得特征交互的阶数随着网络深度的增加而增长。具体来说,一个
2.3 深度交叉网络

- Deep and Cross Network,把交叉网络跟普通的全连接网络结合起来
- 并联两个神经网络,各输出一个向量,把两个向量做concatenation输入一个全连接层全连接层输出一个向量
- 比最简单的全连接网络效果更好,DCN已经被工业界普遍接受
- DCN既可以用于召回也可以用于排序,双塔模型中的用户塔和物品塔都可以是DCN,多目标排序模型中的Shared Bottom,MMOE中的专家神经网络也都可以是DCN
三、LHUC(PPNet[3])
语⾳识别中的LHUC[4]

- 语音信号输入全连接层输出向量
- 说话者的特征:最简单的特征就是说话者的ID,对ID做embedding得到一个向量
- 说话者网络包含多个全连接层,最后一层的sigmoid乘以2
- 做Hadamard积后语音信号中有的特征被放大,有的特征被缩小,做到了个性化
- LHUC只重复了两个模块,实践中可以搭更深的神经网络

- LHUC跟交叉网络的想法有些类似
- LHUC在工业界确实有效,但只能用于精排
推荐系统排序模型中的LHUC

- 语音信号变为物品特征
- 说话者的特征变为用户特征
四、SENet & Bilinear Cross
4.1 SENet[5]
SENet 是计算机视觉中的一种技术,可以用在推荐系统中对特征做动态加权。

- 推荐系统用到的离散特征
- 对这些离散特征做Embedding,得到很多向量

对
矩阵做AvgPooling得到一个 维向量 维向量过一个全连接层和Relu激活函数得到 维向量, 为压缩比例,设置成大于1的数 维向量过一个全连接层和Sigmoid函数,恢复成 维向量,值都介于0和1之间 最终的
维向量和 矩阵做加权,逐行乘到矩阵上得到右边矩阵 对特征做加权:SENet会根据所有的特征,自动判断每个field的特征重要性,重要的field权重高,不重要的field权重低
假设学出来物品ID对任务的重要性不高,那么它的权重就会降低
Embedding 向量维度可以不同

- SENet 对离散特征做field-wise加权。
- Field:
- ⽤户ID Embedding是64维向量。
- 64个元素算⼀个field,获得相同的权重。
- 如果有
个fields,那么权重向量是 维。
4.2 Field 间特征交叉

- 通常来说如果用哈达玛乘积做特征交叉,必须要人工选一些pair做交叉,而不能对所有
个特征两两交叉 - 内积和哈达玛乘积要求两个特征维度相同
双线性(bilinear)特征交叉可以提升排序模型的表现。有很多种 bilinear 交叉的方法。
Bilinear Cross(內积)

Bilinear Cross(哈达玛乘积)

- Bilinear cross是一种更先进的特征交叉方法
- Bilinear cross有内积和哈达玛乘积两种方式
和 是两个特征的embedding,它们的形状可以相同也可以不同 - 哈达玛积方式,想要减少参数数量的话,需要人工指定某些相关的而且重要的特征做交叉,而不能让所有特征做两两交叉
- SENet 对离散特征做field-wise加权。
- Field间特征交叉:
- 向量內积
- 哈达玛乘积
- Bilinear cross
4.3 FiBiNet[6]
FiBiNet 是将 SENet 与 Bilinear 模型结合。

和一般排序模型区别就在红框里这部分
SENet后边的Bilinear Cross可以直接做Concatenation