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