米兰·(milan)中国官方网站-Michael Bronstein 最新几何深度学习综述:超越 WL 和原始消息传递的 GNN

编译丨OGAI
编纂丨陈彩娴图可以利便地抽象瓜葛及交互的繁杂体系。社交收集、高能物理、化学等研究范畴都触及彼此作用的对于象(不管是人、粒子还有是原子)。于这些场景下,图布局数据的主要性日渐凸显,相干要领取患了一系列开端乐成,而一系列工业运用使患上图深度进修成为呆板进修标的目的的热点研究话题之一。

图注:经由过程图对于繁杂体系的瓜葛、交互举行抽象。例如,「份子图」中组成份子的原子至今的化学键,「社交收集」顶用户之间的瓜葛及交互,「保举体系」顶用户及商品之间的接洽。
受物理开导的图上的连续进修模子可以降服传统 GNN 的局限性。多年来,动静通报一直是图深度进修范畴的主流范式,使图神经收集(GNN)于粒子物理到卵白质设计的广泛运用中取患了巨年夜乐成。
从理论角度来看,它成立了与 Weisfeiler-Lehman(WL)条理布局的接洽,咱们可以以此阐发 GNN 的表达能力。可是于 Michael Bronstein 看来,当前图深度进修方案「以节点及边为中央」的思维方式带来了没法降服的局限性,拦阻了该范畴将来的成长。
另外一方面,于关在几何深度进修的最新综述中,Bronstein 提出了受物理开导的连续进修模子,从微分几何、代数拓扑及微分方程等范畴出发开启了一系列新东西的研究。到今朝为止,图呆板进修范畴中还有鲜有此类研究。
针对于Bronstein的最新思索,AI科技评论做了不改原意的收拾与编译:
1图神经收集的事情道理GNN 的输入为具备节点及边特性的图,计较一个既依靠在特性又依靠在图布局的函数。动静通报类的 GNN(即 MPNN)经由过程互换相邻节点之间的信息于图上流传特性。典型的 MPNN 架构由几个流传层构成,基在邻人特性的聚合函数对于每一个节点举行更新。按照聚合函数的差别,咱们可以将 MPNN分为:卷积(邻人特性的线性组合,权值仅依靠在图的布局)、留意力(线性组合,权值依靠在图布局及特性)及动静通报(广义的非线性函数)。动静通报 GNN 是最多见的,而前者可以视为动静通报 GNN 的非凡环境。

图注:GNN 的三种气势派头——卷积、留意力及广义非线性信息通报气势派头,它们都是动静通报的体现情势。
流传层由基在下流使命进修的参数组成,典型的用例包括:节点嵌入(每一个节点暗示为向量空间中的一个点,经由过程点之间的间隔恢复出原始图的连通性,此类使命被称为「链接猜测」),节点级的分类或者回归(如揣度社交收集用户的属性),或者者经由过程进一步聚合节点的特性举行图级另外猜测(例如,猜测份子图的化学性子)。
2动静通报 GNN 的不足的地方GNN 于多个方面都取患了使人印象深刻的乐成,近来的相干研究也具备相称的广度及深度。可是,当下的图深度进修范式的主流模子是:对于在构建好的图,经由过程动静通报的方式沿着图的边流传节点信息。Michael Bronstein 认为,恰是这类以节点及边为中央的思维方式,为该范畴进一步成长带来了重要的障碍。
WL 的类比能力有限。适量选择像「乞降」如许的局部聚合函数,可使动静通报等价在 WL 图同构测试,使图神经收集可以或许按照信息于图上的流传方式发明某些图布局。经由过程这类与图论的主要接洽,研究职员提出了多种阐发 GNN 表达能力的理论成果,决议了图上的某些函数是否可以经由过程动静通报来计较。然而,这类类型的阐发成果凡是不克不及申明表征的效率(即需要几多层来计较某个函数),也不克不及申明 GNN 的泛化能力。

图注:WL 测试就比如于没有舆图的环境下走进迷宫,并试图理解迷宫的布局。位置编码提供了迷宫的舆图,而重连则提供了一个越过「墙壁」的梯子。
纵然是对于在三角形这类简朴的图布局,有时 WL 算法也没法将它们检测出来,这让试图将信息通报神经收集用在份子图的从业者很是掉望。例如,于有机化学中,像环如许的布局很是遍及,而且对于份子的性子十分主要(例如,萘等芬芳环之以是被称为芬芳环,是由于它们重要存于在具备强烈气息的化合物中)。

图注:十氢化萘(左)及二环戊基(右)有差别的布局,但咱们没法经由过程 WL 测试区别它们。
最近几年来,研究者们已经经提出了一些构建表达能力更强的 GNN 模子的要领。例如,WL 条理布局中的高维同构测试(以更高的计较及内存繁杂度以和缺少局域性为价钱),将 WL 测试运用在子图调集;位置或者布局编码,为图中的节点着色,以这类方式帮忙打破疑惑 WL 算法的纪律。位置编码今朝于 Transformer 模子中是最多见的技能,于 GNN 中也广为利用。虽然存于多种位置编码要领,但详细的选择还有取决在方针运用,要求利用者有必然经验。

图注:位置编码示例:随机特性、拉普拉斯特性向量(近似在 Transformer 中的正弦曲线)、布局特性(三角形及矩形的个数)。
「图重连」冲破了 GNN 的理论基础。GNN 及卷积神经收集(CNN)之间的一个主要且微妙的区分是:图既是输入的一部门,也是计较布局的一部门。传统的 GNN 利用输入的图布局来流传信息,经由过程这类方式得到既反应图布局又反应图上特性的暗示。然而,因为某些布局特性(「瓶颈」),一些图于信息流传方面的机能较差,致使来自太多节点的信息被压缩到一个节点彪悍尊能中,即「过压缩」。
现代 GNN 实现经由过程将输入图与计较图解耦(或者为计较目的优化输入图)来处置惩罚这类征象,这类技能称为「图重连」。重连可以采纳如下情势:邻域采样、虚拟节点、连通性扩散或者演化,或者节点及边的 Dropout 机制。Transformer 及像 GAT 这种基在留意力的 GNN 经由过程为每一条边分配差别的权重来有用地进修新的图,这也能够理解为一种「软性」的重接。末了,潜图进修要领也能够归入这一类,它可以构建针对于特定使命的图,并于每一一层中更新它(初始状况下有位置编码、初始图,或者有时底子没有图)。很少有现代 GNN 模子于原始输入图上流传信息。

图注:GNN 中利用的各类图重连技能——原始图、邻域采样(例如,GraphSAGE)、留意力机制(例如,GAT)、连通性演化(例如,DIGL)。
WL 测试按照信息于图上的流传方式来描写图。重连冲破了这类理论上的接洽,但又让咱们堕入呆板进修范畴常见的问题中:学术界从理论上阐发的模子与实践中利用的模子其实不不异。
有时,图的「几何特征」不足。GNN 是几何深度进修雄伟蓝图中的一个实例。几何深度进修是一个「群论框架」,使咱们可以按照数据底层的域的对于称性设计深度进修架构。因为图没有规范的节点挨次,于图的场景下,这类对于称性指的是节点摆列。因为这类布局特征,局部作用图上的 MPNN 必需依靠在满意摆列稳定性的特性聚合函数,这象征着图上没有「标的目的」的观点,信息的流传是各向同性的。这类环境与于持续域、网格上的进修有着显著的差别,而且是 GNN 的错误谬误之一,人们认为各向同性滤波器的作用有限。

图注:网格是具备局部欧氏布局的离散流形。咱们按照扭转来界说邻人节点,从而形成为了「标的目的」的观点。图的布局较少,它按照摆列来界说邻人节点。
有时,图的「几何特征」又过量。间隔与标的目的的差异于某种水平上也与构建节点嵌入时碰到的问题有关。于某些空间中节点表征之间的间隔被用来捕捉图的联通性。咱们年夜致可以将嵌入空间中靠近的节点经由过程图中的一条边毗连起来。于保举体系中,图嵌入被用来于节点所代表的实体之间创立联系关系(边)。
图嵌入的质量和其表达图布局的能力,于很年夜水平上取决在嵌入空间的几何性子和其与图的几何性子的兼容性。欧氏空间于暗示进修中有主要的职位地方,也是今朝最简朴、最利便的表征空间,但对于在很多天然中的图来讲,欧氏空间其实不抱负,缘故原由之一是:欧几里德度规球的体积随半径以多项式情势增加,而随维数指数增加,而实际世界中很多图的体积增加是指数的。是以,嵌入变患上「过在拥堵」,咱们被迫利用高维空间,从而致使较高的计较繁杂度及空间繁杂度。
近来风行的一种替换要领是利用负曲率(双曲)空间,它具备与图更兼容的指数体积增加。双曲几何的利用凡是会使嵌入维数更低,使节点暗示越发紧凑。然而,图往往是异质的(例如,有些部门看起来像树,其它部门看起来像团,具备很是差别的体积增加特征),而双曲嵌入空间是同质的(每一个点都有不异的几何性子)。
此外,纵然嵌入空间具备非欧几何性子,但凡是不成能于该空间中正确地暗示通用的图的器量布局。是以,图的嵌入不成防止地是类似的。然而,更糟糕糕的是,因为嵌入是于思量链接猜测尺度的环境下构建的,高阶布局(三角形、矩形等)的畸变可能会年夜到没法节制的。于社会及生物收集等运用场景下,如许的布局饰演着主要的脚色,由于它们可以捕捉更繁杂的非成对于的彼此作用及模体。

