首页 > 其他分享 >Embedding Whitening

Embedding Whitening

时间:2024-05-09 16:57:41浏览次数:13  
标签:BERT phi mathbf sentence mu Whitening Embedding embeddings

目录

[1] Li B., Zhou H., He J., Wang M., Yang Y. and Li L. On the sentence embeddings from pre-trained language models. ACL, 2020.

[2] Su J., Cao J., Liu W. and Ou Y. Whitening sentence representations for better semantics and faster retrieval. 2021.

[3] Huang J., Tang D., Zhong W., Lu S., Shou L., Gong M., Jiang D. and Duan N. WhiteningBERT: An easy unsupervised sentence embedding approach. EMNLP, 2021.

Whitening 用于将各向异性 (anisotropic) 的 sentence embeddings 转换成各向同性的 setence embeddings, 从而 sentence 间的相似度能够被正确估计.

主要内容

BERT-Flow

  • 在 [1] 之前, 利用 BERT 将各层的 (e.g., 最后一层或者最后两层的) embeddings 取平均作为一个句子的表示, 但是这种简单的方式效果并没有那么理想.

  • [1] 中的作者首先分析认为, BERT 应该是有能力捕获句子和句子间的相关度的, 那么是为什么导致这个现象的发生呢?

  • 作者认为, 这是因为通过极大似然学到的 word embeddings 是各向异性的, 在实际中, word embeddings 构成一个锥型空间:

    1. Word frequency biases the embedding space: 出现频率越高的 word 距离原点越近, 反之越远 (下图的第一栏);

2. **Low-frequency words disperse sparsely:** 频率越低的 word 分散的越稀疏 (上图的中间栏), 这导致低频的 word 的点出现了很多 'holes', 导致整个分布不是凸的 (意会).
  • 上面的 word embedding 的问题就会导致 sentence embeddings 难以准确的建模 sentence 间的相关度. BERT-flow 就是希望将 sentence embeddings 进行一个转换 (形如):

  • 做法就是对于任意的 sentence embedding \(\mathbf{u}\), 设计一个可逆函数 \(f_{\phi}\), 通过

    \[\mathbf{z} = f_{\phi}^{-1}(\mathbf{u}) \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) \]

    映射到标准正态分布中去, 根据分布和可逆函数的性质, 我们得到:

    \[p_{\mathcal{U}}(\mathbf{u}) = p_{\mathcal{Z}} (f_{\phi}^{-1} (\mathbf{u})) | \text{det} \frac{ \partial f_{\phi}^{-1}(\mathbf{u}) }{ \partial \mathbf{u} }|, \]

    这里 \(p_{\mathcal{Z}}\) 为标准正态分布.

  • 然后通过极大似然优化 \(\phi\)

    \[\max_{\phi} \mathbb{E}_{ \mathbf{u} = \text{BERT(sentence)}, \text{sentence} \sim \mathcal{D} } \log p_{\mathcal{Z}} (f_{\phi}^{-1}(\mathbf{u})) + \log | \text{det} \frac{ \partial f_{\phi}^{-1}(\mathbf{u}) }{ \partial \mathbf{u} }|. \]

  • 这个, 我说实话, 感觉和 normalizing flow 也有出入 .

  • 于是乎, 新得到的 Z 就是服从标准正态分布了, 也就各向同性了.

BERT-Whitening

  • [2] 采取了一种更加简便的方法. 作者希望找到 \(\mathbf{\mu} \in \mathbb{R}^d\) 和矩阵 \(W \in \mathbb{R}^{d \times d}\), 使得

    \[\tilde{\mathbf{x}}_i = (\mathbf{x}_i - \mu) W, \quad i=1,2,\ldots, N \]

    服从各项同性的, 即协方差矩阵

    \[\tilde{\Sigma} = \frac{1}{N} \sum_{i=1}^N \tilde{\mathbf{x}}_i \tilde{\mathbf{x}}^T = I. \]

    显然的是, \(\mu = \frac{1}{N} \sum_{i=1}^N \mathbf{x}_i\).

  • 现在我们需要找到一个矩阵 \(W\) 满足

    \[W^T \Sigma W = I, \\ \Sigma = \frac{1}{N} \sum_{i=1}^N (\mathbf{x}_i - \mu) (\mathbf{x} - \mu)^T. \]

  • 注意到, \(\Sigma\) 是半正定矩阵, 于是我们有

    \[\Sigma = V\Lambda V^T, \]

    若我们令 \(W = V \Lambda^{-1/2}\), 就有

    \[W^T \Sigma W = I. \]

  • 于是, 最后的 whitening 的 embedding 为

    \[(\mathbf{x} - \mu) V \Lambda^{-1/2}. \]

  • ok, 让我们进一步看看它做了啥, 假设

    \[X - \mu = U\Lambda^{1/2}V^T, \]

    所以最后的

    \[(X - \mu) V \Lambda^{-1/2} = U. \]

  • 如果决定维度太高, 可以选择 \(U\) 的前 \(k\) 列.

代码

[BERT-flow]

[BERT-whitening]

标签:BERT,phi,mathbf,sentence,mu,Whitening,Embedding,embeddings
From: https://www.cnblogs.com/MTandHJ/p/18182622

相关文章

  • 文本向量化模型acge_text_embedding
    1.背景文本向量化模型是自然语言处理(NLP)中的一项核心技术,它可以将单词、句子或图像特征等高维的离散数据转换为低维的连续向量,从而将文本数据转换为计算机能够处理的数值型向量形式。当文本信息被转换为向量形式后,输出的结果能够进一步地为多种后续任务提供有力支持,例如:搜索、聚......
  • Huggingface Transformers实现张量并行的小坑 set/get_output_embeddings
    transformers库里实现的很多模型会有这么两个函数get_output_embeddings和get_output_embeddings。以SwitchTransformer为例classSwitchTransformersForConditionalGeneration(SwitchTransformersPreTrainedModel):defset_output_embeddings(self,new_embeddings):......
  • Stable Diffusion中的embedding
    StableDiffusion中的embedding嵌入,也称为文本反转,是在StableDiffusion中控制图像样式的另一种方法。在这篇文章中,我们将学习什么是嵌入,在哪里可以找到它们,以及如何使用它们。什么是嵌入embedding?嵌入(Embedding)是一种在机器学习和人工智能领域中常用的技术,特别是在图像生成......
  • 大模型必备 - 中文最佳向量模型 acge_text_embedding
    近期,上海合合信息科技股份有限公司发布的文本向量化模型acge_text_embedding在中文文本向量化领域取得了重大突破,荣获MassiveTextEmbeddingBenchmark(MTEB)中文榜单(C-MTEB)第一名的成绩。这一成就标志着该模型将在大模型领域的应用中发挥更加迅速和广泛的影响。MTEB概......
  • BGE M3-Embedding 模型介绍
    BGEM3-Embedding来自BAAI和中国科学技术大学,是BAAI开源的模型。相关论文在https://arxiv.org/abs/2402.03216,论文提出了一种新的embedding模型,称为M3-Embedding,它在多语言性(Multi-Linguality)、多功能性(Multi-Functionality)和多粒度性(Multi-Granularity)方面表现出色。M3-Embedding......
  • embedding models 是什么
    embeddingmodels是一类机器学习模型,它们的核心功能是将高维、离散的输入数据(如词汇、类别标签、节点或实体)映射到低维、连续的向量空间中。这些向量(即embeddings)通常具有丰富的语义信息,并能够捕捉原始数据之间的潜在关系和相似度。以下是对embeddingmodels的详细说明: 1.......
  • 深度学习-卷积神经网络--什么是manifold embedding--66
    目录参考:流形假设(ManifoldHypothesis)在介绍流形学习(Manifoldlearning)之前,首先需要理解一个假设,就是流形假设(ManifoldHypothesis)。这个假设认为,高维数据很多都是低维流形嵌入(embedding)于高维空间当中,比如说三维空间里的各种平面或者曲面,虽然这些平面或者曲面处于三......
  • 【论文笔记-1】Multi-lingual Knowledge Graph Embeddings for Cross-lingual Knowled
    论文结构摘要:为了实现跨语言的知识对齐,提出了MTransE,一个基于翻译的多语言知识图谱嵌入模型。通过在分离的嵌入空间中编码每种语言的实体和关系,MTransE为每个嵌入向量提供了过渡到其他空间中跨语言对应物的功能,同时保留了单语种嵌入的功能。动机(待解决的问题):嵌入能够帮助提......
  • 【CNN】ConvMixer探究ViT的Patch Embedding: Patches Are All You Need?
    PatchesAreAllYouNeed?探究PatchEmbedding在ViT上的作用,CNN是否可用该操作提升性能?论文链接:https://openreview.net/pdf?id=TVHS5Y4dNvM代码链接:https://github.com/tmp-iclr/convmixer1、摘要 ViT的性能是由于Transformer架构本身的固有优势,还是至少部分归因于......
  • AI大模型应用开发篇之Embeddings向量化
    文章目录前言环境准备一、Embedding介绍二、WordEmbedding技术三、Embedding应用价值四、Embedding开发实践4.1本地数据集Embedding4.2本地知识库检索前言随着AI大模型的不断发展,AI大模型应用开发这门技术也越来越重要,很多人都开启了学习AIGC,本文介绍了AI大模型......