An Unsupervised Sentence Embedding Method by Mutual Information Maximization
背景知识
互信息(Mutual information)表示为两个随机变量X和Y的 联合概率分布 与其 边缘概率分布 之间的 Kullback–Leibler散度或相对熵 (Kullback–Leibler divergence or relative entropy )。
Abstract
BERT 在处理clustering和semantic search等特定任务场景时表现出较低效率。其原因在于,在完成每个句子对的匹配过程中都需要进行组合计算(即在处理每个句子对时都需要进行组合计算),这样的计算过程消耗大量时间。
Sentence BERT (SBERT) 目的在于通过单一句子提取其语义信息以解决该问题。
然而
实验结果呈现:我们的方法在通用的STS任务以及下游的有监督学习任务中均展现出显著优势,并且在无标签sentence embedding基准线上取得了超越性的表现。尤其在标注数据稀缺的情况下,其性能依然能够超越SBERT这一知名模型,并且,在多个任务中其实现了与基于有监督学习的方法相媲美甚至超越的效果。
1 Introduction
基于BERT的模型(Devlin et al.; Liu et al., 2019)中导出固定大小句向量最简单的方法是通过最后一层token表示的平均值或者直接采用[CLS]token对应的输出结果。SBERT研究表明直接使用这两种方法的效果并不理想,在这一前提下他们建议在NLI任务上对BERT进行进一步微调,并在多种语义相似度的任务中实现了最优性能(SOTA)。然而在标注样本不足或测试数据分布与训练集存在显著差异的情况下其表现会受到一定影响。
提出了一种通用的无监督句子表示方法,并充分利用了大规模未标注数据中的自我监督学习机制。例如 skip-thought 模型(Kiros 等人, 2015)和 FastSent 模型(Hill 等人, 2016)基于假设:即一个句子与其周围的语境具有类似的语义,并在此基础上构建了自我 supervision任务,并引导模型通过预测周围语境信息来学习生成有效的句子表征。然而这些方法在效果上仍显不足,尤其是与拥有大量标注数据的传统有 监督学习方法相比
相较于基于BERT的直接平均方法,在本研究中我们采用了更加复杂的模型架构:通过引入卷积层和mean-over-time pooling技术将BERT生成的token嵌入转换为整体的句子嵌入表示。此外,在无监督学习框架下,我们提出了最大化其对应的各个局部上下文嵌入之间的互信息这一目标函数作为训练依据。
我们的模型命名为 Info-Sentence BERT (IS-BERT) ,它在IS-BERT架构中设计了一个独特的表征生成机制。具体而言,在这一架构中,默认情况下会使用其他独立段落中的各个子区域作为负样本来进行对比学习训练。通过这一机制能够促进编码器捕捉每个独立段落的独特语义特征,并且这些独特语义特征由该独立段落中的各个子区域共同承载。这一机制能够生成更具区分性的语义嵌入向量。
评估:
- Semantic Textual Similarity (STS)
- SentEval
2 Related Work
2.1 Sentence Representation Learning
主要是两类:
无监督的句子嵌入基于未标注的句子
2.2 Representation Learning with MI
理论上,表示学习中很多生成式模型是基于 reconstruction 的,例如 auto-encoders 或者 GANs (Nowozin et al., 2016) 的思想非常接近于最大化模型输入和输出之间的互信息。尽管互信息在机器学习中具有举足轻重的位置,但是在很长一段时间内互信息很难计算,特别是在神经网络这样的高维度或者连续场景。最近,多种估计方式被提出,可以估计互信息的下界。我们的工作主要受到视觉任务中 DIM model (Hjelm et al., 2019) 的启发。
3 Model
3.1 Problem Formulation
假设我们有一个包含输入句子的集合\mathcal{X}=\{x_1,x_2,...,x_n\}。我们的目标是通过无监督学习的方式为每个输入句子x_i生成一个d维空间中的向量表示y_i。为了方便起见,我们将这一过程用参数化函数的形式进行描述:\mathcal{E}_{\Theta}: \mathcal{X} \rightarrow \mathcal{Y}其中\Theta代表模型参数。此外,在描述这一过程时,我们还使用符号\mathbb{P}来表达输入\mathcal{X}的经验分布情况。
通过增强句级全局语义特征与词级局部表征之间的互信息来提取和学习有效的句子表示。
3.2 Model Architecture