图注:图的模体是一种高阶的布局。于对于很多生物征象建模的图中可以不雅察到这类布局。
当数据的布局与底层图的布局不兼容时,GNN 的机能就会遭到挑战。很多图进修数据集及对于比基准都默许假定数据是同质性的(即相邻节点的特性或者标签是相似的,或者者说是光滑的)。于这类环境下,纵然是对于图举行简朴的低通滤波(例如,取毗邻平均值)也能起到很好的效果。初期的对于比基准测试(例如,Cora),都是于具备高度同质性的图长进行的,这使患上 GNN 的评估过在轻易。

图注:同谈判异构数据集。于同构图中,节点特性或者标签的布局与图是兼容的(即节点与其邻人节点相似)。
然而,于处置惩罚亲异(heterophilic)数据时,很多模子显示出使人掉望的成果,于这类环境下,必需利用更邃密的聚合方式。咱们没关系思量两种典型的环境:(1)模子彻底防止利用邻人信息(GNN 退化为节点级的多层感知机)(2)呈现「过光滑」征象,即节点的表征于颠末 GNN 的各层后变患上越发光滑,终极「坍塌」为一个点。亲同数据集中也存于「过光滑」征象,对于在某些 MPNN 来讲是一个更为素质的缺陷,使深度图进修模子难以实现。
咱们凡是很难理解 GNN 学到了甚么,GNN 往往是难以注释的黑盒模子。虽然可注释性的界说于很年夜水平上还有较为恍惚,但于年夜大都环境下,咱们确凿其实不真正理解 GNN 进修了甚么。近来的一些事情试图经由过程以紧凑的子图布局及于 GNN 猜测中起要害作用的节点特性子集的情势来注释基在 GNN 的模子,从而减缓可注释性的缺陷。经由过程潜图进修架构进修的图也能够看做提供「注释」的一种情势。
约束通用的动静通报函数有助在解除分歧理的输出,确保 GNN 学到的工具成心义,而且于特定范畴的运用步伐中可以更好地舆解 GNN。详细而言,如许做可以为动静通报付与分外的「内部」数据对于称性,从而更好地舆解底层的问题。例如,E(3)-等变动静通报可以或许准确地处置惩罚份子图中的原子坐标,近来对于 AlphaFold 及 RosettaFold 等卵白质布局猜测架构的乐成作出了孝敬。
于 Miles Cranmer 及 Kyle Cranmer 合著的论文“Discovering symbolic models from deep learning with inductive biases”中,作者用符号公式代替了多体动力体系上进修的动静通报函数,从而可以「进修物理方程」。还有有的研究者试图将 GNN 与因果推理接洽起来,试图构建一个图来注释差别变量之间的因果瓜葛。总的来讲,这仍旧是一个处在起步阶段的研究标的目的。

