推荐系统FM系列文章(二)-- DeepFM模型

0. 写在前面

前面我们介绍了FM模型的实现要点,也提到了其在推荐领域内的影响力。本篇,我们就来说说一种结合神经网络和FM的推荐模型--DeepFM,其他相关思路的模型将在后面的文章中陆续介绍。

个人心得:

  1. 结合MLP的高阶特征组合能力及FM的低阶特征交叉能力

  2. FM模型的DNN架构表示

  3. 模型的并行结构设计

论文地址:

https://arxiv.org/pdf/1703.04247.pdf

论文代码:

https://github.com/ChenglongChen/tensorflow-DeepFM

1.背景

FM模型已经被证明在业界推荐场景中具有显著效果。在深度学习神经网络如火如荼的当下,有没有一种方法能够巧妙结合起FM模型处理低阶特征交叉的能力及DNN模型高阶特征组合的特点,同时发挥两者在推荐场景下的优势呢?答案是肯定的,哈尔滨工业大学联合华为提出了一种具有并行结构的推荐模型DeepFM,很好的支持了这种特性。下面将从DeepFM模型架构,FM模块及DNN模块三部分来介绍整体模型设计。

2. 模型架构

DeepFM的模型结构如图所示。

image-20201216230919038

整个模型分为两部分,FM-part和DNN-part。FM部分利用神经网络实现了传统FM模型的表示形式,Dnn部分则是多层神经网络,最后将两部分的输出进行求和并经softmax得到推荐结果。

3. FM part

FM模块用于在DeepFM中嵌入传统的FM模型。FM神经网络模型如下图所示。

image-20201216231033423

首先看FM模块的输入层与embedding层。FM模块的输入层及embedding层与目前主流的做法没有区别,分为两步操作:

  1. 类别特征独热编码,然后接一层embedding

  2. 连续特征直接embedding

在embedding层,每个特征域field的embedding维数与传统FM模型中的向量维数k含义相同。经embedding后,输入FM计算层。这里的FM计算层实现的计算方式与传统的FM模型完全一致,如下式所示。一阶特征项将模型输入层的神经元进行加权求和,二阶交叉特征项将embedding层的各个向量进行交叉,此时,每个embedding向量的权重为1。然后,将一阶特征项与二阶特征项进行求和相加,完美实现FM的计算过程。

4. DNN part

DeepFM中DNN部分仍然沿用MLP多层神经网络的实现方式,如下图所示。

image-20201216231205993

DNN模块的输入层及embedding层与FM完全一致,这里就不赘述。DNN模块将embedding层中各个向量进行横向拼接,然后送入多层神经网络,实现特征的高阶组合。最后,将FM模块的输出与DNN模块的输出求和并经softmax层,得到模型的最终输出结果。

5. 总结

DeepFM作为将深度学习应用于推荐场景下的经典模型案例,综合了FM模型与MLP模型的优势,设计FM模块实现了特征的二阶交叉,结合多层神经网络提高模型的特征高阶交叉能力。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容