推荐系统——特征交叉

2 min
NOTE

这是 b 站王树森推荐系统课程的笔记,记录到了重排,之后的物品冷启动和提分部分我没有学,所以也没有笔记。索引如下:


https://www.bilibili.com/video/BV15V4y1x7Ht

Factorized Machine (FM)

因式分解机已经不常用了

对一个特征 x=[x1,x2,,xd]x=[x_{1},x_{2},\dots,x_{d}],线性模型为:

p=i=1dwixi+bp=\sum_{i=1}^{d} w_{i}x_{i}+b

没有引入特征之间的关联,可以引入二次交叉项:

p=i,juijxixj+pp' = \sum_{i,j}u_{ij}x_{i}x_{j} + p

当特征维度较小时,没有计算上的问题,但是当 dd 很大时,就需要计算一个很大的矩阵 UU。为了避免,可以使用矩阵分解的方式,即将一个 d×dd\times d 的矩阵分解为 d×kd\times kk×dk\times d 的矩阵乘积,kdk\ll d

觉得熟悉?没错,这正是启蒙了 Lora 的思想!

此时 uiju_{ij} 被分解为两个向量的乘积:uij=vivju_{ij}=v_{i}^{\top}v_{j}

深度交叉网络 (DCN)

交叉层图示
交叉层图示

公式为:

xi+1=x0(Wxi+b)+xix_{i+1}=x_{0} \odot (Wx_{i}+b) + x_{i}

发现了吗,resnet 的残差连接!

将交叉层堆叠即可得到交叉网络(CN)。

LHUC 网络

上面的 DCN 在召回和排序中都可以使用,而 LHUC 网络只在精排中有效。全称 Learning Hidden Unit Contributions。

4-LHUC
4-LHUC

还有很多其他的结构,如 SENet、Bilinear、FiBiNet 等,自行了解即可

SENet。注意到了吗,这就是一个 "attention"!
SENet。注意到了吗,这就是一个 "attention"!