图注:差别的「可注释」GNN 模子——图注释器、潜图进修、等变动静通报。
年夜大都 GNN 的实现是与硬件无关的。今朝年夜大都 GNN 依靠在 GPU 实现,并默许数据可以装入内存。然而,于处置惩罚年夜范围图(如生物收集及社交收集)时,这往往是一种一厢情愿的设法。于这类环境下,理解底层硬件的局限性(如差别的带宽及内存条理布局的延迟),并利便地利用硬件是至关主要的。大要来讲,于不异物理内存中的两个节点及差别芯片上的两个节点之间,动静通报的成本可能存于一个数目级的差异。「使 GNN 对于现有硬件友爱」是一个主要而又常常被轻忽的问题。思量到设计新芯片所需的时间及精神,以和呆板进修的成长速率,开发以图为中央的新型硬件是一个更年夜的挑战。
3图进修新蓝图——「连续」模子「连续」进修模子是一个代替离散 GNN 的新兴的、但愿的方案。「遭到物理体系开导的连续进修」从微分几何、代数拓扑及微分方程等范畴出发斥地了一系列新的东西,迄今为止于图呆板进修中还有还没有被摸索。
将 GNN 从头想象为持续的物理历程。与于图上通报多层动静差别,咱们可以思量于持续的时间维度上发生于某个域(可所以流形等持续的域,并将其转化为离散图)上的物理历程。该历程于空间及时间上的某个点的状况代替了一层 GNN 天生的图中某个节点的潜于特性。该历程由一组参数(暗示底层物理体系的属性)节制,这些参数代替了动静通报层的可进修权值。
咱们可以按照经典体系及量子体系组织出年夜量差别的物理历程。研究者们于一系列论文中证实,很多现有的 GNN 可能与扩散历程有关,这可能最天然的流传信息方式。也可能存于一些更奇异的方式(如耦合振荡体系),它们可能具有某些上风。

图注:图耦合振荡体系的动力学。
持续体系于时间及空间上可所以离散的。空间离散化指的是:以图的情势于持续域上毗连四周的点,它可以随时间及空间变化。这类进修范式与传统的 WL 测试大相径庭,后者严酷地受底层输入图假定的约束。更主要的是,空间离散化思惟开导了一系列新的东西的降生。至少从原则上说,它让咱们可以解决一些主要的问题,这些问题是现有的图论技能所没法解决的。

图注:2D 拉普拉斯算子的差别离散化成果。
进修是一个最优节制问题。于给定的时间内,历程的所有可能状况的空间可以被看做是一个可以暗示的函数的「假定类」。这类进修方式可以看做一个最优节制问题,便是否可以节制历程(经由过程于参数空间中选择一条轨迹)使其到达某种抱负状况。咱们可以将暗示能力界说为:是否可以经由过程于参数空间中选择适量的轨迹来节制历程,从而实现某种给定的功效(可达性);效率与到达某一状况所需的时间有关;而泛化性则与该历程的不变性有关。

