1. vektorraummodell und latent semantic indexing 2 ... · das j-te dokument ist also...

47
Inhaltangabe 1. Vektorraummodell und Latent Semantic Indexing 2. PageRank und stochastische Matrizen Voraussetzungen: -Vektoren, Winkel zwischen Vektoren, Orthonormieren -Graphen, Matrizen, Matrix-Vektorprodukt

Upload: vanhanh

Post on 03-Jun-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

Inhaltangabe

1. Vektorraummodell und Latent Semantic Indexing

2. PageRank und stochastische Matrizen

Voraussetzungen:

-Vektoren, Winkel zwischen Vektoren, Orthonormieren

-Graphen, Matrizen, Matrix-Vektorprodukt

1. IR VektrorraummodellSuche in Texten wie

Bücher, Webseiten, Anleitungen,…nach bestimmten Inhalten

aus Menge von Schlüsselworten.

Verwende dazu z.B. alphabetisch geordnete Liste derSchlüsselworteS1=Aachen, S2=Abel, S3=Affe, S4=Auto, … ,Sn-1=Zaun, Sn=Zugund durchnummerierte Liste der DokumenteD1 , D2 , D3 , ….. , Dm.

Gegebenes Textdokument enthält bestimmte Schlüsselworteaus der Liste und kann daher durch eine Teilmenge derListe dargestellt werden.

Auflistung alles Schlüsselworte für alle Dokumente Tabelle

Term-Dokument-Matrix D

D1 D2 D3 D4 D5 ….. Dm

S1 0 0 1 0 0 ….. …..S2 0 0 0 0 0 ….. …..S3 0 0 0 2 0 ….. …..S4 0 3 0 0 0 ….. …..S5 0 0 4 0 1 ….. …..…. . . . . .…. . . . . . .Sn . . . . . .

DokumenteS

chlü

ssel

wör

ter

DokumentvektorDas j-te Dokument ist also charakterisiert durch einen Spalten-Vektor dj , der die für das Dokument relevanten Terme auflistet.

Das k-te Schlüsselwort ist verbunden mit einem Zeilen-Vektor sk, der die Dokumente kennzeichnet, in denendas Schlüsselwort auftaucht.

Die Zahl Dkj in der Term-Dokument-Matrix gibt an, wiewichtig der Term Sk im Dokument Dj ist (z.B. wie oft er auftaucht)

Suchanfrage

Eine Suchanfrage ist eine Ansammlung von Termen,kann also genauso durch einen Dokumentvektor ddargestellt werden.

Ein Dokument aus der Liste von j=1,2,…,Dm passt ambesten zu der Suchanfrage, wenn die Schlüsselworte aus der Anfrage auch im Dokumentvektor dj stehen.

In Vektorsprache heißt das: d und dj sollen möglichst parallel sein, alsoeinen kleinen Winkel bilden:

d djφ

j

jT

j dddd

