想学 AI,先搞懂这件小事!( 五 )
向量检索有两个基本参数 , 一个是n , 意思是拿n条目标向量去数据库中做检索 。 另一个是k , 意思是查找离目标向量最近的前k个向量 , 我们一般称为top-k 。
向量检索有两类方法:存在最近邻检索(Nearest Neighbor Search , NN)和近似最近邻检索(Approximate Nearest Neighbor Search , ANN) 。 NN最初是用目标向量和数据库向量逐条计算距离 , 结果最为精确 , 后来又产生了相关算法(比如KD-tree) , 使得搜索效率大为提高 , 但在应对海量高维度数据时显得力不从心 。 ANN则是在可接受的精度条件下通过把向量分簇建立索引 , 大幅提高搜索效率 , 这也大规模向量检索场景下所使用的主要方法 。
怎么理解这里的分簇索引呢?打个比方 , 我们先给一个城市里所有的人按照职业做一个分类 , 比如工程师 , 律师 , 医生 , 等等 。 现在我要找一个人 , 他是Java程序员 , 那么我们掐指一算 , 只要在工程师队伍里找就十有八九能找到他 , 不需要再去其他队伍里找了 。
向量检索中典型的做法就是通过某种聚类算法把大批向量分成很多簇 , 每个簇含有成百上千条向量 , 每个簇都有一个中心向量 , 当用户输入目标向量搜索时 , 系统先把目标向量和每个簇的中心向量做距离计算 , 挑选出距离比较近的几个簇 , 然后再把目标向量和这几个簇里的每一条向量做距离运算 , 最后得出距离最近的k条结果向量 。
推荐阅读
- 打野|英雄联盟:木木带征服者,团战能力还是差!可能这件装备你没出!
- 问道|能让程咬金成神的,不是“冰心”,而是这件2180
- 热血传奇|热血传奇:刀刀都是真实伤害,这件武器就是神器!
- 魔兽世界怀旧服|魔兽怀旧服:祖阿曼设计初衷,新人玩家福利?这件项链让人泪目
- 化身博士|“圣杯流”庄周才最强,配合这件神器,一打五都不是问题
- csgo|梦幻西游:当这只泪妖从藏宝阁取下来的时候,我就知道这件事不简单……
- 国服|光遇:好友互心也要收回?国服处罚越来越严格,这件事不能做!
- 护腕|魔兽世界TBC:法师首选心灵风暴护腕?这件平民护腕丝毫不逊色
- LGD|DOTA2:永远可以相信ame会在关键时刻拉跨,第三次证明了这件事
- lng|英雄联盟手游这件可以克制蒙多风女的装备,你会用吗?