为什么需要自监督学习?
图上的深度学习近些年十分流行,但是现有的工作大部分都是监督或半监督学习(需要人工标注标签)。基于监督学习和半监督学习的方法存在一些缺陷:
而自监督学习(self-supervised learning, SSL)对人工标注数据的依赖较低,因此可以很好的解决上述问题。
什么是自监督学习?
SSL利用前置任务(pretext task)从无监督数据中挖掘自身的监督信息,通过精心设计的前置任务可以学得更具表达能力的表示(representation),从而在各种下游任务上获得更好的性能、泛化能力和鲁棒性。
DL其它领域自监督学习
SSL在CV和NLP领域已经取得了巨大的成功,但是由于图数据的非欧性,将用于CV/NLP的前置设计迁移到图上来是比较困难的,例如
图自监督学习的历史
图SSL的历史至少可以追溯到关于无监督图嵌入(Embedding)的早期研究,这些方法通过最大化截断随机游动((truncated random walk)中上下文节点之间的一致性来学习节点表示。
截断随机游走实际上就是长度固定的随机游走。
2019年来,大量针对图SSL的前置任务设计被提出:对比学习(contrastive learning)、图属性挖掘(graph property mining)。
Manual Labels和Pseudo Labels:人工标签顾名思义指人工标注的标签,而伪标签指机器自动从数据中获取的标签。在SSL中,可以设计特定的方法来生成伪标签,从而增强表示学习。
Downstream Tasks和Pretext Tasks:下游任务是指应用SSL获取的表示进行图分析的任务,例如Node Classification和Graph Classification。前置任务是预先设计好的供模型解决的任务,例如图重建。通过Pretext Task可以从未标记的数据中学习更普遍的表示,使得下游任务的性能更佳。
Supervised Learning、Unsupervised Learning和Self-Supervised Learning:监督学习指训练模型的数据带人工标注的标签,无监督学习指不使用人工标签进行学习(聚类),自监督学习指监督信息由数据自身生成。
Plain Graph:朴素图表示为 G = ( V , E ) \mathcal{G}=(\mathcal{V}, \mathcal{E}) G=(V,E),其中 V \mathcal{V} V表示顶点集, E \mathcal{E} E表示边集,图的拓扑结构表示为邻接矩阵 A \mathbf{A} A。
Attributed Graph:属性图指图中的节点或边包含自己的特征,图中所有节点的特征组成矩阵 X node ∈ R n × d node \mathbf{X}_{\text{node}} \in \mathbb{R}^{n \times d_{\text{node}}} Xnode∈Rn×dnode,图中所有边的特征矩阵矩阵 X edge ∈ R m × d edge \mathbf{X}_{\text{edge}} \in \mathbb{R}^{m \times d_{\text{edge}}} Xedge∈Rm×dedge。
H H H:节点的表示矩阵,将结点特征送入编码器获取到的。
h G h_{\mathcal{G}} hG:图级别的特征,在节点特征上应用Readout函数获取的。
用encoder-decoder框架来形式化图自监督学习:
基于以上内容,图自监督学习可以形式化为:
θ ∗ , ϕ ∗ = arg min θ , ϕ L s s l ( f θ , p ϕ , D ) , \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{s s l}\left(f_{\theta}, p_{\phi}, \mathcal{D}\right), θ∗,ϕ∗=θ,ϕargminLssl(fθ,pϕ,D),
其中 D \mathcal{D} D 表示图数据分布, L s s l \mathcal{L}_{s s l} Lssl 表示SSL的优化目标上定义的损失函数。训练好的图编码器 f θ ∗ f_{\theta^{*}} fθ∗可以生成用于各种下游任务的初始化表示。下游任务用 q ψ q_{\psi} qψ表示,图监督学习的下游任务的形式为:
θ ∗ ∗ , ψ ∗ = arg min θ ∗ , ψ L s u p ( f θ ∗ , q ψ , G , y ) \theta^{* *}, \psi^{*}=\underset{\theta^{*}, \psi}{\arg \min } \mathcal{L}_{s u p}\left(f_{\theta^{*}}, q_{\psi}, \mathcal{G}, y\right) θ∗∗,ψ∗=θ∗,ψargminLsup(fθ∗,qψ,G,y)
其中 y y y表示数据的标签, L s u p \mathcal{L}_{s u p} Lsup表示监督学习任务的损失函数。
图SSL的4中类别:
基于生成的(generation-based)方法的前置任务为图数据重建,包括有节点/边特征或图邻接关系的重建。
θ ∗ , ϕ ∗ = arg min θ , ϕ L s s l ( p ϕ ( f θ ( G ~ ) ) , G ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{s s l}\left(p_{\phi}\left(f_{\theta}(\tilde{\mathcal{G}})\right), \mathcal{G}\right) θ∗,ϕ∗=θ,ϕargminLssl(pϕ(fθ(G~)),G)
其中 f θ ( ⋅ ) f_{\theta}(\cdot) fθ(⋅)和 p ϕ ( ⋅ ) p_{\phi}(\cdot) pϕ(⋅)分别表示图编码器和前置任务解码器, G ~ \tilde{\mathcal{G}} G~表示具有扰动节点/边特征或邻接矩阵的图数据。大多数基于生成的方法通常定义 L s s l \mathcal{L}_{s s l} Lssl来测量重建图和原始图间的差异。典型代表是图自编码器GAE,它通过重建邻接矩阵来学习嵌入。
基于辅助属性(auxiliary Property-based)的方法是利用图的辅助属性来作为监督信号。基于辅助属性的方法可以细分为两类 :
基于辅助属性的方法的数学形式为:
θ ∗ , ϕ ∗ = arg min θ , ϕ L s s l ( p ϕ ( f θ ( G ) ) , c ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{s s l}\left(p_{\phi}\left(f_{\theta}(\mathcal{G})\right), c\right) θ∗,ϕ∗=θ,ϕargminLssl(pϕ(fθ(G)),c)
其中 c c c表示特定的辅助属性。
对于基于回归的方法, c c c可以是局部或全局的图属性,例如节点度、图 G \mathcal{G} G内簇(cluster)的距离。 L s s l \mathcal{L}_{s s l} Lssl可以是均方误差(MSE).
对于基于分类的方法, c c c可以是伪标签、例如图分区或簇索引。 L s s l \mathcal{L}_{s s l} Lssl可以是交叉熵(CE).
互信息:信息论中用以评价两个随机变量之间的依赖程度的一个度量。
基于对比(contrast-based)的方法通常基于互信息(MI)最大化的概念 ,其中同一对象(如节点、子图、图)的增强实例之间的MI被最大化。
θ ∗ , ϕ ∗ = arg min θ , ϕ L s s l ( p ϕ ( f θ ( G ~ ( 1 ) ) , f θ ( G ~ ( 2 ) ) ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{s s l}\left(p_{\phi}\left(f_{\theta}\left(\tilde{\mathcal{G}}^{(1)}\right), f_{\theta}\left(\tilde{\mathcal{G}}^{(2)}\right)\right)\right) θ∗,ϕ∗=θ,ϕargminLssl(pϕ(fθ(G~(1)),fθ(G~(2))))
其中 G ~ ( 1 ) \tilde{\mathcal{G}}^{(1)} G~(1)和 G ~ ( 2 ) \tilde{\mathcal{G}}^{(2)} G~(2) 是 G \mathcal{G} G的两个不同增强实例,前置解码器 p ϕ p_{\phi} pϕ是估计两个实例之间一致性的判别器(discriminator)。 L s s l \mathcal{L}_{s s l} Lssl表示对比损失,对比损失旨在最大化与正样本的MI,并与最小化负样本的MI。
混合(hybrid)方法利用了前面提到的三种方法,它由多个前置解码器或训练目标组成。
根据图编码器、自监督前置任务和下游任务的关系,将训练方案分为三种。
预训练微调(Pre-training and Fine-tuning, PF)模式指编码器 f θ f_{\theta} fθ首先通过预训练数据集上的前置任务进行预训练得到 f θ init f_{\theta_{\text {init }}} fθinit 。然后,在特定下游任务的监督下,使用下游解码器 q ψ q_{\psi} qψ 和微调数据集上对预训练编码器 f θ init f_{\theta_{\text {init }}} fθinit 进行微调。
θ ∗ , ϕ ∗ = arg min θ , ϕ L s s l ( f θ , p ϕ , D ) , θ ∗ ∗ , ψ ∗ = arg min θ ∗ , ψ L s u p ( θ ∗ , q ψ , G , y ) . \begin{gathered} \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{s s l}\left(f_{\theta}, p_{\phi}, \mathcal{D}\right), \\ \theta^{* *}, \psi^{*}=\underset{\theta^{*}, \psi}{\arg \min } \mathcal{L}_{s u p}\left(\theta^{*}, q_{\psi}, \mathcal{G}, y\right) . \end{gathered} θ∗,ϕ∗=θ,ϕargminLssl(fθ,pϕ,D),θ∗∗,ψ∗=θ∗,ψargminLsup(θ∗,qψ,G,y).
在联合学习(Joint Learning, JL)中,编码器是与前置和下游任务共同训练的,其损失函数由自监督和下游任务损失共同组成。
θ ∗ , ϕ ∗ , ψ ∗ = arg min θ , ϕ , ψ [ α L s s l ( f θ , p ϕ , D ) + L s u p ( f θ , q ψ , G , y ) ] \theta^{*}, \phi^{*}, \psi^{*}=\underset{\theta, \phi, \psi}{\arg \min }\left[\alpha \mathcal{L}_{s s l}\left(f_{\theta}, p_{\phi}, \mathcal{D}\right)+\mathcal{L}_{s u p}\left(f_{\theta}, q_{\psi}, \mathcal{G}, y\right)\right] θ∗,ϕ∗,ψ∗=θ,ϕ,ψargmin[αLssl(fθ,pϕ,D)+Lsup(fθ,qψ,G,y)]
无监督表征学习(Unsupervised Representation Learning, URL)的第一个阶段与PF相似,主要是区别是:
θ ∗ , ϕ ∗ = arg min θ , ϕ L s s l ( f θ , p ϕ , D ) , ψ ∗ = arg min ψ L s u p ( f θ ∗ , q ψ , G , y ) . \begin{aligned} \theta^{*}, \phi^{*} &=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{s s l}\left(f_{\theta}, p_{\phi}, \mathcal{D}\right), \\ \psi^{*} &=\underset{\psi}{\arg \min } \mathcal{L}_{s u p}\left(f_{\theta^{*}}, q_{\psi}, \mathcal{G}, y\right) . \end{aligned} θ∗,ϕ∗ψ∗=θ,ϕargminLssl(fθ,pϕ,D),=ψargminLsup(fθ∗,qψ,G,y).
下游任务可以划分为:
自监督学习的有效性是通过下游任务的性能来进行评估的。
图生成任务旨在重建输入数据,并使用输入数据作为监督信号。根据重建的对象,该类方法可以划分为两类:
特征生成方法通过从扰动图或原始图中恢复特征信息来学习,其可形式化为:
θ ∗ , ϕ ∗ = arg min θ , ϕ L m s e ( p ϕ ( f θ ( G ~ ) ) , X ^ ) , \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{m s e}\left(p_{\phi}\left(f_{\theta}(\tilde{\mathcal{G}})\right), \hat{\mathbf{X}}\right), θ∗,ϕ∗=θ,ϕargminLmse(pϕ(fθ(G~)),X^),
其中 p ϕ ( ⋅ ) p_{\phi}(\cdot) pϕ(⋅)表示特征回归的解码器, L m s e \mathcal{L}_{m s e} Lmse是均方误差损失, X ^ \hat{\mathbf{X}} X^是各种特征矩阵的通用表示,例如节点特征矩阵、边特征矩阵。
掩码特征回归(masked feature regression strategy)指将特定节点/边的特征掩去(用0或特定标记),然后模型尝试根据未被掩去的信息来恢复掩去的特征。
Graph Completion
Attribute Mask
Attribute Mask旨在重建经过PCA处理的稠密(dense)特征矩阵( ( X ^ = P C A ( X ) ) (\hat{\mathbf{X}}=P C A(\mathbf{X})) (X^=PCA(X))),而不是原始的高维稀疏特征(重建起来比较困难)。Attribute Mask不仅重建节点属性,还重建边属性,即 X ^ = [ X , X edge ] \hat{\mathbf{X}}=\left[\mathbf{X}, \mathbf{X}_{\text {edge }}\right] X^=[X,Xedge ]。
从噪声特征生成特征:MAGE使用GNN来从带噪声的输入特征中恢复原始(raw)特征。
从干净的特征重建特征:GALA训练了一个拉普拉斯平滑锐化图自动编码器模型,目标是根据干净的输入图重建原始特征矩阵。
结构生成方法通过恢复结构信息来学习,大多数情况都是在重建邻接矩阵,基于此结构生成方法可以形式化为:
θ ∗ , ϕ ∗ = arg min θ , ϕ L s s l ( p ϕ ( f θ ( G ~ ) ) , A ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{s s l}\left(p_{\phi}\left(f_{\theta}(\tilde{\mathcal{G}})\right), \mathbf{A}\right) θ∗,ϕ∗=θ,ϕargminLssl(pϕ(fθ(G~)),A)
其中 p ϕ ( ⋅ ) p_{\phi}(\cdot) pϕ(⋅)是用于结构重建的解码器。
GAE
图自编码器GAE使用基于GCN的编码器从原始图中生成节点嵌入 H \mathbf{H} H,然后解码器通过带sigmoid激活的内积函数来重建邻接矩阵 A \mathbf{A} A(指两两计算两点之间存在边的概率)。由于邻接矩阵通常是二进制和稀疏的,因此使用了BCELoss。
GAE之后有很多基于此的衍生工作,例如VGAE、SIG-VAE、ARGA/ARVGA、SuperGAT。
Denoising Link Reconstruction
不重建完整图,Denoising Link Reconstruction仅重建掩去的边。其具体做法是随机丢弃一些边来获取一个扰动图 G ~ \tilde{\mathcal{G}} G~,然后,该模型应用BCL loss来训练模型,以恢复丢弃的连接(边)。
辅助属性分类模型自动创建离散伪标签,然后用分类器作为前置任务,使用交叉熵来训练模型,其数学形式为:
θ ∗ , ϕ ∗ = arg min θ , ϕ L c e ( p ϕ ( f θ ( G ) ) , c ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{c e}\left(p_{\phi}\left(f_{\theta}(\mathcal{G})\right), c\right) θ∗,ϕ∗=θ,ϕargminLce(pϕ(fθ(G)),c)
其中 p ϕ p_{\phi} pϕ 是分类器,它输出一个 k k k维的概率向量( k k k表示类别数), c ∈ C = { c 1 , ⋯ , c k } c \in \mathcal{C}=\left\{c_{1}, \cdots, c_{k}\right\} c∈C={c1,⋯,ck} 是对应的伪标签。
根据伪标签的生成方式,辅助属性分类方法可以分为两类:clustering-based和pair relation-based。
根据节点的属性或结构特征将节点划分为不同的簇来生成伪标签,该类方法的学习目标为:
θ ∗ , ϕ ∗ = arg min θ , ϕ 1 ∣ V ∣ ∑ v i ∈ V L c e ( p ϕ ( [ f θ ( G ) ] v i ) , Ω ( v i ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \frac{1}{|\mathcal{V}|} \sum_{v_{i} \in \mathcal{V}} \mathcal{L}_{c e}\left(p_{\phi}\left(\left[f_{\theta}(\mathcal{G})\right]_{v_{i}}\right), \Omega\left(v_{i}\right)\right) θ∗,ϕ∗=θ,ϕargmin∣V∣1vi∈V∑Lce(pϕ([fθ(G)]vi),Ω(vi))
其中 [ ⋅ ] v i [\cdot]_{v_{i}} [⋅]vi表示抓取节点 v i v_i vi的表示的函数, Ω : V → C \Omega: \mathcal{V} \rightarrow \mathcal{C} Ω:V→C是一个从节点到伪标签的映射函数(即生成伪标签的聚类/分区算法)。
Node Clustering:使用节点特征聚类算法来对图节点聚类,每个簇中的所有结点对应同一种伪标签,不同类不同。
非基于节点特征的聚簇方法:
生成节点对间关系的伪标签,该类方法的学习目标为:
θ ∗ , ϕ ∗ = arg min θ , ϕ 1 ∣ P ∣ ∑ v i , v j ∈ P L c e ( p ϕ ( [ f θ ( G ) ] v i , v j ) , Ω ( v i , v j ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \frac{1}{|\mathcal{P}|} \sum_{v_{i}, v_{j} \in \mathcal{P}} \mathcal{L}_{c e}\left(p_{\phi}\left(\left[f_{\theta}(\mathcal{G})\right]_{v_{i}, v_{j}}\right), \Omega\left(v_{i}, v_{j}\right)\right) θ∗,ϕ∗=θ,ϕargmin∣P∣1vi,vj∈P∑Lce(pϕ([fθ(G)]vi,vj),Ω(vi,vj))
其中 Ω : V × V → C \Omega: \mathcal{V} \times \mathcal{V} \rightarrow \mathcal{C} Ω:V×V→C是节点对到伪标签的映射函数, P ⊆ V × V \mathcal{P} \subseteq \mathcal{V} \times \mathcal{V} P⊆V×V表示特定前置任务定义的节点对集, [ ⋅ ] v i , v j [\cdot]_{v_{i}, v_{j}} [⋅]vi,vj表示节点对的特征的拼接(concatenation)。
S 2 G R L S^2GRL S2GRL:将结点对间的最短距离作为伪标签,即 Ω ( v i , v j ) = dist ( v i , v j ) \Omega\left(v_{i},v_{j}\right)=\operatorname{dist}\left(v_{i}, v_{j}\right) Ω(vi,vj)=dist(vi,vj);
Pairwise Distance:与前者类似,只不过给距离设了一个上界,即 Ω ( v i , v j ) = max ( dist ( v i , v j ) , 4 ) \Omega\left(v_{i}, v_{j}\right)=\max \left(\operatorname{dist}\left(v_{i}, v_{j}\right), 4\right) Ω(vi,vj)=max(dist(vi,vj),4)。
Centrality Score Ranking :前置任务为预测一对节点间中心性(centrality)得分的相对顺序,具体做法为每个节点对 ( v i , v j ) \left(v_{i}, v_{j}\right) (vi,vj)计算4种类型的中心性分数 s i , s j s_i, s_j si,sj(eigencentrality , betweenness, closeness, and subgraph centrality),然后通过比较 s i s_i si和 s j s_j sj的值来生成伪标签,即 Ω ( v i , v j ) = I ( s i > s j ) \Omega\left(v_{i}, v_{j}\right)=\mathbb{I}\left(s_{i}>s_{j}\right) Ω(vi,vj)=I(si>sj),其中 I ( ⋅ ) \mathbb{I}(\cdot) I(⋅)是 identity function。
辅助属性回归以跟图的数值属性相关的回归任务作为前置任务,其可以形式化为:
θ ∗ , ϕ ∗ = arg min θ , ϕ L m s e ( p ϕ ( f θ ( G ) ) , c ) , \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{m s e}\left(p_{\phi}\left(f_{\theta}(\mathcal{G})\right), c\right), θ∗,ϕ∗=θ,ϕargminLmse(pϕ(fθ(G)),c),
其中 L m s e \mathcal{L}_{m s e} Lmse表示回归损失函数, c ∈ R c \in \mathbb{R} c∈R表示一个连续属性值。
NodeProperty:与节点数值属性有关的前置任务,节点属性可以选择degree、local node importance、local clustering coefficient。以节点度为例,目标函数可写为:
θ ∗ , ϕ ∗ = arg min θ , ϕ 1 ∣ V ∣ ∑ v i ∈ V L m s e ( p ϕ ( [ f θ ( G ) ) ] v i , Ω ( v i ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \frac{1}{|\mathcal{V}|} \sum_{v_{i} \in \mathcal{V}} \mathcal{L}_{m s e}\left(p_{\phi}\left(\left[f_{\theta}(\mathcal{G})\right)\right]_{v_{i}}, \Omega\left(v_{i}\right)\right) θ∗,ϕ∗=θ,ϕargmin∣V∣1vi∈V∑Lmse(pϕ([fθ(G))]vi,Ω(vi))
其中 Ω ( v i ) = ∑ j = 1 n A i j \Omega\left(v_{i}\right)=\sum_{j=1}^{n} \mathbf{A}_{i j} Ω(vi)=∑j=1nAij 是计算节点 v i v_i vi度的映射函数。
PairwiseAttrSim:根据两个节点间的嵌入来预测它们的特征相似性,即:
θ ∗ , ϕ ∗ = arg min θ , ϕ 1 ∣ P ∣ ∑ v i , v j ∈ P L m s e ( p ϕ ( [ f θ ( G ) ] v i , v j ) , Ω ( v i , v j ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \frac{1}{|\mathcal{P}|} \sum_{v_{i}, v_{j} \in \mathcal{P}} \mathcal{L}_{m s e}\left(p_{\phi}\left(\left[f_{\theta}(\mathcal{G})\right]_{v_{i}, v_{j}}\right), \Omega\left(v_{i}, v_{j}\right)\right) θ∗,ϕ∗=θ,ϕargmin∣P∣1vi,vj∈P∑Lmse(pϕ([fθ(G)]vi,vj),Ω(vi,vj))
其中映射函数 Ω ( v i , v j ) = cosine ( x i , x j ) \Omega\left(v_{i}, v_{j}\right)=\operatorname{cosine}\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) Ω(vi,vj)=cosine(xi,xj) 指节点对间原始特征间的余弦距离。
CV领域对比学习的成功表明数据增强有利于模型探索更丰富的潜在语义信息。
数据增强的形式化定义:给定图 G \mathcal{G} G,第 i i i个图增强实例可以定义为 G ~ ( i ) = t i ( G ) \tilde{\mathcal{G}}^{(i)} = t_i(\mathcal{G}) G~(i)=ti(G),其中 t i ∼ τ t_i \thicksim \tau ti∼τ是一个选定的图增强方式, τ \tau τ是一组可用的增强。
对节点属性进行增强,给定图 G = { A , X } \mathcal{G} = \{ \mathbf{A}, \mathbf{X} \} G={A,X},增强图可以表示为:
G ~ ( i ) = ( A , X ~ ( i ) ) = ( A , t i ( X ) ) \tilde{\mathcal{G}}^{(i)}=\left(\mathbf{A}, \tilde{\mathbf{X}}^{(i)}\right)=\left(\mathbf{A}, t_{i}(\mathbf{X})\right) G~(i)=(A,X~(i))=(A,ti(X))
其中 X ~ ( i ) \tilde{\mathbf{X}}^{(i)} X~(i)表示增强的节点特征。
节点特征掩码(Node Feature Masking, NFM)
NFM指随机掩去给定图上的部分节点的特征,可以完全掩去特征向量或掩去特征向量的若干通道,其可形式化定义为:
t i ( X ) = M ∘ X t_{i}(\mathbf{X})=\mathbf{M} \circ \mathbf{X} ti(X)=M∘X
其中 M \mathbf{M} M是掩码矩阵。
GCA:通过节点中心性(centrality)来衡量重要程度,对于重要程度底的节点分配更高的mask频率。
节点特征打乱(Node Feature Shuffle, NFS)
NFS通过对节点特征矩阵进行部分按行的扰动来交换图中某些节点的特征向量,其用数学可以表示为:
t i ( X ) = [ X ] V ~ t_{i}(\mathbf{X})=[\mathbf{X}]_{\tilde{\mathcal{V}}} ti(X)=[X]V~
其中 [ ⋅ ] v i [\cdot]_{v_i} [⋅]vi表示从特征矩阵中取 v i v_i vi的特征向量的函数, V ~ \tilde{\mathcal{V}} V~表示部分打乱后的节点集。
拓扑增强主要是在图的邻接矩阵上下功夫,其可以形式化为:
G ~ ( i ) = ( A ~ ( i ) , X ) = ( t i ( A ) , X ) \tilde{\mathcal{G}}^{(i)}=\left(\tilde{\mathbf{A}}^{(i)}, \mathbf{X}\right)=\left(t_{i}(\mathbf{A}), \mathbf{X}\right) G~(i)=(A~(i),X)=(ti(A),X)
边修改(Edge Modification, EM)
EM是最常用的拓扑增强方法之一,其主要是通过随机删除和插入部分边来扰动图邻接矩阵,即:
t i ( A ) = M 1 ∘ A + M 2 ∘ ( 1 − A ) t_{i}(\mathbf{A})=\mathbf{M}_{1} \circ \mathbf{A}+\mathbf{M}_{2} \circ(1-\mathbf{A}) ti(A)=M1∘A+M2∘(1−A)
其中 M 1 \mathbf{M}_{1} M1和 M 2 \mathbf{M}_{2} M2 是边丢弃和插入矩阵。
图扩散(Graph Diffusion, GD)
GD是另一种结构增强,它将节点和它们间接连接的邻居(k-hop邻居)连接起来,从而将全局拓扑信息注入到给定的图中,其中每个hop的邻居都有相应的权重:
t i ( A ) = ∑ k = 0 ∞ Θ k T k t_{i}(\mathbf{A})=\sum_{k=0}^{\infty} \Theta_{k} \mathbf{T}^{k} ti(A)=k=0∑∞ΘkTk
其中 Θ \Theta Θ 表示权重, T \mathbf{T} T表示转移矩阵。
论文中有更加详细的说明。
混合增强顾名思义就是同时包含属性增强和混合增强,即:
G ~ ( i ) = ( A ~ ( i ) , X ~ ( i ) ) = ( t i ( A , X ) ) \tilde{\mathcal{G}}^{(i)}=\left(\tilde{\mathbf{A}}^{(i)}, \tilde{\mathbf{X}}^{(i)}\right)=\left(t_{i}(\mathbf{A}, \mathbf{X})\right) G~(i)=(A~(i),X~(i))=(ti(A,X))
Subgraph sampling (SS) 是一个混合增强的典型例子,它采样部分节点及其对应的联系作为图实例(获取到子图):
t i ( A , X ) = [ ( A , X ) ] V ′ ∈ V , t_{i}(\mathbf{A}, \mathbf{X})=[(\mathbf{A}, \mathbf{X})]_{\mathcal{V}^{\prime} \in \mathcal{V}}, ti(A,X)=[(A,X)]V′∈V,
常用的采样策略包括:
对比学习旨在最大化语义信息相似的实例之间的MI,图对比学习方法可以分为两类:same-scale和cross-scale。
same-scale对比学习可以进一步划分为graph-level、node-level。
node-level same-scale contrast
早期工作的idea基础:具有相似上下文信息的节点应共享相似表示。
θ ∗ = arg min θ 1 ∣ V ∣ ∑ v i ∈ V L c o n ( p ( [ f θ ( A , X ) ] v i , [ f θ ( A , X ) ] v c ) ) \theta^{*}=\underset{\theta}{\arg \min } \frac{1}{|\mathcal{V}|} \sum_{v_{i} \in \mathcal{V}} \mathcal{L}_{c o n}\left(p\left(\left[f_{\theta}(\mathbf{A}, \mathbf{X})\right]_{v_{i}},\left[f_{\theta}(\mathbf{A}, \mathbf{X})\right]_{v_{c}}\right)\right) θ∗=θargmin∣V∣1vi∈V∑Lcon(p([fθ(A,X)]vi,[fθ(A,X)]vc))
其中 v c v_c vc表示节点 v i v_i vi的上下文节点。
DeepWalk,它通过随机游走(random walk)在无属性图上来获取选定节点的上下文信息(随机游走获取到的节点序列),它最大化同一次随机游走中的其它节点的共现概率来进行学习。(与NLP中的跳词模型Skip-Gram相似)
如今的节点级同尺度对比方法通过各种图像增强来探索更丰富的语义信息,而不仅局限于子图采样。
θ ∗ , ϕ ∗ = arg min θ , ϕ L c o n ( p ϕ ( f θ ( A ~ ( 1 ) , X ~ ( 1 ) ) , f θ ( A ~ ( 2 ) , X ~ ( 2 ) ) ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{c o n}\left(p_{\phi}\left(f_{\theta}\left(\tilde{\mathbf{A}}^{(1)}, \tilde{\mathbf{X}}^{(1)}\right), f_{\theta}\left(\tilde{\mathbf{A}}^{(2)}, \tilde{\mathbf{X}}^{(2)}\right)\right)\right) θ∗,ϕ∗=θ,ϕargminLcon(pϕ(fθ(A~(1),X~(1)),fθ(A~(2),X~(2))))
其中 A ~ ( 1 ) \tilde{\mathbf{A}}^{(1)} A~(1)和 A ~ ( 2 ) \tilde{\mathbf{A}}^{(2)} A~(2)是两个增强图邻接矩阵, X ~ ( 1 ) \tilde{\mathbf{X}}^{(1)} X~(1)和 X ~ ( 2 ) \tilde{\mathbf{X}}^{(2)} X~(2)是两个增强的特征矩阵。
这类方法主要处理有属性图,典型工作包括GRACE,它采用两种图增强策略,节点特征掩码和丢弃边,以此生成两个对比视图,然后在两个视图之间拉近相同节点的表示,同时将其余节点表示拉离。
Graph-Level Same-Scale Contrast
图级同尺度对比学习主要是在图级的嵌入表示上进行对比,其数学形式为:
θ ∗ , ϕ ∗ = arg min θ , ϕ L con ( p ϕ ( g ~ ( 1 ) , g ~ ( 2 ) ) ) , \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \mathcal{L}_{\operatorname{con}}\left(p_{\phi}\left(\tilde{\mathbf{g}}^{(1)}, \tilde{\mathbf{g}}^{(2)}\right)\right), θ∗,ϕ∗=θ,ϕargminLcon(pϕ(g~(1),g~(2))),
其中 g ~ ( i ) = R ( f θ ( A ~ ( i ) , X ~ ( i ) ) ) \tilde{\mathbf{g}}^{(i)}=\mathcal{R}\left(f_{\theta}\left(\tilde{\mathbf{A}}^{(i)}, \tilde{\mathbf{X}}^{(i)}\right)\right) g~(i)=R(fθ(A~(i),X~(i)))表示增强图 G ~ ( i ) \tilde{\mathcal{G}}^{(i)} G~(i)的表征, R ( ⋅ ) \mathcal{R}(\cdot) R(⋅)是Readout函数。
图级同尺度对比学习是通过拉近两个视图的图表示从而学习的,例如GraphGL。
跨尺度对比学习在不同的图拓扑层级(例如,节点与图)之间进行对比。
该类方法可以进一步划分为patch-global和context-global对比。
Patch-Global Cross-Scale Contrast
节点和图级别对比学习的方法可以统一被形式化为:
θ ∗ , ϕ ∗ = arg min θ , ϕ 1 ∣ V ∣ ∑ v i ∈ V L con ( p ϕ ( [ f θ ( A , X ) ] v i , R ( f θ ( A , X ) ) ) ) \begin{aligned} &\theta^{*}, \phi^{*}= \underset{\theta, \phi}{\arg \min } \frac{1}{|\mathcal{V}|} \sum_{v_{i} \in \mathcal{V}} \mathcal{L}_{\text {con }}\left(p_{\phi}\left(\left[f_{\theta}(\mathbf{A}, \mathbf{X})\right]_{v_{i}}, \mathcal{R}\left(f_{\theta}(\mathbf{A}, \mathbf{X})\right)\right)\right) \end{aligned} θ∗,ϕ∗=θ,ϕargmin∣V∣1vi∈V∑Lcon (pϕ([fθ(A,X)]vi,R(fθ(A,X))))
其中 R \mathcal{R} R表示Readout函数。
DGI是第一个提出将节点级嵌入与图级表示进行对比的方法,其目的是从不同的尺度最大化这两种表示之间的MI,以帮助图编码器学习局部和全局语义信息。
异构图上HDGI,时空图STDGI。
上述类似工作都没有使用图增强技术,带增强的Pach-Global Cross-Scale Contrast可以形式化为:
θ ∗ , ϕ ∗ = arg min θ , ϕ 1 ∣ V ∣ ∑ v i ∈ V L con ( p ϕ ( h ~ i ( 1 ) , g ~ ( 2 ) ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \frac{1}{|\mathcal{V}|} \sum_{v_{i} \in \mathcal{V}} \mathcal{L}_{\text {con }}\left(p_{\phi}\left(\tilde{\mathbf{h}}_{i}^{(1)}, \tilde{\mathbf{g}}^{(2)}\right)\right) θ∗,ϕ∗=θ,ϕargmin∣V∣1vi∈V∑Lcon (pϕ(h~i(1),g~(2)))
其中 h ~ i ( 1 ) = [ f θ ( A ~ ( 1 ) , X ~ ( 1 ) ) ] v i \tilde{\mathbf{h}}_{i}^{(1)}=\left[f_{\theta}\left(\tilde{\mathbf{A}}^{(1)}, \tilde{\mathbf{X}}^{(1)}\right)\right]_{v_{i}} h~i(1)=[fθ(A~(1),X~(1))]vi是增强视图1中的节点表示, g ~ ( 2 ) = R ( f θ ( A ~ ( 2 ) , X ~ ( 2 ) ) ) \tilde{\mathbf{g}}^{(2)}=\mathcal{R}\left(f_{\theta}\left(\tilde{\mathbf{A}}^{(2)}, \tilde{\mathbf{X}}^{(2)}\right)\right) g~(2)=R(fθ(A~(2),X~(2))) 是增强视图2中的图表示。
MVGRL是首次通过graph diffusion和subgraph sampling生成两个视图,然后通过最大化一个视图中的节点嵌入和另一个视图中的图级表示间的MI来丰富局部和全局监督信息。
Context-Global Cross-Scale Contrast
Context-global cross-scale contrast的形式化定义如下:
θ ∗ , ϕ ∗ = arg min θ , ϕ 1 ∣ S ∣ ∑ s ∈ S L con ( p ϕ ( h ~ s , g ~ ) ) \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \frac{1}{|\mathcal{S}|} \sum_{s \in \mathcal{S}} \mathcal{L}_{\operatorname{con}}\left(p_{\phi}\left(\tilde{\mathbf{h}}_{s}, \tilde{\mathbf{g}}\right)\right) θ∗,ϕ∗=θ,ϕargmin∣S∣1s∈S∑Lcon(pϕ(h~s,g~))
其中 S \mathcal{S} S表示图 G ~ \tilde{\mathcal{G}} G~通过图采样得到的一组上下文子图, h ~ s \tilde{\mathbf{h}}_{s} h~s表示增强上下文子图 s s s的表示, g ~ \tilde{\mathbf{g}} g~表示通过 S \mathcal{S} S中所有子图得到的图级表示。
h ~ s = R ( [ f θ ( A ~ , X ~ ) ] v i ∈ s ) g ~ = R ( f θ ( A ~ , X ~ ) ) \tilde{\mathbf{h}}_{s}=\mathcal{R}\left(\left[f_{\theta}(\tilde{\mathbf{A}}, \tilde{\mathbf{X}})\right]_{v_{i} \in s}\right) \\ \tilde{\mathbf{g}}=\mathcal{R}\left(f_{\theta}(\tilde{\mathbf{A}}, \tilde{\mathbf{X}})\right) h~s=R([fθ(A~,X~)]vi∈s)g~=R(fθ(A~,X~))
此外,也有方法在原始图上来获取图级表示,即:
g ~ = R ( f θ ( A , X ) ) \tilde{\mathbf{g}}=\mathcal{R}\left(f_{\theta}(\mathbf{A}, \mathbf{X})\right) g~=R(fθ(A,X))
BiGI是二部图(bipartite graph)上的应用于边相关任务的自监督方法,它首先聚合两种类型的节点嵌入来获取图级表示,然后再从原始图中进行采样,计算目标边的局部上下文表示,BiGI通过最大化这种局部上下文和图级表示间的MI进行学习。
MI估计是大多数基于对比学习的方法的核心,MI估计通过拉近与正样本间的距离和拉远与负样本间的距离来分配不同样本在空间中的位置。给定样本对 ( x i , x j ) (x_i, x_j) (xi,xj)的表示 ( h i , h j ) (h_i,h_j) (hi,hj),两个样本间的互信息可以形式化为:
M I ( h i , h j ) = K L ( P ( h i , h j ) ∣ ∣ P ( h i ) P ( h j ) ) = E P ( h i , h j ) [ log P ( h i , h j ) P ( h i ) P ( h j ) ] \begin{aligned} \mathcal{M I}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right) &=K L\left(P\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)|| P\left(\mathbf{h}_{i}\right) P\left(\mathbf{h}_{j}\right)\right) \\ &=\mathbb{E}_{P\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)}\left[\log \frac{P\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)}{P\left(\mathbf{h}_{i}\right) P\left(\mathbf{h}_{j}\right)}\right] \end{aligned} MI(hi,hj)=KL(P(hi,hj)∣∣P(hi)P(hj))=EP(hi,hj)[logP(hi)P(hj)P(hi,hj)]
其中 K L ( ⋅ ) KL(\cdot) KL(⋅)表示KL散度,其目标是训练编码器区分样本对是来自联合概率分布还是来自边缘概率分布(负样本)。
KL散度可以衡量同一个随机变量两个分布之间的差异,其值越小,说明分布越接近
Jensen-Shannon Estimator
Jensen-Shannon散度(JSD)相对于KL散度来说在图对比学习中更常见,JSD对MI提供了一个下界(lower bound)和更有效的估计,基于JSD的对比损失形式为:
L con ( p ϕ ( h i , h j ) ) = − M I J S D ( h i , h j ) = E P × P ~ [ log ( 1 − p ϕ ( h i , h j ′ ) ) ] − E P [ log ( p ϕ ( h i , h j ) ) ] \begin{aligned} &\mathcal{L}_{\text {con }}\left(p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)\right)=-\mathcal{M} \mathcal{I}_{J S D}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right) \\ &=\mathbb{E}_{\mathcal{P} \times \tilde{\mathcal{P}}}\left[\log \left(1-p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}^{\prime}\right)\right)\right]-\mathbb{E}_{\mathcal{P}}\left[\log \left(p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)\right)\right] \end{aligned} Lcon (pϕ(hi,hj))=−MIJSD(hi,hj)=EP×P~[log(1−pϕ(hi,hj′))]−EP[log(pϕ(hi,hj))]
上述公式中 h i , h j \mathbf{h}_{i}, \mathbf{h}_{j} hi,hj是从相同的分布 P \mathcal{P} P中采样的, h j ′ \mathbf{h}_{j}^{\prime} hj′是从不同分布$ \tilde{\mathcal{P}}$中采样的。
对比损失是负MI。
Noise-Contrast Estimator
与 JSD 类似,noise-contrastive estimator也提供了一个MI的下界:
L con ( p ϕ ( h i , h j ) ) = − M I N C E ( h i , h j ) = − E P × P ~ N [ log e p ϕ ( h i , h j ) e p ϕ ( h i , h j ) + ∑ n ∈ N e p ϕ ( h i , h n ′ ) ] \begin{aligned} &\mathcal{L}_{\operatorname{con}}\left(p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)\right)=-\mathcal{M} \mathcal{I}_{N C E}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right) \\ &=-\mathbb{E}_{\mathcal{P} \times \widetilde{\mathcal{P}}^{N}}\left[\log \frac{e^{p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)}}{e^{p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)}+\sum_{n \in N} e^{p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{n}^{\prime}\right)}}\right] \end{aligned} Lcon(pϕ(hi,hj))=−MINCE(hi,hj)=−EP×P N[logepϕ(hi,hj)+∑n∈Nepϕ(hi,hn′)epϕ(hi,hj)]
其中 p ϕ ( ⋅ ) p_{\phi}(\cdot) pϕ(⋅)可以为点积。
有点类似Word2Vec中的带负采样的跳词模型,一对正样本和 N N N个负样本对。
Non-bound指这种类型的估计器不代表MI的下界,最小化这种估计器损失无法保证MI最大化。
Triplet Loss
L con ( p ( h i , h j ) ) = E P × P ~ [ max [ p ϕ ( h i , h j ) − p ϕ ( h i , h j ′ ) + ϵ , 0 ] ] p ( h i , h j ) = 1 / 1 + e ( − h i T h j ) \mathcal{L}_{\text {con }}\left(p\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)\right)=\mathbb{E}_{\mathcal{P} \times \tilde{\mathcal{P}}}\left[\max \left[p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)-p_{\phi}\left(\mathbf{h}_{i}, \mathbf{h}_{j}^{\prime}\right)+\epsilon, 0\right]\right] \\ p\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)=1 / 1+e^{\left(-\mathbf{h}_{i}^{T} \mathbf{h}_{j}\right)} Lcon (p(hi,hj))=EP×P~[max[pϕ(hi,hj)−pϕ(hi,hj′)+ϵ,0]]p(hi,hj)=1/1+e(−hiThj)
BYOL Loss
BYOL loss不依赖于负样本,给定 h i , h j ∼ P \mathbf{h}_{i}, \mathbf{h}_{j} \sim \mathcal{P} hi,hj∼P,损失函数定义为:
L con ( p ( h i , h j ) ) = E P × P [ 2 − 2 ⋅ [ p ψ ( h i ) ] T h j ∥ p ψ ( h i ) ∥ ∥ h j ∥ ] \mathcal{L}_{\text {con }}\left(p\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)\right)=\mathbb{E}_{\mathcal{P} \times \mathcal{P}}\left[2-2 \cdot \frac{\left[p_{\psi}\left(\mathbf{h}_{i}\right)\right]^{T} \mathbf{h}_{j}}{\left\|p_{\psi}\left(\mathbf{h}_{i}\right)\right\|\left\|\mathbf{h}_{j}\right\|}\right] Lcon (p(hi,hj))=EP×P[2−2⋅∥pψ(hi)∥∥hj∥[pψ(hi)]Thj]
其中 p ψ p_{\psi} pψ表示Siamese网络中的online predictor。
Barlow Twins Loss
Barlow Twins Loss与BYOL类似,它不依赖于负样本,但是实现起来更简单,给定两种不同视图下的从同一个分布 P \mathcal{P} P中采样的batch样本输入 H ( 1 ) \mathbf{H}^{(1)} H(1)和 H ( 2 ) \mathbf{H}^{(2)} H(2),其损失函数定义如下:
L con ( H ( 1 ) , H ( 2 ) ) = E B ∼ P ∣ B ∣ [ ∑ a ( 1 − ∑ i ∈ B H i a ( 1 ) H i a ( 2 ) ∥ H i a ( 1 ) ∥ ∥ H i a ( 2 ) ∥ ) 2 + λ ∑ a ∑ b ≠ a ( ∑ i ∈ B H i a ( 1 ) H i b ( 2 ) ∥ H i a ( 1 ) ∥ ∥ H i b ( 2 ) ∥ ) 2 ] \begin{aligned} \mathcal{L}_{\text {con }}\left(\mathbf{H}^{(1)}, \mathbf{H}^{(2)}\right)=& \mathbb{E}_{\mathcal{B} \sim \mathcal{P}|\mathcal{B}|}\left[\sum_{a}\left(1-\frac{\sum_{i \in \mathcal{B}} \mathbf{H}_{i a}^{(1)} \mathbf{H}_{i a}^{(2)}}{\left\|\mathbf{H}_{i a}^{(1)}\right\|\left\|\mathbf{H}_{i a}^{(2)}\right\|}\right)^{2}\right.\\ &\left.+\lambda \sum_{a} \sum_{b \neq a}\left(\frac{\sum_{i \in \mathcal{B}} \mathbf{H}_{i a}^{(1)} \mathbf{H}_{i b}^{(2)}}{\left\|\mathbf{H}_{i a}^{(1)}\right\|\left\|\mathbf{H}_{i b}^{(2)}\right\|}\right)^{2}\right] \end{aligned} Lcon (H(1),H(2))=EB∼P∣B∣⎣⎢⎡a∑⎝⎛1−∥∥∥Hia(1)∥∥∥∥∥∥Hia(2)∥∥∥∑i∈BHia(1)Hia(2)⎠⎞2+λa∑b=a∑⎝⎛∥∥∥Hia(1)∥∥∥∥∥∥Hib(2)∥∥∥∑i∈BHia(1)Hib(2)⎠⎞2⎦⎥⎤
其中 a a a和 b b b表示表示向量的维度索引, i i i表示样本索引。
Barlow Twins希望两种增强下的相同维度特征尽可能相似,而不同维度特征尽可能差距较大。
混合方法采用多个前置任务,以更好地利用各种监督信号的优势。混合方法以多任务学习方式将各种前置任务整合在一起,其中目标函数是两个或多个自我监督目标的加权和。混合图SSL的数学形式为:
θ ∗ , ϕ ∗ = arg min θ , ϕ ∑ i = 1 N α i L s s l i ( f θ , p ϕ i , D i ) , \theta^{*}, \phi^{*}=\underset{\theta, \phi}{\arg \min } \sum_{i=1}^{N} \alpha_{i} \mathcal{L}_{s s l_{i}}\left(f_{\theta}, p_{\phi_{i}}, \mathcal{D}_{i}\right), θ∗,ϕ∗=θ,ϕargmini=1∑NαiLssli(fθ,pϕi,Di),
其中 N N N表示前置任务的数量, α i , L s s l i , p ϕ 1 , D i \alpha_{i}, \mathcal{L}_{s s l_{i}}, p_{\phi_{1}},\mathcal{D}_{i} αi,Lssli,pϕ1,Di 分别表示trade-off weight, loss function, pretext decoder, data distribution of the i i i-th pretext task.
混合方式:
推荐系统(Recommender Systems)
异常检测(Anomaly Detection)
化学(Chemistry)
理论基础(Theoretical Foundation):图SSL仍然缺乏证明其有效性的理论基础。
可解释性和鲁棒性(Interpretability and Robustness):图SSL的应用可能是风险敏感和隐私相关的(例如欺诈检测),一个可解释且健壮的SSL框架对于适应此类学习场景具有重要意义。
复杂图上的前置任务(Pretext Tasks for Complex Types of Graphs):目前的大多数工作集中于属性图的SSL,只有少数工作集中于复杂的图类型,例如异配或时空图。对于复杂图,主要的挑战是如何设计前置任务来捕获这些复杂图的独特数据特征。
图对比学习上的增强(Augmentation for Graph Contrastive Learning):由于图结构数据的性质(例如,复杂和非欧性),图上的数据数据增强方案没有得到很好的探索。
多个前置任务的学习(Learning with Multiple Pretext T asks):现有方法中很少有多个前置任务组合的。
更广阔的应用范围(Broader Scope of Applications):图SSL在广泛的应用中有着广阔的前景,尤其是那些高度依赖领域知识来注释数据的应用。然而,目前大多数实际应用仅集中在几个领域。
未来的研究方向主要是从这些挑战入手。