在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
地址:https://zhuanlan.zhihu.com/p/374230720
对于Bert输出的向量直接用于相似度计算的问题上,往往表现是较差的。本文主要分析一下导致该问题的原因以及目前的一些处理方法。
01
假设一个文本 的编码为 ,为什么文本表示的点积(cosine)可以代表文本的语义相似度?对于语言模型而言,都可以归结为在建模单词 和上下文 的条件分布:其中的 是词的频率, 是与上下文 相关的term。 ,表示词与上下文的共现,其中 越大其共现的概率越大,也就是统计意义上的语义相似度。所以我们看 ,语言模型的目标就是最大化token与上下文的共现概率,在该目标下, 与 的表示会不断的拉近,如果同一个 存在于另一个上下文 中,那么在训练中 与 的表示也会不断拉近。通过上述分析我们可以得出Bert的预训练过程和语义相似度的计算目标是十分接近的,训练得到的句向量包含了文本间的语义相似度的信息,原则上是可以通过点积(cosine)来进行相似度计算的。02
Bert的词向量在空间中的分布呈现锥形,作者发现高频的词都靠近原点。(所有词的均值),而低频词远离原点,这会导致即使一个高频词与一个低频词的语义等价,但是词频的差异也会带来巨大的差异,从而词向量的距离不能很好的表达词间的语义相关性。(下图来自 @李rumor https://zhuanlan.zhihu.com/p/318061606)。分布稀疏会导致区间的语义不完整(poorly defined),低频词表示训练的不充分,而句向量仅仅是词向量的平均池化,所以计算出来的相似度存在问题。
03
其做法为在Bert后面接一个flow模型,flow模型的训练是无监督的,并且Bert的参数是不参与训练的,只有flow的参数被优化,而训练的目标则为最大化预先计算好的Bert的句向量的似然函数。
关于flow模型,本质为学习一个可逆的映射 ,将高斯分布的变量 映射到Bert的编码 ,这样的话 就可以把 均匀的映射到高斯分布上了,这时候我们最大化从高斯分布中产生Bert的词向量的概率,就可以将这个映射表示出来。作者 @苏剑林 苏神首先分析了 余弦相似度 的假定:余弦相似度的计算为两个向量的内积除以各自的模长,而该式子的局限性为仅在 标准正交基 下成立。其次 针对flow模型而言 ,flow模型由于必须保证逆变换的容易计算,就会导致每一层的非线性变换的能力较弱,为了保证充分的拟合能力,模型就需要堆得很深,计算量很大,但是Bert-flow中的flow模型却很小。Bert本身得出的sentence embeddings是包含句子信息的,余弦相似本本身是具有鲜明的几何意义,如果这组基是标准正交基,那么对应的向量应该表现出“各向同性”来,在使用余弦相似度来进行句子相似度的计算时候,其效果本身并不理想,那问题可能就是bert生成的向量并非为标准正交基下的向量。flow模型是一个向量变换模型,它可以将输入数据的分布转化为标准正态分布,而显然标准正态分布是“各向同性”的,所以BERT-flow就选择了flow模型。2.使得所有特征具有相同的均值和方差 -----> 同分布对于标准的高斯分布,其均值为0,协方差矩阵为单位阵,则可以将句向量的均值变换为0,协方差矩阵变为单位阵,然后进行显式求解,具体步骤参考:https://spaces.ac.cn/archives/8069作者通过引入对比学习的方式来对Bert向量的表示空间进行规整,进而来达到向量空间分布均匀的目的。对于每个句子生成两个view,分别对其进行编码得到 和 ,我们对上下两批表示两两计算cosine相似度,得到NxN的矩阵,每一行的对角线位置代表 和 的相似度,其余代表 和 个负例的相似度。对每一行做softmax分类,采用交叉熵损失作为loss,就得到对比学习的损失了:使用对比损失最关键的问题就是构建正样本的方式,,对于图片,裁剪、翻转、扭曲都不影响图像语义理解,而结构高度离散的自然语言则很难构造语义一致的正样本,常用的同义词替换 删除不重要的词,语序重排均为离散操作,容易引入负面噪声,性能提升有限。本文的作者也是提出了一个简单粗暴且有效的方式 dropout。通过改变dropout生成正样本的方法可以看作是数据增强的最小形式,因为原样本和生成的正样本的语义是完全一致的。无监督SimCSE是从维基百科上挑了100万个句子进行训练的,相当于一种自监督的方式进行训练,所以可以通过大量的数据进行模型的预训练。我们希望这两个指标都尽可能低,也就是一方面希望正样本要挨得足够近,另一方面语义向量要尽可能地均匀分布在超球面上,因为均匀分布信息熵最高,分布越均匀则保留的信息越多,“拉近正样本,推开负样本”实际上就是在优化这两个指标。
最后作者测试了现有模型的alignment和uniformity,可以发现性能更优的模型通常有着更好的alignment和uniformity,BERT虽然有很好的alignment,但uniformity太差,而基于后处理的BERT-flow和BERT-whitening又恰恰走向了另一个极端,SimCSE则是对这两个指标的一个很好的平衡,加入监督训练后,SimCSE的两个指标会同时提升。On the Sentence Embeddings from Pre-trained Language Models
https://arxiv.org/pdf/2011.05864.pdf
Bert-whitening
https://arxiv.org/pdf/2103.15316.pdf
SimCSE
https://arxiv.org/pdf/2104.08821.pdfhttps://spaces.ac.cn/archives/8069
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“综述专栏”历史文章
更多综述专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!