Singular Value Decomposition (SVD)/Singul ¨arwertzerlegung
Katja Markert, einige Folien von Julian Hitschler
Institut f ¨ur Computerlinguistik Uni Heidelberg markert@cl.uni-heidelberg.de
June 11, 2019
Bisher und heute
1 Hintergrund zu den mathematischen Begriffen und Methoden, die f ¨ur Matrizenzerlegung notwendig ist
2 Jetzt: der SVD-Hauptsatz (mit Konstruktion, aber ohne Beweis)
3 Die Intuition dahinter
4 Reduced SVD
→
Dichte Embeddings5 Performanz von diesen dichten SVD-Embeddings in NLP
2
Ubersicht ¨
1 SVD Hauptsatz Der SVD-Satz
Konstruktion am Beispiel: Methodologie I Konstruktionsmethodologie II
2 Interpretation der SVD
3 Reduced SVD
4 Verwendung in NLP
Ubersicht ¨
1 SVD Hauptsatz Der SVD-Satz
Konstruktion am Beispiel: Methodologie I Konstruktionsmethodologie II
2 Interpretation der SVD
3 Reduced SVD
4 Verwendung in NLP
4
SVD
Eine reellwertigem
×
n- MatrixAl ¨asst sich wie folgt faktorisieren:A
=
UΣ
VTUist eine orthonormalem
×
m- MatrixΣ
ist eine “diagonale”m×
n- MatrixVT ist die Transponierte einer orthonormalenn
×
n- MatrixSingul ¨arwertzerlegung
A
=
a11 a12 ... a1n
a21 a22 ... a2n ... ... . . . ... am1 am2 ... amn
=
u11 u12 ... u1m u21 u22 ... u2m
.. .
..
. . .. ... um1 um2 ... umm
σ11 0 0 ... 0
0 σ22 0 ... 0
.. .
.. .
..
. . .. ...
0 0 0 ... σmn
v11 v12 ... v1n v21 v22 ... v2n v31 v32 ... v3n
.. .
..
. . .. ... vn1 vn2 ... vnn
T
Diagonale Eintr ¨age inΣwerden als Singul ¨arwerte vonAbezeichnet Spalten inUwerden als linke Singul ¨arvektoren vonAbezeichnet Spalten inVwerden als rechte Singul ¨arvektoren vonAbezeichnet
6
Konstruktionsmethodologie I
1 Berechne die quadratischem
×
mMatrixA·
AT2 Berechne die Eigenwerteσ2i und Eigenvektorenui vonA
·
AT3 Die Vektorenui werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonU
4 Berechne die quadratischen×nMatrixAT·A
5 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT·A.
Tip: die positiven Eigenwerte sind gleich zu denen vonA·AT
6 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
7 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age vonΣ
8 Eventuell Korrektur der Vorzeichen vonUbzw.V
Konstruktionsmethodologie I
1 Berechne die quadratischem
×
mMatrixA·
AT2 Berechne die Eigenwerteσ2i und Eigenvektorenui vonA
·
AT3 Die Vektorenui werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonU
4 Berechne die quadratischen
×
nMatrixAT·
A5 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT
·
A.Tip: die positiven Eigenwerte sind gleich zu denen vonA
·
AT6 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
7 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age vonΣ
8 Eventuell Korrektur der Vorzeichen vonUbzw.V
7
Konstruktionsmethodologie I
1 Berechne die quadratischem
×
mMatrixA·
AT2 Berechne die Eigenwerteσ2i und Eigenvektorenui vonA
·
AT3 Die Vektorenui werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonU
4 Berechne die quadratischen
×
nMatrixAT·
A5 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT
·
A.Tip: die positiven Eigenwerte sind gleich zu denen vonA
·
AT6 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
7 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age von
Σ
8 Eventuell Korrektur der Vorzeichen vonUbzw.V
Konstruktionsmethodologie I
1 Berechne die quadratischem
×
mMatrixA·
AT2 Berechne die Eigenwerteσ2i und Eigenvektorenui vonA
·
AT3 Die Vektorenui werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonU
4 Berechne die quadratischen
×
nMatrixAT·
A5 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT
·
A.Tip: die positiven Eigenwerte sind gleich zu denen vonA
·
AT6 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
7 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age von
Σ
8 Eventuell Korrektur der Vorzeichen vonUbzw.V
7
Beispiel (aus Kirk Bakers Tutorial)
Sei
A
=
3 1 1−
1 3 1Schritt 1: Berechne A · A
TA
·
AT=
3 1 1−
1 3 1
3−
11 3
1 1
=
11 1 1 119
Schritt II: Bestimme die Eigenwerte und Eigenvektoren von A · A
TSetze
11 1 1 11·
x1x2
=
σ x1x2
Damit ergibt sich das Gleichungssystem:
1 11x1+x2=σx1
2 x1+11x2=σx2
Schritt II: Bestimme die Eigenwerte und Eigenvektoren von A · A
TSetze
11 1 1 11·
x1x2
=
σ x1x2
Damit ergibt sich das Gleichungssystem:
1 11x1
+
x2=
σx12 x1
+
11x2=
σx210
Schritt II: Bestimme die Eigenwerte und Eigenvektoren von A · A
T1 11x1
+
x2=
σx12 x1
+
11x2=
σx2Ergibt z. B. nach Umformungen (hier Zeilenabzug) 10x1
−
10x2=
σx1−
σx2und damit Eigenwertσ1
=
10Ergibt z. B. nach Umformungen (hier Zeilenaddition) 12x1
+
12x2=
σx1+
σx2und damit Eigenwertσ2
=
12Schritt II: Bestimme die Eigenwerte und Eigenvektoren von A · A
T1 11x1
+
x2=
σx1 2 x1+
11x2=
σx2Zwei Eigenwerteσ1
=
10 undσ2=
12. Damit ergibt sich f ¨ur die Eigenvektoren:1 11x1
+
x2=
10x12 x1
+
11x2=
10x2und damit3 x1
= −
x24 Wir w ¨ahlenx1= 1 und damitx2
= −
1 sowie1 11x1
+
x2=
12x12 x1
+
11x2=
12x2und damit3 x1
=
x24 Wir w ¨ahlenx1= 1 und damitx2
=
112
Schritt III: Bestimme U
Starte mit einer MatrixU, die die bestimmten Eigenvektoren von
˜
A·
AT geordnet nach der Gr ¨oße der jeweiligen Eigenwerte enth ¨alt1 F ¨ur Eigenwertσ1
=
10 hatten wirx1= 1 und damitx2= −
1 gew ¨ahlt2 F ¨ur Eigenwertσ1
=
12 hatten wirx1= 1 und damitx2=
1 gew ¨ahlt3 Spaltenvektoren nach Eigenwertgr ¨oße geordnet
U
˜ =
1 1 1−
1Schritt III: Bestimme U
Orthonormalisiere mit Gram-Schmidt die Spaltenvektoren vonU
˜
U˜ =
1 1 1−
11 Normalisiere ersten Spaltenvektoru(1)
=
k˜˜uu(1)(1)k=
√1 2
√1 2
!
2 Berechne die Senkrechte
˜
u(2)− h
u(1),˜
u(2)i ·
u(1)3 Also
1−
1− h
√1 2
√1 2
!
, 1−
1i ·
√1 2
√1 2
!
=
1−
14 Normalisiere die Senkrechte
1−
1ergibtu(2)
=
√1
−12
√ 2
!
14
Schritt III: Bestimme U
Damit ist
U
=
√1 2
√1 1 2
√ 2
−1
√ 2
!
Schritt IV: Berechne A
T· A
AT
·
A=
3−
11 3
1 1
3 1 1−
1 3 1=
10 0 2
0 10 4
2 4 2
16
Schritt V: Bestimme die Eigenwerte und Eigenvektoren von A
T· A
Setze
10 0 2
0 10 4
2 4 2
·
x1 x2x3
=
σ
x1 x2x3
Damit ergibt sich das Gleichungssystem:
1 10x1+2x3=σx1 2 10x2+4x3=σx2
3 2x1+4x2+2x3=σx3
Schritt V: Bestimme die Eigenwerte und Eigenvektoren von A
T· A
Setze
10 0 2
0 10 4
2 4 2
·
x1 x2x3
=
σ
x1 x2x3
Damit ergibt sich das Gleichungssystem:
1 10x1
+
2x3=
σx1 2 10x2+
4x3=
σx23 2x1
+
4x2+
2x3=
σx317
Schritt V: Bestimme die Eigenwerte und Eigenvektoren von A
T· A
1 10x1
+
2x3=
σx1 2 10x2+
4x3=
σx2 3 2x1+
4x2+
2x3=
σx3Gleichung (ii) minus zweimal (i):
10x2
+
4x3−
20x1−
4x3=
σx2−
2σx2 und damitσ1=
10Mit ¨ahnlichen Umformungen kann manσ2
=
12 sowieσ3=
0 berechnen.Schritt V: Bestimme die Eigenwerte und Eigenvektoren von A
T· A
Drei Eigenwerteσ1
=
10,σ2=
12 undσ3=
0. Damit ergibt sich f ¨ur die Eigenvektoren:1 10x1
+
2x3=
10x12 10x2
+
4x3=
10x23 2x1
+
4x2+
2x3=
10x3und damit4 x3
=
0 aus der ersten Gleichung und damit5 2x1
+
4x2=
0 bzwx1= −
2x26 Wir k ¨onnen die L ¨ange des Eigenvektors wieder frei w ¨ahlen, da wir danach eh normalisieren. Allerdings sind die Vorzeichen nicht mehr frei w ¨ahlbar, da ja insgesamt beiU·Σ·VT wiederA herauskommen muss. Darauf macht das Tutorial nicht aufmerksam
Wir w ¨ahlenx1
=
2,x2= −
1, h ¨atten aber auch (f ¨alschlicherweise)x1= −
2,x2=
1 w ¨ahlen k ¨onnen.Ebenso bestimmen wir f ¨urσ2
=
12 einen Eigenvektor(
1,2,1)
und f ¨ur σ3=
0 einen Eigenvektor(
1,2,−5)
19
Schritt VI: Bestimme V
Starte mit einer MatrixV
˜
, die die bestimmten Eigenvektoren vonAT·
A nach der Gr ¨oße der jeweiligen Eigenwerte als Spaltenvektoren enth ¨alt1 F ¨ur Eigenwertσ1
=
10 hatten wir(
2,−1,0)
gew ¨ahlt2 F ¨ur Eigenwertσ2
=
12 hatten wir(
1,2,1)
bestimmt3 F ¨ur Eigenwertσ3
=
0 hatten wir(
1,2,−
5)
bestimmt4 Spaltenvektoren nach Eigenwertgr ¨oße geordnet
V
˜ =
1 2 1
2
−
1 21 0
−
5
Schritt VI: Bestimme V
Orthonormalisiere mit Gram-Schmidt die Spaltenvektoren vonV
˜
V
˜ =
1 2 1
2
−
1 21 0
−
5
1 Normalisiere ersten Spaltenvektorv(1)
=
k˜˜v(1)v(1)k
=
√1 6
√2 16
√ 6
2 Berechne die Senkrechte
˜
v(2)− h
v(1),˜
v(2)i ·
v(1)3 Also
2−
1 0
− h
√1 6
√2 16
√ 6
,
2−
1 0
i ·
√1 6
√2 16
√ 6
=
2−
1 0
4 Normalisiere die Senkrechte
2−
1 0
ergibtv(2)=
√2
−15
√ 5
0
21
Schritt VI: Bestimme V
V
˜ =
1 2 1
2
−
1 21 0
−
5
Schon bestimmt v(1)
=
√1 6
√2 16
√ 6
sowie v(2)
=
√2
−51
√ 5
0
Dann kann man auch nochv(3)berechnen mit der Senkrechten
˜
v(3)
− h
v(1),v˜
(3)i ·
v(1)− h
v(2),v˜
(3)i ·
v(2)Dies ergibt
−2
−34 3
Normalisiert:
v(3)=
√1 30
√2
−305
√
Schritt VI: Bestimme V
Damit
V
=
√1 6
√2 5
√1 30
√2 6
−1
√ 5
√2 1 30
√
6 0 √−5
30
und damit
VT
=
√1 6
√2 6
√1 2 6
√ 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
23
Schritt VII: Bestimme Σ
Σ
ist einem×
n(hier 2×
3) “Diagonalmatrix” mit den Wurzeln der Eigenwerte (vonA·
AT bzwUbzwV auf der Diagonale), nach Gr ¨oße geordnet:Σ = √
12 0 0
0
√
10 0
Alles Zusammen
A
=
UΣ
VT=
√1 2
√1 2
√1 2
−1
√ 2
! √
12 0 0
0
√
10 0
√1 6
√2 6
√1 6
√2 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
=
√
√12 2
√
√10
2 0
√
√12 2
−√
√10
2 0
!
√1 6
√2 6
√1 6
√2 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
=
3 1 1−
1 3 125
M ¨oglicher Schritt VIII: Vorzeichenverbesserung
Nehmen wir mal an, wir h ¨atten beiV die falschen Vorzeichen gew ¨ahlt.
Zum Beispiel wir h ¨atten f ¨urσ2
=
10 anstatt(
2,−1,0)
den Vektor(−
2,1,0)
gew ¨ahlt. Damit ergibt sichV
˜ =
1
−
2 12 1 2
1 0
−
5
und
V
=
√1 6
−2
√ 5
√1 2 30
√ 6
√1 5
√2 30
√1
6 0 √−5
30
und
1√ 6
√2 6
√1 6
M ¨oglicher Schritt VIII: Vorzeichenverbesserung
Leider ist nun
U
Σ
VT=
√1 2
√1 2
√1 2
−1
√ 2
! √
12 0 0
0
√
10 0
√1 6
√2 6
√1
−2 6
√ 5
√1
5 0
√1 30
√2 30
−5
√ 30
=
√
√12 2
√
√10
2 0
√
√12 2
−√
√10
2 0
!
√1 6
√2 6
√1
−2 6
√ 5
√1
5 0
√1 30
√2 30
−5
√ 30
=
−
1 3 13 1 1
27
M ¨oglicher Schritt VIII: Vorzeichenverbesserung
Die unelegante L ¨osung: Gehe durch alle Zeilen vonVT (Spalten von V), multizipliere sie systematisch mit
−
1, bis es passt. Durch die Multiplikation mit−
1, bleiben die Vektoren immer noch normal und auch die Orthogonalit ¨at ¨andert sich nicht.Da eventuell auch mehrere Zeilen mit
−
1 multipliziert werden m ¨ussen, ist dies leider exponentiell in der Zeilenanzahl vonVT (alle m ¨oglichen Kombinationen m ¨ussen probiert werden) Es ist nicht gerade elegant...Man kann nat ¨urlich stattdessen auch durch die Spalten vonU gehen und diese anpassen.
Konstruktionsmethodologie II
1 Berechne die quadratischen
×
nMatrixAT·
A2 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT
·
A.3 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
4 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age vonΣ
5 Die Spaltenvektoren vonUbis zum RangrderAT·AMatrix sind nun eindeutig bestimmt aus der VorgabeA=UΣVT und werden daraus berechnet.
6 Wennr <mm ¨ussen nochm−r Vektoren zur Orthonormalbasis erg ¨anzt werden.
29
Konstruktionsmethodologie II
1 Berechne die quadratischen
×
nMatrixAT·
A2 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT
·
A.3 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
4 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age von
Σ
5 Die Spaltenvektoren vonUbis zum RangrderAT·AMatrix sind nun eindeutig bestimmt aus der VorgabeA=UΣVT und werden daraus berechnet.
6 Wennr <mm ¨ussen nochm−r Vektoren zur Orthonormalbasis erg ¨anzt werden.
Konstruktionsmethodologie II
1 Berechne die quadratischen
×
nMatrixAT·
A2 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT
·
A.3 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
4 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age von
Σ
5 Die Spaltenvektoren vonUbis zum RangrderAT·AMatrix sind nun eindeutig bestimmt aus der VorgabeA=UΣVT und werden daraus berechnet.
6 Wennr <mm ¨ussen nochm−r Vektoren zur Orthonormalbasis erg ¨anzt werden.
29
Konstruktionsmethodologie II
1 Berechne die quadratischen
×
nMatrixAT·
A2 Berechne die Eigenwerteσ2j und Eigenvektorenvj vonAT
·
A.3 Die Vektorenvj werden orthonormalisiert (Gram-Schmidt) und bilden die Spaltenvektoren vonV
4 Die Wurzeln derσ2-Werte werden in absteigender Reihenfolge die Eintr ¨age von
Σ
5 Die Spaltenvektoren vonUbis zum RangrderAT·AMatrix sind nun eindeutig bestimmt aus der VorgabeA=UΣVT und werden daraus berechnet.
6 Wennr <mm ¨ussen nochm−r Vektoren zur Orthonormalbasis erg ¨anzt werden.
Schritt I: Bestimme V
Tund Σ wie bisher
Nach dem ¨ublichen Verfahren sei alsoVT zum Beispiel
√1 6
√2 6
√1
−2 6
√ 5
√1
5 0
√1 30
√2 30
−5
√ 30
bzwV
V
=
√1 6
−2
√ 5
√1 30
√2 6
√1 5
√2 1 30
√
6 0 √−5
30
Die Vorzeichen k ¨onnten auch anders sein.
Weiterhin ist
Σ = √
12 0 0
0
√
10 0
30
Schritt II: Bestimme U
Es muss gelten:
A
=
UΣ
VTund damit
AV
=
UΣ
VTVDaV orthogonal, istVTV die Einheitsmatrix und damit AV
=
UΣ
Schritt II: Bestimme U
Man bilde nun einen
×
mMatrixΣ
0, die genau auf denentsprechenden Diagonaleintr ¨agen 1/σi stehen hat. Im Beispiel ist
Σ
0=
√1
12 0
0 √1
10
0 0
Es gilt, dass
Σ · Σ
0diem×
mEinheitsmatrix ist.Und damit
AV
Σ
0=
UΣΣ
0=
U32
Schritt II: Bestimme U
Also gilt
U
=
AVΣ
0 .Damit gilt f ¨ur die Spalten vonU, wenn man sich die Matrixmultiplikation genauer anschaut:
u(j)
=
1 σjAv(j)
In unserem Beispiel:
u(1)
= √
1 12 3 1 1−
1 3 1
√1 6
√2 16
√ 6
=
√1 2
√1 2
!
Schritt II: Bestimme U
Und ebenso
u(2)
= √
1 10 3 1 1−
1 3 1
−2
√ 5
√1 5
0
=
−1
√ 2
√1 2
!
Man sieht, dass sich hier das ver ¨anderte Vorzeichen vonv(2)im entgegengesetzten Vorzeichen vonu(2)widerspiegelt. Wir mussten auch nicht zweimal Eigenvektoren berechnen, sondernUist aus den vorherigen Berechnungen bestimmt
34
Beispiel mit einer Matrix mit niedrigerem Rang
Da wir durch 1
σj dividieren mussten, geht dies nur f ¨ur Eigenwerte ungleich Null. Wenn aber die Matrizen niedrigere R ¨ange haben alsm, dann bekommen wir so nicht gen ¨ugendU-Vektoren. Was machen wir dann?
Beispiel. Sei eine Matrix von Rang 1 gegeben.
A
=
1 01 0
Berechnung von V
ATA
=
1 10 0
1 0 1 0
=
2 00 0
36
Berechnung von V
2 0 0 0hat die Eigenwerte 2 und 0 mit den jeweiligen Eigenvektoren
(
1,0)
sowie(
0,1)
.Daraus folgt
V
˜ =
1 00 1
Die ist schon eine Orthonormalmatrix also giltV
= ˜
V sowie, da DiagonalmatrixVT=
VBestimmung von Σ
Es gilt:
Σ = √
2 0
0 0
38
Bestimmung von U
Der erste Spaltenvektoru(1)kann wie ¨ublich bestimmt werden mit u(1)
= √
12Av(1)
= √
1 2 1 0 1 01 0
= √
1 2 1 1=
√1 12
√ 2
!
Bestimmung von U
Da wir keinen weiteren Eigenwert
6=
0 haben, k ¨onnen wir leider so nicht weitermachen, d.h. es geht nur bis zum Rang vonA. Es gilt aber√1 2 x2
√1 2 y2
! √
2 00 0
1 0 0 1
=
1 01 0
=
Aunabh ¨angig vonx2undy2. Das heisst unser halb vollst ¨andigesUist genug f ¨ur eine Zerlegung.
40
Bestimmung von U
1 Wir k ¨onnen also jedesx2undy2w ¨ahlen, solange normiert und senkrecht auf dem ersten Vektor stehend.
2 Nach dem sogenanntenBasiserg ¨anzungssatzgeht dies immer!
3 In unserem Beispiel k ¨onnte man zum Beispiel
(
√−12,√1
2
)
w ¨ahlen.4 Wie genau man diese weiteren Vektoren vonUkonstruiert, ist f ¨ur uns unerheblich, da wir ja sowieso die letzten Spalten vonU, die zu den niedrigeren Eigenwerten geh ¨oren, “abschneiden”
werden...
SVD Zwischenfazit
Wir haben eine Matrix in das Produkt einer Orthonormalmatrix, Diagonalmatrix und Orthogonalmatrix zerlegt
Die Diagonalmatrix enth ¨alt die Wurzeln von den Eigenwerten von A
·
AT nach Gr ¨oße geordnetDie erste Orthonormalmatrix enth ¨alt die orthonormalisierten Eigenvektoren vonA
·
AT, nach Eigenwertgr ¨osse geordnet, als SpaltenDie zweite Orthonormalmatrix ist die Transponierte der Matrix, die die orthonormalisierten Eigenvektoren vonAT
·
A, nach Eigenwertgr ¨osse geordnet, als Spalten enth ¨alt.42
Ubersicht ¨
1 SVD Hauptsatz Der SVD-Satz
Konstruktion am Beispiel: Methodologie I Konstruktionsmethodologie II
2 Interpretation der SVD
3 Reduced SVD
4 Verwendung in NLP
Geometrische Interpretation bei quadratischen Matrizen
Bedeutung der SVD ist, dass sich die Funktion in eine Drehung/Drehspiegelung (VT), eine Verzerrung (Σ), und eine zweite Drehung/Drehspiegelung (U) zerlegen l¨sst.
Matrix 1 1
0 1
SVD: Geometrische Interpretationa
aQuelle:https://commons.wikimedia.org/wiki/File:Singular- Value- Decomposition.svg
44
Noch einige Bemerkungen
Die Eigenwerte und damit
Σ
sind eindeutig bestimmt.UundV sind nicht eindeutig bestimmt. Es k ¨onnen Drehungen um 180 Grad oder Spiegelungen hinzukommen.
Wir k ¨onnen in vielen F ¨allen einen Eigenvektor w ¨ahlen (Freiheitsgrade), m ¨ussen aber dann bei den Vorzeichen der zweiten Matrix aufpassen.
Noch einige Bemerkungen
Wir haben implizit den Rang der UrsprungsmatrixAbestimmt.
Dies kann man klar anU
· Σ
sehen.A
=
UΣ
VT=
√1 2
√1 1 2
√ 2
−1
√ 2
! √
12 0 0
0
√
10 0
√1 6
√2 6
√1 6
√2 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
=
√
√12 2
√
√10
2 0
√
√12 2
−√
√10
2 0
!
√1 6
√2 6
√1 6
√2 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
=
3 1 1−
1 3 146
Noch einige Bemerkungen
Deswegen wird manchmal die Singul ¨arwertzerlegung auch als Zerlegung in drei MatrizenAm×n
=
Um×rΣ
r×rVrT×n, wobeirder Rang der MatrixA, ist beschrieben.A
=
UΣ
VT=
√1 2
√1 1 2
√ 2
−1
√ 2
! √
12 0 0
0
√
10 0
√1 6
√2 6
√1 6
√2 5
−1
√5 0
√1 30
√2 30
−5
√ 30
=
√1 2
√1 1 2
√ 2
−1
√ 2
! √
12 0
0
√
10 √1 6√2 6
√1 2 6
√ 5
−1
√
5 0
!
=
√
√12 2
√
√10
√ 2
√12 2
−√
√10 2
!
1√ 6
√2 6
√1 6
√2 5
−1
√
5 0
!
=
3 1 1Noch einige Bemerkungen
Bisher haben wir immer die Ausgangsmatrix einfach reproduziert (mit dem gleichen Rang). Man sieht den Rang besser und es gilt:
Die “Zerrung” durch die Matrix
Σ
ist bei den Dimensionen mit den h ¨ochsten Eigenwerten am gr ¨oßten. Beispiel:√
12 0 0
0
√
10 0
x1x2
x3
=
√
12·
x1√
10·
x2Es macht also Sinn, dass wir, wenn wir eineApproximation unserer Ausgangsmatrix mit niedrigerem Rang wollen, dann die unwichtigen Dimensionen, die durch niedrige Eigenwerte gekennzeichnet sind weglassen.
48
Ubersicht ¨
1 SVD Hauptsatz Der SVD-Satz
Konstruktion am Beispiel: Methodologie I Konstruktionsmethodologie II
2 Interpretation der SVD
3 Reduced SVD
4 Verwendung in NLP
Reduced SVD: Approximation niedrigeren Ranges
Approximation vonm
×
nMatrixAmit Rangr durchm×
n- Matrix˜
Ak mit Rangk<r:A
=
UΣ
VT≈
A˜
k=
UΣ ˜
kVTΣ ˜
k ist eine “diagonale”m×
n- Matrix, bei der nur auf den ersten k Stellen der Diagonalmatrix Werte6=
0 stehenUundV wie zuvor
50
Beispiel
A
=
UΣ
VT=
√1 2
√1 1 2
√ 2
−1
√ 2
! √
12 0 0
0 √
10 0
√1 6
√2 6
√1 2 6
√ 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
≈√1 2
√1 2
√1 2
−1
√ 2
! √
12 0 0
0 0 0
√1 6
√2 6
√1 2 6
√ 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
=
√
√12
2 0 0
√
√12
2 0 0
!
√1 6
√2 6
√1 2 6
√ 5
−1
√
5 0
√1 30
√2 30
−5
√ 30
=
1 2 1Reduced SVD
Wir h ¨atten auch nur die erstenk Spalten vonUsowie die erstenk Zeilen vonVT behalten k ¨onnen:
A≈
√1 2
√1 2
! √
12√1 6
√2 6
√1 6
=
√
√12
√2
√12 2
!
√16
√2 6
√1 6
=
1 2 1 1 2 152
Als Bild
Als Algorithmus
Gegebenm
×
nMatrix A und gew ¨unschter Rankk. Wir produzieren eineRang−
k Approximation wie folgt:1 Wir berechnen eine SVD Zerlegung vonA:
Am×n
=
Um×mΣ
m×nVnT×n2 Wir behalten nur die erstenk Spalten vonU, resultierend inUm×k 3 Wir behalten nur die Topk, sprich die erstenk Diagonalwerte von
Σ
, resultierend inΣ
k×k4 Wir behalten nur die erstenkReihen vonVT, resultierend inVkT×n
54
Reduced SVD
Diagonale Eintr ¨age in
Σ ˜
k sind diek gr ¨oßten Eigenwerte von A·
ATSatz:U
Σ ˜
kVT minimiert die Differenz der Frobenius-Norm zwischenAundA˜
k unter der Bedingungrang(˜
Ak) =
kDas heisst: F ¨ur jedem
×
nMatrixAmit Rangr, angestrebtem Rangk<r, und jedem×
nMatrixBmit Rangk giltk
A−
A˜
kk
2≤ k
A−
Bk
2wobei
˜
Ak die Rang-k Approximation ist, die man aus der SVD von Aableiten kann.Was hat man erreicht?
Unkorrelierte Dimensionen (Orthonormalbasis), die nur noch verzerrt werden
Wir haben die Dimensionen mit der meisten Variation identifiziert und danach geordnet
“Unwichtige” Dimensionen werden weggelassen
→
Rauschen vermindertMan braucht viel weniger Speicherplatz:O
(
k(
n+
m))
anstatt O(
nm)
Die neuen “versteckten” Dimensionen k ¨onnen zur
Ahnlichkeitsberechnung verwendet werden und funktionieren oft¨ besser
56
Wie w ¨ahlt man k?
Meist empirisch. Gesehen:
1 In NLP, oft die ersten 200 bis 300 Dimensionen
2 In Recommender Systems: W ¨ahlek so, dass die Summe der erstenk Eigenwerte mindestens 10-mal der Summe aller anderen Eigenwerte
Ubersicht ¨
1 SVD Hauptsatz Der SVD-Satz
Konstruktion am Beispiel: Methodologie I Konstruktionsmethodologie II
2 Interpretation der SVD
3 Reduced SVD
4 Verwendung in NLP
58
Dichte Embeddings
Aist Matrix vonmW ¨ortern/Termen undnKontexten (PPMI, frequency, . . . )
Reduced SVD resultiert inA˜k mit
Um×kistm×k- Matrix
Zeilen vonUm×k repr ¨asentieren Terme
Spalten inUm×k: latente Repr ¨asentation der Kontexte BenutzeUm×k·Σk×kzur Berechnung von Term ¨ahnlichkeiten Vorteile gegen ¨uber der vollen Term-Kontext-Matrix
Dichte Matrix
Dimensionsreduktion: effizientere Verarbeitung De-Noising
Dichte Embeddings
Aist Matrix vonmW ¨ortern/Termen undnKontexten (PPMI, frequency, . . . )
Reduced SVD resultiert inA
˜
k mitUm×kistm×k- Matrix
Zeilen vonUm×k repr ¨asentieren Terme
Spalten inUm×k: latente Repr ¨asentation der Kontexte BenutzeUm×k·Σk×kzur Berechnung von Term ¨ahnlichkeiten Vorteile gegen ¨uber der vollen Term-Kontext-Matrix
Dichte Matrix
Dimensionsreduktion: effizientere Verarbeitung De-Noising
59
Dichte Embeddings
Aist Matrix vonmW ¨ortern/Termen undnKontexten (PPMI, frequency, . . . )
Reduced SVD resultiert inA
˜
k mitUm×kistm×k- Matrix
Zeilen vonUm×k repr ¨asentieren Terme
Spalten inUm×k: latente Repr ¨asentation der Kontexte BenutzeUm×k·Σk×kzur Berechnung von Term ¨ahnlichkeiten Vorteile gegen ¨uber der vollen Term-Kontext-Matrix
Dichte Matrix
Dimensionsreduktion: effizientere Verarbeitung De-Noising
Das Beispiel vom Anfang
Eine Wort-Dokument-MatrixMaus demR5×3
d1 d2 d3 ship 1 1 0 boat 0 0 1 ocean 1 0 1 motor 1 0 1 wood 0 1 0 cossim
(
ship,boat) =
0cossim
(
ship,ocean) =
1 2 cossim(
boat,ocean) = √
12
=
0.760
SVD Zerlegung war:
−
0.41 0.7 0.24−
0.29−
0.33−
0.72−
0.61−
0.2 0.14−
0.61−
0.2 0.14−
0.1 0.57−
0.62
2.27 0 0 0 1.49 0 0 0 0.78
−
0.72−
0.23−
0.66 0.19 0.85−
0.5 0.67−
0.48−
0.56
=
−
0.93 1.04 0.187−
0.658−
0.49−
0.56−
1.38−
0.298 0.1092−
1.38−
0.298−.
1092−
0.227 0.84−
0.483
−
0.72−
0.23−
0.66 0.19 0.85−
0.5 0.67−
0.48−
0.56
=
1 1 0 0 0 1 1 0 1 1 0 1
Niedrigdimensionale Approximation
Die kleinsten Eigenwerte sind die unwichtigsten. Wir k ¨onnen diese
“weglassen” = auf Null setzen
→
eine Matrix mit kleinerem Rang, die aber relativ ¨ahnlich zur Ausgangsmatrix ist.
−0.41 0.7 0.24
−0.29 −0.33 −0.72
−0.61 −0.2 0.14
−0.61 −0.2 0.14
−0.1 0.57 −0.62
2.27 0 0 0 1.49 0
0 0 0
−0.72 −0.23 −0.66 0.19 0.85 −0.5 0.67 −0.48 −0.56
=
−0.93 1.04 0
−0.658 −0.49 0
−1.38 −0.298 0
−1.38 −0.298 0
−0.227 0.84 0
−0.72 −0.23 −0.66 0.19 0.85 −0.5 0.67 −0.48 −0.56
=
0.87 1.09 0.11 0.38 −0.27 0.68 0.93 0.05 1.06 0.93 0.05 1.06 0.32 0.77 −0.27
62