当在一个利基数据集上微调的句子转换器在一般的语义相似性任务中表现不佳时,主要原因是领域过拟合。该模型调整其嵌入以优先考虑利基数据特有的模式,从而失去其最初拥有的更广泛的语言理解能力。例如,在医学文本上训练的模型可能学会强调临床术语或罕见的缩写,使其在识别日常短语方面效果较差。原始模型的优势——跨不同上下文进行泛化——因为微调缩小了其焦点而降低。这类似于专门在猫上训练图像分类器并期望它识别狗;该模型变得过度专业化。
第二个因素是训练目标或损失函数的改变。句子转换器通常使用对比损失(例如,MultipleNegativesRankingLoss)进行预训练,以最大化语义相关对之间的相似性,并最小化不相关对之间的相似性。如果您的微调过程改变了损失函数或超参数(例如,三元组损失中的边距值),则该模型可能会针对不同的相似性定义进行优化。例如,使用具有较大边距的三元组损失可能会强制嵌入积极地分散开来,从而破坏一般任务所需的微妙关系。类似地,如果您的利基数据集具有不平衡或嘈杂的标签(例如,弱相似对被错误标记为强匹配),则该模型会学习到不通用的不正确关联。
最后,在微调期间减少接触多样化的语言结构可能会降低性能。像 SBERT 这样的预训练模型是在庞大且多样化的数据集(例如,维基百科、论坛、新闻)上训练的,使它们能够处理诸如同义词、多义词和语法等细微之处。如果您的利基数据集缺乏这种多样性,则该模型的泛化能力会降低。例如,在法律合同上微调的模型可能难以处理诸如“break a leg”(习语)与“break a bone”(字面意思)之类的会话短语。此外,如果利基数据很小,该模型可能会记住示例而不是学习可转移的特征。为了缓解这种情况,请考虑混合训练:将您的利基数据与通用示例的子集结合起来,以在适应目标领域的同时保留更广泛的语言知识。