This question wrecked me a little because I kept trying to answer each sub-part sequentially and the interviewer just kept layering more on top.
Start by framing the problem as one of modeling annotator behavior and uncertainty, not just aggregating labels. Walk through a systematic pipeline: analyze disagreement, design splits that prevent leakage, choose targets and loss that reflect uncertainty, and stress-test metrics for hidden pitfalls. Emphasize trade-offs and practical considerations at each stage.
Pro tip: Don't just default to majority vote; consider modeling annotator reliability (e.g., Dawid-Skene) and using soft labels or uncertainty-aware losses. Also, ensure your test set reflects the same annotator distribution as deployment to avoid overestimating performance.
Compute inter-annotator agreement (e.g., Cohen's/Fleiss' kappa), per-annotator bias, and identify ambiguous examples. Visualize disagreement patterns to understand if noise is random or systematic.
Split by example, not by annotator, to prevent the model from memorizing annotator-specific quirks. Ensure each split has similar disagreement rates and annotator coverage; consider stratifying by label and disagreement level.
Choose between hard labels (majority vote, weighted vote) and soft labels (empirical label distribution, probabilistic models like Dawid-Skene). Consider modeling annotator expertise and example difficulty.
Use a model that can output probabilities (e.g., logistic regression, neural network with sigmoid). Choose a loss that handles soft labels (e.g., cross-entropy with soft targets, KL divergence) or explicitly models annotator noise (e.g., noise-robust losses).
Check for metrics that ignore uncertainty (e.g., accuracy on majority vote), overfit to annotator bias, or fail under distribution shift. Evaluate calibration, per-annotator performance, and performance on high-disagreement subsets.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.