论文笔记--On the Sentence Embeddings from Pre-trained Language Models
- 1. 文章简介
- 2. 文章概括
- 3 文章重点技术
- 3.1 BERT模型的语义相似度能力分析
- 3.2 Anistropic各向异性
- 3.3 BERT-flow
- 3.4 Flow-based model
 
- 4. 文章亮点
- 5. 原文传送门
- 6. References
1. 文章简介
- 标题:On the Sentence Embeddings from Pre-trained Language Models
- 作者:Bohan Li, Hao Zhou, Junxian He, Mingxuan Wang, Yiming Yang, Lei Li
- 日期:2020
- 期刊:arxiv preprint
2. 文章概括
近期的一些研究表明,传统的BERT模型产生的词向量空间成anisotropic(各向异性),在语义相似度任务上表现不好,甚至低于GloVe方法。为此,文章提出了BERT-flow,一种基于Gaussian latent变换的BERT系列模型,可以有效地将BERT产生的词向量空间映射到一个standard Gaussian latent space。BERT-flow在STS语义相似度任务上表现超过SOTA,且实验表明BERT-flow要优于其它已有的针对各向异性的解决方法。
3 文章重点技术
3.1 BERT模型的语义相似度能力分析
  首先简要回顾下BERT模型[1]。BERT模型采用了MLM和NSP两种目标来训练模型。所谓MLM,即Masked Language Modeling(掩码语言模型),BERT会随机的对15%的词表单词进行掩码,然后在实际训练时尝试根据被掩码单词的上下文预测这些掩码。具体公示可表示为 
     
      
       
       
         p 
        
       
         ( 
        
        
        
          x 
         
        
          ‾ 
         
        
       
         ∣ 
        
        
        
          x 
         
        
          ^ 
         
        
       
         ) 
        
       
         = 
        
        
        
          ∑ 
         
         
         
           t 
          
         
           = 
          
         
           1 
          
         
        
          T 
         
        
        
        
          m 
         
        
          t 
         
        
       
         p 
        
       
         ( 
        
        
        
          x 
         
        
          t 
         
        
       
         ∣ 
        
        
        
          c 
         
        
          t 
         
        
       
         ) 
        
       
      
        p(\overline{x}|\hat{x})=\sum_{t=1}^T m_tp(x_t|c_t) 
       
      
    p(x∣x^)=∑t=1Tmtp(xt∣ct),其中 
     
      
       
        
         
         
           x 
          
         
           ^ 
          
         
        
          t 
         
        
       
      
        \hat{x}_t 
       
      
    x^t表示被掩码的序列, 
     
      
       
        
        
          x 
         
        
          ‾ 
         
        
       
      
        \overline{x} 
       
      
    x表示被掩码的tokens,当 
     
      
       
        
        
          x 
         
        
          t 
         
        
       
      
        x_t 
       
      
    xt被掩码时 
     
      
       
        
        
          m 
         
        
          t 
         
        
       
         = 
        
       
         1 
        
       
      
        m_t=1 
       
      
    mt=1,否则为 
     
      
       
       
         0 
        
       
      
        0 
       
      
    0,上下文 
     
      
       
        
        
          c 
         
        
          t 
         
        
       
         = 
        
        
        
          x 
         
        
          ^ 
         
        
       
      
        c_t=\hat{x} 
       
      
    ct=x^。公示中的条件概率 
     
      
       
       
         p 
        
       
         ( 
        
        
        
          x 
         
        
          t 
         
        
       
         ∣ 
        
        
        
          x 
         
        
          ^ 
         
        
       
         ) 
        
       
      
        p(x_t|\hat{x}) 
       
      
    p(xt∣x^)可由softmax预测: 
      
       
        
         
          
          
           
           
             p 
            
           
             ( 
            
           
             x 
            
           
             ∣ 
            
            
            
              x 
             
            
              ^ 
             
            
           
             ) 
            
           
             = 
            
            
             
             
               exp 
              
             
                
              
              
              
                h 
               
              
                c 
               
              
                T 
               
              
              
              
                w 
               
              
                x 
               
              
             
             
              
              
                ∑ 
               
               
               
                 x 
                
               
                 ′ 
                
               
              
             
               exp 
              
             
                
              
              
              
                h 
               
              
                c 
               
              
                T 
               
              
              
              
                w 
               
               
               
                 x 
                
               
                 ′ 
                
               
              
             
            
           
          
          
          
          
            (1) 
           
          
         
        
       
         p(x|\hat{x}) = \frac {\exp h_c^T w_x}{\sum_{x'} \exp h_c^T w_{x'}}\tag{1} 
        
       
     p(x∣x^)=∑x′exphcTwx′exphcTwx(1),其中 
     
      
       
        
        
          h 
         
        
          c 
         
        
       
      
        h_c 
       
      
    hc时上下文的嵌入表示,由Transformer学习得到, 
     
      
       
        
        
          w 
         
        
          x 
         
        
       
      
        w_x 
       
      
    wx为token  
     
      
       
       
         x 
        
       
      
        x 
       
      
    x对应的词向量。
   为了比较BERT的句向量相似度,我们可考虑 
     
      
       
        
        
          h 
         
        
          c 
         
        
          T 
         
        
        
        
          h 
         
         
         
           c 
          
         
           ′ 
          
         
        
       
      
        h_c^T h_{c'} 
       
      
    hcThc′。但上式中,没有显式出现 
     
      
       
        
        
          h 
         
        
          c 
         
        
          T 
         
        
        
        
          h 
         
         
         
           c 
          
         
           ′ 
          
         
        
       
      
        h_c^T h_{c'} 
       
      
    hcThc′,为此我们考虑 
     
      
       
        
        
          h 
         
        
          c 
         
        
          T 
         
        
        
        
          w 
         
        
          x 
         
        
       
      
        h_c^T w_x 
       
      
    hcTwx,即上下文和单词嵌入之间的点积。根据Yang[2],可以通过下式来近似 
     
      
       
        
        
          h 
         
        
          c 
         
        
          T 
         
        
        
        
          w 
         
        
          x 
         
        
       
      
        h_c^T w_x 
       
      
    hcTwx:  
      
       
        
         
         
           h 
          
         
           c 
          
         
           T 
          
         
         
         
           w 
          
         
           x 
          
         
        
          ≈ 
         
        
          log 
         
        
           
         
         
         
           p 
          
         
           ∗ 
          
         
        
          ( 
         
        
          x 
         
        
          ∣ 
         
        
          c 
         
        
          ) 
         
        
          + 
         
         
         
           λ 
          
         
           c 
          
         
        
          = 
         
        
          P 
         
        
          M 
         
        
          I 
         
        
          ( 
         
        
          x 
         
        
          , 
         
        
          c 
         
        
          ) 
         
        
          + 
         
        
          log 
         
        
           
         
        
          p 
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          + 
         
         
         
           λ 
          
         
           c 
          
         
        
       
         h_c^T w_x\approx \log p^*(x|c) + \lambda_c = PMI(x, c) + \log p(x) + \lambda_c 
        
       
     hcTwx≈logp∗(x∣c)+λc=PMI(x,c)+logp(x)+λc,其中 
     
      
       
       
         P 
        
       
         M 
        
       
         I 
        
       
         ( 
        
       
         x 
        
       
         , 
        
       
         c 
        
       
         ) 
        
       
         = 
        
       
         log 
        
       
          
        
        
         
         
           p 
          
         
           ( 
          
         
           x 
          
         
           , 
          
         
           c 
          
         
           ) 
          
         
         
         
           p 
          
         
           ( 
          
         
           x 
          
         
           ) 
          
         
           p 
          
         
           ( 
          
         
           c 
          
         
           ) 
          
         
        
       
      
        PMI(x, c) = \log \frac {p(x, c)}{p(x)p(c)} 
       
      
    PMI(x,c)=logp(x)p(c)p(x,c)表示 
     
      
       
       
         x 
        
       
      
        x 
       
      
    x个 
     
      
       
       
         c 
        
       
      
        c 
       
      
    c之间的逐点互信息(Pointwise mutual information),常被用来近似单词级别的语义相似,可以视为 
     
      
       
       
         x 
        
       
         , 
        
       
         c 
        
       
      
        x, c 
       
      
    x,c同时出现的概率除以各自单独出现的概率,再取对数; 
     
      
       
       
         log 
        
       
          
        
       
         p 
        
       
         ( 
        
       
         x 
        
       
         ) 
        
       
      
        \log p(x) 
       
      
    logp(x)表示单词项;  
     
      
       
        
        
          λ 
         
        
          c 
         
        
       
      
        \lambda_c 
       
      
    λc表示上下文项。由此近似表达式我们可以看出,通过计算 
     
      
       
        
        
          h 
         
        
          c 
         
        
          T 
         
        
        
        
          w 
         
        
          x 
         
        
       
      
        h_c^Tw_x 
       
      
    hcTwx来估计语义相似度是有意义的。
   在BERT的预训练阶段,任意两个上下文 
     
      
       
       
         c 
        
       
         , 
        
        
        
          c 
         
        
          ′ 
         
        
       
      
        c, c' 
       
      
    c,c′的语义关系是可以通过它们各自和单词之间的关系来推断的。事实上,如果 
     
      
       
       
         c 
        
       
         , 
        
        
        
          c 
         
        
          ′ 
         
        
       
      
        c, c' 
       
      
    c,c′和相同的单词 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w经常一起出现,那么它们很可能语义相似。如果 
     
      
       
       
         c 
        
       
         , 
        
       
         x 
        
       
      
        c, x 
       
      
    c,x同时出现,那么 
     
      
       
        
        
          h 
         
        
          c 
         
        
       
         , 
        
        
        
          w 
         
        
          x 
         
        
       
      
        h_c, w_x 
       
      
    hc,wx会比较接近,再由(1)式的正则项,我们有对其它 
     
      
       
        
        
          x 
         
        
          ′ 
         
        
       
      
        x' 
       
      
    x′, 
     
      
       
        
        
          h 
         
        
          c 
         
        
       
         , 
        
        
        
          w 
         
        
          x 
         
        
          ′ 
         
        
       
      
        h_c, w_x' 
       
      
    hc,wx′会远离;同理, 如果 
     
      
       
        
        
          c 
         
        
          ′ 
         
        
       
         , 
        
        
        
          x 
         
        
          ′ 
         
        
       
      
        c', x' 
       
      
    c′,x′同时出现,则 
     
      
       
        
        
          h 
         
        
          c 
         
        
          ′ 
         
        
       
         , 
        
        
        
          w 
         
        
          x 
         
        
          ′ 
         
        
       
      
        h_c', w_x' 
       
      
    hc′,wx′会比较接近,  
     
      
       
        
        
          h 
         
        
          c 
         
        
          ′ 
         
        
       
         , 
        
        
        
          w 
         
        
          x 
         
        
       
      
        h_c', w_x 
       
      
    hc′,wx会远离。故而我们得到 
     
      
       
        
        
          h 
         
        
          c 
         
        
          ′ 
         
        
       
         , 
        
        
        
          h 
         
        
          c 
         
        
       
      
        h_c', h_c 
       
      
    hc′,hc会远离。总结下:即对不同的单词 
     
      
       
       
         x 
        
       
         , 
        
        
        
          x 
         
        
          ′ 
         
        
       
      
        x, x' 
       
      
    x,x′,它们的上下文 
     
      
       
        
        
          h 
         
        
          c 
         
        
       
         , 
        
        
        
          h 
         
        
          c 
         
        
          ′ 
         
        
       
      
        h_c, h_c' 
       
      
    hc,hc′也会比较远。
   按照上述推理,上下文之间的更新会彼此影响: 
     
      
       
        
        
          h 
         
        
          c 
         
        
       
      
        h_c 
       
      
    hc的更新可能会影响 
     
      
       
        
        
          h 
         
        
          c 
         
        
          ′ 
         
        
       
      
        h_c' 
       
      
    hc′,同理 
     
      
       
        
        
          h 
         
        
          c 
         
        
          ′ 
         
        
       
      
        h_c' 
       
      
    hc′的更新可能会影响 
     
      
       
        
        
          h 
         
        
          c 
         
         
         
           ′ 
          
         
           ′ 
          
         
        
       
      
        h_c'' 
       
      
    hc′′。也就是说,上下文嵌入之间通过某种高阶的并现关系互相影响。
3.2 Anistropic各向异性
文章尝试解释为什么BERT在语义相似问题上的表现不好。文章主要给出以下两点观测:
- 单词频次会使嵌入空间发生偏移:文章计算了BERT单词嵌的平均l2范数。如下表所示,单词的频次越高,平均l2范数越小。说明BERT的嵌入空间很可能被单词频次所影响,从而造成上下文嵌入可能会被单词频次信息污染。
  
- 低频的单词在嵌入空间发散:文章计算了单词嵌入与其 k k k个最近的单词嵌入之间的平均l2距离和点积,如上表所示,单词频次越低,单词和其近邻的l2距离/点积越大,说明距离越远。即频次地的单词可能会稀疏发散。这种发散性可能会造成低频次单词在高维空间中间存在"holes",而BERT如果采用avg词向量方式表示句向量时,这些"holes"会印象影响嵌入空间的凸性,从而影响句向量的表达。
3.3 BERT-flow
  针对上述anistropy,文章提出一种校准方法BERT-flow:利用一个可逆变换将BERT的嵌入空间转化为一个标准高斯潜空间(standard Gaussian latent space,SGLS)。
   SGLS可以满足各向同性(isotropic)。事实上,一个SGLS的概率密度在各个角度上都是一致的,如果我们将SGLS的样本的2范数标准化为1 ,则样本服从一个高阶单位圆的均匀分布。将嵌入空间转化为一个各向同性的空间之后,我们可以压扁嵌入空间的较大的特征值(研究表明这些较大的特征向量很可能和单词频率有关),从而降低单词频率对嵌入空间的影响。此外,SGLS不存在holes,从而可以解决在这些holes附近句向量定义不好的问题。
3.4 Flow-based model
  为了得到上述的SGLS,我们希望建立一个从latent space  
     
      
       
       
         Z 
        
       
      
        \mathcal{Z} 
       
      
    Z(即SGLS)到观测空间 
     
      
       
       
         U 
        
       
      
        \mathcal{U} 
       
      
    U(即BERT嵌入空间)的可逆变换,如下图所示。具体如下: 
      
       
        
        
          z 
         
        
          ∼ 
         
         
         
           p 
          
         
           Z 
          
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          , 
         
        
          u 
         
        
          = 
         
         
         
           f 
          
         
           ϕ 
          
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
       
         z\sim p_{\mathcal{Z}}(z), u = f_{\phi}(z) 
        
       
     z∼pZ(z),u=fϕ(z),其中 
     
      
       
       
         f 
        
       
      
        f 
       
      
    f为我们要找的可逆变换。根据变量变换理论,我们有 
      
       
        
         
         
           p 
          
         
           U 
          
         
        
          ( 
         
        
          u 
         
        
          ) 
         
        
          = 
         
         
         
           p 
          
         
           Z 
          
         
        
          ( 
         
         
         
           f 
          
         
           ϕ 
          
          
          
            − 
           
          
            1 
           
          
         
        
          ( 
         
        
          u 
         
        
          ) 
         
        
          ) 
         
        
          ∣ 
         
        
          d 
         
        
          e 
         
        
          t 
         
         
          
          
            ∂ 
           
           
           
             f 
            
           
             ϕ 
            
            
            
              − 
             
            
              1 
             
            
           
          
            ( 
           
          
            u 
           
          
            ) 
           
          
          
          
            ∂ 
           
          
            u 
           
          
         
        
          ∣ 
         
        
       
         p_{\mathcal{U}}(u) = p_{\mathcal{Z}}(f_{\phi}^{-1}(u)) |det \frac{\partial f_{\phi}^{-1}(u)}{\partial u}| 
        
       
     pU(u)=pZ(fϕ−1(u))∣det∂u∂fϕ−1(u)∣。
 
   最终得到模型要最大化似然函数 
      
       
        
        
          m 
         
        
          a 
         
         
         
           x 
          
         
           ϕ 
          
         
         
         
           E 
          
          
          
            u 
           
          
            = 
           
          
            B 
           
          
            E 
           
          
            R 
           
          
            T 
           
          
            ( 
           
          
            s 
           
          
            e 
           
          
            n 
           
          
            t 
           
          
            e 
           
          
            n 
           
          
            c 
           
          
            e 
           
          
            ) 
           
          
            , 
           
          
            s 
           
          
            e 
           
          
            n 
           
          
            t 
           
          
            e 
           
          
            n 
           
          
            c 
           
          
            e 
           
          
            ∼ 
           
          
            D 
           
          
         
        
          l 
         
        
          o 
         
        
          g 
         
         
         
           p 
          
         
           z 
          
         
        
          ( 
         
         
         
           f 
          
         
           ϕ 
          
          
          
            − 
           
          
            1 
           
          
         
        
          ( 
         
        
          u 
         
        
          ) 
         
        
          ) 
         
        
          + 
         
        
          log 
         
        
           
         
        
          ∣ 
         
        
          d 
         
        
          e 
         
        
          t 
         
         
          
          
            ∂ 
           
           
           
             f 
            
           
             ϕ 
            
            
            
              − 
             
            
              1 
             
            
           
          
            ( 
           
          
            u 
           
          
            ) 
           
          
          
          
            ∂ 
           
          
            u 
           
          
         
        
          ∣ 
         
        
       
         max_{\phi} \mathbb{E}_{u=BERT(sentence), sentence \sim \mathcal{D}} log p_z(f_{\phi}^{-1}(u)) + \log |det \frac{\partial f_{\phi}^{-1}(u)}{\partial u}| 
        
       
     maxϕEu=BERT(sentence),sentence∼Dlogpz(fϕ−1(u))+log∣det∂u∂fϕ−1(u)∣,其中 
     
      
       
       
         D 
        
       
      
        \mathcal{D} 
       
      
    D表示句子数据集。训练过程我们只训练flow的参数,即 
     
      
       
        
        
          f 
         
        
          ϕ 
         
         
         
           − 
          
         
           1 
          
         
        
       
      
        f_{\phi}^{-1} 
       
      
    fϕ−1部分,将BERT的参数冻结。为了得到 
     
      
       
        
        
          f 
         
        
          ϕ 
         
         
         
           − 
          
         
           1 
          
         
        
       
      
        f_{\phi}^{-1} 
       
      
    fϕ−1,文章参考Dinh等人的神经网络框架,保证 
     
      
       
        
        
          f 
         
        
          ϕ 
         
        
       
      
        f_{\phi} 
       
      
    fϕ是可逆的。
4. 文章亮点
  文章论证了BERT在语义相似度任务上表现较差的原因,且提出了一种可以解决BERT各向异性的方案“BERT-flow“。BERT-flow在多个STS数据集上表现超过SBERT[2]等模型,得到了一种更接近于Golden standard的嵌入空间。
   实验表明,文章提出的BERT-flow方法相比于标准正则化(计算嵌入的均值方差之后正则)和NATSV(将Top特征值消除)方法相比效果更好,成为了解决BERT各向异性问题的SOTA方案。
5. 原文传送门
On the Sentence Embeddings from Pre-trained Language Model
6. References
[1] 论文笔记–BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
 [2] Breaking the Softmax Bottleneck: A High-Rank RNN Language Model
 [3] 论文笔记–Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

![[LeetCode周赛复盘] 第 107 场双周赛20230624](https://img-blog.csdnimg.cn/6d38bd32984d48baaa0af82b82b21081.png)
















