recSys&ctr

FM以及DeepFM学习笔记

2018-09-21  本文已影响266人  Evermemo

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

上一篇下一篇

猜你喜欢

热点阅读