abstract
- 没有经过fine-tuning的embedding在语义计算上效果非常差
- bert总是一个非平滑的各向异性的空间语义表达,对于以相似度的计算有害处
- 本文想办法将其转化成平滑的并且各项同性的高斯分布的表达,并且是通过无监督学习来做到的,效果得到了巨大的提升
1 introduction
- 为啥bert embedding表现差,是包含语义信息过少吗?
- 平均提升8.16个点,评价函数是Spearman correlation,用cosine来计算相似度
- 流式生成模型,通过无监督训练,使bert embedding生成标准的正态分布
- bert embedding是否包含足够的语义信息,如果足够的话该如何利用
2 Understanding the Sentence Embedding Space of BERT
- BERT的预处理没有明确涉及HTc HC’的计算。因此,我们很难推导出h⊤c HC’确切代表什么的数学公式。
- 共线统计,来作为予以相似度的计算,PMI可以用于计算,表示两个事件一起出现以及单独出现的概率的比值。
- 各向异性的空间表达,会导致比较差的语义相似度表现。
- 通过p(x|c)=exp(h_{c}^tw_x)/sum of exp(h_{c}^tw_x’),极大似然估计来训练这个目标,会导致各向异性的word embedding表达,bert,GPT-2都会出现这样的情况。
- 观察1:
现象:词频越高,embedding越近,通过l2和点乘来计算都是这样
说明:embedding对频率有偏见bias - 观察2:
现象:低频embedding空间比较稀疏
说明:低频不饱和,空间语义表达性差
3 Proposed Method: BERT-flow
1 motivation
- 标准高斯分布是各向同性的
- 如果来自标准高斯的样本的l2范数被归一化为1,则这些样本可以被视为均匀分布在单位球面上。
- 这样能降低词频bias带来的影响
- 高斯分布能填补低词频时embedding的稀疏空洞情况
2 Flow-based Generative Model
- 观察空间u:也就是bert的向量空间
- z:标准的高斯分布,也就是基础的空间
- 总结:根据观察到的bert的向量空间,推导出原来高斯分布的向量空间的embedding
利用神经网络来模拟这个映射函数f,并且,网络结构要保证可逆性,并且容易求导
3 公式理解
-
空间表示
-
最大似然bert的分布来训练f参数,有了f参数,因为其可逆的,所以可以拿到先验分布下的参数
4 Experience
- 语义相似度数据集:STS,semantic textual similarity (STS) tasks.
- 通过这个工具We obtain all these datasets via the SentEval toolkit
- 实验过程和Sentence-BERT文章类似,对应STS任务
- bert最后两层平均效果好一点,所以拿这个作为baseline
- *:代表利用NLI做无监督训练
- bert参数不变,flow模型利用训练+验证+测试数据学习flow模型参数,并且,这个时候没有用标注的label,是完全的无监督学习
- BERT-NLI:没有标注数据,直接利用NLI训练flow模型参数。
- BERT-NLI-flow:孪生网络的形式fintune bert模型,再学习flow参数
- 无监督和有监督实验都做了,bert-flow无监督是70.72,bert-nli-flow有监督是81.03,感觉有监督还是比较有用的呀!还有NLI也有用。
- 跟基于lexical的相似度相关性小,说明本文的方法能压制住词汇lexical相似性对嵌入空间的过度影响。
4.1 完全无监督,bert参数不变,训练flow模型参数实验结果
4.2 bert利用孪生网络的形式先训练,然后利用数据训练flow模型参数
4.3 实验总结
- 总体来看从bert cls的16提升到bert-nli-flow的81.8多,跨度还是比较大的,看你要如何利用bert embedding的特征
- 重新训练下bert也是必要的,可以从70多提升到80多,提升也非常大