0


软注意力和硬注意力的对比

软注意力和硬注意力的对比

软注意力(确定):

软(确定性)注意力机制使用所有键的加权平均值来构建上下文向量。对于软注意力,注意力模块相对于输入是可微的,因此整个系统仍然可以通过标准的反向传播方法进行训练。软注意力数学描述如下:

        e
       
      
     
     
      
       
        
        
         =
        
        
         f
        
        
         (
        
        
         q
        
        
         ,
        
        
         k
        
        
         )
        
       
      
     
    
    
     
      
       
        α
       
      
     
     
      
       
        
        
         =
        
        
         s
        
        
         o
        
        
         f
        
        
         t
        
        
         m
        
        
         a
        
        
         x
        
        
         (
        
        
         e
        
        
         )
        
        
         =
        
        
         
          
           e
          
          
           x
          
          
           p
          
          
           (
          
          
           
            e
           
           
            i
           
          
          
           )
          
         
         
          
           
            ∑
           
           
            
             k
            
            
             =
            
            
             1
            
           
           
            n
           
          
          
           e
          
          
           x
          
          
           p
          
          
           (
          
          
           
            e
           
           
            k
           
          
          
           )
          
         
        
       
      
     
    
    
     
      
       
        c
       
      
     
     
      
       
        
        
         =
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          v
         
         
          i
         
        
       
      
     
    
   
   
     \begin{aligned} \pmb{e} &= f(\pmb{q},\pmb{k}) \\ \pmb{\alpha}&=softmax(\pmb{e})=\frac{exp(e_i)}{\sum_{k=1}^nexp(e_k)} \\ \pmb{c}&=\sum_{i=1}^{n}\alpha_i\pmb{v}_i \end{aligned} 
   
  
 eeααcc​=f(qq,kk)=softmax(ee)=∑k=1n​exp(ek​)exp(ei​)​=i=1∑n​αi​vvi​​

其中的

    f
   
   
    (
   
   
    q
   
   
    ,
   
   
    k
   
   
    )
   
  
  
   f(q,k)
  
 
f(q,k)有很多种计算方法,如下表所示:

在这里插入图片描述

硬注意力(随机):

硬(随机)注意力中的上下文向量是根据随机采样的键计算的。硬注意力可以实现如下:

      α
     
     
      ~
     
    
    
     ∼
    
    
     M
    
    
     u
    
    
     l
    
    
     t
    
    
     i
    
    
     n
    
    
     o
    
    
     u
    
    
     l
    
    
     l
    
    
     i
    
    
     (
    
    
     {
    
    
     
      α
     
     
      i
     
    
    
     }
    
    
     )
    
    
    
     c
    
    
     =
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      
       α
      
      
       ~
      
     
     
      i
     
    
    
     
      v
     
     
      i
     
    
   
   
     \widetilde{\alpha} \sim Multinoulli(\{\alpha_i\}) \\ \pmb{c}=\sum_{i=1}^{n}\widetilde{\alpha}_i\pmb{v}_i 
   
  
 α∼Multinoulli({αi​})cc=i=1∑n​αi​vvi​

注:多项式分布:多项式分布是二项式分布的推广。二项式做n次伯努利实验,规定了每次试验的结果只有两个。如果现在还是做n次试验,只不过每次试验的结果可以有m个,且m个结果发生的概率互斥且和为1,则发生其中一个结果X次的概率就是多项分布。概率密度函数是:

     P
    
    
     (
    
    
     
      X
     
     
      1
     
    
    
     =
    
    
     
      k
     
     
      1
     
    
    
     ,
    
    
     
      X
     
     
      2
     
    
    
     =
    
    
     
      k
     
     
      2
     
    
    
     ,
    
    
     ⋯
     
    
     ,
    
    
     
      X
     
     
      n
     
    
    
     =
    
    
     
      k
     
     
      n
     
    
    
     )
    
    
     =
    
    
     
      
       n
      
      
       !
      
     
     
      
       (
      
      
       
        k
       
       
        1
       
      
      
       !
      
      
       )
      
      
       (
      
      
       
        k
       
       
        2
       
      
      
       !
      
      
       )
      
      
       ⋯
      
      
       (
      
      
       
        k
       
       
        n
       
      
      
       !
      
      
       )
      
     
    
    
     
      ∏
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     (
    
    
     
      p
     
     
      
       k
      
      
       i
      
     
    
    
     )
    
   
   
     P(X_1=k_1,X_2=k_2,\cdots,X_n=k_n)=\frac{n!}{(k_1!)(k_2!)\cdots(k_n!)}\prod \limits_{i=1}^n(p_{k_i}) 
   
  
 P(X1​=k1​,X2​=k2​,⋯,Xn​=kn​)=(k1​!)(k2​!)⋯(kn​!)n!​i=1∏n​(pki​​)

两者的对比和一种改进:

与软注意力模型相比,硬注意力模型的计算成本更低,因为它不需要每次都计算所有元素的注意力权重。 然而,在输入特征的每个位置做出艰难的决定会使模块不可微且难以优化,因此可以通过最大化近似变分下限或等效地通过 REINFORCE 来训练整个系统。 在此基础上,Luong 等人提出了机器翻译的全局注意力和局部注意力机制。 全局注意力类似于软注意力。 局部注意力可以看作是硬注意力和软注意力之间的有趣混合,其中一次只考虑源词的一个子集。 这种方法在计算上比全局注意力或软注意力更便宜。 同时,与硬注意力不同,这种方法几乎在任何地方都是可微的,从而更容易实现和训练。

全局的注意力结构如下:

在这里插入图片描述

局部的注意力结构如下:

在这里插入图片描述

参考:



本文转载自: https://blog.csdn.net/KPer_Yang/article/details/126356818
版权归原作者 KPer_Yang 所有, 如有侵权,请联系我们删除。

“软注意力和硬注意力的对比”的评论:

还没有评论