STEER: Semantic Transformation for Embedding-space Exploration in Retrieval
Project description
STEER
Semantic Transformation for Embedding-space Exploration in Retrieval
A retrieval primitive for controllable semantic navigation in embedding spaces. No retraining, no fine-tuning, works with any embedding model.
Paper: STEER: An Honest Evaluation of Sixteen Algebraic Operations
Install
pip install steer-retrieval
Quick Start
from steer import Steerer
# Initialize with any sentence-transformer model
steerer = Steerer(model_name="all-MiniLM-L6-v2")
# Index your corpus
steerer.index(["doc1 text...", "doc2 text...", ...])
# Baseline search
results = steerer.search("VEGF inhibition in retinal disease")
# Steered search: explore adjacent domain
results = steerer.search(
"VEGF inhibition in retinal disease",
target="oncology drug mechanisms",
alpha=0.1,
)
# Contrastive: push toward positive, away from negative
results = steerer.contrastive_search(
"VEGF inhibition in retinal disease",
positive_target="oncology drug mechanisms",
negative_target="basic laboratory research",
alpha=0.1,
beta=0.2,
)
# Gradient walk: see how results change across alpha values
walk = steerer.gradient_walk(
"VEGF inhibition in retinal disease",
target="oncology drug mechanisms",
)
for step in walk:
print(f"alpha={step['alpha']}: {step['results'][0]['id']}")
Operations
STEER provides 16 operations built from a single primitive: normalize(q + alpha * t).
| Operation | Function | Description |
|---|---|---|
| Rotate Toward | rotate_toward(q, t, alpha) |
Move query toward target domain |
| Rotate Away | rotate_away(q, t, alpha) |
Move query away (bias correction) |
| Contrastive | contrastive(q, t_pos, t_neg, alpha, beta) |
Push/pull simultaneously |
| Amplify | amplify(q, centroid, alpha) |
Intensify specificity |
| Diffuse | diffuse(q, centroid, alpha) |
Generalize, increase diversity |
| Multi-View | multi_view(q, targets, corpus, alpha) |
Parallel search + RRF fusion |
| Gradient Walk | gradient_walk(q, t, corpus) |
Degradation curve for calibration |
| Consensus | consensus(q, targets, alpha) |
Mean of multiple targets |
| Orbit | orbit(q, targets, corpus, alpha) |
N separate result sets |
| Bridge | bridge(q, source, dest, alpha) |
Domain transfer |
| Triangulate | triangulate(q, t1, t2, a1, a2) |
Sequential 2-target steering |
| Isotropy Correct | isotropy_correct(embeddings, k) |
Top-k PCA removal |
| Adaptive Alpha | adaptive_alpha(q, t, alpha_max) |
Auto-calibrate per query |
| RRF Fusion | rrf_fusion(scores_list, k) |
Reciprocal rank fusion |
Key Findings
- Contrastive asymmetric (alpha=0.1, beta=0.2) produces the strongest results: +3.5% nDCG
- Rotate Away unexpectedly improves retrieval: +3.6% nDCG (bias correction)
- Adaptive alpha reduces degradation by 88-93%
- Multi-vector RRF eliminates 100% of degradation
- Classifier with per-query LLM targets achieves F1=0.91 as automatic router
Citation
@article{gomes2026steer,
title={STEER: Semantic Transformation for Embedding-space Exploration in Retrieval --- An Honest Evaluation of Sixteen Algebraic Operations},
author={Gomes, Renato Aparecido},
doi={10.5281/zenodo.19325724},
year={2026}
}
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file steer_retrieval-0.1.0.tar.gz.
File metadata
- Download URL: steer_retrieval-0.1.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9deee1d10baef36b47c02b5df54e46dd4e849ffb7329a84d5cc9f56a382e3606
|
|
| MD5 |
112392b16313e6110a754f9a4187607f
|
|
| BLAKE2b-256 |
2d5099ace35729cf8d7da998820f423f8450a0f56f2588d7135b505bf7638079
|
File details
Details for the file steer_retrieval-0.1.0-py3-none-any.whl.
File metadata
- Download URL: steer_retrieval-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b94aa0852b58b3deef13c82c5f10189fc2e0fe9a436d3bc8a3b1c5024189545
|
|
| MD5 |
203a82c65fa05ac51843e078e85722aa
|
|
| BLAKE2b-256 |
8d473200917903fb64dc68f9204888794945cf9cce564c146f1aa1d7d640418f
|