返回介绍

数学基础

统计学习

深度学习

工具

Scala

三十五、BERT-Whitening [2021]

发布于 2023-07-17 23:38:25 字数 42206 浏览 0 评论 0 收藏 0

  1. sentence embedding 已被证明不能很好地捕获句子的基本语义,因为之前的工作表明,word representations of all words 都不是各向同性isotropic 的:它们在方向上不是均匀分布的。相反,它们在向量空间中占据一个狭窄的锥体,因此是各向异性anisotropic 的。

    • 《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》 已经证明,来自 pre-trained modelcontextual word embeddings 是如此的各向异性,任何两个 word embedding 的余弦相似度平均为 0.99

    • BERT-Flow 进一步调查发现,BERT sentence embedding 空间存在两个问题,即 word frequency biases the embedding space 、以及低频词稀疏地分散开,这为直接使用 BERT sentence embedding 来计算相似度带来了困难。

    为了解决上述问题,《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》 阐述了导致各向异性问题的理论原因,这个原因在预训练的模型中观察到。《Representation degeneration problem in training natural language generation models》 设计了一种新的方法,通过正则化 word embedding matrix 来缓解 degeneration 问题。最近提出的 BERT-flow 通过 normalizing flowBERT sentence embedding distribution 转化为平滑的、各向同性的高斯分布,这是一个由神经网络参数化的可逆函数。

    在论文 《Whitening Sentence Representations for Better Semantics and Faster Retrieval》 中,作者没有像以前的尝试那样设计一个复杂的方法,而是发现一个简单而有效的后处理技术,白化 whitening ,足以解决 sentence embedding 的各向异性问题。具体而言,作者将sentence vectors 的平均值转化为 0 、将协方差矩阵转化为单位矩阵。此外,论文还引入了降维策略,以促进白化操作,进一步提高效果。

    7 个标准的语义文本相似性 benchmark 数据集上的实验结果表明,论文的方法可以普遍提高模型性能,并在大多数数据集上达到SOTA 的效果。同时,通过加入降维操作,论文的方法可以进一步提高模型性能,并自然地优化内存存储、加快检索速度。

    论文贡献如下:

    • 论文探讨了 BERT-based sentence embedding 在相似性匹配任务中表现不佳的原因,即它不在标准正交基 standard orthogonal basis 上。

    • 论文提出了一种后处理方法,白化,将 BERT-based sentence embedding 转化为标准正交基,同时降维。

    • 在七个语义文本相似性任务上的实验结果表明,论文的方法不仅可以显著提高模型性能,而且还可以减少向量的维度。

  2. 相关工作:

    • 在特定的 NLP 上下文中,已经出现了关于解决各向异性问题的早期尝试。

      • 《A simple but tough-to-beat baseline for sentence embeddings》 首先为整个 semantic textual similarity dataset 计算 sentence representation ,然后从这些 sentence representation 中提取 top direction ,最后将 sentence representation 投射到 top direction 之外(即,仅保留 tail direction)。通过这样做, top direction 将固有地编码整个数据集的 common information

      • 《All-but-the-top: Simple and effective postprocessing for word representations》 提出了一种后处理操作:在具有正值和负值的 dense low-dimensional representation 上,他们从 word vectors 中消除了 common mean vector 、和一些 top dominating directions ,这样就使处理后的representation 更加强大。

      • 《Representation degeneration problem in training natural language generation models》 提出了一种新颖的正则化方法来解决在训练自然语言生成模型中的各向异性问题。他们设计了一种新颖的方法,通过正则化 word embedding matrix 来缓解 degeneration 问题。由于观察到 word embedding 被局限在一个狭窄的锥体中,所提出的方法直接增加了锥体的孔径大小,这可以简单地通过降低 individual word embedding 之间的相似度来实现。

      • 《How contextual are contextualized word representations? comparing the geometry of BERT, ELMo, and GPT-2 embeddings》 研究了 contextual contextualized word representation 的内在机制。他们发现,ELMoBERTGPT-2upper layerslower layers 产生更加 context-specificrepresentation 。 这种 context-specificity 的增加总是伴随着各向异性的增加。

      • 《On the sentence embeddings from pre-trained language models》 提出了 BERT-flow ,它通过用无监督目标学到的 normalizing flow 将各向异性的 sentence embedding distribution 转变为平滑的、各向同性的高斯分布。

    • 谈到 SOTAsentence embedding 方法,以前的工作发现 SNLI 数据集适合训练 sentence embedding

      • 《Learning semantic textual similarity from conversations》 提出了一种使用 siamese DAN networksiamese transformer network 对来自 Reddit 的对话进行训练的方法,该方法在 STS benchmark 数据集上取得了良好效果。

      • 《Universal sentence encoder》 提出了一个所谓的 Universal Sentence Encoder ,它训练了一个transformer 网络,并通过在SNLI 数据集上的训练来 augment 无监督学习。

      • 在预训练方法的时代,《Real-time inference in multi-sentence tasks with deep pretrained transformers》 解决了来自 BERTcross-encoder 的运行时间开销,并提出了一种方法(poly-encoders ),利用注意力计算 context vectors 和预先计算的 candidate embeddings 之间的分数。

      • 《SBERT: Sentence embeddings using Siamese BERT networks》 是对 pretrained BERT network 的修改,使用 siamese networktriplet network 结构来推导出有语义的 sentence embedding ,可以使用 sentence embedding 的余弦相似度来计算句子之间的相似性。

