scBert的输入是什么?怎么构造的,有例子吗?

news/2026/1/20 18:35:30/文章来源:https://www.cnblogs.com/ylifs/p/19508261

scBert的输入是什么?怎么构造的,有例子吗?

1. scBERT 的输入是什么?

scBERT 的输入是单细胞 RNA 测序(scRNA-seq)数据中单个细胞的基因表达谱

  • 原始数据形式:原本是连续变量,代表单个细胞中数万个基因的表达水平。
  • 序列长度:由于使用了 Performer 架构,scBERT 可以支持超过 16,000 个基因作为输入序列,无需像传统方法那样进行基因选择(如高变基因选择)或降维处理。

2. 输入是如何构造的?

输入由两部分嵌入(Embedding)逐元素相加(Element-wise addition) 而成:

A. 表达嵌入 (Expression Embedding, ):

  • 分箱处理(Binning):由于原始基因表达量是带有噪声的连续变量,scBERT 借鉴了词袋技术,将连续的表达值进行“分箱”处理。
  • 离散化:分箱将表达值转换成离散值(可理解为该细胞中基因的转录频率),从而降低数据噪声,使其更符合 Transformer 模型的处理习惯。

B. 基因嵌入 (Gene Embedding, ):

  • 身份表示:在 BERT 中使用位置嵌入(Positional Embedding),但在单细胞数据中,基因的排列顺序没有意义。因此,scBERT 使用 gene2vec 预训练得到的向量来代表基因的身份。
  • 语义捕捉:这种嵌入可以看作是“相对嵌入”,它捕捉了基因之间的通用共表达信息和语义相似性(功能接近的基因在向量空间中更接近)。

3. 构造例子

构造过程如下:假设情景:我们要输入某个细胞中的“第一个基因”。

  • 第一步(表达量处理): 该基因在这个细胞里的原始表达量经过分箱后,落入了“第二个箱子”(Bin 2)。模型会提取对应的表达嵌入向量 \(E_{e}\)
  • 第二步(基因身份提取): 该基因本身的身份(例如它是 TP53 基因)对应一个由 gene2vec 预定义的唯一嵌入向量 \(E_{g}\)
  • 第三步(合成输入): 将该基因的身份向量 \(E_{g}\) 和表达量向量 \(E_{e}\) 相加。最终结果:这个相加后的向量作为该基因的表征,输入到 Performer 编码器中进行处理。

总结:

scBERT 的输入构造公式可以简述为:
输入 = 分箱后的离散表达嵌入 (\(E_e\)) + 基于 gene2vec 的基因身份嵌入 (\(E_g\))

表达嵌入和基因嵌入具体是怎么做的,能否有详细的过程?

scBERT 的表达嵌入(Expression Embedding)基因嵌入(Gene Embedding) 的构造过程可以拆解为以下详细步骤:

1. 表达嵌入 (Expression Embedding) 的构造过程

这一步的目的是将原始的、带有噪声的连续数值(基因表达量)转化为模型能够处理的离散特征。

  • 第一步:原始数据获取
    获取单细胞测序后的原始矩阵,其中每一行代表一个细胞,每一列代表一个基因。单元格里的数值是连续变量(反映基因表达水平)。
  • 第二步:分箱处理 (Binning)
    为了处理连续变量并降低生物/技术噪声,scBERT 借鉴了 NLP 中的词袋技术。它将基因表达值的范围划分为若干个“箱子”(Bins)。例如,如果设定了 10 个等级,那么表达量在 0-1 之间的可能归入 Bin 1,1-5 之间的归入 Bin 2,以此类推。
  • 第三步:离散化 (Discretization)
    经过分箱,原本的连续数值(如 1.28, 5.67)被转换成了离散的索引值(如 Bin 2, Bin 5)。这代表了该细胞中基因的转录频率等级。
  • 第四步:映射为向量
    每一个 Bin 索引会被映射为一个高维实数向量。这个向量的维度与基因嵌入的维度保持一致,以便后续相加。

