Angle between points in hyperbolic space

456 Views Asked by At

I'm following the work from the paper, Poincaré Embeddings for Learning Hierarchical Representations which uses the Poincaré ball model of hyperbolic space. In equation [1] they give the distance between any two points as

$$ d(\textbf{u},\textbf{v}) = \text{arcosh} \left ( 1 + 2\frac{||\textbf{u}-\textbf{v}||^2}{(1-||\textbf{u}||^2)(1-||\textbf{v}||^2)} \right ) $$

here $||\cdot||$ is the Euclidean norm and the vectors are constrained to an open unit ball in $d$ dimensions, $\textbf{u}, \textbf{v} \in \{ \textbf{x} \in \mathcal{R}^d ; ||\textbf{x}||^2 < 1 \}$. So far, so good.

I'd like to consider the notion of an "angle" between two points $\textbf{a}, \textbf{b}$ in this space. By fixing the center $\textbf{c}$ as a special point, one could use the standard angle in Euclidean space defined by the line segments $\textbf{a} \rightarrow \textbf{c} \rightarrow \textbf{b}$, but this doesn't seem natural since the entire nature of the metric is different. Is there some notion of an angle that makes more sense?

1

There are 1 best solutions below

1
On BEST ANSWER

I think you want the hyperbolic Law of Cosines. It reads this way: $$ \cosh(\overline{\mathbf a\mathbf b})= \cosh(\overline{\mathbf a\mathbf c}) \cosh(\overline{\mathbf c\mathbf b})- \sinh(\overline{\mathbf a\mathbf c}) \sinh(\overline{\mathbf c\mathbf b})\cos(\angle\mathbf a\mathbf c\mathbf b)\,, $$ and of course you want to solve for the cosine of the angle at the vertex of the triangle.