想象一个场景:A 和 B 各有一批数据,他们想要通过计算某个指标来衡量这两批数据的相似度。一种方式是 A (B) 把手里的数据全量发送给 B (A),然后 B (A) 在本地计算相似度。但如果这两批数据体量都特别大,通过网络传输所有数据到对方的做法就变得不现实。另一种做法就是 A (B) 先计算手上数据的 sketch,即压缩后的数据,把 sketch 发送给 B (A),然后 B (A) 在本地利用相同的方式计算手上数据的 sketch,最终通过比较两批数据的 sketch 近似估计相似度。
举一个具体例子:A 和 B 各有一组数字
现在我们标准化 sketch 的定义:
当我们想对一组数据
执行某种计算,记为 ,"Sketch" 是 的某种压缩形式,他允许我们在无法获取原始数据 的情况下近似估计 的值。有时候 也可以是二元函数:即给定 、 ,近似估计 的值。
在实践中,
dimensionality reduction 就是将 high-dimensional 数据转化成 lower-dimensional 数据,通过对 lower-dimensional 数据计算来估计 high-dimensional 数据的对应值。而维度的降低能节省大量的计算资源,你的算法也就可以跑得更快。dimensionality reduction 常常被用于加速 clustering (聚类) 和 nearest neighbor (近邻) 等机器学习算法。
比如机器学习中最常见的 regression problems (回归问题):先搜集一批样本点
matrix completion 是另外一种 regression problem。以 Netflix 为例:将用户和偏好当作两个维度形成的矩阵通常是十分稀疏的矩阵,因为每个用户只可能为很小的一部分影视作品打分,那么想要基于有限的信息来估计用户的完整偏好,就依赖于 matrix completion。
如常见的图片压缩格式 JPEG 和 MRI (核磁共振) 的数据处理。
在一些无法将所需数据一次性读入内存的场景中,磁盘 I/O 通常是性能瓶颈所在。此时需要以 I/O 来衡量算法的效率,这时计算模型就变成了 external memory model。在该模型下,我们假设有一个无限大的磁盘,磁盘被划分成固定大小 (如
数据库中常见的 B-tree/LSM-tree 就是为 external memory model 所设计的数据结构。
如 map reduce
在本课中,我们主要讨论的是离散变量,假设存在一个离散变量
不同随机变量的期望线性可加:
如果
Markov's Inequality 为一个非负的随机变量取值超过某个常数
的概率给出上限
有兴趣可以看一下 MIT RES.6-012 概率论入门课的相关视频:
对任意随机变量
更广义的 Chebyshev's Inequality 版本是:
Chebyshev's Inequality 为任意随机变量取值与期望之间的距离超过某个常数
的概率给出上限。
假设
Chernoff Bound 为多个随机变量的和与其期望的距离超过
倍的概率给出呈指数下降的上限。
假设
证明:暂略。
Bernstein Inequality 为多个随机变量的和与其期望的距离超过
的概率给出呈指数下降的概率上限。
接下来要讨论的问题首次出现在论文 Counting Large Numbers of Events in Small Registers 中。
问题:有一类事件不断发生,我们想要计算事件发生次数 (但不要求精确计算),同时将数据占用的空间最小化。
一种最简单直接的方式就是维护一个精确的计数器,假设事件发生总数为
如果使用近似计数,即如题所述 (approximate counting),那么问题就转化成输出
首先,我们可以用直觉来推测,如果要设计一个确定性的 (deterministic) 算法来解决上述问题,我们的空间复杂度下限是
Morris 算法步骤如下:
从直觉触发,我们可以推测
Q.E.D。解决了 expectation 问题,接下来分析一下
俗话说,三个臭皮匠赛过诸葛亮。利用
Morris++ 的思路是:利用
根据
综上所述,给定
Wikipedia: Markov's inequality, Chebyshev's inequality, Chernoff bound
MIT RES.6-012 Introduction to Probability, Spring 2018, L18.2, video