想象你是一位专门替人淘换旧物的寻宝猎人,掌管着一座堆满宝贝的巨大旧货市场。顾客找上门来,掏出一张泛黄的老照片说:“我要找照片里这种花纹的布料。”又有一位顾客放了一段五秒的舞蹈视频:“帮我找出处。”你既看图片,又看视频,还听文字描述,把各种“线索”都翻译成同一种寻宝暗号,再循着暗号去百万件货品里翻找。这就是多模态搜索——让机器看懂图像和视频,用“相似”而非“完全相等”的逻辑,从海量内容中找回你真正想要的东西。它的完整过程分几步:先把图片或视频画面写成“特征小抄”(向量),再把图像与文本统一进同一语义空间(跨模态对齐),借索引快速缩小范围(ANN 检索),最后按业务规则排序返回(商品搜索、视频检索)。这些能力正悄悄工作在电商拍照搜同款、视频版权检测、内容推荐等各类场景中。

岗位关联

多模态搜索是搜索引擎、电商平台、视频社区的核心能力之一。掌握它,意味着你能独立设计“以图搜图”和“视频检索”类服务,是走向多模态应用方向的必修课。

目录
  1. 可视化演示
  2. 视觉特征提取:给照片写“特征小抄”
  3. 跨模态对齐:训练一位“翻译官”
  4. ANN 近似检索:旧货市场的分区导航
  5. 商品搜索:拍照搜同款的完整链路
  6. 视频片段检索:把一段舞拆成帧来认
  7. 部署与优化:把寻宝铺子开成现代化商城
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示多模态搜索的核心机制,通过入门/进阶/实战/优化四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

多模态搜索:多模态搜 多模态搜索的任务定义与核心架构 视觉特征提取与表示方法 核心机制可视化 多模态搜索整体架构与关键组件

视觉特征提取:给照片写“特征小抄”

寻宝猎人老周接到一单生意:顾客发来一件旧旗袍的照片,想在全市场找同款。老周不急着逛市场,他先掏出小本子记下三件事——颜色是“大红底”,花纹是“缠枝莲”,样式是“立领盘扣”。这张小抄,决定了他能在多大范围内锁定目标。以图搜图的第一步,就是给每张图做这样一张数字版“特征小抄”。

计算机没有“红”“花纹”这种直觉,它看到的只是密密麻麻的像素矩阵。于是研究者训练了卷积神经网络(CNN),让模型像老周一样一层层地看:先看边缘线条,再看色块纹理,最后组合出“这是一个物品”的高层语义。最终,一张图被压缩成一个固定长度的浮点数向量,比如 256 维。这个向量就是数字小抄,把颜色、纹理、形状的线索全部浓缩进了一串数字。

形式化地看,一张图 I 经过 CNN 变成特征向量 $f$,检索时再与商品库中的每个向量计算余弦相似度:

小抄写得越精准,老周找东西越省劲。CNN 训练得越充分,特征向量就越能扛住旋转、缩放、滤镜的干扰——即使顾客拍的是斜角照片,系统也能从“小抄”里认出同款。这正是以图搜图能“认脸”的根基。

f=CNN(I),sim(fq,fd)=fq⋅fd∥fq∥×∥fd∥f = \text{CNN}(I), \qquad \displaystyle \text{sim}(f_q, f_d) = \frac{f_q \cdot f_d}{\|f_q\| \times \|f_d\|}
余弦相似度把“两图像不像”折算成 0 到 1 之间的分数,越接近 1,说明两个向量的方向越一致,图像内容越相似。
  1. 卷积网络读图CNN 对图像做多次卷积与池化,从像素中逐层提取边缘、纹理、形状等视觉线索。
    I→CNN→fI \rightarrow \text{CNN} \rightarrow f
  2. 生成特征向量全连接层把高层语义压缩成固定长度向量 $f$,这就是图像的“数字指纹”。
    CNN(I)=f,f∈Rd\text{CNN}(I) = f, \quad f \in \mathbb{R}^{d}
  3. 点积比较方向两个向量的点积越大,说明它们在同一个维度上同时取值大的位置越多,方向越一致。
    fq⋅fd=∑k=1dfq,k×fd,kf_q \cdot f_d = \sum_{k=1}^{d} f_{q,k} \times f_{d,k}
  4. 长度归一化除以各自模长,消除图片分辨率、亮度等因素带来的尺度差异。
    fq⋅fd∥fq∥×∥fd∥\frac{f_q \cdot f_d}{\|f_q\| \times \|f_d\|}

