mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-24 22:08:04 +02:00
almost 5 pages
This commit is contained in:
parent
42d7ba22d3
commit
5e142116aa
9 changed files with 142 additions and 22 deletions
|
@ -1,5 +1,8 @@
|
||||||
Es gibt viele Knotenklassifizierungsalgorithmen. Im folgenden
|
Der in diesem Artikel vorgestellte DYCOS-Algorithmus wurde 2011 von
|
||||||
werden einige von Ihnen mit dem DYCOS-Algorithmus verglichen und
|
Charu~C. Aggarwal und Nan~Li in \cite{aggarwal2011} vorgestellt.
|
||||||
unterschiedliche Eigenschaften der Algorithmen hervorgehoben.
|
Es gibt jedoch viele Klassifizierungsalgorithmen, die ähnliche Ideen
|
||||||
|
nutzen. Einige dieser Algorithmen werden im Folgenden kurz vorgestellt
|
||||||
|
und Probleme, die der DYCOS-Algorithmus behebt, erläutert.
|
||||||
|
|
||||||
Der MUCCA-Algorithmus aus \cite{zappella} sei der erste.
|
Der MUCCA-Algorithmus aus \cite{zappella} sei der erste. Dieser
|
||||||
|
arbeitet auf gewichteten Graphen, im Gegensatz zu DYCOS.
|
||||||
|
|
|
@ -1,5 +1,93 @@
|
||||||
\subsection{Notation}
|
DYCOS (\underline{DY}namic \underline{C}lassification
|
||||||
\input{Notation}
|
algorithm with c\underline{O}ntent and \underline{S}tructure) ist ein
|
||||||
|
Knotenklassifizierungsalgorithmus, der Ursprünglich in \cite{aggarwal2011} vorgestellt
|
||||||
|
wurde.
|
||||||
|
|
||||||
\subsection{Inhalte}
|
Sie im Folgenden die Notation wie in Definition~\ref{def:Knotenklassifizierungsproblem}.
|
||||||
\input{Inhalte}
|
|
||||||
|
Der DYCOS-Algorithmus betrachtet Texte als eine Menge von Wörter,
|
||||||
|
die Reihenfolge der Wörter im Text spielt also keine Rolle. Außerdem
|
||||||
|
werden nicht alle Wörter benutzt, sondern nur solche die auch in
|
||||||
|
einem festgelegtem Vokabular vorkommen. Wie dieses Vokabular bestimmt
|
||||||
|
werden kann, wird in Abschnitt~\ref{sec:vokabularbestimmung} erklärt.
|
||||||
|
|
||||||
|
Zusätzlich zu dem Netzwerk verwalltet der DYCOS-Algorithmus für jeden
|
||||||
|
Knoten eine Liste von Wörtern. Diese Wörter stammen aus den Texten,
|
||||||
|
die dem Knoten zugeordnet sind.
|
||||||
|
|
||||||
|
Für jedes Wort des Vokabulars wird eine Liste von Knoten verwaltet,
|
||||||
|
in deren Texten das Wort vorkommt.
|
||||||
|
|
||||||
|
Ein $l$-Sprung ist ein ein Random Walk, bei dem $l$
|
||||||
|
Knoten besucht werden, die nicht verschieden sein müssen. Ein
|
||||||
|
$l$-Sprung heißt strukturell, wenn er ausschließlich die Kanten
|
||||||
|
des Netzwerks für jeden der $l$ Schritte benutzt.
|
||||||
|
|
||||||
|
Ein $l$-Sprung heißt inhaltlich, wenn er die Wörter benutzt.
|
||||||
|
|
||||||
|
\begin{algorithm}[h]
|
||||||
|
\begin{algorithmic}
|
||||||
|
\Require \\$\G_t = (\N_t, \A_t, \T_t)$ (Netzwerk),\\
|
||||||
|
$r$ (Anzahl der Random Walks),\\
|
||||||
|
$l$ (Länge eines Random Walks),\\
|
||||||
|
$p_s$ (Wahrscheinlichkeit eines strukturellen Sprungs)
|
||||||
|
\Ensure Klassifikation von $\N_t \setminus \T_t$\\
|
||||||
|
|
||||||
|
\ForAll{Knoten $v$ in $\N_t \setminus \T_t$}
|
||||||
|
\For{$i$ von $1$ bis $l$}
|
||||||
|
\State $sprungTyp \gets \Call{random}{0.0, 1.0}$
|
||||||
|
\If{$sprungTyp \leq p_s$}
|
||||||
|
\State Strukturellen $l$-Sprung ausführen
|
||||||
|
\Else
|
||||||
|
\State Inhaltlichen $l$-Sprung ausführen
|
||||||
|
\EndIf
|
||||||
|
\EndFor
|
||||||
|
\EndFor
|
||||||
|
\State \Return Labels für $\N_t \setminus \T_t$
|
||||||
|
\end{algorithmic}
|
||||||
|
\caption{DYCOS-Algorithmus}
|
||||||
|
\label{alg:DYCOS}
|
||||||
|
\end{algorithm}
|
||||||
|
|
||||||
|
\subsection{Vokabularbestimmung}\label{sec:vokabularbestimmung}
|
||||||
|
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.
|
||||||
|
|
||||||
|
Nun kann man manuell eine Liste von zu beachtenden Wörtern erstellen
|
||||||
|
oder mit Hilfe des Gini-Koeffizienten automatisch ein Vokabular erstellen.
|
||||||
|
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ößt möglichen Ungleichverteilung.
|
||||||
|
|
||||||
|
Sei nun $n_i(w)$ die Häufigkeit des Wortes $w$ in allen Texten mit
|
||||||
|
dem $i$-ten Label.
|
||||||
|
\todo{darf ich hier im Nenner 1 addieren?}
|
||||||
|
\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.
|
||||||
|
|
||||||
|
\begin{algorithm}[h]
|
||||||
|
\begin{algorithmic}
|
||||||
|
\Require \\
|
||||||
|
$\T_t$ (Knoten mit Labels),\\
|
||||||
|
$\L_t$ (Labels),\\
|
||||||
|
$f:\T_t \rightarrow \L_t$ (Label-Funktion),\\
|
||||||
|
$m$ (Gewünschte Vokabulargröße)
|
||||||
|
\Ensure $\M_t$ (Vokabular)\\
|
||||||
|
|
||||||
|
\State $S_t \gets \Call{Sample}{\T_t}$ \Comment{Wähle eine Teilmenge $S_t \subseteq \T_t$ aus}
|
||||||
|
\State $\M_t \gets \bigcup_{v \in S_t} \Call{getText}{v}$
|
||||||
|
\ForAll{Wort $w \in \M_t$}
|
||||||
|
\State $w$.gini $\gets$
|
||||||
|
\EndFor
|
||||||
|
\State \Return $\M_t$
|
||||||
|
\end{algorithmic}
|
||||||
|
\caption{Vokabularbestimmung}
|
||||||
|
\label{alg:vokabularbestimmung}
|
||||||
|
\end{algorithm}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
\documentclass[runningheads]{llncs}
|
\documentclass[runningheads]{llncs}
|
||||||
|
|
||||||
%---- Sonderzeichen-------%
|
%---- Sonderzeichen-------%
|
||||||
\usepackage {ngerman}
|
\usepackage[utf8]{inputenc} % this is needed for umlauts
|
||||||
|
\usepackage[ngerman]{babel} % this is needed for umlauts
|
||||||
|
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
|
||||||
%---- Codierung----%
|
%---- Codierung----%
|
||||||
\usepackage[utf8]{inputenc} % for Unix and Windows
|
|
||||||
\usepackage[T1]{fontenc}
|
|
||||||
\usepackage{graphicx}
|
\usepackage{graphicx}
|
||||||
\usepackage{url}
|
\usepackage{url}
|
||||||
\usepackage{llncsdoc}
|
\usepackage{llncsdoc}
|
||||||
|
@ -20,13 +20,16 @@
|
||||||
\usepackage{cite}
|
\usepackage{cite}
|
||||||
\usepackage{parskip}
|
\usepackage{parskip}
|
||||||
\usepackage[framed,amsmath,thmmarks,hyperref]{ntheorem}
|
\usepackage[framed,amsmath,thmmarks,hyperref]{ntheorem}
|
||||||
|
\usepackage{algorithm,algpseudocode}
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\usepackage[colorinlistoftodos]{todonotes}
|
||||||
\usepackage{mystyle}
|
\usepackage{mystyle}
|
||||||
|
|
||||||
\setcounter{tocdepth}{3}
|
\setcounter{tocdepth}{3}
|
||||||
\setcounter{secnumdepth}{3}
|
\setcounter{secnumdepth}{3}
|
||||||
|
|
||||||
\hypersetup{
|
\hypersetup{
|
||||||
pdftitle = {"Uber die Klassifizierung von Knoten in dynamischen Netzwerken mit Inhalt},
|
pdftitle = {\"Uber die Klassifizierung von Knoten in dynamischen Netzwerken mit Inhalt},
|
||||||
pdfauthor = {Martin Thoma},
|
pdfauthor = {Martin Thoma},
|
||||||
pdfkeywords = {DYCOS}
|
pdfkeywords = {DYCOS}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,8 @@ Das Knotenklassifierungsproblem sei wie folgt definiert:\\
|
||||||
\begin{definition}[Knotenklassifierungsproblem]\label{def:Knotenklassifizierungsproblem}
|
\begin{definition}[Knotenklassifierungsproblem]\label{def:Knotenklassifizierungsproblem}
|
||||||
Sei $\G_t = (\N_t, \A_t, \T_t)$ ein Netzwerk,
|
Sei $\G_t = (\N_t, \A_t, \T_t)$ ein Netzwerk,
|
||||||
wobei $\N_t$ die Menge aller Knoten,
|
wobei $\N_t$ die Menge aller Knoten,
|
||||||
$\A_t$ die Kantenmenge und $\T_t \subseteq \N_t$ die Menge Knoten mit Labels
|
$\A_t$ die Kantenmenge und $\T_t \subseteq \N_t$ die Menge der
|
||||||
jeweils zum Zeitpunkt $t$ bezeichne.
|
gelabelten Knoten jeweils zum Zeitpunkt $t$ bezeichne.
|
||||||
Außerdem sei $\L_t$ die Menge aller zum Zeitpunkt $t$ vergebenen
|
Außerdem sei $\L_t$ die Menge aller zum Zeitpunkt $t$ vergebenen
|
||||||
Labels und $f:\T_t \rightarrow \L_t$ die Funktion, die einen
|
Labels und $f:\T_t \rightarrow \L_t$ die Funktion, die einen
|
||||||
Knoten auf sein Label abbildet.
|
Knoten auf sein Label abbildet.
|
||||||
|
@ -34,9 +34,8 @@ textuelle Inhalte, die Knoten zugeornet werden.
|
||||||
Die beispielhaft aufgeführen Netzwerke sind viele
|
Die beispielhaft aufgeführen Netzwerke sind viele
|
||||||
$\num{10000}$~Knoten groß und dynamisch. Das bedeutet, es kommen
|
$\num{10000}$~Knoten groß und dynamisch. Das bedeutet, es kommen
|
||||||
neue Knoten und eventuell auch neue Kanten hinzu bzw. Kanten oder
|
neue Knoten und eventuell auch neue Kanten hinzu bzw. Kanten oder
|
||||||
Knoten werden entfernt.Außerdem stehen
|
Knoten werden entfernt. Außerdem stehen textuelle Inhalte zu den
|
||||||
textuelle Inhalte zu den Knoten bereit, die bei der Klassifikation
|
Knoten bereit, die bei der Klassifikation genutzt werden können.
|
||||||
genutzt werden können.
|
|
||||||
|
|
||||||
Der DYCOS-Algorithmus nutzt diese und kann auf große, dynamische
|
Der DYCOS-Algorithmus nutzt diese und kann auf große, dynamische
|
||||||
Netzwerken angewandt werden.
|
Netzwerken angewandt werden.
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Die Texte
|
|
|
@ -13,4 +13,4 @@ ebook:
|
||||||
ebook-convert $(DOKUMENT).html $(DOKUMENT).epub --language de --no-default-epub-cover
|
ebook-convert $(DOKUMENT).html $(DOKUMENT).epub --language de --no-default-epub-cover
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.thm *.idx *.toc *.ind *.ilg *.glg *.glo *.gls *.ist *.xdy
|
rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.thm *.idx *.toc *.ind *.ilg *.glg *.glo *.gls *.ist *.xdy *.bbl *.blg
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
Im folgenden sei $\nodes$ die Menge der Knoten zum Zeitpunkt
|
|
||||||
$t$, $\labeledNodes \subseteq \nodes$ die Menge der Knoten
|
|
||||||
mit Label, $\edges$ die Kantenmenge.
|
|
|
@ -10,3 +10,29 @@
|
||||||
eprintclass = {cs.LG, cs.GT},
|
eprintclass = {cs.LG, cs.GT},
|
||||||
eprint = {http://arxiv.org/abs/1112.4344v1}
|
eprint = {http://arxiv.org/abs/1112.4344v1}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@inproceedings{aggarwal2011,
|
||||||
|
author = {Charu C. Aggarwal and
|
||||||
|
Nan Li},
|
||||||
|
title = {On Node Classification in Dynamic Content-based Networks},
|
||||||
|
booktitle = {SDM},
|
||||||
|
year = {2011},
|
||||||
|
pages = {355-366},
|
||||||
|
ee = {http://siam.omnibooksonline.com/2011datamining/data/papers/033.pdf\#page=1},
|
||||||
|
crossref = {aggarwal2011},
|
||||||
|
bibsource = {DBLP, http://dblp.uni-trier.de}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{DBLP:series/ads/2010-40,
|
||||||
|
editor = {Charu C. Aggarwal and
|
||||||
|
Haixun Wang},
|
||||||
|
title = {Managing and Mining Graph Data},
|
||||||
|
booktitle = {Managing and Mining Graph Data},
|
||||||
|
publisher = {Springer},
|
||||||
|
series = {Advances in Database Systems},
|
||||||
|
volume = {40},
|
||||||
|
year = {2010},
|
||||||
|
isbn = {978-1-4419-6044-3},
|
||||||
|
ee = {http://dx.doi.org/10.1007/978-1-4419-6045-0},
|
||||||
|
bibsource = {DBLP, http://dblp.uni-trier.de}
|
||||||
|
}
|
||||||
|
|
|
@ -15,5 +15,10 @@
|
||||||
\def\A{\ensuremath{\mathcal{A}}}
|
\def\A{\ensuremath{\mathcal{A}}}
|
||||||
\def\G{\ensuremath{\mathcal{G}}}
|
\def\G{\ensuremath{\mathcal{G}}}
|
||||||
\def\L{\ensuremath{\mathcal{L}}}
|
\def\L{\ensuremath{\mathcal{L}}}
|
||||||
|
\def\M{\ensuremath{\mathcal{M}}}
|
||||||
\def\N{\ensuremath{\mathcal{N}}}
|
\def\N{\ensuremath{\mathcal{N}}}
|
||||||
\def\T{\ensuremath{\mathcal{T}}}
|
\def\T{\ensuremath{\mathcal{T}}}
|
||||||
|
|
||||||
|
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
|
||||||
|
\renewcommand{\algorithmicensure}{\textbf{Output:}}
|
||||||
|
\renewcommand{\algorithmicforall}{\textbf{for each}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue