xDeepFM模型

xDeepFM模型

介绍

推荐系统中一般将类别特征(categorical feature)转换成one-hot向量,如果仅适用原始特征一般不能达到很好的效果。一种主要的提升方法就是在类别特征上应用交叉特征,如FM模型。如一个3阶交叉特征AND(user_organization=msra, item_category=deeplearning, time=monday)就表示在msra工作且在周一展示深度学习相关论文。

FM模型将每个特征i转换成隐向量 v i = [ v i 1 , v i 2 , . . . , v i D ] v_i=[v_{i1},v_{i2},...,v_{iD}] vi=[vi1,vi2,...,viD],并且使用隐向量内积来表示两两特征间的交互: f ( 2 ) ( i , j ) = < v i , v j > x i x j f^{(2)}(i,j)=<v_i,v_j>x_ix_j f(2)(i,j)=<vi,vj>xixj. 但是传统的FM很难再扩展到更高阶的特征交互。目前,一种方法就是使用深度神经网络来学习高阶特征,如FNN,PNN。FNN和PNN的一个缺点是它们更关注高阶特征交互而忽视了低阶特征交互。而DeepFM等模型通过引入混合网络来学习高阶和低阶的特征交互。这些基于DNN的模型缺点如下:模型学习出的是隐式的交互特征,其形式是未知的、不可控的;同时它们的特征交互是发生在元素级(bit-wise)而不是特征向量之间(vector-wise),这一点违背了因子分解机的初衷。

预备知识

1.嵌入层(Embedding Layer)

计算机视觉或者nlp中,输入通常是图像或者文本,它们具有空间相关性,所以这些稠密结果的原始特征可以直接应用到神经网络中。但是在推荐系统中,输入特征一般是稀疏的,维度很大,并且没有很强的空间相关性。因此,multi-field category形式的特征就被广泛应用到推荐系统中,比如输入[user_id=s02,gender=male,organization=msra,interesets=comedy&rock]通过field-aware one-hot encoding转换成一个维度很大的稀疏特征。
在这里插入图片描述

为了能够用深度网络学习特征,我们一般通过一个嵌入层(embedding layer,如下图所示)将原始特征转换成一个低维的、稠密的向量。我们将一个field的特征转换成一个向量,那么假设原始特征有m个field,就转换成了m个向量的集合 e = [ e 1 , e 2 , . . . , e m ] e=[e_1,e_2,...,e_m] e=[e1,e2,...,em],其中, e i ∈ R D e^i\in{R^D} eiRD,D是field embedding的维度。
在这里插入图片描述

2.隐式高阶特征和显式高阶特征

1、 隐式高阶特征
FNN、Deep Crosing以及Wide&Deep网络的深度部分是将field embedding vector e输入到前向神经网络来学习高阶特征交互,前向传播过程如下:
x 1 = σ W ( 1 ) e + b 1 x^1=\sigma{W^{(1)}e+b^1} x1=σW(1)e+b1
x k = σ W ( k ) x ( k − 1 ) + b k x^k=\sigma{W^{(k)}x^{(k-1)}+b^k} xk=σW(k)x(k1)+bk
k表示网络第k层。这种网络模型的特征交互是元素级别(bit-wise)的。元素级别是说即使同一个field embedding vector的元素也会互相影响。

PNN和DeepFM在上述网络的基础上,添加了一个交互层,从而能够同时学习元素级和向量级(vector-wise)的特征交互。PNN和DeepFM网络模型图如下:
在这里插入图片描述

2、 显式高阶特征
Deep Cross Network(DCN),网络结构图如下。
在这里插入图片描述

不同于典型的全连接前向传播网络,DCN隐藏层交叉操作计算公式如下:
x k = x 0 x k − 1 T w k + b k + x k − 1 x_k=x_0x_{k-1}^Tw_k+b_k+x_{k-1} xk=x0xk1T​<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值