模型:
allenai/aspire-sentence-embedder
语言: en
许可证: apache-2.0
该模型是用于建模文档之间细粒度相似性的论文中的模型:
标题: "Multi-Vector Models with Textual Guidance for Fine-Grained Scientific Document Similarity"
作者: Sheshera Mysore, Arman Cohan, Tom Hope
论文: https://arxiv.org/abs/2111.08366
Github: https://github.com/allenai/aspire
备注: 在论文的背景下,这个模型被称为cosentbert,代表科学文本的基准句子编码器。论文训练了两个版本的cosentbert,一个用于生物医学科学文本,另一个用于计算机科学文本。这个发布的模型是在Semantic Scholar Open Research Corpus (S2ORC)数据集中,通过联合所有可用的科学领域的数据进行训练的。这种训练数据的差异导致了不同的评估性能,尽管与论文中的性能接近。
模型描述: 这个模型是基于SciBERT的句子编码器,预训练用于科学文本相似性。该模型使用阅读句子的CLS标记获取单个向量来表示句子。
训练数据: 模型以共引用上下文句子集合为训练数据,在对比学习设置中引用相同的论文集合。这些句子通常可以视为释义,因为引用相同论文的共引用句子通常描述了共同引用论文的类似方面。模型在这种类型的4.3百万句子对上进行训练。在训练模型时,对比损失的负例是通过随机选择的批内负例获得的。训练时使用的一对示例句子如下:
"The idea of distant supervision has been proposed and used widely in Relation Extraction (Mintz et al., 2009; Riedel et al., 2010; Hoffmann et al., 2011; Surdeanu et al., 2012), where the source of labels is an external knowledge base."
"Distant supervision [31, 43, 21, 49] generates training data automatically by aligning texts and a knowledge base (KB) (see Fig. 1 )."
训练过程: 模型使用Adam Optimizer和学习率2e-5进行训练,采用1000个预热步骤,然后线性衰减学习率。模型训练的收敛性通过在包含共引用上下文对的预留开发集上的损失进行检查。所有使用的训练数据都是英文。
预期用途和限制: 该模型经过训练,适用于科学文本中的句子相似性任务,最适合用作句子编码器。然而,通过适当的微调,该模型也可以用于其他任务,如分类。需要注意的是,约50%的训练数据来自生物医学文本,因此在生物医学及类似领域的文本上性能可能更好。
如何使用: 可以通过transformers库将该模型用作BERT模型:
from transformers import AutoModel, AutoTokenizer aspire_sent = AutoModel.from_pretrained('allenai/aspire-sentence-embedder') aspire_tok = AutoTokenizer.from_pretrained('allenai/aspire-sentence-embedder') s='We present a new scientific document similarity model based on matching fine-grained aspects of texts.' inputs = aspire_tok(s, padding=True, truncation=True, return_tensors="pt", max_length=512) result = aspire_sent(\*\*inputs) clsrep = result.last_hidden_state[:,0,:]
或者通过sentence_transformers库:
from sentence_transformers import SentenceTransformer, models word_embedding_model = models.Transformer('allenai/aspire-sentence-embedder', max_seq_length=512) pooling_model = models.Pooling(word_embedding_model.get_word_embedding_dimension(), pooling_mode='cls') aspire_sb = SentenceTransformer(modules=[word_embedding_model, pooling_model]) clsrep_sb = sentbert_model.encode([s])
变量和指标:
由于训练该模型的论文提出了科学摘要的相似度方法,因此该模型在信息检索数据集上进行评估,其中包含基于文档级查询的数据。用于论文的数据集包括RELISH(生物医学/英文)、TRECCOVID(生物医学/英文)和CSFCube(计算机科学/英文)。这些在 github 和我们的 paper 中都有详细介绍。RELISH和TRECCOVID表示一个摘要级检索任务,即给定一个查询科学摘要,任务是检索相关的候选摘要。CSFCube提供了一个稍微不同的任务,并提供了摘要中基于句子的更细粒度的检索。该任务代表了最接近句子相似性任务的任务。
在将这个句子级模型用于摘要级检索时,我们通过查询句子和候选摘要句子之间的最小L2距离来对文档进行排名。
评估结果:
已发布的aspire-sentence-embedder模型与以下模型进行了比较: 1) all-mpnet-base-v2,训练集中有大约10亿个训练示例,2) paraphrase-TinyBERT-L6-v2,训练模型用于释义对,3) 我们论文中使用的cosentbert模型。
| | CSFCube 聚合 | CSFCube 聚合 | TRECCOVID | TRECCOVID | RELISH | RELISH |
|-------------------------------------------:|:-----------------:|:-------:|:---------:|:-------:|:------:|:-------:|
| | MAP | NDCG%20 | MAP | NDCG%20 | MAP | NDCG%20 |
| all-mpnet-base-v2 | 34.64 | 54.94 | 17.35 | 43.87 | 52.92 | 69.69 |
| paraphrase-TinyBERT-L6-v2 | 26.77 | 48.57 | 11.12 | 34.85 | 50.80 | 67.35 |
| cosentbert | 28.95 | 50.68 | 12.80 | 38.07 | 50.04 | 66.35 |
| aspire-sentence-embedder | 30.58 | 53.86 | 11.64 | 36.50 | 50.36 | 66.63 |
发布的模型在不同数据集上与我们论文中使用的按领域划分的cosentbert模型(如上所述)表现相似。