图表示学习经典工作梳理——基础篇腾讯云开发者社区

定期更新干货算法笔记和世间万物的学习记录~

图表示学习是目前搜索、推荐、广告等系统中常用的一种方法,利用场景数据构造图,建立用户、商品等节点之间的联系,然后利用图学习的方法学习每个节点的表示。这个表示一般会让相似或相关的实体的表示更接近,这些表示可以提升下游多种任务的效果。本文梳理了图表示学习的经典模型,包括3个阶段,分别是基于随机游走的图表示学习、基于图神经网络的图表示学习,以及异构图中的图表示学习。

基于随机游走的图表示学习

DeepWalk: Online Learning of Social Representations(2014)中提出的DeepWalk是最早一批实现图表示学习的工作,DeepWalk提出的背景问题是对社交网络上的每个成员进行分类。为了解决这个分类问题,文中提出无监督学习方法利用图结构学习每个节点的一个低维表示。

DeepWalk借鉴了早期词向量训练方法SkipGram,利用节点(SkipGram中是单词)的共现关系学习每个节点(单词)的表示。具体实现方法为,首先在图上随机选一个节点,采用随机游走的方式,生成一个序列(可以类别为多个单词组成的一句话)。接下来,采用滑动窗口的方法,在这个节点序列上构造共现样本。重复多次上述随机游走+滑动窗口生成样本后,使用SkipGram+层次Softmax的方法进行无监督训练。通过这种方式,得到了每个节点类似词向量的表示,在社交网络中经常共现在一起的节点具有相似的表示。

node2vec: Scalable Feature Learning for Networks(2016)提出的Node2vec仍然是基于SkipGram的思想学习图上节点的embedding,但是对采样方式进行了优化。文中提出,在图中进行邻居节点采样时,主要包括BFS和DFS两种极端采样方法,BFS即广度优先遍历,每次采样节点都要求是该节点的一跳直接邻居,这种采样方法的结果是生成的图表示更关注局部信息。与之相对的,DFS为深度优先遍历,每次采样节点都尽可能增加和初始节点的距离,这种采样方法的结果是生成的图表示更关注全局信息。在图中一般有两个假设homophily和structural equivalence,homophily表示相邻的节点、距离比较近的节点,其属性应该具有相似性;structural equivalence表示周围结构相似的节点属性和表示应该具有相似性。BFS通过捕捉局部信息,生成的表示更倾向于描述每个节点的结构信息,适用于structural equivalence假设;DFS更多反映了整个图的宏观信息,适用于homophily假设。

具体的,Node2vec采用如下的随机游走方式构造训练样本。如下图,假设上一步已经从t游走到v,现在在v点判断下一步要走向哪个节点,由p和q两个参数组成。p越小,越有较大的概率回到初始点,这就强制了游走在初始节点附近进行(即BFS);q越小,随机游走更倾向于于探索更远的节点(即DFS,x2和x3距离初始节点t是二跳,x1是一跳)。

此外,LINE: Large-scale Information Network Embedding(2015)也是一种类似的图表示生成方法。这三种方法的关系是,Deep Walk可以理解DFS随机游走进行样本生成,LINE是BFS随机游走样本生成,而Node2vec结合了BFS和DFS,可以理解为Deep Walk和LINE的升级版。

基于图神经网络的图表示学习

上述基于random walk的方法是由随机游走和表示学习多个阶段组成的,每个阶段的优化目标不同,不是端到端的模型。Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering(2017)、SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS(ICLR 2017)提出了图卷积(ChebNet、GCN)网络实现图上的表示学习,也是现在仍然非常常用的图学习基础方法。第二篇文章是在第一篇文章的基础上做了简化,使运行效率提升,也是目前最常用的图卷积模型之一。文中最初想要解决的问题是,对图上的节点作分类,并且只知道图中一部分节点的label,那么问题的核心就是如何将有label的节点信息通过图结构传播到无label的节点上,进而实现无label节点的分类。图卷积有深入的公式推倒过程,会在后续的文章中详细介绍,这里我们重点介绍其基本思路。每一层图卷积传入上一层每个节点的表示,然后利用图的结构信息(用拉普拉斯矩阵表示)对周围节点的表示进行融合,得到每个节点在下一层的表示,经过多层邻居节点信息的融合,在每层不断更新节点表示,核心公式如下(可以理解为一个利用图结构进行信息融合的过程,详细推倒和含义后续文章会详细介绍):

