刚哥的公开课笔记:图机器学习(十六)图神经网络的应用

2023-11-09 18:20

本文主要是介绍刚哥的公开课笔记:图机器学习(十六)图神经网络的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  图神经网络推荐 (PinSage)

  推荐系统

  用户与物品互动看电影,购买商品,听音乐目标:推荐用户可能喜欢的物品客户X购买Metallica和Megadeth CD客户Y购买了Megadeth,推荐系统也建议Metallica

  目标:了解哪些项目是相关的

  对于给定的查询项目Q,返回一组我们推荐给用户的类似项目

  理念:

  用户与一组项目进行交互制定查询Q搜索项目并返回建议

  举例,Pinterest

  

  

  具有通用相似性功能可用于许多应用程序:

  

  Homefeed (endless feed of recommendations)

  

  Related pins (find most similar/related pins)

  

  Ads and shopping (use organic for the query and search the ads database)

  关键问题:定义相似性

  问题:我们如何定义相似性?

  1)基于内容:用户和项目功能,包括图像,文本,类别等形式

  2)基于图:用户/项目交互,以图/网络结构的形式

  这称为协作过滤:

  对于给定的用户X,找到喜欢类似商品的其他人根据相似的其他对象,估算X的对象

  我们如何定义相似性:

  (1)收集“已知”相似之处

  如何收集用户喜欢的数据

  (2)从已知相似度推断未知相似度

  主要对高度未知的相似性感兴趣我们对了解自己不喜欢的东西并不感兴趣

  (3)评估方法

  如何衡量推荐方法的成功/绩效

  

  Pinterest

  Pinterest:人类策划的书签收藏

  Pin:有人从互联网上保存到他们创建的木板上的视觉书签。

  Pin:图片,文字,链接

  面板:一组想法(有共同点的Pin)

  

  

  两种信号源:

  特征:

  每个图钉的图像和文字

  图形:

  图是动态的:需要应用于新节点而无需模型重新训练

  基于嵌入的推荐

  目标:学习物品的嵌入

  相关Pin的查询:当用户与V3Pin交互时,推荐哪个Pin?回答:通过最近邻居找到与V3最接近的嵌入(V4)。 推荐它。

  目标1:使用神经网络有效学习数十亿个Pin(项,节点)的嵌入

  目标2:执行最近邻居查询以实时推荐商品

  

  任务:向用户推荐相关的Pin

  

  预测图中的两个节点是否相关

  

  PinSage:图神经网络

  方法:

  引脚在每一层都有嵌入节点的第0层嵌入是其功能:文字,图像……

  PinSage图卷积网络:

  目标:为包含数十亿个对象的Pinterest图中的节点(例如,Pin)生成嵌入关键思想:从附近节点借用信息例如,床栏杆Pin看起来像花园篱笆,但图中的门和床很少相邻.Pin嵌入对于许多不同的任务来说都是必不可少的。

  除了“相关Pin”任务外,它还可以用于:

  推荐相关广告家庭建议按用户兴趣分组

  1.从日志中收集数十亿对训练。

  正对:两个Pin在一个时间间隔(1小时)内连续保存到同一块板上负对:2个Pin的随机对Pin很可能不在同一块板上

  2.训练GNN为训练对生成相似的嵌入

  3.推论:为所有Pin生成嵌入

  4.在嵌入空间中进行最近邻居搜索以提出建议。

  训练目标函数

  进行训练,以使连续固定的Pin有相似的嵌入

  最大边界损失:

  

  四个关键创新:

  1.动态图卷积

  对节点周围的邻域进行采样并动态构建计算图

  Minibatch of neighborhoods

  围绕特定节点执行局部图卷积训练过程中不需要整个图

  At every iteration, only source node embeddings are computed

  2.通过随机游走选择邻居

  对所有邻居执行聚合是不可行的:如何选择要进行卷积的节点的邻居集?个性化的PageRank可以提供帮助!定义重要性池:通过模拟随机行走并选择访问量最高的邻居来定义基于重要性的邻居

  近似查询节点Q

  

  重要性池

  选择访问次数最高的节点选定节点上的池选择的节点不一定是邻居

  示例:假设K=5

  根据随机游走次数对节点进行排名选择前K个节点并归一化计数

  汇总来自前K个节点的消息

  GraphSAGE平均池

  平均来自直接邻居的消息PinSAGE重要集合将归一化的计数用作来自前K个节点的邮件的加权平均值的权重PinSAGE使用K=50

  3.高效的MapReduce推断

  问题:如果在推理步骤使用局部图卷积,则需要进行多次重复计算需要避免重复计算

  回想一下我们如何获得负面例子

  

  目标:确定3BPin中的目标Pin

  问题:需要以100 vs. 3B的分辨率进行学习大规模:30亿个节点,200亿个边缘想法:使用越来越难的阴性样本

  负面的硬示例可以提高绩效

  

  如何获得硬阴性:使用随机游走:

  将访问次数在1000-5000之间的节点用作硬阴性有共同点,但不太相似

  硬阴性类的训练

  从随机阴性示例开始随着时间的推移提供更难的负面例子

  相关Pin建议

  如果用户刚刚保存了Pin Q,请预测下一个要保存的Pin X设置:嵌入3B Pin,找到Q的最近邻居基线嵌入:视觉:VGG视觉嵌入

  注释:Word2vec嵌入组合:串联嵌入

  

  Pixie(基于图):使用类中的Pixie算法从查询Pin开始模拟随机游走的方法。 检索得分最高的项目作为建议

  视觉,Annot。 (基于特征):使用视觉(CNN)和Pin注释特征的最近邻居推荐

  

  

  异构图神经网络(Decagon)

  到目前为止,我们仅将GNS应用于简单图

  GNS没有明确使用节点和边缘类型信息真实网络通常是异构的如何将GNN用于异构图?

  药物副作用

  

  使用多种药物治疗疾病

  多种药物是治疗复杂疾病和并存疾病的常见方法

  相互作用引起的高副作用风险受影响的美国人口的15%每年的成本超过1770亿美元难以手动识别:罕见,仅在部分患者中发生在临床测试中未观察到

  多种药物建模

  药物相互作用的系统实验筛选具有挑战性想法:通过计算筛选/预测多药副作用使用分子,药理学和患者群体数据指导患者联合治疗的转化策略

  建模和预测药物对的副作用

  问题药方:图

  异构(多模)图:具有不同节点类型和/或边类型的图

  

  问题处方:预测

  目标:给定局部观察的图形,预测药物结点之间的标记边缘

  

  预测药物节点之间的标记边

  即预测药物节点c和s之间存在边(c,r2,s)的可能性含义:药物组合(c,s)导致多药副作用r2

  关键见解:计算来自每种边缘类型的GNN消息,然后跨不同边缘类型进行汇总

  19/12/5斯坦福CS224W,Jure Leskovec,图的机器学习,http://cs224w.stanford.edu 51

  输入:异构图输出:节点嵌入

  单层异构GNN

  

  关键见解:使用一对计算的节点嵌入进行边预测

  输入:查询药物对的节点嵌入输出:预测边

  利用神经网络预测边

  

  解码:边预测

  

  数据:

  分子图:蛋白质-蛋白质相互作用和药物靶标关系人口分布图:个别药物的副作用,药物组合的多药副作用

  设定:

  构建所有数据的异构图训练:拟合模型以预测药物对和多药副作用之间的已知关联测试:给定查询药物对,预测候选的多药副作用

  预测性能

  

  比基准提高多达54%

  第一个以计算方式标记多药副作用以进行后续分析的机会

  De novo 预测

  

  目标导向的图生成(GCPN)

  图生成模型

  

  通过顺序添加节点和边来生成图

  

  GraphRNN快速摘要:

  通过生成两级序列来生成图使用RNN生成序列

  初始化图

  

  药物发现

  问题:我们是否可以学习一个模型,该模型可以生成具有给定化学性质的高价值的有效和逼真的分子?

  

  异构图:分子

  节点类型:C,N,O,...

  §边缘类型:单键,双键,…

  §注意:“ H”可以通过化学有效性规则自动推断,因此在分子图中将被忽略

  

  目标导向的图生成

  生成图:

  优化给定的目标(高分)例如毒品样遵守基本规则(有效)例如化学有效性规则从实例中学习(现实)例如,模仿分子图数据集

  在ML中包括“黑匣子”:

  像毒品之类的目标受物理定律支配,这对我们来说是未知的!

  解决方案:强化学习

  ML代理观察环境,采取行动与环境互动,并获得正面或负面的奖励

  代理然后从此循环中学习关键:环境是代理的黑匣子

  基于策略的强化学习

  策略:代理行为,将观察结果映射为行动

  基于策略的RL:代理直接从数据中学习最佳策略

  

  模型:图卷积策略网络

  图卷积策略网络结合了图表示+ RL:

  ?Graph神经网络捕获复杂的结构信息,并在每个状态转换(有效)中启用有效性检查

  ?强化学习可优化中级/最终奖励(高分)

  对抗训练模仿给定数据集中的示例(现实)

  

  (a)插入节点/支架(b)通过GCN计算状态(c)样本下一个动作(d)采取行动(检查化学有效性)(e,f)计算奖励

  如何设置奖励:

  学会采取有效措施在每个步骤中,为有效的行动分配少量的正面奖励优化所需的属性最后,为高期望的财产分配正面奖励生成逼真的图形最后,对抗性训练GCN鉴别器,计算对抗性奖励,以鼓励获得逼真的分子图

  奖励:rt=最终奖励+逐步奖励

  最终奖励=特定域的奖励逐步奖励=逐步有效性奖励

  两部分:

  (1)有监督的训练:通过模仿真实观察图所给出的动作来训练策略。 使用渐变。(2)RL训练:训练政策以优化奖励。 使用标准策略梯度算法(请参阅任何RL课程,例如CS234)。

  GCDP 架构

  

  属性优化生成具有指定特性得分高的分子定位属性生成指定特性得分在给定范围内的分子约束属性优化通过几个步骤编辑给定的分子,以获得更高的指定性能评分

  GCPN图形的可视化:属性优化

  

  GCPN图的可视化:约束优化

  

  图生成的总结

  复杂图可以通过顺序生成成功生成每个步骤都基于隐藏状态做出决定,该隐藏状态可以是明确的:中间生成的图,使用GCN解码隐式:向量表示,使用RNN解码可能的任务:模仿一组给定的图针对给定目标优化图表

这篇关于刚哥的公开课笔记:图机器学习(十六)图神经网络的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377816

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2