这里总结一下DeepLinc,是一个利用Variational Graph Auto-Encoders计算cell - cell communication 的方法。2022年6月发表的。
Variational Auto-Encoders
以上就是一个Variational Auto-Encoders. 和Auto-Encoders不同的是,它在encoder的时候计算了隐空间Z的mean和std (假设隐空间服从高斯分布),然后从隐空间分布中重新采样来decoder。这样做的好处是,防止由于一些outlier而导致的过拟合。
如何逼近最优解?变分贝叶斯方法一般用到一个方法叫做Evidence lower bound (ELBO)。关于该方法,https://zhuanlan.zhihu.com/p/365641813 和 https://fangdahan.medium.com/derivation-of-elbo-in-vae-25ad7991fdf7 讲的很清楚,就不做赘述了。
Graph Convolutional Network
传统CNN是应用在图像上的,对每个像素的近邻像素进行卷积。
图卷积,就是卷积的时候,图的边决定了邻居,由于每个节点的邻居数量不同,就进行一下归一化:
Variational Graph Auto-Encoders (VGAE)
VGAE如名,它使用图卷积网络 (GCN) encoder 和简单的内积 decoder.
假设N是节点个数,D是度矩阵,A是adjacency matrix,Z 是隐变量矩阵。
和VAE类似先求encoder inference model :
注意,这里和VAE不同的是,这里的层是两个图卷积层(GCN)
decoder (Gernerative model)是用内积求的A矩阵
目标方程就仍然是最大化ELBO:
DeepLinc
懂了上面的,DeepLinc就没什么好讲的,就是用了一下VGAE, X是基因表达矩阵,A是细胞近邻矩阵 (空间上的)。decoder 生成的新的A就是新的细胞相互作用矩阵。
唯一不同的是,他说数据由于稀疏,为了提高性能,多加了一个多层感知器(MLP)作为对抗模块,判断隐藏层样本是 来自先前的高斯分布还是来自VGAE。
但我没看到怎么加进去的,没写公式。
Reference
- https://danijar.com/building-variational-auto-encoders-in-tensorflow/
- https://fangdahan.medium.com/derivation-of-elbo-in-vae-25ad7991fdf7
- https://zhuanlan.zhihu.com/p/365641813
- https://towardsdatascience.com/graph-convolutional-networks-introduction-to-gnns-24b3f60d6c95
- https://fangdahan.medium.com/derivation-of-elbo-in-vae-25ad7991fdf7
- Li, R., Yang, X. De novo reconstruction of cell interaction landscapes from single-cell spatial transcriptome data with DeepLinc. Genome Biol 23, 124 (2022). https://doi.org/10.1186/s13059-022-02692-0
- Kipf, Thomas N., and Max Welling. “Variational graph auto-encoders.” arXiv preprint arXiv:1611.07308 (2016).