除了图卷积外,Attention也被用来实现图表示学习。在GRAPH ATTENTION NETWORKS(ICLR 2018)中,提出使用多头注意力机制学习图中节点之间的关系,来进行信息融合。和GCN相比,GAN相当于使用attention score来代替拉普拉斯矩阵计算的融合方法。GAN的具体实现为,计算每个节点和其邻居节点的attention score,再用attention score融合邻居节点的表示得到该节点新的表示,公式表示如下:

上面的方法都需要在整张图上进行学习,一个问题是当图节点太多的时候开销太大,另一个问题是由于直接学习所有节点的表示,当有一些新的原来图上没有的节点加入时候,无法生成新节点的表示。为了解决这两个问题,Inductive Representation Learning on Large Graphs(NIPS 2017)提出了GraphSAGE方法。该方法的思路为学习一个aggregation函数而非直接学习节点表示,利用每个节点的邻居节点表示汇聚成该节点的表示,并通过采样的方式提升训练效率。GraphSAGE的基本思路如下图:

Aggregation function部分对于每一个节点,获取其邻居节点,并使用一种aggregation方法,对当前节点及其邻居节点的表示进行融合,得到该节点新的表示,通过多层的aggregation让每个节点逐渐吸收更大范围的信息。文中提出的aggregation方法包括mean、LSTM、pooling三种方法。在学习每个节点的表示时,不会融合所有邻居节点,而是采样固定数量的邻居节点进行融合。模型采用无监督损失函数进行优化,如果两个节点之间是k阶邻居,即从A节点到B节点走k步可以到达,那么就作为正样本,其他作为负样本,公式可以表示如下,其中Pn表示负采样分布:

基于metapath的异构图表示学习

上面介绍的图表示学习方法假设输入的图是同构图,即图中每个节点都是相同类型的。然而在实际应用中,很多场景的数据都是异构图,例如在电商平台中,需要建立用户、商品、搜索词等多种类型节点之间的图,不同类型节点之间的边类型所代表的含义也是不同的。这种情况下,使用简单的random walk生成序列将无法捕捉这种异构信息,并且random walk会由于不同类型节点数量、路径数量不同存在采样的bias。

metapath2vec: Scalable Representation Learning for Heterogeneous Networks(KDD 2017)提出了metapath2vec方法,针对异构图进行表示学习,核心思路仍然是基于随机游走+skipgram的方法,但是通过引入metapath修改随机游走方式来实现异构图表示学习。首先定义meta-path,指的是一个预先定义的随机游走规则,要求每次游走的节点为对应类型。例如下图中的例子,APA表示必须从author类型节点走到paper类型节点再走到author类型节点。在定义众多meta-path后,随机游走以这些meta-path为指导构造采样序列。这种基于meta-path进行随机游走的好处是让每个采样的序列都是有意义的,而不像一般的随机游走,各种类型节点混杂在一起。

为了在输出阶段考虑不同节点的类型,文中进一步提出metapath2vec++方法,在输出阶段的负采样过程中,只能采样相同类型节点的负样本进行softmax,而不是在所有节点中随机采样,如下图:

随后,越来越多的异构图学习方法逐渐提出,包括RGCN、HIN2Vec、MAGNN等,很多异构图学习方法都是基于meta-path的思路,构造可视为同构的子图,再利用GCN等方法在子图上学习表示信息,并对不同子图信息进行融合。

总结

本文介绍了图表示学习发展的3个阶段,从随机游走+skipgram的两阶段方法,演变到图卷积、GAT等端到端的图学习方法,再到基于meta-path的异构图表示学习方法。图学习目前是工业界非常常用的方法之一,利用图表示学习,可以学习到图中每个实体的良好表示,帮助下游其他任务取得更好效果。

