鉴于最近向量检索比较热门,同时很多同学对于 ScaNN 的推导没有什么背景知识, 所以本篇内容主要来带大家复习一下什么是 Quantization 以及 Quantization 的一些作用。
本节我们来简单介绍一下,方向导数、次可微性 和 最优化条件。还记得上一节我们介绍的次梯度 $\partial f$ 吗?有了次梯度我们就可以重新把实分析中的可微、梯度和导数联系在一起。让我们来看看凸分析里面是如何扩展这些数学工具的吧。
作为近年在 InnerProduct ANNS 任务上的 SOTA,Google 的这篇 ScaNN 包含了这几年来在为 ANNS 服务的向量量化方面研究相关工作的一些经典思想。所以我们在这里也希望能站在巨人肩膀上看世界,清晰了解 ScaNN 的技术细节。
本节我们主要来简单介绍一下什么是 次梯度 (Subgradient)。实际上,次梯度 就是更加泛化的梯度(Gradient)概念:对于一些特定的不可微函数,我们仍然可以找到一个类似梯度的定义来描述函数值变化的程度。这样就把我们的分析对象从可微函数扩展到了真函数 (proper)上了。
本节我们会介绍凸函数和可分离定理。这是对于凸优化非常重要的基本概念。这为最优化算法可行性的判定提供了有效的依据。我个人也是觉得这部分算是容易理解并且很优雅的一节内容。
本节我们会介绍一些基本定义和概念,包括什么是凸函数,什么是有界、闭合、紧致。同时我们还会回顾一些连续性的相关定义,以方便我们去证明后续的一些定理。