Neural Factorization Machine -学习笔记

news/2024/5/19 21:50:21 标签: 机器学习, 深度学习, 推荐算法

动机

在推荐系统中,交叉特征(Cross Features)可以深入挖掘特征之间的潜在关系,提升模型效果。例如,把职业特征 o c c u p a t i o n = { b a n k e r , d o c t o r } occupation=\left\{banker,doctor\right\} occupation={banker,doctor}和性别特征 g e n d e r = { M , F } gender=\left\{M,F\right\} gender={M,F}进行交叉组合,可以得到新特征 o c c u p a t i o n _ g e n d e r = { b a n k e r _ M , b a n k e r _ F , d o c t o r _ M , d o c t o r _ F } occupation\_gender=\left\{banker\_M,banker\_F,doctor\_M,doctor\_F\right\} occupation_gender={banker_M,banker_F,doctor_M,doctor_F}

Factorization Machine(FM)是挖掘交叉特征有代表性的模型,它的表达式如下:
y F M ( x ) = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n v i T v j ⋅ x i x j y_{FM}(x) = w_0+\sum^n_{i=1}w_ix_i+\sum^n_{i=1}\sum^n_{j=i+1}v_i^Tv_j·x_ix_j yFM(x)=w0+i=1nwixi+i=1nj=i+1nviTvjxixj
上式中, ∑ i = 1 n w i x i \sum^n_{i=1}w_ix_i i=1nwixi是一阶特征, ∑ i = 1 n ∑ j = i + 1 n v i T v j ⋅ x i x j \sum^n_{i=1}\sum^n_{j=i+1}v_i^Tv_j·x_ix_j i=1nj=i+1nviTvjxixj是二阶交叉特征。FM的精髓在于用两个隐向量( v i 、 v j v_i、v_j vivj)的内积来表示特征组合 < x i , x j > <x_i,x_j> <xi,xj>的权重。这种通过更新隐向量来更新组合权重的方式不需要保证该组合存在,从而使模型具有一定的泛化性。

本篇论文的作者认为,FM虽然具备较好的特征交叉能力,但是它的缺点也很明显:FM的特征交叉方式本质上是线性组合,并且特征交叉的阶数也局限于二阶,原因是如果阶数过高,会引发组合爆炸问题,带来巨大的计算负担。

针对上述问题,论文作者提出了Neural Factorization Machine(NFM)。该模型使用深度神经网络(DNNs)取代上面FM式子中的二阶项,让DNNs来负责特征交叉的建模,如下面式子所示:
y F M ( x ) = w 0 + ∑ i = 1 n w i x i + f ( x ) y_{FM}(x) = w_0+\sum^n_{i=1}w_ix_i+f(x) yFM(x)=w0+i=1nwixi+f(x)
同时,为了防止网络层数过深导致的退化问题,作者还设计了一种新的特征交叉网络层——Bi-Interaction Layer。

Neural Factorization Machine

NFM的网络架构图如下所示:
在这里插入图片描述
其实,上图中只画出了NFM的二阶特征交叉部分,一阶部分和FM类似,这里不再赘述。在NFM中,负责特征交叉的是B-Interaction LayerHidden Layers

在B-Interaction Layer中,作者提出了一种名为Bi-Interaction Pooling的操作,表达式为:
f B I ( V x ) = ∑ i = 1 n ∑ j = i + 1 n x i v i ⊙ x j v j f_{BI}(V_x) = \sum_{i=1}^n\sum_{j=i+1}^nx_iv_i⊙x_jv_j fBI(Vx)=i=1nj=i+1nxivixjvj
其中 ⊙ ⊙ 是点对点乘积(element-wise product), v i , v j v_i,v_j vi,vj分别是 x i , x j x_i,x_j xi,xj对应的隐向量。

