如何解读EmbeddingSimilarityEvaluator输出的pearson_cosine值?
关于STSB评估中pearson_cosine值的解读与模型关联分析
你用到的STSB数据集是专门用于评估句子相似度模型的,每个样本都带有人类标注的1-5分相似性得分(代码里已转成0-1的归一化值),模型则会计算每对句子嵌入的余弦相似度,而pearson_cosine就是这两组数据的关联指标。
pearson_cosine的含义
pearson_cosine是模型输出的余弦相似度与人类标注的相似性得分之间的皮尔逊相关系数:
- 皮尔逊系数取值范围为[-1, 1]:越接近1,说明两者的线性相关性越强;越接近0,代表几乎无线性关联;接近-1则是完全负相关。
- 你得到的0.5047属于中等强度的正相关,意思是模型算出的余弦相似度和人类对句子相似性的判断大体上同向变化,但仍存在不少偏差。
该值与模型的关联
- 这个数值直接反映模型文本嵌入的语义表征能力:数值越高,说明模型学到的嵌入越能精准匹配人类对句子语义相似性的认知,模型的语义理解能力越强。
- 你使用的
bert-base-uncased是基础预训练模型,没有针对句子相似性任务做微调,所以这个得分是基础模型的正常水平。如果在STSB数据集上对模型做微调,该皮尔逊系数通常能提升到0.8以上,模型的相似性判断能力会大幅增强。 - 输出中的
spearman_cosine是斯皮尔曼秩相关系数,衡量的是两组数据排序的一致性。将两个指标结合来看,能更全面评估模型在相似性任务上的表现。
你用到的代码示例
from sentence_transformers.evaluation import EmbeddingSimilarityEvaluator from sentence_transformers import SentenceTransformer # Use a base model embedding_model = SentenceTransformer('bert-base-uncased') # Create an embedding similarity evaluator for stsb val_sts = load_dataset('glue', 'stsb', split='validation') evaluator = EmbeddingSimilarityEvaluator( sentences1=val_sts["sentence1"], sentences2=val_sts["sentence2"], scores=[score/5 for score in val_sts["label"]], main_similarity="cosine", ) evaluator(embedding_model )
运行输出
{'pearson_cosine': 0.5046644438590742, 'spearman_cosine': 0.5677650039203331}
内容的提问来源于stack exchange,提问作者venkysmarty
相关产品推荐
相关产品推荐