35.1 方法

  1. 通常我们计算 sentence embedding 的余弦相似度,从而衡量句子之间的相似性。一个问题是:余弦相似度对输入向量做了什么假设?换句话说,什么前提条件适合用余弦相似度进行比较?

    我们通过研究余弦相似度的几何原理来回答这个问题。给定两个向量xRd$ \mathbf{\vec x}\in \mathbb R^d $ 和yRd$ \mathbf{\vec y}\in \mathbb R^d $ ,它们之间的余弦相似度定义为:

    (20)cos(x,y)=i=1dxi×yii=1dxi2×i=1dyi2

    然而,只有当坐标基为标准正交基时,上式才成立。BERT-Flow 验证了 BERT sentence embedding 已经包含了足够的语义,尽管它没有被正确利用。在这种情况下,如果根据上式来计算语义相似性的余弦值时,sentence embedding 表现不佳,原因可能是 sentence vector 所属的坐标基不是标准正交基。从统计学的角度来看,我们可以推断,当我们为一组向量选择 basis 时,应该保证每个基向量都是独立的、统一的。如果这组基是标准正交基,那么相应的一组向量就应该显示出各向同性。

    总而言之,上述启发式假设阐述了:如果一组向量满足各向同性,我们可以认为它是由标准正交基派生出来的,其中也表明我们可以通过上述公式计算余弦相似度。否则,如果它是各向异性的,我们需要对 sentence embedding 进行转换,以强制其成为各向异性,然后使用上述公式来计算余弦相似性。

    BERT-Whitening 认为各向同性问题并不是 embedding 向量带来的,而是空间的基向量带来的(基向量不是标准正交基)。

  2. Whitening TransformationBERT-flow 通过采用flow-based 的方法来解决上述假设。我们发现,利用机器学习中普遍采用的白化操作,也可以取得相当的收益。

    众所周知,关于标准正态分布的均值为零、协方差矩阵为单位矩阵。因此,我们的目标是将sentence vector 的平均值转换成 0 、将协方差矩阵转换成单位矩阵。假设我们有一组 sentence embedding{xi}i=1N$ \left\{\mathbf{\vec x}_i\right\}_{i=1}^{N} $ ,然后我们进行线性变换,使得变换后的 sentence embedding 满足均值为零、协方差矩阵为单位矩阵:

    (21)x~i=(xiμ)W

    该变换实际上对应于机器学习中的白化 whitening 操作,其中μ=1Ni=1NxiR1×d$ \vec\mu = \frac {1}{N} \sum_{i=1}^N \mathbf{\vec x}_i\in \mathbb R^{1\times d} $ ,d$ d $ 为原始的维度,WRd×d$ \mathbf W\in \mathbb R^{d\times d} $ 为投影矩阵。

    注意,这里的向量为 ”行向量“。

    最困难的部分是求解矩阵W$ \mathbf W $ 。我们将{xi}i=1N$ \left\{\mathbf{\vec x}_i\right\}_{i=1}^{N} $ 的协方差矩阵表示为:

    (22)Σ=1Ni=1N(xiμ)(xiμ)Rd×d

    变换之后的协方差矩阵为Σ~=WΣW$ \tilde{\mathbf\Sigma} = \mathbf W ^\top\mathbf\Sigma\mathbf W $ ,因此WΣW=I$ \mathbf W ^\top\mathbf\Sigma\mathbf W = \mathbf I $ ,因此:

    (23)Σ=(W)1W1=(W1)W1

    因此,协方差矩阵是一个正定对称矩阵,满足如下形式的 SVD 分解:

    (24)Σ=UΛU

    其中:U$ \mathbf U $ 为正交矩阵,Λ$ \mathbf\Lambda $ 为对角矩阵且对角线元素都是正的。

    正交矩阵:各行是单位矩阵且两两正交;各列是单位矩阵且两两正交,即UU=UU=I$ \mathbf U\mathbf U^\top = \mathbf U^\top\mathbf U = \mathbf I $ 。

    W1=ΛU$ \mathbf W^{-1} =\sqrt{\mathbf\Lambda}\mathbf U^\top $ ,则我们可以得到解:W=UΛ1$ \mathbf W =\mathbf U\sqrt{\mathbf\Lambda^{-1}} $ 。

    W1W=WW1=I$ \mathbf W^{-1}\mathbf W = \mathbf W\mathbf W^{-1} = \mathbf I $ 。

  3. 降维:众所周知,对角矩阵Λ$ \mathbf\Lambda $ 的每个对角线元素衡量的是该元素所在的一维数据的变化。如果对角线元素的值很小,则代表该维度特征的变化也很小,不重要,甚至接近于常数。因此可以进行降维从而去除这个维度特征,使得原始的 sentence vector 被嵌入到一个较低维度的空间中。这样可以使余弦相似度的结果更加合理,并自然地加快向量检索的速度,因为检索速度与向量维度成正比。

    事实上,从奇异值分解得出的对角矩阵Λ$ \mathbf\Lambda $ 中的元素已经按降序排序了。因此,我们只需要保留W$ \mathbf W $ 的 top k 列就可以达到这种降维效果,这在理论上等同于主成分分析 Principal Component Analysis: PCA 。这里,k$ k $ 是一个超参数。我们将整个转换工作流程称为 Whitening-k

  4. Whitening-k Workflow 算法:

    • 输入:已有的 embedding 集合{xi}i=1N$ \left\{\mathbf{\vec x}_i\right\}_{i=1}^{N} $ ,降维之后的维度k$ k $

    • 输出:转换后的 embedding{x~i}i=1N$ \left\{\tilde{\mathbf{\vec x}}_i\right\}_{i=1}^{N} $

    • 算法步骤:

      • 根据{xi}i=1N$ \left\{\mathbf{\vec x}_i\right\}_{i=1}^{N} $ 计算均值μ$ \vec\mu $ 和协方差矩阵Σ$ \mathbf\Sigma $ 。

      • Σ$ \mathbf\Sigma $ 进行 SVD 分解,从而得到U,Λ$ \mathbf U,\mathbf\Lambda $ :Σ=UΛU$ \mathbf\Sigma = \mathbf U\mathbf\Lambda \mathbf U^\top $ 。

      • 计算W=(UΛ1)[:,:k]$ \mathbf W =\left(\mathbf U\sqrt{\mathbf\Lambda^{-1}}\right)[:,:k] $ 。

      • 对每个xi$ \mathbf{\vec x}_i $ 计算:x~i=(xiμ)W$ \tilde{\mathbf{\vec x}}_i = (\mathbf{\vec x}_i - \vec\mu)\mathbf W $ 。

    该算法只能作为后处理从而优化现有 sentence embedding 集合,无法处理 unseensentence embedding 。这是因为 SVD 作用在现有的 sentence embedding 集合所对应的均值、协方差矩阵上。

    BERT-Flow 可以作用到 unseensentence embedding 上,因为 BERT-Flow 学习的是 embedding 空间到高斯空间的一个可逆映射。

  5. 计算复杂度:均值μ$ \vec\mu $ 和协方差矩阵Λ$ \mathbf\Lambda $ 都可以被递归地计算:

    (25)μn+1=nn+1μn+1n+1xn+1Σn+1=nn+1Σn+1n+1(xn+1μ)(xn+1μ)

    因此,计算μ$ \vec\mu $ 和Λ$ \mathbf\Lambda $ 的空间复杂度都是O(1)$ O(1) $ ,时间复杂度都是O(N)$ O(N) $ 。

    由于ΣRd×d$ \mathbf \Sigma \in \mathbb R^{d\times d} $ ,通常是一个很小的规模,因此对它进行 SVD 分解的时间复杂度几乎可以忽略不计。

