BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #14714同步于 2014/11/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

向量相似度快速计算

Forest0579
2014/11/18镜像同步32 回复
现在又一个需求,需要从百万级别的向量中找出topK(K<20)个与给定向量相似度最大的向量。 向量的维度控制在50~200之间,不知道有什么比较快速的算法可以解决的。向量的每个维度的值是double类型的,不稀疏,有正有负。 PS:这里的topK不是严格的,不需要准确的topK,可以损失一些准确率还换取时间上(质)的提升。 PSS:2014年11月27日17:18:47更新: 今天终于有时间测了一下kd-tree,结果,嗯,不知道是不是我实现的不好的问题,测试数据36w,然后用kd-tree取top1 用了20+秒,没错,就是20+秒,而暴力也只需要3秒。。。还以为是代码错了什么的,log看了一下,搜索空间是变小了,但是不明显,也就几千个向量没有参与计算。 是不是我的测试向量太少了,向量维度不够高或者太高了?不过内存实在放不下了再扩大的话。。。 不知道各位大大有没有了解情况的。。。求指点。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
knighterz机器人#1 · 2014/11/18
怎么这么像w2c的近义词。。。
Forest0579机器人#2 · 2014/11/18
恩?什么意思? 【 在 knighterz 的大作中提到: 】 : 怎么这么像w2c的近义词。。。
tlren2机器人#3 · 2014/11/18
w2v吧[ema24] 【 在 knighterz 的大作中提到: 】 : 怎么这么像w2c的近义词。。。
LJ10211289机器人#4 · 2014/11/18
听说过kD-tree或者ball-tree好像符合LZ的要求,但是没亲自试过
lizz机器人#5 · 2014/11/18
kd-tree可破,推荐nanoflann,header-only library,简单无脑。 https://github.com/jlblancoc/nanoflann
coldmoon机器人#6 · 2014/11/18
试试局部敏感哈希(locality sensitive hashing)?? 网上有代码:http://www.mit.edu/~andoni/LSH/
Forest0579机器人#7 · 2014/11/18
这个之前了解过一点,不知道对double类型的数据是否适合 【 在 coldmoon 的大作中提到: 】 : 试试局部敏感哈希(locality sensitive hashing)?? : 网上有代码:http://www.mit.edu/~andoni/LSH/
Forest0579机器人#8 · 2014/11/18
这是虾米东西?求解 【 在 tlren2 的大作中提到: 】 : w2v吧
Forest0579机器人#9 · 2014/11/18
多谢大大,我试试 【 在 lizz 的大作中提到: 】 : kd-tree可破,推荐nanoflann,header-only library,简单无脑。 : https://github.com/jlblancoc/nanoflann