跨模态对齐:训练一位“翻译官”

寻宝猎人不止会看图,还听得懂话。顾客常常口述:“我要红底白花的棉布。”老周能立刻把这句话翻译成自己心里的那套“小抄”暗号。为什么能对上?因为他脑子里有一本对照词典,能把文字里的“红”和图片里的“红”指向同一个概念。机器学习把这本词典叫作跨模态对齐。

模型要做的,就是把“图像空间”和“文字空间”通过映射函数放进同一个“语义空间”里。训练时,给模型看大量图文对——一张图配一段描述它的文字。匹配对要在空间里靠近,不匹配的要相互推开。最经典的训练方法是对比学习:每个批次里,配对的图文是正样本,其余全是负样本,模型要学着把正样本从一堆干扰项里挑出来。

对比学习常使用 InfoNCE 损失函数,公式如下:

有了翻译官,老周不再需要顾客提供专业描述——一句“像那种花的布”就够定位了。跨模态对齐让以图搜文、以文搜图变成同一件事:图像与文本在同一个空间里自由对话。

L=−log⁡exp⁡(sim(fI,fT)/τ)∑j=1Nexp⁡(sim(fI,fTj)/τ)\mathcal{L} = -\log \frac{\exp(\text{sim}(f_I, f_T) / \tau)}{\sum_{j=1}^{N} \exp(\text{sim}(f_I, f_{T_j}) / \tau)}
τ 是温度系数,控制相似度分布是“尖锐”还是“平缓”;整个公式可理解为:在一堆干扰选项里,把正确图文配对单独挑出来的难度。
  1. 正样本对打分图像向量和它对应的文本向量,相似度应该尽量高。
    sim(fI,fT)\text{sim}(f_I, f_T)
  2. 温度缩放相似度除以 τ 再取指数,τ 越小分布越尖锐,模型越较真。
    exp⁡(sim(fI,fT)/τ)\exp(\text{sim}(f_I, f_T) / \tau)
  3. 分母构建候选名单把批次内所有负样本的指数项相加,构成待区分集合。
    ∑j=1Nexp⁡(sim(fI,fTj)/τ)\sum_{j=1}^{N} \exp(\text{sim}(f_I, f_{T_j}) / \tau)
  4. 负对数似然正确配对被选中的概率越接近 1,损失越小。
    −log⁡(⋅)-\log(\cdot)

ANN 近似检索:旧货市场的分区导航

老周的市场有一百个摊位。如果目标布料的“小抄”要和每个摊位的布料从头到尾比对一遍,跑完得花一整天。聪明的做法是先给市场画一张分区导航图:布料去 2 区,瓷器去 8 区;2 区再细分纯色区、印花区。每次寻宝先锁定几个分区,再在分区内细看。索引的力量,就在于此。

在向量检索中,我们同样要为海量商品特征建立索引。最常用的是倒排索引:先对全库做聚类,得到几千个聚类中心作为“分区标志”,每个商品挂到最近的中心下。查询时只访问最近的几个分区,大幅减少比对次数。此外还有局部敏感哈希(LSH),让相近向量碰撞进同一个桶;HNSW 构建可导航的小世界图;乘积量化(PQ)负责压缩向量体积。这些方法统称近似最近邻(ANN)。

以 PQ 为例,它的压缩思路可以用下面的近似距离公式表达:

