Free preview

Multimodal Classification

In one line: a meme is an image the caption changes the meaning of, and a system that scores each half independently cannot see the whole.

The combination problem

An image of a public building. A caption naming a group of people. Neither violates anything on its own; together they can be a threat.

This is not an edge case. It is the dominant form of harmful content on platforms where images carry text, and it is exactly what a modality-separated pipeline misses.

Late fusion versus early fusion

The architectural choice, and it is the thing the interviewer is checking for.

Late fusion scores each modality separately and combines the outputs. Simple, cheap, modular — each model can be improved independently, and you can add a modality without retraining anything. And it is structurally incapable of representing an interaction, because by the time the scores meet, the content is gone. Two 0.1 scores combine to something small no matter how they are combined.

Early fusion encodes the modalities into a shared representation and classifies jointly. A vision-language model sees the image and the text together, so the interaction is available to it. More expensive, harder to train, and it can actually represent the case.

The published work on harmful meme detection is consistent on this: unimodal classifiers and simple score combination underperform precisely because harmfulness lives in the visual-textual interaction, not in either part.

The practical arrangement is both. Unimodal models handle the large majority of content, where one modality is clearly violating on its own. A joint model runs on the cases where neither is confident but the combination is suspicious — which is a cascade again, with the expensive model on the uncertain band.

Text inside images

The specific case that is both common and easy to under-design.

A large share of policy-violating text arrives as an image — a screenshot, a meme, a graphic with overlaid words. Text classifiers never see it, because the post's text field is empty or innocuous.

So OCR is not optional; it is a required stage, feeding the extracted text into the text pipeline alongside the image. And it is an evasion target: unusual fonts, low contrast, text over busy backgrounds, deliberate misspellings and character substitutions all degrade extraction.

The design consequence is that OCR output quality has to be monitored as its own signal. A sudden drop in extracted text volume is either an upstream break or an evasion campaign, and both need attention.

Cost per modality

The arithmetic that shapes the pipeline, and it spans several orders of magnitude.

ModalityRelative costNote
TextLowestShort, cheap models
ImageModerateOne forward pass
AudioHigherTranscription, then text analysis
VideoHighestMany frames, plus audio

Video is the problem. A minute of video at even modest frame sampling is many image classifications plus a transcription, and platforms ingest enormous quantities of it.

Which forces a tiered approach rather than uniform treatment: hash matching first, then cheap signals — uploader history, early engagement, metadata — then sampled frame analysis, then dense analysis only for content that is spreading or already suspicious. The expensive path runs on a small fraction, chosen by the reach-weighting from the first lesson.

Per-policy models, not one model

An architectural decision worth defending explicitly.

One model with many outputs shares a representation and is cheaper to serve. Separate models per policy area — violence, nudity, hate, self-harm, spam — cost more and are far easier to operate.

Three reasons the separation usually wins:

Policies change independently. A hate speech policy update should not require revalidating the nudity classifier.

Thresholds differ by orders of magnitude. Child safety operates at near-zero tolerance for misses; spam tolerates plenty. One model forced to serve both compromises somewhere.

Failures should be isolated. A regression in one policy area must not degrade the others, and with a shared model it will.

The usual compromise is a shared encoder with per-policy heads: one expensive forward pass produces a representation, cheap heads read off per-policy scores, and each head can be retrained independently. Most of the sharing benefit, most of the isolation benefit.

Language

The failure that is invisible from an English-speaking office.

Moderation quality varies enormously across languages, because training data and reviewer availability do. A model performing acceptably in English can be substantially worse in a language with less data — and the users experiencing that are the ones least likely to be able to complain effectively.

Three practical points. Report metrics per language, because the aggregate is dominated by the largest ones and hides everything else. Use multilingual encoders so lower-resource languages benefit from transfer. And route to reviewers who actually speak the language, which is a staffing constraint that shapes where the queue can send things.

This is a fairness issue with the same structure as guardrail over-refusal in non-English text: the aggregate looks fine and a specific population receives a materially worse product.

Key takeaway

Late fusion cannot represent a violation that lives in the interaction between modalities, so run unimodal models on the bulk and a joint model on the uncertain band. OCR is a required stage, not an optional one, and its output volume is a monitoring signal. Video costs orders of magnitude more than text, which forces a tiered pipeline where dense analysis is reserved for content that is spreading. And report every metric per language, or the aggregate will hide a materially worse product for everyone else.

Next: reports, and the people sending them.

Enjoying the preview?

Create a free account to unlock the rest of this course, the in-browser judge, and live AI mock interviews.

Sign up free to continue