Vector representation based on similarity

38 Views Asked by At

I have a set of points that I want to place in a N-dimensional space.

I only know the similarity between pairs of points, my final goal is to calculate a vector representation of each of those points, satisfying the similarity constraints.

Example:
$dist(A, B) = 0.8$
$dist(A, C) = 0.7$

$dist(B, C) = 0.4$

I need to get the coordinates of A, B, C in a N-dimensional space. What kind of tools should I look forward for solving that?

1

There are 1 best solutions below

0
On

Introduce the coordinate representation: $A = (a_1,...,a_N)$, $B=(b_1,...,b_N)$ and $C=(c_1,...,c_N)$. Then we can write down the three given equations as

$$\sum_{n=1}^N(a_n-b_n)^2=0.8^2,$$ $$\sum_{n=1}^N(a_n-c_n)^2=0.7^2,$$ $$\sum_{n=1}^N(b_n-c_n)^2=0.4^2.$$

It is clear that we only have $3$ equations but $3N$ unknows. Hence, you will need to introduce $3(N-1)$ additional constraints for $N\geq 2$. In order to reduce the complexity, you could shift all points by translation (does not change the distance) such that one of them coincides with the origin. For example, we could fix $A = (0,...,0)$ then we only are left with $2N$ unknows and you only need $2N-3$ additional constraints in order to determine the points. The additional constraints could be the distances to points with a known position. For each point, you would get $3$ additional constraints. So for the general case, you would need at least $N-1$ additional points in order to get a unique solution.