有了分区导航,老周不用再从头逛到尾,而是直奔 2 区再比对细节。ANN 正是牺牲一点点“可能漏掉最相似项”的代价,换来几十上百倍的提速——对千万级商品库来说,这是唯一可行的方案。

dˉ(x,q)=∑i=1md(xi,qi(xi))\bar{d}(x, q) = \sum_{i=1}^{m} d\big(x_i, q_i(x_i)\big)
把向量切成 m 段,每段在对应码本中查找最近的“代表中心”,再用中心编号代替原向量,内存可压缩到几十分之一。
  1. 切分向量把 d 维向量均匀切成 m 段子向量。
    x=[x1,x2,…,xm]x = [x_1, x_2, \dots, x_m]
  2. 码本量化每一段子向量在对应码本中找到距离最近的中心,用中心编号代替原始数值。
    qi(xi)=arg⁡min⁡c∈Ci∥xi−c∥2q_i(x_i) = \arg\min_{c \in C_i} \|x_i - c\|^2
  3. 近似距离累加把各段与最近中心的距离相加,得到整体距离的估计值。
    dˉ=∑i=1md(xi,qi(xi))\bar{d} = \sum_{i=1}^{m} d(x_i, q_i(x_i))

商品搜索:拍照搜同款的完整链路

顾客拍了一件外套的照片,说要找同款。老周的流程是:先做特征小抄(向量),再用分区导航快速圈定候选,接着只看“男装→外套”这一类,最后综合价格、销量等条件排出结果。这一套组合拳,就是电商以图搜同款的真实链路。

商品搜索和通用以图搜图不同,它必须结合类目信息。图里是一件男士牛仔外套,就不该去“女鞋区”比对。系统会先做类目预测或直接读取商品挂载的类目,用类目过滤掉无关候选,再做精细排序。最终排序分数通常不只看视觉,还要融合文本相关性、销量热度、价格区间等信号。

常见的融合排序公式如下:

老周找同款时,不仅求“像”,还求“对”。类目过滤和排序融合,相当于把顾客的潜台词——“是男款”“别太贵”“评价要好”——全部纳入考量。搜索系统把视觉信号和商业信号揉在一起,才真正从“眼力”升级为“生意”。

score=α⋅simvis(fq,fp)+(1−α)⋅simtext(wq,wp)\text{score} = \alpha \cdot \text{sim}_{\text{vis}}(f_q, f_p) + (1 - \alpha) \cdot \text{sim}_{\text{text}}(w_q, w_p)
α 是平衡两种相似度的权重:α 大更看重“长得像”,α 小更看重“描述匹配”。
  1. 视觉相似度查询图片与候选商品的图像特征做余弦相似度,衡量外观像不像。
    simvis(fq,fp)\text{sim}_{\text{vis}}(f_q, f_p)
  2. 文本相似度查询词(如“牛仔外套”)与商品标题的语义匹配度,弥补视觉盲区。
    simtext(wq,wp)\text{sim}_{\text{text}}(w_q, w_p)
  3. 加权求和用 α 控制两种信号占比,工程上可通过离线实验调优。
    α×A+(1−α)×B\alpha \times A + (1-\alpha) \times B

视频片段检索:把一段舞拆成帧来认

某天顾客发来一段 5 秒的舞蹈视频,问老周能不能找到出处。老周先把视频按每秒几帧拆成几十张画面,像翻连环画一样逐张看,最后锁定“这个转身动作在第 3 分 20 秒处”。视频检索的本质就在于此:把视频拆成帧,像以图搜图那样逐帧比对,再把帧级结果聚合成片段级结论。

工程上,视频片段检索通常先均匀抽帧,比如每秒 2 帧,或按场景切分取关键帧;然后每帧过一遍 CNN 得到帧向量。当查询图片或文字到达时,系统计算它与每一帧的相似度。一个片段与查询有多相关,可以取片段内所有帧相似度的最大值或平均值:取最大适合“片段里出现过就算数”,取平均则要求整体风格一致。