THE END
0.动态图上的异常检测文献综述(2015)首先用固定的子图,多重图,累积图来构造预期行为的模型,对模型的偏离可作为子图异常检测的依据。 【104】结合扫描统计量和隐马尔可夫模型(HMM)建模边行为,其使用的局部扫描统计量是基于两种图形状:k-path图和星型图,其将滑动窗口的扫描统计数据与其过去的值进行比较,并使用在线阈值系统识别局部异常,局部异常是所有统计jvzquC41yy}/lrfpuj{/exr1r166f@::d:je2;
1.建筑识图与构造—《绘制门卫平面图》教学设计建筑识图与构造 教学对象 八年级学生 课时 1课时 设计者 范海波 一、教学内容分析 本节课内容是79个教学任务中的第12个任务,在学生掌握了投影特征和平面图形成的基础上,严格执行制图标准,按照制图规范绘制平面图。需要1课时完成。通过平面图的绘制,学生熟悉绘图使用的线条、尺寸标注的步骤。 jvzquC41yy}/juor0gjv0ls1mey{l~l1ktgq8623:524:<0jvs
2.施工图纸范文工程设计审核包括:方案设计审核、初步设计审核、施工图设计审核。其中施工图设计审核内容包括:建筑总平面图、建筑设计说明、建筑平面图、建筑立面图、建筑剖面图、建筑详图、建筑节能计算书;结构设计总说明、基础平面图、基础详图、结构平面图、钢筋混凝土构件详图、混凝土结构节点构造详图、结构计算书;建筑电气设计说明、配电jvzquC41yy}/i€~qq0ipo8mcqyko1?>4864ivvq
3.Image类构造函数: 构造图像对象 classimage.Image(path[,copy_to_fb=False]) 打开一个新的图像对象 参数: path: 图像对象路径, 比如/sd/MixPY.jpg,支持bmppgmppmjpgjpeg格式的图像文件 copy_to_fb:图像介质 True,图像会直接载入帧缓冲区,可以加载大幅图片了 False,图像会载入MicroPython的堆中jvzquC41yy}/mjsenq{e0ls1vqthzrsye1gjq}433;:37B
4.建筑构造专项图集(2020年10月整理).pdf建筑设计示例(剪力 43 15J939-1 2015 年 六~46 墙结构) 11 中国建筑标准设计图集 (结构) 技术部 序号 标准名称 有效编号 实施日期 编号 混凝土结构施工图平面整体表示方法制图规则和 1 16G101-1 2016 年 七~1 构造详图(现浇混凝土框架、剪力墙、梁、板) 混凝土结构施工图平面整体表示方法制图 2 16G101-2jvzquC41oc~/dxtm33>/exr1jvsm1;5421714>4743724;8232642:80ujzn
5.船舶结构部件名称以及相关名词1) 除线型图之外,下列图纸被称为关键图(key plans): 总体布置图 general arrangement 中横剖面图 midship section 钢材构造图 construction profile 外板展开图 shell expansion 2) 其他关键图以外的船体图纸被称为船厂图 (yard plan): (1) 船体方面 jvzquC41pg}t0|tn0eun0ls1jvsm1;535/73/;91CE;D4<8D9E:959JC70yivvq
6.地下室集水坑构造做法图集本专题为筑龙学社地下室集水坑构造做法图集专题,全部内容来自与筑龙学社论坛网友分享的与地下室集水坑构造做法图集相关专业资料、互动问答、精彩案例,筑龙学社论坛聚集了1300万建筑人在线学习交流,伴你成长达成梦想,更多地下室集水坑构造做法图集资料下载、职业技能课程jvzquC41yy}/|qznqpm/exr1|vezvh822487:8igvcom6;;553?:1
7.阅读L13G:13系列建筑标准设计图集L13G1 建筑结构常用(5) 目录(6) 编制说明(8) 填充墙基础示意图、土层基槽放坡、地下室外墙水平施工缝(12) 柱下独立基础(13) 基础主梁与柱结合部侧腋构造(14) 后浇带(15) 笩板端部做法、1克板变截面部位钢筋构造做法(16) 电梯基坑(17) 平板式统形基础、电梯基坑和集水坑(18) 地下室防水底板与各类基础的jvzquC41gdupm7hjkpgcwrqfkpm/exr0ep5{dxtmnkh0dxtmrfl0r{tdcvoppHXkvgOE?:+dqqqJFF:;5:6
8.钙钛矿,又双叒叕一篇Science!上海卷柔新技术液晶模组的构造图 液晶显示面板光学膜主要包括2张偏光片、2张配向膜和1张彩色滤光片;由于液晶面板本身不发光,需要背光模组作为发光源,一般一组背光模组由2张增亮膜、2张扩散膜和1张反射膜构成。 (一)偏光片 1.概念 偏光片(Polarizer)全称为偏振光片,可控制特定光束的偏振方向。自然光在通过偏光片时,振动方向与jvzquC41yy}/uqfpi{kykwjk0ipo8ftvkimg8;5;9?637mvon
9.深度解析半导体工艺与分类制造/封装2、sensorfloorplan(平面构造图) OpticalBlack:光遮断黑电平,用金属遮盖住这一部分的光线,让其完全不感光,体现出的颜色就是Opticalblack; Dummyborder:不用的一部分像素; Powermanagement:电源管理模块; Control/processing/memory:有OTP、 READOUT:输出电路,把感光元器件的感光值变为数字值,给读出来; 每个jvzquC41yy}/gujehctt0lto1cxuklqg1:?0497614636982:4:66<720jznn
10.Java绘图库JFreeChart的详细使用教程(入门级)JFreeChart 允许创建各种交互式和非交互式图表;可以广泛地定制; 它允许修改图表项目的颜色和绘制,图例,线条或标记的样式。 它会自动绘制轴刻度和图例。可以创建折线图,条形图,面积图,散点图,饼图,甘特图和各种专用图,例如风向图或气泡图。它支持多种输出格式,包括 PNG,JPEG,PDF 和 SVG。 jvzquC41dnuh0lxfp0tfv8mh{38498ftvkimg8igvcomu86488?49A;
11.Java绘图库JFreeChart的使用教程java这个类提供了JFreeChart的方法来创建柱状图,折线图,饼图和XY坐标图,包括时间序列数据。 类构造函数 S.N.构造方法及描述 1 JfreeChart(Plot plot) 此构造函数创建基于所提供的节点一个新的图表。 2 JfreeChart(java.lang.String title, java.awt.Font titleFont, Plot plot, boolean createLegend) 该构造函数创建jvzquC41yy}/lk:30pku1ywqitgn1;>:;8?t4w3jvo
12.16第三章剪力墙图集.pdf第三章:剪力墙平法标准构造详图及三维示意图 -26- d d 水平分布钢筋紧 0 0 1 1 贴角筋 内侧弯折 双列拉筋 暗柱 端部无暗柱时剪力墙水 端部有暗柱时剪力墙 L形暗柱 平钢筋端部做法(二) 水平钢筋端部做法 水平分布筋 拉筋 端部有L形暗柱时剪力墙 水平分布钢筋端部做法 剪力墙 竖 向分部钢筋 竖 向jvzquC41oc~/dxtm33>/exr1jvsm1;5391732=4364=28@790unuo
13.09CK134:机制玻镁复合板风管制作与安装(参考图集)机制玻镁复合板直风管制作示意图8 机制玻镁复合板风管的捆扎10 机制玻镁复合板变径风管制作11 Ⅰ型内斜线外折线矩形弯头构造图12 Ⅱ型内斜线外折线矩形弯头构造图13 内斜线外折线矩形弯头导流片构造图14 矩形风管Y形对称三通构造图15 矩形风管整体式三通构造图16 jvzquC41yy}/eqnpcd{jnmnpi0ipo7hp1dupm669634ivvq
14.高速公路路面结构图(水泥沥青)高速公路施工图高速公路路面结构图(水泥沥青) 图纸为高速公路路面结构图(水泥沥青),包含:沥青路面结构图、水泥混凝土路面结构图等,内容详细,可供参考。 高速公路路面结构图(水泥沥青)-图一jvzquC41|krjcx3eq3>90lto1f<35@6:4:4ivvq
15.图石设计2023年,图石设计荣获第57届日本标识设计奖(SDA Award)三项殊荣,其中《明月川》项目斩获银奖,《长拖1958》和《大家的家·养老社区》获得入围奖。SDA Award作为日本标识设计领域最具专业性的奖项,每年都会吸引日本国内外高水平的设计师和设计项目参与评选。图石设计首次参与SDA Award 的评选,创下该奖项57年以来中国设jvzq<84yyy4uq}mtgg4dp8
16.python画图软件Graphics和turtle使用心得chengjonImage 表示图像 Image(p, *pixmap) 构造一个以 p 点为中心的图像, *pixmap 接受文件路径或 width 和 height 创建一个透明图 getAnchor() 返回图像的中点的克隆 getWidth() 返回图像的跨度 getHeight() 返回图像的高度 getPixel(x,y) 返回位置 (x,y) 处的像素的RGB值 (像素位置相对于图像本身,左上角始jvzquC41yy}/ewgnqiy/exr1vtkbu~w{/ogocpjt1r528@<:429/j}rn