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


在上图的QKV模型中,X矩阵代表了原数据,列是序列长度,行是各个词向量 。
查询向量变成了一个矩阵Q(Query),待打分数据变成了矩阵K(Key),QK相乘归一化得到权值分布矩阵,再乘以一个待计算权值矩阵V(Value),则得到了一个相同形状的自注意力矩阵H 。
矩阵Q、K、V都源自于原数据X,只是做了一个线性变换,因此,线性变换的参数Wq、Wk、Wv(参数矩阵)是可学习参数,把原始数据X线性映射到一个不同的空间中 。
Multi-head self-
在中,我们还涉及到多头自注意力机制 。
即同时并行计算多个QKV模型,每个模型的参数(Wq、Wk、Wv)都不共享,单独学习,最后放到一起,用一个权值矩阵W还原成最初的形状 。这样分别计算每个自注意力模型的H,最后拼接起来并以系数W加权求和 。

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

文章插图
设想自注意力机制存在一个缺点,当模型在对当前位置的信息进行编码时,可能会过度的将注意力集中于自身的位置,因此作者提出了通过Multi-head的机制来解决这一问题 。同时,Multi-head还能够给予注意力层的输出包含有不同子空间中的编码表示信息,从而增强模型的表达能力 。
在中,我们还涉及到编码位置信息算法(位置向量+词的向量)、Layer-、残差连接(网络深层化)、逐行的FFN(用全连接层实现,类似窗口为1的卷积)、、等算法,这里就不详述了 。
我们可以看到模型的可解释性相对来说是比较强的,它使用了能让人们感同身受的注意力的概念,可以对序列内部的相关性做多方面的解释 。
我们注意到,通过自注意力机制,我们可以发现在序列中最相关的那个节点,并且可以了解注意力的强弱 。在自然语言处理中,我们将上下文的语义相关性赋予了注意力,帮助我们解决语言信息的分类、翻译等问题 。那么同为处理序列信息,如果我们在这个注意力中赋予了氨基酸序列的各种信息比如:氨基酸的物理性质、生物学性质、多序列比对信息、氨基酸对之间的互相作用信息、氨基酸序列结构模板信息等,如果能对这些信息进行编码建模,融入神经网络中,如果它对氨基酸序列三维空间结构有决定性的作用,那就能拿来预测3D结构了 。这里也需要一些对生物信息学、生物化学、物理学等等的一个先验的知识进行假设了 。
Self- in
回到的整体模型,之前提到了将第一个矩阵MSA(多序列比对信息)和第二个矩阵pair(氨基酸对的结构信息)传入编码器,对各类氨基酸的信息进行建模 。
整个编码器如图:
MSA 信息的编码
观察整个编码器中,有许多红色的Self-模块,只是冠以了“Row-wise”、“-wise”、“gated”、“with pair-bias”等词缀 。我们来看看这些Self-模块是如何对氨基酸各类信息进行建模的 。
首先看左上角第1个模块“Row-wise gated self- with pair-bias”(按行的、带门控的、带对偏移的自注意力层):
按行(Row-wise)表示我们先对每一个物种的氨基酸序列特点做面向自注意力机制的信息编码 。
左上角的第2、3、4个线性变换,就是之前讲到的QKV模型的三个变换矩阵Wq、Wk、Wv,得到query、key、value,并且用到了多头自注意力机制,对h层进行并行运算 。
由于是按行,每一行我们都单独算注意力的α分布,其等于这一行的query与key的点乘加上pair bias 。为什么加上来自第二个配对信息矩阵pair的数据作为pair bias(对信息偏倚)呢?因为我们通过向量的点乘算得了两个氨基酸之间的相关性,但是我们假设氨基酸之间的相关性应该有一部分信息来自于氨基酸对信息的矩阵中,所以作者加上了这个偏倚项,这样算得的自注意力会带上氨基酸对的结构信息 。