代码: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)在各种基准数据集上的表现有实质性的提升。
贡献
- 我们推广图神经网络作为未知的流体,然后展示了双曲图神经网络可以对整个图分类带来实质性的提升;
- 比起欧几里得领域,HGNNs可以更加高效的捕捉合成数据的结构特性,所以可以更加准确的预测化学分子的特性。也可以预测大尺度的网络的额外特性,比如区块链交易图的家和波动,可以充分利用数据的层次结构信息。
Hyperbolic Graph Neural Networks
预备:
- W k ∈ R h × h W^k \in \mathbb{R}^{h\times h} Wk∈Rh×h
- A ~ = D − 1 / 2 ( A + I ) D − 1 / 2 \tilde{A}=D^{-1/2}(A+I)D^{-1/2} A~=D−1/2(A+I)D−1/2 A是图邻接矩阵
-
I
(
u
)
\mathcal{I}(u)
I(u)是节点
u
u
u的邻域
黎曼流形上的图神经网络
我们推广了图卷积网络的概念,使得网络在黎曼流形上运行,并且与底层空间无关。
这第 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与中心的相对位置。
- 对于节点回归问题:
这里 w 0 ∈ R ∣ C ∣ w_0\in\mathbb{R}^{|C|} w0∈R∣C∣.
- 对于节点分类问题:
这里 W 0 ∈ R c × ∣ C ∣ W_0\in\mathbb{R}^{c\times |C|} W0∈Rc×∣C∣, c c c表示类别数。
- 对于图水平的预测,先用平均池化得到 ( ψ 1 , . . . , ψ ∣ C ∣ ) (\psi_1,...,\psi_{|\mathcal{C}|}) (ψ1,...,ψ∣C∣), ψ i = ∑ j = 1 ∣ V ∣ ψ i j / ∣ V ∣ \psi_i=\sum^{|V|}_{j=1}\psi_{ij}/|V| ψi=∑j=1∣V∣ψij/∣V∣,然后再把这列向量放进全连接网络里。
一些细节
需要将欧式空间中的特征映射到黎曼流里面。欧式空间中的特征我们用 e x p x ′ ( X E ) exp_{x'}(X^E) expx′(XE)来映射到黎曼流形里边。初始化黎曼流形的嵌入时,我们先从一定范围内均匀采样,获得欧式嵌入,然后再正则化嵌入即正则化到一个单位球里边,保证 e i ∈ M e_i\in\mathcal{M} ei∈M。