Main Idea: RESCAL is a factorization of multi-relational data, or multigraphs, into unique entity and predicate representations
Level 1 | 0.982 |
Budget | 1.0 |
Creature | 1.0 |
Film | 1.0 |
Language | 0.963 |
Location | 0.953 |
Level 2 | 0.806 |
Character | 1.0 |
City | 0.992 |
Country | 0.632 |
Person | 0.991 |
Parody | 0.33 |
Zombie | 1.0 |
Level 3 | 0.946 |
Actor | 0.987 |
Capital | 0.992 |
Character Creator | 0.533 |
Director | 0.781 |
RESCAL-ALS is an alternating-least squares algorithm to compute the RESCAL factorization, i.e. it optimizes
Computational Complexity of RESCAL-ALS for sparse adjacency tensors
from rescal import rescal
# compute rank-20 factorization of tensor X
A, R = rescal(X, 20, init='nvecs')
General approach: similarity of entities $\approx$ similarity of their relational patterns
Outgoing links
\begin{align*} \vect(X_{i,:,:}) = & \color{deeppink}{\vec{a}_i} R_{(1)} (I \otimes A^T) \\ \vect(X_{j,:,:}) = & \color{cornflowerblue}{\vec{a}_j} R_{(1)} (I \otimes A^T) \end{align*}Incoming links
\begin{align*} \vect(X_{:,i,:}) = & \color{deeppink}{\vec{a}_i} R_{(2)} (I \otimes A^T) \\ \vect(X_{:,j,:}) = & \color{cornflowerblue}{\vec{a}_j} R_{(2)} (I \otimes A^T) \end{align*}Author | Citation | Venue | |
---|---|---|---|
NB | 0.986 | 0.913 | 0.738 |
MLN(B) | 0.987 | 0.915 | 0.736 |
MLN(BCTS) | 0.992 | 0.988 | 0.807 |
CP | 0.984 | 0.991 | 0.746 |
RESCAL | 0.997 | 0.991 | 0.810 |
By using properties of the Kronecker product and the vectorization operator we can show that updates for $R_k$ can be computed via
where $A = U \Sigma V^T$ and $P_{ij} = \frac{\Sigma_{ii} \Sigma_{jj}}{\Sigma_{ii}^2\Sigma_{jj}^2 + \lambda}$