本文主要是介绍【FM-RS】真伪DeepFM:DeepFM、xDeepFM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DeepFM IJCAI’17
理解一:这篇文章在模型的设计上紧随Google的Wide & Deep,用FM来代替Wide & Deep的部分,从而可以避免人工设计特征工程。
理解二:分别利用线性模型、FM、DNN得到一阶特征、二阶特征、高阶特征。
模型
我们假设训练集当中一共有 n n n条样本,每一条样本可以写成 ( χ , y ) (\chi, y) (χ,y)。其中的是一个 m m m个field组成的向量,包含了用户和item等组成的特征。 y ∈ { 0 , 1 } y \in\{0,1\} y∈{0,1}, y = 0 y=0 y=0表示用户没有点击,相反, y = 1 y=1 y=1表示用户点击。
这m维特征可以看成两部分组成,第一部分是类别特征,比如性别、地理位置、收入情况等等。第二种是连续性特征,比如平均花费、平均停留时间等等。类别特征(categorical feature)一般被表示成一个one-hot之后的向量,而一个连续特征,一般就是表示它自己,当然也可以离散化成one-hot向量。
我们把这些特征全部处理完之后,整个向量会转化成 x = [ x field 1 , x field 2 , ⋯ , x field m ] x=\left[x_{\text {field }_{1}}, x_{\text {field }_{2}}, \cdots, x_{\text {field }_{m}}\right] x=[xfield 1,xfield 2,⋯,xfield m]。由于这当中做了一些离散化的处理,会使得x向量变得非常稀疏。

模型由三部分组成:
1、 线性模型,原始特征直接输入线性模型得到一个logit值。
2、 每个特征对应一个embedding,embedding互相做内积,得到 m ( m − 1 ) 2 \frac{m(m-1)}{2} 2m(m−1)个logit值。
所以以上两部分其实就是FM模型:
y ^ = ∑ i = 1 n w i x i + ∑ i = 1 n − 1 ∑ j = 1 n v i T v j x i , x j \hat{y}=\sum_{i=1}^{n} w_{i} x_{i}+\sum_{i=1}^{n-1} \sum_{j=1}^{n} v_{i}^{T} v_{j} x_{i}, x_{j} y^=i=1∑nwixi+i=1∑n−1j=1∑nvi<
这篇关于【FM-RS】真伪DeepFM:DeepFM、xDeepFM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!