阅读笔记-MoFlow: An Invertible Flow Model for Generating Molecular Graphs
相关资料:
一、 Introduction
这篇文章是
f
l
o
w
−
b
a
s
e
d
flow-based
flow−based,大致就是有两个概率分布,如果他们之间的变换是可逆的,那么就可以根据一个较为简单地分布通过逆变换获得另外一个较复杂的概率分布。这篇文章采用的就是将邻接矩阵和原子矩阵这两个概率分布与另外两个较为简单的潜在变量的分布(文中将这两个潜在变量的分布采样为高斯分布)利用flow联系了起来。通过设计一个可逆的分布,以及从高斯分布中采样,将采样的潜在变量通过这个可逆的变换就可以得到分子图结构。
生成过程如下:
二、Inference(encoding)
2.1 Model Preliminary.
2.1.1 The flow framework.
给定两个分布:
- Z ∼ P Z ( Z ) \mathbf{\mathcal Z\sim P_{\mathcal Z}(Z)} Z∼PZ(Z):较为容易建模的一个概率分布(在这样一个潜在的空间里,有很强的独立性);
- X ∼ P X ( X ) \mathbf{\mathcal X\sim P_{\mathcal X}(X)} X∼PX(X):较为复杂的高维数据;
f
l
o
w
−
b
a
s
e
d
flow-based
flow−based的模型旨在找到一系列的可逆变换
f
Θ
=
f
L
∘
.
.
.
∘
f
1
\mathbf{f_{\Theta}=f_{L}\circ...\circ f_{1}}
fΘ=fL∘...∘f1,来实现这两个概率分布之间的变换。并且当
Z
=
f
Θ
(
X
)
=
f
L
∘
.
.
.
∘
f
1
(
X
)
\mathbf{Z=f_{\Theta}(X)=f_{L}\circ...\circ f_{1}(X)}
Z=fΘ(X)=fL∘...∘f1(X)时,有
P
X
(
X
)
=
P
Z
(
Z
)
∣
d
e
t
(
∂
Z
∂
X
)
∣
\mathbf{P_{\mathcal X}(X)=P_{\mathcal Z}(Z)|det(\frac{\partial Z}{\partial X})|}
PX(X)=PZ(Z)∣det(∂X∂Z)∣。所以有:
2.1.2 Invertible affine coupling layers.
然而,如何设计一个满足以下三个条件的可逆变换:(a.)这个变换是一个可逆的函数
f
Θ
f_{\Theta}
fΘ;(b.)这个可逆变换富有表现力;(c.)这个可逆变换可以高效计算雅可比矩阵的行列式。
作者设计了如下的变换来满足上述条件:
- t h e S c a l e f u n c t i o n S Θ : R d ↦ R n − d \mathbf{the\;\;Scale\;\;function}\;S_{\Theta}:\mathbb R^{d}\mapsto\mathbb R^{n-d} theScalefunctionSΘ:Rd↦Rn−d
- t h e T r a n s f o r m a t i o n f u n c t i o n T Θ : R d ↦ R n − d \mathbf{the\;\;Transformation\;\;function}\;T_{\Theta}:\mathbb R^{d}\mapsto\mathbb R^{n-d} theTransformationfunctionTΘ:Rd↦Rn−d
- d e t ( ∂ Z ∂ X ) = e x p ( Σ j S Θ ( X 1 : d ) j ) . det(\frac{\partial Z}{\partial X})=exp(\Sigma_{j}S_{\Theta}(X_{1:d})_{j}). det(∂X∂Z)=exp(ΣjSΘ(X1:d)j).
2.1.3 Splitting Dimensions.
压缩空间维度将 X c × n × n X^{c\times n\times n} Xc×n×n转换为 X ( c h 2 ) × n h × n h X^{(ch^{2})\times\frac nh\times\frac nh} X(ch2)×hn×hn来获得更多的channels并将这些channels分隔开,分别送进模型中。
- 2.1.3 Splitting Dimensions.
2.1.4 Numerical stability by actnorm
为了保证基于流的模型的数值稳定性,Glow中引入了actnorm层,该层通过一个具有可学习尺度和偏差的仿射变换对批次内每个通道的尺寸进行规范化。刻度和偏差被初始化为Batch中每个通道的平均值和标准差的倒数。
2.2 Proposed Moflow Model
2.2.1 Problem Definition: Learning a ProbabilityModel of Molecular Graphs
- A ∈ R n × k \mathcal A\in\mathcal R^{n\times k} A∈Rn×k:原子矩阵,并且这个原子矩阵最多具有 n n n个,以及 k k k种类型的原子。 A ( i , k ) = 1 \mathcal A(i,k)=1 A(i,k)=1代表着原子 i i i的类型为 k k k;
- B ∈ R c × n × n \mathcal B\in\mathcal R^{c\times n \times n} B∈Rc×n×n:化学键矩阵。 c c c:代表着化学键类型的数量。 B ( c , j , i ) = 1 B(c,j,i)=1 B(c,j,i)=1代表着原子 i i i与原子 j j j之间的化学键类型为 c c c;
- M = A × B ∈ R n × k × R c × n × n \mathcal M=\mathcal A\times\mathcal B\in\mathbb R^{n\times k}\times\mathbb R^{c\times n\times n} M=A×B∈Rn×k×Rc×n×n,即矩阵 M \mathcal M M是矩阵 A \mathcal A A和 B \mathcal B B的笛卡尔积。因此分子图结构 M \mathcal M M可以看做具有多种类型的节点与多种类型的边的无向图。
为了捕捉分子图中原子和键的组合结构,作者将这种分子生成模型分解为两个部分: P M ( M ) = P M ( ( A , B ) ) ≈ P A ∣ B ( A ∣ B ; θ A ∣ B ) P B ( B ; θ B ) \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\,\mathbf{P_{\mathcal M} (M) = \mathbf P_{\mathcal M}((A,B))\approx P_{\mathcal{A|B}}(A|B;\theta_{\mathcal {A|B}})P_{\mathcal B}(B;{\theta}_{\mathcal B})} PM(M)=PM((A,B))≈PA∣B(A∣B;θA∣B)PB(B;θB)
参数
θ
B
与
θ
A
∣
B
\theta_{\mathcal B}与\theta_{\mathcal A|\mathcal B}
θB与θA∣B通过最大化下式来学习到:
模型包含两个部分:
- g r a p h c o n d i t i o n a l f l o w f o r a t o m s graph\;conditional\;flow\;for\;atoms graphconditionalflowforatoms;
- f l o w f o r b o n d s flow\;for\;bonds flowforbonds;
作者还提出了进一步学习了学习到的潜在向量和分子特性之间的映射关系,以回归基于图的分子特性,并指导优化分子图的生成。
2.2.2 Glow for Bonds
Z
B
=
f
B
(
B
)
Z_{B}=f_{\mathcal B}(B)
ZB=fB(B),并且
Z
B
Z_{B}
ZB满足多元高斯分布,由于变换
f
f
f是可逆的,所以可得:
我们先从
P
Z
(
Z
)
P_{\mathcal Z}(Z)
PZ(Z)中采样
Z
~
\tilde Z
Z~,并根据
f
f
f的逆变换得到边矩阵即
B
~
=
f
B
−
1
(
Z
~
)
\tilde B=f^{-1}_{\mathcal B}(\tilde Z)
B~=fB−1(Z~)
具体过程如下图所示:
2.2.3 Graph Conditional Flow for Atoms
-
给定化学键矩阵 B ∈ B ⊂ R c × n × n B\in\mathcal B\subset\mathbb R^{c\times n\times n} B∈B⊂Rc×n×n, a t o m f l o w atom\;flow atomflow的目标是为了生成正确的原子矩阵 A ∈ A ⊂ R n × k A\in\mathcal A\subset\mathbb R^{n\times k} A∈A⊂Rn×k从而来组装有效的分子 M = ( A , B ) ∈ M ⊂ R n × k + c × n × n M=(A,B)\in\mathcal M\subset\mathbb R^{n\times k+c\times n\times n} M=(A,B)∈M⊂Rn×k+c×n×n。作者先定义了 B \mathcal B B-conditional flow and graph conditional flow f A ∣ B \;\;\mathcal f_{\mathcal {A|B}} fA∣B。这个变换是根据给定的矩阵 B \mathcal B B,来将矩阵 A \mathcal A A转换为 Z A ∣ B \mathcal Z_{A|B} ZA∣B即 Z A ∣ B = f A ∣ B ( A ∣ B ) Z_{A|B}=\mathcal f_{\mathcal{A|B}}(\mathcal{A|B}) ZA∣B=fA∣B(A∣B),并且 P Z A ∣ B P_{\mathcal Z_{\mathcal{A|B}}} PZA∣B是一个 各向同性的多元高斯分布。
-
Z A ∣ B = f A ∣ B ( A ∣ B ) Z_{A|B}=\mathcal f_{\mathcal{A|B}}(\mathcal{A|B}) ZA∣B=fA∣B(A∣B)是一个可逆的变换(即存在 f A ∣ B − 1 ( Z A ∣ B ∣ B ) = A ∣ B f^{-1}_{\mathcal{A|B}}(Z_{A|B}|B)=A|B fA∣B−1(ZA∣B∣B)=A∣B),并且变换前后维数保持不变。接下来来求取满足flow模型的雅克比矩阵。因为 B ∈ B B\in\mathcal B B∈B在整个变换过程中保持不变。所以有
则有
则有:
-
g r a p h c o u p l i n g l a y e r \mathbf{graph\;\;coupling\;\;layer} graphcouplinglayer:
则:
-
actnorm2D:来执行一个正则化
则有
接下来作者介绍了如何使得网络变得更深的一个技巧:即每隔一层交换 A 1 , A 2 或 者 B 1 , B 2 A_{1},A_{2}或者B_{1},B_{2} A1,A2或者B1,B2的位置。如下所示:
2.2.4 Validity Correction
分子必须遵循每个原子的化合价约束,但是用生成的键张量和原子矩阵组装一个分子可能会导致化学无效。所以需要为每个原子定义一个有效性检查:
作者举例说明了这一形式。对于铵根正离子
[
N
H
4
]
+
[NH_{4}]^{+}
[NH4]+中的
N
N
N它会有四个化学键,而不是三个。同样的,
S
+
与
O
+
S^{+}与O^{+}
S+与O+也会有3个化学键而不是两个。作者将
O
+
,
S
+
,
N
+
O^{+}\;,S^{+}\;,N^{+}
O+,S+,N+的
C
h
Ch
Ch设为1,其他原子的
C
h
Ch
Ch设为0。
作者设计的有效性检查尝试对分子做最小的改变来使其具有化学上的合理性,并使分子图中最大的连接成分尽可能大。有效性检查如下:
- 首先,根据上式,为每个原子检查化学键数目的有效性;
- 如果分子满足上述约束,将图结构中最大的连接成分作为最终生成的分子输出,整个生成过程结束;
- 如果分子中第 i i i个原子没有满足上述约束,则对按顺序对这个原子的化学键进行排序,并将顺序最大的键减去1,将得到的新分子重新进行第一步。
三、Experiments
作者通过以下四个方面进行了实验来评估MoFlow模型:
- 分子图生成与重建:首先是重建数据集中的所有分子,并生成尽可能多的有效的,不属于数据集的分子图;
- 可视化潜在空间:MoFlow能否将分子图嵌入到具有合理化学相似性的连续潜空间中?
- 性质优化:模型能否生成具有优化性质的分子图;
- 约束属性优化:,模型能否生成具有优化特性的新颖分子图,同时尽可能保持化学相似性?
作者采用的数据集如下:
作者在文章中提到,对于
Z
I
N
C
250
K
ZINC250K
ZINC250KMoFlow只用了22小时便训练完成,而基于自回归的方法
G
r
a
p
h
A
F
GraphAF
GraphAF用了124个小时,这也体现了非自回归方法高效的优点。
3.1 生成与重建
五个指标:
- Validity:化学有效分子在所有生成的分子中的百分比;
- Uniqueness:所有生成的分子中不属于原数据集并且满足化学有效性的分子数与生成的分子数之比;
- Novelty:所有生成的分子中不属于原数据集并且满足化学有效性的分子数与数据集所含分子数之比(貌似和上一个指标有些重复,可能上一个指标将生成的分子中重复的分子删去后在进行计算);
- Reconstruction:原数据集中能够完全被模型重建的分子数与数据集所含分子数之比;
- N.U.V.:生成的分子中满足:Validity,Uniqueness,Novelty分子的数量与生成的分子数之比。
- Validity without check/correction
实验结果如下:
MoFlow在不进行化学有效性检查的情况下,仍然获得了极佳的生成结果。
3.2潜在空间的可视化
作者利用谷本系数来反应化学相似性。
作者先讲一个分子映射为一个潜在向量Z,通过下式来得到与之相近的分子:
X,Y均为单位矢量。
结果如下:
3.3 性能优化
这个任务的目的是为了生成具有最佳QED分数的分子。
作者先将分子图映射为嵌入向量
Z
Z
Z,然后训练一个多层的MLP来回归预测其QED分数。训练完成后,根据先将Z送入MLP中得到QED分数y,然后根据梯度来优化
Z
Z
Z即:
执行K次后,得到最终的优化分子,经过逆变换生成对应的分子。实验结果表明,MoFlow模型能够找到更多具有最佳QED分数的分子图结构:
3.4 约束属性优化
这个任务致力于给定一个分子图,来找到一个符合两个最值的分子,即与原分子最相似,在相关性能分数上得到最大的提升。
作者使用了morgan指纹的tanimoto相似性系数来衡量两个分子之间的相似性,以及
l
o
g
P
logP
logP作为目标性质。作者同样用基于梯度的方法来实现。实验结果如下: