推荐模型-上下文感知-2017:NFM【FM家族】

在这里插入图片描述
在这里插入图片描述
He X, Chua T S. “Neural factorization machines for sparse predictive analytics” in SIGIR 2017

FNN探索了FM与DNN相结合的方式,而Wide&Deep则给出了一种模型组合的思路,NFM通过设计一种结构,把FM和DNN直接组合了起来,不同于FNN需要两阶段训练,NFM是一个同时包含了FM和DNN两部分的完整模型,训练过程是端到端的。我们先来看一下NFM的公式:
在这里插入图片描述
可以看出,与FM的公式相比,前两项是一样的,只有第三项由原来的二阶隐向量内积变成了f(x)。
在这里插入图片描述
这是因为作者认为二阶交叉表达能力有限,需要用一个功能更强大的函数来代替,而这个函数就是一个带向量交叉的神经网络。NFM模型如图4所示(这里没有把线性部分画出来)。

在这里插入图片描述
其核心是Bi-Interaction Pooling部分,它的作用是实现输入向量的两两相乘,然后累加起来,再送入DNN做进一步的交叉。

Bi-Interaction Pooling是NFM的核心部分,功能跟PNN中的Product Layer类似,都是实现向量相乘,详细内容可参考之前的文章:PNN。不过在细节处理上,NFM跟PNN以及FM有些不一样。BI层的公式如下:

在这里插入图片描述
这里是两个向量对应元素的乘积(element-wise product of two vectors),而不是点积,点积之后是一个标量,而BI层的两个向量相乘之后依然是一个k维向量:
在这里插入图片描述
向量两两相乘之后,把所有这些结果向量进行相加(Sum Pooling),得到“一个”k维向量,起到了池化的作用。对于FM模型来说,到这一步就结束了,但NFM还会将这个k维向量送入DNN做进一步的非线性变换,使得FM的能力通过神经网络得到进一步的增强,一些更高阶的特征交叉得到了隐式的实现。

通过BI层,NFM把FM的显式二阶交叉和DNN的隐式高阶交叉能力组合到了一起,训练时,参数可以通过DNN反向传播到FM的隐向量进行统一更新,实现了真正的端到端训练。

在实现上,NFM在BI层采用了Dropout来避免过拟合,采用了BatchNormalization避免输入层的参数分布改变隐藏层和输出层的分布。论文通过实验还发现DNN网络并不是越深越好,1层的网络效果优于更多层,也优于0层。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值