2021SC@SDUSC
一、论文解读
论文题目:PepFormer: End-to-End Transformer-Based Siamese Network to Predict and Enhance Peptide Detectability Based on Sequence Only
1.背景
多肽的可检测性在鸟枪蛋白质组学实验中至关重要。在这篇论文中引入了PepFormer,一种新型的端到端孪生网络架构,它将Transformer和GRU组合在一起,能够仅基于肽序列预测肽的可检测性。论文首次采用对比学习的方法,构造了一个新的模型训练损失函数,大大提高了预测模型的泛化能力。
2.模型优点
(1)模型基于Transformer和GRU结构自动学习肽的上下文敏感的嵌入表示,充分捕获全局和局部信息来表示肽的可检测性。 (2)孪生网络结构可以有效地增强从Transformer学习到的嵌入特征的表示能力,从而提高预测性能。 (3)提出了一种新的模型训练损失函数,提高了模型的泛化能力。 模型的总损失为对比损失和交叉熵损失之和。对比损失使得具有相同标签的表示向量更加接近。
二、代码分析
代码地址:https://github.com/WLYLab/PepFormer.
模型代码解读
class newModel(nn.Module):
def __init__(self, vocab_size=24):
super().__init__()
self.hidden_dim = 25
self.batch_size = 256
self.emb_dim = 512
self.embedding = nn.Embedding(vocab_size, self.emb_dim, padding_idx=0)
self.encoder_layer = nn.TransformerEncoderLayer(d_model=512, nhead=8)
self.transformer_encoder = nn.TransformerEncoder(self.encoder_layer, num_layers=1)
self.gru = nn.GRU(self.emb_dim, self.hidden_dim, num_layers=2,
bidirectional=True, dropout=0.2)
self.block1=nn.Sequential(nn.Linear(4050,1024),
nn.BatchNorm1d(1024),
nn.LeakyReLU(),
nn.Linear(1024,256),
)
self.block2=nn.Sequential(
nn.BatchNorm1d(256),
nn.LeakyReLU(),
nn.Linear(256,128),
nn.BatchNorm1d(128),
nn.LeakyReLU(),
nn.Linear(128,64),
nn.BatchNorm1d(64),
nn.LeakyReLU(),
nn.Linear(64,2)
)
1.self.embedding = nn.Embedding(vocab_size, self.emb_dim, padding_idx=0) 首先,在序列预处理模块中,使用嵌入向量来表示输入肽序列的氨基酸。因此,肽序列可以用特征矩阵来表示。作者将肽序列编码为24×512维的特征矩阵。 下图表示论文中序列预处理模块的构造:
2.self.encoder_layer = nn.TransformerEncoderLayer(d_model=512, nhead=8) self.transformer_encoder = nn.TransformerEncoder(self.encoder_layer, num_layers=1) 作者利用一个 Transformer encoder layer进行特征提取。TransformerEncoderLayer 由self-attention和feedforward组成。Transformer 使用了多头注意机制,它不仅可以捕获序列中某个大小窗口中的局部信息,还可以捕获序列的全局信息。在肽序列中,这种机制可以极大地丰富标记的表示能力和学习上下文敏感的嵌入表示。 3.self.gru = nn.GRU(self.emb_dim, self.hidden_dim, num_layers=2, bidirectional=True, dropout=0.2) 作者使用Bi-GRU来捕获嵌入向量表示的长距离依赖关系。然后使用前馈神经网络(FNN)映射嵌入特征,生成统一的向量表示。这样就可以计算两个肽序列之间的距离。 GRU 有两个有两个门,即一个重置门和一个更新门。从直观上来说,重置门决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。 下图为孪生网络模块的模型架构:
论文中提到,为避免灾难性遗忘,会冻结前面网络层的参数,只更新判别器的参数。
三、总结
本周阅读了一篇和蛋白质序列相关的论文,学习了论文中的Transformer和GRU模型,并对其模型架构部分代码进行分析。
|