公众号关注 “
ML_NLP
”
设为 “
星标
”,重磅干货,第一时间送达!
转载自:炼丹笔记
作者:十方
推荐系统会存储大量的用户与items交互数据,这些数据可以用二部图呈现。二部图对消除推荐系统中数据稀疏性和冷启动有着巨大的帮助。这篇主要总结了3个典型的GNN方法在推荐系统领域处理用户与items的二部图。
user-item二部图
我们可以通过每个用户交互过的item列表,构建一个巨大的二部图,如下图所示:
传统的神经网络方法(如协同过滤,双塔),是无法处理上述二部图的,图神经网络就是要充分挖掘节点信息和节点与节点的交互信息,从而带来巨大的商业价值。
在推荐领域,图神经网络主要解决了以下几个问题:
节点的敏感度,节点顺序很小的改变极大的影响模型的输出。
节点间闭塞的信息交互,传统的深度学习模型不能够充分挖掘高阶节点之间的交互信息。
结构,不能用于基于图形的解释和推理。
当使用GNN处理二部图,输入节点的顺序并不会影响输出。另外,GNN使用边的去辅助传播、集成节点和邻居的状态,更新当前节点的状态,结构化的信息会被模型捕捉,并表达在每个节点上,从而解决推荐系统稀疏性的问题。
embedding 层
embedding层主要研究如何获得交互图和一系列节点的
特征,并使用此信息生成节点embedding,从而生成
子图和整个图的embedding。这一层的作用是学习一个低维的向量表示,作为图神经网络模型的输入。在
提取用户和
item的
特征
矩阵分解(MF),如概率矩阵分解(PMF),偏差矩阵
因子分解(BiasedMF)、神经网络矩阵因子分解(NNMF)等。
然而,这些方法都有很大的缺点。
每次分解都需要很长的时间
复杂性与较高的空间复杂性,并不能完全探究
隐含关
系
DeepWalk算法首次应用,各种深度学习embeding方法层出不穷。
最简单的方法是使用浅层嵌入方法生成节点的唯一低维向量表示,即在初始步骤中,每个用户和item
被定义为唯一ID并直接映射成embedding
。
这种设计的优点是
模型可互换,不变形。
互换性的不变性在于
该模型不依赖于邻接矩阵中行列的任意顺序,
弥补了深度模型对节点输入顺序高度敏感的缺陷。
传播更新层
传播更新层是GNN推荐系统模型的核心组成部分
,包括两个阶段:
邻居节点信息传递,
聚合和更新(下图)。
嵌入层解决了图数据
很难高效地输入推荐算法。
下一步是解决
深层模型消息传输路径阻塞问题及解决方案
长距离节点的信息传播问题,然后是邻居
推荐系统
稀疏性
的。
在每个消息传递迭代过程中,
每个节点u对应的embeding可以通过
图的所有邻居节点N(u)聚合进行更新,因此传播更新
层可以抽象地定义为:
卷积聚合器
图卷积聚合器使用
embedding的聚合
并进行迭代传播,
从邻居节点聚合嵌入的特征信息,并且只有一个
一阶图的邻域
,通过叠加多层图卷积网络,达到传播远处多级的信息的目的。
最后
更新当前节点的嵌入表示。如GraphSAGE
提出了一种小批量聚合算法,
在一次更新没
使用所有的邻居节点
并将更新后的最终状态用于
预测和反向传播。
PinSage框架下
使用局部图卷积运算从邻居节点聚合信息。
图卷积聚合可以抽象地定义为:
门聚合器
经典的长、短期记忆循环神经网络系统已经被证明
对于学习序列数据的动态特性非常有效,其中
GRU和LSTM中的输入输出门机制可以保持长期的内部状态。
门控图神经网络(GGNN)
使用一个门递归单元在固定步数的传播过程去更新聚合节点的隐藏状态
。
门聚合可以抽象地定义为:
注意力聚合器
注意机制几乎已经成为处理序列数据任务的必用方法,
已成功应用于机器翻译和机器阅读。
注意力
机制可以区分不同节点的重要性。
例如,购物场景下
,最近购买的产品相比那些
更
有参考价值
。
在传播过程中加入注意机制可以给邻居节点赋权,通过不同的attention score对邻居节点的embedding进行聚合
。
注意力聚合器可以抽象地定义为:
预估层
在多层传播之后,从每个层获得的embeding被拼接在一起作为
用户或item的最终特征。
除了拼接,其他的组合方法,
如加权平均、最大池和LSTM,都可以。有
研究表明
证明了拼接是最简单且有效的,且它不涉及其他参数
需要学习。
最后,计算用户与item之间的内积用来预测
用户的未来行为:
结论
本篇总结了一些GNN在推荐系统的应用,其实还有很多gnn算法没有介绍,如KGAT,融合了知识图谱辅助推荐。再如KARN和SCPR这两个模型,
不是选出来一个匹配商品集就完事了,还要在图中找出来对应的路径作为推荐的解释,感兴趣的读者可以去查阅相关资料。
点击下方卡片,关注公众号“机器学习算法与自然语言处理”,获取更多信息:
机器学习算法与自然语言处理
一个有情怀的公众号。机器学习、自然语言处理、算法等知识集中营、期待与你相遇~
358篇原创内容
Official Account
下载1:四件套
在机器学习算法与自然语言处理公众号后台回复
“四件套”
,
即可获取学习TensorFlow,Pytorch,机器学习,深度学习四件套!
下载2:仓库地址共享
在机器学习算法与自然语言处理公众号后台回复
“代码”
,
即可获取195篇NAACL+295篇ACL2019有代码开源的论文。开源地址如下:
https://github.com/yizhen20133868/NLP-Conferences-Code
重磅!
机器学习算法与自然语言处理
交流群
已正式成立
!
群内有大量资源,欢迎大家进群学习!
额外赠送福利资源!深度学习与神经网络,pytorch官方中文教程,利用Python进行数据分析,机器学习学习笔记,pandas官方文档中文版,effective java(中文版)等20项福利资源
获取方式:进入群后
点开群公告即可领取下载链接
注意:
请大家添加时修改备注为 [学校/公司 + 姓名 + 方向]
例如 —— 哈工大+张三+对话系统。
号主,微商请自觉绕道。谢谢!
推荐阅读:
Tensorflow 的 NCE-Loss 的实现和 word2vec
多模态深度学习综述:网络结构设计和模态融合方法汇总
awesome-adversarial-machine-learning资源列表
点击下方卡片,关注公众号“机器学习算法与自然语言处理”,获取更多信息:
机器学习算法与自然语言处理
一个有情怀的公众号。机器学习、自然语言处理、算法等知识集中营、期待与你相遇~
358篇原创内容
Official Account
原文链接
还帮你生成相应代码 Mito 运行速度比Excel更快,也不需要到处搜各种Python教程了。 好用如Excel,更快更全面 Mito 可编辑电子表格 .csv (带格式转换功能) △Python Excel 只需要掌握Excel的用法,就能使用Python的数据分析功能,还能将写出来的代码“打包带走”。 缺陷 (大型数据集处理得不好) Excel运行缓慢 Excel无法轻松创建可重复流程 简单 10倍 那么,Mito是怎么做到将Excel逻辑转换成Python代码的呢? Transpiler 抽象语法树 (AST) (需要5000美元/月) 亚马逊云平台 (AWS) 当然,用户也可以选择将数据保存在本地。 自动生成Python代码 以分析美国各州的“家庭平均收入”和“允许托运的火车站数量”这两个数据的关系为例。 上传 数据处理的格式是.csv,当然也可以输入Excel文件,