【Paper Reading】自注意力机制以及在Alphafold2中的应用

这期文章我想开一个新的系列,叫读论文Paper,分享初学者的自己对深度学习方面的论文的理解,大家一起学习交流 。尤其会关注一些深度学习和医学相结合的领域 。
文章目录从 Self-机制 到 模型 Self- in结语
开年第一篇笔者想讲讲现在非常热门的,作为一个深度学习的模型来精确预测蛋白质分子的结构 。论文的Title为“with ”,由团队于2021年7月15日发表在 杂志上 。这篇文章的工作被 和 同时评选为了2021年科学十大突破之一 。
这篇文章涉及到的细节非常多,在文章的补充材料部分提供了近60页的算法描述,涉及到模型的方方面面 。毕竟是革命性的工作,且很多算法和团队之前的工作存在前后联系,弄懂所有的算法不是一件容易的事 。这次自己就中 模块及 自注意力机制(Self-)的应用写写自己的理解,顺便学习自注意力机制的由来,以及在及其变种中的应用,一起学习提高 。做了一件什么事
简而言之,可根据一串氨基酸的序列,预测出蛋白质的三级结构,并且达到了原子级别的精度 。
我们知道蛋白质的基本构成单位是氨基酸,可由一段氨基酸分子的序列表示,借助各种次级键卷曲等形成三级结构(一种3D空间中的结构) 。在以往,还没有任何一个方法能根据氨基酸序列预测出原子级精度的蛋白质三级结构,尤其是当没有同源结构可以参考时 。而论文表示解决了这个50年来难以解决的问题 。
这个模型是一个深度学习的模型,它结合了蛋白质结构的物理性质、生物学知识,利用了多序列比对的方法,将这些信息融入深度学习算法的设计中,大大提高了预测的精度 。
我们可以看到这张图显示了模型的精确度达到了1?(10的-10 次方米),远超其他模型 。后面的图显示了真实结构和预测结构之间的差异,分别用蓝色和绿色表示,可以看到误差非常小 。模型是在PDB蛋白质数据库中进行预测的 。
Model
上图是模型的整体一览 。
我们输入的是一段氨基酸序列(比如我们目标是预测一段人的氨基酸序列),输出的是每个氨基酸在三维空间中的位置 。
模型共分为三个部分,第一个部分是特征提取的部分,第二、三部分分别是编码器和解码器 。
将提取后的特征以两个矩阵的形式封装并喂到编码器-解码器的神经网络中,预测出氨基酸序列的3D空间构象 。
在特征提取的部分,先输入一段人的氨基酸序列,其作为数据第1行 。同时,用这个氨基酸序列搜索基因数据库,搜到与该序列相似的片段,列入数据的第2到n行 。我们看到这些数据使用了多序列比对 MSA(Multi)的方法 。这个MSA 数据就构成了第一个数据矩阵 。
其次,我们将每两个氨基酸之间的关系,用表示一个配对关系的矩阵来表示,表中的每一项是一对氨基酸之间的关系 。同时,搜索结构数据库,得到一些氨基酸之间已知的位置信息,获得一些模板(),写入这个矩阵 。这个Pair 这样就构成了第二个矩阵 。
第一个矩阵代表了各物种相似氨基酸序列的特征(多序列比对信息),第二个矩阵代表了氨基酸对之间的特征(结构信息) 。
将这两个矩阵(上图右)传入编码器 。
我们来看看这两个矩阵的形状 。
第一个代表了各物种相似氨基酸序列的MSA矩阵形状是s×r×c 。s行是蛋白质的数目,第一行是人类蛋白序列,后面是数据库中匹配出来的相似序列 。r表示序列长度,有r个氨基酸 。c用来表示每个氨基酸的特征长度,我们将氨基酸表征为一个向量V = (V1,V2,V3…,Vc),c表示特征的数量,即向量的长度(维数) 。
这里将氨基酸的特征(嵌入)为一个向量使用了另一个特征提取的算法,在下一小节会对的概念做些许展开介绍 。