Sprungtypen.tex 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. \subsection{Sprungtypen}
  2. Die beiden bereits definierten Sprungtypen, der strukturelle Sprung
  3. sowie der inhaltliche Mehrfachsprung werden im folgenden erklärt.
  4. Der strukturelle Sprung entspricht einer zufälligen Wahl eines
  5. Nachbarknotens. Hier gibt es nichts besonderes zu beachten.
  6. Bei inhaltlichen Mehrfachsprüngen sieht die Sache schon anders aus:
  7. Es ist nicht sinnvoll, direkt von einem strukturellem Knoten
  8. $v \in \N_t$ zu einem mit $v$ verbundenen Wortknoten $w$ zu springen
  9. und von diesem wieder zu einem verbundenem strutkurellem Knoten
  10. $v' \in \N_t$. Würde man dies machen, wäre zu befürchten, dass
  11. aufgrund von Homonymen die Qualität der Klassifizierung verringert
  12. wird. So hat \enquote{Brücke} im Deutschen viele Bedeutungen.
  13. Gemeint sein können z.~B. das Bauwerk, das Entwurfsmuster der
  14. objektorientierten Programmierung oder ein Teil des Gehirns.
  15. Deshalb wird für jeden Knoten $v$, von dem aus man einen inhaltlichen
  16. Mehrfachsprung machen will folgendes vorgehen gewählt:
  17. \begin{enumerate}
  18. \item Gehe alle in $v$ startenden Random Walks der Länge 2 durch
  19. und erstelle eine Liste $L$, der erreichbaren Knoten $v'$. Speichere
  20. außerdem, durch wie viele Pfade diese Knoten $v'$ jeweils erreichbar sind.
  21. \item Betrachte im folgenden nur die Top-$q$ Knoten, wobei $q \in \mathbb{N}$
  22. eine zu wählende Konstante des Algorithmus ist.
  23. \item Wähle mit Wahrscheinlichkeit $\frac{\Call{Anzahl}{v'}}{\sum_{w \in L} \Call{Anzahl}{v'}}$
  24. den Knoten $v'$ als Ziel des Mehrfachsprungs.
  25. \end{enumerate}
  26. Konkret könnte also ein Inhaltlicher Mehrfachsprung sowie wie in
  27. Algorithmus~\ref{alg:DYCOS-content-multihop} beschrieben umgesetz werden.
  28. \begin{algorithm}[H]
  29. \begin{algorithmic}[1]
  30. \Procedure{InhaltlicherMehrfachsprung}{Knoten $v$}
  31. \State \textit{//Alle Knoten bestimmen, die von $v$ aus über Pfade der Länge 2 erreichbar sind}
  32. \State \textit{//Zusätzlich wird für diese Knoten die Anzahl der Pfade der Länge 2 bestimmt,}
  33. \State \textit{//durch die sie erreichbar sind}
  34. \State $reachableNodes \gets$ defaultdict
  35. \ForAll{Wortknoten $w$ in $v.\Call{getWordNodes}{ }$}
  36. \ForAll{Strukturknoten $x$ in $w.\Call{getStructuralNodes}{ }$}
  37. \State $reachableNodes[x] \gets reachableNodes[x] + 1$
  38. \EndFor
  39. \EndFor
  40. \State \textit{//Im folgenden gehe ich davon aus, dass ich über Indizes wahlfrei auf Elemente }
  41. \State \textit{//aus $M_H$ zugreifen kann. Dies muss bei der konkreten Wahl der Datenstruktur}
  42. \State \textit{//berücksichtigt werden}
  43. \State $M_H \gets \Call{max}{reachableNodes, q}$ \Comment{Also: $|M_H| = q$, falls $|reachableNodes|\geq q$}
  44. \State \textit{//Generate dictionary with relative frequencies}
  45. \State $s \gets 0$
  46. \ForAll{Knoten $x$ in $M_H$}
  47. \State $s \gets s + reachableNodes[x]$
  48. \EndFor
  49. \State $relativeFrequency \gets $ Dictionary
  50. \ForAll{Knoten $x$ in $M_H$}
  51. \State $relativeFrequency \gets \frac{reachableNodes[x]}{s}$
  52. \EndFor
  53. \State $random \gets \Call{random}{0, 1}$
  54. \State $s \gets 0$
  55. \State $i \gets 0$
  56. \While{$s < random$}
  57. \State $s \gets s + relativeFrequency[i]$
  58. \State $i \gets i + 1$
  59. \EndWhile
  60. \State $v \gets M_H[i-1]$
  61. \State \Return $v$
  62. \EndProcedure
  63. \end{algorithmic}
  64. \caption{Inhaltlicher Mehrfachsprung}
  65. \label{alg:DYCOS-content-multihop}
  66. \end{algorithm}
  67. \begin{algorithm}[H]
  68. \begin{algorithmic}[1]
  69. \Procedure{SturkturellerSprung}{Knoten $v$, Anzahl $q$}
  70. \State $n \gets v.\Call{NeighborCount}{}$ \Comment{Wähle aus der Liste der Nachbarknoten}
  71. \State $r \gets \Call{RandomInt}{0, n-1}$ \Comment{einen zufällig aus}
  72. \State $v \gets v.\Call{Next}{r}$ \Comment{Gehe zu diesem Knoten}
  73. \State \Return $v$
  74. \EndProcedure
  75. \end{algorithmic}
  76. \caption{Struktureller Sprung}
  77. \label{alg:DYCOS-structural-hop}
  78. \end{algorithm}