帧级最大相似度的公式如下:

老周能把一段“5 秒舞蹈”定位到“完整版第 3 分 20 秒开始”,靠的就是把动态视频变成一组静态小抄再连续比对。视频检索让“用内容找片段”成为可能,版权检测、影视搜索、直播回放定位都依赖它。

scoreclip=max⁡t∈[1,T]sim(fq,ft)\text{score}_{\text{clip}} = \max_{t \in [1, T]} \text{sim}(f_q, f_t)
一个片段由 T 帧组成;先把查询向量和每一帧算相似度,再取最大的一帧作为整个片段的代表分数。
  1. 逐帧提取对片段的每一帧用 CNN 提取特征向量,得到向量序列。
    {f1,f2,…,fT}\{f_1, f_2, \dots, f_T\}
  2. 帧级相似度查询向量与第 t 帧的向量计算余弦相似度,得到 T 个分数。
    sim(fq,ft)\text{sim}(f_q, f_t)
  3. 聚合取最大从 T 个分数中选出最大值,作为该片段与查询的整体匹配度。
    max⁡tsim(fq,ft)\max_{t} \text{sim}(f_q, f_t)

部署与优化:把寻宝铺子开成现代化商城

老周的生意越做越大,市场管理方请他把经验固化下来:建一个商品档案库(向量数据库),配上快速电梯(GPU 加速卡),再安排专人每天上新货(增量索引更新)。单机演示再漂亮,落地成服务才是真功夫。

线上以图搜图系统通常包括四层:特征抽取服务用 GPU 推理把入库图片实时转成向量;向量数据库(如 Milvus、Faiss)负责 ANN 检索;业务层做类目过滤和排序;最后是索引更新任务——新商品凌晨批量入库、下架商品及时删除。由于数据每天都在变化,索引不能一次性建完,需要用增量更新保证新鲜度。

衡量检索质量的重要指标是召回率:

老周的市场最终被改造成现代化商城:档案库(向量索引)让查找变快,电梯(GPU)让换层变快,每日上新(增量更新)让信息不过时。部署与优化的本质,是让实验室里“走得通”的寻宝术,变成每天能扛住百万次查询的扎实服务。

Recall@K=∣H∩top-K∣∣H∣\text{Recall@}K = \frac{|H \cap \text{top-}K|}{|H|}
H 是人工标注的“应被召回”集合,top-K 是系统返回的前 K 个结果。交集越大,说明系统漏掉的越少。
  1. 标准答案集合H 是评测集中与查询真正相关的全部商品。
    H={p1,p2,…,p∣H∣}H = \{p_1, p_2, \dots, p_{|H|}\}
  2. 返回前 K 个系统按融合分数从高到低返回前 K 条结果。
    top-K={q1,…,qK}\text{top-}K = \{q_1, \dots, q_K\}
  3. 交集与比值返回结果中命中正确集合的比例,越接近 100% 越理想。
    ∣H∩top-K∣∣H∣\frac{|H \cap \text{top-}K|}{|H|}

AI 应用场景

电商拍照搜同款

阶段:内容理解与检索

解决的问题:用户看到一件衣服想买同款,却说不清品名和品牌;传统关键词搜索无法描述视觉特征。AI 用 CNN 提取商品特征,配合 ANN 索引在亿级商品中秒级召回相似款,再结合类目与销量排序。

具体案例:用户在街拍中看到一件大衣,拍照上传,系统在 200 毫秒内返回相近款式,按“相似度 + 销量”排序,并支持“只看同款”和“找相似”两种模式。

视频版权与片段溯源

阶段:视频理解与匹配

解决的问题:搬运、二次创作导致视频片段散落全网,人工审核无法逐一比对。将视频抽帧成向量入库,再用疑似视频的帧向量检索,命中即定位来源。

具体案例:某平台接到原片投诉,系统将疑似搬运视频切帧检索,3 秒内定位到与源视频相同的片段,并给出时间戳和相似度报告。