2. 基因嵌入 (Gene Embedding) 的构造过程

这一步的目的是赋予每个基因一个“身份证明”,并携带基因之间的功能相似性信息。

  • 第一步:基因身份确定
    每个基因(如 TP53GAPDH 等)都有一个唯一的标识。在 scBERT 中,每个基因的绝对位置是不重要的(不像文本中词的顺序),因为打乱列顺序不改变生物学含义。

  • 第二步:利用 gene2vec 预训练
    scBERT 不使用随机初始化的嵌入,而是直接采用 gene2vec 生成的预训练向量。

  • 原理:gene2vec 类似于 NLP 中的 Word2vec,它是通过大规模基因共表达数据训练出来的。

  • 效果:如果两个基因经常在各种组织中同时表达(共表达),那么它们在向量空间中的距离就会非常接近。

  • 第三步:提取固定嵌入
    对于输入的每一个基因,根据其 ID 从 gene2vec 库中提取对应的唯一向量 。这个向量捕捉了基因的“语义信息”和潜在的相互作用。

3. 最终输入的合成:逐元素相加

得到上述两个向量后,构造完整输入的最后一步是:

  1. 对齐:对于细胞中的每一个基因 ,找到其对应的基因嵌入向量 和表达嵌入向量 。
  2. 求和:将这两个向量进行逐元素相加(Element-wise addition):

\[\text{scBERT-Input}_i = G_i + E_i \]

  1. 输入 Performer:相加后的结果作为一个整体序列,输入到 Performer 编码器中。

详细例子(以一个基因为例):

假设我们要处理一个细胞里的 A 基因

  1. 基因嵌入:查询 gene2vec 词典,发现 A 基因 的身份向量是 [0.1, -0.2, 0.5, ...]
  2. 表达嵌入:该细胞中 A 基因 的表达量很大,经过分箱被归为 第 9 箱 (Bin 9)。Bin 9 对应的表达向量是 [0.05, 0.1, -0.1, ...]
  3. 合成:将两个向量相加,得到 [0.15, -0.1, 0.4, ...]
  4. 意义:这个最终向量既告诉了模型“我是哪个基因”(身份信息),也告诉了模型“我在这个细胞里表达量有多高”(状态信息)。

gene2vec怎么训练,输入是什么,token是什么,句子是什么?

要深入理解 gene2vec 的训练过程,最直白的办法就是对照自然语言处理(NLP)中的 Word2vec。在生物学语境下,研究者把“生命的代码”当成了一门“语言”。

以下是 gene2vec 训练的详细拆解:

1. 概念类比表(核心逻辑)

要理解它的输入,首先要进行角色转换:

NLP 概念 gene2vec 对应概念 说明
词 (Token) 基因 (Gene) 每一个唯一的基因(如 TP53)就是一个单词。
句子 (Sentence) 共表达基因集合/对 在同一个生物样本或实验中,表现出高度相关性的基因群。
语料库 (Corpus) GEO 等公共数据库 包含数千个不同实验、数万个样本的基因表达大数据集。
语义相近 功能相关/共表达 经常一起出现的词意思相近;经常一起表达的基因功能相关。

2. gene2vec 到底是怎么练出来的?

第一步:准备语料库(数据输入)

训练 gene2vec 的输入通常不是单一的数值,而是从海量公共数据(如 GEO 数据库)中提取的基因关系图

  • 原始输入:数千个矩阵,每个矩阵记录了成千上万个样本中基因的表达量。
  • 预处理:计算基因之间的相关性(例如皮尔逊相关系数)。如果基因 A 和基因 B 在 1000 个样本中总是同步忽高忽低,它们就被打上“强关联”的标签。

第二步:构造“句子”

