2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00

Fehler korrigiert; Verlinkung mit cleveref verbessert

This commit is contained in:
Martin Thoma 2014-01-12 15:19:53 +01:00
parent 3d8855c84e
commit e03e13a284
8 changed files with 165 additions and 150 deletions

View file

@ -3,9 +3,9 @@ DYCOS (\underline{DY}namic \underline{C}lassification
algorithm with c\underline{O}ntent and \underline{S}tructure) ist ein
Knotenklassifizierungsalgorithmus, der Ursprünglich in \cite{aggarwal2011} vorgestellt
wurde. Er klassifiziert Knoten, indem mehrfach Random Walks startend
bei dem zu klassifizierenden Knoten gemacht werden und die Labels
bei dem zu klassifizierenden Knoten $v$ gemacht werden und die Labels
der besuchten Knoten gezählt werden. Das Label, das am häufigsten
vorgekommen ist, wird als Label gewählt.
vorgekommen ist, wird als Label für $v$ gewählt.
DYCOS nutzt also die sog. Homophilie, d.~h. die Eigenschaft, dass
Knoten, die nur wenige Hops von einander entfernt sind, häufig auch
ähnlich sind \cite{bhagat}.
@ -17,7 +17,7 @@ stehenden Texte.
Für diese Erweiterung wird zuerst wird Vokabular $W_t$ bestimmt, das
charakteristisch für eine Knotengruppe ist. Wie das gemacht werden kann
und warum nicht einfach jedes Wort in das Vokabular aufgenommen wird,
wird in Abschnitt~\ref{sec:vokabularbestimmung} erläutert.\\
wird in \cref{sec:vokabularbestimmung} erläutert.\\
Nach der Bestimmung des Vokabulars wird für
jedes Wort im Vokabular ein Wortknoten zum Graphen hinzugefügt. Alle
Knoten, die der Graph zuvor hatte, werden nun \enquote{Strukturknoten}
@ -53,17 +53,21 @@ tatsächlich die Grapherweiterung:
Dann heißt das zufällige wechseln des aktuell betrachteten
Knoten $v \in V_t$ zu einem benachbartem Knoten $w \in W_t$
und weiter zu Nachbar von $v' \in V_t$ von $w$
ein \textbf{inhaltlicher Mehrfachsprung}. $v'$ ist also genau
einen Sprung über einen Wortknoten $w$ von $v$ entfernt.
und weiter zu einem zufälligem Nachbar $v' \in V_t$ von $w$
ein \textbf{inhaltlicher Mehrfachsprung}.
\end{definition}
Jeder inhaltliche Mehrfachsprung beginnt und endet also in einem Strukturknoten,
springt über einen Wortknoten und ist ein Pfad der Länge~2.
Bevor der DYCOS-Algorithmus im Detail erklärt wird, sei noch auf eine
Besonderheit hingewiesen:
Der DYCOS-Algorithmus betrachtet die Texte, die einem Knoten
zugeornet sind, als eine
Multimenge von Wörtern. Das heißt, zum einen wird nicht auf die
Reihenfolge der Wörter geachtet, zum anderen wird bei Texten
eines Knotens nicht zwischen verschiedenen Texten unterschieden.
Jedoch wird die Anzahl der Vorkommen jedes Wortes berücksichtigt.
zugeornet sind, als eine Multimenge von Wörtern. Das heißt, zum einen
wird nicht auf die Reihenfolge der Wörter geachtet, zum anderen wird
bei Texten eines Knotens nicht zwischen verschiedenen
Texten unterschieden. Jedoch wird die Anzahl der Vorkommen
jedes Wortes berücksichtigt.
\subsection{Datenstrukturen}
Zusätzlich zu dem gerichteten Graphen $G_t = (V_t, E_t, V_{L,t})$
@ -94,27 +98,32 @@ verwaltet der DYCOS-Algorithmus zwei weitere Datenstrukturen:
\subsection{Der Algorithmus}
Der DYCOS-Algorithmus verwendet nun für jeden Knoten der gelabelt wird
$r$ Random Walks der Länge $l$, wobei mit einer Wahrscheinlichkeit
$p_S$ ein struktureller $l$-Sprung und mit einer Wahrscheinlichkeit
von $(1-p_S)$ ein inhaltlicher $l$-Mehrfachsprung gemacht wird.
$p_S$ ein struktureller Sprung und mit einer Wahrscheinlichkeit
von $(1-p_S)$ ein inhaltlicher Mehrfachsprung gemacht wird. Dieser
Parameter gibt an, wie wichtig die Struktur des Graphen im Verhältnis
zu den textuellen Inhalten ist. Bei $p_S = 0$ werden ausschließlich
die Texte betrachtet, bei $p_S = 1$ ausschließlich die Struktur des
Graphen.
Die Vokabularbestimmung kann zu jedem Zeitpunkt $t$ durchgeführt
werden, muss es aber nicht.
Im Folgenden werde ich den DYCOS-Algorithmus als Pseudocode vorstellen.
Dafür benötigt man die beiden Hilfsfunktionen für den strukturellen
Sprung sowie den inhaltlichen Mehrfachsprung:
In \cref{alg:DYCOS} wurde der DYCOS-Algorithmus als
Pseudocode vorgestellt. Dafür werden die beiden Hilfsfunktionen
für den strukturellen Sprung sowie den inhaltlichen Mehrfachsprung
benötigt.
\begin{algorithm}[H]
\begin{algorithm}
\begin{algorithmic}[1]
\Require \\$\G_t = (\N_t, \A_t, \T_t)$ (Netzwerk),\\
\Require \\$G_t = (V_t, E_t, V_{L,t})$ (Netzwerk),\\
$r$ (Anzahl der Random Walks),\\
$l$ (Länge eines Random Walks),\\
$p_s$ (Wahrscheinlichkeit eines strukturellen Sprungs),\\
$q$ (Anzahl der betrachteten Knoten nach der Aggregatanalyse)
\Ensure Klassifikation von $\N_t \setminus \T_t$\\
$q$ (Anzahl der betrachteten Knoten in der Clusteranalyse)
\Ensure Klassifikation von $V_t \setminus V_{L,t}$\\
\\
\ForAll{Knoten $v$ in $\N_t \setminus \T_t$}
\ForAll{Knoten $v$ in $V_t \setminus V_{L,t}$}
\State $d \gets $ defaultdict
\For{$i$ von $1$ bis $r$}
\State $w \gets v$
@ -140,7 +149,7 @@ Sprung sowie den inhaltlichen Mehrfachsprung:
\State $label \gets \Call{Random}{M_H}$
\State $v.\Call{AddLabel}{label}$ \Comment{und weise dieses $v$ zu}
\EndFor
\State \Return Labels für $\N_t \setminus \T_t$
\State \Return Labels für $V_t \setminus V_{L,t}$
\end{algorithmic}
\caption{DYCOS-Algorithmus}
\label{alg:DYCOS}