当前位置: 首页 > article >正文

DNABERT: 一个基于 Transformer 双向编码器表征的预训练 DNA 语言模型

本文结合 DNABERT 的原文,主要介绍了:

  1. Overview of DNABERT
  2. 开发 DNABERT 的背景
  3. DNABERT 的 tokenization
  4. DNABERT 的模型架构
  5. DNABERT 的预训练
  6. 基于微调 DNABERT 的应用

1. Overview of DNABERT

我们之前介绍了 BERT,它是一个基于 Transformer 双向编码器表征的预训练语言模型。(更多关于 BERT 的知识请查看:BERT: 一个双向理解语言序列的模型 & 第一个用于微调的预训练模型

DNABERT 是一个基于 Transformer 双向编码器表征的预训练 DNA 语言模型,它是专门针对基因组 DNA 语言设计的预训练模型,它受到了 BERT 的启发,并且在 BERT 的基础上做了一定的修改,它和 BERT 都是采用”预训练—微调“范式的模型

作者使用人类基因组大型无标记数据集对 DNABERT 进行预训练,基于上下游核苷酸背景获取对基因组 DNA 语言的通用理解。我们可以使用特定任务的小型带标记数据集对 DNABERT 进行微调,应用到各种基因组 DNA 语言分析任务上面。DNABERT 通过微调,在基因组调控元件预测方面取得了性能领先的表现,包括启动子、剪接位点和转录因子结合位点等预测。

DNABERT 发表在论文 DNABERT: pre-trained Bidirectional Encoder Representations from Transformers model for DNA-language in genome 中,原文链接:https://academic.oup.com/bioinformatics/article/37/15/2112/6128680?login=false

DNABERT 的源代码、预训练模型和微调可以在 GitHub 找到:https://github.com/jerryji1993/DNABERT

By the way,DNABERT 微调代码用到的包存在版本 bug,看一看即可,不要浪费时间尝试了。如果想用 DNABERT 微调模型,可以使用迭代的 DNABERT-2,原文地址:https://arxiv.org/pdf/2306.15006,GitHub地址:https://github.com/MAGICS-LAB/DNABERT_2,我后续会介绍 DNABERT-2。


2. 开发 DNABERT 的背景

解读非编码区 DNA 语言是基因组研究的基本问题之一,但是由于多义性和遥远的语义关系的存在,基因调控非常复杂,传统的信息学方法往往无法捕捉到这些内容。

多义性和遥远的语义关系正是自然语言的关键属性,这启发了研究者借用自然语言模型来研究基因组 DNA 语言。

此外,将 DNA 语言建模应该考虑以下两点:

  • 全局考虑所有上下文信息以区分多义的顺式作用元件;
  • 获取对 DNA 语言的通用理解,以“预训练-微调”范式应用到各种基因组 DNA 语言分析任务上。

鉴于上述内容,作者将(基于 Transformer 双向编码器表征的预训练语言模型)BERT 的思想改编到了基因组 DNA 语言模型的训练中,具体做法包括:

  • 应用了 Transformer 的双向编码器,使用自注意力机制从整个输入序列全局捕获上下文信息;
  • 在人类基因组大型无标记数据集对模型进行预训练,获取对基因组 DNA 语言的通用理解。

3. DNABERT 的 tokenization

在介绍 DNABERT 的预训练之前,我们先介绍一下它的 tokenization。

DNABERT 使用 k-mer 表示法对 DNA 序列进行 tokenization,k-mer 表示法通过将每个脱氧核苷酸碱基与其后续碱基连接起来,包含了更丰富的上下文信息。

作者在本研究中预训练了 4 个模型:DNABERT-3、DNABERT-4、DNABERT-5、DNABERT-6,分别对应 3-mer、4-mer、5-mer、6-mer。

对于 DNABERT-k,它的词汇表(vocabulary)由 k-mer 的所有排列以及 5 个特殊 token 组成,总计 个 tokens。

5 个特殊 token:[CLS] 代表分类 token,[PAD] 表示填充 token,[UNK] 表示未知 token,[SEP] 表示分句 token,[MASK] 表示掩码 token。因此, DNABERT-k 词汇表中的标记。

更过关于 k-mer 和 tokenization 的知识请查看:从头实现一个处理 fasta 文件的 tokenizer


4. DNABERT 的模型架构

DNABERT 和 BERT 都是基于 Transformer 编码器设计的,两者的模型架构基本相同。

DNABERT 的模型架构
DNABERT 的模型架构

如上图所示:

DNABERT 使用 k-mer 作为输入(上图以 3-mer 为例),[CLS] token 是代表整个序列含义的标签,[SEP] token 是序列分隔符,表示序列结束,[MASK] token 表示预训练中的掩码 k-mer。

输入的 token 在嵌入层 embedding 为 Token Embedding,并添加 Positional Embedding 信息,两者组成 Input Embedding。

Input Embedding 被输入到 Transformer 编码器块中,总共有 12 个 Transformer 编码器块,每块有 768 个隐藏单元和 12 个注意力头。

对于最后隐藏状态的输出,开头第一个输出用于句子级别分类,单个掩码 token 的输出将用于 token 级分类。


5. DNABERT 的预训练

DNABERT 借鉴了 BERT 的思想,但对 BERT 的预训练过程做了一些修改:

  • 删除了下一句预测;
  • 调整了序列长度,通过截断和采样从人类基因组中提取 10~510 bp 的序列;
  • 调整随机掩码处理:对输入的 token 序列进行随机掩码处理,单个掩码区域大小为 k 个连续 token 区域(k 为 k-mer 的 k),总掩码区域大小占序列全长的 15%。这样做是为了强制模型预测 k 个连续 token 区域,k 个连续 token 区域是和 DNA 语言场景相符合的,例如,一个功能元件一般是一小段序列。

注意:在微调中,不对输入的 token 序列进行随机掩码处理,直接将 token 序列输入到 Embedding 层。

损失函数:使用交叉熵损失函数对 DNABERT 进行预训练。


6. 基于微调 DNABERT 的应用

  • DNABERT-Prom 有效预测近端和核心启动子区域;
  • DNABERT-TF 准确识别转录因子结合位点
  • DNABERT-viz 可以可视化重要区域、上下文和序列基序。

这里只列举一下,不具体介绍了,感兴趣的可以查看原文。


写在文末

人工智能技术日新月异,逐渐渗透进了各行各业。人工智能技术在生物领域有非常大的应用潜力,让我们一起学习,致力于人工智能推动生物发展。

为了促进交流,我创建了 AI in Bio 微信交流群,可以点击公众号主页底部进交流群一栏,获取交流群二维码,如果二维码失效,请给我留言,我会尽快更新。也可以先加我微信(微信ID:AIinbio),备注进交流群,然后我拉你进群。

感谢大家的支持与帮助!

本文由 mdnice 多平台发布


http://www.kler.cn/news/334980.html

相关文章:

  • MySql数据引擎InnoDB引起的锁问题
  • 通信工程学习:什么是DQDB分布式队列双总线
  • Java体系中的异常
  • 新机配置Win11
  • Leetcode—139. 单词拆分【中等】
  • Qt源码阅读——事件循环
  • MQTTnet.Extensions.ManagedClient客户端连接
  • 【数据结构】双向链表(Doubly Linked List)
  • Spring Boot ⽇志
  • Stable Diffusion 常用大模型及其特点
  • 数据结构之树(3)
  • 简单认识 redis -3 -其他命令
  • HDU Sit sit sit (区间DP+组合数)
  • 打造自己的RAG解析大模型:Windows部署OCR服务(可商业应用)
  • springboot网上商城源码分享
  • Chromium 中JavaScript Console API接口c++代码实现
  • Goland 设置GOROOT报错 The selected directory is not a valid home for Go SDK
  • C语言:预编译过程的剖析
  • npm、yarn、pnpm之间的区别
  • 构建数字化生态平台,开启企业新未来