FM

线性模型

设有dd个特征,记为:X=[x1,x2,...,xd]\pmb{X} = [x_1, x_2, ... , x_d],则线性模型的表达式为:

p=b+i=1dwixip = b + \sum_{i=1}^d w_i · x_i

其中,bb为偏置,总共d+1d+1个模型参数。pp是预测结果,也就是特征和权重参数的加权和。因为没有乘法操作,所以特征之间没有交叉。

线性模型+二阶交叉

p=b+i=1dwixi+i=1dj=i+1duijxixjp = b + \sum_{i=1}^d w_i · x_i + \sum_{i=1}^d \sum_{j=i+1}^d u_{ij} · x_i · x_j

其中,wiw_i是为每个特征分配一个权重参数,而uiju_{ij}则是为每一组交叉特征分配一个权重参数,那么其参数量则为O(d2)O(d^2)。若特征比较多,则参数量会非常多。

优化思路:把uiju_{ij}这个方阵近似用两个向量内积表示,即UVVT\pmb{U} ≈ \pmb{V} · \pmb{V^T}。参数量从O(d2)O(kd)O(d^2) \rightarrow O(kd)

image-20230415233604273

这就是FM。

DCN

交叉层

image-20230415234947465

image-20230415235052524

交叉网络(Cross Network)

image-20230415235159373

X1=X0(W0X0+b0)+X0X2=X0(W1X1+b1)+X1X3=X0(W2X2+b2)+X2X_1 = X_0 \circ (W_0 * X_0 + b_0) + X_0 \\ X_2 = X_0 \circ (W_1 * X_1 + b_1) + X_1 \\ X_3 = X_0 \circ (W_2 * X_2 + b_2) + X_2 \\

深度交叉网络(DCN)

image-20230415235736561

DCN既可以用于召回,也可以用于排序。

双塔模型中的用户塔和物品塔都可以是DCN。

多目标中的Shared Bottoms和MMoE中的专家网络也可以是DCN。

LHUC

LHUC - 2016起源于语音识别,只能用于精排。快手将其用于推荐精排,称为PPNet

LHUC应用于推荐系统

image-20230416000906812

快手PPNet结构

img

SENet

特征内加权

image-20230416001137195

上图是SENet结构图,其中输入的m个离散特征的Embedding向量长度可以不同。

SENet的本质是对离散特征的filed-wise加权。

特征间加权

image-20230416001512557

image-20230416001538523

image-20230416001623453

FiBiNet模型

image-20230416001736344

参考文献

公开课地址:GitHub