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

Fix typos, formatting

This commit is contained in:
Martin Thoma 2015-11-23 07:55:38 +01:00
parent f02d9ab873
commit 7e05f83a95
12 changed files with 46 additions and 65 deletions

View file

@ -10,10 +10,10 @@ und des CORA-Datensatzes\footnote{http://people.cs.umass.edu/~mccallum/data/cora
gezeigt (vgl. \cref{tab:datasets}), dass die Klassifikationsgüte nicht wesentlich von der Anzahl der Wörter mit
höchstem Gini-Koeffizient $m$ abhängt. Des Weiteren betrug die Ausführungszeit
auf einem Kern eines Intel Xeon $\SI{2.5}{\GHz}$ Servers mit
$\SI{32}{\giga\byte}$ RAM für den DBLP-Datensatz unter $\SI{25}{\second}$,
$\SI{32}{\giga\byte}$~RAM für den DBLP-Datensatz unter $\SI{25}{\second}$,
für den CORA-Datensatz sogar unter $\SI{5}{\second}$. Dabei wurde eine
für CORA eine Klassifikationsgüte von 82\% - 84\% und auf den DBLP-Daten
von 61\% - 66\% erreicht.
für CORA eine Klassifikationsgüte von \SIrange{82}{84}{\percent} und
auf den DBLP-Daten von \SIrange{61}{66}{\percent} erreicht.
\begin{table}[htp]
\centering
@ -22,7 +22,7 @@ von 61\% - 66\% erreicht.
\textbf{CORA} & \num{19396} & \num{14814} & \num{75021} & 5 \\
\textbf{DBLP} & \num{806635} & \num{18999 } & \num{4414135} & 5 \\\hline
\end{tabular}
\caption{Datensätze, die für die experimentelle analyse benutzt wurden}
\caption{Datensätze, die für die experimentelle Analyse benutzt wurden}
\label{tab:datasets}
\end{table}

View file

@ -30,6 +30,7 @@
\allowdisplaybreaks
\usetikzlibrary{backgrounds}
\usepackage[binary-units=true]{siunitx}
\sisetup{range-phrase=--}
\usepackage{mystyle}
\usepackage{microtype}

View file

@ -6,7 +6,7 @@ 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
diese noch sehr einfach gestrickt und ignoriert die Reihenfolge von Wörtern
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

View file

@ -134,7 +134,7 @@ einer Wahrscheinlichkeit von $p_S$ ein struktureller Sprung durchgeführt wird.
\State $M_H \gets \Call{max}{d}$
\EndIf
\\
\State \textit{//Wähle aus der Menge der häufigsten Beschriftungen $M_H$ zufällig eine aus}
\State \Comment{Wähle aus der Menge der häufigsten Beschriftungen $M_H$ zufällig eine aus}
\State $label \gets \Call{Random}{M_H}$
\State $v.\Call{AddLabel}{label}$ \Comment{und weise dieses $v$ zu}
\EndFor

View file

@ -1,5 +1,5 @@
Im Folgenden werden in \cref{sec:Motivation} einge Beispiele, in denen
der DYCOS-Algorithmus anwendung finden könnte, dargelegt. In
Im Folgenden werden in \cref{sec:Motivation} einige 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.

View file

@ -1,6 +1,6 @@
%!TEX root = Ausarbeitung-Thoma.tex
Sowohl das Problem der Knotenklassifikation, als auch das der
Textklassifikation, wurde bereits in verschiedenen Kontexten. Jedoch scheien
Textklassifikation, wurde bereits in verschiedenen Kontexten. Jedoch scheinen
bisher entweder nur die Struktur des zugrundeliegenden Graphen oder nur
Eigenschaften der Texte verwendet worden zu sein.
@ -16,14 +16,15 @@ 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
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
dabei darauf hinzuweisen, dass die im Folgenden 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
klassifizieren, wobei der Graph nur lokal um den zu klassifizierenden Knoten
betrachten werden muss.

View file

@ -35,7 +35,7 @@ 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.
die Kante $(v_2, v_3)$ hinzu. \Cref{fig:Formen} visualisiert diesen Vorgang.
\begin{figure}[ht]
\centering
@ -56,16 +56,16 @@ die Kante $(v_2, v_3)$ hinzu.
\input{figures/graph-t4.tex}
\label{fig:graph-t4}
}%
\label{Formen}
\caption{Minimalbeispiel für den Einfluss früherer DYCOS-Anwendungen}
\label{fig:Formen}
\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:
\SI{50}{\percent}-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

View file

@ -1,6 +1,6 @@
\subsection{Sprungtypen}\label{sec:sprungtypen}
Die beiden bereits definierten Sprungtypen, der strukturelle Sprung sowie der
inhaltliche Zweifachsprung werden im folgenden erklärt.
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.
@ -20,27 +20,28 @@ wie es in \cref{alg:DYCOS-structural-hop} gezeigt wird.
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
wieder zu einem verbundenem strukturellem Knoten $v' \in V_t$. Würde dies
gemacht werden, 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
Zweifachsprung machen will folgende Textanalyse durchgeführt:
Deshalb wird für jeden Knoten $v$, von dem aus ein inhaltlicher
Zweifachsprung gemacht werden soll 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.
\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}$
\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'$.
\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.
\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}
Konkret könnte also ein inhaltlicher Zweifachsprung sowie wie in

