Klasyczne self-attention liczy score_ij = (W_Q x_i)·(W_K x_j) / √d. RPR rozszerza tę formułę o uczone reprezentacje pozycji względnej: score_ij = (W_Q x_i)·(W_K x_j + a^K_{i-j}) / √d, a wyjście attention dostaje analogiczny człon: out_i = Σ_j softmax(score)_ij · (W_V x_j + a^V_{i-j}). Tabele a^K i a^V są małe — zawierają (2k+1) wektorów odpowiadających odległościom względnym przyciętym do zakresu [-k, +k]. Wszystkie odległości |i-j| > k są mapowane na klipowaną wartość ±k, więc model widzi „daleko / bardzo daleko" jako pojedynczą kategorię. Pozycje absolutne NIE są dodawane do embeddingu wejściowego — informacja o pozycji żyje wyłącznie w blokach attention. Każda warstwa może mieć osobne tabele a^K, a^V lub współdzielić je między warstwami (oba warianty są przebadane w pracy).
Absolutne kodowania pozycji (sinusoidal, learned PE) modelują „pozycję jako numer", co jest nienaturalne dla wielu zadań językowych — gramatyka i znaczenie zależą od odległości między słowami, a nie od ich numerycznej pozycji w zdaniu. RPR pokazuje, że jawne modelowanie relacji „dwa tokeny dalej w lewo" daje istotnie lepsze wyniki na tłumaczeniu maszynowym (WMT En→De/En→Fr) niż klasyczne absolutne PE — bez dodatkowych parametrów typu PE w wejściu.
Mała tabela (2k+1) × d_z uczonych wektorów, indeksowana odległością względną przyciętą do [-k, +k]. Dodawana do projekcji Key przed iloczynem z Query.
Oficjalna
Druga, opcjonalna tabela (2k+1) × d_z dodawana do projekcji Value w wyjściu attention. W oryginalnej pracy daje niewielką poprawę; T5 z niej rezygnuje.
Oficjalna
Funkcja mapująca dowolną odległość |i-j| na indeks w zakresie [-k, +k]. Wszystkie odległości spoza tego zakresu są traktowane jednakowo — kluczowa decyzja architektoniczna RPR.
Oficjalna
Bezpośrednie zbudowanie tensora z wektorami relatywnymi dla każdej pary (i, j) skaluje się jak T²·d, co eksploduje dla długich sekwencji. To historycznie ograniczało RPR do krótkich kontekstów.
Przy małym k wszystkie odległości > k są nieodróżnialne dla modelu — co dla long-context jest stratą. Zbyt duże k zwiększa parametry i koszt pamięci.
Shaw et al. pokazują, że RPR jest pełnym zamiennikiem absolutnego PE. Łączenie obu nie poprawia wyników i zwiększa parametry.
Oryginalny Transformer wprowadza absolutne sinusoidalne / learned PE. Pozostaje pytanie: czy względna pozycja modelowana jest wystarczająco efektywnie?
Shaw, Uszkoreit, Vaswani publikują RPR na NAACL 2018. Pokazują, że jawne modelowanie odległości względnej w attention bije absolutne PE na WMT 2014 i może zastąpić PE w wejściu modelu.
Huang et al. (Google Brain) implementują RPR efektywnie dla bardzo długich sekwencji muzycznych dzięki sztuczce „skewing", która redukuje pamięć z O(T²·d) do O(T·d).
Dai et al. łączą relatywne PE (wariant rozwijający RPR) z rekurencją między segmentami, dzięki czemu Transformer może utrzymać spójność na sekwencjach znacznie dłuższych niż pojedyncze okno attention.
T5 (Raffel et al., Google) wprowadza znacznie uproszczony wariant RPR: skalarny bias per głowa per bucket, z 32 bucketami logarytmicznymi. Współdzielony między warstwami. To rozwiązanie staje się popularne w encoder-decoder LLM.
RoPE (Su et al.) i ALiBi (Press et al.) idealizują pomysł RPR w innym kierunku: zamiast uczonych wektorów relatywnych używają deterministycznej funkcji odległości (rotacja vs liniowy bias). Oba dziedziczą po RPR centralną intuicję: „liczy się odległość, nie pozycja absolutna".
Złożoność czasowa: O(T² · d) dla score + a^K (jak vanilla attention, ze stałym narzutem). Złożoność przestrzenna: O((2k+1) · d) parametrów; O(T² · d) aktywacji w naiwnej impl., O(T · d) ze skewing trickiem.
Naiwna implementacja musi zmaterializować tensor [T, T, d_z] z wektorami relatywnymi, co dla dużego T eksploduje pamięciowo. To główne ograniczenie RPR przed pojawieniem się T5/skewing tricka.
Maksymalna odległość względna, dla której uczone są osobne wektory. Wszystkie pozycje dalsze niż k są klipowane do ±k. W oryginalnej pracy najlepsze wyniki dla k = 16; T5 używa wariantu z 32 bucketami logarytmicznymi.
Czy modyfikować również strumień Value (a^V), czy tylko Key (a^K). Shaw et al. raportują niewielkie zyski z dodania a^V — T5 i część późniejszych prac z tego rezygnuje.
Czy tabele a^K/a^V są dzielone między warstwami (jak w T5) czy osobne per warstwa (jak w wariancie Shaw et al.). Sharing redukuje liczbę parametrów wielokrotnie bez wyraźnej utraty jakości.
T5 redukuje RPR do skalarnego biasu per głowa per bucket (zamiast wektora d-wymiarowego). Każda głowa attention dostaje własną „mapę" jak rozkładać uwagę po dystansach.
RPR modyfikuje wyłącznie obliczenia gęstego attention — brak routingu i brak warunkowej aktywacji.
Dodatkowe wektory a^K, a^V wchodzą w tę samą równoległą strukturę co standardowe attention. Oryginalna implementacja RPR ma narzut O(T²·d) na obliczenie macierzy z relatywnymi wektorami — Music Transformer wprowadza wariant „skewing trick", który redukuje pamięć do O(T·d) bez utraty równoległości.
RPR to czysto algorytmiczna modyfikacja attention — lookup w małej tabeli + dodawanie. Brak wymagań sprzętowych poza typowym akceleratorem.
Dobrze współpracuje z optymalizowanymi kernelami attention (np. wariant T5 z biasem skalarnym fuzowany w FlashAttention dla T5-like modeli).