LLM筆記(三)位置編碼(1)

位置編碼理論與應用

1. 位置編碼如何解決置換不變性及其數學表現

在Transformer模型中,自注意力機制(Self-Attention)具有置換不變性(permutation invariance),這意味著對輸入序列的詞元(token)進行任意重排,輸出的內容本質上保持不變(或僅是行的重排),導致模型無法感知詞元的順序。為了解決這一問題,**位置編碼(Positional Encoding)**通過將位置信息融入輸入序列,打破這種不變性,使模型能夠區分詞元的相對或絕對位置。


1.1 置換不變性的數學表現

置換不變性是自注意力機制無法捕捉位置信息的核心原因。讓我們從數學角度分析:

  • 自注意力機制的計算

    • 輸入序列為 X = [ x 1 , x 2 , … , x n ] X = [x_1, x_2, \dots, x_n] X=[x1?,x2?,,xn?],其中 x i ∈ R d x_i \in \mathbb{R}^d xi?Rd 是第 i i i 個詞元的嵌入向量。
    • 通過線性變換生成查詢(Query)、鍵(Key)和值(Value): Q = X W Q , K = X W K , V = X W V Q = X W_Q, \quad K = X W_K, \quad V = X W_V Q=XWQ?,K=XWK?,V=XWV? 其中 W Q , W K , W V W_Q, W_K, W_V WQ?,WK?,WV? 是可學習的權重矩陣。
    • 注意力權重為: A = softmax ( Q K T d k ) A = \text{softmax}\left( \frac{Q K^T}{\sqrt{d_k}} \right) A=softmax(dk? ?QKT?) 輸出為: Attention ( Q , K , V ) = A V \text{Attention}(Q, K, V) = A V Attention(Q,K,V)=AV
  • 置換操作的影響

    • 假設對輸入 X X X 應用置換矩陣 P P P(一個重排行的矩陣),置換后的輸入為 X ′ = P X X' = P X X=PX
    • 置換后的查詢、鍵和值變為: Q ′ = P Q , K ′ = P K , V ′ = P V Q' = P Q, \quad K' = P K, \quad V' = P V Q=PQ,K=PK,V=PV
    • 注意力權重變為: A ′ = softmax ( Q ′ ( K ′ ) T d k ) = softmax ( P Q K T P T d k ) = P A P T A' = \text{softmax}\left( \frac{Q' (K')^T}{\sqrt{d_k}} \right) = \text{softmax}\left( \frac{P Q K^T P^T}{\sqrt{d_k}} \right) = P A P^T A=softmax(dk? ?Q(K)T?)=softmax(dk? ?PQKTPT?)=PAPT
    • 輸出為: Attention ( Q ′ , K ′ , V ′ ) = A ′ V ′ = P A P T P V = P A V \text{Attention}(Q', K', V') = A' V' = P A P^T P V = P A V Attention(Q,K,V)=AV=PAPTPV=PAV
    • 結果表明,置換后的輸出 P A V P A V PAV 是原始輸出 A V A V AV 的行重排,內容本質不變(即集合意義上等價)。這意味著自注意力機制無法區分 X X X X ′ X' X 的順序,僅依賴詞元的內容。

1.2 位置編碼如何解決置換不變性

位置編碼通過將位置信息融入輸入序列,打破置換不變性,使模型能夠感知詞元的位置。常見的實現方式有兩種:絕對位置編碼相對位置編碼

1.2.1 絕對位置編碼
  • 原理
    • 為每個位置 m m m 分配一個獨特的位置編碼向量 p m p_m pm?,將其加到對應的詞元嵌入 x m x_m xm? 上: x m ′ = x m + p m x_m' = x_m + p_m xm?=xm?+pm? 輸入序列變為: X new = [ x 1 + p 1 , x 2 + p 2 , … , x n + p n ] X_{\text{new}} = [x_1 + p_1, x_2 + p_2, \dots, x_n + p_n] Xnew?=[x1?+p1?,x2?+p2?,,xn?+pn?]
  • 數學表現
    • 若對 X new X_{\text{new}} Xnew? 應用置換矩陣 P P P,置換后的輸入為: X new ′ = P X new = P ( X + P pos ) X_{\text{new}}' = P X_{\text{new}} = P (X + P_{\text{pos}}) Xnew?=PXnew?=P(X+Ppos?) 其中 P pos = [ p 1 , p 2 , … , p n ] P_{\text{pos}} = [p_1, p_2, \dots, p_n] Ppos?=[p1?,p2?,,pn?]
    • 因為 p m p_m pm? 與位置綁定,置換后位置編碼也會重排(如 P P pos P P_{\text{pos}} PPpos?),導致 X new ′ ≠ X new X_{\text{new}}' \neq X_{\text{new}} Xnew?=Xnew?。這使得注意力計算的結果不再僅僅是行的重排,模型能夠感知位置差異。
  • 例子
    • 三角函數位置編碼(原Transformer): P E ( pos , 2 i ) = sin ? ( pos 1000 0 2 i / d ) , P E ( pos , 2 i + 1 ) = cos ? ( pos 1000 0 2 i / d ) PE(\text{pos}, 2i) = \sin\left(\frac{\text{pos}}{10000^{2i / d}}\right), \quad PE(\text{pos}, 2i+1) = \cos\left(\frac{\text{pos}}{10000^{2i / d}}\right) PE(pos,2i)=sin(100002i/dpos?),PE(pos,2i+1)=cos(100002i/dpos?) 不同位置的編碼向量具有獨特的頻率模式。
  • 效果
    • 通過為每個詞元添加位置標識,打破了置換不變性,模型可以區分不同位置的詞元。
1.2.2 相對位置編碼
  • 原理
    • 直接在注意力機制中引入詞元間的相對位置信息,通常通過修改注意力權重的計算方式。例如,在注意力分數中加入與相對位置 i ? j i - j i?j 相關的偏置項。
  • 數學表現
    • 修改注意力分數計算: a i j = q i T k j + q i T R i ? j a_{ij} = q_i^T k_j + q_i^T R_{i-j} aij?=qiT?kj?+qiT?Ri?j? 其中 R i ? j R_{i-j} Ri?j? 是相對位置 i ? j i - j i?j 的編碼向量。
    • 置換輸入后,相對位置 i ? j i - j i?j 會隨之改變,導致注意力權重 A A A 的計算結果不同,輸出不再是簡單重排。
  • 例子
    • Transformer-XL a i j = q i T k j + q i T R i ? j + u T k j + v T R i ? j a_{ij} = q_i^T k_j + q_i^T R_{i-j} + u^T k_j + v^T R_{i-j} aij?=qiT?kj?+qiT?Ri?j?+uTkj?+vTRi?j? R i ? j R_{i-j} Ri?j? 使用正弦余弦函數生成,依賴相對距離。
  • 效果
    • 相對位置編碼直接捕捉詞元間的相對距離或順序,使模型對位置變化敏感。

1.3 數學分析:Taylor展開的視角

在Transformer模型中,位置編碼(Positional Encoding)是解決自注意力機制無法捕捉詞元順序的關鍵機制。通過將模型輸出函數 f ( X ) f(X) f(X) 在加入位置編碼后的輸入 X + P pos X+P_{\text{pos}} X+Ppos? 處進行Taylor展開,我們可以從數學視角深入理解位置編碼如何引入絕對位置信息相對位置信息

f ~ ( X + P pos ) ≈ f ( X ) + p m T ? f ? x m + p n T ? f ? x n + p m T ? 2 f ? x m 2 p m + p n T ? 2 f ? x n 2 p n + p m T ? 2 f ? x m ? x n p n \tilde{f}(X + P_{\text{pos}}) \approx f(X) + p_m^T \frac{\partial f}{\partial x_m} + p_n^T \frac{\partial f}{\partial x_n} + p_m^T \frac{\partial^2 f}{\partial x_m^2} p_m + p_n^T \frac{\partial^2 f}{\partial x_n^2} p_n + p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n f~?(X+Ppos?)f(X)+pmT??xm??f?+pnT??xn??f?+pmT??xm2??2f?pm?+pnT??xn2??2f?pn?+pmT??xm??xn??2f?pn?

其中:

  • X X X 是輸入序列的詞元嵌入矩陣, x m x_m xm? x n x_n xn? 是位置 m m m n n n 的詞元嵌入向量。

  • P pos P_{\text{pos}} Ppos? 是位置編碼矩陣, p m p_m pm? p n p_n pn? 是位置 m m m n n n 的位置編碼向量。

  • f ( X ) f(X) f(X) 是模型輸出函數, f ~ ( X + P pos ) \tilde{f}(X + P_{\text{pos}}) f~?(X+Ppos?) 是加入位置編碼后的輸出。

展開式中的項可以分為兩類:絕對位置信息(前四項)和相對位置信息(最后一項)。下面,我們將更深入地分析這些項的含義,并通過具體例子闡釋其作用。

1.3.1 絕對位置信息

絕對位置信息由以下四項表示:

  • p m T ? f ? x m p_m^T \frac{\partial f}{\partial x_m} pmT??xm??f? p n T ? f ? x n p_n^T \frac{\partial f}{\partial x_n} pnT??xn??f?(一階項)

  • p m T ? 2 f ? x m 2 p m p_m^T \frac{\partial^2 f}{\partial x_m^2} p_m pmT??xm2??2f?pm? p n T ? 2 f ? x n 2 p n p_n^T \frac{\partial^2 f}{\partial x_n^2} p_n pnT??xn2??2f?pn?(二階單位置項)

數學含義
  • 一階項

    • ? f ? x m \frac{\partial f}{\partial x_m} ?xm??f? 是模型輸出 f f f 對位置 m m m 的詞元嵌入 x m x_m xm? 的梯度,表示輸出對該詞元的線性敏感度。

    • p m T ? f ? x m p_m^T \frac{\partial f}{\partial x_m} pmT??xm??f? 是位置編碼向量 p m p_m pm? 與梯度的點積,反映了位置 m m m 的編碼對輸出的直接調整。

    • 這類似于為每個位置的詞元添加一個獨立的"位置偏移",使模型感知到"這個詞元在位置 m m m"。

  • 二階單位置項

    • ? 2 f ? x m 2 \frac{\partial^2 f}{\partial x_m^2} ?xm2??2f? 是模型輸出的二階導數,表示輸出對 x m x_m xm? 的非線性影響(曲率)。

    • p m T ? 2 f ? x m 2 p m p_m^T \frac{\partial^2 f}{\partial x_m^2} p_m pmT??xm2??2f?pm? 是位置編碼 p m p_m pm? 通過二階導數對輸出的調整,增強了對單一位置的建模。

    • 這可以看作是對位置 m m m 的"深度調整",進一步強調其絕對位置特性。

特點
  • 這些項僅依賴單一位置的編碼( p m p_m pm? p n p_n pn?),不涉及其他位置的交互,因此反映了絕對位置信息

  • 它們為每個詞元提供了一個獨立的位置標識,使模型能夠區分不同位置的詞元。

例子
  • 場景:考慮一個簡單的語言模型,輸入序列為"貓追狗"(位置 m = 1 , n = 2 , k = 3 m=1, n=2, k=3 m=1,n=2,k=3),詞嵌入分別為 x 1 , x 2 , x 3 x_1, x_2, x_3 x1?,x2?,x3?,位置編碼為 p 1 , p 2 , p 3 p_1, p_2, p_3 p1?,p2?,p3?(如三角函數編碼)。

  • 絕對位置作用

    • p 1 T ? f ? x 1 p_1^T \frac{\partial f}{\partial x_1} p1T??x1??f? 調整"貓"(位置1)的輸出貢獻,可能使模型更關注句首詞。

    • p 2 T ? 2 f ? x 2 2 p 2 p_2^T \frac{\partial^2 f}{\partial x_2^2} p_2 p2T??x22??2f?p2? 增強"追"(位置2)的非線性影響,強調動詞的獨立作用。

  • 實際效果:模型通過這些項區分"貓"在位置1和"狗"在位置3,即使內容相同,也能感知順序差異。

與絕對位置編碼的關系
  • 絕對位置編碼(如三角函數編碼或可訓練編碼)主要通過這些單位置項起作用。它們為每個位置賦予獨特標識(如 p m p_m pm?),使模型在輸入層感知絕對位置。
1.3.2 相對位置信息

相對位置信息由最后一項表示:

  • p m T ? 2 f ? x m ? x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmT??xm??xn??2f?pn?(二階交互項)
數學含義
  • ? 2 f ? x m ? x n \frac{\partial^2 f}{\partial x_m \partial x_n} ?xm??xn??2f? 是模型輸出對位置 m m m n n n 的詞元嵌入 x m x_m xm? x n x_n xn? 的混合二階導數,表示兩位置之間的相互影響。

  • p m T ? 2 f ? x m ? x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmT??xm??xn??2f?pn? 是位置編碼 p m p_m pm? p n p_n pn? 與混合導數的交互,反映了位置 m m m n n n 的聯合效應。

  • 這項捕捉了相對位置信息,因為它依賴于 p m p_m pm? p n p_n pn? 之間的關系,通常與兩位置的相對距離或順序相關。

特點
  • 與絕對位置項不同,這一項涉及兩個位置的交互,體現了位置之間的相對關系。

  • 在自注意力機制中,這對應于詞元對(如 m m m n n n)的注意力權重如何受相對位置影響。

例子
  • 場景:繼續使用"貓追狗",假設 m = 1 m=1 m=1(“貓”), n = 2 n=2 n=2(“追”)。

  • 相對位置作用

    • p 1 T ? 2 f ? x 1 ? x 2 p 2 p_1^T \frac{\partial^2 f}{\partial x_1 \partial x_2} p_2 p1T??x1??x2??2f?p2? 表示"貓"和"追"之間的交互效應。

    • 在自注意力中,這可能影響注意力權重 a 12 = softmax ( q 1 T k 2 d k ) a_{12} = \text{softmax}\left( \frac{q_1^T k_2}{\sqrt{d_k}} \right) a12?=softmax(dk? ?q1T?k2??),使模型更關注主語和動詞的鄰近關系。

  • 實際效果

    • 如果序列變為"狗追貓",位置 m = 1 m=1 m=1(“狗”)和 n = 2 n=2 n=2(“追”)的相對關系不變,但具體編碼 p m p_m pm? p n p_n pn? 的值不同,交互項隨之調整,反映新的順序。
與相對位置編碼的關系
  • 相對位置編碼(如Transformer-XL、RoPE)直接通過這種交互項建模位置關系。例如:

    • 在注意力分數中加入相對位置偏置 R m ? n R_{m-n} Rm?n?,使 a m n a_{mn} amn? 依賴 m m m n n n 的距離。

    • 這與 p m T ? 2 f ? x m ? x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmT??xm??xn??2f?pn? 的形式一致,明確捕捉相對位置效應。

1.3.3 更深入的解釋
絕對位置信息的作用機制
  • 獨立性:單位置項(如 p m T ? f ? x m p_m^T \frac{\partial f}{\partial x_m} pmT??xm??f?)為每個詞元提供獨立調整,使模型感知"這是第 m m m 個位置"。

  • Transformer中的體現

    • 輸入變為 x m + p m x_m + p_m xm?+pm?,自注意力計算 q m = ( x m + p m ) W Q q_m = (x_m + p_m) W_Q qm?=(xm?+pm?)WQ?,鍵和值類似。

    • 注意力分數 q m T k n q_m^T k_n qmT?kn? 包含 p m T W Q W K T x n p_m^T W_Q W_K^T x_n pmT?WQ?WKT?xn?,獨立調整每個位置的貢獻。

  • 局限:絕對位置編碼需通過模型學習間接推斷相對關系,效率較低。

相對位置信息的作用機制
  • 交互性:交互項(如 p m T ? 2 f ? x m ? x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmT??xm??xn??2f?pn?)直接建模位置 m m m n n n 的關系。

  • Transformer中的體現

    • 在自注意力中, q m T k n = ( x m + p m ) T W Q W K T ( x n + p n ) q_m^T k_n = (x_m + p_m)^T W_Q W_K^T (x_n + p_n) qmT?kn?=(xm?+pm?)TWQ?WKT?(xn?+pn?),展開后包含 p m T W Q W K T p n p_m^T W_Q W_K^T p_n pmT?WQ?WKT?pn?

    • 這一項依賴 p m p_m pm? p n p_n pn? 的交互,與相對距離相關,直接影響 a m n a_{mn} amn?

  • 優勢:相對位置編碼更自然地捕捉語言中的相對順序,如動詞和賓語的距離。

結合實例
  • 絕對位置編碼

    • 三角函數編碼為位置1(“貓”)生成 p 1 = [ sin ? ( 1 / 1000 0 2 i / d ) , cos ? ( 1 / 1000 0 2 i / d ) ] p_1 = [\sin(1/10000^{2i/d}), \cos(1/10000^{2i/d})] p1?=[sin(1/100002i/d),cos(1/100002i/d)],獨立標識其位置。

    • 模型通過 p 1 T ? f ? x 1 p_1^T \frac{\partial f}{\partial x_1} p1T??x1??f? 調整"貓"的權重。

  • 相對位置編碼

    • Transformer-XL中, p 1 T W Q W K T p 2 p_1^T W_Q W_K^T p_2 p1T?WQ?WKT?p2? 表示"貓"和"追"的相對位置效應,調整注意力權重。

    • 若距離為1(如鄰近),交互項增強關聯;若距離變大,效應減弱。

1.3.4 總結與意義
  • 絕對位置信息

    • 通過單位置項(如 p m T ? f ? x m p_m^T \frac{\partial f}{\partial x_m} pmT??xm??f?)為每個詞元提供獨立標識。

    • 對應絕對位置編碼(如三角函數編碼),在輸入層打破置換不變性。

    • 示例:區分"貓"在位置1和"狗"在位置3。

  • 相對位置信息

    • 通過交互項(如 p m T ? 2 f ? x m ? x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmT??xm??xn??2f?pn?)捕捉位置間關系。

    • 對應相對位置編碼(如RoPE),直接調整注意力權重。

    • 示例:增強"貓"和"追"的鄰近關系。

  • 綜合效果

    • 絕對位置編碼奠定基礎,相對位置編碼優化關系建模,二者共同使Transformer感知順序,適應復雜語言任務。

1.4 所有位置編碼都是為了解決置換不變性嗎?

位置編碼的主要目的是解決置換不變性,但并非其唯一作用。不同的位置編碼方法在實現這一目標的同時,還可能帶來其他效果或改變模型行為:

  • 是的,解決置換不變性是核心目標

    • 無論是絕對位置編碼還是相對位置編碼,其根本目的是讓模型感知詞元順序,打破自注意力的對稱性。
    • 例如,三角函數編碼、可訓練編碼、RoPE等都旨在引入位置依賴性。
  • 除此之外的額外作用

    1. 外推性(Extrapolation)
      • 定義:外推性是指模型在處理比訓練時見過的序列更長的輸入時,依然能夠保持良好性能的能力。也就是說,模型能夠"外推"到訓練數據分布之外的序列長度。
      • 某些位置編碼(如三角函數編碼、相對位置編碼)具有良好的外推性,能處理比訓練時更長的序列。可訓練位置編碼則受限于預定義長度。
    2. 計算效率
      • 絕對位置編碼(如可訓練編碼)增加存儲需求,相對位置編碼(如RoPE)可能增加注意力計算的開銷。
    3. 任務適應性
      • 相對位置編碼更適合自然語言處理任務,因為語言中相對順序通常比絕對位置更重要(如句法關系)。
    4. 模型表達能力
      • 相對位置編碼(如Transformer-XL)增強了對長距離依賴的捕捉能力;RoPE結合絕對和相對位置優勢,提升線性注意力的性能。
    5. 創新性設計
      • 一些新型位置編碼(如遞歸位置編碼FLOATER)不僅解決順序問題,還通過動態系統建模增強長序列處理能力。

1.5 總結

  • 如何解決置換不變性
    • 位置編碼通過引入位置信息打破自注意力的對稱性。絕對位置編碼為每個詞元添加獨特標識,相對位置編碼直接建模詞元間關系。
  • 數學表現
    • 置換不變性體現為 Attention ( P X ) = P ? Attention ( X ) \text{Attention}(P X) = P \cdot \text{Attention}(X) Attention(PX)=P?Attention(X)。位置編碼使輸入或注意力計算依賴位置,置換后結果不再等價。
    • Taylor展開顯示其包含絕對位置項和相對位置項。
  • 是否只為置換不變性
    • 核心目標是解決置換不變性,但也帶來外推性、效率、適應性等額外改變。

2. 注意力機制的查詢與位置向量:理解它們的關系與作用過程

2.1 基礎概念回顧

2.1.1 注意力機制的核心組件

注意力機制基于三種向量:查詢(Query)向量、鍵(Key)向量和值(Value)向量。這些向量通過以下方式生成:

  1. 輸入嵌入:每個詞元首先被轉換為嵌入向量 x i x_i xi?
  2. 線性變換:通過權重矩陣將嵌入向量投影為查詢、鍵和值
    • 查詢向量: q i = x i W Q q_i = x_i W_Q qi?=xi?WQ?
    • 鍵向量: k i = x i W K k_i = x_i W_K ki?=xi?WK?
    • 值向量: v i = x i W V v_i = x_i W_V vi?=xi?WV?
2.1.2 位置編碼的角色

位置編碼為每個位置生成一個向量表示,使模型能夠理解序列中詞元的順序。基本形式是:

  • 對于位置 p p p,生成位置編碼向量 P E ( p ) PE(p) PE(p)
  • 將位置編碼加到輸入嵌入: x i + P E ( i ) x_i + PE(i) xi?+PE(i)

2.2 位置向量與查詢向量的關系

現在,讓我解釋位置向量如何影響查詢向量,以及整個注意力計算過程。這里我將采用旋轉位置編碼(RoPE)作為例子,因為它最直接地展示了位置信息與查詢/鍵向量的交互。

2.2.1 標準注意力機制中的作用過程

在標準的Transformer中(使用加性位置編碼,如正弦位置編碼),過程如下:

  1. 位置信息融入

    • 將位置編碼加到輸入嵌入: x ~ i = x i + P E ( i ) \tilde{x}_i = x_i + PE(i) x~i?=xi?+PE(i)
    • 生成查詢向量: q i = x ~ i W Q = ( x i + P E ( i ) ) W Q q_i = \tilde{x}_i W_Q = (x_i + PE(i)) W_Q qi?=x~i?WQ?=(xi?+PE(i))WQ?
    • 生成鍵向量: k j = x ~ j W K = ( x j + P E ( j ) ) W K k_j = \tilde{x}_j W_K = (x_j + PE(j)) W_K kj?=x~j?WK?=(xj?+PE(j))WK?
  2. 注意力計算

    • 計算注意力分數: a i j = q i ? k j d k a_{ij} = \frac{q_i \cdot k_j}{\sqrt{d_k}} aij?=dk? ?qi??kj??
    • 應用softmax歸一化: α i j = softmax ( a i j ) \alpha_{ij} = \text{softmax}(a_{ij}) αij?=softmax(aij?)
    • 加權求和值向量: o i = ∑ j α i j v j o_i = \sum_j \alpha_{ij} v_j oi?=j?αij?vj?

在這個過程中,位置信息間接地影響了查詢和鍵向量,從而影響注意力分數的計算。

2.2.2 RoPE中的作用過程

在旋轉位置編碼中,位置信息與查詢和鍵向量的交互更加直接和明確:

  1. 位置旋轉應用

    • 生成基礎查詢向量: q i = x i W Q q_i = x_i W_Q qi?=xi?WQ?
    • 應用位置旋轉: q ^ i = R θ , i q i \hat{q}_i = R_{\theta, i} q_i q^?i?=Rθ,i?qi?
    • 同樣地,對鍵向量: k ^ j = R θ , j k j \hat{k}_j = R_{\theta, j} k_j k^j?=Rθ,j?kj?

    其中 R θ , p R_{\theta, p} Rθ,p? 是基于位置 p p p 的旋轉矩陣。

  2. 注意力計算

    • 計算旋轉后的注意力分數: a i j = q ^ i ? k ^ j = q i ? R θ , i ? j k j a_{ij} = \hat{q}_i \cdot \hat{k}_j = q_i \cdot R_{\theta, i-j} k_j aij?=q^?i??k^j?=qi??Rθ,i?j?kj?
    • 應用softmax歸一化: α i j = softmax ( a i j ) \alpha_{ij} = \text{softmax}(a_{ij}) αij?=softmax(aij?)
    • 加權求和值向量: o i = ∑ j α i j v j o_i = \sum_j \alpha_{ij} v_j oi?=j?αij?vj?

注意關鍵的數學性質: q ^ i ? k ^ j = q i ? R θ , i ? j k j \hat{q}_i \cdot \hat{k}_j = q_i \cdot R_{\theta, i-j} k_j q^?i??k^j?=qi??Rθ,i?j?kj?。這表明旋轉后的點積直接編碼了相對位置 i ? j i-j i?j,使模型能夠明確感知詞元間的相對位置關系。

2.3 詳細的作用過程示例

讓我通過一個具體例子來說明位置向量和查詢向量如何協同工作。假設我們處理一個簡單的句子:“人工智能正在快速發展”。

2.3.1 步驟1: 輸入處理與位置融合

以RoPE為例,處理流程如下:

  1. 詞元嵌入:每個詞元轉換為嵌入向量

    • “人工” → x 0 x_0 x0?
    • “智能” → x 1 x_1 x1?
    • “正在” → x 2 x_2 x2?
    • “快速” → x 3 x_3 x3?
    • “發展” → x 4 x_4 x4?
  2. 生成查詢和鍵向量

    • q 0 = x 0 W Q q_0 = x_0 W_Q q0?=x0?WQ?, k 0 = x 0 W K k_0 = x_0 W_K k0?=x0?WK? (位置0)
    • q 1 = x 1 W Q q_1 = x_1 W_Q q1?=x1?WQ?, k 1 = x 1 W K k_1 = x_1 W_K k1?=x1?WK? (位置1)
    • … 以此類推
  3. 應用位置旋轉

    • q ^ 0 = R θ , 0 q 0 \hat{q}_0 = R_{\theta, 0} q_0 q^?0?=Rθ,0?q0?, k ^ 0 = R θ , 0 k 0 \hat{k}_0 = R_{\theta, 0} k_0 k^0?=Rθ,0?k0?
    • q ^ 1 = R θ , 1 q 1 \hat{q}_1 = R_{\theta, 1} q_1 q^?1?=Rθ,1?q1?, k ^ 1 = R θ , 1 k 1 \hat{k}_1 = R_{\theta, 1} k_1 k^1?=Rθ,1?k1?
    • … 以此類推

在這個過程中,每個查詢和鍵向量都通過位置特定的旋轉變換,將位置信息編入向量表示中。

2.3.2 步驟2: 注意力計算

考慮位置2的詞元"正在"如何與其他詞元交互:

  1. 計算注意力分數:對于每個位置 j j j,計算 a 2 j = q ^ 2 ? k ^ j a_{2j} = \hat{q}_2 \cdot \hat{k}_j a2j?=q^?2??k^j?

    • 與"人工"的注意力: a 20 = q ^ 2 ? k ^ 0 = q 2 ? R θ , 2 ? 0 k 0 = q 2 ? R θ , 2 k 0 a_{20} = \hat{q}_2 \cdot \hat{k}_0 = q_2 \cdot R_{\theta, 2-0} k_0 = q_2 \cdot R_{\theta, 2} k_0 a20?=q^?2??k^0?=q2??Rθ,2?0?k0?=q2??Rθ,2?k0?
    • 與"智能"的注意力: a 21 = q ^ 2 ? k ^ 1 = q 2 ? R θ , 2 ? 1 k 1 = q 2 ? R θ , 1 k 1 a_{21} = \hat{q}_2 \cdot \hat{k}_1 = q_2 \cdot R_{\theta, 2-1} k_1 = q_2 \cdot R_{\theta, 1} k_1 a21?=q^?2??k^1?=q2??Rθ,2?1?k1?=q2??Rθ,1?k1?
    • 與自身的注意力: a 22 = q ^ 2 ? k ^ 2 = q 2 ? R θ , 2 ? 2 k 2 = q 2 ? R θ , 0 k 2 = q 2 ? k 2 a_{22} = \hat{q}_2 \cdot \hat{k}_2 = q_2 \cdot R_{\theta, 2-2} k_2 = q_2 \cdot R_{\theta, 0} k_2 = q_2 \cdot k_2 a22?=q^?2??k^2?=q2??Rθ,2?2?k2?=q2??Rθ,0?k2?=q2??k2?
    • 與"快速"的注意力: a 23 = q ^ 2 ? k ^ 3 = q 2 ? R θ , 2 ? 3 k 3 = q 2 ? R θ , ? 1 k 3 a_{23} = \hat{q}_2 \cdot \hat{k}_3 = q_2 \cdot R_{\theta, 2-3} k_3 = q_2 \cdot R_{\theta, -1} k_3 a23?=q^?2??k^3?=q2??Rθ,2?3?k3?=q2??Rθ,?1?k3?
    • 與"發展"的注意力: a 24 = q ^ 2 ? k ^ 4 = q 2 ? R θ , 2 ? 4 k 4 = q 2 ? R θ , ? 2 k 4 a_{24} = \hat{q}_2 \cdot \hat{k}_4 = q_2 \cdot R_{\theta, 2-4} k_4 = q_2 \cdot R_{\theta, -2} k_4 a24?=q^?2??k^4?=q2??Rθ,2?4?k4?=q2??Rθ,?2?k4?
  2. 應用softmax α 2 j = softmax ( a 2 j ) \alpha_{2j} = \text{softmax}(a_{2j}) α2j?=softmax(a2j?)

    這將注意力分數歸一化為概率分布,表示"正在"對每個位置的關注程度。

  3. 加權聚合值向量 o 2 = ∑ j α 2 j v j o_2 = \sum_j \alpha_{2j} v_j o2?=j?α2j?vj?

    這一步合成了與"正在"相關聯的信息,同時考慮了位置關系。

2.3.3 關鍵觀察

在上面的例子中,我們可以觀察到幾個重要特點:

  1. 相對位置的直接編碼:注意力分數 a 2 j a_{2j} a2j? 直接依賴于相對位置 2 ? j 2-j 2?j,通過 R θ , 2 ? j R_{\theta, 2-j} Rθ,2?j? 編碼。

  2. 自注意力的特殊性:當 i = j i=j i=j 時(詞元與自身的注意力),旋轉矩陣變為單位矩陣 R θ , 0 R_{\theta, 0} Rθ,0?,使得 a i i = q i ? k i a_{ii} = q_i \cdot k_i aii?=qi??ki?,這是標準內積。

  3. 前后關系的區分

    • 前面的詞元(如"人工"和"智能")通過正相對位置 ( + 2 , + 1 ) (+2, +1) (+2,+1) 編碼
    • 后面的詞元(如"快速"和"發展")通過負相對位置 ( ? 1 , ? 2 ) (-1, -2) (?1,?2) 編碼

    這使模型能夠區分前后文關系。

2.4 位置向量如何影響注意力分布

位置編碼對注意力分布的影響是多方面的,這種影響通過以下機制實現:

2.4.1 相對距離敏感性

在RoPE中,旋轉矩陣 R θ , i ? j R_{\theta, i-j} Rθ,i?j? 編碼相對距離 i ? j i-j i?j,這使得模型能夠學習距離敏感的注意力模式:

  • 近距離偏好:模型可以學習給予臨近詞元更高的注意力
  • 語法依賴:捕捉如主謂關系等可能跨越多個位置的結構
  • 長距離關聯:識別遠距離的相關信息,如代詞與其指代對象
2.4.2 方向感知

RoPE的一個關鍵特性是它能區分正負相對位置,即前文和后文:

  • i > j i > j i>j 時(關注前面的內容),旋轉矩陣是 R θ , + ( i ? j ) R_{\theta, +(i-j)} Rθ,+(i?j)?
  • i < j i < j i<j 時(關注后面的內容),旋轉矩陣是 R θ , ? ( j ? i ) R_{\theta, -(j-i)} Rθ,?(j?i)?

這使模型能夠學習方向敏感的注意力模式,例如在英語中,形容詞通常在名詞前面,而在漢語中,形容詞的位置可能更靈活。

2.4.3 頻率差異化

RoPE使用不同頻率的旋轉,對應于向量的不同維度:

  • 高頻組件(向量的前幾對維度)對小的位置變化敏感,有助于捕捉局部結構
  • 低頻組件(向量的后幾對維度)對大的位置變化敏感,有助于捕捉全局結構

這種多尺度表示使模型能夠同時關注局部語法關系和全局文檔結構。

2.5 注意力查詢和位置向量的共同演化

在訓練過程中,注意力機制的查詢向量和位置編碼不是靜態的,而是通過反向傳播共同演化:

  1. 查詢投影學習:權重矩陣 W Q W_Q WQ? 學習如何從輸入嵌入生成有效的查詢向量

  2. 位置解釋學習:模型學習如何解釋位置編碼提供的位置信息

  3. 位置敏感的內容識別:模型逐漸發展出位置感知的表示,使相同詞在不同位置可以有不同的解釋

這種共同演化使模型能夠形成復雜的注意力模式,例如:

  • 在句子開頭關注主語
  • 在動詞后關注賓語
  • 在代詞處回溯尋找指代對象

2.6 實際應用中的表現

在實際應用中,位置編碼與注意力查詢的交互表現出豐富的模式:

2.6.1 例子:情感分析任務

考慮句子:“這部電影很無聊,但演員表演精彩”。

在沒有位置編碼的情況下,模型可能無法區分"無聊"和"精彩"分別修飾什么,導致情感判斷混淆。

有了位置編碼,注意力查詢能夠正確關聯:

  • “無聊"與"電影”
  • “精彩"與"演員表演”
  • "但"作為轉折關系的信號

這種正確的關聯是通過位置編碼與查詢向量的交互實現的。

2.6.2 例子:翻譯任務

在翻譯英語到中文時,位置編碼幫助模型處理兩種語言不同的語法結構:

英語:“The red car is parked outside the building.” 中文:“紅色的汽車停在建筑物外面。”

位置編碼使模型能夠學習:

  • 英語中形容詞在名詞前(“red car”)
  • 英語中使用被動語態的位置結構
  • 中文中表達位置關系的不同方式

這種跨語言的結構映射依賴于位置編碼與注意力機制的緊密協作。

參考

更詳細的分類和介紹

  1. 蘇神科學空間
  2. https://0809zheng.github.io/2022/07/01/posencode.html
  3. Rope解析

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905803.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905803.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905803.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在人臉識別項目中ffmpeg有什么作用

在人臉識別項目中&#xff0c;FFmpeg 主要用于處理視頻文件或流媒體數據。盡管 FFmpeg 本身并不是直接用于人臉識別的工具&#xff0c;但它通過其強大的多媒體處理能力&#xff0c;在很多方面間接支持了人臉識別任務的執行。以下是 FFmpeg 在人臉識別項目中的幾個主要作用&…

問題 | 國內外軟件定義衛星最新進展研究

軟件定義衛星 **一、國內進展****二、國際進展****三、未來發展方向****總結** 軟件定義衛星&#xff08;Software-Defined Satellite, SDS&#xff09;作為航天領域的重要技術革新方向&#xff0c;近年來在全球范圍內發展迅速。其核心是通過開放式架構和動態軟件配置實現衛星功…

【專利信息服務平臺-注冊/登錄安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊&#xff0c;存在如下安全問題&#xff1a; 暴力破解密碼&#xff0c;造成用戶信息泄露短信盜刷的安全問題&#xff0c;影響業務及導致用戶投訴帶來經濟損失&#xff0c;尤其是后付費客戶&#xff0c;風險巨大&#xff0c;造成虧損無底洞…

【Linux專欄】Linux進程間關系和守護進程

文章目錄 1、進程間關系1.1 進程組1.2 組長進程 2、會話&#xff1f;2.1 查看會話2.2 創建會話 3、控制終端4、作業控制4.1 前臺/后臺進程 5、守護進程5.1 如何創建守護進程&#xff1f;5.2 殺掉守護進程 1、進程間關系 主要描述兩個名稱概念&#xff1a;即進程組和組長進程。…

電商物流管理優化:從網絡重構到成本管控的全鏈路解析

大家好&#xff0c;我是沛哥兒。作為電商行業&#xff0c;我始終認為物流是電商體驗的“最后一公里”&#xff0c;更是成本控制的核心戰場。隨著行業競爭加劇&#xff0c;如何通過物流網絡優化實現降本增效&#xff0c;已成為電商企業的必修課。本文將從物流網絡的各個環節切入…

ubuntu 更新華為源

1. 備份配置文件 sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak 2. 修改source.list 文件&#xff0c;將http://archive.ubuntu.com和http://security.ubuntu.com替換成http://repo.huaweicloud.com&#xff0c;可以參考如下命令&#xff1a; # 第一條指令 s…

CS016-4-unity ecs

【37】將系統轉換為任務 Converting System to Job 【Unity6】使用DOTS制作RTS游戲|17小時完整版|CodeMonkey|【37】將系統轉換為任務 Converting System to Job_嗶哩嗶哩_bilibili a. 將普通的方法&#xff0c;轉化成job。第一個是寫一個partial struct xxx&#xff1b;第二…

如何使用 React Hooks 替代類組件的生命周期方法?

文章目錄 1. 引言2. useEffect 概述3. 模擬類組件的生命周期方法3.1 模擬 componentDidMount3.2 模擬 componentDidUpdate3.3 模擬 componentWillUnmount 4. 多個 useEffect 的使用5. 注意事項6. 總結 1. 引言 在 React 16.8 版本之前&#xff0c;開發者主要通過類組件&#x…

盒帶自編教材《軟件工程》目錄

目錄 前言 第1章 軟件工程概述 1.1 軟件概述 1.1.1 軟件的定義 1.1.2 軟件的特點 1.1.3 軟件的分類 1.1.4 軟件的發展 1.2 軟件危機 1.2.1 什么是軟件危機 1.2.2 產生的原因及解決途徑 1.3 軟件工程 1.3.1 軟件工程定義 1.3.2 軟件工程的研究內容 1.3.3 軟件工程的目標和原則…

CAN通信協議傳輸數據,為什么喜歡低位在前高位在后?而RS485則更傾向高位在前低位在后?

CAN 通信協議通常采用低位在前&#xff08;小端字節序&#xff09;&#xff0c;而 RS - 485 本身沒有固定要求高位在前或低位在后&#xff0c;其數據傳輸順序更多取決于具體應用和上層協議。 CAN 通信協議低位在前的原因 硬件設計與實現角度 邏輯電路處理便捷&#xff1a;數…

NGINX 安全性:持續進化的防護能力,為您的應用保駕護航

在數字時代,網絡安全的重要性不言而喻。任何暴露在互聯網上的應用都可能成為攻擊者的目標。作為互聯網基礎設施的關鍵組成部分,NGINX 不僅是高性能的 Web 服務器和反向代理,更在應用安全防護方面扮演著至關重要的角色。它就像您數字資產的“第一道防線”和“智能門禁”,憑借…

makefile細節說明

在 Makefile中&#xff0c;依賴關系的左右兩部分有特定的名稱&#xff1a; ??左邊部分&#xff08;冒號左側&#xff09;?? 稱為 ??目標&#xff08;Target&#xff09;?? ??右邊部分&#xff08;冒號右側&#xff09;?? 稱為 ??依賴項&#xff08;Prerequisite…

Zephyr OS Nordic芯片的Flash 操作

目錄 概述 1. 軟硬件環境 1.1 軟件開發環境 1.2 硬件環境 2 Flash操作庫函數 2.1 nRF52832的Flash 2.2 Nordic 特有的 Flash 操作 2.2.1 nrfx_nvmc_bytes_write 函數 2.2.2 nrfx_nvmc_page_erase函數 2.2.3 nrfx_nvmc_write_done_check 函數 3 操作Flash的接口函數…

03、基礎入門-SpringBoot的大時代背景

03、基礎入門-SpringBoot的大時代背景 # Spring Boot的大時代背景 Spring Boot的出現和發展&#xff0c;與以下時代背景密切相關&#xff1a; ## 1. 微服務架構的興起 ### 背景 隨著互聯網應用的復雜度增加&#xff0c;傳統的單體架構在擴展性、維護性和團隊協作方面遇到瓶…

ChromaDB 向量庫優化技巧實戰

chroma 一步步使用 安裝 # 安裝chromadb pip install chromadb,sentence_transformers# 不啟動服務會出現sock.connect(sa)TimeoutError: timed out chroma run服務啟動后&#xff0c;您將看到類似以下輸出&#xff1a; 建立連接 部署完成后&#xff0c;需要建立與Chroma服…

全球泳裝與沙灘裝市場深度洞察:從功能性需求到可持續時尚的蛻變(2025-2031)

泳裝與沙灘裝作為水上活動與度假場景的核心服飾&#xff0c;正經歷從單一功能性產品向“科技時尚可持續”融合的轉型。根據QYResearch預測&#xff0c;2031年全球市場規模將達2512.4億元人民幣&#xff0c;年復合增長率&#xff08;CAGR&#xff09;4.0%&#xff08;2025-2031&…

WebRTC技術下的EasyRTC音視頻實時通話SDK,助力車載通信打造安全高效的智能出行體驗

一、方案背景? 隨著智能交通與車聯網技術的飛速發展&#xff0c;車載通信在提升行車安全、優化駕駛體驗以及實現智能交通管理等方面發揮著越來越重要的作用。傳統的車載通信方式在實時性、穩定性以及多媒體交互能力上存在一定局限&#xff0c;難以滿足現代車載場景日益復雜的…

主流數據庫運維故障排查卡片式速查表與視覺圖譜

主流數據庫運維故障排查卡片式速查表與視覺圖譜 本文件將主文檔內容轉化為模塊化卡片結構&#xff0c;并補充數據庫結構圖、排查路徑圖、鎖機制對比等視覺圖譜&#xff0c;以便在演示、教學或現場排障中快速引用。 &#x1f4cc; 故障卡片速查&#xff1a;連接失敗 數據庫檢查…

升級kafka4.0.0,無ZK版本

設備規劃&#xff1a; 172.20.192.47 kafka-0 172.20.192.48 kafka-1 172.20.192.49 kafka-2 單機塊7TB Nvme磁盤一共9塊 # 格式化成GPT分區 sudo parted /dev/nvme0n1 --script mklabel gpt sudo parted /dev/nvme1n1 --script mklabel gpt sudo parted /dev/nvme2n1 --s…

Vue 學習隨筆系列二十三 -- el-date-picker 組件

el-date-picker 組件 文章目錄 el-date-picker 組件el-date-picker 只有某些日期可選 el-date-picker 只有某些日期可選 <template><div><el-form ref"form" size"mini":model"form" :rules"rules"label-width"8…