Sprungtypen.tex 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. \subsection{Sprungtypen}\label{sec:sprungtypen}
  2. Die beiden bereits definierten Sprungtypen, der strukturelle Sprung
  3. sowie der inhaltliche Mehrfachsprung werden im folgenden erklärt.
  4. \goodbreak
  5. Der strukturelle Sprung entspricht einer zufälligen Wahl eines
  6. Nachbarknotens, wie es in \cref{alg:DYCOS-structural-hop}
  7. gezeigt wird.
  8. \begin{algorithm}[H]
  9. \begin{algorithmic}[1]
  10. \Procedure{SturkturellerSprung}{Knoten $v$, Anzahl $q$}
  11. \State $n \gets v.\Call{NeighborCount}{}$ \Comment{Wähle aus der Liste der Nachbarknoten}
  12. \State $r \gets \Call{RandomInt}{0, n-1}$ \Comment{einen zufällig aus}
  13. \State $v \gets v.\Call{Next}{r}$ \Comment{Gehe zu diesem Knoten}
  14. \State \Return $v$
  15. \EndProcedure
  16. \end{algorithmic}
  17. \caption{Struktureller Sprung}
  18. \label{alg:DYCOS-structural-hop}
  19. \end{algorithm}
  20. Bei inhaltlichen Mehrfachsprüngen ist jedoch nicht sinnvoll so strikt
  21. nach der Definition vorzugehen, also
  22. direkt von einem strukturellem Knoten
  23. $v \in V_t$ zu einem mit $v$ verbundenen Wortknoten $w \in W_t$ zu springen
  24. und von diesem wieder zu einem verbundenem strukturellem Knoten
  25. $v' \in V_t$. Würde man dies machen, wäre zu befürchten, dass
  26. aufgrund von Homonymen die Qualität der Klassifizierung verringert
  27. wird. So hat \enquote{Brücke} im Deutschen viele Bedeutungen.
  28. Gemeint sein können z.~B. das Bauwerk, das Entwurfsmuster der
  29. objektorientierten Programmierung oder ein Teil des Gehirns.
  30. Deshalb wird für jeden Knoten $v$, von dem aus man einen inhaltlichen
  31. Mehrfachsprung machen will folgende Textanalyse durchgeführt:
  32. \begin{enumerate}[label=C\arabic*,ref=C\arabic*]
  33. \item \label{step:c1} Gehe alle in $v$ startenden Random Walks der Länge $2$ durch
  34. und erstelle eine Liste $L$ der erreichbaren Knoten $v'$. Speichere
  35. außerdem, durch wie viele Pfade diese Knoten $v'$ jeweils erreichbar sind.
  36. \item \label{step:c2} Betrachte im folgenden nur die Top-$q$ Knoten bzgl. der
  37. Anzahl der Pfade von $v$ nach $v'$, wobei $q \in \mathbb{N}$
  38. eine zu wählende Konstante des DYCOS-Algorithmus ist.\footnote{Sowohl für den DBLP, als auch für den
  39. CORA-Datensatz wurde in \cite[S. 364]{aggarwal2011} $q=10$ gewählt.}
  40. Diese Knotenmenge heiße im Folgenden $T(v)$ und $p(v, v')$
  41. sei die Anzahl der Pfade von $v$ über einen Wortknoten nach $v'$.
  42. \item \label{step:c3} Wähle mit Wahrscheinlichkeit $\frac{p(v, v')}{\sum_{w \in T(v)} p(v, w)}$
  43. den Knoten $v' \in T(v)$ als Ziel des Mehrfachsprungs.
  44. \end{enumerate}
  45. Konkret könnte also ein inhaltlicher Mehrfachsprung sowie wie in
  46. \cref{alg:DYCOS-content-multihop} beschrieben umgesetzt werden.
  47. Der Algorithmus bekommt einen Startknoten $v \in V_T$ und
  48. einen $q \in \mathbb{N}$ als Parameter. $q$ ist ein Parameter der
  49. für den DYCOS-Algorithmus zu wählen ist. Dieser Parameter beschränkt
  50. die Anzahl der möglichen Zielknoten $v' \in V_T$ auf diejenigen
  51. $q$ Knoten, die $v$ bzgl. der Textanalyse am ähnlichsten sind.
  52. In \cref{alg:l2} bis \cref{alg:l5} wird \cref{step:c1} durchgeführt.
  53. In \cref{alg:l6} wird \cref{step:c2} durchgeführt. Bei der
  54. Wahl der Datenstruktur $M_H$ ist zu beachten, dass man in
  55. \cref{alg:21} über Indizes auf Elemente aus $M_H$ zugreifen können muss.
  56. In \cref{alg:l8} bis \cref{alg:l13} wird ein Wörterbuch erstellt,
  57. das von $v' \in T(v)$ auf die relative
  58. Häufigkeit bzgl. aller Pfade von $v$ zu Knoten aus den Top-$q$ abbildet.
  59. In \cref{alg:15} bis \cref{alg:22} wird ein Knoten $v' \in T(v)$ mit
  60. einer Wahrscheinlichkeit, die seiner relativen Häufigkeit am Anteil
  61. der Pfaden der Länge 2 von $v$ nach $v'$ über einen beliebigen
  62. Wortknoten entspricht ausgewählt und schließlich zurückgegeben.
  63. \begin{algorithm}
  64. \caption{Inhaltlicher Mehrfachsprung}
  65. \label{alg:DYCOS-content-multihop}
  66. \begin{algorithmic}[1]
  67. \Procedure{InhaltlicherMehrfachsprung}{Knoten $v \in V_T$, $q \in \mathbb{N}$}
  68. \State $reachableNodes \gets$ defaultdict\label{alg:l2}
  69. \ForAll{Wortknoten $w$ in $v.\Call{getWordNodes}{ }$}
  70. \ForAll{Strukturknoten $x$ in $w.\Call{getStructuralNodes}{ }$}
  71. \State $reachableNodes[x] \gets reachableNodes[x] + 1$
  72. \EndFor
  73. \EndFor\label{alg:l5}
  74. \State \label{alg:l6} $M_H \gets \Call{max}{reachableNodes, q}$ \Comment{Also: $|M_H| = q$, falls $|reachableNodes|\geq q$}
  75. \\
  76. \State \label{alg:l8} $s \gets 0$
  77. \ForAll{Knoten $x$ in $M_H$}
  78. \State $s \gets s + reachableNodes[x]$
  79. \EndFor
  80. \State $relativeFrequency \gets $ Dictionary
  81. \ForAll{Knoten $x$ in $M_H$}
  82. \State $relativeFrequency \gets \frac{reachableNodes[x]}{s}$
  83. \EndFor\label{alg:l13}
  84. \\
  85. \State \label{alg:15} $random \gets \Call{random}{0, 1}$
  86. \State $r \gets 0.0$
  87. \State $i \gets 0$
  88. \While{$s < random$}
  89. \State $r \gets r + relativeFrequency[i]$
  90. \State $i \gets i + 1$
  91. \EndWhile
  92. \State $v \gets M_H[i-1]$ \label{alg:21}
  93. \State \Return $v$ \label{alg:22}
  94. \EndProcedure
  95. \end{algorithmic}
  96. \end{algorithm}