代码:https://github.com/facebookresearch/hgnn
补充知识:
双曲几何:将欧几里得的第五条公设——平行公设换成了 :过直线外一点P至少可以找到两条相异的直线,与已知直线平行。与之对应的椭圆几何则没有直线与已知直线平行,因为任意两条直线都会相交,比如在球体上的直线。
最右边的为双曲空间(Hyperbolic space)。
拓扑空间:
定义: 设 X X X是一个集合, T \mathscr{T} T是 X X X的一个子集族,如果 T \mathscr{T} T满足如下条件:
(1) X X X, ∅ ∈ T \varnothing \in \mathscr{T} ∅∈T;
(2) 若 A , B ∈ T A,B\in \mathscr T A,B∈T, 则 A ∩ B ∈ T A\cap B\in\mathscr{T} A∩B∈T;
(3) 若 T 1 ⊂ T \mathscr{T}_1\subset\mathscr{T} T1⊂T, 则 ∪ A ∈ T 1 A ∈ T \cup_{A\in \mathscr{T}_1}A\in \mathscr T ∪A∈T1A∈T,
则称 T \mathscr{T} T是 X X X的一个拓扑。
如果 T \mathscr{T} T是集合X的一个拓扑,则称偶对 ( X , T ) (X,\mathscr{T}) (X,T)是一个拓扑空间。集合 T \mathscr{T} T的每个元素称为拓扑空间 ( X , T ) (X,\mathscr{T}) (X,T)(或X)中的一个开集。
拓扑流形的数学定义可以表述为[3]:
设M是豪斯多夫空间(拓扑里边可以用邻域分开的可分空间),若对任意一点 x ∈ M {\displaystyle x\in M} x∈M,都有x在M中的一个邻域U同胚于m维欧几里得空间 R m {\displaystyle R^{m}} Rm的一个开集,就称M是一个m维流形或 m维拓扑流形。(同胚简单理解就是存在一个连续的双射)
群
群(group)就是一种集合加上一种运算的代数结构。群有几个运算性质,“凤姐咬你": 封闭性,结合律,幺元,还有逆.
李群(流形) 李代数(切空间)https://zhuanlan.zhihu.com/p/47330137
李群空间的任意一个旋转矩阵R都可以用李代数空间的一个向量的反对称矩阵指数来近似。李代数具有很好的性质,可以满足加法乘法封闭,而李群不能满足加法封闭。
所以从流形到切空间是要用对数映射完成的,而从切空间到流形用的是指数映射。
可以这么理解:从切空间(相当于是一个欧氏空间)到流形,我们采用的是指数映射,因为指数随x增大,其增长越快,可以符合我们对双曲空间庞伽莱球的理解,反过来从流形到切空间是对数,效果恰好相反。
模式崩溃(mode collapse): 给定数据集合,我们用编码映射将其映入隐空间中,每个数字对应一个团簇,即MNIST数据的概率分布密度函数具有多个峰值,每个峰值被称为是一个模式(mode)。理想情况下,生成模型应该能够生成10个数字,如果只能生成其中的几个,而错失其它的模式,则我们称这种现象为模式崩溃(mode collapse)。例如,我们用MNIST数据集训练GAN模型,训练后的GAN只能生成十个数字中的某一个;或者在人脸图片的实验中,只生成某一种风格的图片。
受几何表示学习最近进展的鼓舞,我们提出一个新的GNN架构,该架构用可微的指数函数和对数映射在黎曼流形上学习表示。我们提出了一种可扩展的算法,与欧几里得几何和双曲线几何相比,该算法可以对图的结构特性进行建模。我们在实验中也证明了双曲图神经网络(GNNs)在各种基准数据集上的表现有实质性的提升。
预备:
我们推广了图卷积网络的概念,使得网络在黎曼流形上运行,并且与底层空间无关。
这第 k 层的节点表示 h v k ∈ M \mathbf{h}^k_v\in \mathcal{M} hvk∈M使用了切空间的一个点 x ′ ∈ M \mathbb{x}' \in \mathcal{M} x′∈M的对数映射 l o g x ′ log_{x'} logx′,然后应用指数映射 e x p x ′ exp_{x'} expx′将线性变换后的切向量映射回流形。
这里将非线性映射 σ \sigma σ放在exp 后面,是为了防止出现模式崩溃,因为如果将指数exp 放在 σ \sigma σ后,然后后面输入的时候又使用了对数,相当于相互抵消了,这样就将模型崩溃到vanilla Euclidean, 也就是对数与指数起不到人任何作用了。
为了保证这个非线性映射是保流形的,即 σ : M → M \sigma :\mathcal{M} \to\mathcal{M} σ:M→M,我们将对特定的流形提出可能的选择。
黎曼流形 ( M , g ) (\mathcal{M},g) (M,g)是一个实值光滑流形,且在点 x ∈ M x\in\mathcal M x∈M定义了内积 g X : T x M × T x M → R g_X:\mathcal{T_xM\times T_xM}\to\mathbb{R} gX:TxM×TxM→R,这个内积也称作黎曼度量,可以让我们定义空间的角度和曲线长度等几何性质。
下面是欧式空间与两种双曲流形上的两种双曲模型的对比。这两种模型上定义了距离。以及其对应的指数映射和对数映射。
欧几里得流形是0曲率的流形,其度量张量是一单位阵,其测地线,也就是最短程线是一直线,两个点之间的距离定义为:
指数映射定义为:
对数映射定义为:
为了欧式流形的公式与(2)中GCN模型等价。我们选择 x ′ = x 0 x'=x_0 x′=x0作为其不动点,我们在不动点的切空间进行操作。
庞伽莱球模型是具有常负曲率的黎曼流形。表示为 ( B , g x B ) (\mathcal{B},g^{\mathcal B}_x) (B,gxB),其中 B = { x ∈ R n : ∣ ∣ x ∣ ∣ < 1 } \mathcal B =\{x\in \mathbb R^n:||x||<1\} B={x∈Rn:∣∣x∣∣<1}为单位开球,其度量张量为 g x B = λ x 2 g E g^{\mathcal B}_x=\lambda_x^2g^E gxB=λx2gE,这里 λ x = 2 1 − ∣ ∣ x ∣ ∣ 2 \lambda_x=\frac{2}{1-||x||^2} λx=1−∣∣x∣∣22是保角系数, g E g^E gE是欧氏度量张量,也就是一单位阵。 流形上的两点距离为:
任取流形空间中的一点 x ∈ B x\in \mathcal B x∈B, 以其作为支点,我们可以求出其的切空间,并且利用这个 x 可以建立从流形到切空间的一一映射,从切空间到流形空间我们使用的是指数映射 e x p x : T x B → B exp_x :\mathcal{T_xB\to B} expx:TxB→B。
其中 v ≠ 0 v\neq0 v=0属于切空间 T x B \mathcal{T_xB} TxB.
然后从流形到切空间使用的是对数映射 l o g x : B → T x B log_x:\mathcal{B\to T_xB} logx:B→TxB
这里 y ≠ 0 ∈ B y\neq0\in\mathcal B y=0∈B.
这里的运算 ⊕ \oplus ⊕是莫比乌斯和。对任意 x , y ∈ B x,y\in\mathcal B x,y∈B:
类似于欧几里得空间,我们同样令 x ′ = x 0 x'=x_0 x′=x0。而且我们这里要用基于像素的范数递减的非线性映射,即 ∣ σ ( x ) ∣ ≤ ∣ x ∣ |\sigma(x)|\leq|x| ∣σ(x)∣≤∣x∣,比如ReLU或者leaky ReLU,因为 ∣ ∣ σ ( x ) ∣ ∣ ≤ ∣ ∣ x ∣ ∣ ||\sigma(x)||\leq||x|| ∣∣σ(x)∣∣≤∣∣x∣∣保证了 σ : B → B \sigma:\mathbb B\to \mathbb B σ:B→B.
洛伦兹模型比起上面的庞伽莱距离具有更好的数值稳定性,因为我们的模型具有一系列的指数和对数操作,所以其对我们的模型更加有作用。
x , y ∈ R n + 1 x,y\in\mathbb R^{n+1} x,y∈Rn+1,洛伦兹数量积定义为:
双曲图卷积经过K步生成节点表示 { h 1 K , . . . , h ∣ V ∣ K } \{h_1^{K},...,h_{|V|}^K\} {h1K,...,h∣V∣K},这里 h i K ∈ M h_i^{K}\in\mathcal{M} hiK∈M, M \mathcal{M} M是流形。由于欧式空间的标准参数分类和回归方法在双曲空间中不适用的,所以我们就推广了径向基函数到黎曼流形。关键是用一个可微函数 ψ : M → R d \psi:\mathcal{M} \to \mathbb{R}^d ψ:M→Rd,可以将节点嵌入的所有结构概括起来。
(1)用GNN反向传播学习质心: C = [ c 1 , c 2 , . . . , c ∣ C ∣ ] \mathcal{C}=[c_1,c_2,...,c_{|\mathcal{C}|}] C=[c1,c2,...,c∣C∣], c i ∈ M c_i\in\mathcal{M} ci∈M.
(2) c i c_i ci与 h i K h_i^K hiK的成对距离计算: ψ i j = d ( c i , h j K ) \psi_{ij}=d(c_i,h_j^K) ψij=d(ci,hjK)
(3)串接 ( ψ 1 , j , . . . , ψ ∣ C ∣ , j ) ∈ R ∣ C ∣ (\psi_{1,j},...,\psi_{|C|,j})\in \mathbb{R}^{|\mathcal{C}|} (ψ1,j,...,ψ∣C∣,j)∈R∣C∣,总结 h j K h_j^{K} hjK与中心的相对位置。
需要将欧式空间中的特征映射到黎曼流里面。欧式空间中的特征我们用 e x p x ′ ( X E ) exp_{x'}(X^E) expx′(XE)来映射到黎曼流形里边。初始化黎曼流形的嵌入时,我们先从一定范围内均匀采样,获得欧式嵌入,然后再正则化嵌入即正则化到一个单位球里边,保证 e i ∈ M e_i\in\mathcal{M} ei∈M。