乘积量化

《Product Quantization for Nearest Neighbor Search》 (2011, IEEE)

近似近邻计算(approximate nearest neighbor)(ANN): 给一个测试样本,有一定误差的找到库里最近邻的样本们;

例:128维float向量,分成8组,每组128/8=16维,每组聚类(KMeans)成256类(用8bit可编码),每组有一个codebook(code->聚类中心的16维float向量);量化之后的样本编码成8bit*8=64bit的数据;

测试样本x,和库里所有样本y计算相似度,有两种方式:

1. x和y都量化:预处理,所有y量化好;x来了就先量化,计算x的量化值和y的量化值的相似度(计算8组,加到一起);每组的256个量化值两两之间的相似度,预处理阶段做好,使用阶段直接查表;

2. x不量化,y量化:预处理,所有y量化好;x来了,分8组,计算该组x到该组256个量化值之间的相似度(计算8*256次),存到表里(8*256个值);对每个y, y的8组量化值对应表里8个位置,直接查表最后相加即可;

方法2没有对x量化,因此精度损失比1小,效果更好!

 

两级量化:

1. 粗量化,同上;

2. 细量化:粗量化里每一组,库里的所有的y要和每个聚类中心计算"残差"(相减即可),对残差再聚类,这样每一组有N个残差中心

粗量化是计算: d(x, rc(y));  两级量化是计算:d( x - rc(x), rq(y - rc(y)) )  y是属于rc(x)那个粗聚类的样本们,即rc(x)==rc(y)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值