本文主要是介绍deepcross network(DCN)算法 xdeepfm是DCN的进阶,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
揭秘 Deep & Cross : 如何自动构造高阶交叉特征
https://zhuanlan.zhihu.com/p/55234968
Deep & Cross Network总结
Deep和Cross不得不说的秘密
[深度模型] Deep & Cross Network (DCN)
https://mp.weixin.qq.com/s/Xp_xTmcx56tJqfjMhFsArA (写的不错)
深度CTR之xDeepFM:融合了显式和隐式特征交互关系的深度模型推荐系统
https://mp.weixin.qq.com/s/-GBnnWMjRjvoqOrv6QbsVg (写的不错)
目录
一 DCN
二 xdeepfm
一 DCN
二 xdeepfm
下面是作者通过对比前人的工作的优缺点,引出了自己的xDeepFM模型结构。
-
FM:由于paper介绍的是xDeepFM模型,所以在说到FM模型时,对于FM模型中的每个特征的embedding向量中的每一个元素,paper中称之为
bit
。经典的FM模型可以引入任意高阶的交互特征; -
AFM:但是建模所有特征的交互关系有可能引入无用的特征,甚至给模型带来噪音;
-
FNN:在DNN之前有使用FM预训练好的field embedding,可以学习高阶特征;
-
PNN:在embedding层和DNN层之间有product层,而且不需要依赖预训练。但是PNN和FNN都有共同的缺点-都聚焦在高阶交互特征上而对低阶交互特征关注较少;
-
Wide&Deep:通过引入浅层模块和深层模块的组合结构,使得学习过程具有记忆性和泛化性,可以同时学习到低阶和高阶的交互特征。
-
DeepFM:通过引入浅层模块和深层模块的组合结构构,使得学习过程具有记忆性和泛化性,可以同时学习到低阶和高阶的交互特征;
-
DCN:捕捉有界阶数的交互特征;
-
xDeepFM:以vector-wise形式来显式生成特征交互,使用CIN模块来代替DCN中的cross网络模块,CIN可以显式的学习交互关系,并且随着网络的加深,特征交互关系的阶数也在变大。并且仿照Wide&Deep和DeepFM的组合式网络结构,xDeepFM组合了显式高阶交互模块、隐式高阶交互模块和传统的FM模块。
可以看到xDeepFM相比于DeepFM模多了一个显式高阶交互模块。该显式高阶交互模块是在vector-wise层面建模的。
paper中作者提到的三个主要贡献(其中前两个也是本文xDeepFM模型相比于其他模型的最主要特点和优势):
-
有效结合了显式高阶交互模块、隐式高阶交互模块,不需要人工特征工程;
-
设计了CIN模块可以学习显式高阶交互,并且特征交互阶数往后每一层都会增加,以vector-wise方式代替普通DNN的bit-wise方式;
-
在3个数据集上对比了其他的SOTA算法,证明了xDeepFM模型结构的有效性。
paper中一个有意思的论述式:DNN模型多是在bit-wise层面建模特征交互关系,而FM模型则是在vector-wise层面建模特征交互关系。所以还很难说在推荐领域,DNN模型就是用来建模高阶交互关系的最有效的模型。
xDeepFM将线性模块、CIN模块、DNN模型三者组合起来互为补充,分别提供的姐特征、显式高阶特征、隐式高阶特征。
预测结果的计算公式、loss函数、优化的目标函数分为如公式(15)、公式(16)、公式(17)所示,这里比较简单,不再解释。
对于paper中提到的xDeepFM和FM、DeepFM的关系:
-
对于xDeepFM,将CIN模块的层数设置为1,feature map数量也为1时,其实就是DeepFM的结构,因此DeepFM是xDeepFM的特殊形式,而xDeepFM是DeepFM的一般形式;
-
在1中的基础上,当我们再将xDeepFM中的DNN去除,并对feature map使用一个常数形式的
sum filter
,那么x就DeepFM退化成了FM形式了。
这篇关于deepcross network(DCN)算法 xdeepfm是DCN的进阶的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!