在 NLP 中,句子是单词的序列。在 gene2vec 中,没有天然的顺序,所以研究者通过以下方式构造“句子”:

  • 方法 A(对齐法):将相关性极高的基因两两配对,比如 (基因A, 基因B),这对就是一个微型“句子”。
  • 方法 B(邻居法):对于每一个基因,找到与其关联最紧密的 Top N 个基因,把它们排在一起作为一个“上下文窗口”。

第三步:模型训练(算法)

scBERT 引用的 gene2vec 通常采用 Word2vec 的 Skip-gram 模式进行训练:

  1. 输入 (Center Word):选定一个基因(如 CD4)。
  2. 预测 (Target Context):让模型去预测这个基因的“邻居”是谁(比如 CD3)。
  3. 调整:如果模型猜对了,就加强这两个基因向量的相似度;猜错了就推开。
  4. 结果:经过数亿次的预测尝试,模型为每个基因生成了一个固定长度的向量(通常是 200 或 300 维)。

3. 一个具体的例子

假设我们要训练一个关于“免疫系统”的基因向量:

  1. 数据输入:我们拿到了 1000 个 T 细胞的实验数据。
  2. 发现规律:数据显示,每当 CD3D 基因高表达时,CD3E 基因也必然高表达。
  3. 构造 Token 和句子
  • Token: CD3D, CD3E, TP53, MYC...
  • 生成的“句子”/对[CD3D, CD3E][CD3D, CD247]
  1. 训练过程:模型学习到,在向量空间中,把 CD3D 的向量往 CD3E 的方向拉近。
  2. 最终产物:当你去查 CD3D 的 gene2vec 向量时,你会发现它和 CD3E 的余弦相似度极高。

4. 为什么 scBERT 不直接自己练,而是用 gene2vec?

这是为了“迁移学习”

  • gene2vec 的知识:来源于全人类过去几十年积累的宏观基因关系(这种关系在所有细胞中具有一定的普适性)。
  • scBERT 的预训练:是在单细胞层面学习更精细的表达模式。

总结:
gene2vecToken是基因 ID,句子是共表达的基因对/群。它训练的本质是把生物学上的“共表达关系”编码进数字向量中

这样,当 scBERT 看到两个基因时,即使这两个基因在当前的单细胞数据中表达很低,它也能通过 gene2vec 知道它们在生物学逻辑上其实是“亲戚”。

Skip-gram 模式具体是什么?

Skip-gram 是 Word2vec 算法中的一种核心架构(另一种是 CBOW)。它的核心思想非常直观:给定一个“中心词”,去预测它周围可能出现的“背景词”(上下文)。

gene2vec 的语境下,Skip-gram 的目标就是:给定一个特定的“基因”,预测哪些基因最可能与它同时表达。


1. Skip-gram 的核心逻辑:以点带面

想象你在读一句话,或者在观察一个细胞里的基因表达列表。

  • CBOW (另一种模式):像是在做“完形填空”。给周围的词,让你猜中间那个词是什么。
  • Skip-gram:像是“举一反三”。给中间那个词,让你猜它的邻居是谁。

为什么 gene2vec 偏好 Skip-gram?
因为 Skip-gram 在处理大规模语料(或庞大的基因数据库)时,对于出现频率较低但具有重要生物学意义的基因,能学习到更好的向量表示。


2. 具体训练过程(以基因为例)

第一步:定义“窗口”(Window Size)

在文本中,窗口是中心词前后 2-5 个词。在基因数据中,我们会根据基因之间的相关性排序,定义一个“功能窗口”。
例如,我们有一个关联序列:[基因A, 基因B, 基因C, 基因D, 基因E]
如果我们选 基因C 为中心词,窗口大小为 2,那么它的上下文就是 {基因A, 基因B, 基因D, 基因E}

第二步:构造训练样本(Training Pairs)

Skip-gram 会把这个窗口拆解成多对“输入-输出”组合:

  • (输入: 基因C) -> (输出: 基因A)
  • (输入: 基因C) -> (输出: 基因B)
  • (输入: 基因C) -> (输出: 基因D)
  • (输入: 基因C) -> (输出: 基因E)