View file

@ -4,9 +4,9 @@ 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}
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-
@ -34,7 +34,7 @@ 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
Elemente von $cLabelWords$ dienen 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.
@ -53,15 +53,16 @@ Koeffizienten zurückgegeben.
$f:V_{L,t} \rightarrow \L_t$ (Beschriftungsfunktion),\\
$m$ (Gewünschte Vokabulargröße)
\Ensure $\M_t$ (Vokabular)\\
\State $S_t \gets \Call{Sample}{V_{L,t}}$\label{alg4:l6} \Comment{Wähle eine Teilmenge $S_t \subseteq V_{L,t}$ aus}
\State $S_t \gets \Call{Sample}{V_{L,t}}$\label{alg4:l6} \Comment{Wähle $S_t \subseteq V_{L,t}$ aus}
\State $\M_t \gets \emptyset$ \Comment{Menge aller Wörter}
\State $cLabelWords \gets$ Array aus $(|\L_t|+1)$ assoziativen Arrays\label{alg4:l8}
\ForAll{$v \in S_t$} \label{alg4:l10}\Comment{Gehe jeden Text Wort für Wort durch}
\ForAll{$v \in S_t$} \label{alg4:l10}
\State $i \gets \Call{getLabel}{v}$
\ForAll{$(word, haeufigkeit) \in \Call{getTextAsMultiset}{v}$}
\State $cLabelWords[i][word] \gets cLabelWords[i][word] + haeufigkeit$
\State $cLabelWords[|\L_t|][word] \gets cLabelWords[i][|\L_t|] + haeufigkeit$
\State $\M_t = \M_t \cup \Set{word}$
\State \Comment{$w$ ist das Wort, $c$ ist die Häufigkeit}
\ForAll{$(w, c) \in \Call{getTextAsMultiset}{v}$}
\State $cLabelWords[i][w] \gets cLabelWords[i][w] + c$
\State $cLabelWords[|\L_t|][w] \gets cLabelWords[i][|\L_t|] + c$
\State $\M_t = \M_t \cup \Set{w}$
\EndFor
\EndFor\label{alg4:l12}
\\

View file

@ -5,10 +5,10 @@ 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.\\
dynamischen Graphen mit 19\,396 bzw. 806\,635 Knoten, von denen nur
14\,814 bzw. 18\,999 beschriftet waren, innerhalb von weniger als
einer Minute auf einem Kern einer Intel Xeon 2.5\,GHz~CPU mit 32\,G~RAM
ausgeführt werden kann.\\
Zusätzlich wird \cite{aggarwal2011} kritisch Erörtert und und es werden
mögliche Erweiterungen des DYCOS-Algorithmus vorgeschlagen.

View file

@ -1,23 +0,0 @@
\subsection{Schwächen des Papers}
In \cite{aggarwal2011} wurde eine experimentelle Analyse mithilfe
des DBLP-Datensatzes\footnote{http://dblp.uni-trier.de/} und des
CORA-Datensatzes\footnote{\href{http://people.cs.umass.edu/~mccallum/data/cora-classify.tar.gz}{http://people.cs.umass.edu/~mccallum/data/cora-classify.tar.gz}} durchgeführt.
Die Ergebnisse dieser Analyse können aus folgenden Gründen
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.
\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.
\end{itemize}