My first instinct was to frame it as a retrieval problem using learned embeddings, text on one side, image on the other, train them to agree in a shared space.
Start by clarifying the problem constraints and the nature of the data, then propose a two-stage retrieval and ranking system. Use the 100,000 paired descriptions and avatars to train a cross-modal embedding model that maps text and images to a shared space, and leverage the 1,000 labeled avatars for fine-tuning or evaluation. Finally, discuss how to scale the matching to a new pool of 100,000 images using efficient nearest neighbor search.
Pro tip: Emphasize the importance of a human-in-the-loop evaluation and the trade-off between model complexity and latency, especially for a large-scale enterprise application like SAP. Mention that you would start with a simple baseline (e.g., CLIP zero-shot) to validate feasibility before investing in a more complex model.
Ask questions to understand the business goal, latency requirements, and data characteristics. Confirm the size of the new image pool, whether descriptions are short or long, and if there are any constraints on model size or inference speed.
Propose a two-tower architecture: one tower encodes user descriptions (e.g., using a transformer like BERT) and another encodes images (e.g., using a CNN or ViT). Train with a contrastive loss to align matching pairs in a shared embedding space.
Use the 100,000 paired descriptions and avatars for training, and the 1,000 labeled avatars for validation or fine-tuning. Consider data augmentation and hard negative mining to improve discrimination.
For the new pool of 100,000 images, precompute image embeddings and use an approximate nearest neighbor index (e.g., FAISS) to retrieve top-k candidates for a given description embedding. Optionally, re-rank the top candidates with a more complex model.
Define offline metrics (e.g., recall@k, mean reciprocal rank) and online metrics (e.g., click-through rate). Plan for A/B testing and continuous improvement with user feedback.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.