Skip to content
★ AI Powered™ research — since 2011◆London ⇄ Global◆Hi@itresearches.com◆+44 8008 321 848◆Vendor-neutral. Outcome-obsessed.◆Now reading data you didn't know you had◆
★ AI Powered™ research — since 2011◆London ⇄ Global◆Hi@itresearches.com◆+44 8008 321 848◆Vendor-neutral. Outcome-obsessed.◆Now reading data you didn't know you had◆
№
NLP · Feb 2025 · 10 min read

Aspect-based sentiment without breaking the bank

A small-model recipe for accurate, fast, multilingual aspect sentiment that does not require a frontier LLM in the hot path.

↓ scrollitresearches.com

By Editorial — IT Researches

There is a quiet conventional wisdom in 2025 that any non-trivial NLP problem should be solved by a frontier model. We disagree, and aspect-based sentiment analysis is a good place to make the disagreement concrete. We have built aspect-sentiment systems for retail, banking, telecoms and travel since 2013, and the architecture we keep returning to is small, transparent and a small fraction of the cost of an LLM in the hot path.

The recipe starts with a small encoder — typically a multilingual sentence-transformer in the 100-300 million parameter range, fine-tuned on a few thousand carefully labelled examples per language. Aspect extraction is treated as a token-classification task and aspect-level polarity as a separate classification head conditioned on the extracted span. The whole pipeline runs at sub-100ms per document on a single CPU core for most production traffic.

Two design choices make this work. The first is the labelling guidelines. We have learned the hard way that the only way to get a multilingual aspect-sentiment system to behave consistently is to write down, in detail, what counts as an aspect in each domain, what the polarity scale means at the boundaries, and how implicit aspects are handled. The labelling guideline is the single most underappreciated artefact in an NLP project; the model is downstream of it in every meaningful sense.

The second is the evaluation harness. We hold out a stratified sample for each language, each aspect category and each polarity class, and we report performance per cell. Aggregate F1 hides the failures that matter — typically a minority language where the model has overfit to translation artefacts, or a niche aspect category where the labellers disagreed. Reporting per-cell forces the failures into the open and makes the conversation about which gaps to invest in mechanical rather than political.

Where we do reach for a large language model is at the edges. We use one to bootstrap labels on new languages — never as a final source, always as a candidate for human review — and we use one to summarise the long tail of free-text comments where aspect extraction returns nothing. Both uses are batch, both are cheap, and neither is in the hot path of the production system.

The result is a pipeline that costs less than ten per cent of what a per-document LLM call would cost, runs an order of magnitude faster, and is auditable in a way that a generative model cannot be. The accuracy gap is small enough that, on the segments that matter to the business, it is within the noise of the labelling itself. We continue to use small models not because we are nostalgic but because, on this class of problem, they are simply the right tool.

↳ Next step

Facing this problem yourself?

Our team has delivered production AI since 2011. Tell us about your context.

AI◆Big Data◆Vision◆Forecasting◆Knowledge◆Research◆Strategy◆Delivery◆
AI◆Big Data◆Vision◆Forecasting◆Knowledge◆Research◆Strategy◆Delivery◆