Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)(2)

简介: Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)

3、  xDeepFM

xDeepFM是一种新的压缩交互网络(Compressed Interaction Network,CIN),目标是以显式方式在矢量级上生成特征交互。一方面,xDeepFM 能够显式地学习某些边界度特征交互。另一方面,它可以隐式学习任意的低阶和高阶特征交互。

CIN网络设计的优点:1)以vector-wise而不是bit-wise形式得到特征交叉关系;2)可以得到显式的特征高阶交叉关系;3)参数容量不会随着网络层数的加深而呈指数形式上升。embedding向量是看做vector-wise形式的特征交互,然后将多个field embedding表示成矩阵X0,其中,X0的第i个field特征的嵌入向量(X_i,*)0=ei,D为field embedding向量维度,对应的CIN第k层的输出为矩阵Xk。对于每一层, 是通过下面的方式计算的:


其中,Wk,h表示用于计算第k层输出中的第h行向量 X(i,*)k 的一个参数矩阵,因此W(i,j)k,h是一个标量数值,即对哈达玛积计算标量倍数。X_k是通过Xk-1和X0计算得到的,因此特征交互关系是通过显性计算的,并且特征交互的阶数随着层数的增加也在加深。CIN结构如图4所示。


图4. 压缩交互网络(CIN)的组成部分和架构

作者分析,CIN的结构非常类似于RNN结构,即下一层输出的结果取决于上一层输出的结果和一个额外的输入,而且我们在每层中都是用这样的结构,因此特征交互关系就是在vector-wise水平上得到的。此外,如图22(a),CIN还与CNN有类比性,引入一个中间张量(intermediate tensor) Zk+1,它是关于隐藏层Xk和X0的一个outer products(沿着embedding维度),因此可以将 Zk+1看做一幅图像,并且 Wk,h 是一个filter。如图22(b)所示,我们将filter沿着 Zk+1的embedding维度方向做平滑操作,即可得到隐向量 X(i,*)k,将其称为一个feature map,因此 Xk 就是 Hk 个不同feature map的集合,Xk+1就是 Hk+1个不同feature map的集合。CIN中的名词compressed是指第k个隐层将 Hk-1*m 个向量的潜在空间压缩至个 Hk 向量。如图22(c)所示,表达CIN的整体结构,用T表示CIN的深度,每一个隐藏层 Xk(k属于[1,T]) 和输出单元都有关联,在第k个隐层,在其中每个feature map上,完成sum pooling操作,即:


对于第k个隐层,可以得到pooling之后的向量:


对于所有隐层的pooling之后的向量,将它们concat之后作为输出单元:


直接使用CIN用于二分类,那么输出单元就是一个sigmoid节点:



当前SOTA! 平台收录xDeepFM共6个模型实现资源。

项目 SOTA!平台项目详情页

xDeepFM

前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/xdeepfm


4、 DIN

针对特定的一件商品的推荐,如果特征中包含用户的历史行为,那么不能一概而论地对所有商品进行均等地计算,而以往的Embedding&MLP类型方法中,对历史商品没有侧重,这是不合理的。在DIN中,作者针对目标item对历史行为进行了attentive learning。举例来说,如果一个人买了一件游泳镜,那这一定是因为这个人之前买过泳装、泳帽之类的东西,跟这个人买的羊毛衫、电脑之类的其它东西不太相关。基于此,提出了 DIN 模型。DIN引入 local activation unit 计算历史行为与候选商品的相关性,之后对用户的兴趣点做weighted sum pooling ,得到对当前候选商品用户兴趣的表示向量。与候选商品相关性越高的行为,激活权重越大,在用户兴趣表征中占主导地位。那么对不同的候选商品,用户兴趣的表达向量是不同的,提高了模型在有限维度下的表征能力,能够更好地捕捉用户的各种兴趣。文章还提出一种适应性的正则化方法,以及由PReLU推广而来的适应性的Dice激活函数。

对于某条数据,可以表示为如下形式:


下表为全部特征,主要由4类组成:用户基本特征、用户行为特征、候选商品特征、上下文特征。表1. 阿里巴巴展示广告系统中使用的特征集的统计。特征是由稀疏的二进制向量组成的,以分组的方式展示

图5. 网络结构。左边部分是base模型(嵌入和MLP)的网络。将属于一个商品的cate_id、shop_id和goods_id的嵌入连接起来,代表用户行为中的一个访问过的商品。右边部分是DIN模型。它引入了一个局部激活单元,在不同的候选广告中,用户兴趣的表示是自适应变化的

图5 左侧为base模型的结构。base模型主要包含:Embedding layer、Pooling layer and Concat layer、MLP。损失函数为二分类的交叉熵损失函数,S是N个训练样本,x是模型输入,标签y∈(0,1),p(x)是模型经过softmax层后的输出,代表这条样本x的候选商品被点击的概率



用户行为特征至关重要,与候选商品相关的历史行为对点击有很大的影响。DIN考虑历史行为的相关性,自适应地计算用户兴趣的表示向量,而不是用同一个向量来表达所有的不同兴趣。DIN引入 local activation unit,其他结构与 base model 相同,activation unit 应用在用户行为特征上,作为一个 weighted sum pooling,适应性的计算用户embedding向量。对于候选商品A,用户U的embedding向量可以表示为:

其中,e_1、e_2、...e_H代表H个用户行为特征embedding,v_A代表候选商品的embedding,a(·)是一个前向网络,输入两个embedding向量,输出权重。与传统attention方法不同,为了保留用户兴趣的强度,没有约束∑w_j=1。这里的∑w_j可以被看作在某一方面激活用户兴趣强度的近似,比如某用户历史行为包括90%的衣服和10%的电子产品,那么对于T恤和手机两个候选商品,T恤将会激活历史行为中的大部分衣物行为,会得到更大的,也就是相比于手机,对T恤有更强烈的兴趣。

