← Research

Results in · In progress

Can a mood written in plain words find a show nobody has rated yet?

Kokoro — Mood-Conditioned Cold-Start Retrieval for Anime

On 1,491 titles with no training interactions, a contrastively trained two-tower model ranks at 4.97× random (NDCG@10 0.0845), where every collaborative model scores zero. Served at 4.4 ms p95.

Role
Solo — research and engineering
Built with
Information Retrieval · Recommender Systems · Contrastive Learning

A retrieval system for anime that ranks by mood instead of genre, and can place a title nobody has watched yet. Viewers describe mood at length in reviews, so a frozen MiniLM encoder feeds two learned towers trained with InfoNCE on review segments against title metadata. The item tower never sees reviews, because a new title has none; titles are masked out of queries, so the model cannot match on the name; and each batch holds a title at most once, so a repeat is never pushed apart from itself.

The evaluation harness was written before the models, on purpose. Cold start is the headline split, and beyond-accuracy measures (coverage, Gini, serendipity and popularity lift) count as much as NDCG. In-catalog, a from-scratch BPR matrix factoriser with hand-derived gradients wins on accuracy and surfaces 2.9× more of the catalog. Two negative results are reported as plainly as the wins: the trajectory model the project set out to build was tested with a shuffle control, failed it, and was deliberately not trained.

The result

  • Most popular0.00320.19×
  • Similar viewers (item-kNN)0.00320.19×
  • Matrix factorisation (BPR-MF)0.01470.87×
  • Random order0.0170baseline
  • Text encoder, off the shelf0.05973.51×
  • Kokoro, trained on review text0.08454.97×
Measured · NDCG@10 on 1,491 titles with no ratings · the line marks random order

Retrieval by nearest neighbour

“A funny, lighthearted show to relax with” · 6 of 6 nearest are light and comforting

Illustrative: 1,600 made-up titles, not Kokoro's data. Kokoro puts a mood written in plain words and every title into one shared space, then returns the titles nearest the words. Here that space is flattened to two of its eight mood axes, levity and comfort, the two that match their names best in Kokoro's own checks. The ring is the example request, and the 6 lit titles are its nearest.

Launch film

Launch film · 21 seconds, with sound.