FM算法是CTR预估中的经典算法,其优势是能够自动学习出交叉特征.因为这种特性,FM在CTR预估上的效果会远超LR.

说明:通过FM的公式可以看出,FM自动学习交叉是通过学习到每个特征xi的向量表示vi得到的.比如说,对于field A,其特征有100w种取值,如果使用one-hot编码。那么,每个特征需要使用100w维特征表示.使用了FM算法学习之后,比如说使用vi的特征维度是10维.那么,每个特征就可以使用10维的向量表示.这个跟word embedding的思想是一致的.所以说,FM是embedding的一种方式.
我们需要将非常大的特征向量嵌入到低维向量空间中来减小模型复杂度,而FM(Factorisation machine)无疑是被业内公认为最有效的embedding model.第一部分仍然为Logistic Regression,第二部分是通过两两向量之间的点积来判断特征向量之间和目标变量之间的关系。比如上述的迪斯尼广告,occupation=Student和City=Shanghai这两个向量之间的角度应该小于90,它们之间的点积应该大于0,说明和迪斯尼广告的点击率是正相关的。这种算法在推荐系统领域应用比较广泛。
那我们就基于这个模型来考虑神经网络模型,其实这个模型本质上就是一个三层网络:

它在第二层对向量做了乘积处理(比如上图蓝色节点直接为两个向量乘积,其连接边上没有参数需要学习),每个field都
只会被映射到一个 low-dimensional vector,field和field之间没有相互影响,那么第一层就被大量降维,之后就可以在此基础上应
用神经网络模型。
使用了FM提取出每个特征的embedding表示。
Factorization Machine: Objective and Loss
FM margin的二阶项
![\begin{split}~~~~~~~~~~~~~~~~~~~~ \sum_{i=1}^{n-1}\sum_{j=i+1}^{n}\langle v_i, v_j \rangle x_ix_j &= \frac12\left( \sum_{i=1}^{n}\sum_{j=1}^{n}\langle v_i, v_j \rangle x_ix_j - \sum_{i=1}^{n}\langle v_i, v_j \rangle x_ix_j \right) &\#三角阵= 0.5* (矩阵 - 对角阵)\\ &= \frac12\left( \sum_{i=1}^{n} \sum_{j=1}^{n} \sum_{l=1}^k v_{il} v_{jl} x_ix_j - \sum_{i=1}^n \sum_{l=1}^k v_{il}^2 x_i^2 \right) &\#展开特征向量\\ &= \frac12 \sum_{l=1}^k\left( \sum_{i=1}^{n} v_{il} x_i \sum_{j=1}^{n} v_{jl} x_j - \sum_{i=1}^n v_{il}^2 x_i^2 \right) &\#提取公共部分\\ &= \frac12 \sum_{l=1}^k \left[\left( \sum_{i=1}^{n} (v_{il} x_i) \right)^2 - \sum_{i=1}^n (v_{il} x_i)^2 \right] &\#转换成“和的方-方的和”形式\\ \end{split}](/https://i-blog.csdnimg.cn/blog_migrate/263210e06480d4e97a426701fd21b0bf.png)
因此
![\begin{split}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \phi(x) &= w_0 + \sum_{i=1}^nw_ix_i + \sum_{i=1}^{n-1}\sum_{j=i+1}^{n}\langle v_i, v_j \rangle x_ix_j \\ &= w_0 + \sum_{i=1}^nw_ix_i + \frac12 \sum_{l=1}^k \left[\left( \sum_{i=1}^{n} (v_{il} x_i) \right)^2 - \sum_{i=1}^n (v_{il} x_i)^2 \right] \end{split}](/https://i-blog.csdnimg.cn/blog_migrate/78f844ede3e7af4130bd8d398241ca2c.png)
通过这种转化,可以将计算复杂度从
降低到
。
由于数据非常稀疏,某个feature的绝大多数项目为0,用 m(x) 表示特征 x 的非0项,用
表示 m(x) 的均值,则复杂度可以表示为
。
FM 的Objective和Loss基本一致,只是替换了margin
的写法:

损失函数Loss即

其中
![\begin{split}~~~~~~~~~~~~~~~~~~~~ P[click ~|~ impression] = f_w(x) &= \frac1{1+e^{-\phi(x)}} \\ &= \frac1{1+e^{-w_0 + \sum_{i=1}^nw_ix_i + \frac12 \sum_{l=1}^k \left[\left( \sum_{i=1}^{n} (v_{il} x_i) \right)^2 - \sum_{i=1}^n (v_{il} x_i)^2 \right] }} \end{split}](/https://i-blog.csdnimg.cn/blog_migrate/f87e032f0f603e12569d29784089410e.png)
FM算法作为CTR预估中的经典算法,能自动学习交叉特征,显著提升预测精度。本文介绍了FM算法的工作原理,包括如何通过向量表示进行特征嵌入以降低模型复杂度,并讨论了该算法在推荐系统的应用。

1327

被折叠的 条评论
为什么被折叠?