设计灵感素材检索

阶段:跨模态检索

解决的问题:设计师想找“莫兰迪色系的极简客厅”,却不知道该怎么描述风格。利用跨模态对齐,既可以用参考图搜同风格素材,也可以让“图像 + 文字”联合检索,覆盖传统标签库够不到的表达。

具体案例:家装 App 上线“以图搜灵感”功能:用户上传一张配色参考图,再输入“原木风”,系统返回与该风格匹配的实景图集。

Python 演示

python65 行
import timeimport numpy as np  class SimpleSearchEngine:    def __init__(self, dim=128, n_items=10000, n_centers=64):        self.dim = dim        self.n_items = n_items        self.n_centers = n_centers        # 模拟商品特征库 (真实场景中由 CNN 或 ViT 提取)        self.db = np.random.randn(n_items, dim).astype(np.float32)        self.db /= np.linalg.norm(self.db, axis=1, keepdims=True)        self.labels = np.random.randint(0, 10, n_items)        self.kmeans = None        self.cluster_ids = None        self.inverted_list = None     def extract_feature(self):        # 模拟视觉特征提取: 真实系统用 CNN/ViT 模型        v = np.random.randn(self.dim).astype(np.float32)        return v / np.linalg.norm(v)     def brute_force_search(self, query, top_k=5):        # 精确最近邻: 全库计算余弦相似度        sims = self.db @ query        idx = np.argsort(-sims)[:top_k]        return idx, sims[idx]     def build_inverted_index(self):        # 用 KMeans 聚类中心模拟倒排索引的分区        from sklearn.cluster import MiniBatchKMeans        self.kmeans = MiniBatchKMeans(n_clusters=self.n_centers,                                      random_state=42, batch_size=1024)        self.cluster_ids = self.kmeans.fit_predict(self.db)        self.inverted_list = {i: np.where(self.cluster_ids == i)[0]                              for i in range(self.n_centers)}     def ann_search(self, query, top_k=5, n_probe=4):        # 近似最近邻: 只检索最近的 n_probe 个分区        dist_to_centers = np.linalg.norm(self.kmeans.cluster_centers_ - query, axis=1)        probe = np.argsort(dist_to_centers)[:n_probe]        cand = np.concatenate([self.inverted_list[c] for c in probe])        sims = self.db[cand] @ query        order = np.argsort(-sims)[:top_k]        return cand[order], sims[order]  if __name__ == '__main__':    engine = SimpleSearchEngine()    q = engine.extract_feature()     t0 = time.time()    exact_idx, exact_sim = engine.brute_force_search(q)    t_exact = time.time() - t0     engine.build_inverted_index()    t0 = time.time()    ann_idx, ann_sim = engine.ann_search(q)    t_ann = time.time() - t0     overlap = len(set(exact_idx.tolist()) & set(ann_idx.tolist()))    print("exact top:", exact_idx, "sim:", exact_sim)    print("ann   top:", ann_idx, "sim:", ann_sim)    print("exact time: %.4fs | ann time: %.4fs | overlap: %d/5"          % (t_exact, t_ann, overlap))
目的:用随机向量模拟一个百万级(演示中为一万级)商品特征库,实现“暴力精确检索”和“倒排索引 ANN 检索”两条路径,对比它们的命中重合度与耗时差异,直观理解 ANN 为什么“快且够用”。
  1. self.db = np.random.randn(n_items, dim).astype(np.float32)用随机向量模拟商品特征库,真实场景中这些向量来自 CNN 对图片的编码。
  2. self.db /= np.linalg.norm(self.db, axis=1, keepdims=True)把所有向量归一化成单位长度,之后一次内积直接等于余弦相似度。
  3. sims = self.db @ query一次矩阵乘完成全库相似度计算,这是精确检索的核心。
  4. self.kmeans = MiniBatchKMeans(n_clusters=self.n_centers, ...)用聚类中心模拟“分区”,每个聚类中心管理一批特征相近的商品。
  5. probe = np.argsort(dist_to_centers)[:n_probe]查询只进入最近的几个分区,这就是 ANN 比暴力检索快几个数量级的原因。
  6. overlap = len(set(exact_idx.tolist()) & set(ann_idx.tolist()))对比精确检索与 ANN 命中的重叠个数,直观观察召回损失。

