专业书籍精读 · ML System Design Interview · 第 2 章

视觉搜索系统:把「像不像」换成「距离近不近」

Machine Learning System Design Interview · Ch 2 · Ali Aminian & Alex Xu · 2023

EN →

这一章讲什么?

你在街上看见一双鞋,说不出牌子、也说不清款式,只好拍张照片丢进购物 App,它就给你找出一堆长得几乎一样的。这就是以图搜图。这一章从零讲怎么把这样一个系统造出来——不是造某个模型,是造整套东西。

先说个怪事

你大概以为,机器是「看懂」了这张图:哦,这是一双白色运动鞋。其实它根本不做这件事。它做的是:把每张图压成一串数字——就像给每张图发一个「坐标」。然后「找相似的图」这个模糊问题,就变成了一道小学几何题:在坐标里,谁离它最近?

旧世界为什么难

过去搜东西全靠文字。可你手上这张图,没有文字。「浅灰色、鞋头有三道斜杠、鞋底波浪纹」——这句话你打得出来吗?打得出来,搜索框也未必认。视觉上的像,翻不成词。更麻烦的是数量:一个正经的图库有几亿甚至几十亿张图。哪怕比一张图只要一眨眼的功夫,一张张比过去,也得等到明年。

核心机制:它是怎么做到的

三件事,一件比一件关键。

这套做法的代价

为了快,它放弃了「保证找到最像的那张」——只在几个片区里翻,真正最像的那张偶尔就躺在没翻的那个片区里,被漏掉了。

一句话记住

以图搜图的秘密不是让机器看懂图,而是把每张图变成一个坐标点,让「像不像」变成「近不近」——剩下的活儿,就是在几十亿个点里又快又省地找最近的那几个。

想进到具体机制、记号和示意图? → 切到精读版