doi.org/10.1038/s42256-023-00647-z
本文介绍于 2023 年 MIT 研究团队在 Nature Machine Intelligence 发表上的一篇文章,文章原标题为 Structure-inducing pre-training,文章调查了目前广泛应用的多种预训练模型,设计了一种通过图结构在预训练过程中引入显式且深层结构约束的方法。
预训练-微调的学习模式在自然语言处理及其他相关领域都已经得到广泛的应用,预训练通过在隐空间中提取样本的特征,从而提升模型在下游任务上的表现。但目前的预训练模型都没能在潜变量 \(\boldsymbol{z}\) 上添加结构约束,从而获得既显式又深层的特征,这是目前预训练模型的一大缺陷。
方法
对于数据集 \(\boldsymbol{X}_\mathrm{PT}\in\mathcal{X}^{N_\mathrm{PT}}\),预训练的目标就是从学习过程中得到编码器 \(f_\theta:\mathcal{X}\rightarrow\mathcal{Z}\),然后将 \(f_\theta\) 用于各种各样的下游任务。
显式和深层结构约束
- 显示结构约束:如果能从隐空间 \(\mathcal{Z}\) 中的两个样本 \(\boldsymbol{z}_i\) 与 \(\boldsymbol{z}_j\) 直接推导出两者间的关系(如距离),那么该预训练过程就有显示的结构约束。
- 深层结构约束:预训练过程中所使用的信息越多(如维数),那么预训练过程所使用的结构约束越深。
目前大部分的预训练模型都无法同时保证显式与深层的结构约束,调查目前超过 90 种的预训模型,其方法可以分为以下几类:
- 完全不使用样本间的关系,例如 prompt 训练,主要用于文本生成。
- 使用显式,但浅层的监督预训练目标,例如 BERT 的 Next Sentence Prediction 训练模式。
- 使用深层,但隐式的无监督或自监督预训练目标,例如通过添加噪声的数据强化方法。
模型
因此文章设计了一种同时使用显式与深层的结构约束的预训练框架,称这种方法为结构诱导的预训练。
首先将预训练问题表示为图 \(G_\mathrm{PT}=(V,E)\),其中结点 \(V\) 表示 \(\boldsymbol{X}_\mathrm{PT}\) 中的预训练样本,\(E\) 表示预先定义的样本间关系。
接着预训练的损失函数就定义为
其中 \(\mathcal{L}_\mathrm{M}\) 为传统预训练模型所使用的损失函数,\(\mathcal{L}_\mathrm{SI}\) 是定义用于实现结构诱导目标的损失函数,使隐空间的各潜变量满足 \(G_\mathrm{PT}\) 中的边(样本间关系)。
数据
文章使用了 3 类数据用于预训练:
- Proteins:来自 Stanford tree-of-life 数据集约 150 万条蛋白序列
- Abstracts:来自 Microsoft Academic Graph 数据集约 650,000 篇的生物医学相关的文本摘要
- Networks:来自文献的 70,000 条蛋白-蛋白相互作用网络的子图
Proteins 与 Abstracts 预训练的编码器是 Transformer 架构,Networks 预训练所使用的模型是具有图同构网络(Graph Isomorphism Network, GIN)编码器的图卷积神经网络(graph convolutional neural network, GNN)。
结果
预训练模型在下游任务上的测试结果如上图所示,Δ 一列中以 ↑ 表示相对传统预训练模型性质的提升,可以看出不管是相对于 per-token 还是 per-sample 的传统预训练策略,文中提出的结构诱导的预训练方法(structure-inducing pre-training, SIPT)在各下游任务上具有更好的表现。
分析 Networks 任务得到的各种预训练模型在下游任务中微调的过程,SIPT 方法相比其他预训练方法得到的特征能够更快收敛,且在最后得到更好的效果。
结论
文章调查了多种预训练模型,分析其训练目标发现大多数都没有引入显式且深层的结构约束,文章设计了一种预训练策略 SIPT,通过预训练图 \(G_\mathrm{PT}\) 在隐空间中加入了显式且深层的结构约束,相比于传统的预训练方法,这种策略在下游任务的层次上提升上模型表现。
文章借鉴了图结构来对样本与样本间的关系建模,但文中并未对得到「显式且深层」的特征做详尽的研究,只能推测这种方法更适用于蛋白-蛋白相互作用等更关注于样本间关系的任务,还不能证明 SIPT 得到的例如分子表示比传统预训练方法得到的分子表示更好。