美文网首页
推荐系统排序算法--DeepFM模型

推荐系统排序算法--DeepFM模型

作者: 算法手记 | 来源:发表于2019-12-25 02:24 被阅读0次

    1、背景

    对于一个基于CTR预估的推荐系统,最重要的是学习到用户点击行为背后隐含的特征组合。在不同的推荐场景中,低阶组合特征或者高阶组合特征可能都会对最终的CTR产生影响。

    之前介绍的因子分解机(Factorization Machines, FM)通过对于每一维特征的隐变量内积来提取特征组合。最终的结果也非常好。但是,虽然理论上来讲FM可以对高阶特征组合进行建模,但实际上因为计算复杂度的原因一般都只用到了二阶特征组合。那么对于高阶的特征组合来说,我们很自然的想法,通过多层的神经网络即DNN去解决。

    DNN的局限

    下面的图片来自于张俊林教授在AI大会上所使用的PPT。我们之前也介绍过了,对于离散特征的处理,我们使用的是将特征转换成为one-hot的形式,但是将One-hot类型的特征输入到DNN中,会导致网络参数太多:

    1、DNN参数过多

    如何解决这个问题呢,类似于FFM中的思想,将特征分为不同的field:

    2、划分field

    再加两层的全链接层,让Dense Vector进行组合,那么高阶特征的组合就出来了

    3、组合高阶特征

    但是低阶和高阶特征组合隐含地体现在隐藏层中,如果我们希望把低阶特征组合单独建模,然后融合高阶特征组合。

    4、怎么把低价特征单独建模

    即将DNN与FM进行一个合理的融合:

    5、融合DNN与FM

    二者的融合总的来说有两种形式,一是并行结构,二是串行结构:

    6、并行结构 7、串行结构

    而我们今天要讲到的DeepFM,就是并行结构中的一种典型代表。

    2、DeepFM模型

    2.1 整体结构

    我们先来看一下DeepFM的模型结构:

    8、 Wide & deep architecture of DeepFM

    deepFM包含两部分:神经网络部分与因子分解机部分,分别负责低阶特征的提取和高阶特征的提取。这两部分共享同样的输入。DeepFM的预测结果可以写为:

                                            \hat{y} =sigmoid(y_{FM} + y_{DNN} )

    2.2 FM部分

    FM部分的详细结构如下:

    9、 The architecture of FM

    FM部分是一个因子分解机。关于因子分解机可以参阅文章[Rendle, 2010] Steffen Rendle. Factorization machines. In ICDM, 2010.。因为引入了隐变量的原因,对于几乎不出现或者很少出现的隐变量,FM也可以很好的学习。FM的输出公式为:

                                            y_{FM} =w_{0}+ \sum_{i=1}^n w_{i} x_{i}+ \sum_{i=1}^{n} \sum_{j=i+1}^n <v_{i}, v_{j}> x_{i} x_{j}

    2.3 深度部分

    10、 The architecture of DNN

    深度部分是一个前馈神经网络。与图像或者语音这类输入不同,图像语音的输入一般是连续而且密集的,然而用于CTR的输入一般是及其稀疏的。因此需要重新设计网络结构。具体实现中为,在第一层隐含层之前,引入一个嵌入层来完成将输入向量压缩到低维稠密向量。

    11、The structure of the embedding layer

    嵌入层(embedding layer)的结构如上图所示。当前网络结构有两个有趣的特性:

    1、尽管不同field的输入长度不同,但是embedding之后向量的长度均为k

    2、在FM里得到的隐变量V_{i k} 现在作为了嵌入层网络的权重。

    这里的第二点如何理解呢,假设我们的k=5,首先,对于输入的一条记录,同一个field 只有一个位置是1,那么在由输入得到dense vector的过程中,输入层只有一个神经元起作用,得到的dense vector其实就是输入层到embedding层该神经元相连的五条线的权重,即v_{i1} v_{i2} v_{i3} v_{i4} v_{i5} 。这五个值组合起来就是我们在FM中所提到的v_{i} 。在FM部分和DNN部分,这一块是共享权重的,对同一个特征来说,得到的Vi是相同的。

    参考文献:

    论文:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

    推荐系统遇上深度学习(三)--DeepFM模型理论和实践

    原代码地址:https://github.com/ChenglongChen/tensorflow-DeepFM

    相关文章

      网友评论

          本文标题:推荐系统排序算法--DeepFM模型

          本文链接:https://www.haomeiwen.com/subject/nruqoctx.html