cine-embed-minilm-v1
v1 · Nov 2026 · a fine-tune of sentence-transformers/all-MiniLM-L6-v2 (Apache-2.0) tuned for movie & TV catalog similarity — one of the five embedding spaces of cine-rec-engine.
The budget tune: +0.027 genre-similarity over its base all-MiniLM-L6-v2 (95% CI +0.007…+0.048) at 384 dimensions — a quarter of the vector size, and statistically on par with beeFormer on the same eval (−0.004, CI [−0.032, +0.026]).
The five spaces
All five spaces are drop-in interchangeable columns of the same engine:
| model | dim | languages | held-out score¹ | pick for |
|---|---|---|---|---|
| cine-embed-bge-v1 | 768 | en | 0.325 | English catalogs — best measured similarity |
| cine-embed-e5-enrich-v1 | 768 | he · en | 0.310 | mixed-language catalogs — best all-round |
| cine-embed-mpnet-enrich-v1 | 768 | he · en | 0.290 | multilingual catalogs with cinematic-tag enrichment |
| cine-embed-mpnet-v1 | 768 | he · en | 0.281 | Hebrew free-text queries |
| cine-embed-minilm-v1 | 384 | en | 0.259 | CPU / tight budgets — 384-dim |
¹ Held-out genre-Jaccard@5 — see Evaluation. Evaluated 2026-11; every number below is measured on titles these encoders never trained on.
Quickstart
Inside the engine (downloads this encoder on demand, sha256-verified, and embeds your catalog):
pip install "cine-rec-engine[encoders]"
python models/fetch_encoders.py embed --dsn "$DSN" --space minilm_tuned
Plain sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("cine-labs/cine-embed-minilm-v1")
vec = model.encode("Title: Arrival (2016)\nOverview: A linguist works with the military...")
Input format
No query/passage prefixes.
Catalog side, per title (the tmdb_cinematic lines appear only with
enrichment; the fallback is Title + Overview):
Title: {title} ({year})
Emotional arc: {tags}
Pacing: {tag}
Narrative: {tag}
Sub-genres: {tags}
Experience: {tag}
Overview: {overview}
Evaluation
Protocol: 80 TMDB titles that were never used as training anchors, with
neighbors drawn only from the same 80; paired bootstrap over titles
(10,000 resamples) for every difference. Hebrew probe: 12 hand-written
Hebrew one-line descriptions targeting held-out titles, ranked against all
828 demo-catalog titles. Generic, bring-your-own-catalog implementation:
eval/compare_encoders.py.
Catalog similarity (held-out, n=80 titles)
| encoder | dim | held-out genre-Jaccard@5 | Δ vs own base (95% CI) |
|---|---|---|---|
| cine-embed-bge-v1 | 768 | 0.325 | +0.026 [−0.004, +0.055] |
| cine-embed-e5-enrich-v1 | 768 | 0.310 | +0.054 [+0.026, +0.083] |
| BAAI/bge-base-en-v1.5 (base of bge) | 768 | 0.299 | — |
| cine-embed-mpnet-enrich-v1 | 768 | 0.290 | +0.026 [+0.002, +0.049] |
| cine-embed-mpnet-v1 | 768 | 0.281 | +0.016 [−0.009, +0.040] |
| BAAI/bge-m3 (568M general) | 1024 | 0.274 | — |
| intfloat/multilingual-e5-large (560M general) | 1024 | 0.272 | — |
| sentence-transformers/all-mpnet-base-v2 | 768 | 0.271 | — |
| sentence-transformers/paraphrase-multilingual-mpnet-base-v2 | 768 | 0.264 | — |
| beeformer/Llama-movielens-mpnet | 768 | 0.263 | −0.008 [−0.037, +0.021] |
| cine-embed-minilm-v1 | 384 | 0.259 | +0.027 [+0.007, +0.048] |
| intfloat/multilingual-e5-base | 768 | 0.257 | — |
| sentence-transformers/all-MiniLM-L6-v2 | 384 | 0.232 | — |
Cross-family paired differences (95% CI, * = significant): the Δ column covers each tune vs its own base; across families — cine-embed-bge-v1 over BAAI/bge-m3 +0.051 [+0.024, +0.079]*, over beeFormer +0.062 [+0.031, +0.094]*; cine-embed-e5-enrich-v1 over BAAI/bge-m3 +0.036 [+0.012, +0.061]*, over multilingual-e5-large +0.039 [+0.014, +0.063]*.
Limitations
- Below
cine-embed-bge-v1in absolute similarity — pick for speed and storage, not maximum quality. - English-only (inherited from the MiniLM base).
Measured on one 828-title TMDB demo catalog with an 80-title held-out split; treat margins under ±0.03 as parity.
Training & lineage
Fine-tuned from the base model above on synthetic query→title pairs over a TMDB-derived catalog (~166k pairs; graded data and tuning pipelines are not published). The fine-tune is MIT; the base-model license (Apache-2.0) continues to apply to the derived weights.
News
- 2026-11-12 — held-out evaluation (n=80 + Hebrew probe) added to this card
- 2026-11-10 — v1 published, sha256-pinned in MANIFEST.json
Citation
@software{kaplan2026cinerec,
author = {DovBer Kaplan},
title = {cine-rec-engine},
year = {2026},
url = {https://github.com/cine-labs/cine-rec-engine},
license = {MIT}
}
If these encoders are useful to you, a citation or a ★ on the engine repo helps.