23.CTR预估---传统模型 (5)

$\begin{aligned} \hat{y}(\overrightarrow{\mathbf{x}})=w_{0} &+\sum_{i=1}^{K} w_{i} \times x_{i}+\sum_{i=1}^{K} \sum_{j=i+1}^{K} \hat{w}_{i, j} \times x_{i} \times x_{j} \\ & \hat{w}_{i, j}=<\overrightarrow{\mathbf{v}}_{i, f_{j}}, \overrightarrow{\mathbf{v}}_{j, f_{i}}>=\sum_{l=1}^{d} v_{i, f_{j} l} \times v_{j, f_{i}, l} \end{aligned}$

其中,$f_i$表示第$i$个特征所属的field,一共有F个field(1<=F<=K),参数数量为$O(K \times d \times F)$,计算复杂度为$O(\bar{K} ^2 \times d)$,其中$\bar{K}$是样本中平均非零特征数。

4.和FM相比,通常FFM中representation向量的维度要低的多。即$d_{FFM} \ll d_{FM}$

5.FFM每个representation向量的学习只需要特定field中的样本。如:学习$\overrightarrow{\mathbf{v}}_{\text {male}}=1,age$时,只需要考虑交叉特征$(male=1,age18=1),(male=1,age20=1)$的样本,而不需要考虑交叉特征$(male=1,sh=1),(male=1,sz=1)$的样本。

6.和FM相比,FFM模型也可以用于求解分类问题(预测各评级的概率),也可以用于求解回归问题(预测各评分大小)。

对于回归问题,其损失函数为MSE 均方误差:

$\begin{aligned} \phi(\overrightarrow{\mathbf{x}})=& w_{0}+\sum_{i=1}^{K} w_{i} \times x_{i}+\sum_{i=1}^{K} \sum_{j=i+1}^{K} \hat{w}_{i, j} \times x_{i} \times x_{j} \\ \mathcal{L}=& \sum_{(\vec{x}, y) \in \mathbb{S}}(\phi(\overrightarrow{\mathbf{x}})-y)^{2}+\sum_{\theta \in \Theta} \frac{1}{2} \lambda_{\theta} \times \theta^{2} \end{aligned}$

对于二分类问题(分类标签为 -1,+1 ),其损失函数为交叉熵:

$\phi(\overrightarrow{\mathbf{x}})=w_{0}+\sum_{i=1}^{K} w_{i} \times x_{i}+\frac{1}{2} \sum_{l=1}^{d}\left(\left(\sum_{i=1}^{K} v_{i, l} \times x_{i}\right)^{2}-\sum_{i=1}^{K} v_{i, l}^{2} \times x_{i}^{2}\right)$
$p(\hat{y}=y | \overrightarrow{\mathbf{x}})=\frac{1}{1+\exp (-y \phi(\overrightarrow{\mathbf{x}}))}$
$\mathcal{L}=\left(\sum_{(\vec{x}, y) \in \mathbb{S}} \log (1+\exp (-y \phi(\vec{x})))\right)+\sum_{\theta \in \Theta} \lambda_{\theta} \times \frac{1}{2} \theta^{2}$

7.FFM模型采用随机梯度下降算法来求解,使用AdaGrad优化算法。在每个迭代步随机采样一个样本$(\overrightarrow{x},y)$来更新参数,则L退化为:

$\mathcal{L}=\log (1+\exp (-y \phi(\overrightarrow{\mathbf{x}})))+\sum_{\theta \in \Theta} \lambda_{\theta} \times \frac{1}{2} \theta^{2}$

8.field分配

FFM 模型需要为每个特征分配一个 field 。

(1)离散型特征 categorical :通常对离散型特征进行 one-hot 编码,编码后的所有二元特征都属于同一个 field 。

(2)数值型特征 numuerical:数值型特征有两种处理方式:

  a.不做任何处理,简单的每个特征分配一个field 。 此时$F=K$ , FFM 退化为 POLY2 模型。

  b.数值特征离散化之后,按照离散型特征分配 field 。 论文推荐采用这种方式,缺点是: 难以确定合适的离散化方式。如:多少个分桶?桶的边界如何确定? 离散化会丢失一些信息。

(3)离散集合特征categorical set(论文中也称作 single-field 特征):所有特征都属于同一个field,此时$F=1$ , FFM 退化为 FM 模型。

  如 NLP 情感分类任务中,特征就是单词序列。如果对整个sentence 赋一个field,则没有任何意义。 如果对每个word 赋一个 field,则 等于词典大小,计算复杂度 无法接受。

9.FFM应用场景:

数据集包含离散特征,且这些离散特征经过one-hot 编码。

经过编码后的数据集应该足够稀疏,否则 FFM 无法获取较大收益(相对于 FM )。

不应该在连续特征的数据集上应用 FFM,此时最好使用 FM 。

五、GBDT+LR模型

1.模型来自论文:《Practical Lessons from Predicting Clicks on Ads at Facebook》

该模型利用 GBDT 作为特征抽取器来抽取特征、利用 LR 作为分类器来执行分类预测。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgfjz.html