第三步:神经网络的前向传播

  1. 输入层:输入中心基因的 One-hot 编码(一个极长的向量,只有基因 C 的位置是 1,其余是 0)。
  2. 隐藏层(嵌入层):One-hot 向量乘以一个巨大的权重矩阵 。这个矩阵的每一行其实就是我们要找的基因嵌入向量
  3. 输出层:通过另一个权重矩阵 ,计算出全词库(所有基因)中每个基因出现的概率。

第四步:计算误差与更新

  • 目标:我们希望模型预测“基因A”的概率尽可能高。
  • 优化:如果模型预测基因 A 的概率很低,就通过反向传播算法调整权重矩阵 和 中的数值。
  • 结果:经过数百万次这种“看中心基因猜周围基因”的练习,功能相似的基因在权重矩阵 里的数值会变得非常接近。

3. 数学表达(简略)

Skip-gram 的目标是最大化在给定中心基因 时,观察到上下文基因 的条件概率:

\[P(g_o | g_c) = \frac{\exp(v_{g_o}^\top v_{g_c})}{\sum_{g=1}^{V} \exp(v_g^\top v_{g_c})} \]

  • \(v_{g_c}\) 是中心基因的向量。

  • \(v_{g_o}\) 是目标上下文基因的向量。

  • 分母是对所有基因的求和(用于归一化)。


4. 总结:它对 scBERT 意味着什么?

通过 Skip-gram 训练出的 gene2vec,本质上是一个“基因关联图谱”的浓缩版

当 scBERT 使用这些向量作为输入时,它不再只是处理一堆互不相关的数字。比如,当输入包含 CD3D 的 gene2vec 向量时,Skip-gram 已经提前告诉了模型:“注意,这个基因通常和免疫识别有关,它在功能上和 CD3E 非常接近。” 这种先验知识极大地降低了 scBERT 学习细胞类型的难度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1190300.shtml

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

相关文章

AMD Ryzen性能调试工具完全指南:从零掌握硬件调优技术

AMD Ryzen性能调试工具完全指南:从零掌握硬件调优技术 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

DSView:从零开始掌握开源信号分析工具

DSView:从零开始掌握开源信号分析工具 【免费下载链接】DSView An open source multi-function instrument for everyone 项目地址: https://gitcode.com/gh_mirrors/ds/DSView DSView是一款功能强大的开源多功信号分析工具,采用GPLv3协议开源&am…

Python抖音批量下载神器:3步构建专属视频素材库

Python抖音批量下载神器:3步构建专属视频素材库 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 想要高效管理抖音内容素材?这款基于Python开发的批量下载工具将彻底改变您的视频采集…

虚拟滚动(Virtual Scrolling)

虚拟滚动(Virtual Scrolling) 问题: 渲染 10,000 条消息?浏览器直接卡死! 解决方案: 只渲染“当前可见区域”的内容,滑动时动态替换,内存和性能都省下来。 推荐库(Vue 3 兼容):vueuc(轻量、活跃维护) vue…

英雄联盟自动化工具League Akari完整使用教程:从安装到精通

英雄联盟自动化工具League Akari完整使用教程:从安装到精通 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 想要在英雄…

OpenCore Legacy Patcher深度解析:让老旧Mac重获新生的完美方案

OpenCore Legacy Patcher深度解析:让老旧Mac重获新生的完美方案 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为你的老Mac无法安装最新macOS而烦恼吗&am…

2小时极速指南:让老款Mac完美运行最新macOS系统

2小时极速指南:让老款Mac完美运行最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 您是否正在为2012-2015年款的Mac设备无法升级到最新系统而困扰…

2026景区溶洞假山设计正规公司推荐榜:太空舱民宿修建/打造萌宠民宿/景区民宿修建/木屋民宿打造/民宿生产施工/选择指南 - 优质品牌商家

