深度学习推荐系统实战
王喆
Roku 推荐系统架构负责人,前 hulu 高级研究员,《深度学习推荐系统》作者
33298 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
深度学习推荐系统实战
15
15
1.0x
00:00/00:00
登录|注册

29 | 图神经网络:Pinterest是如何应用图神经网络的?

无监督学习
有监督学习
Embedding生成
二阶的GraphSAGE
Aggregate操作
CONVOLVE操作
预测
聚合
采样
直接处理图结构数据
数据挖掘
相似推荐
商品推荐
PinSAGE
物品特征的加入
GraphSAGE的预测目标
GraphSAGE的模型结构
聚合的GNN结构
GraphSAGE的主要步骤
GNN(Graph Neural Network)
Pinterest应用
GraphSAGE的原理
GraphSAGE的应用
GraphSAGE的应用和原理

该思维导图由 AI 生成,仅供参考

你好,我是王喆。
互联网中到处都是图结构的数据,比如我们熟悉的社交网络,最近流行的知识图谱等等,这些数据中包含着大量的关系信息,这对推荐系统来说是非常有帮助的。
为了能更好地利用这些信息进行推荐,各大巨头可谓尝试了各种办法,比如我们之前学过的 DeepWalk、Node2Vec 这些非常实用的 Graph Embedding 方法。但是技术的发展永无止境,最近两年,GNN(Graph Nerual Netwrok,图神经网络)毫无疑问是最火热、最流行的基于图结构数据的建模方法。严格一点来说,图神经网络指的就是可以直接处理图结构数据的神经网络模型。
在诸多 GNN 的解决方案中,著名的社交电商巨头 Pinterest 对于 GraphSAGE 的实现和落地又是最为成功的,在业界的影响力也最大。所以,这节课我们就学一学 GraphSAGE 的技术细节,看一看 Pinterest 是如何利用图神经网络进行商品推荐的。

搭桥还是平推?技术途径上的抉择

