SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)
Motivation
无监督的SimCSE将句子过两次预训练模型得到两个不同的embedding作为正例对,将同一batch中的其他句子作为负例,模型在所有负例中预测出唯一的正例。有监督的SimCSE使用NLI数据,将蕴含关系对作为正例,矛盾关系及batch内其他的句子作为负例。

Contrastive Learning
句对集合为 
    
     
      
       
        D
       
       
        =
       
       
        
         
          {
         
         
          (
         
         
          
           x
          
          
           i
          
         
         
          ,
         
         
          
           x
          
          
           i
          
          
           +
          
         
         
          )
         
         
          }
         
        
        
         
          i
         
         
          =
         
         
          1
         
        
        
         m
        
       
      
      
       \mathcal{D} = \left\{(x_i, x_i^+)\right\}_{i=1}^m
      
     
    D={(xi,xi+)}i=1m,其中
    
     
      
       
        
         x
        
        
         i
        
       
      
      
       x_i
      
     
    xi和
    
     
      
       
        
         x
        
        
         i
        
        
         +
        
       
      
      
       x_i^+
      
     
    xi+是语义上相关的。优化目标如下:
 
     
      
       
        
         
          ℓ
         
         
          i
         
        
        
         =
        
        
         −
        
        
         log
        
        
         
        
        
         
          
           e
          
          
           
            s
           
           
            i
           
           
            m
           
           
            (
           
           
            
             h
            
            
             i
            
           
           
            ,
           
           
            
             h
            
            
             i
            
            
             +
            
           
           
            )
           
           
            /
           
           
            τ
           
          
         
         
          
           
            ∑
           
           
            
             j
            
            
             =
            
            
             1
            
           
           
            N
           
          
          
           
            e
           
           
            
             s
            
            
             i
            
            
             m
            
            
             (
            
            
             
              h
             
             
              i
             
            
            
             ,
            
            
             
              h
             
             
              j
             
             
              +
             
            
            
             )
            
            
             /
            
            
             τ
            
           
          
         
        
       
       
         \ell_i = -\log \frac{e^{sim(h_i, h_i^+)/\tau}}{\sum_{j=1}^N e^{sim(h_i, h_j^+)/\tau}} 
       
      
     ℓi=−log∑j=1Nesim(hi,hj+)/τesim(hi,hi+)/τ
 Positive instances
如何构建正例对是一个关键问题。本文发现对中间层表示简单使用标准的dropout已经能超过其他的离散表换(删除、替换词语)等操作。
Alignment and uniformity
Alignment用来计算句对间embedding的预期距离,uniformity用来衡量embedding一致分布的好坏。这两个指标与对比学习的目标保持一致,正例对的距离应相对较近,并且随机实例的embedding应该分散在超球体上。
Unsupervised SimCSE
正例对中,
    
     
      
       
        
         x
        
        
         i
        
        
         +
        
       
       
        =
       
       
        
         x
        
        
         i
        
       
      
      
       x_i^+ = x_i
      
     
    xi+=xi,关键因素是独立对
    
     
      
       
        
         x
        
        
         i
        
       
      
      
       x_i
      
     
    xi和
    
     
      
       
        
         x
        
        
         i
        
        
         +
        
       
      
      
       x_i^+
      
     
    xi+使用dropout。本文将dropout看作一种最小化形式的数据增强,并将其与其他数据增强方法进行了对比,结果如下图:
 

为了进一步探究dropout噪声的作用,作者还尝试了不同的dropout率。如下图:

Supervised SimCSE
将NLI数据集中的蕴含句子作为正例,矛盾句子作为难负例。便将目标函数更新为如下形式:
 
     
      
       
        
         
          ℓ
         
         
          i
         
        
        
         =
        
        
         −
        
        
         log
        
        
         
        
        
         
          
           e
          
          
           
            s
           
           
            i
           
           
            m
           
           
            (
           
           
            
             h
            
            
             i
            
           
           
            ,
           
           
            
             h
            
            
             i
            
            
             +
            
           
           
            )
           
           
            /
           
           
            τ
           
          
         
         
          
           
            ∑
           
           
            
             j
            
            
             =
            
            
             1
            
           
           
            N
           
          
          
           (
          
          
           
            e
           
           
            
             s
            
            
             i
            
            
             m
            
            
             (
            
            
             
              h
             
             
              i
             
            
            
             ,
            
            
             
              h
             
             
              j
             
             
              +
             
            
            
             )
            
            
             /
            
            
             τ
            
           
          
          
           +
          
          
           
            e
           
           
            
             s
            
            
             i
            
            
             m
            
            
             (
            
            
             
              h
             
             
              i
             
            
            
             ,
            
            
             
              h
             
             
              j
             
             
              −
             
            
            
             )
            
            
             /
            
            
             τ
            
           
          
          
           )
          
         
        
       
       
         \ell_i = -\log \frac{e^{sim(h_i, h_i^+)/\tau}}{\sum_{j=1}^N (e^{sim(h_i, h_j^+)/\tau}+e^{sim(h_i, h_j^-)/\tau})} 
       
      
     ℓi=−log∑j=1N(esim(hi,hj+)/τ+esim(hi,hj−)/τ)esim(hi,hi+)/τ
Connection to Anisotropy
很多工作证明了表示中的各向异性问题,例如,学习到的embedding在向量空间中仅仅占据一个窄圆锥的大小,这会大大损害embedding的表达能力。各向异性问题与uniformity相关,都强调embeddings应该在向量空间中均匀分布。对比学习的目标是要让负例对间的距离相对较远,因此能提升uniformity(消除各向异性)。
Experiment

Ablation Studies










