美文网首页recSys&ctr
FM以及DeepFM学习笔记

FM以及DeepFM学习笔记

作者: Evermemo | 来源:发表于2018-09-21 16:24 被阅读266次

    FM以及DeepFM

    1.FM

    在计算广告和推荐系统中,CTR预估(click-through rate)是非常重要的一个环节,判断一个商品的是否进行推荐需要根据CTR预估的点击率来进行。在进行CTR预估时,除了单特征外,往往要对特征进行组合。

    1.1 FM要解决的问题。

    FM(Factorization Machine, 因子分解机)主要用来解决,数据系数的情况下,特征怎样组合的问题。
    下面举个例子:

    enter description here

    clicked是分类值,表明用户有没有点击该广告。1表示点击,0表示未点击。而country,day,ad_type则是对应的特征。对于这种categorical特征,一般都是进行one-hot编码处理。
    进行onehot编码的结果如下所示:

    enter description here

    因为是cateforical特征,经过onehot编码后,样本的数据会变得十分稀疏,并且会导致特征空间扩大很多倍。

    1.2 特征组合

    为了表示特征间的相关性,我们采用了多项式模型,这里我们只考虑二阶特征的组合,那么我们可以用下面这个式子作为模型的表达式:
    y = \omega_0 + \sum_{i = 1}^n{\omega_i}{x_i} + \sum_{i = 1}^n\sum_{j= i+1}^n\omega_{ij}{x_i}{x_j}
    n表示样本的特征数量,x_i表示第i个特征。

    1.3 FM求解

    从上面的表达式我们可以看出,在组合部分的特征相关参数共有n(n-1)/2个。在矩阵很稀疏的情况下,矩阵中为0的值特别多,这将导致\omega_{ij}无法直接训练出来。
    为了求出\omega_{ij},我们对每一个特征分量x_{i}引入辅助向量V_i=(v_{i1},v_{i2},···,v_{in})。然后利用V_i*V_j^{T}\omega_{ij}进行求解。

    enter description here
    那么 enter description here

    然后我们再利用公式:

    enter description here

    具体推导如下:

    image
    最后我们对 enter description here

    2. DeepFM

    DeepFM主要包括两个部分,神经网络部分和因子分解机部分,分别负责提取低阶特征和高阶特征。并且这两部分共享权重矩阵,即共享Embedding层。DeepFM的预测结果可以写为:

    enter description here

    2.1 FM部分

    enter description here

    2.2 Deep部分

    enter description here

    Deep部分主要用来处理高阶特征(2阶以上)。

    2.3 注意事项

    Dense Embedding层最开始是随机初始化的,后面经过FM的训练,成为图中所示的Dense Embedding层,Dense Embedding层的权重同时输入到FM部分和deep部分,并且由两者共同训练。
    在最后进行求和时,y的值为FM的一阶部分加上偏置再加上deep部分得到的高阶部分。

    参考资料

    1.https://www.jianshu.com/p/152ae633fb00
    2.https://www.jianshu.com/p/6f1c2643d31b

    相关文章

      网友评论

        本文标题:FM以及DeepFM学习笔记

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