语义搜索是一种数据搜索技术,它不只是匹配精确的关键词,而是解读查询背后的含义和意图。即使搜索结果与搜索查询完全不匹配,它也能返回相关的结果。语义搜索利用自然语言处理 (NLP) 和人工智能 (AI) 技术,理解人们在日常语言中的搜索方式。本指南将介绍语义搜索的工作原理、它与关键词搜索、向量搜索和词汇搜索的区别、它的不足之处,以及它在搜索引擎和现代应用程序中的应用。
什么是语义搜索?
语义搜索是一种基于语义学(即语言意义的研究)的信息检索方法。语义搜索引擎将查询及其存储的文档都表示为能够捕捉上下文意义的数学对象,然后衡量它们在该空间中的接近程度。由于语义搜索引擎比较的是概念而非字符,因此搜索“学生用的经济型笔记本电脑”可能会出现“大学预算笔记本电脑”的列表,其中不包含任何原始词语。这一理念源于语义网,语义网对数据进行结构化处理,以便机器能够理解事物之间的关系——早期的设想是将知识图谱与推理引擎相结合来推导出新的事实——尽管现代系统更多地依赖于机器学习,而不是手工构建的本体。
语义搜索是如何工作的?
现代语义搜索系统将语言转化为数字,然后找到最接近的匹配项。以下是大多数语义搜索算法从用户发出查询到返回排名结果所经历的五个阶段。
语义搜索的阶段
查询理解
当用户的查询进入系统时,查询理解是第一步。自然语言处理会解析文本,纠正拼写和语法错误,并推断词语背后的意图和上下文——用户是想要查找定义、产品还是操作指南。有些系统还会考虑搜索历史或用户地理位置等信号。这一阶段决定了搜索者的实际意图,因此像“python speed”这样模糊的搜索查询会被解读为编程问题,而不是关于蛇的问题。
向量嵌入
接下来,嵌入模型会将查询和存储的内容都转换成向量嵌入——一长串数字,用于在高维空间中表示语义含义。含义相近的词语和短语会彼此靠近,例如“car”(汽车)就位于“automobile”(汽车)附近。这些嵌入由基于庞大文本语料库训练的机器学习模型生成,正是它们使得语义搜索能够比较不同的概念,而不是仅仅匹配关键词。
相似性搜索
所有数据都以向量形式表示,相似性搜索通过查找嵌入向量与查询向量最接近的存储项来实现。距离度量(例如余弦相似度)用于衡量两个向量的接近程度,得分最高的向量成为候选结果。逐一将查询与数百万个向量进行比较速度很慢,因此生产系统使用近似最近邻算法在毫秒内返回相关的搜索结果。
索引
索引是实现这种速度的关键。在进行任何搜索之前,系统会构建所有内容嵌入的语义索引,通常使用存储在向量数据库中的图结构,例如 HNSW(分层可导航小世界)。该索引使引擎能够直接跳转到最有希望的向量,而无需扫描整个集合,即使索引数据量增长到数百万,也能保持较高的搜索性能。
重新排名
第一轮搜索侧重于速度而非精确度,因此许多语义搜索系统会添加一个重排序步骤。更强大的模型(通常是交叉编码器)会重新检查排名靠前的候选结果,并根据每个结果与用户查询的契合度重新排序。重排序的计算成本更高,因此它只对候选结果进行处理。其回报是显著提升搜索结果顶部结果的相关性。
语义搜索与关键词搜索
要了解语义搜索的优势,首先需要了解传统搜索引擎如何处理关键词。经典的关键词搜索会为每个页面上的每个词条构建一个倒排索引,然后使用统计评分对文档进行排名。最常用的方法是 TF-IDF,它结合了词频(一个词在文档中出现的频率)和逆文档频率(该词在整个文档集中出现的稀有程度),因此特殊词的权重高于常用词。词干提取等技术将词还原为词根形式,而同义词列表或查询扩展则试图弥补词汇上的不足。这种词汇方法速度快、透明,并且在用户知道要输入的确切词语时效果极佳。
关键词搜索的弱点在于歧义和词汇不匹配。关键词搜索奖励的是匹配的词语,因此,如果查询和相关文档使用不同的术语来表达同一个概念,则可能永远无法匹配;一个具有两个含义的词甚至可能带来搜索者根本不想要的结果。语义搜索通过比较词义而非精确的关键词匹配来弥补这一缺陷,这也是为什么两者越来越多地被结合起来,而不是被视为相互竞争的技术。
语义搜索与向量搜索
语义搜索和向量搜索经常被混用,但它们并非同一概念。向量搜索是一种数学技术,用于在高维空间中寻找与给定向量最接近的向量。而语义搜索则是基于向量搜索构建的系统:一个完整的系统,它将语言转化为词嵌入,对这些词嵌入进行向量搜索,并返回有意义的结果。简而言之,所有语义搜索都使用向量搜索,但并非所有向量搜索都具有语义意义——同样的相似性搜索机制可以用于图像推荐、音乐推荐或欺诈评分,而这些都与语言无关。向量、向量数据库、索引和可扩展性问题是共享的基础设施;语义是在此基础上添加的层。
什么是混合搜索?
混合搜索将关键词评分和向量相似度结合在一个流程中,然后将两个排名列表合并(通常采用互惠排名融合),最后进行可选的重新排名。这样既能获得词汇检索的精确匹配精度,又能兼顾语义搜索的概念覆盖范围。关键词评分可以处理产品代码、名称和词嵌入往往会忽略的罕见词,而向量相似度则可以处理释义和意图。如果您需要在语义搜索和关键词搜索之间进行选择,对于大多数生产系统而言,最佳答案是两者兼顾。
语义搜索与词汇搜索
词法搜索是关键词引擎执行的词级匹配的正式名称:它直接处理查询和文档中的字面词元。语义搜索则更进一步,处理语义层面的内容。词法系统将字符串“jaguar”视为一个单独的词元,而语义系统则会读取上下文,将其置于正确的语义场中——例如猫、汽车或操作系统——并进行相应的匹配。二者的实际区别在于理解:词法搜索匹配符号,而语义搜索则对这些符号的含义进行建模。如今大多数搜索栏都融合了这两种方法,对于名称和标识符,依靠词法精确性;对于自然语言表达的所有内容,则依靠语义理解。
人工智能和LLM如何助力语义搜索
语义搜索完全属于人工智能领域。它所捕捉到的含义质量几乎完全取决于其背后的AI模型,而自然语言处理和大型语言模型的最新进展已使语义搜索从一项研究性技术转变为日常基础设施。
自然语言处理
自然语言处理(NLP)是人工智能的一个分支,专注于让机器处理人类语言。在语义搜索中,NLP负责基础工作:将文本分解成词元、解析语法和指代关系,并识别实体,从而使系统能够区分“苹果”这家公司和苹果这种水果。数十年来,NLP一直在研究如何以机器可计算的形式表示知识和上下文,正是这些研究使得基于语义的检索成为可能。
大型语言模型和 RAG
大型语言模型 (LLM) 通过生成比以往方法更丰富的语言表示,推动了语义搜索的发展。它们还创造了一个引人注目的应用场景:检索增强生成 (RAG)。在 RAG 流程中,语义搜索从知识库中检索最相关的段落,LLM 利用这些上下文生成基于上下文的答案,而不是仅仅依赖记忆。这种组合是大多数用于回答有关私有或当前数据问题的 AI 助手的基础,也是团队选择像 Oxylabs 这样的 AI 数据管道 解决方案,将实时网络内容输入 RAG 工作流程的核心原因。
选择嵌入模型
嵌入模型是影响检索质量的最关键因素。可供选择的方案多种多样,从 OpenAI 的 text-embedding-3 和 Voyage AI 等托管 API,到 BAAI 的 BGE-M3 和 NVIDIA 的 NV-Embed 等开源模型,其中许多模型都在 MTEB 排行榜上公开进行了基准测试。更高的基准测试分数固然重要,但决定性的检验标准在于模型在您自己的数据、语言以及延迟和成本限制下的表现。通用嵌入模型还会对 SKU 等精确标识符进行平滑处理,这也是混合检索在生产环境中常见的另一个原因。
语义搜索的不足之处是什么?
语义搜索功能强大,但并非适用于所有情况。它需要大量的计算资源:生成词嵌入、存储词嵌入以及大规模运行相似性搜索,其硬件和资金成本都远高于精简的关键词索引。准确性很大程度上取决于数据质量——由杂乱或稀疏的内容构建的词嵌入会返回较差的结果,模型可能会误判歧义,或者将看似合理但实际上错误的内容呈现出来。对于诸如订单号或错误代码之类的精确查找,关键词搜索仍然是更好的选择。评估本身也是一项挑战,因为相关性是主观的,团队需要带标签的查询和诸如 nDCG 之类的指标来衡量结果是否有所改进。此外,虽然近似索引原则上可以解决可扩展性问题,但随着非结构化数据的增长,仍然需要进行仔细的调整。
语义搜索有哪些应用场景?
语义搜索出现在人们用自然语言表达需求并期望获得相关结果的任何地方。
电子商务和产品发现
在电子商务领域,语义搜索能够帮助用户发现产品,即使搜索词模糊、语气随意。例如,当用户输入“冬季徒步保暖外套”时,搜索结果会显示派克大衣和保暖冲锋衣,即使这些产品的标题中从未出现“保暖”一词。基于搜索意图而非精确关键词的匹配方式,可以减少“无结果”页面的出现,并支持基于搜索历史等信号的个性化推荐。大型电商平台上的零售商正越来越多地将语义搜索与结构化的产品信息 数据 集相结合,以保持产品目录的更新并提升客户参与度。
企业和内部站点搜索
在企业内部,语义搜索能够提升企业搜索和内部网站搜索的效率,涵盖维基、工单、合同和文档等各种资源。员工很少能记住文件的确切标题,因此基于语义的检索能够根据部分或转述的描述找到正确的文档。公共搜索引擎背后的相同技术同样能够提升企业内部的知识发现能力,减少员工查找信息的时间,并提高用户满意度。
RAG 和 AI 助手
检索增强型生成是增长最快的应用场景。聊天机器人、客服助手和研究工具利用语义搜索从语料库中提取相关段落,并将其输入到语言学习模型(LLM)中,从而确保答案基于真实来源,而非模型的训练数据。由于这些助手通常需要最新的公开网络信息,因此团队会将它们连接到实时数据管道,以保持检索信息的时效性。
结论
语义搜索已从一个小众研究方向发展成为日常工具背后的检索层,因为它做到了关键词搜索无法做到的事情:它匹配的是含义和意图,而非字面意义上的词语。理解其流程——查询理解、向量嵌入、相似性搜索、索引和重排序——有助于我们更清楚地了解语义搜索的优势所在,例如对话式查询、产品发现和红黄绿(RAG)搜索,以及关键词检索或混合检索仍然适用的场景。对于大多数生产系统而言,真正的问题不在于语义搜索与关键词搜索孰优孰劣,而在于如何将二者完美融合,并以新鲜、结构良好的数据为支撑。