next up previous
Nächste Seite: Einfügen neuer Terme Aufwärts: SVD-Updating Vorherige Seite: SVD-Updating


Einfügen neuer Dokumente

Zunächst wird eine neue Matrix B durch Aneinanderhängen von $ A_k$ und N gewonnen, wobei N die $ m\times p$ Matrix aus den Dokumentvektoren der p neuen Dokumente ist:

$\displaystyle B = (A_k\vert N) $

Im Unterschied zum Updating durch vollständige Neuberechnung verwenden wir also die alte Term-Dokument-Matrix A überhaupt nicht mehr, sondern gleich die bereits modizifierte $ A_k$ - das Ergebnis weicht daher ein wenig vom Ergebnis der vollständigen Neuberechnung ab. Gesucht ist nun eine Zerlegung

$\displaystyle B = T_BS_BD_B^T $

mit $ D_B$ und $ T_B$ orthonormal. Hierzu berechnen wir durch Linksmultiplikation mit dem alten $ T_k^T$ und Rechtsmultiplikation mit dem alten $ D_k$ (aufgefüllt mit der Einheitsmatrix) eine Hilfmatrix F

$\displaystyle F = T_k^T B \begin{pmatrix} D_k & 0 \\ 0 & I_p \end{pmatrix} $

mit

$\displaystyle I_p = \begin{pmatrix} 1 & 0 & \dots & 0 \\ 0 & 1 & \dots & 0 \\ \vdots & 0 & \ddots & \vdots \\ 0 & 0 & \dots & 1 \\ \end{pmatrix}\;$Einheitsmatrix der Dimension $\displaystyle p\times p $

Dann ist für F eine Singular-Value-Zerlegung

$\displaystyle F = T_F S_F D_F^T$ (1)

mit vereinfachten Algorithmen zu finden, denn F hat die Form

$\displaystyle F = T_k^T B \begin{pmatrix} D_k & 0 \\ 0 & I_p \end{pmatrix} = T_...... 0 \\ 0 & I_p \end{pmatrix} = (I_m S_k I_n \vert T_k^TN) = (S_k \vert T_k^TN), $

denn wegen Orthogonalität von $ T_k$ und $ D_k$ ist

$\displaystyle T_k^TT_k=I_m\;$und$\displaystyle \;D_kD_k^T=I_n$ (2)

Also ist der linke obere Teil von F eine Diagonal-Matrix, was den SVD-Algorithmus erleichtert.

Aus der Zerlegung von F läßt sich nun aber sehr einfach die Zerlegung von B gewinnen, denn

$\displaystyle T_k^TB\begin{pmatrix} D_k & 0 \\ 0 & I_p \end{pmatrix} & = F $

$\displaystyle T_kT_k^TB\begin{pmatrix} D_k & 0 \\ 0 & I_p \end{pmatrix} & = T_kF $

und wegen (2)

$\displaystyle B\begin{pmatrix} D_k & 0 \\ 0 & I_p \end{pmatrix}& = T_kF $

ebenso

$\displaystyle B& = T_kF\begin{pmatrix} D_k^T & 0 \\ 0 & I_p \end{pmatrix} $

also mit der Zerlegung (1)

$\displaystyle B& = \underbrace{T_kT_F}_{\text{orthogonal}}
\overbrace{S_F}^{\te...
...e{D_F^T\begin{pmatrix}
D_k^T & 0 \\ 0 & I_p \end{pmatrix}}_{\text{orthogonal}} $

Also legen wir fest

$\displaystyle T_B=T_kT_F,\;D_B=D_F^T\begin{pmatrix}
D_k^T & 0\\ 0 & I_p
\end{pmatrix},\;
S_B=S_F $

und haben die gewünschte Zerlegung. Die Vereinfachung besteht also darin, daß wir von Anfang nicht A, sondern $ A_k$ benutzen und so einfachere Algorithmen zur Zerlegung anwenden können (die hier aber nicht erklärt werden).


next up previous
Nächste Seite: Einfügen neuer Terme Aufwärts: SVD-Updating Vorherige Seite: SVD-Updating