图注:将进修作为节制问题。经由过程飞机来比方物理体系,其 xyz 坐标(体系状况)是经由过程把持推理、副翼、及标的目的舵(参数空间)来节制的。
可以由离散微分方程推导出 GNN。物理体系的举动凡是可由微分方程节制,其解孕育发生体系的状况。于某些环境下,如许的解可所以闭式解。但于更遍及的环境下,必需依赖基在适量离散化的数值解。颠末一个多世纪的研究,数值阐发范畴呈现了各类各样的迭代求解器,为图上的深度进修提供了可能的全新架构。
GNN 中的留意力机制可以注释为具备可进修扩散系数的离散扩散偏微分方程,利用显式数值要领求解。此时,求解器的每一一步迭代对于应在 GNN 的一个层。今朝还有没有 GNN 架构可以或许直接类比在更繁杂的求解器(例如,利用自顺应步长或者多步方案),该标的目的的研究可能催生出新的架构。另外一方面,隐式的方案则需要于每一次迭代时求解一个线性体系,可以将其注释为「多跳」滤波器。此外,数值要领具备不变性及收敛性的包管,为它们可以或许事情提供了前提,也为掉效环境提供相识释。
数值求解器应该对于硬件友爱。迭代求解器比数字计较机更古老,从数字计较机降生之日起,它就必需知道本身拥有底层硬件,并有用地使用它们。科学计较中的年夜范围问题凡是必需于计较机集群上解决,而这些问题是至关主要的。
于图长进行「连续」深度进修的方式,使咱们以与模仿它们的硬件兼容的方式对于底层微分方程举行离散化。这里可能用到超等计较研究社区的年夜量结果(如域分化技能)。详细而言,图重连及自顺应迭代求解器思量了内存的条理布局,例如:于差别物理位置的节点上履行很少的信息通报步调,而于不异物理内存中的节点上履行更频仍的步调。
将演化方程注释为与物理体系相干的能量函数的梯度流,有助在理解进修模子。很多物理体系都有一个相干的能量泛函(有时也包罗某些对于称或者守恒定律),此中节制体系动力学的微分方程是一个最小化的梯度流。例如,扩散方程使狄利克雷能量最小化,而它的非欧版本(Beltrami 流)使 Polyakov 泛函最小化,从而直不雅地舆解了进修模子。使用最小作用道理,某些能量泛函可以导出双曲方程(如颠簸方程)。这些方程的解是颠簸的(振荡的),与典型的 GNN 动力学有很年夜的差别。
阐发这类流的极限环境提供了对于模子体现的深刻理解,而这是很难经由过程其它要领得到的。例如,于论文“Neural Sheaf Diffusion: A Topological Perspective on Heterophily and Oversmoothing in GNNs”中,Michael 等人证实了传统的 GNN 一定会致使过光滑,而且只有于同质性假定下才具备分散的能力;于利用图上的分外布局可以得到更好的分散能力。于论文“Graph-Coupled Oscillator Networks”中,Michael 等人证实了振动体系于极限下可防止过光滑。这些成果可以注释为何于某些 GNN 架构中会孕育发生某些不良征象,以和怎样设计架构来防止它们。此外,将流的极限环境与分散接洽起来,展现了模子表达能力的边界。
可以于图中利用更富厚的布局。如前文所述,有时图的几何性子可能「不足」(没法捕捉更繁杂的征象,如非成对于瓜葛),也可能「多余」(即难以于同质空间中暗示)。咱们可以经由过程利用分外的布局使图更富厚,从而处置惩罚图几何性子不足的问题。例如,份子包罗环,化学家认为环是单一的实体,而不是原子及键(节点及边)的调集。
Michael 等人的研究指出,图可以被「晋升」为「简朴元胞复合体」(simplicial- and cellular complexes)的高维拓扑布局。咱们可以设计一个更繁杂的动静通报机制,使信息不仅可以像于 GNN 中那样于节点之间流传,还有可以于环如许的布局之间流传。得当地组织这种「晋升」操作使这些模子比传统的 WL 测试具备更强的表达能力。

图注:将图「晋升」为元胞复合体,元胞动静通报。
于论文“Neural Sheaf Diffusion: A Topological Perspective on Heterophily and Oversmoothing in GNNs”中,Michael 等人证实了,经由过程给节点及边分配向量空间及线性映照,可以给图配备一种分外的几何布局,即「元胞束」。传统的 GNN 隐式地假定图具备简朴的底层束布局,这反应于相干扩散方程的性子及图拉普拉斯算子的布局上。与传统的 GNN 比拟,利用繁杂的「束」可以孕育发生更富厚的扩散历程,有益在对于其渐近举动。例如,于选择出的得当的束布局上的扩散方程可以于极限的多个类中分散,纵然于亲异情况中也是云云。
从几何的不雅点来看,束布局近似在毗连,这是微分几何中描写流形上向量的平行传输的观点。从这个意义上说,咱们可以把束的进修看做是一种取决在下流使命演化图的几何布局的要领。Michaedl 等人证实,经由过程限定束的布局群(例如,限定为非凡的正交群),可使节点特性向量只扭转,如许可以得到一些有趣的发明。

图注:成立于图上的元胞束由附加于每一个节点上的向量空间及毗连它们的线性约束映照构成。这可以被认为是付与图几何性子,约束映照与毗连近似。
「离散曲率类比」是另外一种图几何布局的例子,这是微分几何范畴用来描写流形局部性子的尺度要领。于论文“Understanding over-squashing and bottlenecks on graphs via curvature”中,Michael 等人证实了负图 Ricci 曲率会对于图上的信息流孕育发生瓶颈,从而致使 GNN 中的过压缩征象。离散 Ricci 曲率可以被运用在高阶布局(三角形及矩形),这于很多运用中都很主要。这类布局对于在传统的图嵌入来讲有些「多余」,由于图是异构的(很是曲率)。对于在凡是用在嵌入的空间,纵然长短欧空间,也是同构的(常曲率)。
于论文“Heterogeneous manifolds for curvature-aware graph embedding”中,Michael 等人展示了一种具备可控 Ricci 曲率的异构嵌入空间的组织,可以选择与图的曲率匹配的 Ricci 曲率,不仅可以更好地暗示邻域(间隔)布局,并且可以更好地暗示三角形及矩形等高阶布局。这些空间被组织成同构、对于扭转对于称的流形的乘积,可使用尺度黎曼梯度降落要领举行有用优化。

