图神经网络推荐 (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解码可能的任务:模仿一组给定的图针对给定目标优化图表