美文网首页
推荐系统 - DeepFM模型

推荐系统 - DeepFM模型

作者: nlpming | 来源:发表于2021-06-22 00:38 被阅读0次

1. 简介

  • DeepFM模型2017年由哈尔滨工业大学与华为公司联合提出,将FM的模型结构与Wide&Deep模型进行了整合。DeepFM对Wide&Deep模型的改进之处在于,它用FM替换了原来的Wide部分,加强了浅层网络部分特征组合能力。DeepFM模型结构如下,左边的FM部分与右边的DNN部分共享相同的Embedding层;
DeepFM整体结构.png

2. DeepFM模型结构

2.1 FM部分

FM部分.png

2.2 Deep部分

Deep部分.png

2.3 DeepFM目标函数

\hat{y} = sigmoid(y_{FM} + y_{DNN})
y_{FM} = <w, x> + \sum_{j_1=1}^{d} \sum_{j_2=j_1+1}^{d} <v_i, v_j>x_{j_1}x_{j_2}
\begin{align} a^{(0)} &= \left[ e_1, e_2, ..., e_m \right] \\ a^{(l+1)} &= \sigma(W^{(l)}a^{(l)} + b^{(l)}) \\ y_{DNN } &= \sigma(W^{|H|+1}a^{H} + b^{|H|+1}) \end{align}

  • 上式中,d表示特征数;e_i表示第i个特征域对应的embedding,总共有m个特征域;|H|表示DNN隐层数量。

3. DeepFM模型理解

  • DeepFM模型,注意事项:
    (1)对于线性层,sparse id类特征和dense特征直接输入到linear层;
    (2)FM 2阶交叉层:只有sparse id特征编码之后才会输入到该层,dense特征想要和sparse特征做特征交叉必须分桶处理;
    (3)sparse id转成embedding向量之后才输入到DNN模型中;
    (4)dense类特征输入到DNN模型需要做归一化处理;
  • deepfm tensorflow代码实现:https://github.com/shenweichen/DeepCTR/blob/master/deepctr/models/deepfm.py
DeepFM模型理解.png

参考资料

相关文章

网友评论

      本文标题:推荐系统 - DeepFM模型

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