图注:(左)空间情势(球体、平面及双曲面)具备常的正的、零的及负的Ricci曲率,下方为它们与响应的离散的 Forman 曲率的图的类比(团、网格及树)。(中)积流形(圆柱可以被认为是圆及线的乘积)。(右)具备变曲率的异质流形和其图的类比。
位置编码可以看做是域的一部门。将图看做持续流形的离散化,可以将节点位置坐标及特性坐标视为统一空间的差别维度。于这类环境下,图可以用来暗示由这类嵌入引出的黎曼度规的离散类比,与嵌入相干的谐波能量是狄利克雷能量的非欧扩大,于弦论中称为 Polyakov 泛函。这类能量的梯度流是一个扩散型方程,它演化了位置坐标及特性坐标。于节点的位置上构建图是一种针对于特定使命的图重连的情势,它也会于扩散的迭代层中发生变化。

图注:经由过程带有重连的 Beltrami 流对于 Cora 图的位置及特性份量举行演化的成果。
域的演化可替换图重连。作为一个预处置惩罚步调,扩散方程也能够运用在图的连通性,旨于改善信息流及防止过压缩。Klicpera 等人提出了一种基在个性化 Page Rank 的算法,这是一种图扩散嵌入。于论文“Understanding over-squashing and bottlenecks on graphs via curvature”中,咱们阐发了这个历程,指出了它于异构设定下的缺陷,并提出了一个受 Ricci 流开导的历程的图重接的替换方案。如许的重连削减了负曲率酿成的图瓶颈的影响。Ricci 流是流形的几何演化方程,很是近似在用在黎曼度规的扩散方程,是微分几何中类风行且强盛的技能(包括闻名的 Poincaré 料想的证实)。更广义地说,与其将图重连作为预处置惩罚步调,还有不如思量一个演化历程的耦合体系:一个演化特性,另外一个演范畴。

图注:(上)具备负曲率的瓶颈的哑铃形黎曼流形,颠末基在曲率的度规演化,变患上更圆,瓶颈更不较着。(下)一个近似的基在曲率的图重连历程,削减了瓶颈,使图对于动静通报更友爱。
4结语新的理论框架能让咱们走多远,是否可以或许解决该范畴今朝还没有解决的问题,仍旧是一个悬而未决的问题。
这些要领真的会于实践中被利用吗?对于在实践者来讲,一个要害的问题是,这些要领是否会催生新的更好的架构,或者者仍旧是一个离开现实运用的理论东西。Michael Bronstein 信赖,这个范畴的研究将是实用的,经由过程拓扑及几何东西得到的理论结果将使咱们对于现有 GNN 架构做出更好的选择。例如,怎样约束动静通报函数,以和什么时候利用这些特定的选择。
咱们是否已经经逾越了动静通报的领域?从广义上讲,数字计较机上的任何计较都是一种动静通报情势。然而,于严酷意义上的 GNN 中,动静通报是一个计较观点,它经由过程将信息从一个节点发送到另外一个节点来实现,这是一个内涵的离散历程。另外一方面,所描写的物理模子以持续的方式于节点之间同享信息(例如,于一个图耦合振荡体系中,一个节点的动力学依靠在它的邻人于每一个时间点上的动力学)。于对于描写该体系的微分方程举行离散化及数值求解时,所对于应的迭代确凿是经由过程动静通报实现的。
然而,人们可以假定利用这些物理体系的现实实现或者其他计较范式(例如,模仿电子学或者光子学)。于数学上,底层的微分方程的解有时可能以关闭情势给出:例如,各向同性扩散方程的解是一个高斯核卷积。于这类环境下,邻人的影响被接收到核的布局中,没有发生现实的动静通报。

图注:基在反向流传的深度进修于真什物理体系中的运用。
原文链接:https://towardsdatascience.com/graph-neural-networks-beyond-weisfeiler-lehman-and-vanilla-message-passing-bc8605fa59a
雷峰网(公家号:雷峰网)
雷峰网版权文章,未经授权禁止转载。详情见转载须知。





