美文网首页
推荐系统 - 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