2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-19 11:38:05 +02:00

Add line breaks

This commit is contained in:
Martin Thoma 2015-11-23 07:07:00 +01:00
parent 59a30febaf
commit f02d9ab873
14 changed files with 265 additions and 294 deletions

View file

@ -1,10 +1,9 @@
Für den DYCOS-Algorithmus wurde in \cite{aggarwal2011} bewiesen,
dass sich nach Ausführung von DYCOS für einen unbeschrifteten
Knoten mit einer Wahrscheinlichkeit von höchstens
$(|\L_t|-1)\cdot e^{-l \cdot b^2 / 2}$ eine Knotenbeschriftung ergibt, deren
relative Häufigkeit weniger als $b$ der häufigsten Beschriftung ist.
Dabei ist $|\L_t|$ die Anzahl der Beschriftungen und $l$ die Länge der
Random-Walks.
Für den DYCOS-Algorithmus wurde in \cite{aggarwal2011} bewiesen, dass sich nach
Ausführung von DYCOS für einen unbeschrifteten Knoten mit einer
Wahrscheinlichkeit von höchstens $(|\L_t|-1)\cdot e^{-l \cdot b^2 / 2}$ eine
Knotenbeschriftung ergibt, deren relative Häufigkeit weniger als $b$ der
häufigsten Beschriftung ist. Dabei ist $|\L_t|$ die Anzahl der Beschriftungen
und $l$ die Länge der Random-Walks.
Außerdem wurde experimentell anhand des DBLP-Datensatzes\footnote{http://dblp.uni-trier.de/}
und des CORA-Datensatzes\footnote{http://people.cs.umass.edu/~mccallum/data/cora-classify.tar.gz}
@ -27,10 +26,10 @@ von 61\% - 66\% erreicht.
\label{tab:datasets}
\end{table}
Obwohl es sich nicht sagen lässt,
wie genau die Ergebnisse aus \cite{aggarwal2011} zustande gekommen sind,
eignet sich das Kreuzvalidierungsverfahren zur Bestimmung der Klassifikationsgüte
wie es in \cite{Lavesson,Stone1974} vorgestellt wird:
Obwohl es sich nicht sagen lässt, wie genau die Ergebnisse aus
\cite{aggarwal2011} zustande gekommen sind, eignet sich das
Kreuzvalidierungsverfahren zur Bestimmung der Klassifikationsgüte wie es in
\cite{Lavesson,Stone1974} vorgestellt wird:
\begin{enumerate}
\item Betrachte nur $V_{L,T}$.
\item Unterteile $V_{L,T}$ zufällig in $k$ disjunkte Mengen $M_1, \dots, M_k$.
@ -40,5 +39,3 @@ wie es in \cite{Lavesson,Stone1974} vorgestellt wird:
\end{enumerate}
Es wird $k=10$ vorgeschlagen.

View file

@ -1,26 +1,22 @@
Den DYCOS-Algorithmus kann in einigen Aspekten erweitert werden.
So könnte man vor der Auswahl des Vokabulars jedes Wort auf den
Wortstamm zurückführen.
Dafür könnte zum Beispiel der in \cite{porter} vorgestellte
Porter-Stemming-Algorithmus verwendet werden. Durch diese Maßnahme wird das
Vokabular kleiner gehalten wodurch mehr Artikel mit einander
durch Vokabular verbunden werden können. Außerdem könnte so der
Gini-Koeffizient ein besseres Maß für die Gleichheit von Texten werden.
Den DYCOS-Algorithmus kann in einigen Aspekten erweitert werden. So könnte man
vor der Auswahl des Vokabulars jedes Wort auf den Wortstamm zurückführen. Dafür
könnte zum Beispiel der in \cite{porter} vorgestellte Porter-Stemming-Algorithmus verwendet werden. Durch diese Maßnahme wird das Vokabular kleiner
gehalten wodurch mehr Artikel mit einander durch Vokabular verbunden werden
können. Außerdem könnte so der Gini-Koeffizient ein besseres Maß für die
Gleichheit von Texten werden.
Eine weitere Verbesserungsmöglichkeit besteht in der Textanalyse.
Momentan ist diese noch sehr einfach gestrickt und ignoriert die
Reihenfolge von Wortern beziehungsweise Wertungen davon. So könnte
man den DYCOS-Algorithmus in einem sozialem Netzwerk verwenden wollen,
in dem politische Parteiaffinität von einigen Mitgliedern angegeben
wird um die Parteiaffinität der restlichen Mitglieder zu bestimmen.
In diesem Fall macht es jedoch einen wichtigen Unterschied, ob jemand
über eine Partei gutes oder schlechtes schreibt.
Eine weitere Verbesserungsmöglichkeit besteht in der Textanalyse. Momentan ist
diese noch sehr einfach gestrickt und ignoriert die Reihenfolge von Wortern
beziehungsweise Wertungen davon. So könnte man den DYCOS-Algorithmus in einem
sozialem Netzwerk verwenden wollen, in dem politische Parteiaffinität von
einigen Mitgliedern angegeben wird um die Parteiaffinität der restlichen
Mitglieder zu bestimmen. In diesem Fall macht es jedoch einen wichtigen
Unterschied, ob jemand über eine Partei gutes oder schlechtes schreibt.
Eine einfache Erweiterung des DYCOS-Algorithmus wäre der Umgang mit
mehreren Beschriftungen.
Eine einfache Erweiterung des DYCOS-Algorithmus wäre der Umgang mit mehreren
Beschriftungen.
DYCOS beschränkt sich bei inhaltlichen Zweifachsprüngen
auf die Top-$q$-Wortknoten, also die $q$ ähnlichsten Knoten
gemessen mit der Aggregatanalyse, allerdings wurde bisher noch nicht
untersucht, wie der Einfluss von $q \in \mathbb{N}$ auf die
Klassifikationsgüte ist.
DYCOS beschränkt sich bei inhaltlichen Zweifachsprüngen auf die
Top-$q$-Wortknoten, also die $q$ ähnlichsten Knoten gemessen mit der
Aggregatanalyse, allerdings wurde bisher noch nicht untersucht, wie der
Einfluss von $q \in \mathbb{N}$ auf die Klassifikationsgüte ist.

View file

@ -1,45 +1,37 @@
\subsection{Überblick}
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.
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.
Ein zentrales Element des DYCOS-Algorithmus ist der sog.
{\it Random Walk}:
Ein zentrales Element des DYCOS-Algorithmus ist der sog. {\it Random Walk}:
\begin{definition}[Random Walk, Sprung]
Sei $G = (V, E)$ mit $E \subseteq V \times V$ ein Graph und
$v_0 \in V$ ein Knoten des Graphen.
%Sei außerdem $f: V \rightarrow \mathcal{P}(V)$ eine Abbildung
%mit der Eigenschaft:
%\[ \forall v \in V \forall v' \in f(v): \exists \text{Weg von } v \text{ nach } v'\]
Ein Random Walk der Länge $l$ auf $G$, startend bei $v_0$ ist
nun der zeitdiskrete stochastische Prozess, der $v_i$
auf einen zufällig gewählten Nachbarn $v_{i+1}$ abbildet
(für $i \in 0, \dots, l-1$).
Die Abbildung $v_i \mapsto v_{i+1}$ heißt ein Sprung.
Ein Random Walk der Länge $l$ auf $G$, startend bei $v_0$ ist nun der
zeitdiskrete stochastische Prozess, der $v_i$ auf einen zufällig gewählten
Nachbarn $v_{i+1}$ abbildet (für $i \in 0, \dots, l-1$). Die Abbildung $v_i
\mapsto v_{i+1}$ heißt ein Sprung.
\end{definition}
Der DYCOS-Algorithmus klassifiziert einzelne Knoten, indem $r$ Random Walks der Länge $l$,
startend bei dem zu klassifizierenden Knoten $v$ gemacht werden. Dabei
werden die Beschriftungen der besuchten Knoten gezählt. Die Beschriftung, die am häufigsten
vorgekommen ist, wird als Beschriftung 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}. Der DYCOS-Algorithmus arbeitet jedoch nicht
direkt auf dem Graphen, sondern erweitert ihn mit
Hilfe der zur Verfügung stehenden Texte. Wie diese Erweiterung
erstellt wird, wird im Folgenden erklärt.\\
Der DYCOS-Algorithmus klassifiziert einzelne Knoten, indem $r$ Random Walks der
Länge $l$, startend bei dem zu klassifizierenden Knoten $v$ gemacht werden.
Dabei werden die Beschriftungen der besuchten Knoten gezählt. Die Beschriftung,
die am häufigsten vorgekommen ist, wird als Beschriftung 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}.
Der DYCOS-Algorithmus arbeitet jedoch nicht direkt auf dem Graphen, sondern
erweitert ihn mit Hilfe der zur Verfügung stehenden Texte. Wie diese
Erweiterung erstellt wird, wird im Folgenden erklärt.\\
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 \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}
genannt.
charakteristisch für eine Knotengruppe ist. Wie das gemacht werden kann und
warum nicht einfach jedes Wort in das Vokabular aufgenommen wird, 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} genannt.
Ein Strukturknoten $v$ wird genau dann mit einem Wortknoten $w \in W_t$
verbunden, wenn $w$ in einem Text von $v$ vorkommt. \Cref{fig:erweiterter-graph}
zeigt beispielhaft den so entstehenden, semi-bipartiten Graphen.
@ -57,8 +49,8 @@ jedes Wortes berücksichtigt.
\label{fig:erweiterter-graph}
\end{figure}
Entsprechend werden zwei unterschiedliche Sprungtypen unterschieden,
die strukturellen Sprünge und inhaltliche Zweifachsprünge:
Entsprechend werden zwei unterschiedliche Sprungtypen unterschieden, die
strukturellen Sprünge und inhaltliche Zweifachsprünge:
\begin{definition}[struktureller Sprung]
Sei $G_{E,t} = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_{t})$ der
@ -69,48 +61,43 @@ die strukturellen Sprünge und inhaltliche Zweifachsprünge:
ein \textit{struktureller Sprung}.
\end{definition}
\goodbreak
Im Gegensatz dazu benutzten inhaltliche Zweifachsprünge
tatsächlich die Grapherweiterung:
Im Gegensatz dazu benutzten inhaltliche Zweifachsprünge tatsächlich die
Grapherweiterung:
\begin{definition}[inhaltlicher Zweifachsprung]
Sei $G_t = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_{t})$ der
um die Wortknoten $W_{t}$ erweiterte Graph.
Sei $G_t = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_{t})$ der um die
Wortknoten $W_{t}$ erweiterte Graph.
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 einem zufälligem Nachbar $v' \in V_t$ von $w$
ein inhaltlicher Zweifachsprung.
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 einem
zufälligem Nachbar $v' \in V_t$ von $w$ ein inhaltlicher Zweifachsprung.
\end{definition}
Jeder inhaltliche Zweifachsprung beginnt und endet also in einem Strukturknoten,
springt über einen Wortknoten und ist ein Pfad der Länge~2.
Jeder inhaltliche Zweifachsprung beginnt und endet also in einem
Strukturknoten, springt über einen Wortknoten und ist ein Pfad der Länge~2.
Ob in einem Sprung der Random Walks ein struktureller Sprung oder
ein inhaltlicher Zweifachsprung gemacht wird, wird jedes mal zufällig
neu entschieden. Dafür wird der Parameter $0 \leq p_S \leq 1$ für den Algorithmus
gewählt. Mit einer Wahrscheinlichkeit von $p_S$ wird ein struktureller
Sprung durchgeführt und mit einer Wahrscheinlichkeit
von $(1-p_S)$ ein modifizierter inhaltlicher Zweifachsprung, wie er in
\cref{sec:sprungtypen} erklärt wird, gemacht. Der
Parameter $p_S$ 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.
Ob in einem Sprung der Random Walks ein struktureller Sprung oder ein
inhaltlicher Zweifachsprung gemacht wird, wird jedes mal zufällig neu
entschieden. Dafür wird der Parameter $0 \leq p_S \leq 1$ für den Algorithmus
gewählt. Mit einer Wahrscheinlichkeit von $p_S$ wird ein struktureller Sprung
durchgeführt und mit einer Wahrscheinlichkeit von $(1-p_S)$ ein modifizierter
inhaltlicher Zweifachsprung, wie er in \cref{sec:sprungtypen} erklärt wird,
gemacht. Der Parameter $p_S$ 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.
Die Vokabularbestimmung kann zu jedem Zeitpunkt $t$ durchgeführt werden, muss
es aber nicht.
In \cref{alg:DYCOS} steht der DYCOS-Algorithmus in Form von Pseudocode:
In \cref{alg1:l8} wird für jeden unbeschrifteten Knoten
durch die folgenden Zeilen eine Beschriftung gewählt.
\Cref{alg1:l10} führt $r$ Random Walks durch.
In \cref{alg1:l11} wird eine temporäre Variable für den aktuell
betrachteten Knoten angelegt.
\Cref{alg1:l10} führt $r$ Random Walks durch. In \cref{alg1:l11} wird eine
temporäre Variable für den aktuell betrachteten Knoten angelegt.
In \cref{alg1:l12} bis \cref{alg1:l21} werden einzelne Random Walks
der Länge $l$ durchgeführt, wobei die beobachteten Beschriftungen
gezählt werden und mit einer Wahrscheinlichkeit von $p_S$ ein
struktureller Sprung durchgeführt wird.
In \cref{alg1:l12} bis \cref{alg1:l21} werden einzelne Random Walks der Länge
$l$ durchgeführt, wobei die beobachteten Beschriftungen gezählt werden und mit
einer Wahrscheinlichkeit von $p_S$ ein struktureller Sprung durchgeführt wird.
\begin{algorithm}[ht]
\begin{algorithmic}[1]
@ -158,8 +145,8 @@ struktureller Sprung durchgeführt wird.
\end{algorithm}
\subsection{Datenstrukturen}
Zusätzlich zu dem gerichteten Graphen $G_t = (V_t, E_t, V_{L,t})$
verwaltet der DYCOS-Algorithmus zwei weitere Datenstrukturen:
Zusätzlich zu dem gerichteten Graphen $G_t = (V_t, E_t, V_{L,t})$ verwaltet der
DYCOS-Algorithmus zwei weitere Datenstrukturen:
\begin{itemize}
\item Für jeden Knoten $v \in V_t$ werden die vorkommenden Wörter,
die auch im Vokabular $W_t$ sind,

