超越向量搜索:转向张量检索

44 阅读6分钟

向量搜索有局限性,张量能保留结构,实现跨模态的上下文感知嵌入。张量框架应包括最小可组合运算集、统一支持密集和稀疏维度、具有命名维度的强类型。Vespa的张量框架专为实时生产环境设计。

译自:Beyond Vector Search: The Move to Tensor-Based Retrieval

作者:Bonnie Chase

这是分为两部分的第二部分。另请阅读:

第 1 部分中,我们探讨了纯向量搜索系统日益增长的局限性,强调了在需要结构化过滤、实时更新、个性化排名和多模态理解的场景中,扁平嵌入的不足之处。

随着 AI 应用程序的发展,显然仅靠语义相似性是不够的。我们需要的是结构——一种以既具有表达力又具有高性能的形式来表示模态内部和跨模态关系的方法。

这就是张量发挥作用的地方。

虽然向量和张量在技术上是同一种对象——都是机器学习中使用的数值表示——但向量只是一维张量。张量将这个概念推广到多个维度,从而实现更丰富、更具表现力的表示。

因为张量保留了关键的上下文——序列、位置、关系和特定于模态的结构——这使得它们非常适合于精确性和可解释性至关重要的高级检索任务。

向量与张量:快速比较

乍一看,向量和张量可能看起来很相似。但是,在表达上下文和关系方面,它们的能力差异很大:

数据类型向量表示张量表示
文本[0.4, 0.2, 0.9]text[token][embedding]
图像[0.1, 0.3, 0.7, …]image[frame][region][channel]
视频[0.6, 0.8, 0.5, …]video[scene][timestamp][feature]

向量展平数据,将所有内容表示为单个嵌入。张量保留结构,从而实现:

  • 精细的检索,例如匹配特定的 token 或图像区域。
  • 跨模态的上下文感知嵌入,保留语义和空间关系。
  • 精确的查询交互,其中相似性只是考虑的众多维度之一。

这些功能使张量成为支持现代检索技术(如 ColBERT、ColPali 和时序视频搜索)的基础,所有这些技术都依赖于比较每个文档的多个嵌入,而不仅仅是一个。

尝试仅使用向量来复制这些功能会导致脆弱的架构:用于重排序的外部管道、用于过滤的断开连接的模型服务以及维护成本高且难以扩展的组件拼凑而成。

简化的张量框架

在大多数机器学习库中,张量被视为具有弱类型和不一致语义的非结构化、隐式排序的数组。这可能会在实际应用中造成重大挑战:

  • 大型、不一致的 API 会减慢开发速度。
  • 用于处理密集与稀疏数据的单独逻辑。
  • 有限的优化潜力和难以阅读、容易出错的代码。

在涉及混合数据、多模态输入和复杂的排名或推理管道的工作负载中,这些限制尤其令人痛苦。利用张量进行检索增强生成 (RAG)管道的更实用方法应遵循更正式的框架,包括:

  • 最小的、可组合的张量运算集。
  • 对密集和稀疏维度的统一支持。
  • 具有命名维度的强类型。

让我们进一步深入研究这些内容。

最小的、可组合的张量运算

最小的、可组合的张量运算集使框架保持强大且易于管理。通过用一小组数学上扎实的核心运算取代臃肿的 API,可以更轻松地阅读、学习和调试代码,同时降低出现 bug 的风险。开发人员可以组合这些构建块来表达复杂的逻辑,快速适应新的工作负载,并避免重写框架。

这种精益方法还为系统提供了更清晰的计算图,从而释放了更好的优化机会,例如向量化、并行化和内存重用。

统一处理密集和稀疏维度

数据通常以密集和稀疏两种形式出现。密集数据可能是产品图像嵌入,其中表示每个像素或视觉特征,从而产生完全填充的数组。另一方面,稀疏数据可能是产品属性,如品牌、尺寸或材料。

在许多框架中,这两种类型的数据是分开处理的,图像采用一种格式,属性采用另一种格式,每种格式都需要不同的 API 和逻辑。这种分离给开发、维护和优化增加了不必要的复杂性。

通过在同一个统一的张量框架内表示密集和稀疏数据,产品的图像嵌入及其结构化属性可以在单个表示中无缝组合,一起查询,并直接馈送到同一个排名或推理管道中,而无需格式转换。

这样做的好处是双重的:开发人员只需使用一个一致的 API,从而降低了复杂性和出现 bug 的可能性,而系统本身可以同时优化所有功能的性能。

在电子商务搜索或推荐场景中,这种统一的处理通过实时融合视觉相似性和基于属性的过滤,实现了更丰富、更精确的相关性评分,从而为客户提供更快、更准确的结果。

具有命名维度的强类型

具有命名维度的强类型为张量提供了大多数通用基于数组的系统所缺乏的语义清晰度层。命名维度就像数据中每个轴的人类可读标签(例如 product_id、color_channel、timestamp),因此您可以直接使用有意义的标识符,而无需处理索引中的位置。

这通过防止可能悄无声息地产生错误结果的维度不匹配,使计算更安全,同时使代码更易于一目了然地理解。结果是一个框架,其中逻辑既明确又可维护,从而减少了代价高昂的错误,并在不牺牲精度的情况下加速了迭代。

为什么 AI 应用程序的未来属于张量

向量搜索一直是一种强大的推动力,但随着应用程序变得越来越复杂、动态和多模态,向量已不再足够。张量提供了纯向量系统所缺乏的基础。如果向量有助于检索,那么张量有助于推理。

与扁平向量不同,张量保留了结构,实现了混合逻辑,并支持跨各种数据类型的有意义的计算。借助 Vespa 已投入生产的张量框架,组织可以无缝集成密集和稀疏数据,大规模地个性化体验,并在一个高性能平台中做出实时的、上下文感知的决策。

使张量更实用

Vespa 基于这些核心原则,开发了一种严格定义、强类型的张量形式体系,以使张量在规模上更实用。与许多仅关注模型开发的机器学习框架不同,Vespa 的张量框架还专为实时生产环境中的高性能服务而设计。在此报告中了解更多信息。