Uncovering hidden geometry in Transformers via disentangling position and context

Jiajun Song, Yiqiao Zhong
10/7/2023
cs.LGcs.AIstat.ML

Official code: JiajunSong629/uncover-hidden-geometry (5 stars, MIT, last commit 2024-01-31).

Abstract

Transformers are widely used to extract semantic meanings from input tokens, yet they usually operate as black-box models. In this paper, we present a simple yet informative decomposition of hidden states (or embeddings) of trained transformers into interpretable components. For any layer, embedding vectors of input sequence samples are represented by a tensor $\boldsymbol{h} \in \mathbb{R}^{C \times T \times d}$. Given embedding vector $\boldsymbol{h}_{c,t} \in \mathbb{R}^d$ at sequence position $t \le T$ in a sequence (or context) $c \le C$, extracting the mean effects yields the decomposition \[ \boldsymbol{h}_{c,t} = \boldsymbolμ + \mathbf{pos}_t + \mathbf{ctx}_c + \mathbf{resid}_{c,t} \] where $\boldsymbolμ$ is the global mean vector, $\mathbf{pos}_t$ and $\mathbf{ctx}_c$ are the mean vectors across contexts and across positions respectively, and $\mathbf{resid}_{c,t}$ is the residual vector. For popular transformer architectures and diverse text datasets, empirically we find pervasive mathematical structure: (1) $(\mathbf{pos}_t)_{t}$ forms a low-dimensional, continuous, and often spiral shape across layers, (2) $(\mathbf{ctx}_c)_c$ shows clear cluster structure that falls into context topics, and (3) $(\mathbf{pos}_t)_{t}$ and $(\mathbf{ctx}_c)_c$ are mutually nearly orthogonal. We argue that smoothness is pervasive and beneficial to transformers trained on languages, and our decomposition leads to improved model interpretability.

View on arXivView PDF

Code Implementations(1)

MIT
51Shell, PythonOct 7, 20232 years agoMIT

Similar Papers

Cite this paper

@article{song2023uncovering,
  title  = {Uncovering hidden geometry in Transformers via disentangling position and context},
  author = {Jiajun Song and Yiqiao Zhong},
  year   = {2023},
  eprint = {2310.04861},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2310.04861v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2310.04861.svg)](https://codeofpaper.com/paper/2310.04861)

Discussion