Holographic (interference-aware) attention#
complextorch.nn.HolographicAttention is a drop-in alternative to
complextorch.nn.ScaledDotProductAttention that treats attention as
wave interference rather than a phase-blind correlation. It is motivated by
signal-processing workloads (PolSAR, wireless channel prediction) where the
amplitude–phase coupling carries the signal. It takes the same attn_mask
argument as the scaled dot-product core (see
Complex transformer & attention masking), so it composes
with the full transformer mask API.
It changes two things relative to standard scaled dot-product attention.
1 · Phase-gated scores. For a token pair \((i,j)\) with complex score \(s_{ij} = Q_i K_j^H\) and phase difference \(\Delta\phi_{ij} = \angle s_{ij}\), the magnitude-correlation similarity is gated by the phase discrepancy:
In-phase interactions are boosted; anti-phase ones are suppressed. The discrepancy weight \(\alpha \ge 0\) is learnable.
2 · Coherent superposition. Values are rotated by their phase offset before the weighted sum, so aligned phases add constructively:
import torch
import complextorch as ctorch
mha = ctorch.nn.MultiheadAttention(
n_heads=4, d_model=32, d_k=8, d_v=8, attention="holographic"
)
x = torch.randn(2, 16, 32, dtype=torch.cfloat)
y = mha(x, x, x)
print(y.shape, y.dtype)
Guarding against phase collapse#
The companion paper proves a phase-blind estimator has a non-trivial error floor, and uses a dual-headed decoder (reconstruction + task) to force the model to retain phase. Two helpers support that recipe:
complextorch.nn.HolographicReconstructionLoss— separate real/imag reconstruction term \(\lVert\Re(\hat{x}-x)\rVert_2^2 + \lVert\Im(\hat{x}-x)\rVert_2^2\).complextorch.nn.phase_smoothness()— total-variation penalty on the wrapped phase difference between adjacent positions.
See arXiv:2509.19331 for the full formulation.