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


乘以value之后,再乘以一个门控gate,也就是第1个线性变换做,加上门控可以控制我们的自注意力哪些部分可以进行输出,这个门控也可能对氨基酸之间的结构的决定能力产生影响 。
我们可以看到,这个小模块中所有的算法设计都蕴含了可能影响基于氨基酸结构因素的先验假设,虽然看似非常的绕,但结果非常的出彩 。
接着左上角第2个模块,“-wise gated self-”(按列的、带门控的自注意力层):
之前的Row-wise我们对每一个物种的氨基酸序列特点信息进行了建模 。
按列(-wise)表示序列中同一个位置的氨基酸,在不同物种的蛋白质中的相关性进行编码 。
与Row-wise相比,由于研究的是不同物种的蛋白质中的相关性,这里就不再加上pair bias的偏倚信息了 。其余部分都是一样的 。
通过先对行建模,再对列建模,最后加上一个全连接层(第3个绿色的模块)进行信息的提炼,输出的矩阵中就更新了之前编码的氨基酸位置信息 。
pair 信息的编码
在整体模型中,我们看到MSA和pair之间的信息存在一个交互,pair到MSA我们已经在第1个自注意力模块里看到了 。
我们看紫色的“Outermean”,它进行了MSA到pair的信息回流:
我们看到在MSA在接受pair作为第1层的bias信息加和,经历了三层编码后,存在一个“Outermean”的支路,将更新过后的带氨基酸位置信息加回到pair信息中,完成了信息的交互 。
具体来说,在MSA中,每一列的信息,也就是一个S×Cm的矩阵代表了这一个氨基酸位置的(所有物种的)信息 。不同位置的氨基酸由于更新了位置信息,我们将两个向量做外积,形状变为(s,c,c),通过一系列线性变换,加回到pair信息中,长度为Cz 。
在后面的模块中,作者对氨基酸对之间的信息按行和列做了自注意力层的编码,对pair的内容进行了更新 。具体如何实现留一个坑,有空会在下次Paper 会继续讲解 。
我们对MSA和pair进行了位置信息的更新后,就可以进入解码器来构造3D结构了 。由于我们只需要预测人的氨基酸序列的3D结构,所以只需要把MSA的第一行内容传入解码器 。在解码器中,作者同样使用了自注意力机制,也加上了对偏移(pair bias)进行空间信息编码,并为编码构造3D结构的信息(旋转和位移),而进行了“魔改” 。具体算法,包括训练、模型评估等等其他细节也会有空在下次Paper 继续讲解 。
整个编码器的架构总体上运用了多个自注意力层+全连接层的结构,并对MSA信息和pair信息进行建模编码,将信息融入修改过的自注意力层,得到更新氨基酸空间位置信息的MSA和pair矩阵 。
结语
是一个复杂的模型,它通过一串氨基酸的序列,预测出原子精度的蛋白质三级结构 。它在编码器中使用了的变种,使用了许多改进的自注意力层,许多算法的改进是结合了基于氨基酸空间结构影响因素的先验假设进行了巧妙的设计 。
本文是自己对自注意力机制的应用的理解,整理了自己的思路 。从自注意力机制在NLP中的运用,可以看到它解决了两个问题:1.解决变长输入,2.上下文相关 。追根溯源,它大概解决了以下问题:通过找到最相关的节点,根据先验知识将建模好的信息编码入自注意力层,更新优化后的数据 。
在中,我们希望序列信息MSA和配对信息pair能为我们建立空间3d结构所用,需要了解序列中每个氨基酸的影响力,这个影响力(即自注意力)通过序列信息和配对信息建模,编码,将序列的数据进行更新,以达到能以此信息输入解码器构造3D结构的能力 。
在建模中涉及到的大量参数,通过PDB蛋白质数据库进行训练学习 。