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

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 datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念