maaz.code logo
Simple view

Complete

Amazon ML Challenge 2026

Team solution for business entity resolution, ranked 287 of ~25,000 teams.

  • Macro F0.5 (public LB)0.988
  • Rank287 / ~25,000
  • Python
  • PyTorch
  • Transformers
  • Sentence-Transformers
  • LightGBM
  • Scikit-Learn
  • Pandas

The problem

Business entity resolution: for every business in a clean reference list, find all records of the same business in two noisy lists, across the US, India and a test-only country (France). Scored by macro F0.5.

Approach

  • Three blockers (word TF-IDF, character TF-IDF, a fine-tuned multilingual bi-encoder) plus a learned pruner keep ~11.5 candidates per record at 99.5% recall.
  • A LightGBM model over 119 similarity features and three fine-tuned mmBERT cross-encoders score the candidates.
  • A second, graph-aware LightGBM combines their scores; one global rule tuned on validation F0.5 emits the matches.
  • Two self-training rounds adapt the cross-encoders to France, which has no labels.

Workflow

Workflow: Source 1 and the two noisy sources are normalized, three blockers build a candidate pool, a pruner keeps about 11.5 candidates per record, stage-1 LightGBM and mmBERT cross-encoders score them, a graph-aware stage-2 LightGBM combines the scores, and one global decision rule writes the matches; self-training feeds confident test answers back to the cross-encoders.

Each step works on far fewer pairs than the one before: cheap filters first, accurate models on what survives. The dashed loop is rounds 2 and 3, where the cross-encoders learn from their own confident answers on France. Tap or click the diagram to open it at full size.

Result

Public leaderboard macro F0.5 0.988, rank 287 of ~25,000 registered teams.

Built as a team of four with @AnshulPatil2005, @KeshavKumar-0 and @Nipun-Shekhar.