在阿里巴巴的广告系统中,商品和用户的数量高达数亿。实际上,用大规模的稀疏输入特征训练工业深度网络是一个巨大的挑战。作者在文中介绍了两种重要的且在实践中有效的技术。

Mini-batch Aware Regularization
一种自适应的正则化方法,只计算在每个mini-batch中出现的特征的相关参数的L2范数。实际上,embedding dictionary 占据了网络模型的大部分参数量,令W∈RDxk代表整个 embedding dictionary 的参数,D是embedding向量的维度,K是特征空间的维度,在样本上表示为:



在mini-batch形式下,B代表batch的个数,B_m代表第m个batch,上式可表示为:




代表在第m个batch中是否有至少一个样本包含feature ID j,则上式可近似表示为:



那么,得到一个近似的带有L2正则的mini-batch参数更新方法,对第m个batch,feature j的embedding权重更新为:



Data Adaptive Activation Function
经典的激活函数PReLU如下:



其中,s是激活函数f(-)的输入的一个维度,p(s)=I(s>0)是一个指标函数,它控制f(s)在f(s)=s和f(s)=αs两个通道之间切换,第二个通道的α是一个学习参数。这里把p(s)称为控制函数。当各层的输入服从不同的分布时,PReLU取0值作为恒定的修正点可能不合适,因此提出一种根据输入的分布而自适应的激活函数,叫做Dice。当E和Var都为0时,Dice就退化为PReLU。



与PReLU的不同之处在于p(s),在训练时E和Var是每个mini-batch输入的均值和方差,在测试阶段,E和Var是数据E和Var的平均,ε防止分母为0,设为1e-8。图24的左边部分绘制出了PReLU 的控制功能,右侧为Dice的控制函数。


图6. PReLU和Dice控制函数

当前SOTA! 平台收录DIN共17个模型实现资源。

项目 SOTA!平台项目详情页
DIN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/din-2



相关文章
|
1月前
|
机器学习/深度学习 搜索推荐 大数据
深度解析:如何通过精妙的特征工程与创新模型结构大幅提升推荐系统中的召回率,带你一步步攻克大数据检索难题
【10月更文挑战第2天】在处理大规模数据集的推荐系统项目时,提高检索模型的召回率成为关键挑战。本文分享了通过改进特征工程(如加入用户活跃时段和物品相似度)和优化模型结构(引入注意力机制)来提升召回率的具体策略与实现代码。严格的A/B测试验证了新模型的有效性,为改善用户体验奠定了基础。这次实践加深了对特征工程与模型优化的理解,并为未来的技术探索提供了方向。
94 2
深度解析:如何通过精妙的特征工程与创新模型结构大幅提升推荐系统中的召回率,带你一步步攻克大数据检索难题
|
1月前
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
27 4
|
1月前
|
机器学习/深度学习 搜索推荐 TensorFlow
使用Python实现智能电子商务推荐系统:深度学习模型详解
使用Python实现智能电子商务推荐系统:深度学习模型详解
174 4
|
2月前
|
搜索推荐 算法
模型小,还高效!港大最新推荐系统EasyRec:零样本文本推荐能力超越OpenAI、Bert
【9月更文挑战第21天】香港大学研究者开发了一种名为EasyRec的新推荐系统,利用语言模型的强大文本理解和生成能力,解决了传统推荐算法在零样本学习场景中的局限。EasyRec通过文本-行为对齐框架,结合对比学习和协同语言模型调优,提升了推荐准确性。实验表明,EasyRec在多个真实世界数据集上的表现优于现有模型,但其性能依赖高质量文本数据且计算复杂度较高。论文详见:http://arxiv.org/abs/2408.08821
62 7
|
1月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统的矩阵分解和FM模型
推荐系统的矩阵分解和FM模型
21 0
|
5月前
|
机器学习/深度学习 搜索推荐 算法
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
登录注册 热门图书 图书分类 图书推荐 借阅图书 购物图书 个人中心 可视化大屏 后台管理
13131 2
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
|
4月前
|
机器学习/深度学习 数据采集 搜索推荐
打开黑盒神经网络!港大推出全新会说话的推荐系统大模型XRec,从黑盒预测到可解释
【7月更文挑战第2天】港大研发XRec模型,将可解释性引入推荐系统。XRec结合大型语言模型的语义理解与协同过滤,生成推荐的文本解释,提升透明度。该模型无关设计允许与各类推荐系统配合,增强用户体验。然而,计算资源需求高、数据质量和用户理解能力可能影响其效果。[查看论文](https://arxiv.org/pdf/2406.02377)**
69 11
|
6月前
|
数据采集 机器学习/深度学习 搜索推荐
使用Python实现推荐系统模型
使用Python实现推荐系统模型
137 1
|
6月前
|
算法 搜索推荐 Python
探索Python中的推荐系统:混合推荐模型
探索Python中的推荐系统:混合推荐模型
398 1
|
6月前
|
存储 搜索推荐 算法
大模型开发:在构建推荐系统时,你会考虑哪些因素?
构建推荐系统涉及关键因素:用户行为数据(理解兴趣)、物品属性(相似性分析)、上下文信息(时间、地点)、冷启动问题(新用户/物品推荐)、可扩展性与性能(高效算法)、多样性(避免单一推荐)、可解释性(增强信任)和评估优化(准确性和用户满意度)。通过综合运用这些因素,打造精准且有效的推荐服务。
127 1