-
Notifications
You must be signed in to change notification settings - Fork 85
/
Changes
47 lines (45 loc) · 2.14 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2016-06-17:
Adding a parameter SearchParams::S which is the online
equivalence of IndexParams::S. At search time, all
neighbors or a neighbor are visited at the same time
in the original algorithm. With the new behavior,
neighbors are visited in batches of SearchParams::S.
Example:
k-NN working list: a b c d e [f] g
|
[l m n] o p q
we are at entry f, and visiting it's first batch of
neighbors l, m and n. Suppose m and n are actually
better than f and g, the working space will become
a b c d e [m] n
We'll then directly move on to check m's neighbors,
as apposed to finish checking f's neighbors o p and q.
Default is set to default_s = 10 which is the same for
IndexParams::S.
2016-06-16:
Enabling edge reversing for better search performance.
The original index is the exact k-NN graph, and has
difficulties to reach very high recall (>0.98) for some
difficult datasets. The problem is that the k-NN graph
is a directed graph and k is the out-digree. That means
the in-digree of a node might have very high variance.
If a node happen to have 0 in-dgree, then it's not
possible to reach this node in graph-based search process.
The idea of edge reversing is to add the reverse edges
to the original graph for the index. A new parameter
IndexParams::reverse is introduced and has the following
meaning:
0 : (default) do not add reverse edges.
-1 : add reverse edges automatically using M values.
k>0: trim the graph into a k-NN graph and add all
the reverse edges.
All source code using KGraph should be backward compatible,
with a default value of IndexParams::reverse set to 0.
For the purpose of index construction, it is recommend that
the value be set to -1.
2016-06-02:
Changin file format.
Original: MAGIC, VERSION_MAJOR (2), VERSION_MINOR (0)
Chaning to VERSION_MAJOR only, renamed as SIGNATURE_VERSION
Using VERSION_MINOR to denote file capabiliy (SIGNATURE_CAP), which defaults to 0
and is compatible to original scheme.