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

news2024/11/27 11:44:09

本文结合 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.coloradmin.cn/o/2192716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ssh-xorg】SSH远程配置X11窗口回传

前言 我们通常在进行远程配置板端的时候往往会出现一个问题,在不连接显示屏或者启用VNC服务的前提下(或者使用其他软件提供的功能),我们无法在远程终端看到板端的新窗口,本文提供一种方式,在进行ssh远程连接时候制定参数-CX&…

SpringIoC容器的初识

一、SpringIoC容器的介绍 Spring IoC 容器,负责实例化、配置和组装 bean(组件)。容器通过读取配置元数据来获取有关要实例化、配置和组装组件的指令。配置元数据以 XML、Java 注解或 Java 代码形式表现。它允许表达组成应用程序的组件以及这…

Vueron引领未来出行:2026年ADAS激光雷达解决方案上市路线图深度剖析

Vueron ADAS激光雷达解决方案路线图分析:2026年上市展望 Vueron近期发布的ADAS激光雷达解决方案路线图,标志着该公司在自动驾驶技术领域迈出了重要一步。该路线图以2026年上市为目标,彰显了Vueron对未来市场趋势的精准把握和对技术创新的坚定…

如何实现 C/C++ 与 Python 的通信?

在现代编程中,C/C与Python的通信已经成为一种趋势,尤其是在需要高性能和灵活性的场景中。本文将深入探讨如何实现这两者之间的互通,包括基础和高级方法,帮助大家在混合编程中游刃有余。 C/C 调用 Python(基础篇&#…

AI 时代:产品经理不“AI”就出局?

即便你没想去做“AI 产品经理”,那你也不能成为一个不会用 AI 的产品经理。 产品经理肯定是所有互联网从业者中,最先捕捉到 AI 趋势的岗位。 但只知道 AI、关注 AI 还不够,仔细审视一下:你自己的工作,被 AI 提效了么…

打造自己的RAG解析大模型:Windows部署OCR服务(可商业应用)

在上一篇文章中,我们介绍了如何在 Windows 环境中配置 OCR 相关模型,并完成了模型验证。本篇文章将基于之前的内容,进一步讲解如何将文本检测、方向分类和文本识别模型进行串联,最终搭建一个基础的 OCR 应用服务。通过这些模型的串…

wxml语法-声明和绑定数据

文章目录 1、展示内容1.1、{{school}} 直接引用的是一个字符串或其他类型的简单值1.1.1、index.wxml1.1.2、index.js 1.2、{{obj.name}} 引用的是一个对象中的特定属性值1.2.1、index.wxml1.2.2、index.js 2、绑定属性值2.1、使用数据绑定的方式来动态设置元素的属性值2.1.1、i…

冯诺依曼体系|操作系统

目录 一、硬件:冯诺依曼体系 1.冯诺依曼体系结构 2.冯诺依曼体系结构组成 3.内存的重要性 (1)提升运行速度 (2)提升运行效率 二、软件:操作系统 1.什么是操作系统 (1)内部理…

代码随想录Day54

今天是国庆假期后的恢复做题的第一天,摆了那么久感觉还是有点没摆够哈哈哈哈!今天两道题都是困难题,两道题都去看讲解了,感觉这两道题是高度相似的,接雨水用单调递增栈来做,柱状图中最大的矩形用单调递减栈…

水凝胶发生器,不对称设计妙,医电应用前景广

大家好!今天来了解一种具有工程机械离子不对称性的水凝胶发生器——《A high-current hydrogel generator with engineered mechanoionic asymmetry》发表于《Nature Communications》。嘿!你能想象一种材料,它能像魔法一样在低频运动下产生高…

消息称苹果iPhone系列将完全放弃LCD屏幕

近日,据日经亚洲消息,苹果公司将于明年初推出搭载OLED显示屏的 iPhone SE 4,标志其整个iPhone系列已进入从 LCD 过渡到 OLED 技术的最后阶段,2025年及之后销售的所有iPhone机型均将搭载OLED屏幕。 由此,两家日本面板供…

【一起学NLP】Chapter3-使用神经网络解决问题

目录 使用神经网络解决问题Tip:数据集划分学习使用的代码Tip:epochTip:数据打乱Trainer类Tip-高速化计算 使用神经网络解决问题 import sys sys.path.append(..) # 为了引入父目录的文件而进行的设定 from dataset import spiral import matplotlib.pyplot as pltx,t spiral.…

解决银河麒麟桌面操作系统V10(ARM)中`apt-get update`“正在等待报头”问题

解决银河麒麟桌面操作系统V10(ARM)中apt-get update“正在等待报头”问题 1、问题描述2、 解决方法步骤一:打开终端步骤二:清理APT缓存步骤三:再次尝试更新软件源 💖The Begin💖点点关注&#x…

利士策分享,故事创作和造谣及假新闻之间如何界定?

利士策分享,故事创作和造谣及假新闻之间如何界定? 在这个信息爆炸的时代,一篇打着“人民网”旗号的虚假文章《低俗炒作博眼球,曝"瓜"文化不可取》在网络上迅速发酵,不仅误导了公众,更对无辜者造…

【源码+文档】基于SpringBoot+Vue校园智慧迎新服务平台

🚩如何选题? 如何选题、让题目的难度在可控范围,以及如何在选题过程以及整个毕设过程中如何与老师沟通,这些问题是需要大家在选题前需要考虑的,具体的方法我会在文末详细为你解答。 🚭如何快速熟悉一个项目…

MySQL【知识改变命运】03

表的基本操作 1:查看所有表2:创建表3:查看表结构4:修改表5: 删除表 前言:我们先了解一个知识: MySQL安装后会有MySQL服务——管理多个库——每个库管理多个表——每个表管理多行数据——数据行由…

《Windows PE》4.1导入表

导入表顾名思义,就是记录外部导入函数信息的表。这些信息包括外部导入函数的序号、名称、地址和所属的DLL动态链接库的名称。Windows程序中使用的所有API接口函数都是从系统DLL中调用的。当然也可能是自定义的DLL动态链接库。对于调用方,我们称之为导入函…

本田汽车投资SiLC Technologies:携手共促自动驾驶技术新飞跃

SiLC Technologies获本田汽车投资:加速自动驾驶技术革新 近日,硅谷光子学初创公司SiLC Technologies宣布获得本田汽车的投资,这一合作标志着双方将共同推进自动驾驶技术领域的革新与发展。本田此次投资不仅体现了对SiLC Technologies技术实力的认可,也彰显了本田在自动驾驶…

进程管理和进程调度的基本过程(详细版)

“无论你走得多慢,总比停下来要好。” 对于操作系统内核来说,里面包含的功能是非常多的,其中有一个功能和日常开发,息息相关。 进程管理: 进程(process/task):进程就是正在执行的应…

一个月学会Java 第4天 运算符和数据转换

Day4 运算符和数据转换 今天来讲运算符,每个运算符的作用和现象,首先我们先复习一下数据类型, day2讲过基本数据类型有八种,int、short、long、byte、char、boolean、float、double,分别为四个整型、一个字符型、一个布…