检测蛋白质-蛋白质相互作用(PPI)对于理解遗传机制、疾病发病机制和药物设计至关重要。然而,随着生物医学文献的快速增长,越来越需要自动和准确地提取PPI以促进科学知识发现。预训练语言模型,例如生成式预训练Transformer(GPT)和基于Transformer的双向编码器(BERT),已在NLP任务中显示出优势。作者使用手动管理的基准语料库评估了各种GPT和BERT模型的PPI识别性能,该语料库包含来自逻辑学习语言(LLL)的77个句子中的164个PPI。基于BERT的模型实现了最佳的整体性能,其中PubMedBERT实现了最高的精度(85.17%)和F1分数(86.47%),而 BioM-ALBERT 实现了最高的召回率(93.83%)。尽管没有针对生物医学文本进行明确的训练,但 GPT-4 以 83.34% 的精度、76.57% 的召回率和 79.18% 的 F1score 实现了与最佳BERT模型相当的性能。这些发现表明GPT模型可以有效地从文本数据中检测PPI,并具有用于生物医学文献挖掘任务的潜力。
来自:Evaluation of GPT and BERT-based models on identifying protein-protein interactions in biomedical text
目录
- 背景概述
- 方法
- 数据集
- 语言模型
- Auto-regressive Language Models
- Masked Language Models
- 为GPT定制query
- GPT-3中的温度参数优化
- 表现评估
- 结果和讨论
背景概述
PPI对于许多生物学功能至关重要,比如细胞代谢,将基因型转化为表型。了解这些相互作用可以增强对健康和疾病状态下的生物过程、pathways和networks的理解。现有各种公共PPI数据库,包括从中低通量实验收集的PPI。然而,这些资源仍然不完整,并未涵盖所有潜在的PPI。另外,全新的PPI通常在生信文本上报道。基于科学文献的快速增长,手动提取PPI已经变成一个困难的任务,我们需要一个无需人工参与的自动文本挖掘工具。
NLP是计算机科学的一个重点领域,并越来越多应用于各个领域,包括近年来经历了数据快速增长的生物医学研究。生信关系抽取是一种NLP方法,旨在识别生物医学文本中两个或多个实体之间的关系,用于支持生信文本的自动分析。深度学习的进步,例如CNN和RNN以及 NLP的进步使得生物医学文本挖掘能够成功地发现蛋白质之间的相互作用。预训练大型神经语言模型已使得许多NLP问题得到实质性改进。近年来,transformer架构在各种NLP任务中取得了最先进的成果,包括生物医学领域的关系提取。
随后,出现了基于 transformer 的模型,如BERT,一种掩码语言模型。这些模型称为大型语言模型LLM,专注于理解语言和语义。LLM在大量数据上进行了预训练,可以针对各种任务进行微调。最近的研究表明,LLM在上下文零样本和少样本学习、分析、生成和理解人类语言方面表现出色。LLM的海量数据处理能力可用于识别文本元素之间的联系和趋势。
另一种LLM是GPT,GPT-3由OpenAI开发,具有大规模预训练、零和少样本学习、上下文感知、创造力和自适应性等优势。OpenAI的ChatGPT是GPT模型的3.5版本,展示了分析和处理文本数据的巨大潜力。最近推出了GPT-4,能够在各种创意和技术写作任务中与用户进行制作、修改和合作,例如歌曲创作、剧本创作和模仿用户写作风格。GPT模型的进步,从GPT-3到GPT-4,展示了NLP的快速进步,并开辟了广泛的应用领域。
目前已经发表了几项研究,评估GPT模型在各种标准化测试中解决问题的性能,并且已经表明它们能够实现与人类相当甚至更好的性能,并且能够通过专业的标准化测试。然而,目前尚未进行任何研究来评估GPT模型可用于从生物医学文本中提取PPI。在这里,作者对多个GPT模型的PPI识别性能进行了全面评估,并将其与用于关系提取的最先进的基于 BERT的模型进行比较。
方法
数据集
作者使用了LLL语料库,其中包含77个句子中的164个PPI。LLL语料库是为2005年逻辑学习语言LLL05挑战创建的数据集。它包含枯草芽孢杆菌(Bacillus subtilis,一种细菌)中手动标记的基因/蛋白质相互作用,句子在XML文件中提供。
LLL不包含无相互作用关系的实体对,这影响BERT-based方法的训练,为了解决这个问题,作者使用每个句子中标识的实体生成了所有可能的实体对组合。因此,在一个句子中用 n n n个蛋白质实体可以生成总共 C ( n , 2 ) C(n,2) C(n,2)个实体对,然后,如果在LLL中报告了相互作用对,将其标记为正样本,将其余的标记为负样本。
作者还应用了基本的预处理步骤,通过删除标点符号、纯数字字符串和空格,并将所有字母转换为小写来确保捕获所有实体,从而产生标准化的蛋白质名称。对于基于BERT的模型,将实体对中的实体名称替换为PROTEIN1和PROTEIN2关键字。
语言模型
作者评估了三个自回归语言模型GPT-3、GPT-3.5 via ChatGPT 和 GPT4 via ChatGPT,以及七个掩码语言模型Bio_ClinicalBERT、BioBERT、BioM-ALBERT-xxlarge、BioM-BERT-PubMed- PMC-Large、PubMedBERT、SciBERT_scivocab_cased 和 SciBERT_scivocab_uncased。
Auto-regressive Language Models
GPT是OpenAI在2018年基于Transformer架构开发的语言模型。Transformer 模型由一个生成隐藏表示的编码器和一个生成输出序列的解码器组成。自注意力机制使神经网络能够确定输入元素的重要性,使其成为语言翻译、文本分类和文本生成的理想选择。GPT架构包括具有自注意机制的层、全连接层和层归一化,可以防止训练期间的过拟合。
图1展示了OpenAI在过去几年中发布的GPT模型的历史。GPT的第一个版本GPT-1有1.17亿个参数。它是使用包括维基百科在内的大量文本数据进行训练的。GPT-2比其前身GPT-1有15亿个参数的显著提升。它是在包括网页和书籍在内的更大的文本数据语料库上进行训练的,可以产生更连贯、更令人信服的语言。GPT-3使用1750亿个参数进行训练,包括庞大的文本数据语料库,包括网页、书籍和学术文章。GPT-3在语言翻译、聊天机器人开发和内容生成等一系列NLP任务中表现出色。
2022年11月30日,OpenAI发布了ChatGPT,这是一种引人入胜的对话工具,能够基于文本数据产生与上下文相关的响应。ChatGPT在GPT-3.5系列上进行了微调,其中包括以下型号:GPT-3.5-turbo-0301、code-davinci-002、text-davinci002和text-davicin-003。在作者的研究中,最新的gpt-3.5-turbo-0301作为gpt-3.5。2023年3月14日,OpenAI推出了迄今为止最先进、最前沿的系统GPT-4,该系统通过产生更可靠的结果而超越了其前身。表1总结了GPT模型的架构和参数数量,包括的GPT-3、ChatGPT和GPT-4。
- 图1:GPT(generative pre-trained transformer),API(application programming interface)。
- 表1:GPT型号规格。
Masked Language Models
作者研究了包括六种不同的基于BERT的模型:
- BioBERT:一个基于PubMed摘要和PubMed Central(PMC)全文文章预先训练的BERT模型,用于不同的NLP任务。BioBERT v1.0使用了超过20万篇摘要和超过27万篇PMC文章。扩展版BioBERT v1.1使用>1M PubMed摘要进行了微调。
- SciBERT:在随机语义学者文章(random Semantic Scholar articles)上预训练的BERT模型。在对文章进行预训练时,使用了整个文本。
- Bio-ClinicalBERT:一个微调的BioBERT v1.0模型(PubMed 200K+PMC 270K),包含MIMIC-III v1.4的所有注释,MIMIC-IIII v1.4是一个电子健康记录数据库,包含约8.8亿个单词。
- PubMedBERT:一个在BLURB(生物医学语言理解与推理基准)上训练的BERT模型。
- BioM-ALBERTxxlarge:在PubMed摘要上预训练的BERT模型,具有与ALBERTxxLarge相同的架构。
- BioM-BERTLarge:与BERTLarge具有相同架构的BERT模型。
为GPT定制query
为了从LLL语句中提取PPI,作者利用OpenAI的应用程序编程接口(API)访问GPT-3,而GPT-3.5和GPT-4是通过ChatGPT Plus的web界面访问的。作者仔细设计了API和web界面所需的prompts,以最少的后处理步骤生成稳定的interaction。LLL数据包括44篇出版物中的77句话,共164个PPI。作者从数据集中提取了必要的信息,并使用文档级折叠将其分为十个fold。对于每个fold,提供了句子ID和句子作为输入以及query,如表2所示。为了评估涵盖这77个句子的生物医学实体词典的影响,还执行了两个额外的查询,即在上述预处理之后创建的原始蛋白质名称和标准化蛋白质名称。
Query type | Query |
---|---|
Base: without protein names | 从给定的句子中找出所有可能的PPI,并以表格形式提供结果,比如列为(句子ID|蛋白质1|蛋白质2|蛋白质-蛋白质相互作用)。确保表格每一行都包含一对蛋白质-蛋白质相互作用,即使从一句话中可以识别出多对。 |
With protein names | 从给定的句子中找出所有可能的蛋白质-蛋白质相互作用,并以表格形式提供结果,列为(句子ID|蛋白质1|蛋白质2|蛋白质-蛋白质相互作用)。确保每一行都包含一对蛋白质-蛋白质相互作用,即使从一句话中可以识别出多对。以下是蛋白质名称供您参考:[‘KinC’ ‘KinD’ ‘sigma(A)’ ‘Spo0A’ ‘SigE’ ‘SigK’ ‘GerE’ ‘sigma(F)’ ‘sigma(G)’ ‘SpoIIE’ ‘FtsZ’ ‘sigma(H)’ ‘sigma(K)’ ‘gerE’ ‘EsigmaF’ ‘sigmaB’ ‘sigmaF’ ‘SpoIIAB’ ‘SpoIIAA’ ‘SigL’ ‘RocR’ ‘sigma(54)’ ‘E sigma E’ ‘YfhP’ ‘SpoIIAA-P’ ‘sigmaK’ ‘sigmaG’ ‘ComK’ ‘FlgM’ ‘sigma X’ ‘sigma B’ ‘sigma(B)’ ‘sigmaD’ ‘SpoIIID’ ‘sigmaW’ ‘PhoP~P’ ‘AraR’ ‘sigmaH’ ‘yvyD’ ‘ClpX’ ‘Spo0’ ‘RbsW’ ‘DnaK’ ‘sigmaE’ ‘sigma W’ ‘sigmaA’ ‘sigma(X)’ ‘CtsR’ ‘Spo0A~P’ ‘spoIIG’ ‘ydhD’ ‘ykuD’ ‘ykvP’ ‘ywhE’ ‘spo0A’ ‘spoVG’ ‘rsfA’ ‘cwlH’ ‘KatX’ ‘katX’ ‘rocG’ ‘yfhS’ ‘yfhQ’ ‘yfhR’ ‘sspE’ ‘yfhP’ ‘bmrUR’ ‘ydaP’ ‘ydaE’ ‘ydaG’ ‘yfkM’ ‘sigma F’ ‘cot’ ‘sigK’ ‘cotD’ ‘sspG’ ‘sspJ’ ‘hag’ ‘comF’ ‘flgM’ ‘ykzA’ ‘CsbB’ ‘nadE’ ‘YtxH’ ‘YvyD’ ‘bkd’ ‘degR’ ‘cotC’ ‘cotX’ ‘cotB’ ‘sigW’ ‘tagA’ ‘tagD’ ‘tuaA’ ‘araE’ ‘sigmaL’ ‘spo0H’ ‘sigma G’ ‘sigma 28’ ‘sigma 32’ ‘spoIVA’ ‘PBP4*’ ‘RacX’ ‘YteI’ ‘YuaG’ ‘YknXYZ’ ‘YdjP’ ‘YfhM’ ‘phrC’ ‘sigE’ ‘ald’ ‘kdgR’ ‘sigX’ ‘ypuN’ ‘clpC’ ‘ftsY’ ‘gsiB’ ‘sigB’ ‘sspH’ ‘sspL’ ‘sspN’ ‘tlp’] |
With normalized protein names | 从给定的句子中找出所有可能的蛋白质-蛋白质相互作用,并以表格形式提供结果,列为(句子ID|蛋白质1|蛋白质2|蛋白质-蛋白质相互作用)。确保每一行都包含一对蛋白质-蛋白质相互作用,即使从一句话中可以识别出多对。以下是蛋白质名称供您参考:[‘kinc’ ‘kind’ ‘sigmaa’ ‘spo0a’ ‘sige’ ‘sigk’ ‘gere’ ‘sigmaf’ ‘sigmag’ ‘spoiie’ ‘ftsz’ ‘sigmah’ ‘sigmak’ ‘esigmaf’ ‘sigmab’ ‘spoiiab’ ‘spoiiaa’ ‘sigl’ ‘rocr’ ‘sigma54’ ‘esigmae’ ‘yfhp’ ‘spoiiaa-p’ ‘comk’ ‘flgm’ ‘sigmax’ ‘sigmad’ ‘spoiiid’ ‘sigmaw’ ‘phop~p’ ‘arar’ ‘yvyd’ ‘clpx’ ‘spo0’ ‘rbsw’ ‘dnak’ ‘sigmae’ ‘ctsr’ ‘spo0a~p’ ‘spoiig’ ‘ydhd’ ‘ykud’ ‘ykvp’ ‘ywhe’ ‘spovg’ ‘rsfa’ ‘cwlh’ ‘katx’ ‘rocg’ ‘yfhs’ ‘yfhq’ ‘yfhr’ ‘sspe’ ‘bmrur’ ‘ydap’ ‘ydae’ ‘ydag’ ‘yfkm’ ‘cot’ ‘cotd’ ‘sspg’ ‘sspj’ ‘hag’ ‘comf’ ‘ykza’ ‘csbb’ ‘nade’ ‘ytxh’ ‘bkd’ ‘degr’ ‘cotc’ ‘cotx’ ‘cotb’ ‘sigw’ ‘taga’ ‘tagd’ ‘tuaa’ ‘arae’ ‘sigmal’ ‘spo0h’ ‘sigma28’ ‘sigma32’ ‘spoiva’ ‘pbp4*’ ‘racx’ ‘ytei’ ‘yuag’ ‘yknxyz’ ‘ydjp’ ‘yfhm’ ‘phrc’ ‘ald’ ‘kdgr’ ‘sigx’ ‘ypun’ ‘clpc’ ‘ftsy’ ‘gsib’ ‘sigb’ ‘ssph’ ‘sspl’ ‘sspn’ ‘tlp’] |
- 表2:GPT-3(API)、GPT-3.5(ChatGPT)和GPT-4(ChatGPT)提示中包含的查询。
GPT-3中的温度参数优化
OpenAI的API允许调整GPT中的“温度”参数,这决定了生成模型的贪婪程度或创造性。参数范围在0(最不具创造性)和1(最具创造性)之间。作者使用OpenAI API和11个温度(最小值=0,最大值=1,增量=0.1)探讨了该参数在PPI识别中的影响。0.1的温度证明了GPT-3的最高整体性能,因此用于这项研究。
表现评估
为了确保每个fold的一致性,从三次单独的运行中获得GPT-3、GPT-3.5和GPT-4的输出,并获得它们的评估性能的平均值。在每次提示后刷新浏览器,以防止ChatGPT记住以前的提示。
对于基于BERT的模型,在10倍交叉验证设置中对这些模型进行了微调,在该设置中,fold是在文档级别创建的。该策略采用了文档级折叠拆分,确保一个文档中的句子仅在训练或测试集中使用,以避免过拟合。
结果和讨论
作者使用具有相同10倍设置的LLL数据集对基于GPT和BERT的模型进行了彻底比较,以保持所有模型的一致性。对GPT模型的查询是在三次单独的运行中完成的。
图2说明了访问GPT-3 API及其输出的Python代码段。预测的interaction pairs与相应的句子ID一起返回。
- 图2:GPT API代码和输出。图A为用于访问OpenAI API的Python代码段。图B为用于fold9的GPT-3示例输出。
与GPT-3不同,GPT-3.5和GPT-4是通过名为ChatGPT Plus的web界面访问的,因为在该研究期间,API访问有限。因此用图3描述GPT-4的示例输入和输出。
- 图3:GPT-4的示例输入和输出,通过ChatGPT-Plus web界面实现。
表3总结了16个模型的PPI识别性能,包括每个GPT版本的三种变体。一般来说,基于BERT的模型优于GPT;然而,当提供蛋白质名称时,GPT,特别是GPT-4,表现出与性能最好的基于BERT的模型相当的性能。
总的来说,无论是否提供蛋白质名称,GPT-4在所有版本的GPT模型中表现最好。然而,就精度而言,GPT-3.5的性能高于GPT-4,得分为79.11%,而GPT-4的得分为73.97%。最初,基本GPT模型的精度低于大多数基于BERT的模型。然而,当提供蛋白质名称时,GPT模型的精度显著提高,接近性能最好的PubMedBERT模型,该模型的精度达到85.17%。具体而言,提供了蛋白质名称的GPT-4模型实现了83.71%的精度。
- 表3:基于BERT和GPT的模型在LLL数据集上的PPI评估结果。