本章内容包括:
- 什么是人工智能驱动的搜索?
- 理解用户意图
- 人工智能驱动的搜索是如何工作的
- 内容与行为智能
- 构建人工智能驱动的搜索引擎
搜索框已经成为大多数现代应用中与数据交互的默认用户界面。如果你想一想你每天使用的每一个主要应用或网站,每次访问时你最先做的事情之一通常是输入查询,以便找到与你相关的内容或操作。
当你没有明确进行搜索时,你可能会消费一些根据你的兴趣和喜好定制的内容流。无论这些内容是视频推荐、待购商品、优先处理的电子邮件、新闻文章还是其他内容,你可能仍然是在查看经过筛选或排序的结果,并且有选择地浏览或使用自己的查询来进一步筛选内容。
对于大多数人来说,“搜索引擎”这个词通常让人联想到像Google、Bing或百度这样的网站,它们基于对整个公共互联网的抓取来启用查询。然而,现实情况是,现在几乎所有的数字互动都包含了搜索功能,每天在我们使用的众多网站和应用中都可以见到。
这些搜索引擎远非静态。我们看到商业技术,如OpenAI的ChatGPT、Anthropic的Claude和Google的Gemini,以及其他数百个更开放的大型语言模型(LLMs),如Meta的Llama和Mistral的Mixtral,源代码和模型权重已经发布供公众使用。它们都作为世界信息的模型,可以生成对任意查询的解释和响应。这些模型正在积极地集成到主要的搜索引擎中,并将继续深刻影响人工智能驱动的搜索的发展。
虽然过去搜索框的期望回应通常是返回“十个蓝色链接”——一系列排名文档,供用户进一步调查以找到响应查询的信息——但近年来,搜索技术的智能水平期望值已经大幅上升。
如今,用户希望搜索技术具备以下特点:
- 领域感知 — 搜索技术应理解每个特定用例和文档集中的实体、术语、类别和属性,而不仅仅使用字符串文本的通用统计信息。
- 上下文感知与个性化 — 它应该能够考虑用户上下文(位置、上次搜索、个人资料、以前的互动、用户推荐和用户分类)、查询上下文(其他关键词、类似搜索)和领域上下文(库存、业务规则、特定领域术语)来更好地解读用户意图。
- 对话式 — 它应该能够使用自然语言与用户互动,并引导用户通过多步骤的发现过程,同时学习并记住相关的新信息。
- 多模态 — 它应该能够解决通过文本、语音、图像、视频或其他内容类型发出的查询,并利用这些查询跨其他内容类型进行搜索。
- 智能 — 它应该能够提供预测式自动补全,并理解用户的意图(拼写校正、短语和属性检测、意图分类、概念搜索),在正确的时间提供正确的答案,并不断变得更加智能。
- 辅助性 — 它应该超越仅仅提供链接,提供答案、摘要、解释和可执行的操作。
这些能力中的许多是由LLMs实现的,而其他一些则通过分析用户行为并构建特定领域的个性化档案、知识图谱和排名模型来驱动。
随着LLMs的普及,搜索界面也在不断演进,包含更多的聊天机器人和对话式信息发现会话,但即使是今天最好的模型,在没有实际信息源的情况下(如搜索引擎索引),仍然难以避免产生幻觉(编造错误答案)和偏离轨道。检索增强生成(RAG)技术,即使用搜索引擎或向量数据库作为知识来源,提供准确且最新的信息作为LLMs的上下文,是目前提升生成AI模型准确性最可靠的技术之一。
人工智能驱动的搜索的目标是使用自动化机器学习技术实现所有这些期望的能力。尽管许多组织从基础的文本搜索开始,花费多年时间手动优化同义词列表、业务规则、知识本体、字段权重等无数方面的搜索配置,但一些组织已经开始意识到,许多这些过程可以通过自动化来完成。
在本书中,您将学习实现许多关键的人工智能驱动搜索技术,例如:
- 使用LLMs进行查询解释、嵌入、问答和结果总结
- 微调LLMs以进行搜索和问答
- 收集和使用用户信号进行众包相关性
- 信号增强模型
- 从信号和内容中学习知识图谱
- 语义知识图谱
- 查询意图分类和查询感知消歧
- 个性化搜索和推荐
- 机器学习排名(学习排名)
- 隐式相关反馈的点击模型
- 通过主动学习避免排名模型中的偏见
- 跨文本、图像和混合内容类型的混合搜索和多模态搜索
- 使用知识图谱和LLMs的语义搜索
本书是一本面向实际应用的指南,涵盖了构建智能搜索系统时常用的最适用的机器学习算法和技术。我们不仅会讲解关键概念,还将提供可重用的代码示例,涵盖数据收集和处理技术,以及自学习查询解释和相关性策略,帮助提供人工智能驱动的搜索能力,支持今天领先组织的工作——希望很快也能包括您的组织!
1.1 什么是人工智能驱动的搜索?
在2022年11月之前,当OpenAI发布ChatGPT,作为一种非技术用户也能通过与之对话解决多种问题的通用算法时,“人工智能”这一概念对大众来说仍然有些模糊。人们理解人工智能包括自动驾驶汽车、自治机器人以及其他看起来像是智能的未来技术,但很多人认为AI更多是一个营销术语,而非一个明确定义的术语。然而,在软件行业中,人工智能有着更为具体的定义。
在软件开发的背景下,人工智能这个术语通常指的是任何能够执行原本需要人类智能完成的任务的计算机程序。该程序通常包括机器学习技术,使其能够从数据中学习并随着时间的推移提升性能。尽管如此,即便是那些不涉及机器学习技术,但能够生成类似人类反馈的基于规则的系统,传统上也被视为“AI”系统。本书将采用这个更广泛的人工智能定义,尽管我们主要讨论的是AI的机器学习方面。
同样,公众普遍认为“搜索”(或“搜索引擎”)指的是像Google或Bing这样的网页搜索引擎。在软件开发中,搜索一词也用来描述任何使用户能够查询和查找信息的技术。搜索通常涉及至少两个关键步骤——找到与查询匹配的文档(匹配)以及按与查询的相关性对这些文档进行排序(排名)。搜索还可能包括许多预处理步骤,以更好地理解查询,和后处理步骤,从匹配的文档中提取答案或总结结果。搜索通常是用户查找信息的主要方式,无论是进行一般网页搜索、产品搜索、企业搜索、视频/图像搜索,还是其他成百上千种常见的查找和排序信息的用例。它也是生成式AI系统快速查找更新的事实内容以作为上下文用于其提示的主要方式。
那么,什么是人工智能驱动的搜索,它与传统的“搜索”有何不同呢?许多流行词汇,如“AI”、“机器学习”、“数据科学”和“深度学习”等,经常被交替使用,因此理解这些词汇的区别以及它们如何与人工智能驱动的搜索交集是很重要的。图1.1展示了这些相关领域之间的重要关系。
机器学习是人工智能的一个子集,专注于使用数据来训练模型,执行基于从训练数据中获得的洞察的任务。深度学习是机器学习的进一步子集,专注于训练人工神经网络——这些算法部分模仿人类大脑的结构——来学习解决复杂问题。在图1.1中,可以注意到深度学习是机器学习的一个完全包含的子集,而机器学习又是人工智能的一个完全包含的子集。数据科学是一个与人工智能和搜索高度重叠的学科,但它也包含其他独特的关注领域,因此它既不是人工智能或搜索的完全超集,也不是完全的子集。
本书的重点是搜索(也称为信息检索)与人工智能的交集,特别是机器学习和深度学习技术在提高搜索结果相关性和自动化调整搜索相关性过程中的应用。构建人工智能驱动的搜索涉及许多知名的机器学习技术,但也有许多特定于信息检索和搜索领域的技术。图1.2提供了我们将在本书中讨论的一些关键人工智能驱动搜索技术的分类列表,按它们是否为深度学习技术、是否为不需要深度学习的其他机器学习技术,或是否为不需要机器学习的其他人工智能技术进行分类。
在仅涉及人工智能的类别中,问答系统、虚拟助手、聊天机器人和基于规则的相关性都是人工智能技术的例子,虽然它们通常是使用机器学习构建的,但并不需要机器学习。许多聊天机器人完全基于规则构建,用来理解不同用户的表达和意图,同样,问答系统也可以完全基于规则和本体构建。尽管如此,机器学习通常用于学习这些规则和本体,因此这些类别之间的界限常常是模糊的。
当算法开始使用数据训练模型时,我们就进入了人工智能驱动搜索的机器学习子类别。我们使用搜索引擎用户的行为信号(点击、点赞、加入购物车、购买等)来构建模型,这些模型可以学习如何更好地对文档进行排名。这可以包括信号增强模型(每个查询或类别的顶部文档)、生成推荐或个性化搜索结果的协同过滤模型,以及通过从内容和行为信号中学习来更好地排名的排名分类器(学习排名)。机器学习还用于学习知识图谱,知识图谱是关于实体、概念及其关系的图谱,可以用来更好地理解领域并更好地解读用户查询。语义搜索(不仅仅是关键词搜索,而是基于意义的搜索)可以通过这些知识图谱来实现,再结合传统的自然语言处理方法、查询意图分类、文档聚类及其他由用户查询、文档和用户行为信号驱动的技术。
最后,在人工智能驱动搜索的深度学习子类别中,我们看到了使用神经网络构建能够理解用户查询和文档的模型,并对搜索结果进行排名和总结。在这里,文本被用来训练大型语言模型(LLMs)来理解单词和短语的意义,生成问题的答案,并生成文档的摘要。LLMs是一个基础模型,可以解释文本内容,通常是在大量互联网文本上进行训练的。基础模型还可以在文本以外的其他类型内容上进行训练(如图像、音频、视频),以实现跨这些内容类型的多模态搜索:文本到图像搜索、文本到音频搜索、图像到视频搜索等。LLMs还被用来生成嵌入,嵌入是内容的向量表示,代表内容的意义。由于搜索引擎的主要任务是找到并对与传入查询相似的内容进行排名,这些嵌入使得基于查询的意义进行搜索的能力变得更加复杂,并显著提高了查询理解和排名。对基础模型在特定目标或领域特定数据集上的进一步微调,也会使其在理解这些领域或用例的细微差别时变得更好。
基础模型压缩了大量人类知识(通常包括互联网上的大部分内容),为它们提供了跨大多数领域的广泛理解。然而,这种知识压缩是有损的——原始数据没有存储,并且具体的事实和概念容易混淆。基础模型被广泛认为会虚构问题的答案,这使得它们通常不可靠,不能用来回答事实性问题。因此,除了搜索引擎使用基础模型来提高查询理解和排名外,我们还看到它们被大量用于RAG(检索增强生成)——其中搜索作为知识来源,为基础模型提供准确和最新的信息作为生成式AI任务的上下文。
在本书中,我们将详细讨论这些人工智能驱动的搜索技术。但首先,我们来讨论人工智能驱动的搜索的目标,以及它与传统搜索有何不同。
1.2 理解用户意图
为了提供人工智能驱动的搜索,我们需要全面理解解释用户意图并返回与该意图匹配的内容所涉及的各个维度。在信息检索领域,搜索引擎和推荐引擎是两种最常用的技术,用于提供满足用户信息需求的相关内容。许多组织将搜索引擎和推荐引擎视为解决不同用例的独立技术。通常,同一个组织内的不同团队——往往拥有不同的技能组合——会独立工作,分别处理搜索引擎和推荐引擎。在本节中,我们将讨论为什么将搜索和推荐分离成独立的功能和团队,往往会导致不理想的结果。
1.2.1 什么是搜索引擎?
搜索引擎通常被认为是一种用于明确输入查询并接收回应的技术(见图1.3)。它通常通过一个文本框向最终用户暴露,用户可以在其中输入关键词或问题。结果通常以列表的形式返回,并附带其他过滤选项,以便进一步细化初始查询。通过这种机制,搜索作为一种工具,用于直接发现相关内容。当用户完成搜索会话后,他们通常可以发出新的查询,并从一个空白状态开始,忽略之前搜索的上下文。
搜索引擎是软件工程领域中最具跨职能特点的系统之一。大多数底层搜索引擎技术设计用于大规模操作,能够处理大量查询,针对数百万、数十亿甚至数万亿的文档进行查询,并在几百毫秒甚至更短的时间内返回结果。在许多情况下,需要对新摄取的数据进行实时处理和近实时搜索,所有这些都必须能够在多个服务器上并行化,以便扩展并满足如此高的性能要求。
实现搜索引擎还需要大量的工作来构建搜索特定的数据结构,如倒排索引或基于ANN的向量存储,理解线性代数和向量相似性评分,具备文本分析和自然语言处理的经验,并且了解许多特定于搜索的数据模型和能力(拼写检查、自动建议、分面搜索、文本高亮、嵌入等)。
为了让搜索引擎能够充分解读用户意图,至关重要的是结合对内容、用户和领域的透彻理解。我们将在简要讨论推荐引擎的相关话题后,重新讨论为什么这一点如此重要。
1.2.2 推荐引擎提供什么?
大多数人认为推荐引擎(或“推荐系统”)是那些不接受直接用户输入,而是根据引擎从用户那里学到的内容,计算出最匹配他们兴趣和行为的内容的系统。这些兴趣通过各种方式推断出来,包括用户偏好、用户行为、浏览过的内容等。这种不直接接受用户输入的推荐引擎,与传统上认为需要明确用户驱动查询的搜索引擎形成了鲜明对比。
如果你经常访问Amazon.com或其他主要的电子商务网站,你无疑对推荐引擎部分非常熟悉,其中会显示“基于你对此商品的兴趣,你可能也喜欢……”或者基于你集体的浏览和购买历史,推荐一系列商品,就像图1.4中的示例。这些推荐通常为公司带来了显著的收入,并帮助客户发现相关、个性化且相关的内容,通常与他们明确搜索的内容互为补充。
推荐算法大致可以分为三类:
- 基于内容的推荐引擎 — 根据商品或用户的属性进行匹配
- 基于行为的推荐引擎 — 根据相似用户与相似商品的互动重叠进行匹配
- 多模态推荐引擎 — 基于相似的内容属性和重叠的行为互动进行混合匹配
1.2.3 搜索与推荐之间的个性化光谱
搜索引擎与推荐引擎之间的关键区别在于,搜索引擎通常由用户引导,并匹配用户明确输入的查询,而推荐引擎通常不接受直接的用户输入,而是基于已知或推断的知识推荐用户可能想要看到的内容。
但这两种系统其实是同一枚硬币的两面,将它们视为独立的系统会形成一个错误的对立。两者的目标都是理解用户的需求,并提供相关的结果以满足用户的信息需求。在搜索和推荐系统之间有着广泛的个性化能力。
假设你有明确的查询和特定于用户的个性化档案,在为最终用户寻找内容时,你可以做以下任意操作:
- 传统的关键词搜索 — 忽略用户档案,仅使用明确的输入。
- 个性化搜索 — 隐式使用档案并结合其他明确的用户输入。
- 用户引导推荐 — 明确使用档案,并提供用户调整的能力。
- 传统推荐 — 明确使用档案,但用户无法调整。
图1.5展示了这一个性化光谱。
尽管个性化光谱的两端代表了极端情况,但它们也是最常见的两种方法。不幸的是,我们在许多组织中看到的最大错误之一是围绕“搜索与推荐是独立问题”这一信念建立的团队。这常常导致数据科学团队构建复杂的个性化和细分模型,只能用于推荐而无法用于搜索;而工程团队则构建了大规模的关键词匹配引擎,这些引擎无法轻松利用推荐团队构建的强大模型。
更多时候,推荐团队通常由数据科学家组成,但他们对信息检索的背景了解较少;而搜索团队则通常由工程师组成,他们对数据科学的背景了解有限。由于康威定律(“设计系统的组织……受限于其沟通结构,设计出的系统往往是这些组织的沟通结构的复制”),最终会导致在个性化光谱中(特别是中间部分)解决问题时的挑战,这些问题需要两个团队的最佳实践。在本书中,我们重点介绍了使得搜索变得更智能,推荐变得更灵活的共享技术,通过统一的方法实现这一目标。人工智能驱动的搜索平台需要能够持续从用户和内容中学习,然后使用户能够引导结果,从而不断改进。
1.2.4 语义搜索和知识图谱
我们在图1.5中将搜索和推荐展示为一个个性化光谱,其中个性化搜索和用户引导推荐处于中间,但还有一个对于构建良好的人工智能驱动搜索系统至关重要的维度——对给定领域的深刻理解。仅仅匹配关键词并根据用户集体与文档的互动推荐内容是不够的。搜索引擎还必须尽可能多地学习关于该领域的知识。这包括:
- 学习所有重要的领域特定短语、同义词和相关术语
- 识别文档和查询中的实体
- 生成一个关联这些实体的知识图谱
- 消解领域特定术语代表的众多细微含义
- 能够有效解析、解读和概念匹配用户在特定领域内的细微意图
图1.6展示了一个查询的语义解析示例,目标是搜索“事物”(已知实体),而不是“字符串”(仅匹配文本)。
为了使搜索变得更智能,许多公司花费大量资金雇佣大团队手动创建字典和知识图谱,以识别用户查询中实体之间的关系。本书专注于一种更具可扩展性的方法:构建一个能够自动持续学习这些关系的人工智能驱动搜索引擎。我们还深入探讨了语义搜索的其他技术,包括基于嵌入的密集向量搜索和使用大型语言模型(LLMs)的生成式搜索。
1.2.5 理解用户意图的维度
我们讨论了传统关键词搜索、推荐系统以及它们之间的个性化光谱的重要作用。我们还讨论了语义搜索的必要性,以提供对您的内容和用户查询的领域特定理解。所有这些都是一个更大目标的关键支柱:完全理解用户意图。图1.7展示了这些用户意图关键支柱之间的相互作用。
图1.7中的左上圆圈代表内容理解——基于关键词、语言模式和已知属性匹配找到正确内容的能力。右上圆圈代表用户理解——理解每个用户的具体偏好,并利用这些信息返回更个性化的结果的能力。最后,底部圆圈代表领域理解——在您的领域特定上下文中,能够解释单词、短语、概念、实体以及它们之间的细微解释和关系的能力。
位于内容理解圈中的查询代表传统的关键词搜索,能够基于关键词进行匹配,但没有使用任何领域或用户特定的上下文。位于用户理解圈中的查询将是来自协同过滤的推荐,用户无法覆盖输入,也没有对底层文档的领域或内容的理解。位于领域理解圈中的查询可能是基于已知标签、类别或实体的结构化查询,甚至可能是一个类似浏览的界面,允许探索这些领域特定实体及其关系的知识图谱,但没有任何用户特定的个性化或查找任意术语、短语和内容的能力。
当传统的关键词搜索和推荐系统重叠时,我们得到了个性化搜索或引导推荐。当传统的关键词搜索和知识图谱重叠时,我们得到了语义搜索:一种智能的、领域特定的搜索体验。最后,当推荐系统和知识图谱重叠时,我们得到了更智能的领域感知推荐,它基于类似文档之间的众包用户互动和对这些文档重要属性的领域特定理解进行匹配。
人工智能驱动搜索的终极目标是利用这三大类别的交集:语义搜索、个性化搜索和领域感知推荐。也就是说,要真正理解用户意图,我们需要以下所有内容:
- 对用户搜索的领域的专家理解
- 对用户及其偏好的专家理解
- 匹配和排名任意查询与任何内容的专家能力
人工智能驱动的搜索从用户意图的三大支柱(内容、领域和用户)开始,然后采用智能算法在每个领域中不断学习和改进。这种学习包括自动学习排名标准、自动学习用户偏好以及自动学习所代表领域的知识图谱和语言模型。最终,这三种方法的平衡组合提供了对用户及其查询意图的最佳理解,这也是我们人工智能驱动搜索系统的最终目标。
1.3 人工智能驱动的搜索是如何工作的?
我们已经阐明了通过内容理解、用户理解和领域理解来匹配用户意图的最终目标。在建立了这些背景之后,让我们通过概述实现人工智能驱动搜索平台所需的实际组件来总结本章。搜索智能通常随着时间的推移沿着一个可预测的进展逐步成熟,如图1.8所示。基本的关键词搜索是组织的典型起点。一旦投入生产,它们就会意识到搜索的相关性需要改进,开始手动调整字段权重、提升、文本和语言分析,并引入额外的功能和特性。
最终,它们意识到需要将领域理解注入到搜索功能中,这时组织开始投资于同义词列表、分类法、已知实体列表和领域特定的业务规则。虽然这些都有帮助,但组织最终会发现,相关性搜索在很大程度上取决于成功解读用户查询和理解用户意图,因此它们开始投资于查询分类、语义查询解析、知识图谱、个性化等技术,并尝试正确解读用户查询。
由于这些任务带来了改进,这种成功通常会导致大团队的形成,投入大量时间手动调优列表和参数,最终组织可能意识到,通过从用户信号、用户测试(A/B测试、离线相关性模拟和主动学习)中学习,并构建机器学习的相关性模型,完全自动化这一过程是可能的(并且更为高效)。最终目标是完全自动化搜索智能进展中的每个步骤,使引擎具备自学习的能力。
1.3.1 核心搜索基础
构建搜索平台的第一步几乎总是让传统的关键词搜索功能正常工作(图1.7中的“内容理解”部分)。团队通常会花费数年时间来调整和改进这一步,出现了一个专门的学科——相关性工程,历史上该学科集中大量精力在理解内容、改进内容以便搜索、调整提升、查询参数和查询功能等方面,试图最大化传统搜索体验的相关性。想要深入了解相关性工程和调优传统关键词搜索相关性的内容,推荐阅读Doug Turnbull和John Berryman的《Relevant Search》一书(Manning, 2016)。
随着相关性工程师变得越来越成熟,他们的工作往往扩展到用户理解和推荐系统领域,以及领域理解和语义搜索领域。近年来,随着大型语言模型的兴起,实现现成的语义搜索变得容易,但要达到优化相关性和匹配的下一个层次,需要更为复杂的方法,正如您将在本书中学到的那样。我们在《AI驱动搜索》中的重点是自动化学习和优化搜索相关性的过程,使其成为一个持续反馈循环。我们基本上希望自动化相关性工程师的工作,尽可能依靠算法不断学习最佳匹配和排名策略。
那么,是什么特征使得一个调优良好的搜索引擎与一个人工智能驱动的搜索引擎有所不同?一个调优良好的搜索引擎是人工智能驱动搜索的基础,但人工智能驱动搜索远远超越了这一点,它通过反射智能不断学习和改进。反射智能是指利用用户输入、内容更新以及用户与内容交互的持续反馈循环,不断学习并提高搜索应用的质量。
1.3.2 通过反馈循环实现反射智能
反馈循环对于构建人工智能驱动的搜索解决方案至关重要。试想一下,如果你的整个教育过程(从小学到最高学位)仅仅是通过阅读教科书来完成:没有老师可以提问,没考试来测试你的知识并提供反馈,也没有同学或其他人可以互动、学习或合作。你可能会遇到无数的障碍,无法完全理解某些概念,甚至无法理解你所阅读的内容,你会错误地理解许多观点,且从未有机会意识到这一点或调整你的假设。
搜索引擎往往以同样的方式运作。聪明的工程师将数据推送到搜索引擎并调整某些功能和功能权重,但引擎只是读取这些配置,并且对每次重复的用户查询采取相同的方式处理。然而,当我们引入反馈循环时,搜索引擎成为了互动学习的理想系统。
图1.9展示了搜索反馈循环中的典型信息流动。首先,用户发出查询。这个查询执行搜索,并返回结果,如特定答案、答案列表或链接列表,呈现给最终用户。一旦展示了这些结果,用户就会采取一个或多个行动。这些行动通常从点击文档开始,但这些点击最终可能导致将某个项目添加到购物车并购买(电子商务)、给项目点赞或点踩(媒体消费网站)、喜欢或评论结果(社交媒体网站)或其他许多特定于上下文的操作。
这些行动可以用于生成改进的相关性排名模型,以便未来的搜索使用。你的搜索应用程序可以自动调整未来搜索结果的排名,从而为下一个用户的搜索提供更好的搜索体验。
1.3.3 信号增强、协同过滤和学习排名
搜索、点击、点赞、加入购物车、购买、评论以及与搜索应用的其他互动是你需要捕捉的关键数据。我们统称这些数据点为信号。信号为你的搜索应用提供了持续的反馈流,记录与最终用户的每一次有意义的互动。这些数字化的瞬间可以被机器学习算法使用,生成模型来支持用户理解、内容理解和领域理解。
图1.10展示了在典型的人工智能驱动搜索应用中,信号的收集和处理的数据流。你可以看到信号是如何为每次搜索收集的,以及随之而来的点击和购买。任何其他类型的用户互动(如加入购物车、点击分面、书签、悬停或甚至页面停留时间)也可以记录独特的信号。
信号是驱动人工智能驱动搜索应用智能引擎的两大数据来源之一,另一大数据来源是内容。许多人工智能驱动的搜索算法通过反馈循环集成信号,来构建反射智能模型。以下是一些关键的反射智能算法类型:
- 流行的相关性 — 信号增强算法通过聚合信号创建模型,提升最重要文档在最流行查询中的排名。
- 个性化相关性 — 协同过滤算法使用矩阵分解或类似技术,通过信号生成推荐并建立用户档案,个性化每个用户的搜索结果。
- 广义相关性 — 学习排名算法训练排名分类器,通过用户信号驱动的点击模型生成的相关性判断,执行机器学习排名。这个过程学习一组特征和排名权重,可以广泛应用于所有查询——即使是之前未见过的查询。
这些算法使得你的搜索应用能够从用户互动中学习,并自动调整未来搜索结果的排名,从而为下一个用户的搜索提供更好的搜索体验。
1.3.4 内容和领域智能
虽然信号为你的搜索应用提供了持续的使用和反馈数据流,但你的内容也是可以融入到反馈循环中的丰富信息来源。例如,如果某人搜索某个特定的关键词,返回文档中的其他关键词和顶级类别将作为有价值的数据点。这些数据点可以用于标记或分类查询,并可以展示给其他终端用户(例如作为分面),从而引发进一步的互动,生成新的信号,搜索引擎也可以从中学习。
你文档的内容构成了你领域的代表性文本模型。实体、领域特定术语以及文档中的句子构成了一个丰富的语义图。这个图可以被用来驱动强大的概念性和语义搜索,更好地理解你的领域。我们将在第2章深入探讨如何理解你的内容,并在第5章探讨如何利用这个丰富的语义知识图谱(SKG)进行语义搜索。
近年来,大型语言模型(LLMs)彻底改变了搜索引擎如何解释查询和响应。LLMs是基于大量文本数据训练的深度神经网络。它们能够识别、翻译、总结、预测并基于传入的提示和提供的额外上下文生成新数据。通常,LLMs是基于文本训练的,接收文本作为提示并返回文本作为响应,尽管类似的多模态模型也可以在图像、音频、其他数据或上述所有数据上进行训练。LLMs通常在神经网络中包含数十亿个参数,这个数字可能会随着模型性能的提高而继续增长。
今天最成功的LLMs基于2017年谷歌研究人员提出的Transformer架构,该架构将“注意力”概念应用于语言学习(“Attention is All You Need”,Ashish Vaswani等人)。大量的文本数据被输入到神经网络中,并使用无监督学习对单词及其在每个上下文中的关系进行建模。一旦模型构建完成,它就能将传入的文本字符串、提示,作为上下文进行解码,并将上下文编码为嵌入,这些嵌入是提示意义的数值向量表示。除了能够将提示编码为嵌入,Transformer还包含解码层,能够将嵌入转换回文本。Transformer可以用来解决多种问题,从基于嵌入的相似性搜索(文本搜索、图像搜索等),到问答、分类、内容摘要,甚至是生成新内容(写作、代码、诗歌、图像等)。
Transformer模型是上下文敏感的。一个经过问答任务调优的LLM可能会对提示“What is the difference between a capital and capitol?”(“资本和国会大厦的区别是什么?”)作出如下回答:“A capital is a city or town that serves as the seat of government for a state or country. A capitol is a building in which a state legislature meets.”(“资本是指一个城市或城镇,作为一个州或国家的政府所在地。国会大厦是指一个州立法机构举行会议的建筑。”)然而,同一个LLM可能会对问题“What is the difference between a capital and lowercase word?”(“大写字母和小写字母的区别是什么?”)给出以下基于上下文的回答:“The difference between a capital and lowercase word is that a capital letter is used at the beginning of a sentence or proper nouns, while a lowercase letter is used for all other letters in a word.”(“大写字母和小写字母的区别在于,大写字母用于句子的开头或专有名词,而小写字母用于单词中的其他字母。”)
许多LLM是开源的,但为了获得最佳输出质量,LLM在进行领域特定的内容和提示微调时,会发挥更大的效果。微调是将一个已经预训练的模型(它已经具备强大的语言理解和一般概念理解)“教导”新内容和任务的过程。原始的预训练模型通常被称为基础模型,因为它们构成了将要应用领域特定微调的基础。微调的过程通常只需原始LLM训练时间的一小部分。一些LLM已经在大量数据和各种数据上进行了训练(例如,广泛的互联网网页抓取),因此它们可以在不重新训练的情况下表现得相当好,但针对特定任务的重新训练几乎总是能提高性能。
1.3.5 生成式AI与检索增强生成
生成式AI正在以惊人的速度加速发展,搜索引擎不仅从中受益,而且还作为生成式AI系统的关键组成部分。LLM(和其他基础模型)作为推理引擎,拥有足够的世界知识来解读语言,并普遍推理大多数概念,但没有可靠地回忆事实信息的能力,除非通过检索来确保避免幻觉(编造虚假信息)。
因此,搜索引擎在检索增强生成(RAG)管道中作为LLM的知识来源,使得相关的上下文能够被检索并传递给LLM,确保LLM拥有最新和准确的数据,以便回答问题。本书的核心内容实际上就是使用AI来优化RAG中的“检索”部分,我们将在第15章讨论“生成”部分。
尽管RAG使得搜索引擎成为生成式AI系统的关键组成部分,但LLM也作为搜索引擎的关键组成部分。LLM可以用于解读查询,生成向量搜索的嵌入,生成搜索结果的摘要,甚至直接从搜索结果中生成答案。
从传统信息检索到这些新型生成搜索功能的过渡如图1.11所示。几十年来,传统搜索返回一系列搜索结果(“十个蓝色链接”),显示与查询最相关的排名靠前的文档。对于实体和知名话题的查询,搜索引擎通常会展示预先计算的资讯框,提供摘要信息,或显示预定的已知问题的答案。搜索引擎还经常从搜索结果中提取单词、句子或段落片段来回答问题,而不是强迫用户打开并阅读搜索结果以找到答案。这个过程被称为抽取式问答,它是一种更具针对性的搜索形式,因为它额外搜索并排名文档中的答案。
然而,从搜索结果中提取答案和合成新内容以返回结果之间有一条细微的界限,这也是我们进入生成式搜索领域的转折点。结果总结是将搜索结果重写为更简洁、易读的格式的过程,通常会结合来自多个来源的信息,甚至在总结的回答中提供来源引用。抽象式问答是通过合成来自一个或多个排名搜索结果的信息,生成对用户问题的回答。抽取式问答和抽象式问答的区别在于,抽取式问答从文档中找到相关内容并返回作为答案(“提取”它),而抽象式问答则通过解释结果,生成一个综合的回答,这个回答可能与文档中的表述不同。生成新内容也是生成式搜索体验的一部分,例如根据用户提交的关键词或提示,回应查询时创作新的散文、代码、诗歌、图像或其他内容。
总之,生成式AI和人工智能驱动的搜索是紧密相互关联的。生成式AI是“人工智能驱动搜索”的关键组成部分(推动答案生成和结果总结),而人工智能驱动搜索是“搜索驱动AI”(RAG)的关键组成部分。两者都大量使用LLM和其他基础模型,都是智能和准确的AI系统的关键组成部分。
1.3.6 策划式AI与黑盒AI
与LLM一样,许多现代AI技术在深度学习方面严重依赖人工神经网络。不幸的是,由于深度学习模型内部的复杂性,人类往往很难理解模型做出特定预测或输出的具体因素。
这有时会导致“黑盒AI”系统,其中结果可能是正确的或令人印象深刻的,但当模型做出错误判断时,难以调试或修正。出于需要理解、策划和信任这些模型的需求,已经产生了一个完整的领域——可解释AI(有时也叫透明AI或可解释的AI)。
在本书中,我们将涵盖深度学习方法的搜索,例如基于嵌入的密集向量搜索、问答、合成训练数据生成以及使用LLM进行结果总结。然而,我们将主要集中于创建可以用人类语言表达的智能,并且可以通过人类智能进行修正和增强。你可以将其看作是“AI辅助的人类策划”,或称作“人类辅助的AI”,但无论如何,本书的核心哲学是利用AI自动化搜索智能的过程,同时保持人类参与,并具有控制、增强或覆盖系统的能力。
作为一种学习方法,这种方式也有助于更深刻、直观地理解搜索排名和相关性是如何工作的,以及如何在不失去对系统控制的情况下,整合多种不同的AI驱动方法。
1.3.7 人工智能驱动搜索引擎的架构
人工智能驱动的搜索引擎的架构通常需要将多个构建块组合成一个智能的端到端系统。首先,你需要一个核心搜索引擎,如Apache Solr、OpenSearch或附录B中提到的其他搜索引擎或向量数据库。然后,你将可搜索的内容输入引擎,运行各种转换以使其更有用。这些索引时间的转换可能包括以下几种:
- 使用LLMs将文档的意义转化为嵌入
- 对文档进行分类,将分类信息添加为一个字段
- 规范化字段值
- 从文本中提取实体,并将实体添加到单独的字段中
- 对内容进行聚类,将聚类结果作为一个字段
- 检测并注释短语
- 从知识图谱、外部API或其他数据源拉取附加数据
- 执行词性(POS)检测和其他自然语言处理步骤
- 提取事实(如RDF三元组)
- 应用其他机器学习模型或ETL规则来丰富文档内容
数据进入引擎后,你的目标是使其可以进行搜索。这需要查询管道,它能够解读传入的查询;识别概念、短语和实体;纠正拼写错误;扩展查询,包含相关术语、同义词、概念或嵌入表示;然后重写查询,以便你的核心引擎可以找到最相关的结果。然后,单个搜索文档可能会返回给最终用户,结果摘要可以通过语言模型生成,或直接从结果中提取答案。
然而,很多查询智能都需要对你的领域有深入的理解。这需要对你的内容和用户信号进行批处理,以学习模式并推导领域特定的智能。比如,用户最常见的拼写错误是什么,他们在多个候选中选择哪个正确的拼写?当用户搜索特定查询时,哪些文档应该被提升为最流行的?对于未知查询,在所有可用的匹配属性或特征中,理想的排名应该是什么?
我们需要在查询时访问大多数这些答案(无论是预计算的还是可以快速计算的),因为我们期望查询在毫秒到秒之间返回结果。这需要一个作业处理框架(本书中我们使用Apache Spark)和一个工作流调度机制,确保作业按顺序运行。
你还需要一个机制来收集源源不断的用户信号流(在前端应用程序中捕获它们,然后将其存储在你的搜索引擎或其他后端数据存储中)。
这些信号将用于生成各种模型——从信号增强模型,提升最流行项目的排名,直到学习排名模型,应用一个可泛化的排名函数到所有查询,再到个性化模型,输出每个用户或用户细分的个性化推荐和偏好。
人工智能驱动的搜索远不止是使用最新的LLM来解读查询。它是关于构建一个端到端的系统来进行持续学习。最终,你将得到一个系统,它接收不断变化的文档和用户信号流,持续处理这些流以改进模型,然后不断调整未来的搜索结果,并衡量变化的效果,从而提供更智能的结果。这就是人工智能驱动搜索的关键:基于真实用户互动、更新内容模式、不断发展的模型实施持续学习和改进的过程,以最佳地理解当前的用户意图,并提供不断改进的搜索体验。
总结
-
随着LLMs的崛起,搜索的复杂度期望正在发生变化,最终用户现在期望搜索具备领域感知、上下文理解、个性化、对话式、多模态、智能化和辅助性等特性。
-
搜索和推荐是信息检索中个性化光谱的两个极端,考虑其中的机会来优化相关性是很重要的。
-
正确解读用户意图需要同时理解内容、用户及其偏好,以及平台运营的知识领域。
-
最佳的搜索相关性位于个性化搜索(传统的关键词搜索加上协同推荐)、语义搜索(传统的关键词搜索加上知识图谱)和领域感知推荐(协同推荐加上知识图谱)交汇的地方。
-
人工智能驱动的搜索依赖并从两种关键数据类型中学习:内容和用户信号。
-
搜索和生成式AI密切相关。生成式搜索功能,如RAG,是现代生成式AI系统的关键组成部分(用于防止幻觉);而生成式AI功能,如结果总结,是现代搜索引擎的关键组成部分(用于返回更好的答案)。
-
反射智能——利用反馈循环不断收集信号、调整结果和衡量改进——是使人工智能驱动搜索能够学习并不断改进的引擎。