Mediascope: ML labelling of search queries

2nd place at AI BUSINESS SPb Hackathon: three labelling tasks, experiments with simple and complex models, and routing by confidence.

Mediascope case cover

At AI BUSINESS SPb Hackathon our team git push force worked on the Mediascope case: helping operators label search queries about professional video content. We took second place.

What had to be determined

A short query may contain typos, transliteration, a franchise name or just a wish to watch something. Each query needed three labels: TypeQuery (is it about video content), ContentType (film, series, cartoon and so on) and Title (which work or franchise).

My contribution

I took part in developing and discussing the solution with the team: data preparation, experiments, checking results and the confidence-based scenario. I was also responsible for the working environment, compute access, assembling materials and the presentation. The model, the solution and the result are team work.

Two directions of experiments

The team’s public repository has a text embedding variant: multilingual-e5-base with a classification head, FAISS for title search and GLiNER for extraction. A lighter pipeline used word and character TF-IDF, logistic regression and a separate HasTitle check. That check removes an important error: correctly detecting video intent and then assigning a random title to a general query.

What validation showed

Local holdout and submissions to the competition environment were recorded separately. Some variants improved locally and got worse on the server, including ensembles, extra gates and some augmentations. An external LLM was not a reliable fallback in an isolated environment without outbound access.

SubtaskResult before the defence
Video content detection92%
Content type45%
Title64%

Helping the operator

We discussed three review levels: high confidence as a candidate for automatic acceptance, medium for quick confirmation, low for manual labelling. Thresholds still need calibration on real data.

Note: +0.009 locally, −0.01 on the server · Team repository

← All projects

Contacts