diff --git a/documents/DYCOS/Ausblick.tex b/documents/DYCOS/Ausblick.tex index 887a57b..13d30f0 100644 --- a/documents/DYCOS/Ausblick.tex +++ b/documents/DYCOS/Ausblick.tex @@ -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 diff --git a/documents/DYCOS/DYCOS-Algorithmus.tex b/documents/DYCOS/DYCOS-Algorithmus.tex index 806af33..f74d0c0 100644 --- a/documents/DYCOS/DYCOS-Algorithmus.tex +++ b/documents/DYCOS/DYCOS-Algorithmus.tex @@ -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} diff --git a/documents/DYCOS/DYCOS.pdf b/documents/DYCOS/DYCOS.pdf index 134923a..47a82cb 100644 Binary files a/documents/DYCOS/DYCOS.pdf and b/documents/DYCOS/DYCOS.pdf differ diff --git a/documents/DYCOS/Einleitung.tex b/documents/DYCOS/Einleitung.tex index 704ed3b..5f32808 100644 --- a/documents/DYCOS/Einleitung.tex +++ b/documents/DYCOS/Einleitung.tex @@ -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. diff --git a/documents/DYCOS/SchwaechenVerbesserungen.tex b/documents/DYCOS/SchwaechenVerbesserungen.tex index ed03fdb..4555a2a 100644 --- a/documents/DYCOS/SchwaechenVerbesserungen.tex +++ b/documents/DYCOS/SchwaechenVerbesserungen.tex @@ -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. diff --git a/documents/DYCOS/Vokabularbestimmung.tex b/documents/DYCOS/Vokabularbestimmung.tex index 7fe7ace..36ac6b6 100644 --- a/documents/DYCOS/Vokabularbestimmung.tex +++ b/documents/DYCOS/Vokabularbestimmung.tex @@ -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)\\