模型架构如图1所示。我们首先利用BERT将输入句子\text{x}编码为长度为l的token embedding序列h_1, h_2, \dots, h_l。接着,在这些token embedding的基础上,我们采用不同窗口大小(卷积核尺寸)的一维CNN层来提取输入句子中n-gram级别的局部上下文关系。具体而言,一个n-gram通过使用窗口大小为k的CNN生成其对应的嵌入表示c_i:
其中 h_{i:i+k-1} 表示窗口内token embedding的连接。w和b是卷积层中的可训练参数,f被定义为ReLU激活函数。通过padding技术确保输出与输入尺寸一致。
为了更好地捕获不同范围的上下文信息,我们使用了多个不同窗口大小(e.g. 1, 3, 5) 的 CNN. 一个 token 最终的表示是多个不同窗口大小 CNN 结果的拼接 。我们将长度为 l 的局部 token representations 表示为:\mathcal{F}_\theta(x) := \{\mathcal{F}_{\theta}^{(i)}(x) \in \mathbb{R}^d \}_{i=1}^l, 其中 \mathcal{F}_\theta 是包含了 BERT 和 CNN 在内编码函数,其参数为 \theta. 全局句子表示 \mathcal{E}_\theta(x)\in \mathbb{R}^d 是在 token 表示 \mathcal{F}_\theta(x) 上应用 mean-over-time 池化层得到的。池化层没有额外的可学习参数。句子表示和 token 表示都会输入一个判别网络来生成互信息估计需要的得分。
3.3 MI Maximization Learning
本文使用 Jensen-Shannon estimator (Nowozin et al., 2016; Hjelm et al., 2019)) 来估计互信息的下界。Jensen-Shannon estimator 定义为:
\hat{\mathcal{I}}_w^{JSD}(\mathcal{F}_\theta^{(i)}(x);\mathcal{E}_\theta(x)):= \\ E_{\mathbb{P}}[-sp(-T_w(\mathcal{F}_\theta^{(i)}(x),\mathcal{E}_\theta(x)))] \\ -E_{\mathbb{P}\times\tilde{\mathbb{P}}}[sp(T_w\mathcal{F}_\theta^{(i)}(x'),\mathcal{E}_\theta(x))] \tag{2}
其中 T_w:\mathcal{F}\times\mathcal{E}\rightarrow \mathbb{R} 是一种判别式神经网络模型,在该模型中将所有全局语句、嵌入表示以及局部词元嵌入作为输入参数进行处理,并输出一个分数值作为评估指标。x' 是从概率分布 \hat{\mathbb{P}}=\mathbb{P} 中采样的负样本实例。softplus激活函数表达式为 sp(z)=\log(1+e^z) ,用于将线性组合结果映射到正实数域以避免数值下溢问题。基于上述组件设计的学习目标是在整个训练数据集 \mathcal{X} 上优化参数 w 和 \theta ,使得以下目标函数得以最大化:$$
w*,\theta*=\argmax_{w,\theta}\frac{1}{|\mathcal{X}|}\left( \sum_{x\in\mathcal{X}} \sum_{i=1}^{l_x} \hat{\mathcal{I}} w{JSD}(\mathcal{F}_\theta{(i)}(x);\mathcal{E}\theta(x))\right) \tag{3}
在实际应用中, 对于一个批次中的每一个输入序列, 我们以该输入序列及其对应的局部窗口为中心的语义特征为正样本, 同时以其余输入序列在其对应窗口范围内的语义特征为负样本. 为了使生成器能够学习到蕴含丰富语义特的信息, 我们需要最大化判别器在判别真实数据与噪声数据时的表现, 即最大化$\hat{\mathcal{I}}^{JSD}$值. 这一过程能够引导生成器从各个不同的位置出发, 在同一位置上的不同窗口中提取出一致且互补的信息, 这样一来生成器能够学习到蕴含丰富语义特的信息; 此外, 这些独特的语义特征能够在所有位置上进行共享, 但与其他位置上的不同点之间存在差异性, 因此最终能够生成更加具有表征力和区分度的语义嵌入向量 ## 4 Experiment ### 4.1 Unsupervised Evaluations #### 4.1.1 Unsupervised STS  * 开箱即用的 BERT 在 STS 任务上的表现不佳;通过对比 [CLS] 标识符与平均化 BERT 表现向量的方法与平均化 GloVe 表现向量的方法相比,在 STS 任务中仍然表现更差。 * 所有监督学习方法在无监督基准上表现出色。 * 平均而言,IS-BERT-NLI 明显优于其他无监督基准;并且其性能在 5/7 的任务中超越了基于带有标签的 SNLI 和 MultiNLI 数据训练的 InferSent 模型。 * IS-BERT-NLI 的性能并非最优;最出色的模型是 USE 和 SBERT;IS-BERT-NLI 的性能稍逊一筹;这是因为它们不仅经过大量未标注文本的预训练,并且还在带有标签的任务(如 SNLI 和 MultiNLI)的数据上进行了额外的微调。 #### 4.1.2 Argument Facet Similarity  * IS-BERT-AFS 明显超越了所有无监督模型 * SBERT-NLI 和 InferSent 在有标签 NLI 数据训练的情况下在这个任务中的表现最为薄弱 * NLI corpus 存在显著差异于 AFS 数据集 * 当训练数据与目标领域数据之间存在较大差距时,在迁移有监督方法至目标领域时会遇到问题 当采用所有topics进行训练时表现最佳(达到70分以上),而采用交叉主题设置进行训练时性能有所降低,在NLI任务上的表现较著不如前者 ### 4.2 Supervised Evaluations #### 4.2.1 SentEval The IS-BERT model is extracted from each specific dataset (labeled information omitted) to generate comprehensive semantic representations, which are subsequently utilized to train advanced downstream language models. 注:此处仅将 IS-BERT 用作特征提取工具,并未配置标注信息。仅在专为该任务设计的监督学习模型中配置标注信息进行训练。  * 从整体上看,supervised学习方法在性能上超越了unsupervised学习方法。 * 该任务在六七项测试任务中表现出色,在性能上超越了其他无监督基准模型。 #### 4.2.2 Supervised STS IS- BERT-STSb (ft): 直接对句子进行编码,然后在回归目标上 fine-tune IS-BERT-STSb (ssl+ft):先用自监督目标训练,再在回归目标上 fine-tune  BERT and SBERT 在这个任务上表现差不多 IS-BERT-STSb (ssl+ft) 略微超过这两个 baseline 若将预训练的 IS-BERT 用于直接微调目标数据集,则其效果通常难以达到 SBERT 的性能水平。 ## 5 Conclusions * 提出无监督句子表示方法 IS-BERT * 训练目标:最大互信息 * IS-BERT 在无监督基准线中表现优异,在与有监督方法对比中同样表现出色。 * 研究表明,在预训练数据与目标领域分布差异较大时,SBERT 直接迁移至目标域效果欠佳。 * IS-BERT 在这种情况下表现更优得益于其无需依赖标签信息的能力,并可在目标域上实施自监督学习。 Future work: * 探索半监督方法及其跨领域迁移能力