常见误区

误区以图搜图不就是拿图片逐像素比对吗?只有完全一样的图片才能搜出来,换个滤镜、裁个边就找不到了。

正解实际系统比较的是高维特征向量,也就是“颜色、纹理、结构”的抽象浓缩版。像素完全一样反而不是目标,特征相似才是。滤镜、裁剪、缩放后,只要主要视觉特征还在,向量依然相近,所以仍然能搜到。

为何常见:用户对“图像相似”的直觉停留在像素层,不知道深度学习已经把图片压缩成语义特征了。

误区ANN 是近似检索,会漏结果,正式系统必须用暴力精确搜索才能保证准确。

正解在千万级向量库里,暴力搜索的时间和算力都不可接受。ANN 通过可调参数(如 n_probe、ef_search)能把召回率做到 95% 以上,漏掉的通常是肉眼都难以区分的极相似项,业务上可接受。

为何常见:把“近似”等同于“不靠谱”,忽略了精度与速度之间存在可控的权衡空间。

误区视频不就是一组图片吗?抽一帧关键帧去做以图搜图就够了。

正解单帧会丢掉动作过程。查询“跳水动作”时,光看一张入水前的截图很难和完整动作匹配。正确做法是抽多帧、逐帧算相似度,再用最大值或平均值聚合,才能体现时间维度上的内容相关性。

为何常见:把视频简单理解为静态图的集合,忽略了时间顺序和动态语义。

误区图文匹配就是给每张图打上几个标签词,搜索时匹配标签文本就行了。

正解标签是离散的、固定的词汇表,表达不了“红底白花”这类组合语义。跨模态对齐学的是联合语义空间,对从未见过的词组也有泛化能力——这正是它和传统标签检索的本质区别。

为何常见:把深度学习的语义嵌入误解为传统的倒排关键词系统。

误区商品向量建完索引,以后就不用管了,索引是静态文件。

正解电商每天上新和下架,索引必须增量维护。否则新商品永远搜不到,下架商品还留在结果里。生产中需要设计增量插入、删除、段合并等任务来保证数据新鲜度。

为何常见:把索引看成一次性构建的静态资源,忽略了数据是持续流动的。

面试题

Q1. 以图搜图系统处理查询图片的第一步,通常是把图片转换成什么?

单选题 · easy

  • A.高分辨率像素矩阵
  • B.稠密的特征向量← 正确答案
  • C.压缩后的 JPEG 文件
  • D.自动生成的文字描述

答案:B。以图搜图的第一步是让 CNN 把图片编码成稠密特征向量,后续检索、排序都基于向量。像素矩阵太大且不抗干扰;JPEG 只是存储格式;文字描述不是从图片里直接生成的,所以选 B。

Q2. 下列哪一项是衡量两个特征向量相似度的常用指标?

单选题 · easy

  • A.余弦相似度← 正确答案
  • B.标准差比对
  • C.像素差分和
  • D.哈希值相等

答案:A。余弦相似度衡量两个向量方向的一致性,是向量检索最常用的相似度指标。标准差、像素差分、哈希值都不是特征向量相似度的常规度量。

Q3. 跨模态对齐中的“联合语义空间”指的是什么?

单选题 · mid

  • A.图像与文本被映射到同一个向量空间,语义越近距离越近← 正确答案
  • B.把图像和文本向量化后存进同一个数据库
  • C.用统一的压缩格式保存所有类型的媒体文件
  • D.将文本翻译成多国语言后做近似字符串匹配

答案:A。联合语义空间是图像向量与文本向量共享的向量空间,模型通过对比学习让配对的图文在空间里靠近。单纯存在同一个数据库或统一压缩格式不叫语义空间;翻译成多国语言仍是文本层面,不是跨模态。

