论文题目:OntoProtein: Protein Pretraining With Gene Ontology Embedding

本文作者:张宁豫(浙江大学)、毕祯(浙江大学)、梁孝转(浙江大学)、程思源(浙江大学)、洪浩森(浙江大学)、邓淑敏(浙江大学)、连佳长(浙江大学)、张强(浙江大学)、陈华钧(浙江大学)

发表会议:ICLR 2022

论文链接:https://arxiv.org/pdf/2201.11147.pdf

代码链接:https://github.com/zjunlp/OntoProtein

一、引言

近年来,预训练模型以强大的算法效果,席卷了自然语言处理为代表的各大AI榜单与测试数据集。与自然语言类似,蛋白质的一级结构具有序列特性,这为将语言预训练模型引入蛋白质表示提供了有利条件。然而,蛋白质本质上不同于自然语言文本,其包含了大量预训练目标较难习得的生物学知识。事实上,人类科学家已经积累了海量的关于蛋白质结构功能的生物学知识。那么如何利用这些知识促进蛋白质预训练呢?本文将介绍被ICLR2022录用的新工作:OntoProtein,其提出一种新颖的融入知识图谱的蛋白质预训练方法。

二、蛋白质预训练

蛋白质是控制生物和生命本身的基本大分子,对蛋白质的研究有助于理解人类健康和发展疾病疗法。蛋白质包含一级结构,二级结构和三级结构,其中一级结构与语言具有相似的序列特性。受到自然语言处理预训练模型的启发,诸多蛋白质预训练模型和工具被提出,包括MSA Transformer[1]、ProtTrans[2]、悟道 · 文溯[3]、百度的PaddleHelix等。大规模无监督蛋白质预训练甚至可以从训练语料中习得一定程度的蛋白质结构和功能。然而,蛋白质本质上不同于自然语言文本,其包含了诸多生物学特有的知识,较难直接通过预训练目标习得,且会受到数据分布影响低频长尾的蛋白质表示。为了解决这些问题,我们利用人类科学家积累的关于蛋白质结构功能的海量生物知识,提出融合知识图谱的蛋白质预训练方法。下面首先介绍知识图谱构建的方法。

三、基因知识图谱

我们通过访问公开的基因本体知识图谱“Gene Ontology(简称Go)”,并将其和来自Swiss-Prot数据库的蛋白质序列对齐,来构建用于预训练的知识图谱ProteinKG25,该知识图谱包含4,990,097个三元组, 其中4,879,951个蛋白质-Go的三元组,110,146 个Go-Go三元组,并已全部开放供社区使用。如下图所示,基于“结构决定功能”的思想,如果在蛋白质预训练过程中显式地告诉模型什么样的结构具备什么样的功能,显然能够促进如蛋白质功能预测、蛋白质交互预测等任务的效果。

四、融入基因知识图谱的蛋白质预训练:OntoProtein

基于构建好的知识图谱,我们设计了一个特殊的蛋白质预训练模型OntoProtein。注意到在预训练输入中包含两种不同的序列:蛋白质序列和描述蛋白质功能、生物过程等的文本描述信息。因此,我们采取两路不同的编码器。对蛋白质序列我们采用已有的蛋白质预训练模型ProtBert进行编码,对文本序列我们采用BERT进行编码。为了更好地进行预训练和融合三元组知识信息,我们采用了两个优化目标。首先是传统的掩码语言模型目标,我们通过随机Mask序列中的一个Token并预测该Token。其次是三元组知识增强目标,我们通过类似知识图谱嵌入学习的方式来植入生物学三元组知识,如下公式所示:

注意到这里的事实知识分为两类不同的三元组,分别是Go-Go和蛋白质-Go,因此我们提出一种知识增强的负采样方法,以获得更有代表性的负样本提升预训练效果,采样方式如下 :

五、实验分析

我们在蛋白质测试基准TAPE,以及蛋白质蛋白质交互、蛋白质功能预测(我们参考CAFA竞赛构建了一个新的蛋白质功能预测数据集)上进行了实验。如下表所示,可以发现融合知识图谱的蛋白质预训练方法在一定程度上取得了较好或可比的性能。特别地,我们的方法没有使用同源序列比对(MSA),因此较难超越基于MSA Transformer的方法。详细的实验结果请参见论文,我们会在近期将预训练模型整理并发布到Huggingface上供社区使用。

六、小结与展望

当下蓬勃兴起的 AI for Science 正在促使以数据驱动的开普勒范式和以第一性原理驱动的牛顿范式的深度融合。基于“数据与知识双轮驱动”的学术思想,我们在本文中提出了融合知识图谱的蛋白质预训练方法OntoProtein,并在多个下游任务中验证了模型的效果。在未来,我们将维护好OntoProtein以供更多学者使用,并计划探索融合同源序列比对的知识图谱增强预训练方法以实现更优性能。

[1] MSA Transformer ICML2021

[2] ProtTrans: Towards Cracking the Language of Life’s Code Through Self-Supervised Learning TPAMI2021

[3] Modeling Protein Using Large-scale Pretrain Language Model 2021


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

