From f02d9ab8730dec80a2cd1d8bdf2be397c5358dc8 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Mon, 23 Nov 2015 07:07:00 +0100 Subject: [PATCH] Add line breaks --- .../Proseminar-Netzwerkanalyse/Analyse.tex | 23 ++-- .../Proseminar-Netzwerkanalyse/Ausblick.tex | 42 +++---- .../DYCOS-Algorithmus.tex | 119 ++++++++---------- .../Proseminar-Netzwerkanalyse/Einleitung.tex | 63 +++++----- documents/Proseminar-Netzwerkanalyse/Makefile | 16 +-- .../Proseminar-Netzwerkanalyse/README.md | 4 +- .../Related-Work.tex | 43 ++++--- .../SchwaechenVerbesserungen.tex | 67 +++++----- .../Sprungtypen.tex | 57 ++++----- .../Vokabularbestimmung.tex | 60 +++++---- .../Proseminar-Netzwerkanalyse/abstract.tex | 26 ++-- .../Proseminar-Netzwerkanalyse/literatur.bib | 6 +- .../Proseminar-Netzwerkanalyse/mystyle.sty | 7 +- .../schwaechenPaper.tex | 26 ++-- 14 files changed, 265 insertions(+), 294 deletions(-) diff --git a/documents/Proseminar-Netzwerkanalyse/Analyse.tex b/documents/Proseminar-Netzwerkanalyse/Analyse.tex index 8b0975c..1c6d346 100644 --- a/documents/Proseminar-Netzwerkanalyse/Analyse.tex +++ b/documents/Proseminar-Netzwerkanalyse/Analyse.tex @@ -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. - - diff --git a/documents/Proseminar-Netzwerkanalyse/Ausblick.tex b/documents/Proseminar-Netzwerkanalyse/Ausblick.tex index 677560a..4931f79 100644 --- a/documents/Proseminar-Netzwerkanalyse/Ausblick.tex +++ b/documents/Proseminar-Netzwerkanalyse/Ausblick.tex @@ -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. diff --git a/documents/Proseminar-Netzwerkanalyse/DYCOS-Algorithmus.tex b/documents/Proseminar-Netzwerkanalyse/DYCOS-Algorithmus.tex index b8ae90a..bf93cc5 100644 --- a/documents/Proseminar-Netzwerkanalyse/DYCOS-Algorithmus.tex +++ b/documents/Proseminar-Netzwerkanalyse/DYCOS-Algorithmus.tex @@ -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, diff --git a/documents/Proseminar-Netzwerkanalyse/Einleitung.tex b/documents/Proseminar-Netzwerkanalyse/Einleitung.tex index a102226..30d26b2 100644 --- a/documents/Proseminar-Netzwerkanalyse/Einleitung.tex +++ b/documents/Proseminar-Netzwerkanalyse/Einleitung.tex @@ -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. diff --git a/documents/Proseminar-Netzwerkanalyse/Makefile b/documents/Proseminar-Netzwerkanalyse/Makefile index 45678e8..7e5960c 100644 --- a/documents/Proseminar-Netzwerkanalyse/Makefile +++ b/documents/Proseminar-Netzwerkanalyse/Makefile @@ -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 diff --git a/documents/Proseminar-Netzwerkanalyse/README.md b/documents/Proseminar-Netzwerkanalyse/README.md index e45985e..3a60ead 100644 --- a/documents/Proseminar-Netzwerkanalyse/README.md +++ b/documents/Proseminar-Netzwerkanalyse/README.md @@ -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). diff --git a/documents/Proseminar-Netzwerkanalyse/Related-Work.tex b/documents/Proseminar-Netzwerkanalyse/Related-Work.tex index 34a38c3..86d5a0c 100644 --- a/documents/Proseminar-Netzwerkanalyse/Related-Work.tex +++ b/documents/Proseminar-Netzwerkanalyse/Related-Work.tex @@ -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. \ No newline at end of file +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. diff --git a/documents/Proseminar-Netzwerkanalyse/SchwaechenVerbesserungen.tex b/documents/Proseminar-Netzwerkanalyse/SchwaechenVerbesserungen.tex index 7c5c495..65ea2a7 100644 --- a/documents/Proseminar-Netzwerkanalyse/SchwaechenVerbesserungen.tex +++ b/documents/Proseminar-Netzwerkanalyse/SchwaechenVerbesserungen.tex @@ -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. - - diff --git a/documents/Proseminar-Netzwerkanalyse/Sprungtypen.tex b/documents/Proseminar-Netzwerkanalyse/Sprungtypen.tex index 2bafbd1..52785c3 100644 --- a/documents/Proseminar-Netzwerkanalyse/Sprungtypen.tex +++ b/documents/Proseminar-Netzwerkanalyse/Sprungtypen.tex @@ -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} diff --git a/documents/Proseminar-Netzwerkanalyse/Vokabularbestimmung.tex b/documents/Proseminar-Netzwerkanalyse/Vokabularbestimmung.tex index facf836..ed038a1 100644 --- a/documents/Proseminar-Netzwerkanalyse/Vokabularbestimmung.tex +++ b/documents/Proseminar-Netzwerkanalyse/Vokabularbestimmung.tex @@ -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. diff --git a/documents/Proseminar-Netzwerkanalyse/abstract.tex b/documents/Proseminar-Netzwerkanalyse/abstract.tex index 644e80f..2686ff9 100644 --- a/documents/Proseminar-Netzwerkanalyse/abstract.tex +++ b/documents/Proseminar-Netzwerkanalyse/abstract.tex @@ -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 diff --git a/documents/Proseminar-Netzwerkanalyse/literatur.bib b/documents/Proseminar-Netzwerkanalyse/literatur.bib index f3a0042..79e6000 100644 --- a/documents/Proseminar-Netzwerkanalyse/literatur.bib +++ b/documents/Proseminar-Netzwerkanalyse/literatur.bib @@ -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}, -} +} diff --git a/documents/Proseminar-Netzwerkanalyse/mystyle.sty b/documents/Proseminar-Netzwerkanalyse/mystyle.sty index bfd5c8c..9834d72 100644 --- a/documents/Proseminar-Netzwerkanalyse/mystyle.sty +++ b/documents/Proseminar-Netzwerkanalyse/mystyle.sty @@ -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}}} diff --git a/documents/Proseminar-Netzwerkanalyse/schwaechenPaper.tex b/documents/Proseminar-Netzwerkanalyse/schwaechenPaper.tex index 7cc4f7f..1e5ca6b 100644 --- a/documents/Proseminar-Netzwerkanalyse/schwaechenPaper.tex +++ b/documents/Proseminar-Netzwerkanalyse/schwaechenPaper.tex @@ -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}