在正式开始 GraphSAGE 的讲解之前,我想先给你讲一讲 DeepWalk、Node2vec 这些 Graph Embedding 方法和 GNN 之间的关系,这有助于我们理解 GNN 的原理。
我们这里简单回顾一下 DeepWalk 和 Node2vec 算法的基本流程,如下面的图 1 所示。它们在面对像图 1b 这样的图数据的时候,其实没有直接处理图结构的数据,而是走了一个取巧的方式,先把图结构数据通过随机游走采样,转换成了序列数据,然后再 用诸如 Word2vec 这类序列数据 Embedding 的方法生成最终的 Graph Embedding。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Pinterest如何应用图神经网络? Pinterest在商品推荐中应用了图神经网络,主要采用了GraphSAGE模型。该模型通过图采样和聚合方法,利用GNN直接处理图结构数据,实现商品推荐。Pinterest的应用案例展示了图神经网络在推荐系统中的重要性和有效性。PinSAGE是Pinterest在图神经网络基础上的应用,通过训练图上的商品关系,得到每个商品的Embedding,并应用于相似推荐。PinSAGE在Pinterest场景下展现了良好的效果,能够理解商品的语义信息,为用户提供更符合逻辑的推荐。GraphSAGE的特点和主要步骤包括直接处理图数据、采样-聚合-预测三步,重点在于聚合的GNN结构,使用CONVOLVE操作实现邻接点Embedding聚合。Pinterest的图神经网络应用案例为读者提供了深入了解图神经网络在推荐系统中的实际应用的机会,为技术人员提供了宝贵的参考价值。 Pinterest的图神经网络应用案例为读者提供了深入了解图神经网络在推荐系统中的实际应用的机会,为技术人员提供了宝贵的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深度学习推荐系统实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 张弛 Conor
    思考题:1)能否在第一阶聚合的时候,就把物品的其他特征拼接起来,作为节点的初始embedding呢?2)也可以在k阶聚合完成后,像wide&deep钟一样,将节点的embedding和物品其他特征拼接后接入全连接层和softmax层得到embedding

    作者回复: 很好的回答,第2个方法可能会更直接一些。第一种方法能更好的跟GNN融合在一起。

    2020-12-21
    18
  • 小匚
    我觉得目的导向,以目的来决定要不要更多的特征。资源允许情况下,特征越多越好。喂给机器,由模型来判断哪些特征是重要的,哪些是不重要的。 “这个 CONVOLVE 操作是由两个步骤组成的:第一步叫 Aggregate 操作,就是图 4 中 gamma 符号代表的操作,它把点 A 的三个邻接点 Embedding 进行了聚合,生成了一个 Embedding hN(A);第二步,我们再把 hN(A) 与点 A 上一轮训练中的 Embedding hA 连接起来,然后通过一个全联接层生成点 A 新的 Embedding。” 如果要加,我觉得要加在和上一轮连接起来这里,每次再多加上去这个特征的embedding。这样能保证最原始的数据放进去,保留原始特征,而不会被二次聚合。

    作者回复: 完全赞同这样的思考。加在CONVOLVE函数的concat那一步确实会更好的保留特征的影响力。否则我担心经过几轮迭代之后,这些新特征有可能加和不加是一样的,因为整个网络有可能总会收敛到一个稳定的状态。

    2020-12-21
    13
  • jalief
    在实际公司推荐场景中如果要应用这个算法,数据是通过图数据库来存储吗?希望老师能推荐一个生产环境适合的图数据库

    作者回复: 最近大家提neo4j比较多,https://neo4j.com/,可以研究一下,但我们并没有用。我们还是用spark xgraph直接处理原始数据。

    2021-04-16
    4
  • fsc2016
    思考题:第k阶节点emb初始化时怎么做的,如果是基于节点id类特征通过word2vec生成id_emb,那么还可以基于同样方法,生成对应category_emb,brand_emb,price_emb,然后avg pooling。类似前面讲物品冷启动中提到的EGES模型。 提问:感觉如果综合物品所有相关属性生成的物品emb,已经能很好包含了物品所属特征,包括了属性和行为特征,这样生成的emb在输入GraphSAGE得到物品emb,还能得到更强的物品表达嘛

    作者回复: GraphSAGE原文中的初始化方法其实是随机emb初始化,会随着GraphSAGE的迭代过程逐渐收敛。 但像你说的,这里的灵活性很高,在初始化中以一些简单的emb结果初始化可能会让训练的效率更高,另外加入其他feature当然也是可行的,都是值得尝试的方向。

    2020-12-21
    2
    3
  • MutouMan
    那graphsage是不是本质属于i2i推荐呢?这里用户行为只是不同物品的边,没有说怎么学习用户的embedding。之前的模型大多着眼于u2i推荐。 关于思考题,几位同学都说的很好了,aggregate前加入或者之后都可以吧。还是老师的那句话,怎么做得测试。

    作者回复: graphSage确实多用于i2i推荐,和相似物品推荐,这一点理解没有问题。

    2021-07-22
    1
  • 努力学习
    老师 请问 使用两个GCN网络直接替换到嵌入层,分别用于学习用户的嵌入向量q 和 物品的嵌入向量p,假设对p·q点积使用softmax函数来获得下一项的概率,那是不是用一个损失函数就学习训练了两个GCN网络?而不是用两个损失函数联合训练吗?

    作者回复: 可以这么理解,相当于一个双塔模型了。

    2021-04-03
    1
  • 骚动
    老师,还有个问题:GraphSAGE是否有像Node2vec一样考虑了图的结构性和同质性?如果有的话是怎么体现的,如果没有的话后续是否有相应的改进?

    作者回复: 我记得在哪好像回复过你?简单回复就是GraphSAGE没有从结构性和同质性的角度出发考虑问题,我建议也没有必要强行把二者放在一起比较。

    2021-01-18
    1
  • fsc2016
    提问2:既然GraphSAGE是为了直接处理图结构数据生成物品emb,而不需要把图数据转为行为序列。那输入的第k阶物品初始化emb,还是通过转为序列数据进行word2vec得到的。那也就是说GraphSAGE还是避免不了图数据转为序列生成物品emb的过程吗

    作者回复: 紧接着上一问,GraphSAGE并不对初始化emb做要求,所以没有必要一定要有word2vec训练好的emb作为初始化emb。

    2020-12-21
    1
  • W
    第k阶节点的embedding生成了第k-1阶节点的新embedding,那第k-1阶原始embedding还需要一起使用吗?

    作者回复: 不是非常明确这个问题,但请详细参照CONVOLVE操作的定义。

    2021-07-04
  • 骚动
    老师,怎么感觉和Node2vec采样的方式差不多??2阶我就对应Node2vec 用DFS采样2阶??
    2021-01-18
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部