annoy
annoy copied to clipboard
change metric in create_split
correct me if I'm wrong.
I think the create_split()
method is used to find two mean points p,q. and we will split the nodes later with method to compare the distance difference between p,node[i] and q,node[i] for each node in current hyperplane.
and we will use dot(n, node[i]) for quick calculation.
because n=p-q
, so
dot(n, node[i]) = dot(p, node[i]) - dot(q, node[i])
if we can keep p and q are normalized. dot(n, node[i]) may be better for representing the node i is near p or q in Angular metric.
interesting – let me take a look later this week
@erikbern any thoughts about this?
Hey I completely forgot about this one. Just rebased it. Let me see if it works and if it impacts performance.
sounds great! Pls remind me if any result you get.
@erikbern any problem about this pr?
sorry forgot about this one, will take a look