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:
parent
3c8ca52391
commit
c78e699bf5
6 changed files with 41 additions and 41 deletions
|
@ -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
|
||||
|
|
|
@ -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.
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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)\\
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue