2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-24 22:08:04 +02:00

Label -> Knotenbeschriftung

This commit is contained in:
Martin Thoma 2014-01-19 21:47:36 +01:00
parent 3c8ca52391
commit c78e699bf5
6 changed files with 41 additions and 41 deletions

View file

@ -17,7 +17,7 @@ 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 Labels.
mehreren Beschriftungen.
DYCOS beschränkt sich bei inhaltlichen Mehrfachsprüngen
auf die Top-$q$-Wortknoten, also die $q$ ähnlichsten Knoten

View file

@ -24,8 +24,8 @@ Ein zentrales Element des DYCOS-Algorithmus ist der sog.
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 Labels der besuchten Knoten gezählt. Das Label, das am häufigsten
vorgekommen ist, wird als Label für $v$ gewählt.
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
@ -122,22 +122,22 @@ Pseudocode vorgestellt.
\Else
\State $w \gets$ \Call{InhaltlicherMehrfachsprung}{$w$}
\EndIf
\State $w \gets v.\Call{GetLabel}{ }$ \Comment{Zähle das Label}
\State $w \gets v.\Call{GetLabel}{ }$ \Comment{Zähle die Beschriftung}
\State $d[w] \gets d[w] + 1$
\EndFor
\EndFor
\If{$d$ ist leer} \Comment{Es wurde kein gelabelter Knoten gesehen}
\If{$d$ ist leer} \Comment{Es wurde kein beschrifteter Knoten gesehen}
\State $M_H \gets \Call{HäufigsteLabelImGraph}{ }$
\Else
\State $M_H \gets \Call{max}{d}$
\EndIf
\\
\State \textit{//Wähle aus der Menge der häufigsten Label $M_H$ zufällig eines aus}
\State \textit{//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
\State \Return Labels für $V_t \setminus V_{L,t}$
\State \Return Beschriftungen für $V_t \setminus V_{L,t}$
\end{algorithmic}
\caption{DYCOS-Algorithmus}
\label{alg:DYCOS}

Binary file not shown.

View file

@ -7,31 +7,31 @@ 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 Labels;
sowie von Nutzern vergebene Beschriftungen (sog. {\it Tags}) oder Kategorien als Knotenbeschriftungen;
Wikipedia mit Artikeln als Knoten, Links als Kanten und Kategorien
als Labels sowie soziale Netzwerke mit Eigenschaften der Benutzer
als Labels sind drei Beispiele dafür.
Häufig sind Labels nur teilweise vorhanden und es ist wünschenswert die
fehlenden Labels automatisiert zu ergänzen.
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, der teilweise gelabelt ist. Zusätzlich stehen
zu einer Teilmenge der Knoten Texte bereit. Gesucht sind nun Labels
für alle Knoten, die bisher noch nicht gelabelt 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$ die Kantenmenge und $V_{L,t} \subseteq V_t$ die Menge der
gelabelten Knoten jeweils zum Zeitpunkt $t$ bezeichne.
beschrifteten Knoten jeweils zum Zeitpunkt $t$ bezeichne.
Außerdem sei $L_t$ die Menge aller zum Zeitpunkt $t$ vergebenen
Labels und $f:V_{L,t} \rightarrow L_t$ die Funktion, die einen
Knoten auf sein Label abbildet.
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.
Gesucht sind nun Labels für $V_t \setminus V_{L,t}$, also
Gesucht sind nun Beschriftungen für $V_t \setminus V_{L,t}$, also
$\tilde{f}: V_t \rightarrow L_t$ mit
$\tilde{f}|_{V_{L,t}} = f$.
\end{definition}
@ -45,4 +45,4 @@ 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 Labels sollte die Klassifizierung angepasst werden.
berechneten Knotenbeschriftungen sollte die Klassifizierung angepasst werden.

View file

@ -2,15 +2,15 @@ Der in \cite{aggarwal2011} vorgestellte Algorithmus hat einige Probleme,
die im Folgenden erläutert werden. Außerdem werden Verbesserungen
vorgeschlagen, die es allerdings noch zu untersuchen gilt.
\subsection{Anzahl der Labels}
\subsection{Anzahl der Knotenbeschriftungen}
So, wie der DYCOS-Algorithmus vorgestellt wurde, können nur Graphen bearbeitet werden,
deren Knoten jeweils höchstens ein Label haben. In vielen Fällen, wie z.~B.
Wikipedia mit Kategorien als Labels haben Knoten jedoch viele Labels.
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 Labels für jeden Knoten jedes Label zählt. Dann
wäre noch die Frage zu klären, mit wie vielen Labels der betrachtete
Knoten gelabelt werden soll.
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}
@ -29,11 +29,11 @@ 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 Label $A$ beschriftet. Zum Zeitpunkt $t=2$ komme ein nicht-gelabelter
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$ gelabelt.\\
Zum Zeitpunkt $t=3$ komme ein Knoten $v_3$, der mit $B$ gelabelt ist,
$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]
@ -62,21 +62,21 @@ und die Kante $(v_2, v_3)$ hinzu.
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$
gelabelt wird. Aber in diesem Beispiel wurde der Knoten schon
zum Zeitpunkt $t=2$ gelabelt. Obwohl es in diesem kleinem Beispiel
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 ungelabelter Knoten $v_4$ und die Kanten
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
Wahrscheinlichkeit, dass $v_4$ mit $A$ gelabelt wird bei $\frac{2}{3}$.
Werden die ungelabelten Knoten jedoch erst jetzt und alle gemeinsam
gelabelt, so ist die Wahrscheinlichkeit für $A$ als Label bei nur $50\%$.
Wahrscheinlichkeit, dass $v_4$ mit $A$ beschriftet wird bei $\frac{2}{3}$.
Werden die unbeschrifteten Knoten jedoch erst jetzt und alle gemeinsam
beschriftet, so ist die Wahrscheinlichkeit für $A$ als Beschriftung bei nur $50\%$.
Bei dem DYCOS-Algorithmus findet also eine Überanpassung an vergangene
Labels statt.
Beschriftungen statt.
Das Reklassifizieren von Knoten könnte eine mögliche Lösung für dieses
Problem sein. Knoten, die durch den DYCOS-Algorithmus gelabelt wurden
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

@ -20,7 +20,7 @@ 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
dem $i$-ten Label.
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$)}
@ -39,9 +39,9 @@ von Mengen $M,N$ in $\mathcal{O}(\min{|M|, |N|})$ sein muss.
\begin{algorithm}
\begin{algorithmic}[1]
\Require \\
$V_{L,t}$ (Knoten mit Labels),\\
$\L_t$ (Labels),\\
$f:V_{L,t} \rightarrow \L_t$ (Label-Funktion),\\
$V_{L,t}$ (beschriftete Knoten),\\
$\L_t$ (Beschriftungen),\\
$f:V_{L,t} \rightarrow \L_t$ (Beschriftungsfunktion),\\
$m$ (Gewünschte Vokabulargröße)
\Ensure $\M_t$ (Vokabular)\\