Declarative specification of data analytics tasks
Authors: Μακρυνιώτη Κωνσταντίνα 
Published: September 2021

Η διατριβή μελετά την εφαρμογή του δηλωτικού προτύπου στην περιοχή της ανάλυσης δεδομένων. Η έννοια του δηλωτικού προγραμματισμού συνήθως συνοψίζεται στη φράση "περιέγραψε τι κάνει το πρόγραμμα παρά πώς το κάνει". Καθώς η υιοθέτηση της επιστήμης δεδομένων μεγαλώνει με γοργούς ρυθμούς, έχει προκύψει η ανάγκη εκδημοκρατισμού των εργασιών ανάλυσης δεδομένων καθιστόντας την ανάπτυξη τους πιο προσιτή και λιγότερο κουραστική μέσω γλωσσών υψηλού επιπέδου. Εμπνεόμενοι από την επιτυχία του δηλωτικού προτύπου στα συστήματα σχεσιακών βάσεων δεδομένων, οι ερευνητές έχουν ξεκινήσει πρόσφατα να εξερευνούν αν η χρήση δηλωτικών γλωσσών στον τομέα της ανάλυσης δεδομένων, με έμφαση στους αλγορίθμους μηχανικής μάθησης, μπορεί να παρέχει ένα άλμα παραγωγικότητας για τους προγραμματιστές. Το πρώτο μέρος της διατριβής διεξάγει μία λεπτομερή επισκόπηση των τρέχοντων συστημάτων στις περιοχές της ανάλυσης δεδομένων και της μηχανικής μάθησης που αυτοχαρακτηρίζονται ως δηλωτικά. Τα κύρια χαρακτηριστικά των προγραμματιστικών τους μοντέλων, καθώς και οι τεχνικές βελτιστοποίησης που χρησιμοποιούνται σε αυτά τα συστήματα, αναλύονται μέσω συγκεκριμένων παραδειγμάτων κώδικα. Με βάση αυτά τα χαρακτηριστικά η διατριβή παρέχει μία κατηγοριοποίηση ενός μεγάλου εύρους συστημάτων στην προαναφερθείσα περιοχή και προτείνει ένα σύνολο επιθυμητών ιδιοτήτων για ένα σύστημα ανάλυσης δεδομένων/μηχανικής μάθησης που το καθιστούν πιο κοντά στους στόχους του δηλωτικού προτύπου. Το δεύτερο μέρος της διατριβής επικεντρώνεται στην έκφραση αλγορίθμων μηχανικής μάθησης με γλώσσες επερωτήσεων βάσεων δεδομένων και στην αποδοτική μεταγλώττιση και εκτέλεση τους με εξειδικευμένους λύτες μαθηματικής βελτιστοποίησης και πλατφόρμες μηχανικής μάθησης. Οι προτεινόμενες προσεγγίσεις βασίζονται στο πρότυπο "μοντέλο+λύτης", όπου υπάρχει μια περιγραφή της συνάρτησης κόστους του μοντέλου μηχανικής μάθησης και ένας αλγόριθμος επίλυσης που παρέχει τη βέλτιστη λύση για αυτή. Αρχικά, η διατριβή εξερευνεί τη χρήση της Datalog ως μία δηλωτική γλώσσα για γράψει κανείς μέρη ενός γραμμικού αλγορίθμου μηχανικής μάθησης, ο οποίος στη συνέχεια μετατρέπεται σε μία/ένα χαμηλού επιπέδου αναπαράσταση/μορφότυπο δεδομένων και καταναλώνεται από έναν αλγόριθμο γραμμικού προγραμματισμού. Η δεύτερη προσέγγιση προτείνει μία μέθοδο μετάφρασης συναρτήσεων κόστους μοντέλων μηχανικής μάθησης γραμμένων σε SQL σε τελεστές γραμμικής άλγεβρας όπως αυτοί παρέχονται από ένα εξειδικευμένο σύστημα μηχανικής μάθησης, για παράδειγμα το TensorFlow. Αυτή η προσέγγιση επεκτείνει την πρώτη ως προς το ότι καλύπτει μη γραμμικά μοντέλα μηχανικής μάθησης και παράγει αυτόματα κώδικα που χρησιμοποιεί πρωταρχικά στοιχεία μιας πλατφόρμας μηχανικής μάθησης παρά έναν μορφότυπο δεδομένων. Και στις δύο περιπτώσεις η υπολογισθείσα λύση αποθηκεύεται πίσω στη βάση δεδομένων, γεγονός που επιτρέπει την παραγωγή μελλοντικών προβλέψεων σε δεδομένα ελέγχου μέσα στη βάση δεδομένων. Στα πλαίσια αυτών των προσεγγίσεων, προτείνονται τεχνικές για την αυτοματοποίηση και βελτιστοποίηση της μεταφοράς δεδομένων μεταξύ δομών της βάσης δεδομένων (σχέσεις) και εκείνων της πλατφόρμας μηχανικής μάθησης (πολυδιάστατες συστοιχίες). Η διατριβή επιδεικνύει τις προτεινόμενες προσεγγίσεις μέσω πρότυπων συστημάτων, τα οποία υλοποιούν μια απ' άκρη σ' άκρη ροή εργασιών που ξεκινά στη βάση δεδομένων, προωθεί την εκπαίδευση του μοντέλου σε μια βιβλιοθήκη μηχανικής μάθησης, και αποθηκεύει τα υπολογεισθέντα βάση πίσω στη βάση δεδομένων. Παρουσιάζονται πειράματα σχετικά με τη διαδικασία μετάφρασης και τις τεχνικές βελτιστοποίησης μεταφοράς δεδομένων σε δημοφιλείς αλγορίθμους μηχανικής μάθησης, συμπεριλαμβανομένων των Γραμμική Παλινδρόμηση, Factorization Machines και Λογιστική Παλινδρόμηση, και σε διαφορετικά σύνολα δεδομένων.