无监督学习

此页面包含一系列用于学习句子嵌入的无监督学习方法。这些方法的共同点是它们不需要标注的训练数据。相反,它们仅从文本本身就可以学习具有语义意义的句子嵌入。

注意

无监督学习方法仍然是一个活跃的研究领域,在许多情况下,与使用我们训练数据集合中提供的训练对的模型相比,它们的性能相当差。一个更好的方法是领域适应,您将目标领域上的无监督学习与现有标注数据相结合。这应该能为您的特定语料库提供最佳性能。

TSDAE

在我们的工作TSDAE(基于 Transformer 的去噪自编码器)中,我们提出了一种基于去噪自编码器的无监督句子嵌入学习方法

我们对输入文本添加噪声,在我们的例子中,我们删除了文本中大约 60% 的单词。编码器将此输入映射到固定大小的句子嵌入。然后解码器尝试重现不含噪声的原始文本。之后,我们使用编码器作为句子嵌入方法。

有关更多信息和训练示例,请参阅TSDAE

SimCSE

Gao 等人在SimCSE:简单对比学习句子嵌入中提出了一种方法,该方法将相同的句子两次传递给句子嵌入编码器。由于 dropout,它将在向量空间中以略微不同的位置进行编码。

这两个嵌入之间的距离将被最小化,而与同一批次中其他句子的嵌入之间的距离将被最大化。

SimCSE working

有关更多信息和训练示例,请参阅SimCSE

CT

Carlsson 等人在使用对比张力的语义重调(CT)中提出了一种无监督方法,该方法使用两个模型:如果相同的句子被传递给模型 1 和模型 2,则相应的句子嵌入应该获得较大的点积分数。如果传递的是不同的句子,则句子嵌入应该获得较低的分数。

CT working

有关更多信息和训练示例,请参阅CT

CT(批内负采样)

Carlsson 等人提出的 CT 方法将句子对提供给两个模型。这可以通过使用批内负采样来改进:模型 1 和模型 2 都对同一组句子进行编码。我们最大化匹配索引的分数(即 Model1(S_i) 和 Model2(S_i)),同时最小化不同索引的分数(即 Model1(S_i) 和 Model2(S_j),其中 i != j)。

有关更多信息和训练示例,请参阅CT_In-Batch_Negatives

掩码语言模型(MLM)

BERT 表明掩码语言模型(MLM)是一种强大的预训练方法。建议在微调之前,先在您的领域的大型数据集上运行 MLM。有关更多信息和训练示例,请参阅MLM

GenQ

在我们的论文BEIR:信息检索模型的零样本评估异构基准中,我们提出了一种通过为给定段落生成查询来学习语义搜索方法。该方法已在GPL:用于密集检索无监督领域适应的生成式伪标签中得到改进。

我们将集合中的所有段落通过一个训练好的 T5 模型,该模型从用户生成潜在查询。然后我们使用这些(查询,段落)对来训练一个 SentenceTransformer 模型。

Query Generation

有关更多信息和训练示例,请参阅GenQ。有关使用多步训练方法改进版本的详细信息,请参阅GPL

GPL

GPL:用于密集检索无监督领域适应的生成式伪标签中,我们展示了 GenQ 的改进版本,它将生成与负例挖掘和使用 Cross-Encoder 的伪标签相结合。这显著改善了结果。有关更多信息,请参阅领域适应

GPL Architecture

性能比较

在我们的论文TSDAE中,我们比较了句子嵌入任务的方法,在GPL中,我们比较了它们在语义搜索任务中的表现(给定查询,查找相关段落)。尽管无监督方法在句子嵌入任务中取得了可接受的性能,但在语义搜索任务中表现不佳。