尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

AIMLInterviews 实战拆解:图片搜索系统(Pinterest 风格)的机器学习系统设计全流程

发布时间:2026/9/24 16:12:38

资讯中心
01
ARTICLE

AIMLInterviews 实战拆解:图片搜索系统(Pinterest 风格)的机器学习系统设计全流程

AIMLInterviews 实战拆解:图片搜索系统(Pinterest 风格)的机器学习系统设计全流程
示例工程教程人工智能【免费下载链接】AIMLInterviewsThis repo is meant to serve as a guide for Machine Learning/AI technical interviews.项目地址https://gitcode.com/gh_mirrors/ma/AIMLInterviews点击查看免费下载图片搜索Image Search / Visual Search是机器学习系统设计面试中的高频考题。本文以 AIMLInterviews 仓库中 图片搜索系统Pinterest案例 为骨架逐层展开「问题定义 → 指标 → 架构 → 数据 → 特征 → 建模 → 预测服务 → 部署 → 监控更新」的完整设计思路并结合仓库内的 9 步法模板、指标详解 与 搜索系统 等配套文档进行深度扩充。读完本文你将掌握一套可复用的「表征学习 近似最近邻检索 重排序」图片搜索系统设计方案以及如何在面试中把每一步讲出可验证的工程细节。1. 背景为什么图片搜索要用「9 步法公式」ML 系统设计面试是开放式问题没有唯一正确答案考察的是你能否从高层次设计一个可部署在生产环境的机器学习系统。AIMLInterviews 的核心方法论是 机器学习系统设计的 9 步公式问题定义 → 2. 指标离线与在线→ 3. 架构组件MVP 逻辑→ 4. 数据收集与准备 → 5. 特征工程 → 6. 模型开发与离线评估 → 7. 预测服务 → 8. 在线测试与模型部署 → 9. 扩展、监控与更新。mlsd-template.md 给出了每一步的清单式骨架而图片搜索案例Pinterest正是这套公式的完整实践样本。注意面试中使用该流程要保持灵活可根据面试官兴趣跳过或深入展开某一两步——这一点在 ml-system-design.md 中有明确提示。2. 第一步问题定义Problem Formulation2.1 澄清性问题图片搜索的案例从一系列澄清性问题开始这些问题决定了系统边界主要业务目标是什么—— 提升用户体验、点击率CTR、转化率等取决于具体用例。具体用例和场景—— 给定一张查询图片允许用户搜索视觉上相似的物品。系统要求—— 响应时间、准确性、可扩展性数十亿张图片。用户如何交互——仅点击点击、点赞、分享等交互方式需要向面试官确认。搜索哪些视觉内容——仅图片视频需要另一套方案。部署行业/领域—— 时尚、电商、艺术、工业质检等。预期规模—— 数据规模与用户交互量。是否需要个性化——不需要。可以使用元数据吗—— 一般可以本案例中先不使用。可以假设平台图片都是安全的吗——可以这直接影响第 7 步重排序服务是否需要做内容过滤。2.2 用例与业务目标用例用户上传/选择一张查询图片系统返回视觉上相似的物品列表。业务目标提升用户体验、提高点击率与转化率。2.3 需求、约束与数据需求响应时间低延迟、准确性检索相关性、可扩展性数十亿张图片规模。约束预算限制、硬件限制、法律与隐私约束。数据来源与可用性用户生成内容UGC、商品目录product catalogs还是公开图片数据库是否可用2.4 机器学习问题建模ML 目标检索与查询图片在视觉内容上相似的图片。ML 输入/输出输入一张查询图片输出与查询图片最相似图片的排序列表。ML 类别排序问题Ranking——根据物品与查询的相关性对一个集合中的物品进行排序。这是本案例的关键判断虽然底层依赖视觉表征但问题本质是「检索 排序」因此离线指标要按排序/检索指标来选见下一步。3. 第二步指标Metrics3.1 离线指标本案例列出 5 个检索/排序经典指标仓库配套文档 mlsd-metrics.md 给出了每个指标的准确定义与适用场景MRR平均倒数排名结果列表中第一个相关项的倒数排名的平均值。适合「只有一个正确答案」或顺序非常重要的场景。公式MRR 1/m · Σ(1/rank_i)。Recallk召回率k前 k 个结果中检索到的相关项占全部相关项的比例衡量找全能力。Precisionk精确率k前 k 个结果中相关项所占比例衡量放对位置能力。mAP平均精确率均值对多个查询分别计算 Precision 再取平均适用于二值相关性。nDCG归一化折损累计增益DCG 除以理想排序的 IDCG考虑了分级相关性与位置折损适用于非二值相关性。选型提示mlsd-metrics.md 中强调——Precisionk 和 Recallk 不考虑输出结果的排序质量MRR 关注第一个相关项的排名nDCG 适合相关性非二值mAP 适合相关性二值。图片检索评估标签常为「相关/不相关」二值因此 MRR、Recallk、Precisionk、mAP 都很自然若标注了分级相关性强相关/弱相关则选 nDCG。3.2 在线指标CTR点击率点击次数 ÷ 曝光次数。定义与公式详见 mlsd-metrics.md。注意其局限不能直接衡量相关性且易受标题党/缩略图党clickbait影响。图片停留时长Time spent on images用户与返回图片的交互时长是相关性与体验质量的补充信号。与本仓库 多模态视频搜索案例 对比视频场景下作者最终选择「总观看时长」作为在线指标因为完播率即使只看一部分也可能算相关图片搜索场景则同时关注 CTR 与停留时长两个指标互为补充。4. 第三步架构组件高层架构图片搜索系统的核心架构思想是表征学习Representation Learning将输入数据图片转换为表示/嵌入向量embeddings——相似的图片在嵌入空间中距离更近。使用嵌入向量之间的距离作为图片之间的相似度度量。这一设计把「视觉相似」这一抽象概念转化为可计算的向量几何问题查询图片的嵌入向量与库中图片的嵌入向量做最近邻搜索即可。整个系统由此划分为两条流水线详见第 7 步预测流水线查询图片 → 嵌入生成 → 近邻搜索 → 重排序索引流水线全量图片 → 嵌入生成 → 建索引 → 增量更新。5. 第四步数据采集与准备5.1 数据来源用户画像User profile用户身份与属性信息。图片Images图片文件 元数据metadata。用户-图片交互User-image interactions曝光impressions、点击clicks。上下文Context交互发生的时间、设备、位置等场景信息。5.2 数据存储、ML 数据类型与标注数据存储原始图片、元数据、交互日志的存储方案对象存储 日志系统 数据库。ML 数据类型图片属于非结构化数据交互日志属于结构化数据。标注Labelling监督信号从何而来人工标注 / 交互代理信号 / 自监督详见第 6 步「数据集」小节。与本仓库 搜索系统案例 对照电商搜索同样依赖用户、查询、商品、上下文四类数据并用线上交互数据生成正负样本标签——图片搜索可复用同样的「交互即标签」思路。6. 第五步特征工程6.1 特征选择用户画像特征用户 ID、用户名、年龄、性别、位置城市、国家、语言、时区。图片元数据特征图片 ID、用户 ID、标签、上传日期等。用户-图片交互特征用户 ID、查询图片 ID、返回图片 ID、交互类型点击/曝光、时间、位置。由于本案例明确不使用元数据、不需要个性化特征工程的重心落在图片本身的视觉表征上用户与交互特征主要为后续的个性化/日志分析预留。6.2 特征表示采用表征学习嵌入向量把图片映射为稠密向量替代手工特征。这也是选择神经网络而非传统机器学习算法的核心原因之一见第 7 步。6.3 特征预处理图片常见的预处理流水线调整尺寸Resize例如 224×224ResNet 等 CNN 的标准输入尺寸缩放Scale像素值归一化到 0–1标准化Normalize按通道做均值 0、方差 1 的标准化颜色模式Color modeRGB、CMYK 等。与 多模态视频搜索案例 的预处理对照视频还需「解码为帧 → 采样 → 调整尺寸 → 缩放/归一化 → 颜色校正」图片搜索则是该流水线中单帧形态。7. 第六步模型开发与离线评估7.1 模型选择为什么是神经网络非结构化数据图片、文本→ 神经网络更擅长处理需要嵌入向量→ NN 天然产出可学习的稠密表示。架构类型两种主流路线基于 CNN例如 ResNet基于 TransformerViTVision Transformer。典型数据流示例图片 → 卷积层Convolutional layers→ 全连接层FC layers→ 嵌入向量。模型选择的决策因素可参照 ml-system-design.md 第 6 步清单任务复杂度、数据类型与数据量、训练速度、推理要求算力/延迟/内存、持续学习、可解释性。本案例中需要嵌入向量 非结构化数据直接决定了 NN 路线。7.2 模型训练对比学习Contrastive Learning训练目标是区分相似与不相似的图片即让相似图片的嵌入靠近、不相似图片的嵌入远离。这是图片表征学习的标准范式SimCLR、MoCo 等自监督方法同属此框架。7.3 数据集构建每个训练数据点由三部分组成查询图片query随机选择正样本positive与 q 相似n-1 个负样本negative与 q 不相似随机选择。正样本的三种来源与权衡来源优点缺点人工判断Human质量高、语义准成本高、耗时交互行为代理如点击零标注成本、规模大噪声大且稀疏点击 ≠ 相似由 q 合成自监督如旋转等数据增强完全自动、无限量与真实场景中的数据分布不同对比学习 数据增强自监督的思路与仓库 多模态视频搜索案例 中对比学习类似视觉搜索系统的表述一致可相互印证。7.4 损失函数对比损失Contrastive Loss作用于样本对(Eq, Ei)查询嵌入与候选嵌入计算样本对之间的距离 → softmax → 交叉熵cross-entropy← 标签。即把「相似度」转化为概率分布再用交叉熵监督模型输出使正样本对概率趋近 1、负样本对概率趋近 0。交叉熵的数学定义二分类/多分类形式可参考 mlsd-metrics.md 的「交叉熵与归一化交叉熵」小节。7.5 模型评估、超参数调优与迭代离线评估用第 2 步的离线指标MRR、Recallk、Precisionk、mAP、nDCG在验证集上评测。超参数调优网格搜索等方法见 ml-system-design.md 第 6 步。迭代持续迭代 MVP 模型——调整模型选择、数据增强策略、模型更新频率。8. 第七步预测服务这是图片搜索系统的工程核心分为预测流水线与索引流水线两条线。8.1 预测流水线Prediction Pipeline① 嵌入生成服务Embedding Generation Service图片 → 预处理 → 嵌入生成ML 模型→ 图片嵌入向量查询图片和库内图片共用同一套嵌入模型同构映射保证向量空间一致。② 近邻搜索服务NN Search Service从嵌入空间中检索与查询最相似的图片。两种策略精确搜索Exact Search遍历全库计算距离复杂度O(N·D)N 为图片数D 为嵌入维度。数十亿图片规模下不可行。近似搜索ANNApproximate Nearest Neighbor次线性复杂度例如O(D·logN)。常用三类方法基于树Tree-based如 R-trees、Kd-trees。思路是在每个非叶子节点将空间划分为两个或更多部分只搜索查询 q 所在的分区从而剪枝加速局部敏感哈希LSH使用哈希函数将点分到不同桶中距离近的点被分到同一个桶查询时只检索对应桶基于聚类Clustering-based先聚类再在簇内检索。本案例的决策使用ANN并采用现有库例如FaissFacebook——避免自研向量检索基础设施。③ 重排序服务Re-ranking Service承载业务层逻辑与策略过滤不合适内容或私密内容inappropriate / private items去重deduplicate如相同/近似商品其他业务规则。与 搜索系统案例 的重排序对照电商场景的重排序同样包含过滤不适宜商品、多样性探索/利用等策略可用基于规则的过滤器也可用二分类模型如 P(inappropriate)实现。8.2 索引流水线Indexing Pipeline索引服务根据图片嵌入向量建立索引ANN 索引结构如 Faiss 的 Index。增量更新保持索引表对新图片持续更新新上传图片 → 嵌入 → 写入索引。内存优化索引常驻内存会增加内存使用 → 使用优化手段向量量化 / 乘积量化Vector / Product Quantization压缩向量存储、降低内存与检索成本。关于 ANN 与向量数据库的更多选型思路可参照 ml-system-design.md 第 7 步「最近邻服务」小节以及 GenAI 部分提到的 HNSW、IVF-PQ 等索引形态。9. 第八步在线测试与部署A/B 测试对照组与实验组、用户抽样比例、零假设设计方法论见 ml-system-design.md 第 8 步。在线指标用 CTR 与图片停留时长衡量实验效果。部署与发布灰度/金丝雀发布Canary、影子部署Shadow Deployment等策略逐步放量、快速回滚。10. 第九步扩展、监控与更新10.1 扩展Scaling软件系统扩展分布式服务器、负载均衡、分片、副本、缓存等与分布式系统类似。机器学习系统扩展数据并行 / 模型并行训练与推理、分布式训练、异步/同步 SGD 等详见 ml-system-design.md 第 9 步。本案例特有的扩展点嵌入生成服务按图片吞吐水平扩展ANN 索引按数据量分片。10.2 监控Monitoring日志特征、预测、指标、事件。监控指标软件系统指标延迟、QPS、错误率 ML 指标检索相关性、嵌入质量、在线/离线指标看板。数据分布漂移协变量漂移、标签漂移、概念漂移用统计方法/假设检验检测并制定修正方案。10.3 更新Updates持续训练模型多久更新一次每天/每周/每月从零训练还是基于基础模型微调。自动更新监控新数据分布触发重训练。Human-in-the-loop人工介入标注新样本缓解交互信号噪声。11. 第十步其他可讨论点原文档最后保留的开放讨论空间面试中可作为加分延伸索引更新频率与召回一致性新图多久可见冷启动新上传图片无交互/无相似样本隐私与内容安全过滤私密/不合适内容模型更新对索引的影响嵌入空间变化后是否需要重建索引。12. 总结一套可复用的图片搜索设计答卷把以上步骤串成一句话用对比学习训练一个 CNN/ViT 嵌入模型把数十亿图片映射到向量空间并建立 ANN 索引Faiss查询时对图片做同样预处理和嵌入用近似最近邻检索召回候选再经业务重排序输出最终结果全程用 MRR/Recallk/mAP 等离线指标与 CTR/停留时长在线指标评估迭代。这套方案直接复用了 AIMLInterviews 的 9 步法框架并与仓库内 搜索系统、多模态视频搜索、指标详解 等案例互为印证。面试时不必逐条背诵而是按「澄清问题 → 定指标 → 定架构 → 定数据与特征 → 定模型与损失 → 讲清检索与重排序 → 补部署监控」的主线灵活展开并主动暴露权衡精确 vs 近似、人工 vs 交互 vs 自监督正样本、内存 vs 量化这才是 ML 系统设计面试考察的核心能力。赞分享示例工程教程人工智能【免费下载链接】AIMLInterviewsThis repo is meant to serve as a guide for Machine Learning/AI technical interviews.项目地址https://gitcode.com/gh_mirrors/ma/AIMLInterviews点击查看免费下载相关推荐机器学习系统设计九步法实战指南——AIMLInterviews 系统设计模板的完整拆解与面试应用机器学习系统设计九步法实战指南——AIMLInterviews 系统设计模板的完整拆解与面试应用 机器学习系统设计面试考察的是你在开放场景下从零设计一套可部署示例工程教程人工智能广告点击率预测系统设计实战指南基于 AIMLInterviews 的 Ads Click Prediction 全流程拆解广告点击率预测系统设计实战指南基于 AIMLInterviews 的 Ads Click Prediction 全流程拆解 导读 本文以 AIMLInter示例工程教程人工智能OpenDesign 设计系统实战Duolingo 风格化设计系统完整拆解与落地指南OpenDesign 设计系统实战Duolingo 风格化设计系统完整拆解与落地指南 本文基于 OpenDesign 仓库中 design systems/dAI 应用人工智能AI 技能设计系统媒体生成上一篇NVIDIA DCGM 终极指南5步掌握数据中心GPU监控与管理下一篇如何快速掌握NVIDIA DCGM数据中心GPU管理的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。