Details

Type: Improvement

Status: Closed

Priority: Minor

Resolution: Fixed

Affects Version/s: 0.5

Fix Version/s: 0.6

Component/s: Collaborative Filtering

Labels:
Description
In the nondistributed recommender world, the Euclidean distance similarity is calculated as n/(1+d), where d is distance and n is dimension. 1/(1+d) is a valid mapping from distance [0,infinity) to similarity (0,1]. n is there to "correct" for the fact that things are farther apart in higher dimensions. It would be righter, after some discussion, to use a factor of sqrt, and apply directly to the distance; 1/(1+d/sqrt).
I propose fixing the calculation accordingly.
In the distributed similarity, the formula is 11/(1+d), which is the wrong way around. That will be fixed. I'd apply the same heuristic, except that at the moment we don't have access to the value of n at that point. I don't like the inconsistency but it's minor; would rather get this change in now, which definitely improves things.
A instance of this class will probably be called with the same 'n' over and over, so it could cache sqrt.