⋅=)cos(ϕ

Zu Anfrage d bestimme Dokument dj mit kleinstem Winkel!

Beispiel

D1 D2 D3 D4 D5 ….. …..Auto 0 0 1 0 1 ….. …..…. 0 0 0 0 0 ….. …..Kfz 0 0 1 2 1 ….. …..S4 0 3 0 0 0 ….. …..Kraftfahr-zeug 0 0 1 0 1 ….. …..…. 0 0 0 0 0 ….. …..…. . . . . . .…. . . . . . .

Suchanfrage: Kfz

D001000..

Term-Dokument-Matrix B:

Lösungencos(φ3) = 1 / √3 = 0.577.

cos(φ4) = 2 / 2 = 2 = 1 Optimallösung

cos(φ5) = 1 / √3 = 0.577.

Man würde aber eigentlich eher erwarten, dass D3 und D5die Suchanfrage besser beantworten.

Problem: Mehrdeutigkeit, SynonymeAuto, Automobil, Kfz, Kraftfahrzeug, Fahrzeug, …Hahn, Java, Figur, …

KorrelationenAuto, Lenkrad, Werkstätte,…

Problem: Ähnliche, oder sogar kopierte Dokumente

Lösung: Latent Semantic Indexing

Beseitige Abhängigkeiten und Mehrdeutigkeiten!Verringere die Dimension des Term-Raumes durch Berücksichtigen von Mehrdeutigkeiten und Korrelationen

In der Sprache von Vektoren:Beseitige lineare Abhängigkeiten in der Term-Dokument-Matrix B, bzw. zwischen Vektoren

Orthogonalisiere Vektoren, bzw. Zeilen/Spalten von D.

Exkurs: Orthogonalisierungsverfahren

Bei zwei Vektoren: Ersetze zweiten Vektor durch seine Komponente orthogonal zum ersten.

z yx

Ersetze das Paar (x,y) durch das Paar (x,z),wobei x und z noch auf Länge 1 normiert werden,und damit orthonormal sind

zzzxxyyz

xxxT

/:)(:

/:

=

⋅−=

=

( ) 0)( =⋅−⋅= xxxyyxconstzx TTTT , x ┴ z

Mehr Vektoren:

Gegeben: Vektoren xi, i=1,2,…,nErsetze xi durch zi von Länge 1 und paarweise orthogonal:

nijfürzzundz jTii ,...,101 =≠==

Algorithmus:

end

zzz

end

zzzzznjkfor

xznjfor

xxz

jjj

jjTkjj

jj

;/:

;)(::1

;::2;/: 111

=

⋅−=

+=

==

=

Gram-SchmidtDas definierte Verfahren kann natürlich auch auf die Vektorenangewendet werden, die Spalten (Zeilen) der Matrix B sind.

( ) ( ) ( );000

;

0

0)()(

;,...,1

;

;)(

21121

213

2121

22

11211

2121

1

1

1

1

1

RRZRR

ZZRRR

ZZD

rrrr

zzzxxxD

njfürzrx

zrxzr

zxzxz

m

nn

j

kkkjj

j

kkkjjjjj

j

kkj

Tkjjj

⋅=⎟⎟⎠

⎞⎜⎜⎝

⎛⋅≈⎟⎟

⎞⎜⎜⎝

⎛⋅=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⋅==

=⋅=

⋅−=

⋅−=

=

=

=

OM

L

LL

α

Ersetze kleineWerte durchNull EntferneLineare Abhän-gigkeiten

LSI

Prüfe den Winkel der Suchanfrage nicht zu denOriginal-Dokumenten in B, sondern bezgl. derreduzierten Matrix:

j

jT

j dddd

⋅=)cos(ϕ

j

jT

jdd

dd~

~)cos(

⋅=ϕ

( ) ( )211121

21 00:~ RZRZ

RRZZD =⎟⎟

⎞⎜⎜⎝

⎛⋅=

Liefert bessere Suchergebnisse, da Abhängigkeiten reduziert.

SVD: Singuläre WertezerlegungBesserer Ansatz zur Reduzierung von Term/Dokument-Raum:

An Stelle von D=ZR verwende die Zerlegung D=UWV mitorthogonalen Matrizen U und V und Diagonalmatrix W.

,...),,...,,( 121 += rr wwwwdiagW

Zur Reduktion ersetze in W alle kleinen Werte nach wr durch 0:

,...)0,0,,...,,(~21 rwwwdiagW =

( ) 1112

1121 00

0~:~ VWUVVW

UUVWUD =⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛==

j

jT

jdd

dd~

~)cos(

⋅=ϕ

lsi.m

2. Der Web-GraphDefinition Graph: G=(E,K) mit Ecken E1,…,En und

Kanten K1,…,Km.

1

2

34

5

6

Kanten: (1,2),(1,4),(3,1),(4,3),(5,2),(5,4),(4,6). n=6, m=7.

⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜

=

000000001010100100000001000000001010

GAAdjazenzmatrix:Aij=1 Kante i j

„gerichteter Graph“

Beispiel von Daniel Kressner, ETH

Auswertung

Seite 8 hat PageRank 0.295 und damit das größte Gewicht.

Seite 6 hat Platz 2 mit 0.202

Seite 7 hat Platz 3 mit 0.180, usw.

Matrixschreibweise

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

=

)(8

)(7

)(6

)(5

)(4

)(3

)(2

)(1

)(

k

k

k

k

k

k

k

k

k

xxxxxxxx

x

Vektor der Aufenthaltswahrscheinlichkeiten im k-ten Schritt:

Gesamtwahrscheinlichkeit = 1, daher 1)(8

)(1 =++ kk xx L

k k+1im Vektor

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

++

+

++

++

++

=+

)(7

)(6

)(5

)(8

)(5

)(8

)(5

)(4

)(7

)(4

)(3

)(2

)(1

)(4

)(3

)(1

)(7

)1(

31

31

21

31

21

31

31

31

31

21

21

31

21

21

31

kkk

kk

kkk

kkk

k

k

kkk

k

k

xxx

xx

xxx

xxx

x

x

xxx

x

x

k k+1 mit Matrix

)(8

)(7

)(6

)(5

)(4

)(3

)(2

)(1

03/113/100002/1003/100002/1003/13/1000

03/1003/12/1000000001000000002/100003/12/102/103/1000000

k

k

k

k

k

k

k

k

xxxxxxxx

=

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

=

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

++

+

++

++

++

=+

)(7

)(6

)(5

)(8

)(5

)(8

)(5

)(4

)(7

)(4

)(3

)(2

)(1

)(4

)(3

)(1

)(7

)1(

31

31

21

31

21

31

31

31

31

21

21

31

21

21

31

kkk

kk

kkk

kkk

k

k

kkk

k

k

xxx

xx

xxx

xxx

x

x

xxx

x

x

)(kAx=

Exkurs: Stochastische Matrizen

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

=

03/113/100002/1003/100002/1003/13/1000

03/1003/12/1000000001000000002/100003/12/102/103/1000000

A

Eigenschaften von A:- A ~ Adjazenzmatrixdes Graphen

-Alle Einträge liegen zwischen 0 und 1, und sind nichtnegativ

-Spaltensumme für jede Spalte gleich 1

Eigenwert Ax=λx≠0

Im Falle der Konvergenz der Folge x(k) x* gilt

*)()1(* AxAxxx kk →=← +

Also ** 1 xAx ⋅=

Dann heißt 1 Eigenwert von A und x* der dazu gehörigeRechtseigenvektor.

Außerdem ( ) 111 11 ⋅=⋅=⋅ TT AAL

Daher ist 1T =(1,1,…,1)T Linkseigenvektor zu Eigenwert 1.

Eigenwerte stoch. MatrizenPerron-Frobenius-Theorie:

Stochastische (nicht-zerfallende Matrizen) Matrizen haben zu maximalen Eigenwert 1 einen Linkseigenvektor mit positiven Einträgen.

Linkseigenvektor zu 1 von Matrix A:

( )295.0180.0202.0098.0068.0030.0068.0060.0* =x

ist PageRank-Vektor.

Genauere Betrachtung

1. Problem: Webseiten ohne jegliche Links würdenNullspalten in der Matrix erzeugen.Dadurch wäre die Matrix nicht mehr stochastisch!

Lösung: Ersetze Nullspalte durch Spaltenvektor 1T/n

2. Problem: Matrix of zerfallend keine Konvergenzgarantie!Lösung:

nAnAA T /)1(/11

11)1( 11⋅−+=

⎟⎟⎟

⎜⎜⎜

⎛−+→ ρρρρ

L

MOM

L

1)1(

11

=⋅

⋅−+→

ewithAA

T

Teρρoder

Neues A ist nicht zerfallend, stochastisch! google.m

HITSUnterscheide zwei Arten von Webseiten:-Hubs als Knotenpunkte mit vielen Verweisen zu wichtigenWebseiten (zu einem Thema), H1,…,Hm.

-Authorities als wichtige Webseiten (zu einem Thema),A1,…,An.

Bilde wieder Matrix B, die jetzt aber für eine Authority-Seite das Gewicht angibt, mit dem ein Hub auf sie verweist:

Bi,j ist das Gewicht, mit dem Hub i auf Authority j verweist.B ist rechteckige n x m - Matrix

A1…An

B

H1…

Hm

Genauso sei H(0) ein Vektor mit Startranking der Hub-Seiten.

Für einen Hubvektor H gibt B*H an auf welche Authoritiesdiese Hubs verweisen.

Für einen Authority-Vektor A gibt BT*A an, welche Hubs aufdiese Authorities verweisen.

Sei A(0) ein Vektor mit Startranking der Authority-Seiten.

Konstruiere wieder eine Folge A(k), die gegen einenstationären Vektor konvergiert.

Iteration

K

K

K

K

⇒=⇒

⇒=⇒=⇒

⇒=⇒

⇒=⇒=⇒

)1()0()0(

)1()1()1()1()0()0(

)1()0()0(

)1()1()1()1()0()0(

)(

)(

HHBBHHBHBAAHBH

AABBABAAHBHBAA

T

TT

T

T

)0()(

)0()(

)(

)(

HBBH

ABBA

kTk

kTk

=

=

Iteration( )( )( )( ) )(

)()1(

)(

)()1(

:

:

kT

kTk

kT

kTk

HBBHBBH

ABBABBA

=

=

+

+

Zwei Vektoriterationen, die gegen stationären maximalenEigenwert/vektor von BTB, bzw. BBT konvergieren.Max. Eigenwert ist sog. max. Singulärwert von B mitRechts/Links Singulärvektor.

Ergibt Ranking der Hubs/Authorities.Ask.com, John Kleinberg

BeispielDrei Hubs, vier Authorities, verlinkt wieH1 verweist auf alle Auth., H2 auf die ersten drei, undH3 auf erste und letze Auth.:

⎟⎟⎟

⎜⎜⎜

⎛=

100101111111

B

Vermutetes Ranking:A1 vor A2 und A3 vor A4H1 vor H2 vor H3

hits.m

ErgebnisMaximaler Singulärwert ist 7.4188 mit Singulärvektoren

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

4038.04784.04784.06158.0A1

A2A3A4

⎟⎟⎟

⎜⎜⎜

3744.05774.07256.0H1

H2H3

Anwendung:Wähle Hubs aus (z.B. Seiten (zu Thema) mit mehr als 5 LinksWähle Authorities aus (z.B. Seiten (zu Thema), auf die mehr als

5 andere Seiten verweisen, oder in denenSchlüsselworte mehr als 5 Mal auftauchen)

Bilde B und bestimme max. SW und Rechts/Links-Singulärvektor.