2026景区溶洞假山设计正规公司推荐榜一、行业背景与推荐依据据《2026-2030中国文旅景区升级改造白皮书》数据显示,2026年国内82%的景区升级改造项目中,均将主题民宿及配套景观列为核心内容,其中溶洞假山作为沉浸式景…

AI推理真相:大型喃喃自语模型如何“忽悠“整个科技圈?

这篇文章《(How) Do Reasoning Models Reason?》对当前大型推理模型(LRM)进行了深刻的剖析,超越了表面的性能宣传,直指其技术本质和核心局限。以下是基于原文的详细技术原理、关键过程与核心见解拆解。 一、核心论点与总览 LRM…

双证认证落袋!熊家无二领跑韩式炸鸡赛道 - 中媒介

2026年1月,韩式炸鸡赛道传来重磅喜讯:头部品牌熊家无二斩获两项权威认证,经尚普咨询集团(全国首批获工程咨询甲级资信、具备国家统计局涉外调查许可证的权威第三方机构)严格调研核验,成功摘得“琥珀酱炸鸡首创者…

Excel函数进阶:SUM与AVERAGE不为人知的智能用法

SUM不只是求和,AVERAGE也不只是算平均——当你掌握这些进阶技巧,就会发现它们其实是Excel中的“条件计算大师”。 一、SUM函数的深度进化:从简单求到智能累计 经典误区:SUM只是“计算器” 大多数用户对SUM的理解停留在SUM(A1:A1…

wxauto微信自动化终极指南:简单快速实现免费自动化操作

wxauto微信自动化终极指南:简单快速实现免费自动化操作 【免费下载链接】wxauto Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人 项目地址: https://gitcode.com/gh_mirrors…

选购指南:如何挑选性价比高的精密排刀机品牌? - 品牌推荐大师

一、行业背景:制造业升级与政策驱动下的技术革新 精密排刀机作为数控机床的核心分支,其发展紧密依托于全球制造业的转型升级需求。随着航空航天、新能源汽车、高端装备等产业对零件加工效率与精度的要求日益严苛,传…

如何快速掌握ZeroOmega:终极代理管理工具完整指南

如何快速掌握ZeroOmega:终极代理管理工具完整指南 【免费下载链接】ZeroOmega Manage and switch between multiple proxies quickly & easily. 项目地址: https://gitcode.com/gh_mirrors/ze/ZeroOmega 在当今复杂的网络环境中,ZeroOmega作为…

XHS-Downloader:小红书无水印批量下载终极解决方案

XHS-Downloader:小红书无水印批量下载终极解决方案 【免费下载链接】XHS-Downloader 免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader 还…

碧蓝航线全皮肤解锁终极教程:5步轻松拥有所有限定外观

碧蓝航线全皮肤解锁终极教程:5步轻松拥有所有限定外观 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 还在为碧蓝航线中那些精美但昂贵的皮肤而烦恼吗?Perseus开源项目为你带来完美…

MGWR空间分析技术突破:多尺度建模的实践探索与深度解析

MGWR空间分析技术突破:多尺度建模的实践探索与深度解析 【免费下载链接】mgwr 项目地址: https://gitcode.com/gh_mirrors/mg/mgwr 🌟 从实际问题出发:为什么需要多尺度空间分析? 在传统空间数据分析中,我们常…

Awoo Installer:Switch游戏安装的终极效率革命

Awoo Installer:Switch游戏安装的终极效率革命 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安装的繁琐流程而烦恼吗…

全网最全10个AI论文工具,专科生轻松搞定毕业论文!

全网最全10个AI论文工具,专科生轻松搞定毕业论文! AI 工具助力论文写作,专科生也能轻松应对 随着人工智能技术的不断进步,越来越多的 AI 工具被应用到学术写作领域。对于专科生来说,撰写毕业论文常常面临时间紧、资料少…

中兴光猫配置解密工具:轻松掌握网络配置的终极武器

中兴光猫配置解密工具:轻松掌握网络配置的终极武器 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 还在为看不懂光猫配置文件而烦恼吗?中兴光猫配置…