HIdden Layers的表达式如下:
z 1 = σ 1 ( W 1 f B I ( V x ) + b 1 ) z 2 = σ 2 ( W 2 z 1 + b 2 ) … … z L = σ L ( W L z L − 1 + b L ) z_1 = σ_1(W_1f_{BI}(V_x)+b_1) \\ z_2 = σ_2(W_2z_1+b_2) \\ ……\\ z_L=σ_L(W_Lz_{L-1}+b_L) z1=σ1(W1fBI(Vx)+b1)z2=σ2(W2z1+b2)zL=σL(WLzL1+bL)
最后,向量 z L z_L zL通过预测层得到最终的预测分数:
f ( x ) = h T z L f(x) = h^Tz_L f(x)=hTzL

总结

Neural Factorization Machine使用DNNs替换FM中的二阶交叉特征部分,使得网络能够突破阶数的限制,学习更加高阶的交叉特征。


http://www.niftyadmin.cn/n/1701324.html

相关文章

Java回顾之多线程同步

在这篇文章里&#xff0c;我们关注线程同步的话题。这是比多线程更复杂&#xff0c;稍不留意&#xff0c;我们就会“掉到坑里”&#xff0c;而且和单线程程序不同&#xff0c;多线程的错误是否每次都出现&#xff0c;也是不固定的&#xff0c;这给调试也带来了很大的挑战。 在这…

python-tensorflow不定型变量

import tensorflow as tf#1、定义一个不定形状的变量 x tf.Variable(initial_value [],dtype tf.float32,trainableFalse, #不把它加载到内存环境中间&#xff0c;单独维护它validate_shapeFalse #设置为True&#xff0c;表示在变量更新的时候&#xff0c;运行shape的检…

初步实现 I18N 插件

2019独角兽企业重金招聘Python工程师标准>>> 本文是《轻量级 Java Web 框架架构设计》的系列博文。 在 JSTL、Struts、Spring 中都提供了 I18N&#xff08;国际化&#xff09;支持&#xff0c;也就是说&#xff0c;同一个页面可支持多种语言&#xff0c;这是一个非…

Attentional Factorization Machines - 学习笔记

引言 本篇文章介绍的是Attentional Factorization Machines(AFM)。AFM开创性地将注意力机制引入到因子分解机(Factorization Machines)中&#xff0c;可视为FM和NFM的延续之作&#xff0c;这两个模型在前面博客中已经进行了介绍&#xff0c;有兴趣的读者可以点击蓝色链接进行深…

XMPP 安装ejabberd 搭建服务器环境

网上各种找。。各种安装失败。。 终于。。。。 ejabberd 下载列表。。。。 http://www.process-one.net/en/ejabberd/archive/ 建议下载old 版本。。。 我用得是ejabberd-2.1.11-darwin-x86_64-installer.app.zip 下载完。安装&#xff08;注意&#xff1a;&#xff1a;记住…

python-tensorflow模型保存、提取

模型保存 import tensorflow as tf#%% #模型保存 with tf.variable_scope(a,reusetf.AUTO_REUSE):v1 tf.get_variable(namev1,initializertf.constant(3.0))v2 tf.get_variable(namev2,initializertf.constant(4.0))result v1 v2saver tf.train.Saver()with tf.Session() …

python-tensorflow多个图

import tensorflow as tf a tf.constant([[1,2],[3,4]],dtypetf.int32) b tf.constant([5,6,7,8],dtypetf.int32,shape[2,2])print("变量a是否在默认图中&#xff1a;{}".format(a.graph is tf.get_default_graph()))#使用新的构建的图 graph tf.Graph() with gra…

python-tensorflow tensorboard

2021-04-12 一直不知道怎么调试tensorflow模型&#xff0c;怎么样算好&#xff0c;遇到问题怎么办&#xff0c;目前还不知道怎么解决&#xff0c;听说tensorboard在调试过程种有很好的效果&#xff0c;花了一天时间了解学习。 本文主要讨论常用的几个应用&#xff1a; 1&…