点击阅读原文,进入 OpenKG 网站。

论文浅尝 - ICLR2022 | OntoProtein:融入基因本体知识的蛋白质预训练相关推荐

  1. 论文浅尝 | Data Intelligence 已出版的知识图谱主题论文

    本文转载自公众号:DI数据智能.   知识图谱被称为人工智能的基石,它的前身是语义网,由谷歌在2012年率先提出,用于改善自身的搜索业务.Data Intelligence执行主编.东南大学计算机科学 ...

  2. 论文浅尝-综述 | 基于强化学习的知识图谱综述

    转载公众号 | 人工智能前沿讲习 论文来源:https://crad.ict.ac.cn/CN/10.7544/issn1000-1239.20211264 摘要:知识图谱是一种用图结构建模事物及事物 ...

  3. 论文浅尝 - ACL2020 | IntKB: 一种交互式知识图谱补全框架

    笔记整理 | 谭亦鸣,东南大学博士 来源:  ACL 2020 链接:https://www.aclweb.org/anthology/2020.coling-main.490.pdf 资源:http ...

  4. 论文浅尝 - ICLR2020 | Pretrained Encyclopedia: 弱监督知识预训练语言模型

    论文笔记整理:陈想,浙江大学博士,研究方向为自然语言处理,知识图谱. Wenhan Xiong, Jingfei Du, William Yang Wang, Veselin Stoyanov.Pre ...

  5. 论文浅尝 - AAAI2020 | 通过知识库问答改善知识感知对话生成

    论文笔记整理:胡楠,东南大学博士. 来源:AAAI 2020 动机 现在的将外部知识整合到对话系统中的研究仍然存在一定缺陷.首先,先前的方法难以处理某些语句的主语和关系,比如当语句中的相关实体彼此相距 ...

  6. 论文浅尝 – KDD2020 | 使用图对比编码的图神经网络预训练模型

    论文笔记整理:陈名杨,浙江大学在读博士生,研究方向为知识图谱表示学习. 图表示学习是一个当前关注度较高的领域,并且有许多真实的应用.然而当前的很多图表示学习方法都是对一个领域或者某一个图训练一个模型, ...

  7. 论文浅尝 | AAAI2020 - 基于生成对抗的知识图谱零样本关系学习

    论文笔记整理:耿玉霞,浙江大学直博生.研究方向:知识图谱,零样本学习等. 来源:AAAI2020 论文链接:https://arxiv.org/pdf/2001.02332.pdf 本文是发表在AAA ...

  8. 论文浅尝 | 多内容实体和关系联合抽取的对抗训练

    链接:https://arxiv.org/pdf/1808.06876.pdf 动机 Szegedy 在 14 年发现,对于图像分类问题的神经网络,若是在输入中人为的添加很小尺度的扰动,会让已经训练好 ...

  9. 论文浅尝 - CIKM2020 | 用于推荐系统的多模态知识图谱

    论文笔记整理:王琰,东南大学硕士. 来源:CIKM 2020 链接:https://doi.org/10.1145/3340531.3411947 研究背景与任务描述 为了解决推荐系统中的数据稀疏和冷 ...

最新文章

  1. 文本编辑器左边显示行数
  2. 疫情期间在公共场所要全程佩戴口罩,不要抱有侥幸心理
  3. 计算机网络第四章-网络层复习笔记
  4. 使用 SAP WebIDE 创建 SAP Fiori Elements 应用
  5. cucumber jvm_用Cucumber JVM编写BDD测试
  6. php全部公开课,PHP公开课|这篇PHP的each()函数教学数,只为了帮你的PHP会学的更好...
  7. 栈应用_计算按运算符优先级分布的算式(代码、分析、汇编)
  8. 表单验证的初步实现和省市级联
  9. idea 使用 maven 整合 ssm 框架 实现简单的增、删、改 和 分页查询功能
  10. Day_05显示变量的值
  11. jquery文档就绪的三种书写方式
  12. SIP的几个主要标准协议
  13. 利用PMOS实现LED恒流驱动芯片的通断控制
  14. android layout.inflater,LayoutInflater.inflate详解
  15. 计算机中软件重启后没有,为什么电脑一开机软件就都没有了
  16. python写文件byte_python 将字节写入文本文件
  17. 版本控制----Git
  18. 移动页面input手机键盘中的“搜索”按键
  19. matlab 计算变异系数,变异系数法求权重matlab代码
  20. 【SU-03T离线语音模块】:学习配置使用

热门文章

  1. 将字符串编码成 GBK
  2. 二元查找树的后序遍历结果
  3. 国内MCU厂商也开始卷了
  4. 使用python game写一个贪吃蛇游戏
  5. 微电子科学与工程要学计算机吗,微电子科学与工程专业就业前景如何 有前途吗...
  6. opencv matlab三维点云,点云采样的三种方法 - 小白学视觉的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. php 日期转毫秒_【小技巧】 各种日期操作方法汇总
  8. LeetCode 2097. 合法重新排列数对(欧拉路径)
  9. python 使用 asyncio 包处理并发
  10. LeetCode 302. 包含全部黑色像素的最小矩形(BFS)