2021SC@SDUSC
这篇文章主要是为了讲解一下DNAbert这个在我们平台上效果最好的模型,对文章的解读自我感觉还是很到位的,欢迎点评指出错误(笑)
Bioinformatics | DNABERT:从Transformers模型中提取的预训练解码器运用在DNA基因上
1.摘要
今天给大家介绍西北大学Ramana V. Davuluri教授等人在Bioinfomatics期刊上发表的文章“DNABERT: pre-trained Bidirectional Encoder Representations from Transformers model for DNA-language in genome”。为了解决传统语言难以捕捉DNA语义之间信息的问题,作者提出了一个新颖的预训练双向编码表示DNABERT来通过上下文信息对DNA序列进行全局或者迁移分析。通过实验表明,作者的模型能够在众多下游任务上达到SOTA水平,并且,DNABERT可以直接对核苷酸分子的重要性进行排名和分析输入序列上下文之间的关系,从而获得更好的可视化信息和精确的motifs提取。
2.研究背景
做为生物学研究的一个主要目标,研究DNA的隐藏结构是人们长期探索的问题。而根据语言学的研究,从字母和词汇到语法和语音学DNA的序列模型确实和人类语言在有着很多的相似性,因此近些年很多深度学习工具被运用在了相关的领域上,如大量采用的CNN到提取序列特征的RNN和LSTM,以及简化的版本GRU。但是为了更好的建模DNA语言模型,我们需要1)将DNA的全局信息考虑进去2)能够将对DNA的理解迁移到各种不同下游任务上3)当标签数据量被限制时仍然表现出优秀的泛化能力,以上的模型在这几点都有所欠缺,所以作者提出了将BERT运用到DNA序列,开发出一个深度学习的模型:DNABERT,并且通过训练后,模型解决了先前提出了要求。
3.模型与方法
3.1DNABERT模型
BERT是一个基于transformer的提取上下文语义的表示模型,并且其在NLP的诸多TASK上取得了超过人类的表现。DNABERT首先将序列转化成k-mer的token表示作为输入,加上一个表示位置的token得到最终的input token。再通过multi-head的自注意力的模型捕捉上下文的语义,通过线性变换得到一定的调整,从而结束一层的前向传播(如图1所示)。模型中有多个这样的层,最后得到的结果用于BERT的预训练任务,掩码任务依旧是传统方式,遮盖部分然后预测,通过交叉熵的损失函数进行反向传播,但是next sentence prediction的任务改为对DNA连续多少个token符合可能发生的情况进行预测。
图1. DNABERT模型图
3.2模型的训练
首先是Token问题,作者采用了3-mer,4-mer,5-mer和6-mer四种方式来对DNA序列进行编码,例如,‘ATGGCT’在3-mer的编码方式下会变为以下四个token {ATG, TGG, GGC, GCT},此外还有五个特殊的token:代表分类结果的[CLS],代表补充边界的[PAD],代表未知token的[UNK],代表分割符的[SEP],代表掩码token的[MASK]。再者是预训练的方法,因为上一下节已经提过,在此不再赘述。最后是在下游任务上的Fine-tuning,对于每一个下游任务的训练,作者都微调了学习率,并且采用了AdamW的优化器,对于超多512长度的DNA序列,作者将其分成不同的切片,然后将其的特征表示组合拼接。最终实验结果表明当kmer为6时表现最好。
4.实验结果
4.1三个fine-tuning实验
第一个实验是用在预测启动因子上,作者给微调后的模型起名为DNABERT-Prom。为了和基线的方法比较,作者还增长了输入长度,采用了1001bp的模型,实验表明无论参数如何,DNABERT-Prom都优于传统的CNN,CNN+LSTM和CNN+GRU(如图2所示)。第二个实验是识别转录因子结合位点,先前的模型在寻找true negative上达到了和作者提出的DNABERT-TF模型一样的表现,但是预测了过多的false postive和false negative位点。并且在低质量的数据集上,DNABERT-TF和其他的模型相比取得了极高的召回率。第三个实验用在了识别规范或不规范的剪辑位点上。同样,与对比实验的诸多方法相比,基于DNABERT的DNABERT-Splice取得了优秀的实验数据,并且通过注意力的解释发现模型突出强调了内含子的作用功能的重要性。
图2. DNABERT-Prom相关实验的统计和分析
4.2可视化模型的解释
为了克服深度学习中的黑箱难以解释的问题,BERT模型需要解释出自己学习到的东西。因此,作者做了相关的工作来证明对于BERT寻找相关的重要位点和理解它们与上下文的关系是非常自然的。通过可视化bert的attention层得到的分数解释了学习的重要位点在哪里(如图3所示),a图即是随便选取了几条序列得到的结果。通过b图和c图都说明了模型学到了一定的知识,一个是-20到-30bp位置,一个是中心的左右位置,但是在低质量的数据集上可能只有在开头有很高的注意力,如d图。接着,作者在e图中可视化了序列上下文的关系,可以看出黄色的head注意力集中到了CTT位点上,同时也有三个其他的head(绿色,紫色和粉红)也成功注意到了这个位点,表明多头已经理解了上下文的相关性和重要性。
图3. DNABERT相关attention map的可视化
4.3是否预训练的对比实验和迁移实验
作者为了证明预训练和在具体任务上的微调是有作用的,分别进行了对比实验和对应attention的可视化操作(如图4所示),从d图和e图看出有了很明显的提升。而后作者又在小白鼠的数据集上进行了迁移实验,从f图看出结果依旧表现很好,说明模型抓取到了DNA共有的深层语义,进一步突出了预训练的重要性。
图4.DNABERT的预训练对比实验和小白鼠的迁移实验
5.结论
在本文中,作者预训练了关于DNA的bert模型DNABERT,同时也将相关参数开源。DNABERT预训练模型在下游任务的表现大大超过了传统深度学习模型的基线,作者还通过可视化的方法解释了模型。此模型的提出让DNA和人类语言的相似性进一步得到了证明,但同时我们还需要整合其他相似性让DNA的破译工作能够更深层次的发展。