ZJULearning / SSG

code for satellite system graphs
BSD 3-Clause "New" or "Revised" License
106 stars 32 forks source link

请问在sift1M上跑出来的结果,SSG效果没有NSG好,为什么跟论文不一样呢,自己很疑惑, #10

Open ppniu1 opened 8 months ago

ppniu1 commented 8 months ago

我是在sift1M上测试的,看论文,两个方法应该效果差不多的,但是我自己没测出来:( 1)NSSG的构建时间是32.9728+35.99(s);最关注的搜索时间是search_L=100, k=10,时间是17.3324s,而NSG可以3.29968s跑出来,显然是NSG的QPS高了; 2)在我设置多个参数,绘制 QPS vs Recall@10 曲线时,SSG也确实没有outperformNSG; 请问您能给我一些可能的原因嘛~

ppniu1 commented 8 months ago

上面的数据取k=10,其余的参数参考您github上的参数设置的~ k=100也绘制了 QPS vs Recall@10 曲线,仍然是NSG更胜一筹

yangzq50 commented 7 months ago

我也有同样的问题,是否有合理的解释?

fc731097343 commented 7 months ago

可能有几个原因:

  1. 编译选项硬件加速是否都支持。
  2. 运行机器的差异?
  3. 在SSG的论文里显示SSG其实会比NSG更稠密一些,对于简单的数据集类似SIFT而言,SSG相对于NSG没有优势,在论文曲线中,两者几乎重合,我们的测试结果是两者差不多,但对于极端高精度的情况,SSG的运行时间减慢得更多,这个是图的稠密度不同带来的,因为,如果找到目标都只需要图上 的 两三跳的 拓扑距离,那么更稠密的图更吃亏。SSG的核心优势主要还是在本征维度更高的更难的数据上。
ZimingYuan commented 4 months ago

作者CMakeLists.txt写的有问题,导致O3和AVX都没用上,而这些优化NSG都有。 #11