Q4. 以下哪些技术可以用于 ANN(近似最近邻)向量检索?

多选题 · mid

  • A.倒排索引← 正确答案
  • B.HNSW 图索引← 正确答案
  • C.随机梯度下降
  • D.乘积量化 PQ← 正确答案

答案:ABD。倒排索引用聚类分区裁剪搜索范围;HNSW 用可导航图快速接近目标;乘积量化压缩向量降低内存和距离计算成本。随机梯度下降是训练模型的优化算法,不属于检索索引技术。

Q5. 电商以图搜同款中“类目过滤”的主要作用是什么?

单选题 · mid

  • A.提升商品图片的分辨率与清晰度
  • B.仅检索相关品类以降低跨类目噪声← 正确答案
  • C.自动生成商品的标题文案
  • D.预测商品未来一段时间的销量

答案:B。类目过滤把候选集限制在与查询图相关的品类内,比如“外套”查询不去“鞋靴”区比对,从而降低噪声、提升精度。它不负责图像增强、标题生成或销量预测。

Q6. 视频片段检索中,用“逐帧相似度的最大值”代表片段与查询的匹配度,是出于什么考虑?

单选题 · hard

  • A.片段内所有帧都必须与查询相似才认为匹配
  • B.只要片段内有一帧命中查询内容,就说明片段相关← 正确答案
  • C.因为取最大值在工程上实现最简单
  • D.因为视频帧之间彼此没有任何关联

答案:B。取最大值的语义是“片段中只要出现与查询匹配的画面,片段就相关”,适合检索物体或动作是否出现过。若要求整体一致才选平均。D 选项不成立,帧间存在强时序关联。

Q7. 部署一个商用以图搜图服务,通常需要哪些组件?

多选题 · mid

  • A.向量数据库(如 Milvus/Faiss)← 正确答案
  • B.GPU 驱动的特征抽取服务← 正确答案
  • C.类目过滤与商品排序模块← 正确答案
  • D.前端页面编译打包工具

答案:ABC。向量数据库负责索引与 ANN 检索,GPU 服务负责图像向量化,业务层做类目过滤和排序。前端编译打包属于客户端工程,不构成检索服务端的核心组件。

Q8. 乘积量化(PQ)压缩特征向量的核心思路是什么?

单选题 · hard

  • A.把向量切段,每段用码本中心的编号近似代替← 正确答案
  • B.删除向量中的全部零元素以缩小体积
  • C.用更小的整数类型存储每一位浮点数
  • D.将高维向量随机投影到低维平面

答案:A。PQ 把高维向量切成 m 段,每段在对应码本中找到最近中心,用中心编号存储,距离用各段近似距离之和代替。它不删除零元素,也不是简单换数据类型,随机投影是另一种降维方法。

Q9. 关于对比学习中的温度系数 τ,下列说法正确的是?

多选题 · extreme

  • A.τ 越小分布越尖锐,模型更关注难负样本← 正确答案
  • B.τ 越大,正负样本相似度差距容易被抹平← 正确答案
  • C.τ 常作为超参数手工调节取值← 正确答案
  • D.τ 必须设为固定值 1 才收敛

答案:ABC。τ 控制 softmax 分布的锐利程度:越小模型越“较真”,对难负样本更敏感;越大所有样本的分数差异被压平,训练难度降低。τ 一般作为超参数调,不是必须等于 1。

Q10. 相比于以图搜图,视频检索额外处理的核心维度是什么?

单选题 · easy

  • A.时间维度← 正确答案
  • B.颜色维度
  • C.声音维度
  • D.纹理维度

答案:A。视频是在时间轴上连续排列的帧序列,视频检索要在帧与帧之间寻找动态内容与动作模式,时间维度是它区别于静态以图搜图的核心。颜色、纹理是图像已有的维度,声音不在本主题讨论范围。