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

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.lryc.cn/news/454290.html

相关文章:

  • 基于Hive和Hadoop的电商消费分析系统
  • 记一次炉石传说记牌器 Crash 排查经历
  • 精益驱动的敏捷开发
  • SolidWorks机器转ROS2 URDF
  • (Linux驱动学习 - 6).Linux中断
  • SpringBoot驱动的明星周边产品电商解决方案
  • C++、Ruby和JavaScript
  • 32单片机 低功耗模式
  • 501、二叉搜索树中的众数
  • 【洛谷】P2330 [SCOI2005] 繁忙的都市 的题解
  • 第18场小白入门赛(蓝桥杯)
  • Redission · 可重入锁(Reentrant Lock)
  • 初阶C语言-指针
  • 论文笔记:微表情欺骗检测
  • 智能家居有哪些产品?生活中常见的人工智能有哪些?
  • 洗车行软件系统有哪些 佳易王洗车店会员管理系统操作教程#洗车店会员软件试用版下载
  • 【Java】springboot 项目中出现中文乱码
  • 开放式耳机是什么意思?漏音吗?开放式的运动蓝牙耳机推荐
  • 如何优雅的处理NPE问题?
  • k8s 中存储之 NFS 卷
  • Redis中BitMap实现签到与统计连续签到功能
  • 【Spring】“请求“ 之传递 JSON 数据
  • 文心一言 VS 讯飞星火 VS chatgpt (359)-- 算法导论24.3 1题
  • Redis-预热雪崩击穿穿透
  • jvisualvm学习
  • Gazebo环境下开源UAV与USV联合仿真平台
  • Linux进程调度和进程切换
  • 机器学习基本上就是特征工程——《特征工程训练营》
  • Android Framework AMS(01)AMS启动及相关初始化1-4
  • 基于基于微信小程序的社区订餐系统