I know this should be stunningly obvious, but I
lack the background and insight you do.
I
know that we are following the rank-r factorization:
Xk = A*R*A.T
I ran a version of RESCAL called Ext-RESCAL, and chose the tiny-example dataset. It is the graph on the left under “Let's imagine we have the following semantic graph:” at the url: https://github.com/nzhiltsov/Ext-RESCAL . I guessed that it would give the probability of links.
Xk = A*R*A.T
I ran a version of RESCAL called Ext-RESCAL, and chose the tiny-example dataset. It is the graph on the left under “Let's imagine we have the following semantic graph:” at the url: https://github.com/nzhiltsov/Ext-RESCAL . I guessed that it would give the probability of links.
----------------
For the slice for relation 1, member-of:
For the slice for relation 1, member-of:
X1
= ([[0,0,0,0],[1,0,0,0],[1,0,0,0],[0,0,0,0]])
Link-Representation
= ([[AA,AB,AC,AD],[BA,BB,BC,BD],[CA,CB,CC,CD],[DA,DB,DC,DD]])
A*R1*A.T
=
([[
4.30000000e-06, -3.81164826e-21, -3.81164826e-21, -1.48892510e-23],
[ 9.99989146e-01, -8.88178420e-16, -8.88178420e-16, -3.46944695e-18],
[ 9.99989146e-01, -8.88178420e-16, -8.88178420e-16, -3.46944695e-18],
[ 3.90620760e-03, -3.46944695e-18, -3.46944695e-18,-1.35525272e-20]])
[ 9.99989146e-01, -8.88178420e-16, -8.88178420e-16, -3.46944695e-18],
[ 9.99989146e-01, -8.88178420e-16, -8.88178420e-16, -3.46944695e-18],
[ 3.90620760e-03, -3.46944695e-18, -3.46944695e-18,-1.35525272e-20]])
Most
probable links:
AA
= 4.30000000e-06 ( dbr:Tristania member-of dbr:Tristania )
BA = 9.99989146e-01 ( dbr:Vibecke member-of dbr:Tristania )
CA = 9.99989146e-01 ( dbr:Morten member-of dbr:Tristania )
DA = 3.90620760e-03 ( dbr:Metal member-of dbr:Tristania )
BA = 9.99989146e-01 ( dbr:Vibecke member-of dbr:Tristania )
CA = 9.99989146e-01 ( dbr:Morten member-of dbr:Tristania )
DA = 3.90620760e-03 ( dbr:Metal member-of dbr:Tristania )
For
the slice for relation 2, genre:
X2 = ([[0,0,0,1],[0,0,0,0],[0,0,0,0],[0,0,0,0]])
Link-Representation
= ([[AA,AB,AC,AD],[BA,BB,BC,BD],[CA,CB,CC,CD],[DA,DB,DC,DD]])
A*R2*A.T
=
([[
-2.16840434e-19, 1.95311646e-03, 1.95311646e-03, 7.62936119e-06],
[ 1.92592994e-34, -1.72202920e-18, -1.72202920e-18, -6.72667656e-21],
[ 1.92592994e-34 -1.72202920e-18, -1.72202920e-18, -6.72667656e-21],
[ 7.52316385e-37, -6.72667656e-21, -6.72667656e-21, -2.62760803e-23]])
[ 1.92592994e-34, -1.72202920e-18, -1.72202920e-18, -6.72667656e-21],
[ 1.92592994e-34 -1.72202920e-18, -1.72202920e-18, -6.72667656e-21],
[ 7.52316385e-37, -6.72667656e-21, -6.72667656e-21, -2.62760803e-23]])
Most probable links:
AB
= 1.95311646e-03 ( dbr:Tristania genre dbr:Vibecke )
AC = 1.95311646e-03 ( dbr:Tristania genre dbr:Morten )
AD = 7.62936119e-06 ( dbr:Tristania genre dbr:Metal )
Thanks for your time. Best regards, Brent .
AC = 1.95311646e-03 ( dbr:Tristania genre dbr:Morten )
AD = 7.62936119e-06 ( dbr:Tristania genre dbr:Metal )
Thanks for your time. Best regards, Brent .
–---------------------------------------------------------------------------
Prediction of Unknown Triples (Section 3.3: Factorizing YAGO)::
or Canonical Relational Learning (section 4.4: A Three-Way Model for Collective Learning on Multi-Relational Data)
Prediction of Unknown Triples (Section 3.3: Factorizing YAGO)::
or Canonical Relational Learning (section 4.4: A Three-Way Model for Collective Learning on Multi-Relational Data)
A*Rk*aj
Entity A, [AA,AB,AC,AD] :
s1 = np.matmul(A,R1)
np.matmul(s1,A[0,:])
Entity A, [AA,AB,AC,AD] :
s1 = np.matmul(A,R1)
np.matmul(s1,A[0,:])
array([
4.30000000e-06, 9.99989146e-01, 9.99989146e-01,
3.90620760e-03]
Entity
B, [BA,BB,BC,BD]:
np.matmul(s1,A[1,:])
np.matmul(s1,A[1,:])
array([
-3.81164826e-21, -8.88178420e-16, -8.88178420e-16,
-3.46944695e-18])
Entity
C, [CA,CB,CC,CD]:
np.matmul(s1,A[2,:])
np.matmul(s1,A[2,:])
array([
-3.81164826e-21, -8.88178420e-16, -8.88178420e-16,
-3.46944695e-18])
Entity
D, [DA,DB,DC,DD]:
np.matmul(s1,A[3,:])
array([
-1.48892510e-23, -3.46944695e-18, -3.46944695e-18,
-1.35525272e-20])
Create
Ranking:::
AB
=> 9.99989146e-01 ( dbr:Tristania member-of dbr:Vibecke)
AC => 9.99989146e-01 ( dbr:Tristania member-of dbr:Vibecke )
AD => 3.90620760e-03 (dbr:Tristania member-of dbr:Metal)
AA => 4.30000000e-06 ( dbr:Tristania member-of dbr:Tristania )
==================================================================
AC => 9.99989146e-01 ( dbr:Tristania member-of dbr:Vibecke )
AD => 3.90620760e-03 (dbr:Tristania member-of dbr:Metal)
AA => 4.30000000e-06 ( dbr:Tristania member-of dbr:Tristania )
==================================================================
Entity
A, [AA,AB,AC,AD] :
s2 = np.matmul(A,R2)
np.matmul(s2,A[0,:])
s2 = np.matmul(A,R2)
np.matmul(s2,A[0,:])
array([
-2.16840434e-19, 1.92592994e-34, 1.92592994e-34,
7.52316385e-37])
Entity
B, [BA,BB,BC,BD]:
np.matmul(s2,A[1,:])
array([
1.95311646e-03, -1.72202920e-18, -1.72202920e-18,
-6.72667656e-21])
Entity
C, [CA,CB,CC,CD]:
np.matmul(s2,A[2,:])
array([
1.95311646e-03, -1.72202920e-18, -1.72202920e-18,
-6.72667656e-21])
Entity D, [DA,DB,DC,DD]:
np.matmul(s2,A[3,:])
Entity D, [DA,DB,DC,DD]:
np.matmul(s2,A[3,:])
array([
7.62936119e-06, -6.72667656e-21, -6.72667656e-21,
-2.62760803e-23])
Create Ranking:::
Create Ranking:::
BA => 1.95311646e-03 (dbr:Vibecke genre dbr:Tristania)
CA => 1.95311646e-03 ( dbr:Morten genre dbr:Tristania)
DA => 7.62936119e-06 ( dbr:Metal genre dbr:Tristania)
================================================
Retrieval of similar entities
(Section 3.3.2: Factorizing YAGO)::
or Link-based clustering (section 4.4: A Three-Way Model for Collective Learning on Multi-Relational Data)
A
or Link-based clustering (section 4.4: A Three-Way Model for Collective Learning on Multi-Relational Data)
A
array([[-0.70710678,
0.70710678],
[ 0.52943053,
0.52943053],
[ 0.52943053,
0.52943053],
[ 0.00206809,
0.00206809]])
Corresponds to Entities A. B. C, D in row order
Hypothesis: B and C are alike…
B and C are closer to D than they are to A
=====================================
Corresponds to Entities A. B. C, D in row order
Hypothesis: B and C are alike…
B and C are closer to D than they are to A
=====================================
Collective
Classification::
Add an additional slice mapping all entities to classes with the classOf relationship:
Add an additional slice mapping all entities to classes with the classOf relationship:
which gives us an entity-term
matrix to add as a slice??
But possibly this is not the
case, since R only has three slices???
member-of
genre
cites
Aha,
do it seperately. “The basic idea is to process attribute values
just as described above, but to add the <predicate, value>
pairs to a separate entity-attributes matrix D and not to tensor X”
(Factorizing YAGO)
D = AV
D =
D = AV
D =
[[ 1. 0. 0. 0.]
[ 0. 1. 0. 0.]
[ 0. 1. 0. 0.]
[ 0. 0. 1. 0.]
[ 0. 0. 0. 1.]
[ 0. 0. 0. 1.]]
A =
[[ 5.28740028e-01 -2.64828807e-17]
A =
[[ 5.28740028e-01 -2.64828807e-17]
[ 6.47298575e-01
-1.88352457e-17]
[ 6.47298575e-01
-1.88352457e-17]
[ 2.52851006e-03
-8.39977963e-20]
[ 9.72366338e-17
7.11843766e-01]
[ 9.72371832e-17
7.11843766e-01]]
V =
V =
[[ 4.73082585e-01
1.15769705e+00 4.52225411e-03 4.82270178e-17]
[ -6.97733700e-17
-1.45176144e-16 -5.86014702e-19 1.40457240e+00]]
import numpy as np
>>> A = np.array([[
5.28740028e-01, -2.64828807e-17],
... [ 6.47298575e-01,
-1.88352457e-17],
... [ 6.47298575e-01,
-1.88352457e-17],
... [ 2.52851006e-03,
-8.39977963e-20],
... [ 9.72366338e-17,
7.11843766e-01],
... [ 9.72371832e-17,
7.11843766e-01]])
V = np.array([[
4.73082585e-01, 1.15769705e+00, 4.52225411e-03, 4.82270178e-17],
[ -6.97733700e-17,
-1.45176144e-16, -5.86014702e-19, 1.40457240e+00]])
D = np.matmul(A,V)
D
array([[ 2.50137699e-01,
6.12120771e-01, 2.39109676e-03,
-1.16975686e-17],
[ 3.06225683e-01,
7.49375651e-01, 2.92724864e-03,
4.76181364e-18],
[ 3.06225683e-01,
7.49375651e-01, 2.92724864e-03,
4.76181364e-18],
[ 1.19619408e-03,
2.92724864e-03, 1.14345650e-05,
3.96151333e-21],
[ -3.66678039e-18,
9.22783102e-18, 2.25778544e-20,
9.99836107e-01],
[ -3.66652048e-18,
9.22846706e-18, 2.25803390e-20,
9.99836107e-01]])
[[ 2.50137699e-01,
6.12120771e-01, 2.39109676e-03, -1.16975686e-17],
[ 3.06225683e-01,
7.49375651e-01, 2.92724864e-03, 4.76181364e-18],
[ 3.06225683e-01,
7.49375651e-01, 2.92724864e-03, 4.76181364e-18],
[ 1.19619408e-03,
2.92724864e-03, 1.14345650e-05, 3.96151333e-21],
[ -3.66678039e-18,
9.22783102e-18, 2.25778544e-20, 9.99836107e-01],
[ -3.66652048e-18,
9.22846706e-18, 2.25803390e-20,
9.99836107e-01]])
=
[[ 1. 0. 0. 0.]
[ 0. 1. 0. 0.]
[ 0. 1. 0. 0.]
[ 0. 0. 1. 0.]
[ 0. 0. 0. 1.]
[ 0. 0. 0. 1.]]
with
Predicted Triples are in Bold (but some of these look incorrect):
dbr:Tristania, band : 2.50137699e-01
dbr:Vibeke, band :
3.06225683e-01
dbr:Morten, band :
3.06225683e-01
dbr:Metal, band
: 1.19619408e-03
dbr:Vibeke, member : 7.49375651e-01
dbr:Morten, member : 7.49375651e-01
dbr:Vibeke, member : 7.49375651e-01
dbr:Morten, member : 7.49375651e-01
dbr:Tristania, member
: 6.12120771e-01
dbr:Metal, member
: 2.92724864e-03
dbr:Metal, genre : 1.14345650e-05
dbr:Metal, genre : 1.14345650e-05
dbr:Tristania, genre
: 2.39109676e-03
dbr:Vibeke, genre : 2.92724864e-03
dbr:Morten, genre : 2.92724864e-03
author1, tensor : 9.99836107e-01
dbr:Vibeke, genre : 2.92724864e-03
dbr:Morten, genre : 2.92724864e-03
author1, tensor : 9.99836107e-01
author2, tensor :
9.99836107e-01
No comments:
Post a Comment