View file

@ -1,48 +1,47 @@
Im Folgenden werden in \cref{sec:Motivation} einge Beispiele, in denen
der DYCOS-Algorithmus anwendung finden könnte, dargelegt. In
\cref{sec:Problemstellung} wird die Problemstellung formal definiert
und in \cref{sec:Herausforderungen} wird auf besondere Herausforderungen
der Aufgabenstellung hingewiesen.
und in \cref{sec:Herausforderungen} wird auf besondere Herausforderungen der
Aufgabenstellung hingewiesen.
\subsection{Motivation}\label{sec:Motivation}
Teilweise beschriftete Graphen sind allgegenwärtig. Publikationsdatenbanken
mit Publikationen als Knoten, Literaturverweisen und Zitaten als Kanten
sowie von Nutzern vergebene Beschriftungen (sog. {\it Tags}) oder Kategorien als Knotenbeschriftungen;
Wikipedia mit Artikeln als Knoten, Links als Kanten und Kategorien
als Knotenbeschriftungen sowie soziale Netzwerke mit Eigenschaften der Benutzer
als Knotenbeschriftungen sind drei Beispiele dafür.
Häufig sind Knotenbeschriftungen nur teilweise vorhanden und es ist wünschenswert die
Teilweise beschriftete Graphen sind allgegenwärtig. Publikationsdatenbanken mit
Publikationen als Knoten, Literaturverweisen und Zitaten als Kanten sowie von
Nutzern vergebene Beschriftungen (sog. {\it Tags}) oder Kategorien als
Knotenbeschriftungen; Wikipedia mit Artikeln als Knoten, Links als Kanten und
Kategorien als Knotenbeschriftungen sowie soziale Netzwerke mit Eigenschaften
der Benutzer als Knotenbeschriftungen sind drei Beispiele dafür. Häufig sind
Knotenbeschriftungen nur teilweise vorhanden und es ist wünschenswert die
fehlenden Knotenbeschriftungen automatisiert zu ergänzen.
\subsection{Problemstellung}\label{sec:Problemstellung}
Gegeben ist ein Graph, dessen Knoten teilweise beschriftet sind. Zusätzlich stehen
zu einer Teilmenge der Knoten Texte bereit. Gesucht sind nun Knotenbeschriftungen
für alle Knoten, die bisher noch nicht beschriftet sind.\\
Gegeben ist ein Graph, dessen Knoten teilweise beschriftet sind. Zusätzlich
stehen zu einer Teilmenge der Knoten Texte bereit. Gesucht sind nun
Knotenbeschriftungen für alle Knoten, die bisher noch nicht beschriftet sind.\\
\begin{definition}[Knotenklassifierungsproblem]\label{def:Knotenklassifizierungsproblem}
Sei $G_t = (V_t, E_t, V_{L,t})$ ein gerichteter Graph,
wobei $V_t$ die Menge aller Knoten,
$E_t \subseteq V_t \times V_t$ die Kantenmenge und $V_{L,t} \subseteq V_t$ die Menge der
beschrifteten Knoten jeweils zum Zeitpunkt $t$ bezeichne.
Außerdem sei $L_t$ die Menge aller zum Zeitpunkt $t$ vergebenen
Knotenbeschriftungen und $f:V_{L,t} \rightarrow L_t$ die Funktion, die einen
Knoten auf seine Beschriftung abbildet.
Sei $G_t = (V_t, E_t, V_{L,t})$ ein gerichteter Graph, wobei $V_t$ die
Menge aller Knoten, $E_t \subseteq V_t \times V_t$ die Kantenmenge und
$V_{L,t} \subseteq V_t$ die Menge der beschrifteten Knoten jeweils zum
Zeitpunkt $t$ bezeichne. Außerdem sei $L_t$ die Menge aller zum Zeitpunkt
$t$ vergebenen Knotenbeschriftungen und $f:V_{L,t} \rightarrow L_t$ die
Funktion, die einen Knoten auf seine Beschriftung abbildet.
Weiter sei für jeden Knoten $v \in V$ eine (eventuell leere)
Textmenge $T(v)$ gegeben.
Weiter sei für jeden Knoten $v \in V$ eine (eventuell leere) Textmenge
$T(v)$ gegeben.
Gesucht sind nun Beschriftungen für $V_t \setminus V_{L,t}$, also
$\tilde{f}: V_t \setminus V_{L,t} \rightarrow L_t$. Die Aufgabe,
zu $G_t$ die Funktion $\tilde{f}$ zu finden heißt \textit{Knotenklassifierungsproblem}.
$\tilde{f}: V_t \setminus V_{L,t} \rightarrow L_t$. Die Aufgabe, zu $G_t$
die Funktion $\tilde{f}$ zu finden heißt
\textit{Knotenklassifierungsproblem}.
\end{definition}
\subsection{Herausforderungen}\label{sec:Herausforderungen}
Die Graphen, für die dieser Algorithmus konzipiert wurde,
sind viele $\num{10000}$~Knoten groß und dynamisch. \enquote{Dynamisch}
bedeutet in diesem Kontext, dass neue Knoten und eventuell auch neue
Kanten hinzu kommen bzw. Kanten oder Knoten werden entfernt werden.
Außerdem stehen textuelle Inhalte zu den
Knoten bereit, die bei der Klassifikation genutzt werden können.
Bei kleinen Änderungen sollte nicht alles nochmals berechnen
werden müssen, sondern basierend auf zuvor
berechneten Knotenbeschriftungen sollte die Klassifizierung angepasst werden.
Die Graphen, für die dieser Algorithmus konzipiert wurde, sind viele
$\num{10000}$~Knoten groß und dynamisch. \enquote{Dynamisch} bedeutet in diesem
Kontext, dass neue Knoten und eventuell auch neue Kanten hinzu kommen bzw.
Kanten oder Knoten werden entfernt werden. Außerdem stehen textuelle Inhalte zu
den Knoten bereit, die bei der Klassifikation genutzt werden können. Bei
kleinen Änderungen sollte nicht alles nochmals berechnen werden müssen, sondern
basierend auf zuvor berechneten Knotenbeschriftungen sollte die Klassifizierung
angepasst werden.

View file

@ -1,16 +1,16 @@
DOKUMENT = Ausarbeitung-Thoma
SOURCE = Ausarbeitung-Thoma
make:
pdflatex $(DOKUMENT).tex -output-format=pdf # Referenzen erstellen
bibtex $(DOKUMENT)
pdflatex $(DOKUMENT).tex -output-format=pdf # Referenzen einbinden
pdflatex $(DOKUMENT).tex -output-format=pdf # Referenzen einbinden
pdflatex $(SOURCE).tex -output-format=pdf # Referenzen erstellen
bibtex $(SOURCE)
pdflatex $(SOURCE).tex -output-format=pdf # Referenzen einbinden
pdflatex $(SOURCE).tex -output-format=pdf # Referenzen einbinden
make clean
ebook:
latexml --dest=$(DOKUMENT).xml $(DOKUMENT).tex
latexmlpost -dest=$(DOKUMENT).html $(DOKUMENT).xml
ebook-convert $(DOKUMENT).html $(DOKUMENT).epub --language de --no-default-epub-cover
latexml --dest=$(SOURCE).xml $(SOURCE).tex
latexmlpost -dest=$(SOURCE).html $(SOURCE).xml
ebook-convert $(SOURCE).html $(SOURCE).epub --language de --no-default-epub-cover
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.thm *.idx *.toc *.ind *.ilg *.glg *.glo *.gls *.ist *.xdy *.bbl *.blg *.bak

View file

@ -5,7 +5,7 @@ written in German.
Ausarbeitung zum Proseminar "Netzwerkanalyse" am KIT.
Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation
25-30 Minuten dauern + 10-15 Minuten Diskussion.
Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation 25-30 Minuten
dauern und 10-15 Minuten Diskussion.
Zu der Ausarbeitung gehört eine [Präsentation](https://github.com/MartinThoma/LaTeX-examples/tree/master/presentations/Proseminar-Netzwerkanalyse).

View file

@ -1,24 +1,29 @@
%!TEX root = Ausarbeitung-Thoma.tex
Sowohl das Problem der Knotenklassifikation, als auch das der Textklassifikation,
wurde bereits in verschiedenen Kontexten. Jedoch scheien bisher entweder nur die Struktur des zugrundeliegenden Graphen oder nur Eigenschaften der Texte verwendet worden zu sein.
Sowohl das Problem der Knotenklassifikation, als auch das der
Textklassifikation, wurde bereits in verschiedenen Kontexten. Jedoch scheien
bisher entweder nur die Struktur des zugrundeliegenden Graphen oder nur
Eigenschaften der Texte verwendet worden zu sein.
So werden in \cite{bhagat,szummer} unter anderem Verfahren zur Knotenklassifikation
beschrieben, die wie der in \cite{aggarwal2011} vorgestellte DYCOS-Algorithmus,
um den es in dieser Ausarbeitung geht, auch auf Random Walks basieren.
So werden in \cite{bhagat,szummer} unter anderem Verfahren zur
Knotenklassifikation beschrieben, die wie der in \cite{aggarwal2011}
vorgestellte DYCOS-Algorithmus, um den es in dieser Ausarbeitung geht, auch auf
Random Walks basieren.
Obwohl es auch zur Textklassifikation einige Paper gibt \cite{Zhu02learningfrom,Jiang2010302}, geht doch keines davon auf den Spezialfall der Textklassifikation
mit einem zugrundeliegenden Graphen ein.
Obwohl es auch zur Textklassifikation einige Paper gibt
\cite{Zhu02learningfrom,Jiang2010302}, geht doch keines davon auf den
Spezialfall der Textklassifikation mit einem zugrundeliegenden Graphen ein.
Die vorgestellten Methoden zur Textklassifikation variieren außerdem sehr stark.
Es gibt Verfahren, die auf dem bag-of-words-Modell basieren \cite{Ko:2012:STW:2348283.2348453}
wie es auch im DYCOS-Algorithmus verwendet wird. Aber es gibt auch Verfahren,
die auf dem Expectation-Maximization-Algorithmus basieren \cite{Nigam99textclassification}
oder Support Vector Machines nutzen \cite{Joachims98textcategorization}.
Die vorgestellten Methoden zur Textklassifikation variieren außerdem sehr
stark. Es gibt Verfahren, die auf dem bag-of-words-Modell basieren
\cite{Ko:2012:STW:2348283.2348453} wie es auch im DYCOS-Algorithmus verwendet
wird. Aber es gibt auch Verfahren, die auf dem Expectation-Maximization-
Algorithmus basieren \cite{Nigam99textclassification} oder Support Vector
Machines nutzen \cite{Joachims98textcategorization}.
Es wäre also gut Vorstellbar, die Art und Weise wie die Texte in die Klassifikation
des DYCOS-Algorithmus einfließen zu variieren. Allerdings ist dabei darauf hinzuweisen,
dass die im Folgeden vorgestellte Verwendung der Texte sowohl einfach zu implementieren
ist und nur lineare Vorverarbeitungszeit in Anzahl der Wörter des Textes hat,
als auch es erlaubt einzelne
Knoten zu klassifizieren, wobei der Graph nur lokal um den zu klassifizerenden
Knoten betrachten werden muss.
Es wäre also gut Vorstellbar, die Art und Weise wie die Texte in die
Klassifikation des DYCOS-Algorithmus einfließen zu variieren. Allerdings ist
dabei darauf hinzuweisen, dass die im Folgeden vorgestellte Verwendung der
Texte sowohl einfach zu implementieren ist und nur lineare Vorverarbeitungszeit
in Anzahl der Wörter des Textes hat, als auch es erlaubt einzelne Knoten zu
klassifizieren, wobei der Graph nur lokal um den zu klassifizerenden Knoten
betrachten werden muss.

View file

@ -1,41 +1,41 @@
Bei der Anwendung des in \cite{aggarwal2011} vorgestellten Algorithmus
auf reale Datensätze könnten zwei Probleme auftreten,
die im Folgenden erläutert werden. Außerdem werden Verbesserungen
vorgeschlagen, die es allerdings noch zu untersuchen gilt.
Bei der Anwendung des in \cite{aggarwal2011} vorgestellten Algorithmus auf
reale Datensätze könnten zwei Probleme auftreten, die im Folgenden erläutert
werden. Außerdem werden Verbesserungen vorgeschlagen, die es allerdings noch zu
untersuchen gilt.
\subsection{Anzahl der Knotenbeschriftungen}
So, wie der DYCOS-Algorithmus vorgestellt wurde, können nur Graphen bearbeitet werden,
deren Knoten jeweils höchstens eine Beschriftung haben. In vielen Fällen, wie z.~B.
Wikipedia mit Kategorien als Knotenbeschriftungen haben Knoten jedoch viele Beschriftungen.
So, wie der DYCOS-Algorithmus vorgestellt wurde, können nur Graphen bearbeitet
werden, deren Knoten jeweils höchstens eine Beschriftung haben. In vielen
Fällen, wie z.~B. Wikipedia mit Kategorien als Knotenbeschriftungen haben
Knoten jedoch viele Beschriftungen.
Auf einen ersten Blick ist diese Schwäche einfach zu beheben, indem
man beim zählen der Knotenbeschriftungen für jeden Knoten jedes Beschriftung zählt. Dann
Auf einen ersten Blick ist diese Schwäche einfach zu beheben, indem man beim
zählen der Knotenbeschriftungen für jeden Knoten jedes Beschriftung zählt. Dann
wäre noch die Frage zu klären, mit wie vielen Beschriftungen der betrachtete
Knoten beschriftet werden soll.
Jedoch ist z.~B. bei Wikipedia-Artikeln auf den Knoten eine
Hierarchie definiert. So ist die Kategorie \enquote{Klassifikationsverfahren}
eine Unterkategorie von \enquote{Klassifikation}. Bei dem Kategorisieren
von Artikeln sind möglichst spezifische Kategorien vorzuziehen, also
kann man nicht einfach bei dem Auftreten der Kategorie \enquote{Klassifikationsverfahren}
Jedoch ist z.~B. bei Wikipedia-Artikeln auf den Knoten eine Hierarchie
definiert. So ist die Kategorie \enquote{Klassifikationsverfahren} eine
Unterkategorie von \enquote{Klassifikation}. Bei dem Kategorisieren von
Artikeln sind möglichst spezifische Kategorien vorzuziehen, also kann man nicht
einfach bei dem Auftreten der Kategorie \enquote{Klassifikationsverfahren}
sowohl für diese Kategorie als auch für die Kategorie \enquote{Klassifikation}
zählen.
\subsection{Überanpassung und Reklassifizierung}
Aggarwal und Li beschreiben in \cite{aggarwal2011} nicht, auf welche
Knoten der Klassifizierungsalgorithmus angewendet werden soll. Jedoch
ist die Reihenfolge der Klassifizierung relevant. Dazu folgendes
Minimalbeispiel:
Aggarwal und Li beschreiben in \cite{aggarwal2011} nicht, auf welche Knoten der
Klassifizierungsalgorithmus angewendet werden soll. Jedoch ist die Reihenfolge
der Klassifizierung relevant. Dazu folgendes Minimalbeispiel:
Gegeben sei ein dynamischer Graph ohne textuelle Inhalte. Zum Zeitpunkt
$t=1$ habe dieser Graph genau einen Knoten $v_1$ und $v_1$ sei
mit dem $A$ beschriftet. Zum Zeitpunkt $t=2$ komme ein nicht beschrifteter
Knoten $v_2$ sowie die Kante $(v_2, v_1)$ hinzu.\\
Nun wird der DYCOS-Algorithmus auf diesen Knoten angewendet und
$v_2$ mit $A$ beschriftet.\\
Zum Zeitpunkt $t=3$ komme ein Knoten $v_3$, der mit $B$ beschriftet ist,
und die Kante $(v_2, v_3)$ hinzu.
Gegeben sei ein dynamischer Graph ohne textuelle Inhalte. Zum Zeitpunkt $t=1$
habe dieser Graph genau einen Knoten $v_1$ und $v_1$ sei mit dem $A$
beschriftet. Zum Zeitpunkt $t=2$ komme ein nicht beschrifteter Knoten $v_2$
sowie die Kante $(v_2, v_1)$ hinzu.\\
Nun wird der DYCOS-Algorithmus auf diesen Knoten angewendet und $v_2$ mit $A$
beschriftet.\\
Zum Zeitpunkt $t=3$ komme ein Knoten $v_3$, der mit $B$ beschriftet ist, und
die Kante $(v_2, v_3)$ hinzu.
\begin{figure}[ht]
\centering
@ -60,13 +60,12 @@ und die Kante $(v_2, v_3)$ hinzu.
\caption{Minimalbeispiel für den Einfluss früherer DYCOS-Anwendungen}
\end{figure}
Würde man nun den DYCOS-Algorithmus erst jetzt, also anstelle von
Zeitpunkt $t=2$ zum Zeitpunkt $t=3$ auf den Knoten $v_2$ anwenden, so
würde eine $50\%$-Wahrscheinlichkeit bestehen, dass dieser mit $B$
beschriftet wird. Aber in diesem Beispiel wurde der Knoten schon
zum Zeitpunkt $t=2$ beschriftet. Obwohl es in diesem kleinem Beispiel
noch keine Rolle spielt, wird das Problem klar, wenn man weitere
Knoten einfügt:
Würde man nun den DYCOS-Algorithmus erst jetzt, also anstelle von Zeitpunkt
$t=2$ zum Zeitpunkt $t=3$ auf den Knoten $v_2$ anwenden, so würde eine
$50\%$-Wahrscheinlichkeit bestehen, dass dieser mit $B$ beschriftet wird. Aber
in diesem Beispiel wurde der Knoten schon zum Zeitpunkt $t=2$ beschriftet.
Obwohl es in diesem kleinem Beispiel noch keine Rolle spielt, wird das Problem
klar, wenn man weitere Knoten einfügt:
Wird zum Zeitpunkt $t=4$ ein unbeschrifteter Knoten $v_4$ und die Kanten
$(v_1, v_4)$, $(v_2, v_4)$, $(v_3, v_4)$ hinzugefügt, so ist die
@ -80,5 +79,3 @@ Das Reklassifizieren von Knoten könnte eine mögliche Lösung für dieses
Problem sein. Knoten, die durch den DYCOS-Algorithmus beschriftet wurden
könnten eine Lebenszeit bekommen (TTL, Time to Live). Ist diese
abgelaufen, wird der DYCOS-Algorithmus erneut auf den Knoten angewendet.

View file

@ -1,10 +1,9 @@
\subsection{Sprungtypen}\label{sec:sprungtypen}
Die beiden bereits definierten Sprungtypen, der strukturelle Sprung
sowie der inhaltliche Zweifachsprung werden im folgenden erklärt.
Die beiden bereits definierten Sprungtypen, der strukturelle Sprung sowie der
inhaltliche Zweifachsprung werden im folgenden erklärt.
\goodbreak
Der strukturelle Sprung entspricht einer zufälligen Wahl eines
Nachbarknotens, wie es in \cref{alg:DYCOS-structural-hop}
gezeigt wird.
Der strukturelle Sprung entspricht einer zufälligen Wahl eines Nachbarknotens,
wie es in \cref{alg:DYCOS-structural-hop} gezeigt wird.
\begin{algorithm}[H]
\begin{algorithmic}[1]
\Procedure{SturkturellerSprung}{Knoten $v$, Anzahl $q$}
@ -18,15 +17,13 @@ gezeigt wird.
\label{alg:DYCOS-structural-hop}
\end{algorithm}
Bei inhaltlichen Zweifachsprüngen ist jedoch nicht sinnvoll so strikt
nach der Definition vorzugehen, also
direkt von einem strukturellem Knoten
$v \in V_t$ zu einem mit $v$ verbundenen Wortknoten $w \in W_t$ zu springen
und von diesem wieder zu einem verbundenem strukturellem Knoten
$v' \in V_t$. Würde man dies machen, wäre zu befürchten, dass
aufgrund von Homonymen die Qualität der Klassifizierung verringert
wird. So hat \enquote{Brücke} im Deutschen viele Bedeutungen.
Gemeint sein können z.~B. das Bauwerk, das Entwurfsmuster der
Bei inhaltlichen Zweifachsprüngen ist jedoch nicht sinnvoll so strikt nach der
Definition vorzugehen, also direkt von einem strukturellem Knoten $v \in V_t$
zu einem mit $v$ verbundenen Wortknoten $w \in W_t$ zu springen und von diesem
wieder zu einem verbundenem strukturellem Knoten $v' \in V_t$. Würde man dies
machen, wäre zu befürchten, dass aufgrund von Homonymen die Qualität der
Klassifizierung verringert wird. So hat \enquote{Brücke} im Deutschen viele
Bedeutungen. Gemeint sein können z.~B. das Bauwerk, das Entwurfsmuster der
objektorientierten Programmierung oder ein Teil des Gehirns.
Deshalb wird für jeden Knoten $v$, von dem aus man einen inhaltlichen
@ -34,13 +31,14 @@ Zweifachsprung machen will folgende Textanalyse durchgeführt:
\begin{enumerate}[label=C\arabic*,ref=C\arabic*]
\item \label{step:c1} Gehe alle in $v$ startenden Random Walks der Länge $2$ durch
und erstelle eine Liste $L$ der erreichbaren Knoten $v'$. Speichere
außerdem, durch wie viele Pfade diese Knoten $v'$ jeweils erreichbar sind.
außerdem, durch wie viele Pfade diese Knoten $v'$ jeweils erreichbar
sind.
\item \label{step:c2} Betrachte im folgenden nur die Top-$q$ Knoten bzgl. der
Anzahl der Pfade von $v$ nach $v'$, wobei $q \in \mathbb{N}$
eine zu wählende Konstante des DYCOS-Algorithmus ist.\footnote{Sowohl für den DBLP, als auch für den
CORA-Datensatz wurde in \cite[S. 364]{aggarwal2011} $q=10$ gewählt.}
Diese Knotenmenge heiße im Folgenden $T(v)$ und $p(v, v')$
sei die Anzahl der Pfade von $v$ über einen Wortknoten nach $v'$.
Diese Knotenmenge heiße im Folgenden $T(v)$ und $p(v, v')$ sei die
Anzahl der Pfade von $v$ über einen Wortknoten nach $v'$.
\item \label{step:c3} Wähle mit Wahrscheinlichkeit $\frac{p(v, v')}{\sum_{w \in T(v)} p(v, w)}$
den Knoten $v' \in T(v)$ als Ziel des Zweifachsprungs.
\end{enumerate}
@ -53,27 +51,26 @@ für den DYCOS-Algorithmus zu wählen ist. Dieser Parameter beschränkt
die Anzahl der möglichen Zielknoten $v' \in V_T$ auf diejenigen
$q$ Knoten, die $v$ bzgl. der Textanalyse am ähnlichsten sind.
In \cref{alg:l2} bis \cref{alg:l5} wird \cref{step:c1} durchgeführt
und alle erreichbaren Knoten in $reachableNodes$ mit der Anzahl
der Pfade, durch die sie erreicht werden können, gespeichert.
In \cref{alg:l2} bis \cref{alg:l5} wird \cref{step:c1} durchgeführt und alle
erreichbaren Knoten in $reachableNodes$ mit der Anzahl der Pfade, durch die sie
erreicht werden können, gespeichert.
In \cref{alg:l6} wird \cref{step:c2} durchgeführt.
Ab hier gilt
In \cref{alg:l6} wird \cref{step:c2} durchgeführt. Ab hier gilt
\[ |T| = \begin{cases}q &\text{falls } |reachableNodes|\geq q\\
|reachableNodes| &\text{sonst }\end{cases}\]
Bei der Wahl der Datenstruktur von $T$ ist zu beachten, dass man in
\cref{alg:21} über Indizes auf Elemente aus $T$ zugreifen können muss.
In \cref{alg:l8} bis \ref{alg:l13} wird ein assoziatives Array erstellt,
das von $v' \in T(v)$ auf die relative
Häufigkeit bzgl. aller Pfade von $v$ zu Knoten aus den Top-$q$ abbildet.
In \cref{alg:l8} bis \ref{alg:l13} wird ein assoziatives Array erstellt, das
von $v' \in T(v)$ auf die relative Häufigkeit bzgl. aller Pfade von $v$ zu
Knoten aus den Top-$q$ abbildet.
In allen folgenden Zeilen wird \cref{step:c3} durchgeführt.
In \cref{alg:15} bis \cref{alg:22} wird ein Knoten $v' \in T(v)$ mit
einer Wahrscheinlichkeit, die seiner relativen Häufigkeit am Anteil
der Pfaden der Länge 2 von $v$ nach $v'$ über einen beliebigen
Wortknoten entspricht ausgewählt und schließlich zurückgegeben.
In allen folgenden Zeilen wird \cref{step:c3} durchgeführt. In \cref{alg:15}
bis \cref{alg:22} wird ein Knoten $v' \in T(v)$ mit einer Wahrscheinlichkeit,
die seiner relativen Häufigkeit am Anteil der Pfaden der Länge 2 von $v$ nach
$v'$ über einen beliebigen Wortknoten entspricht ausgewählt und schließlich
zurückgegeben.
\begin{algorithm}
\caption{Inhaltlicher Zweifachsprung}

View file

@ -3,15 +3,15 @@ Da die Größe des Vokabulars die Datenmenge signifikant beeinflusst,
liegt es in unserem Interesse so wenig Wörter wie möglich ins
Vokabular aufzunehmen. Insbesondere sind Wörter nicht von Interesse,
die in fast allen Texten vorkommen, wie im Deutschen z.~B.
\enquote{und}, \enquote{mit} und die Pronomen. Es ist wünschenswert
Wörter zu wählen, die die Texte möglichst stark voneinander Unterscheiden.
Der DYCOS-Algorithmus wählt die Top-$m$ dieser Wörter als Vokabular,
wobei $m \in \mathbb{N}$ eine Festzulegende Konstante ist. In \cite[S. 365]{aggarwal2011}
\enquote{und}, \enquote{mit} und die Pronomen. Es ist wünschenswert Wörter zu
wählen, die die Texte möglichst stark voneinander Unterscheiden. Der DYCOS-
Algorithmus wählt die Top-$m$ dieser Wörter als Vokabular, wobei $m \in
\mathbb{N}$ eine Festzulegende Konstante ist. In \cite[S. 365]{aggarwal2011}
wird der Einfluss von $m \in \Set{5,10, 15,20}$ auf die Klassifikationsgüte
untersucht und festgestellt, dass die Klassifikationsgüte mit größerem
$m$ sinkt, sie also für $m=5$ für den DBLP-Datensatz am höchsten ist.
Für den CORA-Datensatz wurde mit $m \in \set{3,4,5,6}$ getestet und
kein signifikanter Unterschied festgestellt.
untersucht und festgestellt, dass die Klassifikationsgüte mit größerem $m$
sinkt, sie also für $m=5$ für den DBLP-Datensatz am höchsten ist. Für den CORA-
Datensatz wurde mit $m \in \set{3,4,5,6}$ getestet und kein signifikanter
Unterschied festgestellt.
Nun kann man manuell eine Liste von zu beachtenden Wörtern erstellen
oder mit Hilfe des Gini-Koeffizienten automatisch ein Vokabular erstellen.
@ -19,32 +19,31 @@ Der Gini-Koeffizient ist ein statistisches Maß, das die Ungleichverteilung
bewertet. Er ist immer im Intervall $[0,1]$, wobei $0$ einer
Gleichverteilung entspricht und $1$ der größtmöglichen Ungleichverteilung.
Sei nun $n_i(w)$ die Häufigkeit des Wortes $w$ in allen Texten mit
der $i$-ten Knotenbeschriftung.
Sei nun $n_i(w)$ die Häufigkeit des Wortes $w$ in allen Texten mit der $i$-ten
Knotenbeschriftung.
\begin{align}
p_i(w) &:= \frac{n_i(w)}{\sum_{j=1}^{|\L_t|} n_j(w)} &\text{(Relative Häufigkeit des Wortes $w$)}\\
G(w) &:= \sum_{j=1}^{|\L_t|} p_j(w)^2 &\text{(Gini-Koeffizient von $w$)}
\end{align}
In diesem Fall ist $G(w)=0$ nicht möglich, da zur Vokabularbestimmung
nur Wörter betrachtet werden, die auch vorkommen.
In diesem Fall ist $G(w)=0$ nicht möglich, da zur Vokabularbestimmung nur
Wörter betrachtet werden, die auch vorkommen.
Ein Vorschlag, wie die Vokabularbestimmung implementiert werden kann,
ist als Pseudocode mit \cref{alg:vokabularbestimmung}
gegeben. In \cref{alg4:l6} wird eine Teilmenge $S_t \subseteq V_{L,t}$
zum Generieren des Vokabulars gewählt. In \cref{alg4:l8} wird ein Array $cLabelWords$ erstellt, das $(|\L_t|+1)$ Felder hat.
Die Elemente dieser Felder sind jeweils assoziative Arrays, deren
Schlüssel Wörter und deren Werte natürliche Zahlen sind. Die ersten
$|\L_t|$ Elemente von $cLabelWords$ dienem dem Zählen der Häufigkeit
der Wörter von Texten aus $S_t$, wobei für jede Beschriftung die
Häufigkeit einzeln gezählt wird. Das letzte Element aus $cLabelWords$
zählt die Summe der Wörter. Diese Datenstruktur wird in
\cref{alg4:l10} bis \ref{alg4:l12} gefüllt.
Ein Vorschlag, wie die Vokabularbestimmung implementiert werden kann, ist als
Pseudocode mit \cref{alg:vokabularbestimmung} gegeben. In \cref{alg4:l6} wird
eine Teilmenge $S_t \subseteq V_{L,t}$ zum Generieren des Vokabulars gewählt.
In \cref{alg4:l8} wird ein Array $cLabelWords$ erstellt, das $(|\L_t|+1)$
Felder hat. Die Elemente dieser Felder sind jeweils assoziative Arrays, deren
Schlüssel Wörter und deren Werte natürliche Zahlen sind. Die ersten $|\L_t|$
Elemente von $cLabelWords$ dienem dem Zählen der Häufigkeit der Wörter von
Texten aus $S_t$, wobei für jede Beschriftung die Häufigkeit einzeln gezählt
wird. Das letzte Element aus $cLabelWords$ zählt die Summe der Wörter. Diese
Datenstruktur wird in \cref{alg4:l10} bis \ref{alg4:l12} gefüllt.
In \cref{alg4:l17} bis \ref{alg4:l19} wird die relative Häufigkeit
der Wörter bzgl. der Beschriftungen bestimmt. Daraus wird in
\cref{alg4:l20} bis \ref{alg4:l22} der Gini-Koeffizient berechnet.
Schließlich werden in \cref{alg4:l23} bis \ref{alg4:l24} die Top-$q$
Wörter mit den höchsten Gini-Koeffizienten zurückgegeben.
In \cref{alg4:l17} bis \ref{alg4:l19} wird die relative Häufigkeit der Wörter
bzgl. der Beschriftungen bestimmt. Daraus wird in \cref{alg4:l20} bis
\ref{alg4:l22} der Gini-Koeffizient berechnet. Schließlich werden in
\cref{alg4:l23} bis \ref{alg4:l24} die Top-$q$ Wörter mit den höchsten Gini-
Koeffizienten zurückgegeben.
\begin{algorithm}[ht]
\begin{algorithmic}[1]
@ -85,6 +84,5 @@ Wörter mit den höchsten Gini-Koeffizienten zurückgegeben.
\label{alg:vokabularbestimmung}
\end{algorithm}
Die Menge $S_t$ kann aus der Menge aller Dokumente, deren
Knoten beschriftet sind, mithilfe des in \cite{Vitter} vorgestellten
Algorithmus bestimmt werden.
Die Menge $S_t$ kann aus der Menge aller Dokumente, deren Knoten beschriftet
sind, mithilfe des in \cite{Vitter} vorgestellten Algorithmus bestimmt werden.

View file

@ -1,15 +1,15 @@
In dieser Arbeit wird der DYCOS-Algorithmus, wie er in \cite{aggarwal2011} vorgestellt wurde, erklärt.
Er arbeitet auf Graphen, deren Knoten teilweise mit
Beschriftungen versehen sind und ergänzt automatisch Beschriftungen
für Knoten, die bisher noch keine Beschriftung haben. Dieser Vorgang
wird \enquote{Klassifizierung} genannt. Dazu verwendet er die
Struktur des Graphen sowie textuelle Informationen, die den Knoten
zugeordnet sind. Die in \cite{aggarwal2011} beschriebene experimentelle
Analyse ergab, dass er auch auf dynamischen Graphen mit $\num{19396}$
bzw. $\num{806635}$ Knoten, von denen nur $\num{14814}$ bzw. $\num{18999}$
beschriftet waren, innerhalb von weniger als einer Minute auf einem
Kern einer Intel Xeon 2.5GHz CPU mit 32G RAM ausgeführt werden kann.\\
Zusätzlich wird \cite{aggarwal2011} kritisch Erörtert und
und es werden mögliche Erweiterungen des DYCOS-Algorithmus vorgeschlagen.
In dieser Arbeit wird der DYCOS-Algorithmus, wie er in \cite{aggarwal2011}
vorgestellt wurde, erklärt. Er arbeitet auf Graphen, deren Knoten teilweise mit
Beschriftungen versehen sind und ergänzt automatisch Beschriftungen für Knoten,
die bisher noch keine Beschriftung haben. Dieser Vorgang wird
\enquote{Klassifizierung} genannt. Dazu verwendet er die Struktur des Graphen
sowie textuelle Informationen, die den Knoten zugeordnet sind. Die in
\cite{aggarwal2011} beschriebene experimentelle Analyse ergab, dass er auch auf
dynamischen Graphen mit $\num{19396}$ bzw. $\num{806635}$ Knoten, von denen nur
$\num{14814}$ bzw. $\num{18999}$ beschriftet waren, innerhalb von weniger als
einer Minute auf einem Kern einer Intel Xeon 2.5GHz CPU mit 32G RAM ausgeführt
werden kann.\\
Zusätzlich wird \cite{aggarwal2011} kritisch Erörtert und und es werden
mögliche Erweiterungen des DYCOS-Algorithmus vorgeschlagen.
\textbf{Keywords:} DYCOS, Label Propagation, Knotenklassifizierung

View file

@ -106,7 +106,7 @@
acmid = {3165},
publisher = {ACM},
address = {New York, NY, USA},
}
}
@MASTERSTHESIS{heck,
AUTHOR = {Heck, Michael},
@ -166,7 +166,7 @@ ption. The examples used to illustrate the application are drawn from the proble
acmid = {275705},
publisher = {Morgan Kaufmann Publishers Inc.},
address = {San Francisco, CA, USA},
}
}
@incollection{szummer,
title = {Partially labeled classification with Markov random walks},
@ -280,4 +280,4 @@ keywords = "Feature extraction "
publisher = {ACM},
address = {New York, NY, USA},
keywords = {idf, term weighting, text classification},
}
}

View file

@ -4,15 +4,12 @@
group-separator={\,},
}
%\def\edges{\ensuremath{\mathcal{E}_t}}
%\def\nodes{\ensuremath{\mathcal{N}_t}}
%\def\labeledNodes{\ensuremath{\mathcal{T}_t}}
\DeclareUnicodeCharacter{00A0}{~}
\theoremstyle{definition}
\theoremindent20pt
\theoremindent20pt
\theoremheaderfont{\normalfont\bfseries\hspace{-\theoremindent}}
\renewtheorem{definition}{Definition}
\newtheorem{definition}{Definition}
\def\L{\ensuremath{\mathcal{L}}}
\def\T{\ensuremath{\mathcal{T}}}

View file

@ -7,19 +7,17 @@ nicht überprüft werden:
\begin{itemize}
\item Der Parameter $a \in \mathbb{N}$, der die Anzahl der ausgehenden Kanten
aller Wortknoten beschränkt, wird erst mit der Experimentellen
Analyse auf S.~362 eingeführt.
Es ist nicht klar, wie entschieden wird welche Kanten
gespeichert werden und welche nicht.
Analyse auf S.~362 eingeführt. Es ist nicht klar, wie entschieden
wird welche Kanten gespeichert werden und welche nicht.
\item Für die Analyse der CORA-Datensatzes analysiert.
Dieser beinhaltet Forschungsarbeiten, wobei die
Forschungsgebiete die in einen Baum mit 73 Blättern
eingeordnet wurden. Aus diesen 73 Blättern wurden 5 Klassen
extrahiert und der Graph, der keine Zeitpunkte beinhaltet,
künstlich in 10 Graphen mit Zeitpunkten unterteilt. Wie
jedoch diese Unterteilung genau durchgeführt wurde kann nicht
nachvollzogen werden.
\item Der auf S. 360 in \enquote{Algorithm 1} vorgestellte
Pseudocode soll den DYCOS-Algorithmus darstellen. Allerdings
werden die bereits klassifizierten Knoten $\T_t$ neu klassifiziert
und mit $\theta$ die Klassifikationsgüte gemessen.
Dieser beinhaltet Forschungsarbeiten, wobei die Forschungsgebiete die
in einen Baum mit 73 Blättern eingeordnet wurden. Aus diesen 73
Blättern wurden 5 Klassen extrahiert und der Graph, der keine
Zeitpunkte beinhaltet, künstlich in 10 Graphen mit Zeitpunkten
unterteilt. Wie jedoch diese Unterteilung genau durchgeführt wurde
kann nicht nachvollzogen werden.
\item Der auf S. 360 in \enquote{Algorithm 1} vorgestellte Pseudocode soll
den DYCOS-Algorithmus darstellen. Allerdings werden die bereits
klassifizierten Knoten $\T_t$ neu klassifiziert und mit $\theta$ die
Klassifikationsgüte gemessen.
\end{itemize}