无监督学习¶
本页面包含了一系列用于学习句子嵌入的无监督学习方法。这些方法的共同点是不需要标注的训练数据。相反,它们仅从文本本身就能学习到语义上有意义的句子嵌入。
备注
无监督学习方法仍然是一个活跃的研究领域,并且在许多情况下,这些模型的表现远不如使用我们提供的`训练数据集 <https://huggingface.co/collections/sentence-transformers/embedding-model-datasets-6644d7a3673a511914aa7552>`_中的训练对模型。更好的方法是`领域自适应 <../domain_adaptation/README.md>`_,它结合了在目标领域的无监督学习和现有的标注数据。这应该能在您的特定语料库上获得最佳性能。
TSDAE¶
在我们的工作TSDAE(基于Transformer的去噪自动编码器)中,我们提出了一种基于去噪自动编码器的无监督句子嵌入学习方法:
我们向输入文本添加噪声,在我们的案例中,我们删除了文本中约60%的词语。编码器将此输入映射为固定大小的句子嵌入。然后,解码器尝试重新生成原始文本而不带噪声。之后,我们使用编码器作为句子嵌入方法。
更多信息和训练示例,请参见 TSDAE。
SimCSE¶
Gao等人在SimCSE: 简单对比学习的句子嵌入中提出了一种方法,即将同一个句子两次传递给句子嵌入编码器。由于drop-out机制,它将在向量空间中被编码到略有不同的位置。
这些嵌入之间的距离将被最小化,而同一批次中其他句子的嵌入之间的距离将被最大化。
更多信息和训练示例,请参见 SimCSE。
CT¶
Carlsson等人在使用对比张力的语义重调(CT)中提出了一种无监督方法,该方法使用两个模型:如果将相同的句子传递给模型1和模型2,那么相应的句子嵌入应获得较大的点积分数。如果传递不同的句子,那么句子嵌入应获得较低的分数。
更多信息和训练示例,请参见 CT。
CT(批次内负采样)¶
Carlsson等人提出的CT方法为两个模型提供了句子对。这可以通过使用批次内负采样来改进:模型1和模型2都编码同一组句子。我们最大化匹配索引的分数(即模型1(S_i)和模型2(S_i)),同时最小化不同索引的分数(即模型1(S_i)和模型2(S_j),其中i != j)。
更多信息和训练示例,请参见 CT_In-Batch_Negatives。
掩码语言模型(MLM)¶
BERT表明掩码语言模型(MLM)是一种强大的预训练方法。在进行微调之前,建议先在来自您领域的较大数据集上运行MLM。更多信息和训练示例,请参见 MLM。
GenQ¶
在我们的论文BEIR: 用于零样本评估信息检索模型的异构基准中,我们提出了一种通过为给定段落生成查询来学习语义搜索方法的方法。这种方法在GPL: 生成伪标签用于密集检索的无监督领域自适应中得到了改进。
我们将集合中的所有段落通过一个经过训练的T5模型传递,该模型从用户生成潜在查询。然后,我们使用这些(查询,段落)对来训练一个SentenceTransformer模型。
GPL¶
在GPL: 生成伪标签用于密集检索的无监督领域自适应中,我们展示了GenQ的改进版本,它结合了生成、负采样和使用Cross-Encoder的伪标签。这显著提高了结果。更多信息,请参见 领域自适应。
性能比较¶
在我们的论文 TSDAE 中,我们对比了不同方法在句子嵌入任务上的表现,而在 GPL 中,我们则对比了它们在语义搜索任务上的表现(给定一个查询,找到相关段落)。尽管无监督方法在句子嵌入任务上能达到可接受的表现,但在语义搜索任务中它们的表现却不尽如人意。