PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)(3)

简介: PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)

3、 PNN

预测用户的反应,如点击和转换,是非常重要的,并且已经在许多网络应用中使用,包括推荐系统、网络搜索和在线广告。这些应用中的数据大多是分类的,并且包含多个fields;针对这些数据的一个典型的表示方法是通过单次编码将其转化为高维稀疏二进制特征表示。面对极端的稀疏性,传统模型可能会限制其从数据中挖掘浅层模式的能力,即低阶特征组合。另一方面,由于巨大的特征空间,像深度神经网络这样的深度模型不能直接应用于高维度的输入。本文提出了一个基于产品的神经网络( Product-based Neural Networks,PNN),它有一个嵌入层来学习分类数据的分布式表示,一个产品层来捕捉领域间类别的互动模式,以及一个全连接层来探索高阶特征互动。


图8. PNN结构


PNN结构如图8所示。输入层(Input):一个类别型特征就是一个Field。比如用户信息包括:性别、职业等,这里的性别是一个Field,职业是另一个Field。图18中的Input是one-hot之后的,而且只给出了类别型特征。所以每个Field i都是一个向量,向量的大小就是类别型特征one-hot之后的维度。所以不同Field的维度是不同的。

嵌入层(Embedding):是Field-wisely Connected,就是每个Field只管自己的嵌入,Field之间网络的权重毫无关系,自己学习自己的。而且只有权重,没有bias。不同的Field之间没有关系。一个Field经过嵌入后,得到一个Feature,也就是对应的嵌入向量(Embedding Vector)。其维度一般是预先设定好的固定值,论文中采用的是10。也就是说,不同Feature的维度经过embedding后都是一样的。

Product层:product思想来源于,在CTR预估中,认为特征之间的关系更多是一种and“且”的关系,而非add"加”的关系。例如,性别为男且喜欢游戏的人群,比起性别男和喜欢游戏的人群,前者的组合比后者更能体现特征交叉的意义。Product层可以分成两个部分,一部分是线性部分l_z,一部分是非线性部分l_p。二者的形式如下:
通过引入一个 "1 "的常数信号,product层不仅可以生成二次信号p,还可以保持线性信号z,如图18所示。
其中,f_i∈RM是field i的嵌入向量。p_i,j = g(f_i, f_j )定义了成对的特征交互。PNN模型可以通过设计不同的操作而有不同的实现方式。本文提出了PNN的两个变体,即IPNN(Inner Product-based Neural Network)和OPNN(Outer Product-based Neural Network)。field i的嵌入向量f_i,是嵌入层的输出:
其中,x是包含多个field的输入特征向量,x[start_i: end_i]代表field i的独热编码向量。W_0代表嵌入层的参数,(W_0)i∈RM×(end_i-start_i+1)与field全连接。

最后,将监督训练应用于最小化对数损失,以捕捉两个概率分布之间的分歧:
IPNN
在IPNN中,首先将成对的特征交互定义为矢量内积:g(f_i, f_j ) =<f_i, f_j>。在恒定信号 "1 "的情况下,线性信息z被保留为:
至于二次信息p,g(f_i, f_j )的成对内积项形成一个方形矩阵p∈RNxN

受FM启发,作者提出了矩阵分解的想法,以降低复杂性。通过引入(W_p)nn θnT的假设,其中,θn∈RN,简化l_1的表述为:
通过对第n个节点的一阶分解,得到l_p如下:
更一般地说,我们讨论(W_p)n的K阶分解。(W_p)nnθnT只是强假设下的一阶分解。一般的矩阵分解方法可以由下式推导出来:

OPNN
矢量内积将一对矢量作为输入,输出一个标量。与此不同的是,矢量外积需要一对矢量并生成一个矩阵。IPNN通过向量内积定义了特征交互,接下来我们讨论基于外积的神经网络(OPNN)。IPNN和OPNN之间的唯一区别是二次项p。在OPNN中,定义特征交互如下:

此时,OPNN复杂度比IPNN还高。作者引入sum pooling降低复杂度,重新定义p的表述如下:

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


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


前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。

网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。

移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。

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

热门文章

最新文章