35.2 实验

  1. 为了我们的方法的有效性,我们提出了在多种配置下与语义文本相似性(semantic textual similarity: STS)任务相关的各种任务的实验结果。

  2. 数据集:类似于 SBERT,我们在没有任何 specific training data 的情况下,将模型性能与 STS 任务的 baseline 进行比较。评估的数据集包括:STS 2012-2016 tasksSTS benchmarkSICK-Relatedness dataset 一共七个数据集。对于每个sentence pair,这些数据集提供了一个标准的语义相似度指标,范围从 05

    我们采用 sentence embeddings 的余弦相似度和 gold labels 之间的 Spearman’s rank correlation ,因为 SBERT认为它是 STS 任务中最合理的指标。评估过程与 BERT-flow 保持一致:我们首先将每个原始句子文本编码为sentence embedding ,然后计算 input sentence embedding pairs 之间的余弦相似度来作为我们预测的相似度分数。

  3. baseline

    • 无监督的 STS

      • Avg. GloVe embeddings:采用 GloVe 作为 sentence embedding

      • Avg. BERT embeddingsBERT CLS-vector:使用原始 BERT embedding 的均值、或者 CLS-tokenoutput

    • 监督的 STS

      • USEUniversal Sentence Encoder,其中用 Transformer 取代了 LSTM

      • SBERT-NLISRoBERTa-NLI:在 NLI 组合数据集(包含 SNLIMNLI)上用 SBERT 训练方法来训练的 BERTRoBERTa

  4. 实验配置:由于 BERTflow( NLI/target) 是我们要比较的主要 baseline ,所以我们基本上与他们的实验配置和符号保持一致。具体来说:

    • 我们在实验中也同时使用 BERT_baseBERT_large

    • 我们选择-first-last-avg作为我们的默认配置,因为与只对最后一层取平均相比,对 BERT 的第一层和最后一层取平均可以稳定地实现更好的性能。

    • 我们利用完整的target 数据集(包括训练集、验证集和测试集中的所有句子,但不包括所有标签)来计算白化参数W$ \mathbf W $ 和μ$ \vec\mu $ 。这些模型被记做-whitening(target)

      此外,-whitening(NLI) 表示白化参数是在NLI 语料库中获得的。 -whitening-256(target/NLI)-whitening-384(target/NLI) 表示通过我们的白化方法,输出的embedding size 分别(从 768 维)降维到 256384

      实验中发现:降维之后的效果可能更好。

  5. 没有 NLI 监督的结果如下表所示:

    虽然没有 NLI 监督信息,但是仍然有 NLI 的样本数据(而没有 label)。

    • 原始的 BERT sentence embeddingGloVe sentence embedding毫无悬念地获得了最差的性能。

    • BERT_base 下,我们的方法(具有 256 维的 sentence embedding)一直优于BERT-flow,并在 STS-B, STS-12, STS-13, STS-14, STS-15 数据集上分别达到了 SOTA 效果。

    • BERT_large 下,如果将 sentence embedding的维度设置为 384,就会取得更好的结果。与 BERT-flow 相比,我们的方法在大多数数据集上仍然获得了有竞争力的结果,并在 STS-B, STS-13, STS-14 数据集上达到了 SOTA 效果。

  6. NLI 监督的结果如下表所示,其中 SBERT_baseSBERT_large 是通过 SBERT 中的方法在有监督标签的 NLI 数据集上训练的。

    • 我们的 SBERT_base-whiteningSTS-13, STS-14, STS-15, STS-16 任务上的表现优于 BERT_base-flow

    • 我们的 SBERT_large-whiteningSTS-B, STS-14, STS-15, STS-16 任务上的表现优于 BERT_large-flow

    这些实验结果表明,我们的白化方法可以进一步提高 SBERT 的性能,尽管它是在 NLI 数据集的监督下训练的。

  7. 维度k$ k $ 的影响:维度k$ k $ 是一个超参数,它能以较大的幅度影响我们的模型的性能。因此,我们进行了实验,测试模型的 Spearman 相关系数与维度k$ k $ 的关系。下图是 BERT_base embeddingBERT_large embedding 下模型性能的变化曲线。对于大多数任务来说,将 sentence vector 的维度降维到三分之一是一个相对最优的解决方案。

    • Table 1SICK-R 结果中,虽然我们的 BERT_base-whitening-256(NLI) 不如 BERT_base-flow(NLI) 有效,但我们的模型有竞争优势,即 embedding size 较小( 256 vs. 768 )。

    • 此外,如 Figure 1(a) 所示,当 embedding size 设置为109 时,我们的 BERT_base-whitening(NLI) 的相关性得分提高到了 66.52 ,比 BERT_base-flow(NLI) 高出了 1.08 个点。

    • 此外,其他任务也可以通过谨慎选择k$ k $ 来实现更好的性能。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文