erfassung von datenschutzpraktiken mit natural language processing

Transcription

erfassung von datenschutzpraktiken mit natural language processing
Muhammed Demircan
Bachelorarbeit im Fach Wirtschaftsinformatik
„E RFASSUNG VON DATENSCHUTZPRAKTIKEN
MIT NATURAL L ANGUAGE P ROCESSING “
Themensteller: Prof. Dr. Sunyaev
Vorgelegt in der Bachelorprüfung
im Studiengang Wirtschaftsinformatik
der Wirtschafts- und Sozialwissenschaftlichen Fakultät
der Universität zu Köln
Köln, 21. September 2015
I
Inhaltsverzeichnis
Abbildungsverzeichnis........................................................................................................ II
Tabellenverzeichnis ............................................................................................................. III
1.
Einleitung .....................................................................................................................
1
1.1
Problemstellung ......................................................................................................
1
1.2
Zielformulierung.....................................................................................................
1
1.3
Vorgehensweise.......................................................................................................
2
1.4
Gliederung...............................................................................................................
2
Grundlagen zu Machine Learning und NLP..............................................................
4
2.
2.1
Mathematische Modellierung von natürlicher Sprache.......................................
4
2.2
Preprocessing ..........................................................................................................
5
2.2.1 Tokenisierung.....................................................................................................
6
2.2.2 Stoppwörter........................................................................................................
6
2.2.3 Feature Selection ...............................................................................................
7
2.2.4 Parsing ................................................................................................................
8
2.2.5 Stammformreduktion ........................................................................................
8
2.2.6 Abbildung in einen Vektorraum .......................................................................
9
2.3
Klassifikation .......................................................................................................... 10
2.3.1 Lineare Klassifikation ....................................................................................... 11
2.3.2 Hierarchische Klassifikation............................................................................. 13
2.4
3.
Satzkompression ..................................................................................................... 15
Privacy Practice Extractor ........................................................................................... 18
3.1
Anforderungen ........................................................................................................ 18
3.2
Verwendete Technologien ...................................................................................... 20
3.3
Implementierung..................................................................................................... 20
3.4
Anwendung ............................................................................................................. 30
4.
Evaluation..................................................................................................................... 33
4.1
Metriken .................................................................................................................. 33
4.2
Experimente ............................................................................................................ 35
4.3
Ergebnisse ............................................................................................................... 37
5.
Fazit............................................................................................................................... 43
Literaturverzeichnis............................................................................................................. 44
Eidesstattliche Erklärung .................................................................................................... 48
Lebenslauf............................................................................................................................ 49
II
Abbildungsverzeichnis
Abb. 2-1: Hyperebene trennt die zweidimensionalen Trainingsdaten........................... 12
Abb. 2-2: Triplet Extraction Algorithmus aus dem Paper „Triplet Extraction from
Sentences“, Rusu u. a. (2007). ............................................................................. 17
Abb. 3-1: Übersicht zum Klassfikations- und Satzkompressionsprozess. .................... 19
Abb. 3-2: Kernklassen und deren Relationen zueinander............................................... 26
Abb. 3-3: PreProcessor und alle Bestandteile. ................................................................ 27
Abb. 3-4: Model Klassen................................................................................................... 28
Abb. 3-5: Service- und Hilfsklassen................................................................................. 29
Abb. 3-6: Obligatorische Ordnerstruktur um den Klassifkator zu trainieren. .............. 30
Abb. 3-7: Baum induziert durch Strukturbeschreibung.................................................. 31
Abb. 3-8: Ordnerstruktur nach dem Trainingsprozess.................................................... 31
Abb. 4-1: Veranschaulichung der Berechnung der Präzision und Sensitivität. ............ 33
Abb. 4-2: Definition der Klassen einer Datenschutzerklärung. ..................................... 35
Abb. 4-3: F-Maß, Präzision und Sensitivität des Hieron Klassifikators mit unterschiedlichen Feature Selection Parameter k. ...................................................... 39
Abb. 4-4: Tree Induced Error des Hieron Klassifikators mit unterschiedlichen Feature Selection Parameter k. .................................................................................. 40
III
Tabellenverzeichnis
Tab. 4-1 : Anzahl der Trainings- und Testdaten. ............................................................ 36
Tab. 4-2 : Beurteilung des hierarchischen Klassifikators mit unterschiedlichen Feature Selection Parametern k. ................................................................................ 38
Tab. 4-3 : Die fpi Ausprägungen pro Klasse mit Feature Selection Parameter k =
70............................................................................................................................ 40
Tab. 4-4 : Ergebnisse der Satzkompression mithilfe der Triplet Extraktion im Vergleich zur menschlichen Zusammenfassung. ..................................................... 42
1
1.
1.1
Einleitung
Problemstellung
Eine fundamentale Säule zum Schutz der Privatsphäre nimmt der Datenschutz ein. Diese definiert ein „System aus Gesetzen, Regeln und Maßnahmen, die den Einzelnen davor schützen, dass Dritte [...] Daten über ihn sammeln, speichern, verarbeiten und weiterverbreiten“.1 Dabei beschreiben Organisationen und Unternehmen den Umgang mit
Kunden- bzw. Benutzerdaten mithilfe von Datenschutzerklärungen, welche in Form von
Texten verfasst sind. Diese setzen einen hohen Fachterminus voraus und werden folglich
kaum vom Benutzer gelesen.2 Dementsprechend wird das Ziel, den Benutzer darüber
aufzuklären, was mit seinen Daten passiert, verfehlt.
Eine transparentere Darlegung der Praktiken, welche eine Organisation oder ein Unternehmen in seinen Datenschutzerklärungen deklariert, unterstützt den Benutzer sich darüber zu informieren, was mit seinen Daten geschieht. Hieraus kristallisiert sich die Frage,
wie man solche Praktiken aus Datenschutzerklärungen computergestützt erfassen kann.
Jedoch besteht kein spezieller Ansatz um diese maschinell zu extrahieren. Die Erarbeitung eines solchen Ansatzes führt dazu, dass der Informationsaustausch zwischen Benutzer und Organisation/Unternehmen bezüglich der deklarierten Praktiken transparenter
gestaltet wird. Außerdem ist eine Konvertierung der extrahierten Informationen in ein
maschinenlesbares Format möglich. Eine Lösung dieses Problems ist durch die Erarbeitung einer Software gegeben, welche Informationen zu Praktiken mithilfe von Natural
Language Processing und Machine Learning aus Texten extrahiert.
1.2
Zielformulierung
Die Entwicklung einer Software zur Erfassung der Praktiken in Datenschutzerklärungen
stellt das Hauptziel der Arbeit dar. Zur Realisierung dieser Software wird ein hierarchischer Klassifikator, bekannt als „Hieron“, implementiert.3 Damit lassen sich die jewei-
1
Vgl. Laudon u. a. (2010), S. 164.
2
Vgl. Costante u. a. (2011), S. 1-2, Vgl. Sunyaev u. a. (2014), S. 1, Vgl. Jøsang u. a. (2010), S. 131.
3
Vgl. Dekel u. a. (2004), S. 1.
2
ligen Sätze der Datenschutzerklärung einer vordefinierten Klasse zuordnen. Die Klassen formalisieren die Datenschutzerklärung, wobei jede Klasse einen Bereich wie z. B.
„Content“ oder „Collection“ abdeckt. In mehreren Arbeiten wurden bereits erste Ansätze
vorgeschlagen, welche potentielle Klassen für Datenschutzerklärungen definieren.4 Insbesondere die noch unveröffentlichte Arbeit „Privacy Policy Content“ legt nahe, Klassen
in Form einer Baumstruktur zu modellieren, wodurch sich die Wahl des hierarchischen
Klassifikator begründet.5 Folglich werden klassifizierte Sätze verwendet, um aus diesen
die Informationen zu den Praktiken zu extrahieren. Um einen Satz auf seine Kernaussage zu reduzieren, wird ein Verfahren namens Triplet Extraktion zur Satzkompression
verwendet.6 Hierbei wird, falls möglich, aus einem Satz das Subjekt, das Verb und das
Objekt extrahiert.
1.3
Vorgehensweise
Die Vorgehensweise dieser Arbeit richtet sich grundsätzlich nach der Methodik des Wasserfallmodells.7 Die Problemstellung und Zieldefinition dieser Arbeit induzieren dabei
die Anforderungen an das System. Während der Implementierungsphase werden die drei
Hauptmodule Vorverarbeitung, Klassifikation und Satzkompression umgesetzt. Als Abschlussphase dient die Beurteilung der implementierten Software anhand einer Evaluation.
1.4
Gliederung
Im ersten Kapitel Grundlagen zu Machine Learning und NLP werden die mathematischen Methoden und Begrifflichkeiten eingeführt. Insbesondere werden die Schritte im
„Preprocessing“, also der Vorverarbeitung von den Eingangsdokumenten (hier Datenschutzerklärungen) und der Abbildung dieser in einen geeigneten Vektorraum, präsentiert. Die Machine Learning Algorithmen zum Klassifizieren und Extrahieren von Informationen werden ebenfalls vorgestellt. Das folgende Kapitel Privacy Practice Extractor
4
Vgl. Costante u. a. (2012), S. 4, Vgl. Gao u. a. (2014), S. 4.
5
Vgl. Dehling, Sunyaev (2015).
6
Vgl. Rusu u. a. (2007), S. 1-2.
7
Vgl. Sommerville (2006), S. 66-68.
3
bildet den Hauptteil der Arbeit, welches im Kern die Software zur Erfassung von Datenschutzpraktiken vorstellt. Schließlich wird das Zusammenwirken dieser Komponenten
miteinander anschaulich dargelegt. Die Experimente und deren Ergebnisse sind Inhalt
des Kapitels Evaluation. Zunächst wird der verwendete Textkorpus und die Einteilung
von Inhalten einer Datenschutzerklärung in Kategorien beschrieben. Vor den Ergebnissen werden noch die Metriken vorgestellt, die zur Evaluation herangezogen wurden. Zum
Abschluss werden im Fazit nochmal die Ergebnisse durchleuchtet und kritische Punkte
und Probleme diskutiert.
4
2.
2.1
Grundlagen zu Machine Learning und NLP
Mathematische Modellierung von natürlicher Sprache
Der Grundbaustein jeder Sprache sind die in ihr gültigen Zeichen. Mithilfe von formalen
Sprachen kann man die Menge dieser Zeichen ausdrücken mit folgender
Definition 2.1 (Alphabet) Eine nicht leere, endliche Menge Σ nennt man Alphabet. Die
Elemente in dieser Menge nennt man Zeichen.8
Beispiel 2.2 Die folgenden Mengen sind Alphabete. Diese vereinigt erzeugen das Alphabet, welches offensichtlich zur Darstellung von Zeichenketten in der englischen Sprache
notwendig ist.
• Σ1 = {a, . . . , z}
• Σ2 = {A, . . . , Z}
• Σ3 = {0, . . . , 9}
• Σ4 = {., !, ?, . . . } (Menge der Sonderzeichen)
• Σ = ∪4i=1 Σi (Notwendige Zeichen der englischen Sprache)
Es sei angemerkt, dass das Alphabet für die englische Sprache ab jetzt mit Σ bezeichnet
wird. Die Verkettung von Zeichen eines Alphabets wird gültige Zeichenkette.9 In der
gängigen Literatur ist dies als Wort bekannt, jedoch wird diese Benennung in dieser Arbeit
vermieden, da es sonst zu Verwechselungen kommen kann.
Definition 2.3 (gültige Zeichenkette) Die Verkettung von Zeichen nennt man Zeichenkette. Eine beliebige Zeichenkette s ist über dem Alphabet Σ gültig, wenn sämtliche Zeichen z aus Σ stammen.10
Anmerkung 2.4 In dieser Arbeit kommen nur gültige Zeichenketten in Frage. Daher wird
im Folgenden der Begriff „Zeichenkette“ synonym zu „gültige Zeichenkette“ verwendet.
8
Vgl. Wagenknecht, Hielscher (2014), S.17.
9
Vgl. Wagenknecht, Hielscher (2014), S.19.
10
Vgl. Wagenknecht, Hielscher (2014), S.19.
5
Außerdem sind noch alle möglichen Variationen von Zeichenketten interessant, da jeder
beliebige Text als Zeichenkette angesehen werden kann. Die Menge, welche diese Variationen beinhaltet, ist gegeben durch folgende
Definition 2.5 (Menge der Zeichenketten) Die Menge Σ∗ beinhaltet alle (gültigen) Zeichenketten über dem Alphabet Σ.11
Zur Modellierung von Wörtern, Sätzen und Text sind die drei nachfolgenden Definitionen
fundamental.
Definition 2.6 (Wort) Eine Zeichenkette, die gleichzeitig eine gültige Wortform der englischen Sprache ist, nennt man auch Wort. Die Menge aller Worte bezeichnet man als
Wörter W mit12
W = {w ∈ Σ∗ : w ist eine gültige Wortform der englischen Sprache}.
(1)
Definition 2.7 (Satz) Sei S die Menge der gültigen und sinnvollen Sätze der englischen
Sprache. Ein Satz s ∈ S der Länge n ∈ N ist gegeben durch13
s = {w1 , . . . , wn : wi ∈ W, 1 ≤ i ≤ n}.
(2)
Definition 2.8 (Dokument) Ein Dokument d ist eine Menge von Sätzen, gegeben durch
d = {s1 , . . . , sn : si ∈ S, 1 ≤ i ≤ n, n ∈ N}.
(3)
Die Menge aller Dokumente wird mit D identifiziert.
2.2
Preprocessing
Die computergestützte Verarbeitung von Texten benötigt eine geeignete Abbildung der
Texte in ein mathematisches Modell. Insbesondere für die Klassifikation und Informationsextraktion ist eine effiziente Darstellung der unstrukturierten Texte mit den wesentli-
11
Vgl. Wagenknecht, Hielscher (2014), S.21.
12
Vgl. Heyer u. a. (2008), S. 22.
13
Vgl. Heyer u. a. (2008), S. 22.
6
chen Inhalten notwendig. Für die Filterung der wichtigen Informationen in unstrukturierten Texten existierten viele Techniken. Die in dieser Arbeit verwendeten Verfahren und
die mathematische Abbildung in einen Vektorraum werden in den nächsten Unterkapiteln
vorgestellt. Es sei noch angemerkt, dass die Effektivität von Natural Language Processing
maßgeblich vom Preprocessing abhängt.14
2.2.1
Tokenisierung
Für den Computer sind Texte eine Aneinanderreihung von Zeichen. Ziel der Tokenisierung ist es, diese Aneinanderreihung sinnvoll zu zerlegen, sodass man aus den unstrukturierten Texten Sätze und Wörter erhält.
Definition 2.9 (Tokenisierer) Sei z ∈ Σ∗ eine beliebige Aneinanderkettung von Zeichen,
dann bezeichnet die Abbildung
t : Σ∗ → D, mit t(z) = d,
(4)
einen Tokenisierer.
Auf den ersten Blick erscheint diese Aufgabe relativ trivial, da im englischen Sätze durch
Trennzeichen wie getrennt werden und Wörter durch ein Leerzeichen. Jedoch werden
zum Beispiel für die Kennzeichnung von Abkürzungen auch der Punkt verwendet.15 Aufgrund solcher Spezialfälle existieren komplexere Algorithmen zur Tokenisierung, die dieser Problematik gewachsen sind.16
2.2.2
Stoppwörter
Häufig auftretende Wörter, welche keine Relevanz für die Erfassung des Inhaltes eines
Textes haben, nennt man Stoppwörter. Insbesondere Präpositionen, Konjunktionen und
Artikel sind Inhalte solcher Stoppwortlisten, welche benutzt werden um diese aus dem zu
verarbeitenden Texten herauszufiltern.17
14
Vgl. Feldman, Sanger (2006), S. 57.
15
Vgl. den Absatz Feldman, Sanger (2006), S. 60.
16
Vgl. Manning u. a. (2014), S. 3.
17
Vgl. den Absatz Feldman, Sanger (2006), S. 68.
7
Definition 2.10 (Stoppwortfilter) Sei eine Stoppwortliste mit k Einträgen gegeben durch
C = {w1 , . . . , wk : wi ∈ W }. Eine Abbildung, die Stoppwörter aus einem Dokument
d ∈ D entfernt, heißt Stoppwortfilter und ist gegeben durch
r : D → D0 , mit r(d) = d0 ,
(5)
wobei D0 alle Dokumente aus D beinhaltet mit der Einschränkung, dass in diesen Dokumenten keine Wörter aus der Stoppwortliste C auftauchen.
2.2.3
Feature Selection
Während ein Stoppwortfilter häufig auftretende Worte in Dokumenten entfernt, wird bei
der sogenannten „Feature Selection“ versucht, diejenigen Worte zu identifizieren, welche
signifikant für eine Klasse sind.18 Hierbei ist die Berechnung des Nutzwertes A(t, c)
eines Wortes t für die Klasse c maßgeblich von der Methode abhängig, die verwendet
wird. Folgender Algorithmus skizziert die Kernidee von Feature Selection.
Algorithmus 1 Feature Selection
1:
2:
3:
4:
5:
6:
7:
8:
9:
SelectF eatures(D, c, k)
V ← ExtractV ocabulary(D)
L ← []
for each t ∈ V
do A(t, c) ← ComputeF eatureU tility(D, t, c)
Append(L, hA(t, c), ti)
end do
end for
return F eaturesW ithLargestV alues(L, k)
Bekannte Ansätze für die Ermittlung des Nutzwertes A(t, c) sind gegeben durch den χ2 Test oder das „Mutal Information“ Verfahren. Letzteres wird in dieser Arbeit verwendet
und berechnet sich gemäß folgender
Definition 2.11 (Mutal Information) Sei w ∈ {w1 , . . . , wk } ein beliebiges Wort aus der
Menge aller bekannten Wörter und c ∈ Y eine beliebige Klasse.
18
Eine Definition zu Klassen wird in Unterkapitel 2.3 eingeführt.
8
Der (erwartete)„Mutal Information“ Wert für w ist gegeben durch
I(U, C) =
X
X
P (U = ew , C = ec ) log2
ew ∈{0,1} ec ∈{0,1}
P (U = ew , C = ec )
,
P (U = ew )P (C = ec )
(6)
wobei U eine Zufallsvariable ist mit ew = 1, wenn angegeben werden soll, dass das
Dokument das Wort w beinhaltet und ew = 0 sonst. Das gilt analog für die Zufallsvariable
C, wobei diese angibt, ob ein Dokument einer Klasse zugehört oder nicht.19
Nachdem man für alle Klassen die k signifikanten Wörter ermittelt hat, kann man nun
den Korpus auf diese Wörter vermindern. Dadurch reduziert sich der aufzuspannende
Vektorraum erheblich, wie sich in Unterkapitel 2.2.6 zeigen wird. Andererseits werden,
wie bereits erwähnt, die irrelevanten Wörter jeder Klasse entfernt, wodurch eine Genauigkeitssteigerung des Klassifikators ermöglicht wird.20
2.2.4
Parsing
Die Analyse eines Satzes bezüglich seiner grammatikalischen Struktur wird „Parsing“ genannt. Ziel ist es, ein (Start-)Triple Z0 , bestehend aus dem zu analysierenden Satz α, dem
Startsymbol der vorgegebenen Grammatik Kat und der partiellen Strukturbeschreibung
Struktur, also
Z0 = hα, Kat, Strukturi,
(7)
in einen Endzustand E zu überführen. Ein solcher Endzustand ist charakterisiert durch die
vollständige Strukturbeschreibung des Satzes α, meistens in Form einer Baumstruktur.21
2.2.5
Stammformreduktion
Die Analyse über Gesetzmäßigkeiten von Wortbildungen wird in der Morphologie, einem
Gebiet der Linguistik, durchgeführt. Diese Untersuchungen befassen sich mit der Frage,
wie die kleinsten bedeutungstragenden Elemente einer Sprache, genannt Morpheme, zu
Wortformen kombiniert werden. Insbesondere der Wortstamm eines Wortes kann dabei
als Grundlage genutzt werden, um weitere Wörter zu bilden. Ein Beispiel für solch einen
19
Vgl. den Absatz Manning u. a. (2008), S. 271.
20
Vgl. Feldman, Sanger (2006), S. 68.
21
Vgl. den Absatz Carstensen u. a. (2009), S. 303-304.
9
Stamm wäre das Wort „lös“. Die Wörter „Lösbarkeit“ und „lösbar“ hätten somit den
gleichen Wortstamm.22
Definition 2.12 (Stemmer) Eine Abbildung φ : D → D wird „Stemmer“ genannt, wenn
sie auf den Wortstamm eines Wortes abbildet und für alle v, w ∈ W mit gleichem Wortstamm
φ(v) = φ(w)
(8)
gilt.
Beim „Natural Language Processing“ wird zur Effizienzsteigerung oft eine Stammformreduktion durchgeführt, um verwandte Worte auf die selbe Zeichenkette zurückzuführen. Für englischsprachige Texte wird hauptsächlich der „Porter Stemming“ Algorithmus verwendet.23 Dieser ist auch Bestandteil der in dieser Arbeit implementierten Software. Maßgebend für den Normalisierungsprozess ist die Anzahl der Vokal-KonsonantSequenzen in einem Wort. Basierend darauf werden mithilfe von vordefinierten Regeln
Suffixe aus Wörtern entfernt oder verändert.24
2.2.6
Abbildung in einen Vektorraum
Eine geeignete mathematische Darstellung von Dokumenten ist unerlässlich für viele Algorithmen im „Natural Language Processing“. In diesem Unterkapitel wird kurz die Repräsentation eines Dokumentes als Vektor mithilfe des „Bag of Words“ Verfahrens vorgestellt. Außerdem werden diese Vektoren mit der „tf-idf“ Methode gewichtet, um die
Relevanz von selten bis sehr häufig auftauchenden Wörter zu berücksichtigen.
Definition 2.13 (Projektion) Eine Abbildung p : D → Rn , welche Dokumente in einen
reellwertigen Vektorraum abbildet, wird Projektion genannt.
Wie bereits erwähnt ist die „Bag of Words“ Methode eine solche Projektion, welche durch
folgende Definition beschrieben ist.25
22
Vgl. den Absatz Heyer u. a. (2008), S. 327.
23
Vgl. Carstensen u. a. (2009), S. 589.
24
Vgl. Porter (1997), S. 2.
25
Vgl. Feldman, Sanger (2006), S. 68.
10
Definition 2.14 (Bag of Words) Sei K = {w1 , . . . , wk } die Menge aller bekannten Wortformen. Der zugehörige Vektorraum V ⊆ Rk sei durch die Einheitsvektoren ei , wobei
i ∈ {1, . . . , k}, aufgespannt. Jedes Wort wi ∈ K induziert dementsprechend eine Dimension des Vektorraums V .
Eine Abbildung p : D → Rk mit
p(d) =
k
X
αi ∗ ei , d ∈ D, αi ∈ R≥0 ,
(9)
i=1
wird „Bag of Words“Projektion genannt. Hierbei repräsentieren die Koeffizienten αi im
einfachsten Fall die Häufigkeit des Wortes wi im Dokument d.
Um selten auftretende Wörter mehr zu gewichten und häufig auftretende entsprechend
weniger, werden die Koeffizienten αi mit der inversen Dokumentenhäufigkeit skaliert.
Diese spiegelt die Relevanz eines Wortes in der Gesamtmenge aller Dokument wieder
und ist gegeben durch folgende
Definition 2.15 (td-idf Gewichtung) Es gelten die gleichen Voraussetzungen wie in 2.14.
Die td-idf Gewichte berechnen sich dann durch
αi = tf (i, d) ∗ idf (i),
(10)
wobei tf(i,d) die Häufigkeit eines Wortes i in einem Dokument d angibt und idf (i) die
Inverse Dokumentenhäufigkeit repräsentiert. Diese ist definiert durch
idf (i) = log
N
,
ni
(11)
wobei N die Anzahl aller Dokumente und ni die Anzahl der Dokumente, in denen das
Wort i auftaucht, beschreibt.26
2.3
Klassifikation
Eine der wichtigsten Aufgaben der Datenanalyse ist die Klassifikation von Elementen,
sprich die Zuordnung eines Elementes in eine vordefinierte Klasse. Im Natural Language
26
Vgl. Feldman, Sanger (2006), S. 68.
11
Processing ist vor allem die Textklassifikation von Bedeutung. Ziel ist es dort, einen Text
in die zugehörigen Klassen (z. B. Themengebiet) einzuordnen. Gängige Methoden zur
Lösung dieses Problem sind im Machine Learning angesiedelt. Klassifikatoren, die mithilfe von Trainingsdaten konstruiert werden, gehören zu den sogenannten „supervised“
Verfahren. Es gibt viele Möglichkeiten solche Klassifikatoren zu berechnen. In dieser
Arbeit wird auf einen linearen Klassifikator zurückgegriffen, da er das Grundgerüst des
hierarchischen Klassifikators bildet.27
Zur Formalisierung der Klassifikation sind die zwei nachfolgenden Definitionen fundamental.
Definition 2.16 Mit X ⊆ Rn wird der Inputraum und mit Y der Ergebnisraum bezeichnet. Für die binäre Klassifikation wird Y = {−1, 1} gewählt, wobei für die Mehrklassen
Klassifikation Y = {1, . . . , m} benutzt wird. Die Menge der Trainingsdaten ist gegeben
durch
T = ((x1 , y1 ), . . . , (xl , yl )) ⊂ (X × Y )l ,
(12)
mit der Anzahl der Trainingsdaten l ∈ N.28
Darauf aufbauend kann nun eine allgemeingültige Problemformulierung und Definition
eines Klassifikators angegeben werden.
Definition 2.17 (Klassifikator) Sei F : X → Y eine unbekannte Funktion, welche Dokumente bzw. deren vektorielle Repräsentation fehlerfrei den korrekten Klassen zuordnet.
Die Funktion f : X → Y stellt eine Approximation der Funktion F dar und wird Klassifikator genannt.29
2.3.1
Lineare Klassifikation
Die Idee hinter der Konstruktion von linearen Klassifikatoren besteht daraus, eine Funktion zu erzeugen, welche die Trainingsdaten mithilfe von Hyperebenen kategorisiert. Jede
27
Vgl. Feldman, Sanger (2006), S. 64.
28
Vgl. Cristianini, Shawe-Taylor (2000), S. 11.
29
Vgl. Feldman, Sanger (2006), S. 64.
12
Klasse i ∈ Y wird dementsprechend durch eine Hyperebene (Wi , bi ) repräsentiert, sodass
der Abstand eins Punktes x ∈ X zu dieser Hyperebene gemessen werden kann durch
fi (x) = hWi · xi + bi .
(13)
Die Parameter (Wi , bi ) für die Konstruktion der Hyperebenen werden durch die Trainingsdaten induziert. Der Abstand eines neuen zu klassifizierenden Vektors wird zu allen
Hyperebenen gemessen. Die Klassifizierung erfolgt dann anhand der Hyperebene, die am
weitesten entfernt ist, oder mathematisch formuliert durch30
c(x) = arg max (hWi · xi + bi ).
(14)
1≤i≤m
Die einfachste Form linearer Klassifikation stellt die binäre Klassifikation dar. Dazu verwendet man eine lineare Funktion f : X → R mit
f (x) = hW · xi + b =
n
X
Wi xi + b,
(15)
i=1
wobei sich die Parameter (W, b) ∈ Rn × R aus der Subtraktion von (W−1 , b−1 ) und
(W1 , b1 ) berechnet.31 Bei der binären Klassifikation reicht es also aus, eine einzige Hyperebene zu benutzen. In Abb. 2-1 wird diese Herleitung noch einmal illustriert.
x2
x1
Abb. 2-1: Hyperebene trennt die zweidimensionalen Trainingsdaten.
30
Vgl. Cristianini, Shawe-Taylor (2000), S. 20, Vgl. Feldman, Sanger (2006), S. 76.
31
Vgl Cristianini, Shawe-Taylor (2000), S. 20.
13
Den ersten Algorithmus zur Bestimmung der Parameter (W, b) bei der binären Klassifikation stellte Frank Rosenblatt im Jahre 1956 vor.32 Der Algorithmus ist bekannt unter
dem Namen „The Percepton Algorithm“ und ist ein sogenannter „Online“ Algorithmus.
Das bedeutetet: Dem Algorithmus wird jeweils ein Trainingsdatensatz übermittelt, woraufhin die Approximation durchgeführt und anschließend mit dem korrekten Ergebnis aus
dem Trainingsdatensatz verglichen wird. Lassen sich bei dem Vergleich Fehler nachweisen, werden die Parameter angepasst. Der zugehörige Pseudocode ist im Algorithmus 2
dargestellt.33
Algorithmus 2 The Percepton Algorithm
1: Sei T eine Menge linear trennbarer Trainingdaten und η ∈ R die Lernrate
2:
W0 ← 0; b0 ← 0; k ← 0
3:
R ← max1≤i≤l kxi k
4:
repeat
for i = 1 to l
5:
6:
if yi (hWk · xi i + bk ) ≤ 0 then
7:
Wk+1 ← Wk + ηyi xi
8:
bk+1 ← bk + ηR2 yi
9:
k ←k+1
end if
10:
end for
11:
12:
until yi (hWk · xi i + bk ) > 0, ∀i ∈ {1, . . . , l}
13:
return k, (Wk , bk )
2.3.2
Hierarchische Klassifikation
Während bisher stets angenommen wurde, dass die Klassen in Y unabhängig voneinander sind, wird bei der hierarchischen Klassifikation unterstellt, dass die Klassen in einer
Baumstruktur vorliegen. Unter der Annahme, dass die Klassen in einer gewissen Relation zueinander stehen, kann man diese Tatsache sowohl beim Training als auch bei der
Evaluation ausnutzen. Dazu wird bei der Berechnung der Prototypen Wi die Distanz der
32
Vgl. Cristianini, Shawe-Taylor (2000), S. 11.
33
Vgl. Cristianini, Shawe-Taylor (2000), S. 3, 12.
14
jeweiligen Klassen in der Baumstruktur berücksichtigt, mit dem Ziel Fehlklassifikationen
zwischen „nahen“ Klassen weniger zu gewichten als Klassen die weiter entfernt sind. Anschaulich lässt sich diese Idee wie folgt beschreiben. Angenommen man hätte die Klassen Sport, Fußball, Basketball, Politik. Es ist offensichtlich, dass die Klassen Fußball
und Basketball Kinderknoten der Klasse Sport sind. Nun sei ein Klassifikator gegeben,
welcher einen Artikel über Basketball fälschlicherweise in die Fußball Klasse zuordnet.
Aufgrund der Beziehung zwischen Fußball und Basketball als Sport sollte der maßgebende Fehler kleiner sein als wenn dieser Artikel in die Klasse Politik zugeordnet wird.
Diesen Umstand machen sich hierarchische Klassifikatoren zunutze und sollen nachfolgend präsentiert werden.
Für die hierarchische Klassifikation sei Y = {0, . . . , k − 1} die Menge der Klassen,
wobei angenommen wird, dass die Klassen in einer Baumstruktur vorliegen mit 0 als
Wurzelknoten. Die Distanz im Baum zwischen zwei Knoten x, y ∈ Y ist gegeben durch
γ(x, y). Mit ŷ wird die Klasse bezeichnet, die durch den (approximierten) Klassifikator
für eine Instanz x ∈ X berechnet wurde. Der „Suffer Loss“ zwischen zwei Knoten, also
das Fehlermaß welches die Baumrelation berücksichtigt, berechnet sich durch
ŷ
y
`(x, y, ŷ) = W · x − W · x +
p
γ(y, ŷ) .
(16)
+
Hierbei bezeichnet [z]+ = max(z, 0). Ferner werden die Prototypen W v jeder Klasse
v ∈ Y zerlegt als folgende Summe
Wv =
X
wu ,
(17)
u∈P (v)
wobei P (v) den Pfad von der Wurzel bis zum Knoten der Klasse v angibt.
Vice versa gilt also
wv = W v − W A(v) ,
(18)
mit A(v) als Vorgängerknoten. Außerdem werden sowohl W 0 als auch w0 fix auf den
Nullvektor gesetzt. Mithilfe dieser Konstruktionen kann man nun den „Batch-Hieron“,
einen hierarchischen Klassifikator, algorithmisch beschreiben.
15
Algorithmus 3 Batch Hieron
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
train({(xi , yi )}m
i=1 }
w1y ← 0, ∀y ∈ Y
for i = 1, 2, . . . , m
ŷ ← arg maxy∈Y `(xi , yi , y)
`(xi ,yi ,ŷ)
αi ← γ(y
2
i ,ŷ)kxi k
v
wi+1 ← wi + αi xi , v ∈ P (yi ) \ P (ŷ)
v
← wi − αi xi , v ∈ P (ŷ) \ P (yi )
wi+1
end for P
v
∀v ∈ Y
wv ← m1 m
i=1 wi+1 ,
v
return {w }v∈Y
Im Gegensatz zu einem „Online“ Algorithmus, wie z. B. dem „Percepton Algorithmus“,
wird nicht versucht die zugehörige Klasse einer Instanz xi zu berechnen und bei einer
Fehlklassifikation die Hyperebene anzupassen, sondern es wird die Klasse ŷ gesucht, welche den größten Fehler ` verursacht. Nun werden alle Prototypen innerhalb der symmetrischen Differenz zwischen der korrekten Klasse y und der fehlermaximierenden Klasse ŷ
manipuliert. Schließlich wird für jede Klasse v ∈ Y die Summe aller jeweils manipulierten Prototypen wiv durch die Anzahl der Trainingsdaten m errechnet. Das Ergebnis liefert
den Endgültigen Prototypen wv der Klasse v.34
2.4
Satzkompression
Satzkompression verfolgt die Idee einen Satz zu verkürzen und dabei die Kernaussage
beizubehalten unter Wahrung der grammatikalischen Korrektheit.35 Eine leicht vereinfachte Version ergibt sich aus der sogenannten Triplet Extraktion, einem Verfahren welches Subjekt, Verb und Objekt aus einem Satz filtert. Dies führt natürlich, je nach Satzkonstellation und Inhalt, nicht immer zu einer erfolgreichen Extraktion oder der Wahrung
der grammatikalischen Korrektheit. Nichtsdestotrotz ist es mit diesem Verfahren möglich
die Kernaussage aus geeigneten Sätzen zu komprimieren. Einen Algorithmus zur Triplet
Extraktion ist gegeben in Abb. 2-2.36
34
Vgl. den Absatz Dekel u. a. (2004), S. 27-33.
35
Vgl. Jing (2000), S. 311.
36
Vgl. Rusu u. a. (2007), S. 9.
16
Als „Input“ benötigt der Algorithmus einen „geparsten“37 Satz in Baumstruktur. Innerhalb dieses Baumes existieren Teilbäume zum Subjekt- und Verbanteil des Satzes. Aus
dem Subjektteilbaum wird versucht das erste auftauchende Subjekt zu extrahieren. Das
Verb wird anhand des „tiefsten“38 Verbs im zugehörigen Teilbaum erfasst. Das Objekt
wird ebenfalls im Verbteilbaum gesucht. Dieser Teilbaum kann auch aus Teilbäumen zu
Nomen, Präpositionen und Adjektiven bestehen. In den ersten beiden Fällen wird aus diesen Teilbäumen das erste auftauchende Nomen als Resultat verwendet. Im letzten Fall
wird das erste Adjektiv verwendet. Zu allen extrahierten Worten werden optional alle
(Wort-)Attribute mit extrahiert, sprich alle Wörter die in direkter Verbindung mit diesen
Wörtern stehen.
In dieser Arbeit wird eine leicht modifizierte Version dieses Algorithmus verwendet. Unter anderem wird neben Subjekt, Verb und Objekt noch die erste in der Baumstruktur
auftauchende Negation extrahiert. Außerdem werden Pronomen bei der Erfassung vom
Subjekt berücksichtigt.
37
Siehe dazu Parsing im Unterkapitel 2.2.4.
38
Tiefe im Sinne der Entfernung zum Wurzelknoten.
17
Abb. 2-2: Triplet Extraction Algorithmus aus dem Paper „Triplet Extraction from Sentences“, Rusu u. a. (2007).
18
3.
Privacy Practice Extractor
Der Privacy Practice Extractor ist eine Software, welche Praktiken aus Datenschutzerklärungen extrahiert. Dieser besteht aus drei Hauptkomponenten, dem Preprocessing, dem
hierarchischen Klassifikator und dem Satzkompressionsmodul. Durch diese drei Komponenten ist es möglich, Sätze aus Datenschutzerklärungen den vordefinierten Klassen
zuzuteilen und diese Sätze auf ihren Kerninhalt zu reduzieren. Die Software bietet dem
Benutzer flexibel an, eigene Klassendefinition über eine Datei einzulesen, sodass keine
Anpassungen im Quellcode notwendig sind. Es sei angemerkt, dass durch die Veränderung der Klassenstruktur der Klassifikator erneut trainiert werden muss. In der Abb. 3-1
werden die zusammenhängenden Prozesse anschaulich dargestellt.
3.1
Anforderungen
Die Erfassung von Datenschutzpraktiken bildet die Hauptanforderung an die Software.
Zur Erfüllung dieser Anforderung muss die Software Datenschutzerklärungen in Textform analysieren können. Ein Teil dieses Prozesses ist die Klassifikation der einzelnen
Sätze der Datenschutzerklärungen. Schließlich sollen die klassifizierten Sätze zusammengefasst werden, um die Kernaussage zu ermitteln. Neben diesen Anforderungen ist die
dynamische Anpassungsmöglichkeit der definierten Klassen anvisiert. Zudem sollen die
Klassen einer Baumrelation unterliegen, um somit Abhängigkeiten der Klassen untereinander präziser abzubilden.
19
Abb. 3-1: Übersicht zum Klassfikations- und Satzkompressionsprozess.
20
3.2
Verwendete Technologien
Zur Verwaltung und Einbindung der benutzten Bibliotheken wird das Build-ManagementTool „Maven“ verwendet, welches durch die Lizenz „Apache License 2.0“ geschützt ist
und somit zur kostenlosen Benutzung verwendet werden kann.39 Für die grundlegenden, computerlinguistischen Verfahren wurde die Stanford CoreNLP (Java-)Bibliothek
verwendet.40 Es bietet unter anderem Methoden zur Tokenisierung und zum Parsing. Sie
steht unter der GNU General Public License v3 und ist somit frei verfügbar für die akademische Nutzung.41
3.3
Implementierung
Bei der Implementierung des Privacy Practice Extractors wurde ein hoher Fokus auf Erweiterbarkeit/Modifizierbarkeit gesetzt. Alle (Haupt-)Klassen wurden mithilfe von Interfaces definiert. Alle Fremdinstanzen einer Hauptklasse wurden von außen injiziert, um
die Abhängigkeiten zwischen Klassen auf ein Minimum zu reduzieren.42 Somit ist es
möglich, den Preprocessor, den Klassifikator oder das Satzkompressionsmodul ohne hohen Aufwand auszutauschen. Auch die (Adapter-)Klassen im Preprocessor erfüllen diese
Anforderung. In dem restlichen Teil dieses Unterkapitels sollen die wichtigsten Klassen
erläutert werden. Aus Gründen der Übersichtlichkeit wurde das zugehörige Klassendiagramm in Teilklassendiagramme aufgeteilt, siehe dazu Abb. 3-2, Abb. 3-3, Abb. 3-4 und
Abb. 3-5.
PrivacyPracticeExtractor - Klasse
Die Kernklasse bildet die PrivacyPracticeExtractor Klasse, welche die drei Module zum
Preprocessing, Klassifikation und Satzkompression verwendet, um den Prozess der Erfassung von Praktiken aus Datenschutzerklärungen abzubilden. Es stehen lediglich öffentliche Methoden zum Start der Trainingsphase („trainClassifier“), zum Start des Evaluationsprozesses („evaluateClassifier“) und schließlich zur Extraktion von Praktiken aus
39
Siehe für weitere Informationen "https://maven.apache.org/".
40
Vgl. Manning u. a. (2014).
41
Siehe "http://nlp.stanford.edu/software/corenlp.shtml".
42
Auch bekannt unter Dependency Injection.
21
einer Datenschutzerklärung („extract“) bereit. Innerhalb dieser Klasse wird auch der Korpus erzeugt und bei Bedarf lokal gesichert oder geladen. Bevor extrahiert oder evaluiert
werden kann, muss der Klassifikator trainiert werden.
ExtractorFactory - Klasse
Da der PrivacyPracticeExtractor stets mit Interfaces arbeitet und die zugehörigen Objekte
nicht selbst erzeugt, um die Abhängigkeiten zu reduzieren, werden die Klassen zentral
erzeugt und injiziert. Die statische Methode „createPrivacyPracticeExtractor“ der ExtractorFactory Klasse erzeugt dementsprechend alle notwendigen Instanzen, sorgt dafür, dass
die Abhängigkeiten injiziert werden und gibt das aufbereitete Objekt der Klasse PrivacyPracticeExtractor zurück.
TripletExtractor - Klasse
Zur Extraktion von Subjekt, Verb und Objekt Triplets wird der in Kapitel 2.4 vorgestellte Algorithmus aus dem Paper „Triplet Extraction from sentences“ implementiert.43 Die
einzige öffentliche Methode „extract“, welche aus dem Interface „IExtractor“ abgeleitet
wird, nimmt eine (Hash-)Map mit klassifizierten Sätzen entgegen. Alle zu einer Klasse
gehörenden Sätze werden jeweils, falls möglich, zusammengefasst. Alle zusammengefassten Sätze einer Klasse werden konkatiert und zurückgegeben.
Hieron - Klasse
Der (hierarchische) Klassifikator „Batch Hieron“, nach Algorithmus 3, wird innerhalb
der Hieron Klasse implementiert. Außerdem verpflichtet sich diese Klasse das Interface
„IClassifier“ zu implementieren, wodurch die Methoden „train“ zum Trainieren des Klassifikators, „predictLabel“ um eine neue Instanz zu klassifizieren und „setRequiredData“
um die Klassendefinitionen zu injizieren, zur Verfügung stehen.
PreProcessor - Klasse
Die Aufarbeitung von Texten und die Abbildung in einen geeigneten Vektorraum wird innerhalb der PreProcessor Klasse durchgeführt. Zur Aufarbeitung benötigt der PreProces-
43
Vgl. Rusu u. a. (2007), S. 8-12.
22
sor einen Tokenisierer, einen Parser, einen Stemmer, einen Stoppwortfilter, einen FeatureSelector und eine Klasse, welche Texte in einen Vektorraum abbilden kann. Dafür erwartet
die Klasse Objekte, welche jeweils die Interfaces „ITokenizer“, „IStemmer“, „IParser“,
„IStopWordRemover“, „IFeatureSelector“ und „IVectorizer“ implementieren. Sie selbst
implementiert das Interface „IPreProcessor“, wodurch sichergestellt wird, dass die Aufarbeitung („processToText“) und die Abbildung in den Vektorraum („processToVector“)
gegeben sind. Die Methode „preProcessText“ führt beide Schritte in einem durch. Da der
PreProcessor maßgeblich vom benutzten Korpus abhängt, muss die Möglichkeit geboten
werden, diesen von außen zu injizieren, siehe dazu Methode „updateCorpus“. Die Feature Selection ist weder Teil der Aufarbeitung noch der Abbildung in den Vektorraum.
Deswegen existiert für sie eine eigene Methode „reduceCorpus“, welche als Resultat den
reduzierten Korpus zurückgibt.
Evaluator - Klasse
Für die Beurteilung des Klassifikators werden mehrere Experimente durchgeführt, welche unterschiedliche Metriken benutzen. Diese werden in Kapitel 4.1 vorgestellt und sind
in der Klasse Evaluator implementiert. Die öffentliche Methode „evaluate“, die vom implementierten Interface „IEvaluator“ definiert wird, führt alle Evaluationsschritte durch.
CoreNLP - Klassen
Alle (Adapter-)Klassen die zur Interaktion mit der Stanford CoreNLP (Java-)Bibliothek44
verwendet werden, erben von der CoreNLP Klasse. Namentlich sind das die Klassen Tokenizer und Parser. Die Tokenizer Klasse, welche außerdem das Interface „ITokenizer“
implementiert, realisiert die Definition 2.9 mithilfe der Methode „tokenizeToText“. Desweiteren wird noch durch die Methode „tokenize“ die Möglichkeit geboten, einen einzelnen Satz in seine Wortbestandteile zu zerlegen. Mithilfe der Parser Klasse können Sätze,
wie schon im Kapitel 2.2.4 erläutert, auf ihre grammatikalische Struktur hin zerlegt werden. Als Resultat erhält man die Strukturbeschreibung als Baum. Diese Restriktion ist
ebenfalls aus dem zugehörigen Interface „IParser“ abzuleiten, welches das Gerüst der
Methode „parse“ definiert.
44
Vgl. Manning u. a. (2014), S. 55-60.
23
Stemmer - Klasse
Die Stammformreduktion wird anhand des „Porter Stemming“ Algorithmus durchgeführt.45 Die theoretischen Grundlagen dazu befinden sich in Kapitel 2.2.5. Eine offizielle
Implementierung dieses Algorithmus in Java ist frei verfügbar auf der Webseite
http://tartarus.org/martin/PorterStemmer/. Die Implementierung ist in der Klasse „PorterStemmer“ zu finden. Die Stemmer Klasse dient als Adapterklasse um den Porter Stemmer
anzubinden. Außerdem wird das Interface „IStemmer“ implementiert. Dadurch wird die
Verfügbarkeit der überladenen Methode „stemm“ sichergestellt, die entweder ein Wort
oder alle Wörter eines ganzen Dokuments auf seine Stammform reduziert.
FeatureSelector - Klasse
Das in Algorithmus 1 vorgestellte Verfahren zur Dimensionsreduktion und zur Erfassung
der relevanten Wörter einer Klasse implementiert die FeatureSelector Klasse. Außerdem
wird innerhalb der Klasse die Berechnung des Nutzwertes nach Definition 2.11 umgesetzt. Mithilfe des zugrunde gelegten Interfaces „IFeatureSelector“ werden die Methoden
„selectFeatures“ und „reduceCorpus“ definiert, wobei erstere die relevanten Wörter einer
Klasse identifiziert und Letztere anhand der identifizierten Wörter jeder Klasse den gesamten Korpus auf diese Wörter reduziert.
Vectorizer - Klasse
Die Abbildung von Sätzen in einen Vektorraum ist Aufgabe der Klasse Vectorizer. Sowohl
das „Bag of Words“ Verfahren als auch die „tf-idf“ Gewichtungsmethode aus dem Unterkapitel 2.2.6 sind umgesetzt. Bevor jedoch eine Projektion in den Vektorraum möglich
ist, muss der Instanz dieser Klasse der zugrundeliegende Korpus mithilfe der Methode
„injectCorpus“ mitgeteilt werden. Daraufhin ist die Projektion eines Satzes in einen Vektor anhand der überladenen Methode „mapToVector“ möglich. Hierbei kann man jeweils
entweder einen einzigen Satz oder ein ganzes Dokument, bestehend aus mehreren Sätzen,
in einen Vektor oder mehrere Vektoren überführen. Diese Klassenstruktur ist abgeleitete
aus dem Interface „IVectorizer“.
45
Vgl. Porter (1997), S. 313-316.
24
Model - Klassen
Die mathematische Formalisierungen von Wörtern, Sätzen und (Text-)Dokumenten nach
den Definitionen 2.6, 2.7 und 2.8 werden mithilfe der Word, Sentence und Text Klassen
abgebildet. Der abgeleitete Korpus wird mithilfe der Dictionary Klasse modelliert. Unter
anderem beinhaltet die Klasse die Methode „populate“, wodurch jede Korpus Instanz mithilfe eines neuen Textes erweitert werden kann. Aufgrund des hohen Anteils an mathematischen Operationen aus der Linearen Algebra, werden Vektoren mit der gleichnamigen
Klasse abgebildet. Diese Klasse beinhaltet auch die Umsetzung der fundamentalen Vektoroperationen, wie z. B. (Skalar-)Multiplikation oder (Vektor-)Addition. Zur Realisierung
der unterschiedlichen Klassen im Klassifikator wurden entsprechend die Label Klassen
definiert. Eine Instanz entspricht in dieser Arbeit einer Kategorie aus Datenschutzerklärungen.
Converter - Klassen
Zum lokalen Sichern und Laden von Daten werden sogenannte Converter Klassen benutzt. Es bestehen jeweils solche Klassen für den Korpus („DictionaryConverter“), für
die Klassenstruktur („LabelConverter“), für die berechneten Prototypen des Klassifikators
(„PrototypeConverter“) und für die Sicherung von Hilfswerten („LabelDocumentConverter“). Alle Converter Klassen, außer der LabelConverter Klasse, (de-)serialisieren dabei
die Instanzen, welche gesichert oder geladen werden sollen. Zum Laden oder Speichern
der Klassenstruktur werden Textdateien benutzt, damit der Benutzer diese nach Wunsch
verändern kann.
SettingLoader - Klasse
Einstellungen, wie z. B. der maximale Timeout bei der Triplet Extraktion, werden über
die Datei settings.properties gesetzt. Die Schnittstelle zum Abfragen der jeweiligen Werte
einzelner Einstellungen ist über die Klasse SettingLoader gegeben. Sie implementiert das
Interface „ISettingLoader“, wodurch sichergestellt wird, dass alle Einstellungen abfragbar sind.
25
TextWriter, -Reader und Logger - Klasse
Für das Einlesen oder Speichern von Texten werden die TextWriter und -Reader Klassen
verwendet. Um den aktuellen Fortschritt des Extraktionsprozesses sowie auftauchende
Fehler in der Konsole auszugeben wird die Logger Klasse benutzt.
26
Abb. 3-2: Kernklassen und deren Relationen zueinander.
27
Abb. 3-3: PreProcessor und alle Bestandteile.
28
Abb. 3-4: Model Klassen.
29
Abb. 3-5: Service- und Hilfsklassen.
30
3.4
Anwendung
Den Klassifikator trainieren, einen Klassifikator evaluieren und Praktiken aus Datenschutzpraktiken extrahieren sind die für den Benutzer verfügbaren Hauptfunktionalitäten.
Zur Gewährleistung der Lauffähigkeit der Software müssen einige Schritte beachtete werden. Insbesondere die Ordnerstruktur ist fundamental für die einzelnen Hauptfunktionalitäten. Um den Klassifikator zu trainieren, muss mindestens die Ordnerstruktur (inklusive
der Trainingsdaten) nach Abb. 3-6 vorhanden sein.
/
PrivacyPracticeExtractor
PrivacyPracticeExtractor.jar
stopWords.txt
settings.properties
policyTreeStructure.txt
train
...
Abb. 3-6: Obligatorische Ordnerstruktur um den Klassifkator zu trainieren.
Die Stoppwörter sind in der Datei „stopWords.txt“ gespeichert und werden von der Software zur Laufzeit geladen. Globale Einstellungen, wie z. B. der maximale Timeout bei
der Triplet Extraktion, können durch die Konfigurationsdatei „settings.properties“ gesetzt
werden. Die Definition der Klassen einer Datenschutzerklärungen in Form einer Baumstruktur werden mithilfe der Datei „policyTreeStructure.txt“ geladen. Dem Benutzer steht
es also frei seine eigene Klassenstruktur zu verwenden. Jeder Knoten des Baumes wird
mithilfe folgender Syntax
[<VaterKnotenName>, <KnotenName>]
beschrieben. Der Wurzelknoten hat Null als Vaterknoten. Als Beispiel sei die Strukturbeschreibung
[null,Privacy Policy];[Privacy Policy,Change];[Privacy Policy,Collect];[Collect,Position]
gegeben.
31
Daraus folgt, dass der Baum aus Abb. 3-7 konstruiert wird.
Privacy Policy
Change
Collect
Position
Abb. 3-7: Baum induziert durch Strukturbeschreibung.
Für die Evaluation und den Extraktionsprozess ist die nach dem Trainingsvorgang resultierende Ordnerstruktur notwendig. Insbesondere die berechneten Daten werden lokal
gesichert. Alle Dateien mit der Endung „.cr“ entsprechen Daten, welche beim Trainingsprozess errechnet wurden und für alle folgenden Funktionalitäten unabdingbar sind. Außerdem benötigt die Evaluation noch Testdaten, die sich im Ordner „test“ befinden müssen. Sowohl im Test als auch im Trainingsordner müssen die Daten in Ordnern liegen, die
nach deren Klasse benannt sind. Die Baumstruktur exklusive dem Wurzelknoten muss
auch innerhalb dieser Ordner gewährleistet werden. In Abb. 3-8 ist exemplarisch die Ordnerstruktur inklusive der berechneten Dateien aus dem Trainingsvorgang anhand der oben
beschriebenen Strukturbeschreibung dargestellt.
/
PrivacyPracticeExtractor
PrivacyPracticeExtractor.jar
stopWords.txt
settings.properties
prototypes.cr
corpus.cr
labelDocumentCounter.cr
policyTreeStructure.txt
train
Change
Collect
Position
test
Change
Collect
Position
Abb. 3-8: Ordnerstruktur nach dem Trainingsprozess.
32
Führt man die Extraktionsfunktionalität aus, so wird als Resultat im Hauptordner in der
sich die .jar Datei befindet ein Ergebnisordner erstellt. Zur Identifizierbarkeit wird bei
jeder Extraktion ein neuer Ordner mit einem eindeutigen Zeitstempel erstellt. Innerhalb
dieses Ergebnisordners befindet sich zu jeder Klasse ein Ordner, in der alle klassifizierten
Sätze und die zusammengefassten Sätze einer Klasse abgespeichert sind. Die Zusammenführung aller klassifizierten und komprimierten Sätze ist in der Datei „completeSummarization“ gegeben.
Zum Starten der Anwendung gibt es mehrere Argumente, die übergeben werden können.
Der Trainingsprozess wird gestartet durch folgende Eingabe:
java -Xmx4g -jar PrivacyPracticeExtractor.jar -train y|n.
Das zweite Argument y(es) | n(o) gibt an, ob ein existierender Korpus verwendet werden
soll. Zum Starten des Evaluierungsprozesses verwendet man
java -Xmx4g -jar PrivacyPracticeExtractor.jar -valid
als Startkommando. Die Extraktion benötigt den Pfad zu einer Datenschutzerklärung (im
.txt Dateiformat) und wird gestartet durch
java -Xmx4g -jar PrivacyPracticeExtractor.jar -ext „<Pfad>“.
Mit dem Parameter „-Xmx4g“ wird sichergestellt, dass die virtuelle Maschine von Java
ausreichend Arbeitsspeicher (4 GB) zur Verfügung hat.
33
4.
Evaluation
Zur Analyse der implementierten Software zur Erfassung von Praktiken aus Datenschutzerklärungen, wird zuerst der verwendete Klassifikator beurteilt. Als Maße hierfür werden das „F-Maß“, eine Kombination der sogenannten „Präzision“ und „Sensitivität“, und
der „Tree Induced Error“ Wert verwendet. Zudem werden die klassifizierten Sätze einer
Datenschutzerklärung mithilfe der Triplet Extraktion komprimiert und tabellarisch verglichen.
4.1
Metriken
Eine gängige Methode zur Beurteilung eines Klassifikators bietet die Messung der Präzision (im engl. „Precision“) und der Sensitivität (im engl. „Recall“) an.46 Im Kontext
dieser Arbeit berechnet sich die Präzision durch den Anteil der richtig klassifizierten Sätze einer Klasse im Verhältnis zu allen Sätzen, die dieser Klasse zugeordnet wurden. Die
Sensitivität hingegen misst das Verhältnis zwischen den korrekt klassifizierten Sätzen und
allen Sätzen, die zu dieser Klasse gehören. Folgende Abb. 4-1 skizziert die Berechnung
beider Werte.
Abb. 4-1: Veranschaulichung der Berechnung der Präzision und Sensitivität.
46
Vgl. Carstensen u. a. (2009), S. 155.
34
Um diesen Vorgang mathematisch auszudrücken, betrachtet man die Menge aller im Korpus bekannten Sätze S und deren disjunkte Zerlegung in die Teilmengen S1 , . . . , Sk , wobei k = |Y | die Anzahl der unterschiedlichen Klassen sei. Jede Teilmenge Si beinhalte
nur die Sätze, die zu der Klasse i ∈ Y gehören. Außerdem sei f : S → Y eine Approximation eines Klassifikators, welche Sätze in eine Klasse zuordnet. Dann werden die
Richtig/Falsch positiv Werte rpi , fpi und Richtig/Falsch negativ Werte rni , fni einer Klasse
i ∈ Y wie folgt bestimmt
rpi = |{s ∈ S : f (s) = i ∧ s ∈ Si }|,
fpi = |{s ∈ S : f (s) = i ∧ s 6∈ Si }|,
(19)
rni = |{s ∈ S : f (s) 6= i ∧ s 6∈ Si }|,
fni = |{s ∈ S : f (s) 6= i ∧ s ∈ Si }|.
Hieraus folgt die gewichtete Berechnung der Präzision P und Sensitivität R über allen
Klassen gemäß
P =
R=
k
X
|Si |
i=1
k
X
i=1
S
·
rpi
,
rpi + fpi
rpi
|Si |
· i
.
S rp + fni
(20)
Kombiniert man schließlich beide Werte P und R, so erhält man das „F-Maß“, gegeben
durch47
F =2
P ·R
.
P +R
(21)
Ein weiteres Maß zur Beurteilung eines hierarchischen Klassifikators bietet der sogenannte „Tree Induced Error“ Wert an.48 Er berücksichtigt dabei die Relationen zwischen
Klassen, indem man für alle Testdatensätze {(xi , yi )}m
i=1 die Distanz zwischen der vorausgesagten Klasse ỹ und der korrekten Klasse y berechnet. Diese Distanzen werden dann
47
Vgl. den Absatz Costante u. a. (2012), S. 6.
48
Vgl. Dekel u. a. (2004), S. 31.
35
aufsummiert und normalisiert. Formal ausgedrückt berechnet sich der „TIE“ Wert durch
m
γ̃ =
1 X
γ(ỹi , yi ).
m i=1
(22)
Je kleiner also der TIE Wert γ̃ ist, desto genauer ist der Klassifikator.
4.2
Experimente
Zur Durchführung der Experimente wird eine Klassendefinition von Datenschutzerklärungen vorausgesetzt. Aktuell existiert noch keine klare Unterteilung des Inhaltes von
Datenschutzerklärungen in Klassen. Aufgrund der bereitgestellten Trainings- und Testdaten aus der Veröffentlichung „A Machine Learning Solution to Assess Privacy Policy
Completeness“49 werden die Klassendefinitionen dieser Arbeit das Fundament bilden.
Da aber diese Klassen keiner Relation unterliegen, wird noch die Ontologie aus der noch
nicht veröffentlichten Arbeit „Privacy Policy Content“50 hinzugezogen. Basierend auf
beiden Arbeiten wird nun eine Definition der Klassen hergeleitet, die einer Baumstruktur
unterliegt und für die Trainings- und Testdaten vorhanden sind. Es sei angemerkt, dass für
die Experimente nicht alle Klassen einer Datenschutzerklärung in Betracht gezogen wurden, da entweder Trainings-/Testdaten fehlen oder es keine passende Übereinstimmung
zwischen beiden Arbeiten gab. Für die Evaluation wurde aus diesem Umstand heraus eine minimale Klassendefinition angefertigt, welche einer Baumstruktur unterliegt, gemäß
folgender Abb. 4-2.
Privacy Policy
Change
Collect
Cookies
Retention
Security
Share
User Identifier
Abb. 4-2: Definition der Klassen einer Datenschutzerklärung.
In die Kategorie „Change“ werden alle Elemente einer Datenschutzerklärung zugeordnet, die sich mit der Veränderung der Erklärung befassen. Insbesondere ob und wie die
49
Siehe dazu Costante u. a. (2012).
50
Siehe dazu Dehling, Sunyaev (2015).
36
Benutzer über solche Veränderungen informiert werden, ist wesentlicher Bestandteil dieser Kategorie. Welche Daten gespeichert werden, fallen in den Bereich „Collect“. Dieser
wird noch unterteilt in „User Identifier“ und „Cookies“. In die Klasse „User Identifier“
fallen alle Praktiken, die Daten speichern, um den Benutzer eindeutig zu identifizieren.
Praktiken zur Benutzung und Speicherung von Daten mithilfe von Cookies werden zu der
gleichnamigen Kategorie zugeordnet. Aussagen zur Speicherung von Daten, insbesondere wieso und welche Daten vom Anbieter gespeichert werden, fallen in die Kategorie
„Retention“. Maßnahmen zur Datensicherheit fallen unter den Bereich „Security“. Die
letzte Kategorie „Sharing“ beinhaltet alle Praktiken, welche die Weitergabe von Daten
beschreibt.
Der Klassifikator soll anhand des F-Maßes und des TIE Wertes analysiert werden. Für
die Analyse wird zusätzlich die Anzahl der ermittelten Wörter bei der Feature Selection variiert. Es wird begonnen mit der Ermittlung von 10 signifikanten Wörtern bis hin
zu 150 Wörtern pro Klasse. Die für die Beurteilung des Klassifikators verwendete Anzahl an Sätzen pro Klasse aus den Trainings- und Testdaten ist in der folgenden Tab. 4-1
dargestellt.
Klasse
Trainingsdaten
Testdaten
Change
93
18
Collect
198
41
Cookies
211
51
User Identifier
45
10
Retention
14
8
Security
114
27
Share
221
44
Tab. 4-1: Anzahl der Trainings- und Testdaten.
37
Neben der Evaluation des Klassifikators soll noch die Satzkompression mithilfe der Triplet Extraktion durchleuchtet werden. Dazu werden exemplarisch 10 Sätze aus unterschiedlichen Datenschutzerklärungen tabellarisch gelistet mit ihren komprimierten Resultaten. Als Vergleich dient eine menschliche Zusammenfassung des Originalsatzes.
4.3
Ergebnisse
Beginnend mit der Analyse des Klassifikators werden die Ergebnisse der Experimente
durchleuchtet und diskutiert. Schließlich wird noch das Ergebnis der Satzkompression
vorgestellt.
Der hierarchische Klassifikator schneidet in den Ergebnissen ordentlich ab. In der folgenden Tab. 4-2 und Abb. 4-3 sieht man deutlich, dass man mithilfe der Feature Selection das
beste Ergebnis erreicht, indem man aus jeder Klasse 70 signifikanten Wörter verwendet.
Das beste Ergebnis mit einem F-Maß von ungefähr 68% hat noch einen hohen Abstand zu
den besten Ergebnissen (F-Maß ∼ 90%) aus der Veröffentlichung „A Machine Learning
Solution to Assess Privacy Policy Completeness“.51 Diese Diskrepanz kommt durch die
teilweise fehlende Parameteroptimierung und die Verwendung unterschiedlicher PreProcessing Techniken zustande.52
51
Vgl. Costante u. a. (2012), S. 8.
52
Vgl. Costante u. a. (2012), S. 5,7.
38
F-Maß
Präzision
Sensitivität
TIE
10
0.63
0.64
0.62
0.64
20
0.62
0.63
0.62
0.68
30
0.63
0.63
0.63
0.66
40
0.61
0.62
0.61
0.68
50
0.61
0.62
0.60
0.72
60
0.63
0.62
0.63
0.67
70
0.68
0.69
0.68
0.57
80
0.61
0.62
0.60
0.73
90
0.63
0.64
0.63
0.63
100
0.65
0.66
0.64
0.61
110
0.62
0.62
0.64
0.65
120
0.66
0.68
0.64
0.63
130
0.60
0.60
0.60
0.70
140
0.62
0.62
0.62
0.67
150
0.63
0.63
0.62
0.70
k
Tab. 4-2: Beurteilung des hierarchischen Klassifikators mit unterschiedlichen Feature
Selection Parametern k.
39
Bei der Beurteilung des TIE-Maßes, welches die Relationen zwischen den Klassen berücksichtigt, erhält man als niedrigsten und dementsprechend besten Wert 0.57. Diese
Ausprägung wird ebenfalls mithilfe der Feature Selection unter Berücksichtigung von 70
signifikanten Wörtern erreicht. Betrachtet man noch die Falsch positiv Werte fpi aus der
Tab. 4-3, so erkennt man deutlich, dass fälschlicherweise die meisten Sätze den Kategorien „Collect“ und „Change“ zugeordnet werden. Eine Analyse dieses Umstandes würde
helfen, Maßnahmen zu finden, die die Genauigkeit des Klassifikators verbessern.
Abb. 4-3: F-Maß, Präzision und Sensitivität des Hieron Klassifikators mit unterschiedlichen Feature Selection Parameter k.
40
Abb. 4-4: Tree Induced Error des Hieron Klassifikators mit unterschiedlichen Feature
Selection Parameter k.
Klasse i
fpi
Change
17
Collect
22
Cookies
7
User Identifier
2
Retention
0
Security
6
Share
5
Tab. 4-3: Die fpi Ausprägungen pro Klasse mit Feature Selection Parameter k = 70.
41
Die Satzkompression mithilfe der Triplet Extraktion liefert hingegen nicht die gewünschten Resultate. Eine Auflistung der Ergebnisse ist in Tab. 4-4 vorzufinden. Die eckigen
Klammern in der Spalte zur Triplet Extraktion beinhalten jeweils die zugehörigen Attribute der extrahierten Subjekte, Verben und Objekte. Falls keine Extraktion möglich war,
wird das Ergebnis mit „[-]“ markiert.
Die Komprimierung eines Satzes auf seine Kerninformationen ist in 9 von 10 Fällen nicht
gelungen. Eine große Hürde weist anscheinend die Extraktion des Verbs auf. Subjekt und
Objekt sind, falls die Extraktion möglich war, stets korrekt. Aufgrund dieser Resultate
muss das Fazit gezogen werden, dass die Triplet Extraktion sich nicht für den Prozess der
Erfassung von Praktiken eignet. Eine vielversprechende und „State of the Art“ Alternative
zur Satzkompression bietet der Algorithmus aus der Veröffentlichung „Dependency Tree
Based Sentence Compression“ an.53 Um die Extraktion von Praktiken aus Datenschutzerklärungen zu verbessern, wäre es sinnvoll den oben genannten Algorithmus einzubinden und über eine Auflistung von möglichen Praktiken zu verfügen. Letzteres würde den
Suchprozess präzisieren und ermöglichen die Güte der Extraktion zu messen.
53
Vgl. Filippova, Strube (2008), S. 25-31.
42
Original
Triplet Extraktion
Mensch
We may share your information
with third parties to perform services on our behalf.
[] We [] perform
[your] information.
We share your information.
For example, when you apply for a
Best Buy credit card, we may share
your personal information with our
banking partners that issue the card.
[-]
We share your
personal information.
We may occasionally release personal information as required by law,
for example, to comply with a court
order or subpoena.
[] We [] comply [personal] information
We release personal information.
We may share some or all of your
Personal Information with our affiliates, in which case we will seek to
require those affiliates to honor this
Privacy Policy.
[] We [] honor
[your Personal]
Information
We share your
personal information.
Commission Junction will only share your Information for the limited
purposes provided for in this Privacy Policy.
[] Junction [] provided [your ] Information
Commission
Junction
will
share your Information.
Google only shares personal information with other companies or individuals outside of Google in the
following limited circumstances.
[] Google [] following [personal ]
information
Google
shares
personal
information.
We also may share personal information in connection with cobranded product or service offerings.
[] We [] share
[personal] information
We share personal information.
For example, when you post content
to a LinkedIn Group that is open for
public discussion, your content, including your name as the contributor, may be displayed in search engine results.
[-]
Your shared content for open public may be displayed.
For example, when you post content
to a LinkedIn Group that is open for
public discussion, your content, including your name as the contributor, may be displayed in search engine results.
[-]
Your shared content for open public may be displayed.
We may share personal information in connection with financial products or services related to our business such as private label credit
cards.
[] We [] related
[personal ] information
We share personal information.
Tab. 4-4: Ergebnisse der Satzkompression mithilfe der Triplet Extraktion im Vergleich
zur menschlichen Zusammenfassung.
43
5.
Fazit
Die in dieser Arbeit entwickelte Software erfasst Praktiken aus englischen Datenschutzerklärungen mithilfe von Machine Learning und NLP Verfahren. Unter Berücksichtigung
der präsentierten Ergebnisse muss man schlussfolgern, dass man die Praktiken aus Datenschutzerklärungen maschinell in Kategorien zuordnen kann. Jedoch ist die Komprimierung der zugeordneten Sätze, die die Praktiken beschreiben, mit der in dieser Arbeit
vorgestellten Methode nicht zielführend. Als Ausblick wurde bereits ein alternativer Algorithmus vorgeschlagen. Des weiteren bieten sich noch andere Preprocessing Techniken
an, um die Genauigkeit des Klassifikators zu erhöhen.54 Schließlich sei noch angemerkt,
dass die Formatierung von Datenschutzerklärungen zur Kategorisierung bis jetzt nicht
ausgenutzt wird. Ein Ansatz wäre es die Überschriften in den Datenschutzerklärungen
miteinzubeziehen, da diese schon die erste Informationen zu der Kategorie eines Satzes
preisgeben.
54
Vgl. Feldman, Sanger (2006), S. 59-61.
44
Literaturverzeichnis
Carstensen u. a. (2009)
Carstensen, K., Ebert, C., Ebert, C., Jekat, S., Klabunde, R., Langer, H. (2009):
Computerlinguistik und Sprachtechnologie: Eine Einführung, 3. Aufl. Heidelberg:
Spektrum
Costante u. a. (2012)
Costante, E., Sun, Y., Petković, M., Hartog, J. den (2012): A Machine Learning Solution to Assess Privacy Policy Completeness: (Full Paper). Technical University of
Eindhoven. 2012.
Costante u. a. (2011)
Costante, E., Hartog, J., Petkovic, M. (2011): On-line trust perception: What really matters. In: Socio-Technical Aspects in Security and Trust (STAST), 2011 1st
Workshop on.
S. 52–59
Cristianini, Shawe-Taylor (2000)
Cristianini, Nello, Shawe-Taylor, John (2000): An Introduction to Support Vector
Machines: And Other Kernel-based Learning Methods, New York, NY, USA: Cambridge University Press
Dehling, Sunyaev (2015)
Dehling, T., Sunyaev, A. „Privacy Policy Content“. Working Paper. Universität zu
Köln, 2015.
Dekel u. a. (2004)
Dekel, O., Keshet, J., Singer, Y. (2004): Large Margin Hierarchical Classification.
In: Proceedings of the Twenty-first International Conference on Machine Learning.
S. 27 ff.
45
Feldman, Sanger (2006)
Feldman, R., Sanger, J. (2006): Text Mining Handbook: Advanced Approaches in
Analyzing Unstructured Data, New York, USA: Cambridge University Press
Filippova, Strube (2008)
Filippova, K., Strube, M. (2008): Dependency Tree Based Sentence Compression.
In: Proceedings of the Fifth International Natural Language Generation Conference.
S. 25–32
Gao u. a. (2014)
Gao, F., Dehling, T., Sunyaev, A. (2014): Useful Privacy Policy Content - Research
Outline and First Results. In: Proceedings of the Pre-ECIS 2014 eHealth Workshop.
Heyer u. a. (2008)
Heyer, G., Quasthoff, U, Wittig, T. (2008): Text Mining: Wissensrohstoff Text, 1.
korr. Nachdr. Herdecke ; Bochum: W3L-Verl.
Jing (2000)
Jing, H. (2000): Sentence Reduction for Automatic Text Summarization. In: Proceedings of the Sixth Conference on Applied Natural Language Processing.
S. 310–
315
Jøsang u. a. (2010)
Jøsang, A., Fritsch, L., Mahler, T. (2010): Privacy Policy Referencing. In: Trust,
Privacy and Security in Digital Business.
Jg. 2010, Bd. 6264, Springer Berlin
Heidelberg. S. 129–140
Laudon u. a. (2010)
Laudon, K., Laudon, J., Schoder, D. (2010): Wirtschaftsinformatik - Eine Einführung, 2. Auflage, München: Pearson Studium
46
Manning u. a. (2008)
Manning, C. D., Raghavan, P., Schütze, H. Machine Learning und NLP (2008): Introduction to Information Retrieval, New York, NY, USA: Cambridge University
Press
Manning u. a. (2014)
Manning, C. D., Surdeanu, M., Bauer, J., Finkel, J., Bethard, S. J., McClosky, D.
(2014): The Stanford CoreNLP Natural Language Processing Toolkit. In: Proceedings of 52nd Annual Meeting of the Association for Computational Linguistics:
System Demonstrations.
S. 55–60
Porter (1997)
Porter, M. F. (1997): Readings in Information Retrieval.
Morgan Kaufmann
Publishers Inc., S. 313–316
Rusu u. a. (2007)
Rusu, D., Dali, L., Fortuna, B., Grobelnik, M., Mladenic, D. (2007): Triplet Extraction from sentences. In: Proceedings of the 10th Internation Multiconference
Information Society-IS.
S. 8–12
Sommerville (2006)
Sommerville, I. (2006): Software Engineering: (Update) (8th Edition) (International Computer Science), Boston, MA, USA: Addison-Wesley Longman Publishing
Co., Inc.
Sunyaev u. a. (2014)
Sunyaev, A., Dehling, T., Taylor, P. L., Mandl, K. D. (2014): Availability and Quality of Mobile Health App Privacy Policies. In: Journal of the American Medical
Informatics Association (JAMIA).
S. 1–4
47
Wagenknecht, Hielscher (2014)
Wagenknecht, C., Hielscher, M. (2014): Formale Sprachen, abstrakte Automaten
und Compiler, 2. Aufl. Wiesbaden: Springer Vieweg