我们将整个转换工作流程称为 Whitening-k,其详细算法实现如算法 1 所示。 2.4. 复杂度(Complexity Analysis) 论文表述: 在大规模语料库的计算效率之间,可以递归地计算平均值μ和协方差矩阵Λ。更具体地说,上述算法 3.2 所需要的只是整个句子向量 \{x_{i}\}_{i=1}^{N} 的均值向量 \mu\in R^{d} 和协...
作者通过引入白化操作(Whitening Transformation),探索了提升句子表示各向同性与维数降低的策略,从而显著改善语义相似度计算、存储成本与检索效率。白化操作是传统机器学习中用于处理数据分布问题的技术,本文将其应用于BERT的句子表示,以解决存在的各向异性问题,从而优化相似度计算。在句子向量的计算中,仅对...
其中μμ是均值向量,WW通过对xx的协方差矩阵进行SVD分解得到。 BERT-whitening具体细节请见苏神的论文和博客。 我在阅读上述论文博客时,将其中涉及的自身基础数学知识的盲区进行了整理记录,以便巩固自身理论基础。其中主要是苏神论文中一些公式推导涉及到的理论基础,详见本文 <基础知识> 一节。如有错误或侵权,烦请指正...
文本表达进击:从BERT-flow到BERT-whitening、SimCSE ⽂本表达进击:从BERT-flow到BERT-whitening、SimCSE BERT 预训练模型问世以来,改变了很多 NLP 任务的习惯。很多 NLP 任务都会直接在 BERT 的基础上做⼀个 fine-tune,构建⼀个 baseline 模型,既快捷也使⽤,但 BERT 在做⽂本表达任务时也有⼀些明显...
论文:《Whitening Sentence Representations for Better Semantics and Faster Retrieval》 使用 eng: BERT-whitening在常见英文数据集上的测试; chn: BERT-whitening在常见中文数据集上的测试; demo.py: 早期的简单Demo。 测试环境:tensorflow 1.14 + keras 2.3.1 + bert4keras 0.10.5,如果在其他环境组合下报错,请...
论文地址: https://arxiv.org/abs/2103.15316 代码地址: https://github.com/bojone/BERT-whitening 既然是要做一个向量的转换,那有没有简单一点的方法,直接校正句向量?BERT-whitening 提出通过一个白化的操作直接校正局向量的协方差矩阵,简单粗暴,也达到了与 BERT-flow 差不多的效果。
BERT-whitening[10][10]:苏剑林和我们同期的工作。他们提出对BERT表征进行白化操作(均值变为0,协方差变为单位矩阵)就能在STS上达到媲美BERT-flow的效果。SimCSE[11][11]:陈丹琦组在2021年4月份公开的工作。他们同样使用基于对比学习的训练框架,使用Dropout的数据增强方法,在维基百科语料上Fine-tune BERT。
4.2 BERT Whitening 效果 对比 概括 4.3 SimBERT 效果 对比 概括 5. 可视效果 例子 输入句子:"你好吗" 对比句子:["你怎么样", "我吃了一个苹果", "你过的好吗", "你还好吗", "你", "我吃了一个苹果", "我不开心", "你好不好"]5.1 Huggingface 链接:huggingface.co/uer/sber....
直接用BERT句向量做无监督语义相似度计算效果会很差,任意两个句子的BERT句向量的相似度都相当高,其中一个原因是向量分布的非线性和奇异性,BERT-flow通过normalizing flow将向量分布映射到规整的高斯分布上,更近一点的BERT-whitening对向量分布做了PCA降维消除冗余信息,但是标准化流的表达能力太差,而whitening操作又没法...
直接用BERT句向量做无监督语义相似度计算效果会很差,任意两个句子的BERT句向量的相似度都相当高,其中一个原因是向量分布的非线性和奇异性,BERT-flow通过normalizing flow将向量分布映射到规整的高斯分布上,更近一点的BERT-whitening对向量分布做了PCA降维消除冗余信息,但是标准化流的表达能力太差,而whitening操作又没法...