语义搜索是建立在自然语言处理(NLP)最新进展的新类别搜索。大规模通用语言模型已经以难以想象的方式推动了该领域的发展,不仅改进了文本分类、文本生成,还扩展到了图像和音频等其他数据模式。
Transformer模型使得文本比较更加可靠,但在大规模应用时代价高昂。
Sentence Transformer应对了这一挑战,通过微调模型并将输出汇总为一个固定维度的向量,这些向量可以使用余弦相似度和点积等距离度量进行比较。在Hugging Face Hub上有许多性能优秀且通用的嵌入模型可用。
虽然通用模型在广泛的任务上表现出色,但过去的研究表明,训练特定于领域的模型可以提高整体性能。本文介绍了PubMedBERT Embeddings,这是使用医学文献进行微调训练的句子Transformer模型。
训练数据
构建PubMedBERT Embeddings的第一步是创建训练数据集。PubMed基线数据集是公开可用的,具有各种医学文献元数据。
paperetl支持处理这些原始基线文件并将解析内容存储到数据库中。以下图像说明了paperetl的工作原理。
经过paperetl对数据进行解析后,接下来的步骤是使用所有标题构建一个BM25索引。然后从文章中随机选择一些样本。对于每篇文章,创建(标题,摘要)和(标题,相似标题)的配对。
模型训练
# Embeddings model
embeddings = models.Transformer(
"microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract-fulltext"
)
# Pooling model
pooling = models.Pooling(embeddings.get_word_embedding_dimension())
# Create sentence-transformers model
model = SentenceTransformer(modules=[embeddings, pooling])
# Training dataloader
dataloader = DataLoader(train, shuffle=True, batch_size=24)
# Training loss function
loss = losses.MultipleNegativesRankingLoss(model)
# Training evaluator
evaluator = EmbeddingSimilarityEvaluator.from_input_examples(valid)
# Train model
path = "pubmedbert-base-embeddings"
model.fit(
train_objectives=[(dataloader, loss)],
evaluator=evaluator,
evaluation_steps=500,
epochs=1
)
现在我们有一个训练数据集,我们可以创建一个模型。我们使用Sentence Transformers提供的标准训练方法。以下是使用的参数。
基础模型:PubMedBERT base
损失函数:MultipleNegativesRankingLoss
池化方法:平均池化
数据集的一部分被保留为验证集和测试集。对于验证集和测试集,创建了负样本。将随机文本对进行匹配,并给予0标签。
经过微调的模型在测试数据集上达到了96.16的Pearson相关系数得分。
评估
与MTEB排行榜上的顶级基准模型相比,PubMedBERT嵌入的性能如下所示。
以下数据集用于评估模型性能。
PubMed QA
PubMed子集
PubMed摘要
对于 PubMedQA,pqa_labeled使用了子集、train分割和一对(question, long_answer).
对于 PubMed 子集,test使用了分割和一对(title, text)
对于 PubMed 摘要,pubmed使用了子集、validation拆分和一对(article, abstract).。
评估结果如下所示。Pearson相关系数被用作评估指标。
PubMedBERT Embeddings在所有测试的数据集上具有最佳综合性能。
通用文本嵌入(gte-base)也是一个强大的表现者。这突显了针对自己的数据测试模型的重要性,因为gte-base并不是MTEB排行榜上的领先模型。基准数据集只是一个指导。
S-PubMedBert-MS-MARCO是另一个Sentence Transformers模型,但它是通过MS-MARCO进行微调。评估结果进一步证明,使用特定领域的数据集进行微调通常会获得更好的性能。
结论
本文介绍了PubMedBERT嵌入,这是一个通过医学文献进行微调的Sentence Transformers模型。它是用于医学文献领域特定语义搜索的强大基准模型。