ΠΤΥΧΙΑΚΗ / ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΜΕΘΟΔΟΛΟΓΙΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΠΡΟΤΥΠΩΝ ΑΝΟΜΟΙΟΤΗΤΑΣ ΣΕ ΠΑΡΑΛΛΗΛΕΣ ΚΑΙ ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΛΥΣΕΙΣ ΠΡΟΤΑΣΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ»

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΤΥΧΙΑΚΗ / ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΜΕΘΟΔΟΛΟΓΙΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΠΡΟΤΥΠΩΝ ΑΝΟΜΟΙΟΤΗΤΑΣ ΣΕ ΠΑΡΑΛΛΗΛΕΣ ΚΑΙ ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΛΥΣΕΙΣ ΠΡΟΤΑΣΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ»"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ / ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΜΕΘΟΔΟΛΟΓΙΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΠΡΟΤΥΠΩΝ ΑΝΟΜΟΙΟΤΗΤΑΣ ΣΕ ΠΑΡΑΛΛΗΛΕΣ ΚΑΙ ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΛΥΣΕΙΣ ΠΡΟΤΑΣΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ» Κουμαρέλας Ιωάννης Ιούνιος, 2012 Επιβλέπων Καθηγήτρια: κα. Βακάλη Αθηνά

2

3 Περίληψη Σε αυτήν την πτυχιακή ασχολούμαστε με τα Προτασιακά Συστήματα και πιο συγκεκριμένα επικεντρωνόμαστε στο πώς θα καταφέρουμε να φέρουμε εις πέρας καλύτερες προτάσεις. Για τον σκοπό αυτό αναπτύξαμε μια τεχνική που βασίζεται στα πρότυπα ανομοιότητας, δηλαδή στις διαφορές και όχι στις ομοιότητες όπως πράττουν τα περισσότερα συστήματα. Τα πρότυπα ανομοιότητας ενσωματώνονται στα συστήματα που βασίζονται στις ομοιότητες με στόχο την εκτίμηση βαθμολογίας για νέα αντικείμενα. Η τελική εκτίμηση αποτελεί συνδυασμό των εκτιμήσεων που προέρχονται από τις δύο διαφορετικές προσεγγίσεις. Ο τελικός μας στόχος είναι να φτάσουν καλύτερες προτάσεις στους χρήστες, οπότε και τελικά να μείνουν πιο ευχαριστημένοι. Η υλοποίηση της τεχνικής έγινε στο παράλληλο και κατανεμημένο περιβάλλον του Hadoop, όπου υλοποιήσαμε σε γλώσσα Java και σε λογική Map / Reduce, όλες τις απαραίτητες λειτουργίες που απαιτεί η τεχνική μας. Λόγω των μεγάλων συνόλων δεδομένων που καλούμαστε να εκτελούμε ένα Προτασιακό Σύστημα κάτι τέτοιο είναι απαραίτητο και με σωστές προγραμματιστικές τεχνικές πιστεύουμε πως το σύστημά μας είναι σε θέση να κλιμακώνεται σε ικανοποιητικό βαθμό. Δοκιμάζουμε το σύστημά μας σε γνωστά σύνολα δεδομένων που περιλαμβάνουν βαθμολογίες χρηστών σε ταινίες και στη συνέχεια παρουσιάζουμε και σχολιάζουμε τα αποτελέσματα.

4 Abstract In this thesis we deal with Recommendation Systems and more specifically we focus on how we can provide better suggestions to the users. For this purpose we developed a technique based on Dissimilarity Patterns, ie differences rather than the similarities as the majority of the existing Recommendation Systems does. Dissimilarity Patterns are incorporated into systems that are based on similarities in order to estimate ratings for new items. The final assessment is a combination from the two different approached. Our ultimate goal is to provide better suggestions to users and satisfy them. The implementation of the technique that we propose was made in the parallel and distributed environment of Hadoop, where all the necessary functions of our technique were programmed in Java language and with the Map / Reduce logic. This was necessary due to the large datasets we needed to analyze. We believe that, by using the right programming methodologies, our system is able to perform efficiently and escalate adequately in very large datasets. Finally we test our system and then we present and comment the results.

5 Ευχαριστίες Θα ήθελα να ευχαριστήσω την αναπληρώτρια καθηγήτρια κα. Βακάλη Αθηνά για την στήριξη που μου παρείχε, καθώς και για την εμπιστοσύνη που μου έδειξε δίνοντάς μου αυτήν την πολύ ενδιαφέρουσα αλλά και απαιτητική πτυχιακή εργασία που, όπως και όλα τα ερευνητικά πεδία με τα οποία ασχολείται, αποτελεί αντικείμενο αιχμής το οποίο ευελπιστούμε ότι θα επηρεάσει σε μεγάλο βαθμό ερευνητές και επιχειρήσεις του χώρου. Σε όλη την διάρκεια της ανάπτυξης της παρούσας πτυχιακής καθοριστική ήταν η υποστήριξη από τον υποψήφιο διδάκτορα Ζιγκόλη Χρήστο, χάρη στον οποίο με συνεχείς συμβουλές, διορθώσεις και φυσικά το μεγαλύτερο μέρος της ιδέας, κατάφερα να γράψω το κείμενο και να υλοποιήσω προγραμματιστικά την τεχνική μας. Δεν θα μπορούσα να ξεχάσω να ευχαριστήσω την οικογένειά μου και τους συγγενείς μου που στάθηκαν στο πλευρό μου όλα αυτά τα χρόνια, στηρίζοντάς με πνευματικά και οικονομικά ώστε να καταφέρω εκπληρώσω τα όνειρά μου. Σπουδαίοι ήταν και οι φίλοι που έκανα στα ακαδημαϊκά μου χρόνια με τους οποίους μοιραστήκαμε στιγμές χαράς, αλλά και πίεσης κατά τις εκπληρώσεις των ακαδημαϊκών μας καθηκόντων, τους οποίους και ευχαριστώ για την σπουδαία συνεργασία που είχαμε. Τέλος ευχαριστώ τη Yahoo! Research, που μας παρείχε το σύνολο δεδομένων επάνω στο οποίο εκτελέσαμε το σύστημά μας, ώστε να διαπιστώσουμε στην πράξη την αποτελεσματικότητα της τεχνικής μας.

6

7 Περιεχόμενα 1 Εισαγωγή Aνοιχτά προβλήματα Προτασιακά Συστήματα Δομή της πτυχιακής I ΘΕΩΡΗΤΙΚΗ ΑΝΑΛΥΣΗ 12 2 Προτασιακά Συστήματα Ο ρόλος και οι στόχοι Δεδομένα Τεχνικές και Κατηγορίες Προβλήματα Hadoop Διαδικασίες Map και Reduce Αρχιτεκτονική Προτασιακά Συστήματα και Hadoop Βιβλιογραφική Επισκόπηση II ΙΔΕΑ 37 5 Περιγραφή Συνεργατική Διήθηση Συντελεστής Γραμμικής Συσχέτισης Συνημίτονο Διήθηση βασισμένη στο περιεχόμενο Κ-Πλησιέστεροι Γείτονες Μηχανές Υποστήριξης Διανυσμάτων

8 5.2.3 Υπόλοιπα Εργαλεία Πρότυπα Ανομοιότητας Διαδικασίες Διατύπωση του προβλήματος Περιγραφή των Δεδομένων Μοντελοποίηση των δεδομένων Περιγραφή πλαισίου Καθολική προσέγγιση υπολογισμού των Προτύπων Ανομοιότητας Χώρος Καθολικής και Ατομοκεντρικής Προσέγγισης Πρόβλεψη βαθμολογίας βασισμένη στα Πρότυπα Ανομοιότητας III ΠΕΙΡΑΜΑΤΙΣΜΟΣ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΑ 58 7 Πλαίσιο Σχολιασμός Διαδικασιών Λεπτομέρειες υλοποίησης Πολυπλοκότητα 64 9 Συλλογή Δεδομένων Webscope Διαθέσιμα αρχεία Γενικές Λεπτομέρειες Αποτελέσματα Μέτρηση ακρίβειας Χρόνοι εκτέλεσης Συμπεράσματα Μελλοντικές Επεκτάσεις Αʹ Παράθεση κώδικα 88 Αʹ.1 main Αʹ.2 setup & cleanup Αʹ.3 Merging MapFiles

9

10 Κεφάλαιο 1 Εισαγωγή Το Internet, μια από τις σημαντικότερες εφευρέσεις του ανθρώπου, αποτελεί το επίκεντρο σχεδόν όλων των δραστηριοτήτων γύρω από την Πληροφορική. Στη βάση τους κτίσαμε το Web, το οποίο ξεκινώντας από το Web 1.0 όπου όλη η πληροφορία ήταν στατική, φτάσαμε σήμερα στο Web 2.0, όπου κατά κύριο λόγο είναι δυναμική, ενώ οι ερευνητές ήδη μελετούν τα επόμενα βήματα για ένα πιο έξυπνο Internet, όπως θα είναι αυτό του Semantic Web, Web 3.0 [1]. Σχήμα 1.1: Στατιστικά αριθμού χρηστών το 2011 Οι χρήστες περνώντας από τον παθητικό ρόλο στον ενεργητικό, πλέον είναι αυτοί οι οποίοι παράγουν την πληροφορία. Παράλληλα γίνεται 3

11 όλο και πιο εύκολο σε περισσότερο κόσμο να βρίσκεται συνεχώς online, αφού η τεχνολογία επιτρέπει πλέον στον καθένα μας να έχει μαζί του φορητές συσκευές, όπως laptop ή ακόμα καλύτερα πλέον tablet ή smartphone, γνωστές και ως Internet on-the-go επιλογές. Το γεγονός αυτό και η δημιουργία των Social Networks με την εκρηκτική εξάπλωσή τους, έχουν αλλάξει ριζικά το ρόλο του Web στις ζωές των ανθρώπων, αφού ο συνολικός αριθμός των χρηστών που χρησιμοποιεί το Internet, υπολογίζεται στα 2,28 δισεκατομμύρια, αποτελώντας το 32.7% του παγκόσμιου πληθυσμού όπως μπορούμε να δούμε στο Σχήμα 1.1. Είναι σαφές ότι αποτελεί έναν από τους πιο σημαντικούς τρέχοντες τομείς, αν όχι τον πιο σημαντικό, τόσο γενικά στο χώρο των επιστημών, όσο και ειδικότερα στο χώρο της Πληροφορικής. Ο συνδυασμός των προηγουμένων στοιχείων, έχει οδηγήσει σε εκθετική αύξηση της παραγωγής των δεδομένων, που έχει χαρακτηριστεί ως έκρηξη πληροφοριών που αν δεν αντιμετωπιστεί με συστηματικό τρόπο μπορεί να οδηγήσει στην λεγόμενη υπερφόρτωση πληροφοριών¹, όπου έχουμε πολλά δεδομένα αλλά δεν γνωρίζουμε πώς να τα αξιοποιήσουμε. Υπολογίζεται μάλιστα πως αυτή την χρονιά παράγονται περίπου 1.3 ΕΒ (1 ΕΒ [exabyte] = terabytes) / μήνα, ενώ το 2016 θα φτάσουμε στα 10.8 EB! ² Σχήμα 1.2: Στατιστικά δεδομένων Οι εταιρίες από την μεριά τους είναι κάτι παραπάνω από πρόθυμες στο ¹Information Overload, ²Cisco Data Stats, /ns705/ns827/white_paper_c html 4

12 να συλλέξουν τα δεδομένα που παράγονται από τους χρήστες, αφού αν τα αξιοποιήσουν αποτελεσματικά, πιστεύουν ότι θα μπορέσουν να αυξήσουν τις πωλήσεις τους. Στα πλαίσια αυτής της λογικής έχουν δημιουργηθεί τάσεις [2] οι οποίες ως επίκεντρο συλλογής των δεδομένων θεωρούν τους χρήστες όπως: collect more: όπου έχοντας μια συλλογή δεδομένων για έναν αριθμό χρηστών επεκτείνουμε των αριθμό των πεδίων-διαστάσεων τα ο- ποία συλλέγονται για τον κάθε χρήστη. collect specifically: όπου αντικαθιστούμε μια συναθροιστική συλλογή δεδομένων, με μια που στο επίκεντρό της έχει τους χρήστες. collect if you can: στην περίπτωση αυτή δοσμένης μιας ερώτησης ή ενός προβλήματος προς επίλυση συλλέγουμε πληροφορίες ξεκινώντας μια νέα ανθρωποκεντρική συλλογή σχετική με την ερώτηση ή το πρόβλημα. Έτσι λοιπόν όλο και περισσότερα δεδομένα παράγονται από τον κάθε χρήστη, που αφορούν πολλές από τις online δραστηριότητές του και βρίσκονται αποθηκευμένα σε διάφορους servers. Με τα δεδομένα αυτά προσπαθούμε αφενός να βρούμε τρόπους για να κάνουμε την online ζωή του καλύτερη, παρέχοντάς του καλύτερες υπηρεσίες, αφετέρου ως εταιρίες να έχουμε πιο αποτελεσματικά συστήματα που θα προσελκύουν περισσότερους πελάτες. Για να το καταφέρουμε όμως αυτό θα πρέπει να βρούμε κατάλληλες τεχνικές ώστε η διαχείρηση των δεδομένων που έχουμε στη διάθεσή μας να είναι αποδοτική και αποτελεσματική. 1.1 Aνοιχτά προβλήματα Ο μεγάλος όγκος από δεδομένα που προαναφέραμε, αποτελεί μια τρομερή ευκαιρία για νέες δυνατότητες στις υπηρεσίες. Δυστυχώς όμως για να κατορθώσουμε να το επιτύχουμε αυτό θα πρέπει να αντιμετωπίσουμε τα προβλήματα που συνοδεύουν τα μεγάλα μεγέθη δεδομένων. Τα συστήματα και οι αλγόριθμοι που έχουμε μέχρι σήμερα, δεν κλιμακώνονται πάντοτε αποτελεσματικά στις μεγάλες ποσότητες των δεδομένων. Έτσι τις περισσότερες φορές δημιουργούνται προβλήματα κατά την κλιμάκωση (scalability). Τέτοια προβλήματα μειώνουν δραματικά την αποδοτικότητα των συστημάτων με αποτέλεσμα πολλές φορές οι ερευνητές και οι μηχανικοί να καταλήγουν τις περισσότερες φορές στο 5

13 να θυσιάσουν κάποιο άλλο χαρακτηριστικό του συστήματος, όπως αυτό της αποτελεσματικότητας (efficiency), χρησιμοποιώντας συχνά πιθανοτικές μεθόδους, προκειμένου η απόδοση να διατηρείται σε καλό ή τουλάχιστον μέτριο επίπεδο. Η τεχνολογία όμως εξελίσσεται συνεχώς και σε πολλά σενάρια το να θυσιάσεις αποτελεσματικότητα για καλύτερους χρόνους δεν αποτελεί επιλογή, ιδιαίτερα όταν τα προβλήματα δεν είναι απαραίτητο να αντιμετωπίζονται αμέσως. Στην περιοχή αυτή βρίσκονται προβλήματα στα οποία έχουμε όλα τα δεδομένα πριν από την εκτέλεση, για αυτό οι αλγόριθμοι και τα συστήματα που χρησιμοποιούνται χαρακτηρίζονται ως ασύγχρονοι ή offline, σε αντίθεση με τους αντίστοιχους online όπου τα δεδομένα δίνονται συνεχώς και οι απαντήσεις απαιτούνται άμεσα. Αρκετά προβλήματα ανήκουν στην παραπάνω κατηγορία, με τα offline συστήματα να γνωρίζουν ιδιαίτερης έρευνας και ανάπτυξης τα τελευταία χρόνια, αφού είναι πιο εύκολα στον χειρισμό τους από τα online. Στην λογική αυτή η Google για να μπορέσει να διατηρεί τον αλγόριθμο PageRank [3], με τον οποίο καταφέρνει να φέρνει εις πέρας τις αναζητήσεις των χρηστών, εφηύρε την τεχνική του Map και Reduce [4]. Για λόγους ανταγωνισμού η Google διατηρεί τις υλοποιήσεις των προηγούμενων τεχνικών μυστικές, ωστόσο οι λογικές έχουν γίνει γνωστές. Αξιοποιώντας την λογική του Map/Reduce, η Yahoo ξεκίνησε στο Apache Software Foundation (ASF) ένα project που φιλοδοξούσε να αποτελέσει την Open Source έκδοση του Map/Reduce. Το project αυτό λέγεται Hadoop³, είναι γραμμένο σε Java και αποτελεί ένα από τα κορυφαία project στο ASF, με ενεργούς υποστηρικτές και contributers από πολλές εταιρίες και συνεχή εξέλιξη. Το Hadoop χρησιμοποιώντας την λογική του Map/Reduce καταφέρνει να κλιμακώνεται εντυπωσιακά, γεγονός που αποδεικνύεται και από τα μέχρι τώρα στοιχεία που έχουμε για την χρήση του, που κατά συνέπεια δικαιολογεί και την επιτυχία του. Είναι χαρακτηριστικό ότι σε αξιολόγηση που έγινε καταφέρνει να ταξινομήσει 1 Petabyte από δεδομένα σε μόλις ώρες, ενώ αντίστοιχα 1 Terabyte σε μόλις 62 δευτερόλεπτα!⁴ Αποτελεί επομένως μια καλή λύση στα προβλήματα που περιλαμβάνουν εργασίες με μεγάλο όγκο από δεδομένα, αφού όσο αυξάνονται τα δεδομένα εμείς συνήθως το μόνο που έχουμε να κάνουμε είναι να προσθέσουμε νέα nodes στο cluster μας και το σύστημα θα προσαρμοστεί ³Apache Hadoop - ⁴Sorting process with Hadoop - /05/hadoop_sorts_a_petabyte_in_162/ 6

14 αυτόματα, αυξάνοντας την αποδοτικότητά του. 1.2 Προτασιακά Συστήματα Τα Προτασιακά Συστήματα (Recommendation Systems) έχουν ως σκοπό να προτείνουν ένα ή περισσότερα αντικείμενα, σε έναν χρήστη. Τα αντικείμενα αυτά μπορεί να είναι videos σε έναν ιστοχώρο φιλοξενίας video, όπως Youtube, Vimeo και Dailymotion, άτομα σε ιστοχώρους κοινωνικής δικτύωσης τύπου Facebook και Twitter, ή στην περίπτωση την δική μας ταινίες σε ιστοχώρους περιγραφής και σχολιασμού ταινιών όπως IMDB, MovieLens και Netflix [5]. Η γενίκευση που δίνουμε στα αντικείμενα στα προτασιακά συστήματα αναδεικνύει ακριβώς την ευρύτητα των εφαρμογών τους. Για τον λόγο αυτό αποτελούν ένα ιδιαίτερα ενδιαφέρον αντικείμενο με το οποίο και θα ασχοληθούμε στην πτυχιακή αυτή. Οι υπηρεσίες που χρησιμοποιούν Προτασιακά Συστήματα, όπως αυτές που αναφέραμε, επεξεργάζονται τεράστια μεγέθη δεδομένων σε συνεχόμενη βάση ώστε να μπορούν να προτείνουν αποτελεσματικά αντικείμενα στους χρήστες τους. Ως εκ τούτου είναι απαραίτητο αυτό να μπορεί να πραγματοποιηθεί όσο πιο αποδοτικά γίνεται, καθώς οι απαιτήσεις αυξάνονται προς δύο κατευθύνσεις. Από την μια ο αριθμός των χρηστών, επομένως και των δεδομένων που παράγουν συνολικά, αυξάνεται από την άλλη οι απαιτήσεις των χρηστών μεγεθύνονται, κάτι που απαιτεί ενδεχομένως καλύτερες προτάσεις με βάση την ακρίβεια και την ποικιλία, το οποίο φέρνει μαζί του και επιπλέον πολυπλοκότητα στις εργασίες για κάθε χρήστη επάνω στα δεδομένα ή ακόμα και την συλλογή επιπλέον δεδομένων που θα βοηθήσουν προς αυτή την κατεύθυνση. Μελετώντας τα Προτασιακά Συστήματα διαπιστώνουμε ότι αποτελούν άλλο ένα παράδειγμα συστημάτων που παρουσιάζουν μια κλίση σε παράλληλες και κατανεμημένες λύσεις μέσα από τα ανάλογα περιβάλλοντα. Οι τρείς βασικές κατηγορίες των Προτασιακών Συστημάτων είναι: Συνεργατική διήθηση (Collaborative Filtering): Στην κατηγορία αυτή διαπιστώνεται μια ιδιαίτερη ανάγκη για Κατανεμημένα Περιβάλλοντα, αφού για να παραχθεί μία πρόταση σε έναν χρήστη απαιτείται η εμπλακή πολλών άλλων χρηστών σε αυτό, από το οποίο προκύπτει και άλλωστε η έννοια της συνερ- 7

15 γατικής διήθησης, οπότε όπως καταλαβαίνουμε υπάρχει και αυξημένο κόστος τόσο σε χρόνο αλλά και σε χώρο. Σε πειραματικές δουλειές που έχουν πραγματοποιηθεί [6] έχουν αναδειχθεί ήδη τα οφέλη της χρήσης Κατανεμημένων Περιβαλλόντων και πιο συγκεκριμένα της τεχνικής του Map/Reduce στο πλαίσιο του Hadoop, όπως είναι η ικανοποιητική κλιμάκωση (scalability) και αποτελεσματικότητα (efficiency) σε μεγάλα datasets. Διήθηση βασισμένη στο περιεχόμενο (Content-Based Filtering) Μια ιδιαίτερα σημαντική κατηγορία, όπου προσπαθούμε με βάση το περιεχόμενο των αντικειμένων να αντιληφθούμε την καταλληλότητά τους για τους χρήστες. Εύκολα καταλήγουμε και εδώ στην ανάγκη για κατανεμημένες λύσεις αφού το κόστος σε χρόνο και σε χώρο είναι και εδώ αυξημένο. Σχετικές δημοσιεύσεις αποδεικνύουν για άλλη μια φορά την σημασία των Κατανεμημένων συστημάτων αλλά και την χρησιμότητα της τεχνικής του Map και Reduce σε πλαίσια όπως το Hadoop για την παροχή υπηρεσιών σε τομείς όπως των Αποθηκών Δεδομένων και της Εξόρυξης Γνώσης από τα Δεδομένα [7], όπου τονίζεται και η χρησιμότητα του HDFS στην όλη διαδικασία. Υβριδικές προσεγγίσεις (Hybrid Recommender Systems) Το μεγαλύτερο μέρος των συστημάτων ανήκει σε αυτή την κατηγορία, όπου τεχνικές από τις παραπάνω αλλά και από άλλες κατηγορίες που δεν τις αναφέραμε, συνδυάζονται ώστε να παραχθούν τα καλύτερα αποτελέσματα. Οι δυσκολίες και σε αυτήν την προσέγγιση σε χωρικό και χρονικό κόστος, είναι ευκολονόητες έχοντας υπόψη μας ότι αποτελούν συνδυασμό των προηγούμενων κατηγοριών. Σε σχετικές εργασίες, τονίζεται και εδώ η συνεισφορά της κατανεμημένης λύσης του Hadoop για προώθηση αντικειμένων όπως τηλεοπτικών προγραμμάτων [8], συνδυάζοντας κατηγορίες όπως οι δύο προαναφερθήσες ώστε να μπορούν οι χρήστες να βρούνε ενδιαφέροντα προγράμματα ανάμεσα στις τόσες πολλές εναλλακτικές επιλογές. Στόχος μας με βάση αυτά που έχουμε αναφέρει μέχρι τώρα είναι να καταφέρουμε σε ένα παράλληλο και κατανεμημένο περιβάλλον να αυξήσουμε την ποιότητα των αποτελεσμάτων ενός προτασιακού συστήματος που εμείς θα αναπτύξουμε με βάση κάποιες τεχνικές, καθώς και να βγάλουμε κάποια συμπεράσματα σχετικά με την αποδοτικότητα του συνολικού συστήματος. Ως περιβάλλον θα αξιοποιήσουμε την πλατφόρμα του Hadoop, πάνω στην οποία θα αναπτύξουμε το δικό μας 8

16 σύστημα. 1.3 Δομή της πτυχιακής Το κείμενο χωρίζεται σε τρία μέρη. Στο πρώτο μέρος ασχολούμαστε με το θεωρητικό μέρος της πτυχιακής, στο δεύτερο μέρος συνεχίζουμε με την ιδέα μας, ενώ στο τρίτο μέρος αναλύουμε την πρακτική υλοποίηση. Πιο συγκεκριμένα: ΘΕΩΡΗΤΙΚΗ ΑΝΑΛΥΣΗ Στο μέρος αυτό θα περιγράψουμε θεωρητικά τους στόχους και την λογική που αφορά τα Προτασιακά Συστήματα, την Παράλληλη και Κατανεμημένη λύση που μας προσφέρει το Hadoop και πως αυτά μπορούν να συνδυαστούν αποδοτικά. Τα κεφάλαια επομένως είναι τα εξής: ΙΔΕΑ Προτασιακά Συστήματα: Η έννοια των Προτασιακών Συστημάτων, ποιός είναι ο ρόλος τους, τι προσπαθούνε να επιτύχουνε, ποιά είναι οι βασικές οντότητες των δεδομένων με τα οποία πραγματεύονται, ποιές είναι οι κυριότερες τεχνικές και κατηγορίες τους, και ποιά είναι τα πιο σημαντικά προβλήματα που συναντούμε σε αυτά. Hadoop: Πως ξεκίνησε, τι προσπαθεί να λύσει, τι σημαίνουν οι διαδικασίες Map και Reduce και πως λειτουργούν, ποιά είναι η αρχιτεκτονική του και οι υπηρεσίες του, και ποιές είναι οι πιο γνωστές πολιτικές δρομολόγησης των εργασιών που χρησιμοποιούνται σε αυτό. Προτασιακά Συστήματα και Hadoop: Θα προσεγγίσουμε το ζήτημα του συνδυασμού των δύο τεχνολογιών εξηγώντας τα θετικά σημεία του Hadoop και το πώς αυτά θα μπορέσουν να λύσουν-μειώσουν τα προβλήματα των Προτασιακών Συστημάτων, καθώς επίσης και σχετική δουλειά που έχει γίνει όπου προσπάθησαν να συνδυάσουν αυτά τα δύο συστήματα. Σε αυτό το μέρος θα αναλύσουμε την ιδέα γύρω από τα Πρότυπα Ανομοιότητας για τα προτασιακά συστήματα που προτείνουμε, τις διαδικασίες που θα πρέπει να γίνουν και πως τελικά αυτά θα μας βοηθήσουν να επιτύχουμε το σκοπό μας. Τα κεφάλαια: 9

17 Περιγραφή: Αναφέρουμε τα πιο διαδεδομένα εργαλεία που χρησιμοποιούνται κατά την ανάπτυξη των Προτασιακών Συστημάτων, κατηγοριοποιώντας τα ανάλογα με την κατηγορία των Προτασιακών Συστημάτων. Στην συνέχεια εξηγούμε πως ξεκίνησε η ιδέα των Προτύπων Ανομοιότητας από έρευνες της ψυχολογίας και πως αυτή θα έχει αποτέλεσμα στον τομέα των Προτασιακών Συστημάτων. Διαδικασίες: Διατυπώνουμε το συνολικό πρόβλημα περιγράφοντας τα δεδομένα και τις δομές που θα αναπτύξουμε προκειμένου να υλοποιήσουμε την τεχνική μας. Στην συνέχεια περιγράφουμε τα τρία κύρια μέρη του πλαισίου που συμβάλλουν καθοριστικά στην παραγωγή των νέων εκτιμήσεων των βαθμολογιών, αξιοποιώντας τις προηγούμενες δομές. ΠΕΙΡΑΜΑΤΙΣΜΟΣ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΑ Συνεχίζοντας στο μέρος αυτό αναλύουμε το πρακτικό μέρος της υλοποίησής μας, περιγράφοντας τις τεχνικές λεπτομέρειες του συστήματος που κατασκευάσαμε. Θα δούμε ποιά σημεία θέλανε ιδιαίτερη προσοχή, τι διαδικασίες αναπτύξαμε και ποια είναι τα complexities σε χώρο και χρόνο ανά διαδικασία. Κατόπιν θα περιγράψουμε τις συλλογές δεδομένων τις οποίες χρησιμοποιήσαμε και θα αναλύσουμε τα αποτελέσματα του συστήματός μας και της μεθόδου μας, ώστε να βγούνε κάποια συμπεράσματα σχετικά με το κατά πόσο η μέθοδός μας είναι τελικά αποτελεσματική. Τα κεφάλαια σε αυτό το μέρος είναι τα παρακάτω: Πλαίσιο (Framework): Στο κεφάλαιο αυτό περιγράφουμε τις διαδικασίες που απαρτίζουν το πλαίσιό μας δίνοντας και τα ανάλογα σχήματα για να γίνει ακόμα πιο εύκολα κατανοητή η ροή των διεργασιών μέσα στο σύστημά μας. Κατόπιν επισημαίνουμε κάποιες πολύ σημαντικές λεπτομέρειες της υλοποίησής μας που θα πρέπει ο αναγνώστης που θα θελήσει να ασχοληθεί με παρόμοια συστήματα να έχει υπόψη του. Πολυπλοκότητα (Complexity): Δίνουμε τις πολυπλοκότητες σε χρόνο και χώρο που αναλογούν σε κάθε διαδικασία που εκτελείται στο πλαίσιό μας. Συλλογή δεδομένων: Ποιό είναι το σύνολο δεδομένων που θα χρησιμοποιήσουμε για τους πειραματισμούς μας, ποιά αρχείο το αποτελούν και ποιά είναι η δομή τους. Αποτελέσματα: Παρουσιάζουμε τους χρόνους εκτέλεσης του 10

18 συστήματός μας επάνω στο σύνολο δεδομένων στο οποίο το εκτελέσαμε και σχολιάζουμε τα αντίστοιχα ποσοστά βελτίωσης και επιτυχίας. Συμπεράσματα: Δίνουμε τα τελικά συμπεράσματα σχετικά με την όλη ιδέα και την υλοποίηση όσον αφορά τους χρόνους εκτέλεσης, τα ποσοστά επιτυχίας και άλλες μετρικές. Τέλος αναφερόμαστε σε προσθήκες και αλλαγές που σκοπεύουμε να κάνουμε σε μελλοντικές δουλειές. 11

19 Μέρος I ΘΕΩΡΗΤΙΚΗ ΑΝΑΛΥΣΗ 12

20 Κεφάλαιο 2 Προτασιακά Συστήματα Τα Προτασιακά Συστήματα αποτελούν μια ερευνητική περιοχή η οποία εμφανίστηκε για πρώτη φορά στα μέσα του 1990 [9]. Η βασική ιδέα γύρω από τα Προτασιακά Συστήματα είναι αρκετά απλή και έχει ως στόχο την προώθηση ενός αντικειμένου (item) προς έναν χρήστη (user). Εν έτη 2012 το να πετύχουμε τον παραπάνω στόχο αποτελεί ένα πάρα πολύ σημαντικό ζήτημα, καθώς η μεγάλη ελευθερία που μας δίνει το Web συνήθως μας οδηγεί μπροστά σε πληθώρα επιλογών τόσο μεγάλη που, χωρίς ένα οργανωμένο σύστημα που να κατευθύνει αποτελεσματικά τον χρήστη, οδηγεί τις περισσότερες φορές στην απραξία. Έγινε κατανοητό δηλαδή ότι παρότι η δυνατότητα-ελευθερία επιλογής είναι καλή, η υπερβολική ελευθερία επιλογής δεν είναι καλή, οδηγώντας σε αντίθετα αποτελέσματα, που στην περίπτωση του Web μας δείχνει απευθείας τον δρόμο προς τα Προτασιακά Συστήματα. 2.1 Ο ρόλος και οι στόχοι Όπως προαναφέραμε τα Προτασιακά Συστήματα απευθύνονται κυρίως σε άτομα που δεν έχουν την απαιτούμενη εμπειρία ώστε να επιλέξουν ανάμεσα στις τόσες πολλές επιλογές που για παράδειγμα ένα Web site τους προτείνει. Στην περίπτωση των προτάσεων ταινιών ο στόχος είναι να καταφέρουμε να προτείνουμε σε κάθε χρήστη ταινίες οι οποίες θα αρέσουν σε αυτόν και όχι απαραίτητα στο σύνολο των χρηστών, γιατί οι προτιμήσεις τους μπορεί να μην συμπίπτουν. Η περίπτωση της γενικής πρότασης περιεχομένου σε όλους τους χρήστες, είναι κοινή σε περιοδικά ή εφημερίδες, όπου προτάσεις με την μορφή Οι 10 καλύτερες ταινίες 13

21 της χρονιάς είναι σύνηθες φαινόμενο. Στην πιο απλή τους μορφή οι προσωπικές προτάσεις προσφέρονται ως βαθμολογημένες λίστες αντικειμένων [10]. Κατά την πρόβλεψη αυτών των βαθμολογημένων λιστών τα Προτασιακά Συστήματα (Π.Σ.) προσπαθούν να αξιοποιήσουν όλη την διαθέσιμη πληροφορία που έχουν για τον κάθε χρήστη ξεχωριστά, όπως ποια αντικείμενα επισκέφτηκε, αν έγραψε κάποιο σχόλιο ή έδειξε το ενδιαφέρον του με την μορφή των γνωστών πλέον Μου αρέσει επιλογών. Στον πυρήνα των Π.Σ. και πιο συγκεκριμένα στην κατηγορία της Συνεργατικής Διήθησης, βρίσκεται μια παρατήρηση ότι οι άνθρωποι τείνουν να εμπιστεύονται άλλα άτομα για το τι θα επιλέξουν, άτομα που έχουν κάποια ειδική γνώση στο αντικείμενο ή απλά έχουν μια πιο προχωρημένη εμπειρία με αυτό. Για παράδειγμα στην καθημερινότητά μας πολλές φορές συμβουλευόμαστε συναδέλφους μας ή φίλους μας για το ποιά ταινία να δούμε ή πιο βιβλίο να διαβάσουμε. Σε αυτήν την κατεύθυνση λοιπόν τα Π.Σ. θεωρούν πως αν ένας χρήστης φαίνεται πως έχει κοινές προτιμήσεις με άλλους χρήστες σε κάποια αντικείμενα, τότε είναι αρκετά πιθανόν να τον ενδιέφεραν και περαιτέρω αντικείμενα που αυτοί οι άλλοι χρήστες έχουν προτιμήσει. Αντίστοιχα στην περίπτωση της κατηγορίας Διήθηση βασισμένη στο Περιεχόμενο, η παρατήρηση αφορά το γεγονός ότι αντικείμενα που έχουν αρκετά κοινά χαρακτηριστικά με προηγούμενα αντικείμενα που έχει προτιμήσει ή αγοράσει ο χρήστης, θεωρείται αρκετά πιθανόν να αποτελούν και μελλοντική προτίμηση ή αγορά του χρήστη. Είναι εύκολα κατανοητό ότι οι προηγούμενες δύο παρατηρήσεις μπορούν να συνδυαστούν, ώστε να παράξουν υβριδικές προσεγγίσεις. Ο ρόλος των Π.Σ. έγινε επομένως όλο και πιο σημαντικός καθώς ο όγκος της πληροφορίας αυξάνεται με τα χρόνια. Τα Π.Σ. αποδείχτηκαν πολύτιμα αφού μέχρι στιγμής έχουν καταφέρει μεγάλα βήματα στην διαχείρηση όλης αυτής της πληροφορίας. Τα συστήματα είναι σε θέση να κατευθύνουν πλέον έναν χρήστη προς ένα καινούριο, μη δοκιμασμένο αντικείμενο. Το πώς θα καταφέρει να φέρει εις πέρας την πρόταση το σύστημα εξαρτάται απο πολλούς παράγοντες όπως, τι μεθόδους χρησιμοποιεί το σύστημα, ποιές είναι οι ανάγκες του χρήστη, ποιές είναι οι συνήθειές του και πολλές άλλες πληροφορίες. Ο χρήστης τελικά μπορεί να απορρίψει ή να δεχτεί την ή τις προτάσεις και μπορεί, αν το σύστημα το επιτρέπει, να τροφοδοτήσει επιπλέον πληροφορίες στο σύστημα (relevance feedback) ώστε οι επόμενες προτάσεις να γίνουν πιο αποτελεσματικές. 14

22 Είναι σημαντικό σε ένα Προτασιακό Σύστημα να ξεχωρίσουμε τον ρόλο του χρήστη από αυτόν του παρόχου του συστήματος. Ο βασικός στόχος ενός χρήστη είναι να βρεί ένα αντικείμενο ώστε να ικανοποιήσει τις ανάγκες του ή τις προσωπικές του επιθυμίες. Σε αντίθεση οι πάροχοι των συστημάτων έχουν διάφορους λόγους για τους οποίους θα θέλουν ένα εξελιγμένο Π.Σ. μερικοί από τους οποίους εξηγούνται προσεχώς: Αύξηση του αριθμού των αντικειμένων τα οποία πωλούνται: Αυτός είναι ίσως ο πιό σημαντικός λόγος για την ύπαρξη ενός εμπορικού Π.Σ., να μπορεί δηλαδή να αυξήσει τον αριθμό των πωλήσεων σε ένα μεγάλο βαθμό, από τον αντίστοιχο αριθμό χωρίς την χρήση Π.Σ.. Ο στόχος αυτός έχει αρκετές πιθανότητες να επιτευχθεί αφού οι προτάσεις όπως είπαμε είναι προσαρμοσμένες επάνω στις ανάγκες του εκάστοτε χρήστη. Ακόμη όμως και σε μη εμπορικές εφαρμογές ο στόχος παραμένει παρόμοιος, όπως για παράδειγμα σε ένα ενημερωτικό Web site. Μπορούμε επομένως να πούμε ότι ο πρωταρχικός στόχος είναι να αυξήσουν τον αριθμό των χρηστών που δέχονται μια πρόταση και στην συνέχεια προτιμούνε ή αγοράζουνε ένα αντικείμενο, σε αντίθεση με τους χρήστες που απλά πλοηγούνται μέσα στην Ιστοσελίδα χωρίς κάποιο συγκεκριμένο στόχο. Πώληση μεγαλύτερος γκάμας προϊόντων: Άλλος ένας πολύ σημαντικός στόχος των Π.Σ. είναι να επιτρέψουν στον χρήστη να επιλέξει αντικείμενα τα οποία θα ήταν δύσκολο να βρεί χωρίς μια συγκεκριμένη πρόταση. Για παράδειγμα σε ένα Π.Σ. ταινιών όπως το Netflix, ο απώτερος σκοπός του παρόχου είναι να νοικιάσει όλες τις ταινίες στον κατάλογο, όχι μόνο τις πιο δημοφιλείς. Αυτό θα μπορούσε να είναι αρκετά δύσκολο χωρίς ένα Π.Σ., αφού ο πάροχος θα έπρεπε να διαλέξει να διαφημίζει ταινίες οι οποίες τις περισσότερες φορές δεν θα συμφωνούσαν με τις προτιμήσεις των χρηστών. Έτσι λοιπόν το Π.Σ. προτείνει μη δημοφιλείς ταινίες στους σωστούς χρήστες. Αύξηση της ικανοποίησης των χρηστών: Ένα καλό Π.Σ. θα πρέπει να έχει και ως στόχο του την ικανοποίηση των χρηστών του. Για να το πετύχει αυτό το σύστημα θα πρέπει να πληρεί κάποιες προϋποθέσεις, όπως καλή επικοινωνία Ανθρώπου-Υπολογιστή και καλές προτάσεις από το σύστημα. Ο συνδυασμός όλων των προϋποθέσεων θα ανεβάσει την εκτίμηση που έχει ο χρήστης για το σύστημα, το οποίο με την σειρά του θα οδηγήσει σε μεγαλύτερη χρήση του συστήματος από τον χρήστη, και επομένως την πιθανό- 15

23 τητα ότι κάποια από τις προτάσεις θα είναι πετυχημένη. Ώστόσο ο τελευταίος τομέας της ικανοποίησης των χρηστών είναι ιδιαίτερα περίπλοκος και θα πρέπει να λαμβάνονται υπόψη επιπλέον θέματα όπως Αναγνώριση ενός παλιού χρήστη το οποίο επιτυγχάνεται μέσα από τα λεγόμενα Cookies στους Web browsers, Καλύτερη κατανόηση του τι θέλει ο χρήστης όπου ίσως θα πρέπει από την μεριά τους οι επιχειρήσεις να εκμεταλλευτούν την διαθέσιμη πληροφορία ακόμη και για να δημιουργήσουν καινούρια προϊόντα φτιαγμένα επάνω στις ανάγκες των πελατών τους. Ένα καλό σύστημα λοιπόν πρέπει να είναι σε θέση να λαμβάνει υπόψη του όλες τις προηγούμενες προϋποθέσεις και να προσπαθεί να ισορροπήσει ανάμεσα στις ανάγκες του παρόχου του Π.Σ. και των χρηστών. 2.2 Δεδομένα Τα Προτασιακά Συστήματα αποτελούν συστήματα επεξεργασίας πληροφορίας που έχουν ως στόχο την συλλογή δεδομένων και την επεξεργασία τους. Οι βασικοί άξονες γύρω από τους οποίους κινούνται τα δεδομένα είναι οι εξής: Αντικείμενο (Item): Τα αντικείμενα είναι αυτά που προτείνονται. Ένα αντικείμενο μπορεί να είναι χρήσιμο προς έναν χρήστη, όπου και θα το χαρακτηρίζαμε με θετική τιμή, ή μη χρήσιμο, με αρνητική τιμή αντίστοιχα. Οι σχεδιαστές των Π.Σ. πρέπει να έχουν υπόψη τους ότι κάθε φορά που προτείνεται ένα αντικείμενο σε έναν χρήστη, υπάρχει ένα κόστος από την πλευρά του χρήστη για να το διαβάσει, ακόμη και αν δεν το επιλέξει τελικά. Όταν κάτι βέβαια είναι χρήσιμο και παρακινεί τον χρήστη στην επιλογή του τότε θεωρούμε πως το κόστος της ανάγνωσης του αντικειμένου είναι μικρότερο από την χρησιμότητά του, οπότε και ο χρήστης μένει ευχαριστημένος. Διαφορετικά αντικείμενα, έχουν και διαφορετικό κόστος ανάγνωσης, αφού για παράδειγμα μια απλή είδηση σε ένα Web site έχει μικρότερο κόστος για την ανάγνωσή του για έναν χρήστη απ ότι μια ταινία ή ένα ηλεκτρονικό προϊόν, όπου ο χρήστης θα πρέπει να αναλύσει κάπως παραπάνω το όλο θέμα, διαβάζοντας ίσως κάποιες σχετικές κριτικές πριν καταλήξει στην τελική του άποψη. Ακόμη μεγαλύτερα όσον αφορά το κόστος βρίσκονται αντικείμενα όπως οι ασφαλιστικές πολιτικές, χρηματοοικονομικές επενδύσεις και επαγγέλματα [11]. 16

24 Τα Π.Σ. θα πρέπει να χρησιμοποιούν διάφορα χαρακτηριστικά από τα προϊόντα για τις διάφορες προτάσεις τους. Πιο συγκεκριμένα στην περίπτωση των προτάσεων σε συστήματα ταινιών, η κατηγορία (όπως: δράμα, θρίλερ, περιπέτεια), ο σκηνοθέτης, ο σεναριογράφος και οι ηθοποιοί μπορούν να χρησιμοποιηθούν ώστε να περιγράψουν μια ταινία και να βοηθήσουν ώστε να γίνουν καλύτερες προτάσεις. Η τελική απόφαση βέβαια για το ποιά από τα χαρακτηριστικά θα χρησιμοποιηθούν επαφίεται στους ανθρώπους που κατασκευάζουν το σύστημα, οι οποίοι μπορεί να επιλέξουν να χρησιμοποιήσουν απλά IDs, πιο πλούσια μορφή όπως ένα set από χαρακτηριστικά ή σε πιο ακραίες περιπτώσεις ακόμα και να αναπτύξουν μια δική τους οντολογία σχετική με το αντικείμενο. Χρήστες (Users): Οι χρήστες είναι οι παραλήπτες των προτάσεων. Ο κάθε χρήστης είναι διαφορετικός από τους υπόλοιπους και αυτό αποτελεί το πιό δύσκολο κομμάτι για ένα Π.Σ., να καταφέρει να συγκεντρώσει αρκετές πληροφορίες, και χρησιμοποιώντας ανάλογες τεχνικές να αποφασίσει ποιές προτάσεις θα είναι οι κατάλληλες για αυτόν τον χρήστη. Το μοντέλο του κάθε χρήστη, το οποίο κτίζεται χρησιμοποιώντας τις πληροφορίες που έχουμε για αυτόν αποτελεί τον πιο καθοριστικό παράγοντα για τις όποιες προτάσεις. Διάφορες προσεγγίσεις έχουν γίνει ως προς το μοντέλο του χρήστη που πρέπει να διατηρείται από το Π.Σ. και κατά κάποιον τρόπο μπορούμε να δούμε το Π.Σ. ως ένα εργαλείο το οποίο καταφέρνει να παράγει προτάσεις κτίζοντας και αξιοποιώντας τα μοντέλα των χρηστών [12]. Καθώς, επομένως, οι προσωπικές προτάσεις είναι ο στόχος μας και όχι οι γενικές, όπως στην περίπτωση των Καλύτερων 10 επιλογών, ο ρόλος του μοντέλου του χρήστη θα παραμένει σημαντικός. Ακόμη τα δεδομένα των χρηστών μπορεί να περιλαμβάνουν περαιτέρω πληροφορίες, όπως οι σχέσεις μεταξύ χρηστών, οι οποίες μπορούν να παίξουν τον ρόλο τους κατά την διαδικασία της σύστασης ενός αντικειμένου. Συναλλαγές (Transactions): Ως συναλλαγή εννοούμε την κατεγραμμένη διάδραση του χρήστη με το Προτασιακό Σύστημα. Κατά την διάδραση αυτήν οποιαδήποτε πληροφορία που μπορεί να θεωρηθεί σημαντική όπως ποιά αντικείμενα επισκέφτηκε, τι βαθμολογία τους έδωσε αν αυτή η δυνατότητα είναι διαθέσιμη, ποιά αντικείμενα επισκέφτηκε αμέσως μετά τα προηγούμενα αντικείμενα κ.ο.κ., ή οποιαδήποτε άλλου είδους πληροφορία, καταγράφεται και μπορεί να χρησιμοποιηθεί σε μελλοντικές προτάσεις. 17

25 Δεν θα ήταν υπερβολικό να πούμε πως οι βαθμολογήσεις των χρηστών αποτελούν την πιο χρήσιμη πληροφορία από όλα τα υπόλοιπα δεδομένα που το Π.Σ. συλλέγει στο πλαίσιο των συναλλαγών. Οι βαθμολογήσεις αυτές μπορεί να συλλέγονται ρητά ή σιωπηρά. Στην κατηγορία των ρητών ζητάμε από τον χρήστη την άποψή του σχετικά με ένα αντικείμενο σε μια κλίμακα, πχ. από το 1 έως το 5, ή δυαδικά αν του άρεσε (αληθές) ή όχι (ψευδές). Επιπλέον μια συνήθης μορφή αξιολόγησης των αντικειμένων από τους χρήστες είναι η μορφή των ετικετών (tags). Ο χρήστης επιλέγει κάποιες ετικέτες για να χαρακτηρίσει ένα αντικείμενο, για παράδειγμα σε ένα Π.Σ. ταινιών όπως το Movielens οι χρήστες θα μπορούσαν να χαρακτηρίσουν μια ταινία ως ευχάριστη, αργός ρυθμός, φθηνή παραγωγή κτλ. Σε αντίθετη φιλοσοφία, στην κατηγορία των σιωπηλών βαθμολογήσεων προσπαθούμε να εξάγουμε βαθμολογήσεις από την συμπεριφορά του χρήστη, όπως για παράδειγμα πόσο χρόνο παρέμεινε σε ένα συγκεκριμένο αντικείμενο ή κατά πόσο έμεινε σε μια κατηγορία-ομάδα αντικειμένων πρωτού προβεί σε μια επόμενη αναζήτηση. Τέλος όπως στις περισσότερες περιπτώσεις μπορούμε να έχουμε και υβριδικά συστήματα όπου το σύστημα συλλέγει σιωπηρά βαθμολογήσεις από τον χρήστη και όταν χρειαστεί να κάνει προτάσεις, επειδή για διάφορους λόγους δεν μπορεί να καταλήξει σε συγκεκριμένα αντικείμενα, να ρωτήσει τον χρήστη ρητά σχετικά με κάποια αντικείμενα ή ακόμη και πιο γενικά για κατηγορίες αντικειμένων έτσι ώστε οι προτάσεις να είναι πιο αποτελεσματικές. 2.3 Τεχνικές και Κατηγορίες Για να καταφέρει να φέρει εις πέρας τις προσωπικές συστάσεις το Προτασιακό Σύστημα και να μην μείνει σε απλές γενικές προτάσεις όπως Τα 10 πιο πετυχημένα αντικείμενα θα πρέπει να έχει κάποιες τεχνικές με τις οποίες θα υπολογίζει ένα σύνολο από πιθανά αντικείμενα μέσα από τα οποία θα διαλέγει τα τελικά ή το τελικό αντικείμενο τα οποία θα προωθήσει στην συνέχεια στον ή στους ενδιαφερόμενους χρήστες. Πιο συγκεκριμένα όπως αναφέρεται στο [13] το σύστημα πρέπει να υπολογίσει την χρησιμότητα κάποιων αντικειμένων για έναν χρήστη. Θεωρητικά θα πρέπει να υπολογίζεται για όλα τα αντικείμενα, όμως λόγω υψηλού κόστους ευριστικές τεχνικές προτιμώνται όπου υπολογίζεται η χρησιμότητα μόνο για ένα μικρό σύνολο αντικειμένων, στην 18

26 βέλτιστη περίπτωση των πιο χρήσιμων μόνο. Έτσι λοιπόν για έναν χρήστη u και ένα αντικείμενο i ως χρησιμότητα ορίζεται η R(u,i). Στην συνέχεια συνδυάζοντας διάφορες κατηγορίες και τεχνικές Π.Σ. υπολογίζεται η εκτίμηση της χρησιμότητας αυτής Ř(u,i) για N αντικείμενα, από τα οποία συνήθως επιλέγονται τα K καλύτερα. Για την επιλογή των K καλύτερων αντικειμένων χρησιμοποιούνται αλγόριθμοι όπως ο K-Nearest Neighbors. Ιδιαίτερα σημαντικό είναι επίσης να θυμόμαστε πως δεν είναι όλες οι προτάσεις κατάλληλες σε όλες τις συνθήκες. Τα πιο γνωστά παραδείγματα συνθηκών που μπορούμε να αναφέρουμε είναι σίγουρα ο χρόνος και ο χώρος. Στο παράδειγμα του χρόνου μια σημερινή σημαντική είδηση το πιο πιθανό είναι να ενδιαφέρει έναν χρήστη, μια είδηση όμως από τον προηγούμενο χρόνο, μήνα ή ακόμα και ημέρα ίσως να μην τον ενδιαφέρει. Επιπλέον στο παράδειγμα του χώρου μια είδηση που είναι σημαντική για έναν χρήστη που βρίσκεται σε μια πόλη, δεν είναι σίγουρο ότι θα είναι το ίδιο σημαντική εάν ο χρήστης βρεθεί σε μια άλλη πόλη, ή ακόμα και στην ίδια πόλη αλλά σε άλλη περιοχή. Στην συνέχεια θα αναφέρουμε τις πιο σημαντικές κατηγορίες των Προτασιακών Συστημάτων οι οποίες με διαφορετική φιλοσοφία η κάθε μια έχουν ως στόχο την παραγωγή συστάσεων για τους χρήστες. Διήθηση βασισμένη στο περιεχόμενο: Το σύστημα σε αυτήν την κατηγορία έχει στο επίκεντρό του τα αντικείμενα. Πάνω σε αυτήν την λογική προσπαθεί να προτείνει αντικείμενα που είναι παρόμοια με αυτά που ο χρήστης έδειξε κάποιο ενδιαφέρον στο παρελθόν. Για τον υπολογισμό της ομοιότητας μεταξύ των αντικειμένων χρησιμοποιούνται τα διάφορα χαρακτηριστικά που διαθέτουν. Για παράδειγμα αν ο χρήστης βαθμολόγησε θετικά ταινίες που ανήκουν στην κατηγορία Περιπέτεια, τότε το σύστημα μπορεί να θεωρήσει πως ταινίες που ανήκουν σε αυτήν την κατηγορία έχουν αρκετές πιθανότητες να αποτελούν μια καλή πρόταση στο μέλλον για τον χρήστη. Η κατηγορία αυτή δεν απαιτεί μεγάλη γνώση σχετικά με τις προτιμήσεις του χρήστη, ώστε να αρχίσει να έχει θετικά αποτελέσματα και έτσι είναι ιδιαίτερα χρήσιμη στην αντιμετώπιση του προβλήματος της ψυχρής εκκίνησης (cold start). Συνεργατική Διήθηση: Στην πιο απλή και αρχική μορφή αυτής της κατηγορίας [14] προτείνουμε σε έναν χρήστη αντικείμενα που άλλοι χρήστες με παρόμοιες προτιμήσεις έχουν επιλέξει στο παρελθόν. Το πως αποφασίζουμε την ομάδα των ανθρώπων με τους οποίους έχει παρόμοιες προτιμήσεις βασίζεται στα δεδομένα των 19

27 συναλλαγών που έχουμε αποθηκευμένα για τους χρήστες. Για τον λόγο αυτό η κατηγορία αυτή αναφέρεται και ως συσχέτιση μεταξύ ανθρώπων ( people-to-people correlation ) [15]. Ένας από τους αλγορίθμους που χρησιμοποιείται συχνά στην κατηγορία αυτή είναι όπως προαναφέραμε ο K-Nearest-Neighbors. Η κατηγορία αυτή για να μπορεί να καταφέρει ικανοποιητικά αποτελέσματα σε έναν χρήστη χρειάζεται κάποια αρχική τροφοδότηση με προτιμήσεις. Σύμφωνα με το [16] υπάρχουν και οι παρακάτω τρείς κατηγορίες οι οποίες αξίζουν αναφοράς. Δημογραφική: Οι προτάσεις σε αυτήν την κατηγορία βασίζονται σε δημογραφική πληροφορία που έχουμε για τον χρήστη όπως χώρα, πόλη κτλ. Βασισμένη σε γνώση: Οι προτάσεις σε αυτήν την κατηγορία βασίζονται στην εμπειρία κάποιου ή κάποιων ειδικών σε συγκεκριμένους τομείς που γνωρίζουν ιδιαίτερες λεπτομέρειες σχετικά με τα διάφορα αντικείμενα. Η κατηγορία αυτή τείνει να έχει καλά αποτελέσματα στην αρχή ενός συστήματος, αλλά αν δεν εφοδιαστεί με δυνατότητες μάθησης είναι πολύ εύκολο να ξεπεραστεί από τις υπόλοιπες κατηγορίες. Βασισμένη σε κοινότητα: Στην κατηγορία αυτή το σύστημα αξιοποιεί πληροφορίες σχετικά με τους (online) φίλους του χρήστη και θεωρεί πως οι φίλοι τείνουν να έχουν παρόμοιες προτιμήσεις γι αυτό και με μεγάλη πιθανότητα μπορεί να προτείνει αντικείμενα που άρεσαν στους φίλους του χρήστη στον ίδιο τον χρήστη. Η κατηγορία αυτή έχει αποκτήσει μεγάλο ενδιαφέρον το τελευταίο διάστημα ιδιαίτερα λόγω της σχέσης της με τα κοινωνικά δίκτυα. Η παρακάτω κατηγορία αποτελεί την πιο συνηθισμένη μιας και συνδυάζει όλες τις προηγούμενες. Πιο συγκεκριμένα: Υβριδικές προσεγγίσεις: Η κατηγορία αυτή είναι η πιο συνηθισμένη μιας και για την επίτευξη των καλύτερων αποτελεσμάτων απαιτείται συνδυασμός άλλων κατηγοριών [16]. Έτσι χρησιμοποιώντας τα καλύτερα στοιχεία από κάθε κατηγορία και προσπαθώντας να εξαλείψουμε τα άσχημα στοιχεία αυτών, ευελπιστούμε σε καλύτερες, πιο αποτελεσματικές συστάσεις. Για παράδειγμα οι μέθοδοι που βασίζονται στην κατηγορία της Συνεργατικής Διήθησης αδυνατούν σε περιπτώσεις όπου έχουμε ένα νέο αντικείμενο ή έναν νέο χρήστη (cold start). Αντίθετα η περίπτωση του νέου αντικειμένου δεν αποτελεί πρόβλημα για τις μεθόδους που είναι 20

28 βασισμένες στο περιεχόμενο, αφού οι προτάσεις γίνονται βάση των χαρακτηριστικών των προϊόντων τα οποία λογικά θα είναι διαθέσιμα, ενώ για την περίπτωση του νέου χρήστη συνδυασμός της δημογραφικής κατηγορίας με την συνεργατική ίσως μπορέσει να δώσει κάποιες καλές αρχικές συστάσεις. 2.4 Προβλήματα Κάθε κατηγορία Προτασιακών Συστημάτων έχει τα δικά της δυνατά σημεία και προβλήματα. Για τον λόγο αυτό πολλές φορές, όπως αναφέραμε και αμέσως πριν, συνδυάζουμε σε υβριδικές προσεγγίσεις τα δυνατά σημεία κάθε κατηγορίας προσπαθώντας να εξαλείψουμε τα προβλήματα. Σε κάθε περίπτωση όμως αξίζουν τα προβλήματα αυτά αναφοράς καθώς αποτελούν σημαντικά εμπόδια τα οποία πρέπει να ξεπεραστούν. Αναλύουμε τα πιο γνωστά στην συνέχεια [13]: Ψυχρή Εκκίνηση (Cold Start): Το πρόβλημα αυτό αντιμετωπίζεται κυρίως στην κατηγορία της Συνεργατικής Διήθησης και αφορά δύο καταστάσεις, έναν νέο χρήστη και ένα νέο αντικείμενο. Στην περίπτωση που έχουμε ένα νέο χρήστη να δημιουργεί έναν λογαριασμό, δεν έχουμε για αυτόν καθόλου πληροφορία σχετικά με προτιμήσεις. Δυστυχώς οι αλγόριθμοι Συνεργατικής Διήθησης βασίζονται επάνω σε αυτή την υπόθεση, ότι θα έχουν δηλαδή πληροφορίες προτιμήσεων για έναν χρήστη προκειμένου να του προσφέρουν παρόμοιες προτιμήσεις που άλλοι χρήστες με παρόμοιο ιστορικό προτιμήσεων είχαν. Ακόμα και όταν αρχίσει ο χρήστης να έχει κάποιες λιγοστές προτιμήσεις, συνεχίζουμε να αντιμετωπίζουμε προβλήματα που έχουν αντίκτυπο στην ακρίβεια (accuracy), αφού η πληροφορία δεν επαρκεί για να μπορούμε να τον συγκρίνουμε σωστά με άλλους χρήστες. Στην περίπτωση που έχουμε ένα νέο αντικείμενο, αντιμετωπίζουμε το πρόβλημα ότι δεν θα το έχουν προτιμήσει αρκετοί χρήστες. Για άλλη μια φορά οι αλγόριθμοι της Συνεργατικής Διήθησης έχουν ως προϋπόθεση για να προτείνουν ένα αντικείμενο αυτό να έχει προτιμηθεί από άλλους, οπότε και σε αυτήν την περίπτωση έχουμε πρόβλημα. Τα προβλήματα αυτά δεν εμφανίζονται στους αλγορίθμους που ανήκουν στην κατηγορία της Διήθησης βασισμένης στο περιεχόμενο, αφού αυτοί αν έχουν επαρκή πληροφορία για ένα αντικεί- 21

29 μενο θα μπορούν να το προωθήσουν προς του χρήστες ακόμη και αν αυτοί έχουν ελάχιστες προτιμήσεις ή ακόμα και αν δεν το έχει προτιμήσει κανείς αυτό το αντικείμενο. Ποικιλία (Diversity): Το πρόβλημα αυτό αφορά την έλλειψη διαφορετικών προτάσεων, αντικειμένων δηλαδή που έχουν αρκετές διαφορές μεταξύ τους. Ο λόγος που γίνεται αυτό είναι πως πολλές φορές οι αλγόριθμοι εστιάζουν στην ακρίβεια (accuracy) και καταλήγουν να προτείνουν αντικείμενα που προβλέπεται ότι θα προτιμηθούν από τον χρήστη τα οποία τελικά μοιάζουν αρκετά μεταξύ τους. Άλλο ένα αντίκτυπο της παραπάνω αιτίας, ότι δηλαδή οι αλγόριθμοι εστιάζουν κυρίως στην ακρίβεια, είναι ότι νέα αντικείμενα δεν μπορούν να προταθούν εύκολα, αφού δεν θα έχουν υψηλή ακρίβεια, καθιστώντας έτσι τα ίδια παλιά αντικείμενα να προτείνονται ξανά και ξανά. Διάφοροι τρόποι χρησιμοποιουνται για να ξεπεράσουν το τελευταίο πρόβλημα, όπως Γενετικοί αλγοριθμοι έτσι ώστε να μην επιτρέπεται να προτείνονται συνεχώς τα ίδια αντικείμενα. Ανεπάρκεια (Sparsity): Το πρόβλημα αυτό αφορά την έλλειψη δεδομένων, επαρκών ώστε να γίνουν σωστές προβλέψεις και ίσως αποτελεί το πιο σημαντικό πρόβλημα. Ο λόγος που συμβαίνει αυτό είναι γιατί συνήθως βρισκόμαστε στην αρχή του συστήματός μας και δεν έχουμε προλάβει να συλλέξουμε αρκετά δεδομένα χρηστών ώστε να κάνουμε αποτελεσματικές προτάσεις. Όπως έχουμε αναφέρει και προηγουμένως στις Υβριδικές προσεγγίσεις, μπορούμε να ξεπεράσουμε σε κάποιο βαθμό και αυτά τα προβλήματα συνδυάζοντας κατηγορίες, όπως στις περιπτώσεις νέων χρηστών όπου εστιάζουμε σε δημογραφικά στοιχεία. Δυστυχώς για να μπορέσουν να λειτουργήσουν σωστά και οι συνεργατικοί αλγόριθμοι χρειαζόμαστε αρκετά δεδομένα, που στην περίπτωση αυτή δεν τα έχουμε και έτσι καταλήγουμε σε έναν φαύλο κύκλο, αφού χρειαζόμαστε προτιμήσεις για να κάνουμε προτάσεις σε χρήστες ώστε τελικά αυτοί να προτιμήσουν νέα αντικείμενα και ούτω κάθεξής. Τα παραπάνω προβλήματα αποτελούν ίσως τα πιο σημαντικά προβλήματα στα Προτασιακά Συστήματα που κρίναμε απαραίτητο ότι πρέπει να αναφερθούν, ενώ η λίστα συνεχίζεται με πολλά άλλα προβλήματα όπως οι Μεταβαλλόμενες προτιμήσεις των χρηστών (Changing User Preferences) όπου παρατηρούμε ατομικές αλλαγές στις συνήθειες, και οι Τάσεις (Trends) όπου ένα Προτασιακό Σύστημα θα πρέπει να είναι σε θέση να προσαρμόζεται στις νέες τάσεις. 22

30 Σημαντικές είναι και οι μετρικές ποιότητας του ΠΣ μας που θα πρέπει να έχουμε υπόψη μας, όπως η ακρίβεια (accuracy), η ικανοποίηση των χρηστών (User Satisfaction) και η εμπιστοσύνη των χρηστών (User Trust). 23

31 Κεφάλαιο 3 Hadoop Εν έτη 2012 η παραγωγή δεδομένων έχει φτάσει σε αξιοσημείωτα επίπεδα. Κάθε ημέρα άνθρωποι και μηχανές παράγουν Terabytes¹. Μεγάλες εταιρίες όπως η Google, η Microsoft, η Yahoo και η Amazon στάθηκαν απέναντι στο πρόβλημα τις διαχείρισης όλων αυτών των δεδομένων. Μια λύση ώστε να μπορέσουν να αντεπεξέλθουν στο φαινόμενο αυτό υπολογιστικά θα ήταν αγοράζοντας κάποιον υπερυπολογιστή με πολλούς ίσως πυρήνες και παρέχοντάς του καλή ψύξη, κάτι το οποίο θα στοίχιζε φυσικά αρκετά χρήματα και σε περίπτωση βλάβης σε αυτόν η ζημία θα ήταν αρκετά μεγάλη. Έτσι λοιπόν οι εταιρίες για να ξεπεράσουν αυτά τα προβλήματα έχουν μπει σε μια λογική κατανεμημένων συστημάτων, όπου πολλά φθηνά μηχανήματα σχηματίζουν ομάδες συστημάτων τα λεγόμενα clusters, τα οποία έχουν ατομικά πολύ μικρό κόστος και σε περίπτωση βλάβης το μόνο που έχουν να κάνουν είναι να το αντικαταστήσουν και έτσι η ζημία είναι πολύ μικρότερη. Σχήμα 3.1: Yahoo Hadoop Cluster ¹Cisco Data Stats, /ns705/ns827/white_paper_c html 24

32 Επάνω σε αυτήν την λογική η Google προσπαθούσε να κτίσει μια μεθοδολογία ώστε να διαχειρίζεται τα μεγάλα μεγέθη από δεδομένα, τα οποία καλείται να σαρώσει με τους λεγόμενους crawlers της από το Web, σε τακτικά διαστήματα αν όχι σε συνεχόμενη βάση, ώστε να διατηρεί τον αλγόριθμο PageRank [3] με τον οποίο πραγματοποιεί τις αναζητήσεις των χρηστών. Η μεθοδολογία στην οποία κατέληξε η Google είναι το Map/Reduce και παρότι για λόγους ανταγωνισμού δεν έχει δώσει την δική της πλατφόρμα στην κοινότητα η οποία είναι υλοποιημένη σε C++, εντούτοις η λογική έγινε γνωστή. Η Yahoo αφού έκανε μια πρώτη υλοποίηση για το Map/Reduce στην συνέχεια την έδωσε στην κοινότητα του ASF (Apache Software Foundation) σε πλήρη μορφή (ανοικτός κώδικας). Το project αυτό λέγεται Hadoop, είναι γραμμένο σε Java και μεγάλες εταιρίες του χώρου, με πρώτη και καλύτερη την Yahoo φυσικά, συμμετέχουν ενεργά στην ανάπτυξή του, που τον τελευταίο καιρό έχει φτάσει σε πολύ υψηλά επίπεδα λόγω της δημοτικότητάς του. 3.1 Διαδικασίες Map και Reduce Το Map/Reduce είναι μια μεθοδολογία που μας βοηθάει να επεξεργαζόμαστε μαζικά δεδομένα. Προέρχεται από τον συναρτησιακό προγραμματισμό (Functional Programming) και πιο συγκεκριμένα από τις συναρτήσεις map και reduce που παρείχε η Python από το 1994, αν και ο ρόλος των συναρτήσεων map και reduce στο πλαίσιο Hadoop δεν είναι πλέον ο ίδιος. Ως προς την επεξεργασία, αρκετά κοντά με την παράλληλη φύση του Map και Reduce μπορούμε να εντοπίσουμε την χρήση των pipelines, στα οποία έχουμε την έξοδο μιας διαδικασίας να αποτελεί την είσοδο μιας άλλης. Οι συνεχόμενες φάσεις εξόδου και εισόδου από την μια διαδικασία στην άλλη χαρακτηρίζονται ως pipeline, και μπορούμε να έχουμε πολλά pipelines ενεργά σε κάθε χρονική στιγμή. Σε παρόμοια φιλοσοφία η έξοδος των mappers παρέχεται ως είσοδος στους reducers, ενώ πολλές τέτοιες φάσεις μπορούν να συνδυαστούν σε σειρά για την επίτευξη πιο πολύπλοκων εργασιών. Το Map/Reduce αποτελεί εκτός από μια μεθοδολογία και μια καινούρια φιλοσοφία [17], διαφορετική από αυτήν που είχαμε συνηθίσει, πιο αφαιρετική όπου προσπαθούμε να εκφράσουμε τα πάντα σε βήματα της μορφής Map/Reduce. Ένα από τα κύρια θετικά σημεία της μεθοδολογίας και φιλοσοφίας MR (Map/Reduce) και της πλατφόρμας του Hadoop φυσικά είναι η ευκολία με την οποία κλιμακώνεται η διαδικασία στους διαθέσιμους κόμβους του δικτύου. 25

33 Τα βασικά συστατικά, όπως άλλωστε υποδεικνύει και η ονομασία, είναι οι mappers και οι reducers. Ωστόσο εκτός από τις βασικές λειτουργίες του map και του reduce υπάρχουν και άλλες, που σε συγκεκριμένες περιπτώσεις βοηθούν στην αύξηση της αποδοτικότητας του συστήματος. Πριν συνεχίσουμε αναλύοντας τις διαδικασίες που λαμβάνουν χώρα να τονίσουμε ότι το σύστημα εκτός από την κατανεμημένη φύση του, είναι εξοπλισμένο και με αυτόματη παραλληλοποίηση των διεργασιών στους πυρήνες των διαφόρων κόμβων. Ακολουθούν οι διαδικασίες [18]: Σχήμα 3.2: Διαδικασία Map και Reduce Map: Η διαδικασία αυτή εκτελείται στους mappers. Ως mapper μπορεί να είναι οποιοσδήποτε κόμβος στο cluster, που προφανώς θα πρέπει κατά την ανάθεση, να μην είναι πλήρως δεσμευμένος από άλλες διαδικασίες. Δεν μπορούμε να καθορίσουμε εμείς στο σύστημα το πόσοι και ποιοί θα είναι αυτοί, μπορούμε μόνο να υποδείξουμε με την παράμετρο map tasks τον αριθμό των mappers που επιθυμούμε, και αν το σύστημα κρίνει ότι η υπόδειξη είναι σωστή τότε μόνο θα την αξιοποιήσει. Τα δεδομένα τροφοδοτούνται στους mappers, μετασχηματίζονται και η νέα μορφή τους που είναι του τύπου <κλειδί>-<τιμή> (<key>-<value>), δίνεται ως έξοδος προς την επόμενη διαδικασία που είναι συνήθως η Reduce. Combine: Η διαδικασία αυτή εκτελείται στους mappers. Ο λόγος της ύπαρξής της είναι να εκμεταλλευτούμε το locality των δεδομένων που βρίσκονται στη RAM των mappers και πρωτού στείλουμε τα δεδομένα στην επόμενη διαδικασία, πραγματοποιώντας τα αντίστοιχα Inputs/Outputs που φυσικά έχουν και το αντίστοιχο κόστος, να πραγματοποιήσουμε κάποιες λειτουργίες επάνω σε αυτά. 26

34 Partition: Η διαδικασία αυτή εκτελείται συνολικά στο πλαίσιο. Χρησιμοποιούμε αφαιρετικά τον όρο πλαίσιο γιατί πράγματι σε πολλές λειτουργίες το σύστημα μας αποκρύπτει τον τρόπο με τον οποίο τις πραγματοποιεί. Αυτό γίνεται γιατί το σύστημα υπολογίζει με τον βέλτιστο τρόπο την διαδικασία αυτή σε κόμβους που κρίνει αυτό ότι θα πρέπει να υπολογίζεται. Έχει ως στόχο να καθορίσει ποιά κλειδιά, με τις αντίστοιχες τιμές τους φυσικά, θα καταλήξουν σε ποιούς reducers. Πολλές φορές ο απλός ισοκαταμερισμός των κλειδιών που πραγματοποιείται στον partitioner με την λογική ( κλειδί ως ακέραιος αριθμός MOD αριθμός reducers ), δεν επαρκεί για να πετύχουμε και τον αντίστοιχο ισοκαταμερισμό δεδομένων. Έτσι αξιοποιώντας άλλες πληροφορίες, πχ. από στατιστική, προσπαθούμε να διορθώσουμε αυτό το προβληματικό σημείο. Ο λόγος βέβαια για τον οποίο μπορεί να θέλουμε να χρησιμοποιήσουμε partitioner δεν είναι μόνο για τον ισοκαταμερισμό των δεδομένων, αλλά γιατί πολύ απλά θέλουμε συγκεκριμένοι reducers να λάβουν συγκεκριμένα δεδομένα. Πριν από το Reduce το σύστημα πραγματοποιεί δύο λειτουργίες: ανάμιξη (Shuffle) και ταξινόμηση (Sort). Έτσι είναι σε θέση να γνωρίζει όλες τις τιμές που ανήκουν σε ένα κλειδί και θα πρέπει αντίστοιχα να καταλήξουν σε συγκεκριμένο reducer. Reduce: Η διαδικασία αυτή εκτελείται στους reducers. Οι reducers αποτελούν ίσως το μοναδικό κομμάτι στο οποίο ο προγραμματιστής έχει κάποιον έλεγχο, αφού η τιμή που θα δώσει στην παράμετρο reduce tasks καθορίζει το πόσες διεργασίες reduce θα πραγματοποιηθούν. Ως κοινή τακτική στο σημείο αυτό χρησιμοποιείται ως τιμή η αριθμός κόμβων που επιθυμούμε να γίνουν reducers * αριθμός πυρήνων που έχει ο κάθε κόμβος (ή μέση τιμή) * 10. Τα δεδομένα που έχουν καταλήξει από την ή τις προηγούμενη/ες διαδικασία/ες καταλήγουν υπό την μορφή <κλειδί>-<όλες οι τιμές που έχουν το συγκεκριμένο κλειδί>. Κάθε reducer είναι υπεύθυνος για την τελική επεξεργασία των δεδομένων, όπου συνήθως πραγματοποιούνται συναθροιστικές συναρτήσεις τύπου sum ή count, συναρτήσεις εύρεσης ακραίων τιμών min, max ή και ακόμα πιο πολύπλοκες λειτουργίες. Στο τέλος συνήθως τα αποτελέσματά του ο κάθε reducer τα τυπώνει σε συγκεκριμένο αρχείο. 27

35 3.2 Αρχιτεκτονική Θα μπορούσαμε να περιγράψουμε το Hadoop ως ένα πλαίσιο που αποτελείται από δύο τμήματα: το σύστημα αρχείων του HDFS και την μηχανή λειτουργίας του. Για την αποτελεσματική λειτουργία του Hadoop είναι απαραίτητο να διαθέτουμε ένα σύστημα αρχείων που να παρέχει πληροφορίες στο Hadoop σχετικά με την τοποθεσία των δεδομένων, έτσι ώστε να μειώνεται η απαραίτητη μετακίνηση δεδομένων. Το Hadoop Distributed File System (HDFS) είναι ένα κατανεμημένο σύστημα αρχείων που έχει σχεδιαστεί για αυτόν ακριβώς τον σκοπό και παρέχει αυτή την πληροφορία στο Hadoop. Είναι δυνατόν να συνδέσουμε και άλλα συστήματα αρχείων με το Hadoop αν αυτό επιθυμούμε όμως θα πρέπει να είμαστε ενήμεροι ότι θα υπάρξει δραματική πτώση της αποδοτικότητας μιας και δεν θα παρέχεται η παραπάνω πληροφορία, που θα εξηγήσουμε στην συνέχεια το πως αξιοποιείται. Το HDFS είναι σχεδιασμένο ώστε να αντεπεξέρχεται σε μεγάλα αρχεία, για τα οποία για λόγους ασφαλείας πολλές φορές προτιμούμε να κρατάμε και αντίγραφα. Το προτιμώμενο μέγεθος αρχείων είναι τα 64MB [19], έτσι ένα μεγάλο αρχείο διασπάται σε πολλά κομμάτια μεγέθους ίσου με το προτιμώμενο μέγεθος, τα λεγόμενα chunks, ώστε να μπορούν να μεταφέρονται βέλτιστα μέσα στο δίκτυο. Σχήμα 3.3: Αρχιτεκτονική Cluster Hadoop Οι υπηρεσίες που εκτελούνται για το HDFS είναι οι εξής [18]: 28

36 NameNode: Η διεργασία αυτή εκτελείται σε έναν κόμβο τον λεγόμενο Master Node. Είναι υπεύθυνη για την διαχείριση της μεταπληροφορίας του συστήματος αρχείων, όπως σε ποιόν κόμβο βρίσκεται το κάθε αρχείο, τι πληροφορίες έχουμε σχετικά με το αρχείο κτλ. Secondary NameNode: Η διεργασία αυτή εκτελείται σε έναν κόμβο διαφορετικό από αυτόν που εκτελεί την υπηρεσία του NameNode. Σε τακτά χρονικά διαστήματα διατηρεί πληροφορίες σχετικά με την κατάσταση του NameNode, ώστε σε περίπτωση βλάβης του NameNode να μπορεί να τροφοδοτήσει το NameNode (αφού επανέλθει) με την κατάσταση που είχε πριν από την βλάβη. DataNode: Η διεργασία αυτή εκτελείται σε κόμβους του cluster, εκτός από αυτόν του Master. Παρέχει πρωτογενείς υπηρεσίες, δηλαδή αποθήκευση και ανάκτηση αρχείων. Η μηχανή λειτουργίας του Hadoop προσπαθεί να διατηρεί την αποδοτικότητα του πλαισίου στο μέγιστο δυνατό επίπεδο. Για να το επιτύχει αυτό, παρακολουθεί συνεχώς την κίνηση μεταξύ των κόμβων και προσπαθεί να κάνει ισοκαταμερισμό του φόρτου. Ως μέρος αυτού του στόχου, προσπαθεί σε συνδυασμό με τις υπηρεσίες του HDFS να γνωρίζει που βρίσκονται τα αρχεία, κοντά στα οποία θα εκτελέσει τις όποιες διεργασίες [20]. Πιο συγκεκριμένα πρώτος στόχος του πλαισίου είναι η διεργασία να εκτελείται στον κόμβο (DataNode) στον οποίο βρίσκονται αποθηκευμένα τα δεδομένα, γεγονός που το γνωρίζει από το NameNode. Αν αυτό δεν είναι δυνατόν ρίχνει κάπως τις προσδοκίες και συνεχίζει προσπαθώντας να βρεί κόμβο στο rack στο οποίο βρίσκονται τα δεδομένα. Κατόπιν αν δεν το καταφέρει και αυτό συνεχίζει επιλέγοντας έναν κόμβο απο το πιο κοντινό rack, και τέλος επιλέγει απλά έναν κόμβο που βρίσκεται σε ένα τυχαίο rack. Με τον τρόπο αυτό ελαχιστοποιείται η μεταφορά των δεδομένων ώστε και μεγαλύτερες επιδόσεις να επιτυγχάνονται και λιγότερες συμφορήσεις να συμβαίνουν στο δίκτυο επίσης. Οι υπηρεσίες που εκτελούνται για την μηχανή λειτουργίας του Hadoop είναι οι εξής [18]: JobTracker: Διεργασία η οποία εκτελείται στον Master Node. Είναι υπεύθυνη για την εκκίνηση διεργασιών σε TaskTrackers, λαμβάνοντας υπόψη χωρική πληροφορία όπως εξηγήσαμε προηγουμένως. TaskTracker: Είναι η διεργασία η οποία εκτελεί τις κύριες εντολές του προγράμματος που σύνταξε ο προγραμματιστής. Οι λεπτομέ- 29

37 ρειες της λειτουργίας έχουν καθοριστεί από τον JobTracker. Σχηματικά τις υπηρεσίες του HDFS και της μηχανής λειτουργίας του Hadoop, για ένα απλό cluster που αποτελείται από έναν master node και έναν slave node, όπου ο master λειτουργεί και ως slave, μπορούμε να τις απεικονίσουμε στο σχήμα 3.3. Αναφορικά με τις πολιτικές δρομολόγησης των εργασιών, στις καινούριες εκδόσεις του Hadoop είναι δυνατόν να επιλέξουμε εμείς αυτήν που επιθυμούμε, ή να αφήσουμε το σύστημα να εκτελεστεί με την προεπιλεγμένη πολιτική. Οι διαθέσιμες πολιτικές [21] είναι οι: First In First Out: Η πολιτική αυτή είναι η προεπιλεγμένη πολιτική από το σύστημα. Οι εργασίες εκτελούνται με την σειρά με την οποία δίνονται στο σύστημα. Προαιρετικά μπορεί να συνδυαστεί με δρομολόγηση προτεραιοτήτων, που θα επιτρέπει πέντε επίπεδα προτεραιότητας, έτσι ώστε να δρομολογούνται οι εργασίες από την ουρά εργασιών. Fair Scheduler: Η πολιτική αυτή αναπτύχθηκε από το Facebook. Ο σκοπός της συγκεκριμένης πολιτικής είναι να παρέχει γρήγορους χρόνους απόκρισης σε μικρές εργασίες και καλή Ποιότητα Υπηρεσίας (QoS) σε μεγάλες εργασίες. Η πολιτική είναι κτισμένη επάνω σε τρείς βασικούς άξονες: Οι εργασίες είναι χωρισμένες σε ομάδες (pools). Σε κάθε ομάδα καταχωρείται ένα ελάχιστο ποσοστό χρονομεριδίων. Επιπλέον χρονομερίδια διανέμονται σε όλες τις ομάδες. Από προεπιλογή, εργασίες που δεν κατηγοριοποιούνται σε κάποια ομάδα, καταλήγουν σε μια προεπιλιγμένη ομάδα. Οι ομάδες θα πρέπει να καθορίσουν τον ελάχιστο αριθμό από maps και reduces και ένα όριο στον αριθμό των ενεργών εργασιών. Capacity Scheduler: Η πολιτική αυτή αναπτύχθηκε από την Yahoo. Έχει αρκετά κοινά σημεία με την προηγούμενη πολιτική του Fair Scheduler. Οι εργασίες καταχωρούνται σε ουρές. Σε κάθε ουρά διανέμεται ένα ποσοστό των συνολικών διαθέσιμων πόρων. Οι ελεύθεροι πόροι καταχωρούνται σε ουρές, χωρίς να μας ενδιαφέρει αν ξεπερνούν την συνολική τους χωρητικότητα (που 30

38 ορίστηκε στο προηγούμενο βήμα). Θέλουμε δηλαδή να ελαχιστοποιήσουμε την αδράνεια των πόρων. Μέσα σε μια ουρά, μια εργασία με υψηλή προτεραιότητα θα έχει πρόσβαση στους πόρους της ουράς. Δεν υπάρχει η δυνατότητα προεκχώρησης μια εργασίας, αφού αυτή έχει ξεκινήσει. Για την εκτέλεση της όλης εργασίας, ο χρήστης είναι υποχρεωμένος να καθορίσει στο πλαίσιο τα παρακάτω [22]: Την τοποθεσία, μέσα στο κατανεμημένο σύστημα αρχείων, των δεδομένων της εισόδου της εργασίας. Την τοποθεσία, μέσα στο κατανενημενο σύστημα αρχείων, στην οποία θα αποθηκευτούν τα δεδομένα εξόδου της εργασίας. Τον τύπο των δεδομένων εισόδου. Τον τύπο των δεδομένων εξόδου. Την κλάση που περιλαμβάνει την διαδικασία map. Προαιρετικά, την κλάση που περιλαμβάνει την διαδικασία reduce. Άλλα αρχεία JAR, που περιλαμβάνουν τις διαδικασίες map και reduce, καθώς και άλλες βοηθητικές κλάσεις. 31

39 Κεφάλαιο 4 Προτασιακά Συστήματα και Hadoop Έχοντας παρουσιάσει τόσο τα Προτασιακά Συστήματα όσο και το κατανεμημένο περιβάλλον του Hadoop, παρουσιάζει ιδιαίτερο ενδιαφέρον να δούμε πως συναντάμε το Hadoop στο ερευνητικό πεδίο των Προτασιακών Συστημάτων. Ο αριθμός των χρηστών αυξάνεται συνεχώς, όπως και ο αριθμός των διαθέσιμων αντικειμένων, επομένως είναι κρίσιμης σημασίας να καταφέρουμε να κλιμακώσουμε το σύστημά μας. Λόγω της φύσης του Hadoop οι εργασίες που μπορούμε να εκτελέσουμε σε αυτό δεν απευθύνονται κυρίως σε online συστήματα. Επομένως είναι εύκολα κατανοητό ότι δεν μπορεί να χρησιμοποιηθεί και για άμεσες (online) προτάσεις σε χρήστες. Φυσικά αυτό δεν σημαίνει απαραίτητα ότι οι σχεδιαστές των ΠΣ δεν θα μπορούν να προσφέρουν και άμεσες (online) προτάσεις, απλά για να το καταφέρουν αυτό θα πρέπει να δημιουργήσουν κάποιες δομές προς αυτή την κατεύθυνση για να τις έχουν έτοιμες όταν θα χρειάζεται να προτείνουν με σύγχρονο τρόπο αντικείμενα σε χρήστες. Μερικοί από τους λόγους για τους οποίους ο συνδυασμός του Hadoop με τα Προτασιακά Συστήματα είναι σημαντικός είναι οι παρακάτω: Υψηλές απαιτήσεις των ΠΣ: Είναι πλέον σαφές ότι για να αντιμετωπίσουμε τα προβλήματα κλιμάκωσης των ΠΣ θα πρέπει να μεταβούμε σε λύσεις όπως αυτή του Hadoop. Οι μεγάλες αποθηκευτικές απαιτήσεις σε συνδυασμό με τις υψηλές απαιτήσεις για πράξεις επάνω στα δεδομένα είναι τα δύο βασικά συστατικά προβλήματα της κλιμάκωσης. 32

40 Ένα ΠΣ έχει πολύ υψηλές απαιτήσεις σε αποθηκευτικό χώρο, αφού οι συνολικοί χρήστες που εγγράφονται στα σημερινά συστήματα ξεκινούν από μερικές χιλιάδες για μεσαία συστήματα και φτάνουν ακόμα και σε εκατομμύρια για μεγάλα συστήματα όπως το Amazon και το IMDB. Από την άλλη εκτός του ότι είναι πολλοί οι χρήστες, όσο εξελίσσονται οι συνολικές δυνατότητες των Web sites μπορούμε και θέλουμε να συλλέγουμε οποιαδήποτε πληροφορία [23] μπορούμε σχετικά με τον χρήστη. Έτσι λοιπόν εκτός από τις πλέον σημαντικές συναλλαγές των χρηστών, όπως είναι οι βαθμολογήσεις αντικειμένων, συλλέγουμε και άλλες πληροφορίες για να μας βοηθήσουν στην διαδικασία των προτάσεων όπως είναι ακόμα και πόσο χρόνο παρέμεινε σε ένα αντικείμενο. Είναι εύκολα κατανοητό ότι όλα αυτά απαιτούν αρκετό χώρο για να αποθηκευτούν και καθώς τεχνικές συμπίεσης δεν είναι εύκολο πάντα να εφαρμοστούν καταλήγουμε να χρειαζόμαστε μεγάλη χωρητικότητα δεδομένων, αρκετά GB παλαιότερα και TB ή ακόμα και PB πλέον. Εκτός όμως από μεγάλες απαιτήσεις σε αποθηκευτικό χώρο, όλα τα παραπάνω έχουν και μεγάλες απαιτήσεις από άποψη υπολογισμού. Οι διαδικασίες που θα πρέπει να εκτελούνται προκειμένου να βγάζουμε συμπεράσματα για το αν θα πρέπει να προτείνουμε ένα αντικείμενο ή όχι σε έναν χρήστη έχουν από μόνες τους ένα υπολογιστικό κόστος που αν συνδυαστεί με τα τεράστια μεγέθη δεδομένων πάνω στα οποία πρέπει να εφαρμοστούν συνθέτουν ένα συνολικό υπολογιστικό κόστος αρκετά μεγάλο. Έτσι λοιπόν χρειαζόμαστε είτε υπερυπολογιστές (supercomputers) ικανούς να διαχειριστούν αυτό το φόρτο με παράλληλο τρόπο οι οποίοι έχει αποδειχτεί τελικά ότι δεν αποτελούν καλή επιλογή [24], είτε αυτό που τελικά χρησιμοποιείται στην πράξη που είναι πολλοί φθηνοί υπολογιστές (commodity cluster computers). Τα παραπάνω δύο συστατικά θα πρέπει εκτός από το να μπορούν να λυθούν μεμονωμένα, να μπορούν και να συνδυάζονται με την έννοια ότι οι είσοδοι και οι έξοδοι των υπολογιστικών διαδικασιών αφορούν δεδομένα τα οποία θα πρέπει να μπορούν εύκολα να τροφοδοτηθούν προς και από τους εκάστοτε υπολογιστές. Λόγω του μεγάλου αριθμού από φθηνούς υπολογιστές θα πρέπει και η διαχείριση αυτών να είναι εύκολη, με την έννοια του πόσο εύκολα μπορούμε να προσθέσουμε ή να αφαιρέσουμε έναν υπολογιστή στο σύστημά μας και αυτό να μπορεί να προσαρμοστεί στις αλλαγές αυτές. Το Hadoop μας προσφέρει λύσεις στα δύο προηγού- 33

41 μενα ζητήματα, παρέχοντάς μας ένα ενιαίο κατανεμημένο σύστημα διαχείρισης αρχείων το HDFS στην πρώτη περίπτωση, και κατανέμοντας αυτόματα το φόρτο εκμεταλλευόμενο και τις πολλαπλές αντιγραφές των δεδομένων (replicas) στη δεύτερη περίπτωση. Έλλειψη ταυτοχρονισμού: Οι διαδικασίες που εκτελούνται για την επεξεργασία των δεδομένων δεν απαιτούν χρήση ταυτοχρονισμού, που μπορούν να οδηγήσουν σε προβληματικές καταστάσεις όπως αδιέξοδα (deadlocks), άπειρες επαναλήψεις (livelocks) και λοιπά. Αυτό οφείλεται σε ένα μεγάλο βαθμό στο ότι τα δεδομένα μας δεν αλλάζουν κατά την διάρκεια της επεξεργασίας. Το σύνολο των δεδομένων υπάρχει στο HDFS πριν την εκκίνηση των διεργασιών και το περιεχόμενό τους δεν θα πρέπει να αλλάζει κατά την διάρκεια των διεργασιών. Επομένως η ιδιότητα αυτή καθιστά το Hadoop ικανό να διαχειριστεί τις διεργασίες μας. Απλότητα μοντέλου των ΠΣ: Το μοντέλο που χρησιμοποιούμε στις βασικές εκδόσεις ενός Προτασιακού Συστήματος, όπως προαναφέραμε περιλαμβάνει χρήστες, αντικείμενα και συναλλαγές που στην γενική περίπτωση είναι απλά βαθμολογήσεις. Η απλότητα αυτή μας επιτρέπει να χρησιμοποιήσουμε αυτά τα δεδομένα πολύ εύκολα σε λογικές Map και Reduce. Λόγω της φύσης των keys και values είναι πολύ εύκολο οι mappers να στέλνουν συγκεκριμένους χρήστες και αντικείμενα στους reducers υπό την μορφή <key, value> όπου στο key θα μπορούσε να μπει το ID του χρήστη ή του αντικειμένου ενώ στο value περαιτέρω πληροφορίες, ενώ μάλιστα το Hadoop μας προσφέρει δυνατότητες διαχείρισης και αποθήκευσης δεδομένων αυτής της μορφής, δηλαδή <key,value>, χωρίς προβλήματα κλιμάκωσης. Η ιδιότητα αυτή καθιστά το Hadoop όχι απλώς ικανό αλλά μια από τις καλύτερες δυνατές επιλογές, αν όχι την καλύτερη, που θα μπορούσαμε να κάνουμε. Οι παραπάνω λόγοι, όπως είπαμε, είναι μόνο μερικοί από τους πολλούς λόγους για τους οποίους ο συνδυασμός του Hadoop με τα Προτασιακά Συστήματα είναι σημαντικός. Ο συνδυασμός αυτός φαίνεται να έχει αρκετά καλές προοπτικές και δυνατότητες, έτσι ώστε να είμαστε αρκετά αισιόδοξοι για το μέλλον. Αν αξιοποιηθεί σωστά ο συνδυασμός αυτός θα είμαστε σε θέση από την μια να προσφέρουμε αποτελεσματικές συστάσεις σε συμβατικά συστήματα όπως τα γνωρίζουμε μέχρι σήμερα, αλλά από την άλλη να μπορέσουμε και να δομήσουμε ένα πλαίσιο επάνω στο οποίο θα μπορούσαν να αναπτυχθούνε νέες μέθοδοι συστάσεων ακόμη και για συστήματα όπου δεν έχουμε συνηθίσει συστάσεις μέχρι 34

42 σήμερα, βασισμένες σε τεχνικές τύπου Map/Reduce που με τα σημερινά συστήματα είναι πολύ δύσκολο να υλοποιηθούν. Είμαστε αισιόδοξοι ότι τα αποτελέσματα αυτής της πτυχιακής θα ωθήσουν στην περεταίρω προσπάθεια για πιο αποτελεσματικά Προτασιακά Συστήματα που θα αξιοποιούν τεχνικές όπως αυτή του Map/Reduce από το Hadoop, σε συνδυασμό ίσως και με άλλους τομείς όπως αυτός της Εξόρυξης Γνώσης από τα Δεδομένα (Data Mining) και της Μηχανικής Μάθησης (Machine Learning) [25], για την παραγωγή όλο και καλύτερων προτάσεων, ενώ παράλληλα να μπορούν να συμβαδίσουν με τις απαιτήσεις σε χώρο και χρόνο της εκάστοτε εποχής. 4.1 Βιβλιογραφική Επισκόπηση Ενδιαφέρον παρουσιάζουν υπάρχουσες δουλειές που έχουν γίνει στο τομέα των Προτασιακών Συστημάτων σε συνδυασμό με το Hadoop. Στο [6] ανέπτυξαν έναν κλιμακούμενο αλγόριθμο Συνεργατικής Διήθησης βασισμένο στα αντικείμενα, σε λογική Map/Reduce, χωρίζοντας τους τρείς πιο ακριβούς σε πολυπλοκότητα υπολογισμούς που προτείνουν, σε τέσσερις φάσεις Map και Reduce, οι οποίες μάλιστα μπορούν να εκτελεστούν και ανεξάρτητα - σε διαφορετικούς υπολογιστές - παράλληλα. Επίσης προτείνουν τεχνικές χωρισμού των δεδομένων ώστε να πετυχαίνουν την μέγιστη τοπικότητα των δεδομένων, ελαχιστοποιώντας τα κόστη μεταφοράς τους. Πειραματικά αποτελέσματα σε Hadoop cluster έδειξαν καλές επιδόσεις σε κλιμάκωση και ακρίβεια. Συνεχίζοντας στο [26] προσεγγίζουν το πρόβλημα της μοντελοποίησης των χρηστών σε Προτασιακά Συστήματα χρησιμοποιώντας παράλληλες τεχνικές βασισμένες στο cloud computing όπως Cascading και Map Reduce σε Hadoop. Σε παρόμοια λογική στο [27] για την μοντελοποίηση και πάλι των χρηστών, ερευνητές της IBM χρησιμοποιήσαν το Hadoop για να αναπτύξουν ένα πλαίσιο αποδοτικό και κλιμακώσιμο σε μεγάλα σύνολα δεδομένων. Μια ακόμη σημαντική δουλειά παρουσιάζεται στο [28] όπου αντιμετωπίζουν το πρόβλημα της κλιμάκωσης χρησιμοποιώντας το Hadoop, για το Προτασιακό Σύστημα Συνεργατικής Διήθησης βασισμένο στους χρήστες το οποίο προτείνουν. Πειραματικά αποτελέσματα δείχνουν πως μια απλή μέθοδος χωρισμού των χρηστών σε ομάδες σύμφωνα με δύο βασικές αρχές, έτσι ώστε όλοι οι επεξεργαστές να τελειώνουν την ίδια 35

43 χρονική στιγμή, επιφέρει γραμμική επιτάχυνση και κλιμάκωση του όλου συστήματος. 36

44 Μέρος II ΙΔΕΑ 37

45 Κεφάλαιο 5 Περιγραφή Τα υπάρχοντα Προτασιακά Συστήματα βασίζονται σε κάποιες συγκεκριμένες μεθόδους προκειμένου να προσφέρουν ποιοτικές συστάσεις στους χρήστες τους. Στη γενική περίπτωση μπορούμε να πούμε πως επιθυμούν οι αποστάσεις μεταξύ των των χρηστών ως προς τις συνήθειές τους και των αντικειμένων ως προς τις ιδιότητές τους να είναι μικρές. Αυτό δεν αποτελεί έκπληξη αφού και στην καθημερινότητά μας τείνουμε να κάνουμε επιλογές που βασίζονται σε πράγματα που μας αρέσουν. Αξίζει να αναλύσουμε επομένως λίγο παραπάνω πως λειτουργούν οι αλγόριθμοι στις δύο βασικές κατηγορίες των Προτασιακών Συστημάτων της Συνεργατικής Διήθησης και της Διήθησης βασισμένης στο περιεχόμενο. 5.1 Συνεργατική Διήθηση Οι αλγόριθμοι αυτής της κατηγορίας χρησιμοποιούν εργαλεία όπως τον Συντελεστή Γραμμικής Συσχέτισης (Pearson Correlator) και το συνημίτονο (Cosine) προκειμένου να μετρήσουν αποστάσεις, ώστε να δώσουν προτάσεις με την λογική χρήστης-προς-χρήστη (user-to-user) και αντικείμενο-προς-χρήστη (item-to-user) Συντελεστής Γραμμικής Συσχέτισης Ο Συντελεστής Γραμμικής Συσχέτισης (Pearson Correlator) αποτελεί ένα στατιστικό εργαλείο που μας αναπαριστά την συσχέτιση μεταξύ δύο αντικειμένων X και Y, δίνοντάς μας μια τιμή μεταξύ -1 και +1, με το 38

46 -1 να εκφράζει την πλήρη ανομοιότητα ενώ το +1 την πλήρη ομοιότητα. Πιο συγκεκριμένα η μαθηματική φόρμουλα είναι η εξής: sim(x, Y ) = ρ X,Y = cov(x, Y ) σ X σ Y = E[(X µ X)(Y µ Y )] σ X σ Y Ενώ για συγκεκριμένο δείγμα είναι: r = n i=1 (X i X)(Y i Ȳ ) n i=1 (X i X) 2 n i=1 (Y i Ȳ )2 όπου τα X και Ȳ αναπαριστούν τις μέσες τιμές των συνόλων X και Y αντίστοιχα, ενώ τα σ X και σ Y αναπαριστούν την τυπική απόκλιση των συνόλων X και Y Συνημίτονο Εκτός όμως από την προηγούμενη μετρική συσχέτισης, έχουμε και το συνημίτονο (Cosine) το οποίο συγκρίνει δύο διανύσματα και εκφράζει την γωνία που έχουν μεταξύ τους και αποτελεί ένα εργαλείο που χρησιμοποιείται σε μεγάλο βαθμό και στην Εξόρυξη Γνώσης από Δεδομένα (Data Mining) [29] για την σύγκριση εγγράφων. Ο λόγος που προτιμούμε το συνημίτονο για να συγκρίνουμε διανύσματα και όχι την Ευκλείδια απόσταση είναι γιατί η τελευταία μετρική δεν συμπεριφέρεται καλά σε περιπτώσεις όπου τα μήκη των διανυσμάτων είναι διαφορετικά, όπως όταν έχουμε έναν χρήστη με περισσότερες προτιμήσεις από έναν άλλον ή ένα αντικείμενο έχει περισσότερες πληροφορίες από ένα άλλο. Η φόρμουλα του συνημιτόνου είναι η εξής: sim(x, Y ) = cos(θ) = X Y X Y = n i=1 X i Y i n i=1 (X i) 2 n i=1 (Y i) 2 όπου X και Y δοθέν διανύσματα και θ η γωνία που μας δίνεται ως αποτέλεσμα. Η μετρική αυτή χρησιμοποιείται επίσης και σε άλλους πετυχημένους τομείς όπως αυτός της Ανάκτησης Πληροφορίας (Information Retrieval). Χρησιμοποιώντας επομένως τα δύο παραπάνω εργαλεία οι αλγόριθμοι Συνεργατικής Διήθησης εφαρμόζουν την τεχνική των K-Πλησιέστερων Γειτόνων (K-Nearest Neighbors) τόσο σε αντικείμενα όσο και σε χρήστες 39

47 ώστε να προτείνουν τα αντικείμενα με την μεγαλύτερη ομοιότητα σε χρήστες. 5.2 Διήθηση βασισμένη στο περιεχόμενο Στην κατηγορία αυτή οι αλγόριθμοι εστιάζουν στις ιδιότητες των αντικειμένων προκειμένου να βρούνε πρότυπα μεταξύ αυτών. Στην προσπάθεια αυτή χρησιμοποιούν διάφορα εργαλεία για να μετρήσουν την ομοιότητα μεταξύ των αντικειμένων Κ-Πλησιέστεροι Γείτονες Οι K-Πλησιέστεροι Γείτονες (K-Nearest Neighbors) αποτελούν έναν αρκετά γνωστό αλγόριθμο που ανήκει στις κατηγορίες της Αναγνώρισης Προτύπων (Pattern Recognition) και Μηχανικής Μάθησης (Machine Learning), που προσφέρει τη δυνατότητα εύρεσης, όπως υποδηλώνει και το όνομά του, των Κ κοντινότερων αντικειμένων ως προς ένα αντικείμενο που το καθορίζουμε ρητά. Με τη λειτουργία αυτή καταφέρνουμε να κατηγοριοποιήσουμε το υπό εξέταση αντικείμενο χρησιμοποιώντας την τεχνική της πλειοψηφίας (majority voting). Βέβαια εκτός από την κατηγοριοποίηση σε πολλές περιπτώσεις είναι χρήσιμη ακόμη και η μέση τιμή των γειτόνων κάτι που ονομάζεται παλινδρόμηση (regression) και σε αρκετές περιπτώσεις είναι χρήσιμο, όπου οι μετρικές είναι συνεχείς τιμές. Ο αλγόριθμος αυτός ανήκει στην κατηγορία της οκνηρής μάθησης (lazy learning) αφού όλος ο υπολογισμός αναστέλλεται για όταν ζητηθεί, κάτι που βέβαια εξασφαλίζει και ότι δεν αντιμετωπίζει προβλήματα ασυγχρονισμού με τα δεδομένα αφού πάντα εκτελείται στα πιο πρόσφατα. Σχήμα 5.1: K-Κοντινότεροι Γείτονες 40

48 Ο αλγόριθμος αυτός συνήθως χρησιμοποιεί την Ευκλείδια απόσταση ως μέτρο της απόστασης, ενώ σε ειδικές περιπτώσεις χρησιμοποιούνται άλλες αποστάσεις όπως όταν έχουμε δυαδική αναπαράσταση όπου η απόσταση Hamming είναι η προτιμητέα. Το μόνο που έχει να επιλέξει αυτός που τον εκτελεί είναι ο αριθμός Κ. Βέβαια η επιλογή του Κ δεν είναι πάντα εύκολη υπόθεση για αυτό και απαιτούνται πολλές φορές αρκετές δοκιμές πριν την τελική του επιλογή, ενώ συχνά χρησιμοποιούνται ειδικές μέθοδοι όπως η Bootstrap [30]. Ιδιαίτερα για την περίπτωση των Προτασιακών Συστημάτων θα πρέπει και να επιλέξουμε τις ιδιότητες εκείνες τις οποίες μπορούμε να βρούμε σε όλα τα αντικείμενα τα οποία θα συγκρίνουμε. Ίσως μια επιπλέον προσέγγιση σε πραγματικά δεδομένα θα μπορούσε να περιορίζει τα αντικείμενα με τα οποία μπορεί να συγκριθεί το υπό εξέταση αντικείμενο σε εκείνα που έχουν τουλάχιστον τις ίδιες ή επιπλέον ιδιότητες από αυτές που έχει το αντικείμενο και μας ενδιαφέρουν. Τέλος να αναφέρουμε τη σημασία των δεδομένων όπου στους περισσότερους αλγορίθμους είναι τα δεδομένα εκπαίδευσης μόνο, για τα οποία γνωρίζουμε και όλες τις πληροφορίες, ενώ σε αυτόν τον αλγόριθμο μπορούμε να προσθέτουμε και περαιτέρω αντικείμενα στα δεδομένα μας αφού δεν θα υπάρχει πρόβλημα συγχρονισμού, πέρα από την αύξηση του μεγέθους, λόγω της οκνηρής (lazy) φύσης του Μηχανές Υποστήριξης Διανυσμάτων Οι Μηχανές Υποστήριξης Διανυσμάτων (Support Vector Machines - SVM) αποτελούν μια έννοια που ανήκει στις κατηγορίες της Αναγνώρισης Προτύπων (Pattern Recognition) και της Μηχανικής Μάθησης (Machine Learning) και σχετίζεται με την κατηγοριοποίηση (classification) και την παλινδρόμηση (regression). Η κατηγοριοποίηση πραγματοποιείται στα πλαίσια δύο δυνατών κατηγοριών, ενώ είναι δυνατή και η απόδοση συνεχής τιμής με την διαδικασία της παλινδρόμησης. 41

49 Σχήμα 5.2: Μηχανές Υποστήριξης Διανυσμάτων Δοθέντος ενός συνόλου δεδομένων τα οποία ανήκουν σε δύο κατηγορίες (το καθένα σε μία), τα SVM μπορούν να προβλέψουν για ένα μελλοντικό αντικείμενο σε ποιά κατηγορία από τις δύο ανήκει. Τα δεδομένα απεικονίζονται ως σημεία στον Ευκλείδιο χώρο και έτσι τα SVM αυτό που προσπαθούν είναι να βρούνε μια γραμμή η οποία σχηματίζει το μεγαλύτερο κενό που μπορεί να διαχωρίσει τα αντικείμενα από τις δύο ομάδες έτσι ώστε τα αντικείμενα που βρίσκονται από την μία άκρη να ανήκουν σε μία κατηγορία, εκτός από περιπτώσεις ακραίων τιμών (outliers) οι οποίες θα βρίσκονται σε λάθος μεριά. Για να καταφέρουν να διαχωρίσουν αποτελεσματικά τα σημεία στον N-χώρο τις τροφοδοτούμε με έναν πυρήνα ικανό να διαχωρίσει αποτελεσματικά μεταξύ τους τα σημεία των διαφορετικών κατηγοριών [31]. Τέλος για περιπτώσεις όπου θέλουμε να κατηγοριοποιήσουμε το αντικείμενό μας σε σχέση με πολλές κατηγορίες έστω n θα πρέπει να κατασκευάσουμε ( n 2) διαφορετικά SVM έτσι ώστε με την αρχή της πλειοψηφίας (majority voting) να αποφανθούμε σε ποιά κατηγορία ανήκει τελικά το αντικείμενο Υπόλοιπα Εργαλεία Τα προηγούμενα δύο αποτελούν τα βασικά εργαλεία που συναντάμε σε Προτασιακά Συστήματα. Εντούτοις είναι χρήσιμο να αναφέρουμε και άλλα γνωστά εργαλεία όπως τα παρακάτω: Δέντρα Απόφασης (Decision Trees): Είναι ένα εργαλείο που έχει δενδροειδή αναπαράσταση και απαντάει σε προβλήματα απόφασης, ώστε να διαλέξουμε ποιά στρατηγική από τις δυνατές καταλήγει στα καλύτερα αποτελέσματα. Το εργαλείο αυτό χρησιμοποιείται συνήθως σε συνδυασμό με πιθανοκρατικά μοντέλα για την 42

50 κατάληξη σε κάποια απόφαση. Ένα από τα δυνατά σημεία του εργαλείου αυτού είναι η οπτική του απεικόνιση που είναι πάρα πολύ εύκολα κατανοητή και δημοφιλής σε επιχειρησιακά περιβάλλοντα. Στην δική μας περίπτωση καθίσταται αποτελεσματικό με τον συνδυασμό του με τα πιθανοκρατικά μοντέλα, ώστε να λαμβάνονται οι αποφάσεις αυτόματα χωρίς την συνεχή διαμεσολάβηση κάποιου ανθρώπου. Σχήμα 5.3: Δέντρα Απόφασης Αφελής Κατηγοριοποιητής Bayes (Naive Bayes): Βρίσκεται στον χώρο των Πιθανοκρατικών Μοντέλων και εφαρμόζει το θεώρημα του Bayes κάνοντας ισχυρές παραδοχές ανεξαρτησίας των δεδομένων, προκειμένου να μας δώσει την πιθανότητα την οποία ψάχνουμε που μπορεί να είναι το αντικείμενό μας ανήκει σε μια κατηγορία. Το μοντέλο αυτό πρεσβέβει πως μια ιδιότητα ενός αντικειμένου δεν συσχετίζεται με τις υπόλοιπες ιδιότητές του, κάτι που σαφώς είναι λανθασμένο. Παρότι το μοντέλο είναι αρκετά απλό και κάνει ισχυρές παραδοχές εμφανίζει αρκετά θετικά σημεία, όπως ότι δεν απαιτεί πολλά δεδομένα εκπαίδευσης προκειμένου να μπορεί να κάνει αποτελεσματικές προβλέψεις. Έτσι μπορεί να βοηθήσει στο πρόβλημα της Ψυχρής Εκκίνησης των Προτασιακών Συστημάτων. Επαγωγικοί Κανόνες (Rule Induction): Το εργαλείο αυτό αποτελεί μια περιοχή της Μηχανικής Μάθησης (Machine Learning) στην οποία τυπικές (formal) μέθοδοι εξάγονται από ένα σύνολο παρατηρήσεων. Οι κανόνες μπορεί να αντικατοπτρίζουν ένα πλήρες επιστημονικό μοντέλο των δεδομένων, ή μερικά-τοπικά πρότυπα των δεδομένων. 43

51 Φυσικά υπάρχουν και άλλα εργαλεία αλλά αυτά ήταν τα πιο βασικά που θα πρέπει να ξέρει ο αναγνώστης. Συνδυάζοντας τα παραπάνω εργαλεία έχει γίνει σπουδαία δουλειά στον τομέα των Προτασιακών Συστημάτων αφού τα συναντάμε πλέον στον μεγαλύτερο αριθμό των σημερινών συστημάτων. Ενδεικτικά θα αναφέρουμε στον αναγνώστη την περίπτωση [32] όπου επιδιώκουν να αυξήσουν την αποδοτικότητα για αλγορίθμους Προτασιακών Συστημάτων όπως ο K-Nearest Neighbors χρησιμοποιώντας clustering τεχνικές και στην περίπτωση [33] όπου πραγματεύεται ένα folksonomy που αποτελεί συνεργατικό σύστημα κατηγοριοποίησης με χρήση tags που και αυτό χρησιμοποιεί κατηγοριοποιητές όπως των K-Πλησιέστερων Γειτόνων. Τα αποτελέσματα από τις δουλειές που έχουν γίνει οι οποίες βασίζονται στις ομοιότητες μεταξύ των αντικειμένων δεν μπορούν να αμφισβητηθούν. Από την άλλη μεριά όμως μπορούμε να πούμε πως η όλη φιλοσοφία των ομοιοτήτων έχει φτάσει σε κορεσμό, με αποτέλεσμα χρησιμοποιώντας ακόμα και πολλά υποσυστήματα να μην μπορούμε να αυξήσουμε σε μεγάλο βαθμό την αποτελεσματικότητα του συστήματός μας. Μετρικές όπως η ακρίβεια έχουν αρχίσει και φθάνουν στα όριά τους. Είναι μεγάλης σημασίας επομένως να μπορέσουμε να βρούμε κάποιο καινούριο χαρακτηριστικό που θα μας βοηθήσει να ξεπεράσουμε τα όρια αυτά για να φτάσουμε σε καλύτερη αποτελεσματικότητα και ακρίβεια. Το χαρακτηριστικό που εμείς πιστεύουμε πως θα κάνει τη διαφορά είναι τα Πρότυπα Ανομοιότητας (Dissimilarity Patterns) τα οποία και εξηγούμε στη συνέχεια. 5.3 Πρότυπα Ανομοιότητας Στην καθημερινότητά μας η διαδικασία της επιλογής-προτίμησης ενός πράγματος, αποτελεί σε μεγάλο βαθμό αντικείμενο της Ψυχολογίας (Psychology). Για να μπορέσουμε να ανταποκριθούμε στις όλο και αυξανόμενες απαιτήσεις των Προτασιακών Συστημάτων, θα πρέπει να δώσουμε μεγάλη βαρύτητα στην Ψυχολογία και στις συμβουλές που έχει να μας δώσει. Στην Ψυχολογία ο όρος Social Comparison Process, που μεταφράζεται ως Κοινωνική Διαδικασία Σύγκρισης, ασχολείται με όλα εκείνα τα ζητήματα που παίζουν ρόλο όταν ένας άνθρωπος συγκρίνει ένα αντικείμενο με κάποια άλλα. Αποτελεί έναν ιδιαίτερα ενδιαφέρον τομέα για την 44

52 δική μας περίπτωση. Η θεωρία βασίζεται στην πεποίθηση ότι οι άνθρωποι έχουν μια τάση να αξιολογούν τόσο τους εαυτούς τους όσο και τις επιλογές τους συγκρίνοντάς τους με άλλους ανθρώπους, που συνήθως έχουν παρόμοια χαρακτηριστικά με αυτούς. Μεγάλο ενδιαφέρον για τον χώρο αποτελούν και οι έννοιες προς τα κάτω σύγκριση (downward comparison) και προς τα επάνω σύγκριση όπου οι άνθρωποι συγκρίνονται με άτομα που θεωρούν σε χειρότερη και σε καλύτερη κατάσταση από αυτούς αντίστοιχα. Σχήμα 5.4: Γνωστική Επιστήμη Εκτός όμως από την Ψυχολογία, πολλά πράγματα μπορούμε να καταλάβουμε για τη διαδικασία της επιλογής-προτίμησης από την περιοχή της Γνωστικής επιστήμης (Cognitive science) η οποία είναι ένας συνδυασμός της Ψυχολογίας (Psychology), Φιλοσοφίας (Philosophy), Γλωσσολογίας (Linguistics), Ανθρωπολογίας (Anthropology), Νευροεπιστήμης (Neuroscience) και της Τεχνητής Νοημοσύνης (Artificial Intelligence), όπως φαίνεται και στο σχήμα 5.4. Έννοιες όπως η μοντελοποίηση του χρήστη και η διαδικασία λήψης απόφασης τράβηξαν την προσοχή των επιστημόνων της Γνωστικής επιστήμης ώστε στη συνέχεια να εμπλακούν στις διαδικασίες των προτάσεων όπου μέρη από τις θεωρίες που ασχολούνται με τα στερεότυπα, τα γνωρίσματα των προσωπικοτήτων, την υποκειμενικότητα της κλίμακας βαθμολόγησης και τους μηχανισμούς της κρίσης, μπορούν να εφαρμοστούν. Όταν ένας χρήστης παρέχει ανά- 45

53 δραση στο σύστημα σχετικά με ένα αντικείμενο, υποβάλλεται σε μια διαδικασία που αποτελείται από δύο μέρη: (α) γνωστικός φόρτος [34] και (β) την τελική κρίση. Αποτέλεσμα της τελικής κρίσης είναι και η βαθμολόγηση ενός αντικειμένου που μας ενδιαφέρει, για τον λόγο αυτό αξίζει να λάβουμε υπόψη μας πως ο μηχανισμός της κρίσης δουλεύει. Δεν θα μπούμε σε πολλές λεπτομέρειες σχετικά με το τελευταίο μιας και δεν είναι το κύριο αντικείμενο αυτής της διπλωματικής εργασίας, όμως έρευνα από τον Mussweiler [35] αναφέρει πως κάθε κρίση μπορεί να είναι αποτέλεσμα μιας συγκριτικής διαδικασίας η οποία περιλαμβάνει την επιλογή ενός παραδείγματος με το οποίο θα μπορεί να συγκρίνει ένα αντικείμενο, για να καταλήξει αν τελικά αυτό το αντικείμενο του αρέσει ή όχι. Επιπλέον αναφέρει πως κάποιοι άνθρωποι τείνουν να επιλέγουν παραδείγματα που είναι αρκετά όμοια με το υπό εξέταση αντικείμενο, ενώ κάποιοι άλλοι επιλέγουν παραδείγματα αντικειμένων που είναι αρκετά ανόμοια. Αυτές τις δύο διαφορετικές διαδικασίες της ομοιότητας και της ανομοιότητας μπορούμε να τις δούμε ως ίσης σημασίας για την διαδικασία της τελικής κρίσης. Παρακινούμενοι από το γεγονός ότι οι έννοιες της ομοιότητας και της ανομοιότητας έχουν ιδιαίτερη σημασία, εισάγουμε την δική μας προσέγγιση για το πρόβλημα που αντιμετωπίζει το αντικείμενο των προτάσεων από δύο προοπτικές, αυτή που βασίζεται στην ομοιότητα και αυτή που βασίζεται στην ανομοιότητα. Όπως έχουμε εξηγήσει έχει γίνει πολύ δουλειά σχετικά με την ομοιότητα, για το λόγο αυτό εμείς σκοπεύουμε να συνδράμουμε στην διαδικασία των προτάσεων των Προτασιακών Συστημάτων εισάγοντας επιπλέον γνώση η οποία θα εξαχθεί από τις προτιμήσεις των χρηστών υπό την μορφή των ανομοιοτήτων. Επομένως δεν αντικρουόμαστε με την σημαντικότητα των ομοιοτήτων, αντιθέτως προσπαθούμε να αυξήσουμε ακόμη περισσότερο την αποτελεσματικότητα των τεχνικών που βασίζονται στις ομοιότητες συνοδεύοντάς τες με την δική μας τεχνική που θα βασίζεται στις ανομοιότητες, ώστε οι τελικές προτάσεις που θα αποτελούν απόρροια του παραπάνω συνδυασμού να είναι ακόμα πιο επιτυχημένες. Όπως έχουμε αναφέρει και στο κεφάλαιο 2 των Προτασιακών Συστημάτων, υπάρχουν κάποια προβλήματα που ακόμα δυσκολεύουν την ζωή των ερευνητών αλλά και γενικότερα των ανθρώπων που ασχολούνται με τα ΠΣ (Προτασικά Συστήματα). Τα πιο σημαντικά είναι όπως αναφέραμε το πρόβλημα της Ψυχρής Εκκίνησης, της ποικιλίας αλλά και της ανεπάρκειας, στα οποία εμείς θα προσπαθήσουμε να δώσουμε λύσεις. Οι προηγούμενες δουλειές επάνω στα ΠΣ πιστεύουμε πως αφήνουν περιθώρια για περαιτέρω βελτίωση, αφού οι προτάσεις δεν είναι 46

54 οι καλύτερες δυνατές, γεγονός που φαίνεται και από τις μετρικές όπως της ακρίβειας (accuracy). Εμείς επομένως θα προσπαθήσουμε μέσω των Προτύπων Ανομοιότητας να συνδράμουμε στην δουλειά που έχει γίνει στη βάση της ομοιότητας, βελτιώνοντας τις προτάσεις κάτι που βασίζεται σε μεγάλο βαθμό στην σειρά με την οποία κατατάσει αλλά και βαθμολογεί το σύστημα τα δυνητικά προς πρόταση αντικείμενα. Να τονίσουμε επίσης ότι τα Πρότυπα Ανομοιότητας τα εξάγουμε με βάση τις κατηγορίες των αντικειμένων, ωστόσο αυτό δεν μας περιορίζει να χρησιμοποιήσουμε άλλα χαρακτηριστικά στη θέση τους. 47

55 Κεφάλαιο 6 Διαδικασίες Στο κεφάλαιο αυτό θα περιγράψουμε τα βασικά βήματα με τα οποία θα επιτύχουμε τον στόχο μας, που όπως περιγράψαμε στο προηγούμενο κεφάλαιο 5 Περιγραφή είναι να εξάγουμε Πρότυπα Ανομοιότητας μεταξύ των κατηγοριών στις οποίες ανήκουν τα αντικείμενα. Θα ξεκινήσουμε διατυπώνοντας το γενικότερο πρόβλημα με την περιγραφή των δεδομένων και την μοντελοποίησή τους και στη συνέχεια θα περιγράψουμε το πλαίσιο της υλοποίησής μας. 6.1 Διατύπωση του προβλήματος Στα πειράματα που πραγματοποιούμε σε αυτή τη διπλωματική, χρησιμοποιούμε ένα σύνολο από δεδομένα που περιλαμβάνουν αξιολογήσεις των χρηστών σε ταινίες οι οποίες χαρακτηρίζονται από κάποιες κατηγορίες, όπως Κωμωδία και Θρίλερ. Παρόλα αυτά οποιοδήποτε σύνολο δεδομένων που περιλαμβάνει αντικείμενα, κατηγορίες αντικειμένων και ανάδραση των χρηστών σε αντικείμενα με την μορφή αξιολογήσεων μπορούμε να το θεωρήσουμε έτοιμο για να χρησιμοποιηθεί από την προσέγγισή μας. Μόλις υπάρξουν δεδομένα σχετικά με αριθμητική αξιολόγηση των χρηστών επάνω σε αντικείμενα, μπορούμε να εξάγουμε και να αξιολογήσουμε Πρότυπα Ανομοιότητας μεταξύ των κατηγοριών τους. 48

56 6.1.1 Περιγραφή των Δεδομένων Έχουμε ένα σύνολο αντικειμένων I = {item 1, item 2,..., item K } σε συνδυασμό με ένα σύνολο κατηγοριών C = {c i, c 2,..., c L }. Στην περίπτωσή μας, κάθε αντικείμενο ανήκει σε ένα υποσύνολο από κατηγορίες, οπότε item i = {c 1, c 2,..., c m } C όπου i = [1, 2,..., K] C, και m L. Επιπλέον, διατηρούμε ένα σύνολο από τους χρήστες U = {u 1, u 2,..., u N } και τις προτιμήσεις τους P = {p 1, p 2,..., p R }. Κάθε αξιολόγηση ενός χρήστη σε ένα αντικείμενο μπορούμε να τη θεωρήσουμε σαν μια τριπλέτα αριθμητικών τιμών p i = {u a, item b, val i } όπου u a U, item b I και val i R. Εκτός από τις προαναφερθείσες δομές, θα συνεχίσουμε με συγκεκριμένη μοντελοποίηση των δεδομένων τόσο για τους χρήστες όσο και για τις κατηγορίες. Αυτό σίγουρα θα βοηθήσει τον αναγνώστη να καταλάβει καλύτερα τις αλγοριθμικές διαδικασίες που προτείνουμε καθώς και να αντιλαμβάνεται τις δομές τις οποίες χρησιμοποιούμε Μοντελοποίηση των δεδομένων Από την άποψη του προφίλ του χρήστη διατηρούμε τις επόμενες βοηθητικές δομές: Αξιολογήσεις του χρήστη (User s Preferences): Οι αξιολογήσεις για έναν συγκεκριμένο χρήστη u a παρουσιάζονται από ένα υποσύνολο P (u a ) = { p i P p i = {u a, item, val i }} όπου item I. Αξιολογήσεις των χρηστών σε συγκεκριμένη κατηγορία (User s Preferences on a category): Σε αυτή την δομή εκτός από τον χρήστη συγκεκριμενοποιούμε και την κατηγορία (π.χ. c l C). Επομένως έχουμε P (u a, c l ) = { p i P p i = {u a, item c l, val i }} όπου item I. Προδιάθεση του χρήστη (User s Disposition): Αυτή είναι μια απλή προσέγγιση για να αξιολογήσουμε το επίπεδο της απαισιοδοξίας (ή αισιοδοξίας) ενός χρήστη, συγκρίνοντας τις αξιολογήσεις του σε σχέση με τις αξιολογήσεις όλων των χρηστών. Υπολογίζεται η μέση τιμή από τις αξιολογήσεις του χρήστη και στη συνέχεια διαιρείται με τη μέση τιμή των αξιολογήσεων όλων των χρηστών που μας δίνει την παρακάτω τιμή: d(u a ) = {vali P (u a )}/ P (u a ) {valj P }/ P [36] 49

57 Υπολογίζοντας την τιμή d(u a ) μπορούμε να καταλήξουμε για το αν ο χρήστης είναι απαισιόδοξος ή αισιόδοξος. Στη γενική περίπτωση κάνουμε τους παρακάτω ισχυρισμούς: > 1 ο χρήστης τείνει σε αισιοδοξία d(u a ) = < 1 ο χρήστης τείνει σε απαισιοδοξία 1 μέσος χρήστης Θεωρούμε αυτή την τιμή ως έναν παράγοντα κανονικοποίησης για τις αξιολογήσεις των χρηστών. Αυτό σημαίνει ότι οι τιμές που βρίσκονται αποθηκευμένες στις δομές έχουν ήδη υποστεί αυτήν την κανονικοποίηση. Μέση τιμή του χρήστη σε μια κατηγορία (User s average value on a category): Για κάθε χρήστη υπολογίζουμε ένα διάνυσμα L μέσων τιμών, μία για κάθε διαθέσιμη κατηγορία. Για συγκεκριμένο χρήστη και κατηγορία έχουμε: A(u a, c l ) = {d(ua ) val i val i P (u a, c l )} P (u a, c l ) [37] Ενδιαφέρον του χρήστη για μια κατηγορία (User s Interest on a category): Για κάθε χρήστη υπολογίζουμε ένα διάνυσμα L τιμών, μία για κάθε κατηγορία. Οι τιμες αυτές υπολογίζονται σύμφωνα με την παρακάτω λογική: ci : categoryinterest cl : categorylikeness cp : categorypopularity όπου ci(u a, c l ) = F measure(cl(u a, c l ), cp (u a, c l )) c F measure(cl(u m C a, c m ), cp (u a, c m )) cl(u a, c l ) = cp (u a, c l ) = avg(u a, c l c avg(u m C a, c m ) P (u a, c l ) c P (u m C a, c m ) Συνεχίζοντας με τη μοντελοποίηση των κατηγοριών, διατηρούμε τις επόμενες τέσσερις δομές: 50

58 Αξιολογήσεις Κατηγορίας (Category s Preferences): Σε αυτή τη δομή διατηρούμε τις αξιολογήσεις από όλους τους χρήστες σε αντικείμενα που ανήκουν σε συγκεκριμένη κατηγορία. Επομένως, έχουμε P (c l ) = { p i P p i = {u, item c l, val i }} όπου item I και u U. Σύνολο χρηστών Κατηγορίας (Category s set of users): Στην δομή αυτή διατηρούμε το υποσύνολο των χρηστών που έχουν εκφράσει την γνώμη τους σε αντικείμενα που ανήκουν στην συγκεκριμένη κατηγορία. Έτσι λοιπόν έχουμε U(c l ) = { u a U p i = {u a, item c l, val i }} όπου p i P και item I. Σύνολο χρηστών για συνδυασμό Κατηγοριών (Set of users for a pair of categories): Αυτό είναι απλά το σύνολο των χρηστών οι οποίοι έχουν εκφράσει την γνώμη τους σε αντικείμενα είτε της μίας, είτε της άλλης κατηγορίας. Επομένως έχουμε την ένωση των συνόλων U(c l, c m ) = U(c l ) U(c m ) U. Μέση τιμή Κατηγορίας (Category s average value): Για κάθε κατηγορία στο σύνολο των δεδομένων μας, υπολογίζουμε τη μέση τιμή για όλες τις αξιολογήσεις που δίνονται από τους χρήστες. A(c l ) = {d(u) vali val i, u P (c l )} P (c l ) [38] 6.2 Περιγραφή πλαισίου Το πλαίσιό μας αποτελείται από τρία κύρια τμήματα όπου το ένα προϋποθέτει αποτελέσματα από το προηγούμενο για να συνεχίσει. Ακολουθεί η περιγραφή τους Καθολική προσέγγιση υπολογισμού των Προτύπων Ανομοιότητας Σε αυτό το τμήμα θα ασχοληθούμε με το ζήτημα του πόσο διαφορετικές είναι δύο κατηγορίες δίνοντας και αριθμητική τιμή σε αυτό. Βασισμένοι καθαρά σε αξιολογήσεις των χρηστών προσπαθούμε να ανακαλύψουμε αυτές τις υπάρχουσες σχέσεις διαφοράς που ονομάζονται Πρότυπα Ανομοιότητας (Dissimilarity Patterns). Εκφράζουμε τις διαφορές αυτές με αριθμητικές τιμές και για αυτό καταλήγουμε με έναν πίνακα 51

59 ανομοιοτήτων D [L L] ο οποίος περιλαμβάνει τιμές για κάθε συνδυασμό κατηγοριών. Πριν συνεχίσουμε στην αλγοριθμική διαδικασία της συμπλήρωσης του πίνακα D, ας εξηγήσουμε αρχικά την λογική του παρουσιάζοντας τις ιδιότητές του. D(i, j) = D(c i, c j ) R όπου c i, c j C και i, j = [1, 2,..., L] Ο πίνακας D περιλαμβάνει μηδενικές τιμές στην κύρια διαγώνιο, D(c i, c i ) = 0. Αυτό συμβαίνει λόγω του ότι δεν μας ενδιαφέρει μια σχέση μεταξύ μιας κατηγορίας c i και του εαυτού της. Οι μηδενικές τιμές δεν αντικατοπτρίζουν την πλήρη ομοιότητα. Όσο πιο υψηλή είναι η τιμή, τόσο πιο ανόμοιες είναι δύο κατηγορίες. Ο πίνακας D δεν είναι συμμετρικός, που σημαίνει ότι D(c i, c j ) D(c j, c i ). Η ιδιότητα αυτή προέρχεται από τον τρόπο που αντιλαμβανόμαστε τις σχέσεις μεταξύ δύο κατηγοριών. Να κρατήσουμε υπόψη πως η τιμή D(c i, c j ) απλά δείχνει την ανομοιότητα της κατηγορίας c j με την κατηγορία c i όταν η δεύτερη κατηγορία είναι πιο δημοφιλής μεταξύ των δύο, σύμφωνα πάντα με τις τιμές που έχουμε για τις προτιμήσεις των χρηστών. Η λογική του Πίνακα Ανομοιότητας Όπως έχει αναφερθεί και προηγουμένως, για τον υπολογισμό των τιμών του πίνακα D χρησιμοποιούνται αποκλειστικά οι προτιμήσεις των χρηστών. Για απλότητα θα περιοριστούμε σε δύο κατηγορίες c i και c j και θα εξηγήσουμε την λογική που ακολουθούμε για να αξιολογήσουμε μια τιμή ανομοιότητας μεταξύ τους. Να σημειώσουμε πως σε αυτή την περίπτωση η κατηγορία c j είναι η υπό εξέταση κατηγορία και η κατηγορία c i είναι η πιο αρεστή μεταξύ των δύο. Με τον όρο αρεστή εννοούμε τον μέσο όρο των categoryinterest που αυτή έχει (θα εξηγηθεί παρακάτω). Η λογική πίσω από αυτό είναι ότι θέλουμε να δούμε την άποψη των χρηστών σε μία κατηγορία (π.χ. c j ) όταν αυτοί δείχνουν ισχυρότερη προτήμηση σε μια άλλη κατηγορία (π.χ. c i ). Αν για παράδειγμα οι χρήστες μας δείχνουν αναλογική προτίμηση στην υπό εξέταση κατηγορία, τότε οι δύο κατηγορίες είναι αρκετά όμοιες. Από την άλλη μεριά αν οι απόψεις τους διαφέρουν, μόλις ανακαλύψαμε ένα Πρότυπο Ανομοιότητας μεταξύ των δύο κατηγοριών. Τελικά καταλήγουμε με μια αριθμητική τιμή που εκφράζει το επίπεδο ανομοιότητας μεταξύ τους (π.χ. D(c i, c j )). Η διαδικασία υπολογισμού του πόσο ανόμοιες είναι δύο κατηγορίες περιλαμβάνει μόνο το κομμάτι των δεδομένων που έχει να κάνει με τους 52

60 χρήστες και τις αξιολογήσεις τους που σχετίζονται με τις δύο κατηγορίες. Αυτό σημαίνει ότι αρχικά επικεντρωνόμαστε στο υποσύνολο των χρηστών U(c i, c j ) και μετά λαμβάνουμε υπόψη μας μόνο εκείνους που έχουν δείξει μεγαλύτερο ενδιαφέρον (π.χ. μεγαλύτερο categoryinterest) για την κατηγορία c i από ότι για την κατηγορία c j. Με την έννοια μεγαλύτερο ενδιαφέρον εννοούμε ότι για έναν χρήστη u a έχουμε την εξής σχέση: categoryinterest(u a, c i ) > categoryinterest(u a, c j ) όπου u a U(c i, c j ). Αφού εφαρμόσουμε αυτό το δεύτερο φίλτρο στο σύνολο των χρηστών U(c i, c j ) καταλήγουμε με ένα ακόμη μικρότερο σύνολο χρηστών U P (c i, c j ) U(c i, c j ). Στις περισσότερες περιπτώσεις, U P (c i, c j ) U P (c j, c i ) το οποίο και εξηγεί το γεγονός ότι ο πίνακας D δεν είναι απαραίτητα συμμετρικός. Έχοντας ως είσοδο το σύνολο των χρηστών U P (c i, c j ) θα χρησιμοποιήσουμε τρία είδη πληροφορίας: (i) ποιό είναι το ενδιαφέρον του χρήστη για τις κατηγορίες και ποιά είναι η σχέση του ενδιαφέροντος ανάμεσα σε δύο κατηγορίες, δηλαδή των τιμών categoryinterest(u a, c i ) και categoryinterest(u a, c j ), (ii) η μέση τιμή του χρήστη στην κατηγορία που μας ενδιαφέρει A(u a, c j ) και (iii) η συνολική μέση τιμή της κατηγορίας A(c j ). Για κάθε χρήστη u a U P (c i, c j ) αρχικά θα υπολογίσουμε τις τιμές categorylikeness, categorypopularity και categoryinterest (όπως αυτά θα εξηγηθούν προσεχώς) για τις κατηγορίες c i και c j, ελέγχουμε αν έχει μικρότερο ενδιαφέρον για την κατηγορία c j από την υπό εξέταση κατηγορία c i. Αν αυτό συμβαίνει τότε προσθέτουμε την διαφορά των categoryinterest στον αθροιστή (sum) και ενημερώνουμε τον μετρητή (counter). Έτσι περνώντας από όλους τους χρήστες θα έχουμε συγκεντρώσει τις σωστές τιμές για τον αθροιστή και τον μετρητή και στη συνέχεια υπολογίζουμε την μέση τιμή αυτών, οπότε και παίρνουμε την τελική τιμή που θα απεικονίζει το D(c i, c j ). Η λογική αυτή απεικονίζεται στην αλγοριθμική διαδικασία που ακολουθεί, όπου όλες οι τιμές του πίνακα D υπολογίζονται. Για λόγους απόδοσης σε κάθε συνδυασμό κατηγοριών c i και c j μπορούμε να υπολογίζουμε τόσο την τιμή D(c i, c j ) όσο και D(c j, c i ). * Για λόγους ευαναγνωσιμότητας δεν περιγράψαμε τον τρόπο που υπολογίζουμε τα categorylikeness, categorypopularity και categoryinterest μέσα στο ψευδοκώδικα αλλά τον παρουσιάζουμε ευθύς αμέσως. categorylikeness(u a, c i ) = avg(u a, c i ) c C avg(u a, c) 53

61 Algorithm 1 Υπολογισμός τιμών του πίνακα ανομοιότητας D Require: U, P (u, c), A(u, c) και A(c) όπου u U και c C Ensure: D πίνακας for all c i C do for all c j C do if c i c j then U(c i, c j ) = U(c i ) U(c j ) counter = 0 sum = 0 for all u a U(c i, c j ) do Υπολογισμός cl(u a, c i ), cl(u a, c j ). cl:categorylikeness* Υπολογισμός cp (u a, c i ), cp (u a, c j ). cp:categorypopularity* Υπολογισμός ci(u a, c i ), ci(u a, c j ). ci:categoryinterest* if ci(u a, c i ) > ci(u a, c j ) then counter = counter + 1 sum = sum + (ci(u a, c i ) ci(u a, c j )) end if end if end for end for end for D(c i, c j ) = sum counter 54

62 categoryp opularity(u a, c i ) = P (u a, c i ) c C P (u a, c) categoryinterest(u a, c i ) = F measure(cl(u a, c i ), cp (u a, c j )) c C F measure(cl(u a, c), cp (u a, c)) Με παρόμοιο τρόπο υπολογίζουμε και τις αντίστοιχες τιμές για την κατηγορία c j Χώρος Καθολικής και Ατομοκεντρικής Προσέγγισης Ο αλγόριθμος που προτείνουμε, συνδυάζει δύο προσεγγίσεις, την καθολογική και την ατομοκεντρική. Στο σημείο αυτό να θυμήσουμε πως το όλο σκεπτικό μας είναι να βελτιώσουμε τα αποτελέσματα ενός άλλου συμβατικού αλγορίθμου Προτασιακού Συστήματος, ώστε να επιτύχουμε ακόμα καλύτερες προβλέψεις για τους χρήστες. Επομένως ο στόχος μας εμάς είναι να έχουμε δεδομένα με τα οποία όταν θα μπορούμε να αξιολογήσουμε νέα αντικείμενα για έναν χρήστη ώστε αυτός να τα προτιμήσει ή να τα αγοράσει. Μπορούμε να θεωρήσουμε το στάδιο αυτό, ως στάδιο εκπαίδευσης (Training). Παίρνοντας ως είσοδο τα δεδομένα των χρηστών ο αλγόριθμός μας υπολογίζει από τον κάθε χρήστη και αντικείμενο τις παρακάτω τιμές: item in Training Set ddimension = K i=1 D(predominantCategory(u a), c i ) L j=1 D(predominantCategory(u a), c j ) predominantcategory(u a ): Η κατηγορία στην οποία έχει το μεγαλύτερο categoryinterest ο χρήστης u a K: Αριθμός κατηγοριών της ταινίας. L: Αριθμός συνολικών κατηγοριών, στο σύνολο δεδομένων. CIDimension = K CI(u a, c i ) K: αριθμός των κατηγοριών στις οποίες ανήκει το αντικείμενο. Για την τιμή ddimension επιθυμούμε να είναι υψηλή αφού συμβολίζει το πόσο ανόμοιο είναι σύμφωνα με το D matrix το αντικείμενο, το i=1 55

63 οποίο είναι αυτό που εμείς επιδιώκουμε. Αντίθετα η τιμή CIDimension επιθυμούμε να είναι χαμηλή, αφού με την ίδια λογική θέλουμε να έχει μικρό ενδιαφέρον συνολικά το αντικείμενο για τον χρήστη ώστε τελικά να ανακαλύψουμε μια λάθος εκτίμηση. Στη συνέχεια για κάθε κατηγορία του αντικειμένου που περνάει ένα threshold που το καθορίζουμε εμείς D(predominantCategory(u a ), c) > threshold, π.χ. την ενδιάμεση τιμή του D matrix, ώστε να θεωρείται αρκετά dissimilar η κατηγορία, τοποθετούμε τις τιμές [normalizedrate, ddimension, CIDimension] σε μια λίστα list(c)για το επόμενο στάδιο της πρόβλεψης βαθμολογίας Πρόβλεψη βαθμολογίας βασισμένη στα Πρότυπα Ανομοιότητας Στο σημείο αυτό εισάγουμε στον αλγόριθμό μας δεδομένα τα οποία περιέχουν βαθμολογίες από κάποιο άλλο συμβατικό αλγόριθμο Προτασιακού Συστήματος. Σκοπός μας είναι να καταφέρουμε να προσεγγίσουμε καλύτερα από τον άλλο αλγόριθμο, τις πραγματικές τελικά βαθμολογίες των χρηστών στα αντικείμενα. Το στάδιο αυτό μπορεί να χαρακτηριστεί ως στάδιο ελέγχου (Testing). Πιο συγκεκριμένα ο αλγόριθμός μας σε αυτό το σημείο παίρνει ως είσοδο τριάδες της μορφής userid, itemid¹, otherrecommendationalgorithmratingestimation Στη συνέχεια για κάθε χρήστη και αντικείμενο υπολογίζουμε και πάλι τις τιμές ddimension και CIDimension όπως τις είδαμε προηγουμένως. Κατόπιν κάθε κατηγορία του αντικειμένου για το αν περνάει το threshold που έχουμε καθορίσει εμείς και αν αυτό συμβαίνει τότε υπολογίζουμε το παρακάτω: c : D(predominantCategory(u a ), c) > threshold ratep rediction(c) = kn N(k, list(c), [ddimension, CIDimension]) όπου knn ο αλγόριθμος k-nearest-neighbors, k ο αριθμός των γειτόνων που επιθυμούμε και list(c) η λίστα που υπολογίσαμε στο στάδιο της ¹Τόσο στο σημείο αυτό του ελέγχου, όσο και της εκπαίδευσης μαζί με το itemid, θα πρέπει να παρέχουμε και τις κατηγορίες στις οποίες ανήκει το αντικείμενο: userid, itemid, [categoryid1, categoryid2,..., categoryidn], otherrecommendationalgorithmratingestimation. 56

64 εκπαίδευσης. Στο σημείο αυτό είναι σημαντικό να τονίσουμε πως συγκεκριμένοι συνδυασμοί χρηστών-ταινιών καταλαμβάνουν τις περισσότερες θέσεις που βρίσκονται κοντά στο αντικείμενο, με αποτέλεσμα να πολώνουν το αποτέλεσμα. Για τον λόγο αυτό προτιμούμε να παίρνουμε έναν αντιπρόσωπο από κάθε απόσταση ώστε να υπάρχει μεγαλύτερη εντροπία στις διαφορετικές k βαθμολογίες που βρίσκονται κοντά στο υπό εξέταση αντικείμενο. Κατόπιν παίρνουμε τον μέσο όρο των τιμών όλων των κατηγοριών. Δηλαδή: c : D(predominantCategory(u a ), c) > threshold f inaldissimilarityp rediction = ratep rediction(c) Στη συνέχεια έχοντας την παραπάνω τιμή, finaldissimilarityprediction, την συνδυάζουμε με τον προσέγγιση του άλλου αλγορίθμου για να πάρουμε την τελική τιμή. Δηλαδή: finalp rediction = F measure(orea, fdp ) orea: otherrecommendationalgorithmratingestimation fdp: finaldissimilarityprediction Τέλος εξάγουμε τα αποτελέσματά μας για κάθε χρήση. 57

65 Μέρος III ΠΕΙΡΑΜΑΤΙΣΜΟΣ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΑ 58

66 Κεφάλαιο 7 Πλαίσιο Σε αυτό το κεφάλαιο θα περιγράψουμε την υλοποίησή μας. Η υλοποίησή μας έγινε με τη φιλοσοφία του Map και Reduce, χρησιμοποιώντας το πλαίσιο του Hadoop. Οι διαδικασίες χωρίστηκαν σε κλάσεις και οι κλάσεις σε πακέτα ώστε κάθε κλάση και κάθε πακέτο να αντιστοιχεί σε συγκεκριμένες λειτουργίες της όλης μεθοδολογίας μας. Για λόγους συντομίας δεν θα περιγράψουμε τις κλάσεις και τα πακέτα, αλλά τις διεργασίες τις οποίες αυτές εκτελούν. Τέλος πριν ξεκινήσουμε τον σχολιασμό των διαδικασιών να σημειώσουμε πως οι συνολικές φάσεις Map και Reduce είναι οκτώ και αυτό έγινε με σκοπό να σπάσουμε όσο περισσότερο γίνεται το πρόβλημα σε υποπροβλήματα, έτσι ώστε να πετυχαίνουμε καλύτερους χρόνους αλλά και τοπικότητα των δεδομένων. Στο σχήμα 7.1 βλέπουμε τη συνολική - αφαιρετική - ροή διεργασιών του συστήματός μας. Στην είσοδο του συστήματος δίνουμε βαθμολογίες των χρηστών και ως έξοδο παίρνουμε νέες τιμές από το σύστημά μας για τις βαθμολογίες επάνω σε δεδομένα ελέγχου. Σχήμα 7.1: Συνολικό διάγραμμα ροής του πλαισίου 59

67 7.1 Σχολιασμός Διαδικασιών Στον ΥΠΟΛΟΓΙΣΜΟ ΔΕΥΤΕΡΕΥΟΥΣΩΝ ΔΟΜΩΝ υπολογίζονται οι Δευτερεύουσες Δομές τις οποίες περιγράψαμε στο κεφάλαιο 6 των διαδικασιών. Πιο συγκεκριμένα το τμήμα αυτό απεικονίζεται στο σχήμα 7.2 ως εξής: Σχήμα 7.2: Διάγραμμα ροής για τις δευτερεύουσες δομές Ακολουθούν οι φάσεις Map και Reduce του τμήματος αυτού. ΥΠΟΛΟΓΙΣΜΟΣ ΣΥΝΟΛΙΚΟΥ ΜΕΣΟΥ ΟΡΟΥ υπολογίζουμε τον συνολικό μέσο όρο από όλες τις βαθμολογίες των χρηστών σε λογική φυσικά Map/Reduce. Η τιμή αυτή χρειάζεται σε επόμενη διαδικασία, του υπολογισμού της προδιάθεσης του χρήστη. ΥΠΟΛΟΓΙΣΜΟΣ ΔΙΑΔΙΚΑΣΙΩΝ ΤΩΝ ΧΡΗΣΤΩΝ υπολογίζουμε τις απαραίτητες δομές για τις Αξιολογήσεις του χρήστη (User s Preferences), Αξιολογήσεις των χρηστών σε συγκεκριμένη κατηγορία (User s Preferences on a category), Προδιάθεση του χρήστη (User s Disposition) και Μέση τιμή του χρήστη σε μια κατηγορία (User s average value on a category). Οι παραπάνω δομές αφορούν κυρίως δεδομένα που έχουν στο επίκεντρό τους (ως κλειδί στα δεδομένα) τον χρήστη, για τον λόγο αυτό πήρε και η διαδικασία αυτή αυτόν τον χαρακτηρισμό. ΥΠΟΛΟΓΙΣΜΟΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΤΩΝ ΧΡΗΣΤΩΝ ΓΙΑ ΚΑ- ΤΗΓΟΡΙΕΣ υπολογίζουμε την δομή που θα περιέχει το Ενδιαφέρον του χρήστη για μια κατηγορία (User s Interest on a category). Για πρακτικούς λόγους υπολογίζεται ξεχωριστά. ΥΠΟΛΟΓΙΣΜΟΣ ΔΙΑΔΙΚΑΣΙΩΝ ΤΩΝ ΚΑΤΗΓΟΡΙΩΝ στην διαδικασία αυτή υπολογίζουμε τις απαραίτητες δομές για τις Αξιολογήσεις Κατηγορίας (Category s Preferences), Σύνολο χρηστών Κατηγορίας (Category s set of users) και Μέση τιμή Κατηγορίας (Category s average value). Οι προαναφερθείσες δομές αφορούν 60

68 δεδομένα που έχουν στο επίκεντρό τους την κατηγορία, επομένως σε παρόμοια λογική δώσαμε την ονομασία αυτή σε αυτή την διαδικασία. ΥΠΟΛΟΓΙΣΜΟΣ ΚΟΙΝΩΝ ΧΡΗΣΤΩΝ ΜΕΤΑΞΥ ΚΑΤΗΓΟΡΙΩΝ υπολογίζουμε την δομή για το Σύνολο χρηστών για συνδυασμό Κατηγοριών (Set of users for a pair of categories). Για πρακτικούς λόγους και πάλι υπολογίζεται ξεχωριστά. Στο επόμενο τμήμα, χρησιμοποιώντας τις δομές από τις προηγούμενες διαδικασίες συνεχίζουμε με τον υπολογισμό του Πίνακα Ανομοιοτήτων. Ο πίνακας υπολογίζεται σε μία φάση Map/Reduce. Στο τμήμα αυτό τροφοδοτούμε και εκτελούμε τον συμβατικό αλγόριθμο Προτασιακών Συστημάτων με το σύνολο δεδομένων εκπαίδευσης ώστε να κτίσει το μοντέλο του επάνω στους χρήστες, για να του δώσουμε στη συνέχεια το σύνολο δεδομένων ελέγχου και να μας παράξει τις δικές του εκτιμήσεις, οι οποίες εκτιμήσεις θα χρησιμοποιηθούν στον επόμενο τομέα της διαδικασίας ελέγχου του συστήματός μας. Η εκτέλεση αυτή αφορά τον εκάστοτε αλγόριθμο, επομένως δεν αποτελείται απαραίτητα από κάποια φάση Map και Reduce. Κατόπιν έχουμε το τμήμα της διαδικασίας της εκπαίδευσης, η οποία θα μπορούσε να υπολογιστεί και πριν από το προηγούμενο τομέα που περιγράψαμε δηλαδή τον συμβατικό αλγόριθμο, όπου υπολογίζονται σε μία φάση Map και Reduce οι λίστες των κατηγοριών, όπως τις αναφέραμε στο κεφάλαιο 6 των διαδικασιών. Η εκτέλεση αποτελείται από μία φάση Map και Reduce. Τέλος στο τομέα της διαδικασίας ελέγχου, εκτελούμε μία φάση Map και Reduce χρησιμοποιώντας τα δεδομένα ελέγχου και συνδυάζοντας τις τιμές από τον πίνακα D Matrix και τις λίστες του προηγούμενου βήματος προσπαθούμε να διορθώσουμε τυγχόν ανωμαλίες στις τιμές των βαθμολογιών του συμβατικού αλγορίθμου. Ως έξοδο παράγουμε ένα σύνολο δεδομένων που έχει ένα επιπλέον χαρακτηριστικό για κάθε συνδυασμό χρήστη-αντικειμένου, αυτό της δικής μας εκτίμησης βαθμολογίας. 7.2 Λεπτομέρειες υλοποίησης Κατά την ανάπτυξη του συστήματος συναντήθηκαν κάποιες προκλήσεις τις οποίες κληθήκαμε να ξεπεράσουμε. Για να αποφευχθούν τα κολλήματα σε παρόμοια ζητήματα σε μελλοντικές προσπάθειες υλοποίησης 61

69 συστημάτων σε Hadoop, θα αναφέρουμε τα πιο σημαντικά σημεία: Σχήμα 7.3: Δομή αρχείου MapFile Όλα τα κολλήματα αντιμετωπίστηκαν με τα αρχεία MapFiles, που από την μία μας έλυσαν τα χέρια για την αποθήκευση των δομών που θέλαμε σε δυαδική αναπαράσταση από την άλλη όμως χρειάστηκε να αντιμετωπίσουμε διάφορα κολλήματα για να καταφέρουμε να τα χρησιμοποιήσουμε. Τα MapFiles αποτελούν ειδικά αρχεία που μας παρέχει το πλαίσιο του Hadoop στα οποία μπορούμε να αποθηκεύσουμε δεδομένα της μορφής <key,value>. Τα αρχεία αυτά μπορούν να ανταπεξέλθουν σε μεγάλες ποσότητες δεδομένων, ενώ μας παρέχουν την δυνατότητα άμεσης O(1) προσπέλασης στα δεδομένα που θέλουμε. Πιο συγκεκριμένα ένα MapFile αποτελείται από έναν φάκελο μέσα στον οποίο βρίσκονται δύο αρχεία data και index. Το αρχείο index βρίσκεται συνεχώς φορτωμένο στην μνήμη RAM, τόσο σε λειτουργίες εισόδου (ανάγνωσης) όσο και εξόδου (εγγραφής), ενώ στο αρχείο data αποθηκεύονται τα δεδομένα σε ό,τι μορφή θελήσουμε (π.χ. δυαδική). Τα αρχεία MapFile απαιτούν προσοχή στα παρακάτω δύο σημεία: 1. Αν κλείσει το ρεύμα εξόδου προς αυτά, και προσπαθήσουμε να τα ανοίξουμε ξανά για να εγγράψουμε νέα δεδομένα, τότε τα παλιά θα σβηστούν. Ως λύση στο πρόβλημα αυτό εμείς προτείνουμε, τουλάχιστον στην παρούσα φάση, την δημιουργία ανεξάρτητων (όσο γίνεται όμως λιγότερων) MapFiles και την συνένωσή τους στη συνέχεια σε ένα μεγαλύτερο MapFile στο τέλος της διεργασίας. 2. Τα δεδομένα <key, value> πρέπει να εγγράφονται με σωστή σειρά ως προς το key. Τα προβλήματα δημιουργούνται στο σημείο αυτό λόγω των offsets που βρίσκονται αποθηκευμένα στους index. Θέλει ιδιαίτερη προσοχή το σημείο αυτό σε συνδυασμό με το προηγού- 62

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Αύξηση πελατών. Λίγα λόγια για Επιτυχημένες προωθήσεις

Αύξηση πελατών. Λίγα λόγια για Επιτυχημένες προωθήσεις Αύξηση πελατών Λίγα λόγια για Επιτυχημένες προωθήσεις Βελτίωση των προωθήσεων σας Εισαγωγή Συγκρίνετε τι σας συμφέρει Αποτέλεσμα και επανάληψη Υπάρχουν δυνατότητες για όλες τις επιχειρήσεις Εισαγωγή πληροφορίες

Διαβάστε περισσότερα

Γ Γυμνασίου: Οδηγίες Γραπτής Εργασίας και Σεμιναρίων. Επιμέλεια Καραβλίδης Αλέξανδρος. Πίνακας περιεχομένων

Γ Γυμνασίου: Οδηγίες Γραπτής Εργασίας και Σεμιναρίων. Επιμέλεια Καραβλίδης Αλέξανδρος. Πίνακας περιεχομένων Γ Γυμνασίου: Οδηγίες Γραπτής Εργασίας και Σεμιναρίων. Πίνακας περιεχομένων Τίτλος της έρευνας (title)... 2 Περιγραφή του προβλήματος (Statement of the problem)... 2 Περιγραφή του σκοπού της έρευνας (statement

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ Γ Γυμνασίου (Διευκρινιστικές σημειώσεις)

ΤΕΧΝΟΛΟΓΙΑ Γ Γυμνασίου (Διευκρινιστικές σημειώσεις) ΤΕΧΝΟΛΟΓΙΑ Γ Γυμνασίου (Διευκρινιστικές σημειώσεις) Εφαρμογή της μεθόδου έρευνας και πειραματισμού για εξοικείωση των μαθητών με τη διαδικασία της έρευνας στην παραγωγική διαδικασία. Μέσω της έρευνας στον

Διαβάστε περισσότερα

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Δανάη Κούτρα Eργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Εθνικό Μετσόβιο Πολυτεχνείο Θέματα Σκοπός της διπλωματικής

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο 2016-2017 Υποχρεωτική εργασία Τα τελευταία χρόνια, λόγω της τεράστιας αύξησης της ποσότητας της πληροφορίας που έχουμε

Διαβάστε περισσότερα

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας Εισαγωγή MapReduce ηµήτρης Λεβεντέας 6 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Το MapReduce είναι ένα framework λογισµικού που είσηχθηκε από την Google για να υποστηρίξει κατανεµηµένο υπολογισµό σε

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων Πληροφοριακά Συστήματα Διοίκησης Διοικητική Επιστήμη και Λήψη Αποφάσεων Η πολυπλοκότητα των αποφάσεων Αυξανόμενη πολυπλοκότητα λόγω: Ταχύτητας αλλαγών στο εξωτερικό περιβάλλον της επιχείρησης. Έντασης

Διαβάστε περισσότερα

Βασικές πηγές ιδεών για έναρξη επιχείρησης. προηγούμενη εμπειρία στον εργασιακό χώρο. ρωτώντας και συζητώντας με άλλους ανθρώπους

Βασικές πηγές ιδεών για έναρξη επιχείρησης. προηγούμενη εμπειρία στον εργασιακό χώρο. ρωτώντας και συζητώντας με άλλους ανθρώπους ΞΕΚΙΝΩΝΤΑΣ ΜΙΑ ΕΠΙΧΕΙΡΗΣΗ Η όλη προσπάθεια έναρξης μιας επιχείρησης ξεκινάει από την λεγόμενη επιχειρηματική ιδέα, την ιδέα δηλαδή στην οποία θα στηριχθεί όλος ο σχεδιασμός και η μορφή της νέας επιχείρησης.

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Έρευνα και Συγγραφή

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Έρευνα και Συγγραφή ΕΠΕΑΕΚ: ΑΝΑΜΟΡΦΩΣΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΤΟΥ ΤΕΦΑΑ ΠΘ ΑΥΤΕΠΙΣΤΑΣΙΑ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΦΥΣΙΚΗΣ ΑΓΩΓΗΣ & ΑΘΛΗΤΙΣΜΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΜΕ9900 ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Έρευνα και Συγγραφή Διάλεξη 7η Αναζήτηση

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού Πληροφοριακά Συστήματα Διοίκησης Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού Σημασία μοντέλου Το μοντέλο δημιουργεί μια λογική δομή μέσω της οποίας αποκτούμε μια χρήσιμη άποψη

Διαβάστε περισσότερα

Πετράκης Κώστας ΓΤΠ-61 Μάρτιος 2015

Πετράκης Κώστας ΓΤΠ-61 Μάρτιος 2015 Πετράκης Κώστας ΓΤΠ-61 Μάρτιος 2015 Εισαγωγή Πρόβλημα Ορισμός Μέθοδοι πρόβλεψης προτιμήσεων Δημιουργία βέλτιστων προτάσεων Τεκμηρίωση προτάσεων Ενημέρωση και επεκτασιμότητα People read around 10 MB worth

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

Διαβάστε περισσότερα

Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ

Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ Τι είναι η ερευνητική εργασία Η ερευνητική εργασία στο σχολείο είναι μια δυναμική διαδικασία, ανοιχτή στην αναζήτηση για την κατανόηση του πραγματικού κόσμου.

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Μεγάλα Δεδομένα ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου Bytes 1KB = 2 10 1MB = 2 20 1GB = 2 30 1TB = 2 40 1PB = 2 50 1EB = 2 60 1ZB = 2 70 1YB

Διαβάστε περισσότερα

Αριστομένης Μακρής. Συστήματα Επιχειρηματικής Ευφυΐας (BI/BA)

Αριστομένης Μακρής. Συστήματα Επιχειρηματικής Ευφυΐας (BI/BA) Αναλυτική μέσων Κοινωνικής Δικτύωσης (Social Media Analytics) Πληθυσμός Τεχνολογία ο χώρος (χορός) των υπερβολών Παράδειγμα υπερβολής Το 2005 το αγοράζει η News Corp αντί $580.000.000 Το 2008 η αξία της

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΕΠΙΛΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΔΟΣΗΣ ΣΕ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ ΜΕ ΣΥΣΚΕΥΕΣ ΔΙΑΚΡΙΤΩΝ ΤΙΜΩΝ ΙΣΧΥΟΣ ΜΕ ΤΗ ΧΡΗΣΗ

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Μεγάλα Δεδομένα ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου @ 2017 Bytes 1KB = 2 10 1MB = 2 20 1GB = 2 30 1TB = 2 40 1PB = 2 50 1EB = 2 60 1ZB =

Διαβάστε περισσότερα

Μεθοδολογία Έρευνας Διάλεξη 10 η ( ) Παρουσίαση Πτυχιακής Εργασίας

Μεθοδολογία Έρευνας Διάλεξη 10 η ( ) Παρουσίαση Πτυχιακής Εργασίας Μεθοδολογία Έρευνας Διάλεξη 10 η (2018 19) Παρουσίαση Πτυχιακής Εργασίας Δρ. Αλέξανδρος Αποστολάκης Email: aapostolakis@staff.teicrete.gr E-class μαθήματος: https://eclass.teicrete.gr/courses/dsh208 Διάρθρωση

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α «ΤΕΧΝΙΚΕΣ ΟΜΟΙΟΤΗΤΑΣ ΑΝΟΜΟΙΟΤΗΤΑΣ ΣΕ ΠΡΟΤΑΣΙΑΚΑ ΜΟΝΤΕΛΑ ΚΑΙ

Διαβάστε περισσότερα

Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου Σχολιασμός ερευνητικής πρότασης

Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου Σχολιασμός ερευνητικής πρότασης Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου Σχολιασμός ερευνητικής πρότασης Αναστασία Χριστοδούλου, Dr. Γεώργιος Δαμασκηνίδης Τμήμα Ιταλικής Γλώσσας & Φιλολογίας Θεσσαλονίκη, 2015 Ιδιότητες

Διαβάστε περισσότερα

ΤΟ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟ ΣΧΕΔΙΟ (BUSINESS PLAN)

ΤΟ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟ ΣΧΕΔΙΟ (BUSINESS PLAN) Το παρακάτω κείμενο προέρχεται από το βιβλίο του Καθηγητή Θάνου Κριεμάδη με τίτλο: Επιχειρηματικότητα και Μικρομεσαίες Επιχειρήσεις Παροχής Υπηρεσιών, το οποίο εκδόθηκε το 2011 από την Νομική Βιβλιοθήκη.

Διαβάστε περισσότερα

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

Διαβάστε περισσότερα

Fake News ΕΛΛΗΝΙΚΟ ΚΕΝΤΡΟ ΑΣΦΑΛΟΥΣ ΔΙΑΔΙΚΤΥΟΥ. Γραμμή βοηθείας Ενημέρωση-Επαγρύπνηση Γραμμή παράνομου περιεχομένου

Fake News ΕΛΛΗΝΙΚΟ ΚΕΝΤΡΟ ΑΣΦΑΛΟΥΣ ΔΙΑΔΙΚΤΥΟΥ. Γραμμή βοηθείας Ενημέρωση-Επαγρύπνηση Γραμμή παράνομου περιεχομένου Fake News ΕΛΛΗΝΙΚΟ ΚΕΝΤΡΟ ΑΣΦΑΛΟΥΣ ΔΙΑΔΙΚΤΥΟΥ 210 6007686 www.safeline.gr Γραμμή βοηθείας Ενημέρωση-Επαγρύπνηση Γραμμή παράνομου περιεχομένου Η διασπορά ψευδών ειδήσεων ήταν και συνεχίζει να είναι ένα

Διαβάστε περισσότερα

Υπολογιστικής Σκέψης

Υπολογιστικής Σκέψης Απόκτηση και καλλιέργεια Υπολογιστικής Σκέψης Διακριτά Μαθηματικά Εισαγωγή στους Αλγόριθμους Αλγοριθμικά Θέματα Ασύρματων Δικτύων Υπολογιστική Επιστήμη και Πολιτισμός Τι είναι η υπολογιστική σκέψη; Οι

Διαβάστε περισσότερα

ΕΚΘΕΣΗ ΑΚΑΔΗΜΑΪΚΩΝ ΕΝΔΙΑΦΕΡΟΝΤΩΝ

ΕΚΘΕΣΗ ΑΚΑΔΗΜΑΪΚΩΝ ΕΝΔΙΑΦΕΡΟΝΤΩΝ ΕΚΘΕΣΗ ΑΚΑΔΗΜΑΪΚΩΝ ΕΝΔΙΑΦΕΡΟΝΤΩΝ Η έκθεση ακαδημαϊκών ενδιαφερόντων συνοδεύει σχεδόν πάντα την αίτηση για την είσοδο σε οποιοδήποτε πρόγραμμα μεταπτυχιακών σπουδών. Την έκθεση ακαδημαϊκών ενδιαφερόντων

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΧΕΔΙΑΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ Εργασία 1 η Ενεργή παρακολούθηση της ημερίδας με θέμα «Technology

Διαβάστε περισσότερα

15 τρόποι διαχείρισης αρνητικών σχολίων και κριτικής. Wake up to Booking.yeah

15 τρόποι διαχείρισης αρνητικών σχολίων και κριτικής. Wake up to Booking.yeah 15 τρόποι διαχείρισης αρνητικών σχολίων και κριτικής Wake up to Booking.yeah Ως γνωστόν δεν γίνεται να τους ικανοποιήσετε όλους κι αυτό ισχύει φυσικά και στον τομέα της φιλοξενίας. Όταν στο σπίτι σας μένουν

Διαβάστε περισσότερα

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

Διαβάστε περισσότερα

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

Διαβάστε περισσότερα

Προσωπικά δεδομένα στο Διαδίκτυο: Τα δικαιώματα & οι υποχρεώσεις μας

Προσωπικά δεδομένα στο Διαδίκτυο: Τα δικαιώματα & οι υποχρεώσεις μας Προσωπικά δεδομένα στο Διαδίκτυο: Τα δικαιώματα & οι υποχρεώσεις μας Δρ. Κωνσταντίνος Λιμνιώτης Πληροφορικός Ελεγκτής klimniotis at dpa.gr Τι είναι προσωπικά δεδομένα; Προσωπικά δεδομένα είναι κάθε πληροφορία

Διαβάστε περισσότερα

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1)

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1) ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1) 1 Προέλευση και ιστορία της Επιχειρησιακής Έρευνας Αλλαγές στις επιχειρήσεις Τέλος του 19ου αιώνα: βιομηχανική

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 451 Εξόρυξη Δεδομένων στον Παγκόσμιο Ιστό I. Στόχος ΑΣΚΗΣΗ 1 Ανάλυση συσχετίσεων ανάμεσα σε προϊόντα Διδάσκων: Γιώργος Πάλλης Υπεύθυνος Εργασίας: Παύλος Αντωνίου

Διαβάστε περισσότερα

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή.

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή. Λίστες Τι είναι οι λίστες; Πολλές φορές στην καθημερινή μας ζωή, χωρίς να το συνειδητοποιούμε, χρησιμοποιούμε λίστες. Τέτοια παραδείγματα είναι η λίστα του super market η οποία είναι ένας κατάλογος αντικειμένων

Διαβάστε περισσότερα

Future vs Imagination η νέα τάξη πραγμάτων είναι σίγουρα «δικτυωμένη»

Future vs Imagination η νέα τάξη πραγμάτων είναι σίγουρα «δικτυωμένη» Future vs Imagination η νέα τάξη πραγμάτων είναι σίγουρα «δικτυωμένη» Νικόλαος Ροδόπουλος Πρόεδρος & Διευθύνων Σύμβουλος OnLine Data AE Πρόεδρος Ελληνικής Εταιρείας Logistics «We live in a mobile-first

Διαβάστε περισσότερα

Μάθημα 2 ο : Επιχειρηματικό Σχέδιο

Μάθημα 2 ο : Επιχειρηματικό Σχέδιο Επιχειρηματικότητα & Μικρομεσαίες Επιχειρήσεις Παροχής Υπηρεσιών Μάθημα 2 ο : Επιχειρηματικό Σχέδιο 1 Ορισμοί και Αναγκαιότητα του Επιχειρηματικού Σχεδίου Το Επιχειρηματικό Σχέδιο είναι ένα γραπτό κείμενο

Διαβάστε περισσότερα

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Δρ. Βασίλειος Σάλτας 1, Αλέξης Ηλιάδης 2, Ιωάννης Μουστακέας 3 1 Διδάκτωρ Διδακτικής Μαθηματικών, Επιστημονικός Συνεργάτης ΑΣΠΑΙΤΕ Σαπών coin_kav@otenet.gr

Διαβάστε περισσότερα

10 Νέα χαρακτηριστικά του Facebook που (πιθανόν) δεν γνωρίζεις

10 Νέα χαρακτηριστικά του Facebook που (πιθανόν) δεν γνωρίζεις 10 Νέα χαρακτηριστικά του Facebook που (πιθανόν) δεν γνωρίζεις 6 Μαρτίου 2016 Παναγιώτης Σακαλάκης Αν υπάρχει κάτι που γνωρίζει ο περισσότερος κόσμος για το Facebook, αυτό είναι πως κατέχει την πρώτη θέση

Διαβάστε περισσότερα

Αλγόριθμοι. Σενάριο για μαθητές της Γ γυμνασίου, διάρκειας 4 ωρών διδασκαλίας

Αλγόριθμοι. Σενάριο για μαθητές της Γ γυμνασίου, διάρκειας 4 ωρών διδασκαλίας Αλγόριθμοι Σενάριο για μαθητές της Γ γυμνασίου, διάρκειας 4 ωρών διδασκαλίας Αλγόριθμοι Κύριος στόχος Παρουσίαση της έννοιας του αλγορίθμου υπό την οπτική της Επιστήμης των Υπολογιστών Αλγόριθμοι Επιμέρους

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ. ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ. ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ ΥΠΠΕΘ 04.07.2019 ΕΠΙΜΟΡΦΩΣΗ ΣΤΟ ΝΕΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ Αντικειμενοστραφής Προγραμματισμός.

Διαβάστε περισσότερα

Πώς Διηγούμαστε ή Αφηγούμαστε ένα γεγονός που ζήσαμε

Πώς Διηγούμαστε ή Αφηγούμαστε ένα γεγονός που ζήσαμε ΔΙΑΘΕΣΙΜΟ ΣΤΗ: http //blgs.sch.gr/anianiuris ΥΠΕΥΘΥΝΟΣ: Νιανιούρης Αντώνης (email: anianiuris@sch.gr) Πώς Διηγούμαστε ή Αφηγούμαστε ένα γεγονός που ζήσαμε Διηγούμαστε ή αφηγούμαστε ένα γεγονότος, πραγματικό

Διαβάστε περισσότερα

Committed to Excellence

Committed to Excellence Committed to Excellence Δέσµευση στην Επιχειρηµατική Αριστεία Προσέγγιση 2: EFQM Committed to Excellence Assessment 2 Star Διεθνής Πιστοποίηση Επιχειρήσεων Επίπεδα Επιχειρηµατικής Αριστείας EFQM COMMITTED

Διαβάστε περισσότερα

Εισαγωγή στα Πληροφοριακά Συστήματα

Εισαγωγή στα Πληροφοριακά Συστήματα Εισαγωγή στα Πληροφοριακά Συστήματα Ενότητα 3: Η έννοια της ΠΛΗΡΟΦΟΡΙΑΣ - INFORMATION Κωνσταντίνος Ταραμπάνης Τμήμα Οργάνωσης & Διοίκησης Επιχειρήσεων ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κωνσταντίνος Ταραμπάνης

Διαβάστε περισσότερα

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Επεξήγηση web site με λογικό διάγραμμα «Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Web : www.e-base.gr E-mail : support@e-base.gr Facebook : Like Twitter : @ebasegr Πολλοί άνθρωποι

Διαβάστε περισσότερα

Ενότητα 2: Ενθάρρυνση προς ηλικιωμένους για μάθηση της τεχνολογίας

Ενότητα 2: Ενθάρρυνση προς ηλικιωμένους για μάθηση της τεχνολογίας Ενότητα 2: Ενθάρρυνση προς ηλικιωμένους για μάθηση της τεχνολογίας Καθορίζοντας το Πλαίσιο Ο πληθυσμός των ηλικιωμένων (οι δημογραφικές αλλαγές)) Η οικονομική κρίση που επηρέασε την Ευρώπη και η προσπάθειά

Διαβάστε περισσότερα

Οδηγός LinkedIn. «10 συμβουλές επέκτασης της επιχείρησης σας, χρησιμοποιώντας το LinkedIn» Provided to you by

Οδηγός LinkedIn. «10 συμβουλές επέκτασης της επιχείρησης σας, χρησιμοποιώντας το LinkedIn» Provided to you by Οδηγός LinkedIn «10 συμβουλές επέκτασης της επιχείρησης σας, χρησιμοποιώντας το LinkedIn» Provided to you by 2 Οδηγός Linkedin, πώς να βοηθήσετε την επιχείρηση σας χρησιμοποιώντας το Ο ποιο κάτω οδηγός

Διαβάστε περισσότερα

10 λόγοι να φτιάξω ιστοσελίδα

10 λόγοι να φτιάξω ιστοσελίδα 10 λόγοι να φτιάξω ιστοσελίδα 1 10 λόγοι να φτιάξω ιστοσελίδα Γιατί η επιχείρησή σας χρειάζεται να έχει παρουσία στο διαδίκτυο? 2 1. Η εταιρική σας ιστοσελίδα είναι ανοιχτή στον κόσμο 24 ώρες την ημέρα,

Διαβάστε περισσότερα

Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000)

Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000) Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000) Πρόκειται για την έρευνα που διεξάγουν οι επιστήμονες. Είναι μια πολύπλοκη δραστηριότητα που απαιτεί ειδικό ακριβό

Διαβάστε περισσότερα

28 Πολυπρακτορικά Συστήµατα

28 Πολυπρακτορικά Συστήµατα ΚΕΦΑΛΑΙΟ 28 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge, 2002] Η παραπάνω ρήση από το βιβλίο του M.Wooldridge τονίζει, ίσως µε περισσή έµφαση, ότι είναι πλέον

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΑ ΒΟΗΘΗΜΑΤΑ ΓΙΑ ΤΗΝ ΔΙΕΚΠΑΙΡΕΩΣΗ ΑΣΚΗΣΕΩΝ ΜΕ ΤΗΝ ΧΡΗΣΗ ΦΟΡΗΤΩΝ ΣΥΣΚΕΥΩΝ

ΗΛΕΚΤΡΟΝΙΚΑ ΒΟΗΘΗΜΑΤΑ ΓΙΑ ΤΗΝ ΔΙΕΚΠΑΙΡΕΩΣΗ ΑΣΚΗΣΕΩΝ ΜΕ ΤΗΝ ΧΡΗΣΗ ΦΟΡΗΤΩΝ ΣΥΣΚΕΥΩΝ d 2013 ΗΛΕΚΤΡΟΝΙΚΑ ΒΟΗΘΗΜΑΤΑ ΓΙΑ ΤΗΝ ΔΙΕΚΠΑΙΡΕΩΣΗ ΑΣΚΗΣΕΩΝ ΜΕ ΤΗΝ ΧΡΗΣΗ ΦΟΡΗΤΩΝ ΣΥΣΚΕΥΩΝ ΧΡΗΣΤΟΣ ΜΠΑΝΤΟΓΙΑΣ, ΑΕΜ:1817 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΠΟΛΙΤΗΣ ΔΙΟΝΥΣΙΟΣ Περίληψη.. Σελ.2 Εισαγωγή Σελ.3 Ανασκόπηση της

Διαβάστε περισσότερα

Κεφάλαιο 9. Έλεγχοι υποθέσεων

Κεφάλαιο 9. Έλεγχοι υποθέσεων Κεφάλαιο 9 Έλεγχοι υποθέσεων 9.1 Εισαγωγή Όταν παίρνουμε ένα ή περισσότερα τυχαία δείγμα από κανονικούς πληθυσμούς έχουμε τη δυνατότητα να υπολογίζουμε στατιστικά, όπως μέσους όρους, δειγματικές διασπορές

Διαβάστε περισσότερα

Εκπαιδευτικό Σενάριο 2

Εκπαιδευτικό Σενάριο 2 Εκπαιδευτικό Σενάριο 2 Τίτλος: Τα συνεργατικά περιβάλλοντα δημιουργίας και επεξεργασίας υπολογιστικών φύλλων Εκτιμώμενη διάρκεια εκπαιδευτικού σεναρίου: Προβλέπεται να διαρκέσει συνολικά 3 διδακτικές ώρες.

Διαβάστε περισσότερα

Πολιτική για τα cookie

Πολιτική για τα cookie Πολιτική για τα cookie Η BSEU χρησιµοποιεί cookie για να βελτιώνει συνεχώς την εµπειρία των επισκεπτών της διαδικτυακής τοποθεσίας της. Πρώτα από όλα, τα cookie µπορούν να βελτιώσουν άµεσα αυτή την εµπειρία,

Διαβάστε περισσότερα

Κατανοώντας την επιχειρηματική ευκαιρία

Κατανοώντας την επιχειρηματική ευκαιρία Η Επιχειρηματική Ευκαιρία Κατανοώντας την επιχειρηματική ευκαιρία Υπάρχουν έρευνες οι οποίες δείχνουν ότι στους περισσότερους επιχειρηματίες που ξεκινούν για πρώτη φορά μια επιχείρηση, τελειώνουν τα χρήματα

Διαβάστε περισσότερα

2. ΕΠΙΛΟΓΗ ΜΟΝΤΕΛΟΥ ΜΕ ΤΗ ΜΕΘΟΔΟ ΤΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΜΕΤΑΒΛΗΤΩΝ (Backward Elimination Procedure) Στην στατιστική βιβλιογραφία υπάρχουν πολλές μέθοδοι για

2. ΕΠΙΛΟΓΗ ΜΟΝΤΕΛΟΥ ΜΕ ΤΗ ΜΕΘΟΔΟ ΤΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΜΕΤΑΒΛΗΤΩΝ (Backward Elimination Procedure) Στην στατιστική βιβλιογραφία υπάρχουν πολλές μέθοδοι για 2. ΕΠΙΛΟΓΗ ΜΟΝΤΕΛΟΥ ΜΕ ΤΗ ΜΕΘΟΔΟ ΤΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΜΕΤΑΒΛΗΤΩΝ (Backward Elimination Procedure) Στην στατιστική βιβλιογραφία υπάρχουν πολλές μέθοδοι για τον καθορισμό του καλύτερου υποσυνόλου από ένα σύνολο

Διαβάστε περισσότερα

Διπλωματική Εργασία Αναγνώριση και ταξινόμηση ιστολόγιων. Αναστασιάδης Αντώνιος

Διπλωματική Εργασία Αναγνώριση και ταξινόμηση ιστολόγιων. Αναστασιάδης Αντώνιος Αναστασιάδης Αντώνιος Τα ιστολόγια σήμερα Διπλωματική Εργασία Η σημασία των πληροφοριών των ιστολόγιων Μέθοδοι κατάτμησης ιστολόγιων Αξιολόγηση κατάτμησης Ταξινόμηση καταχωρήσεων Αξιολόγηση ταξινόμησης

Διαβάστε περισσότερα

Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015

Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015 Εκπαίδευση Ενηλίκων: Εμπειρίες και Δράσεις ΑΘΗΝΑ, Δευτέρα 12 Οκτωβρίου 2015 Μάθηση και γνώση: μια συνεχής και καθοριστική αλληλοεπίδραση Αντώνης Λιοναράκης Στην παρουσίαση που θα ακολουθήσει θα μιλήσουμε

Διαβάστε περισσότερα

Τοπικό Σχέδιο Δράσης «Δίκτυο για την Κοινωνική Οικονομία και την Προώθηση στην Απασχόληση Γυναικών Επιστημόνων στο Θριάσιο Πεδίο»

Τοπικό Σχέδιο Δράσης «Δίκτυο για την Κοινωνική Οικονομία και την Προώθηση στην Απασχόληση Γυναικών Επιστημόνων στο Θριάσιο Πεδίο» Τοπικό Σχέδιο Δράσης «Δίκτυο για την Κοινωνική Οικονομία και την Προώθηση στην Απασχόληση Γυναικών Επιστημόνων στο Θριάσιο Πεδίο» * της Αναπτυξιακής Σύμπραξης «ΘΡΙΑΣΊΑ- Νέες Γυναίκες της Επιστήμης στην

Διαβάστε περισσότερα

Θέµα ιερεύνησης: Ο καιρός

Θέµα ιερεύνησης: Ο καιρός Θέµα ιερεύνησης: Ο καιρός Αντικείµενο της συγκεκριµένης δραστηριότητας είναι η µεθοδική παρατήρηση των καιρικών συνθηκών για ένα σχετικά µεγάλο χρονικό διάστηµα, η καταγραφή και οργάνωση των παρατηρήσεων

Διαβάστε περισσότερα

Μεθοδολογία Έρευνας Διάλεξη 1 η : Εισαγωγή στη Μεθοδολογία Έρευνας

Μεθοδολογία Έρευνας Διάλεξη 1 η : Εισαγωγή στη Μεθοδολογία Έρευνας Μεθοδολογία Έρευνας Διάλεξη 1 η : Εισαγωγή στη Μεθοδολογία Έρευνας 1 Δρ. Αλέξανδρος Αποστολάκης Email: aapostolakis@staff.teicrete.gr Τηλ.: 2810379603 E-class μαθήματος: https://eclass.teicrete.gr/courses/pgrad_omm107/

Διαβάστε περισσότερα

ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ

ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ ΤΕΧΝΙΚΕΣ ΕΡΕΥΝΑΣ (# 252) Ε ΕΞΑΜΗΝΟ 9 η ΕΙΣΗΓΗΣΗ ΣΗΜΕΙΩΣΕΙΣ ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ ΛΙΓΗ ΘΕΩΡΙΑ Στην προηγούμενη διάλεξη μάθαμε ότι υπάρχουν διάφορες μορφές έρευνας

Διαβάστε περισσότερα

Σύστημα. Αντώνης Μαϊργιώτης

Σύστημα. Αντώνης Μαϊργιώτης Σύστημα Αντώνης Μαϊργιώτης Σε ένα οργανισμό υπάρχουν προβλήματα για λύση Η διεύθυνση του οργανισμού αναθέτει τη λύση στους κατάλληλους ανθρώπους Οι πιο κατάλληλοι άνθρωποι είναι αυτοί που θέλουν τις κατάλληλες

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Καθηγητής : Κουμπαράκης Μανόλης Ημ/νία παράδοσης: 11/01/2011 Ονομ/μο φοιτητή : Μπεγέτης Νικόλαος Α.Μ.:

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: ΜΑΡΚΕΤΙΝΓΚ ΠΡΟΙΌΝΤΩΝ ΞΥΛΟΥ ΚΑΙ ΕΠΙΠΛΟΥ ΜΑΡΚΕΤΙΝΓΚ

ΜΑΘΗΜΑ: ΜΑΡΚΕΤΙΝΓΚ ΠΡΟΙΌΝΤΩΝ ΞΥΛΟΥ ΚΑΙ ΕΠΙΠΛΟΥ ΜΑΡΚΕΤΙΝΓΚ ΕΡΓΑΣΤΗΡΙΟ ΕΦΑΡΜΟΣΜΕΝΟΥ ΜΑΡΚΕΤΙΝΓΚ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΜΑΘΗΜΑ: ΜΑΡΚΕΤΙΝΓΚ ΠΡΟΙΌΝΤΩΝ ΞΥΛΟΥ ΚΑΙ ΕΠΙΠΛΟΥ Έρευνα μάρκετινγκ Τιμολόγηση Ανάπτυξη νέων προϊόντων ΜΑΡΚΕΤΙΝΓΚ Τμηματοποίηση της αγοράς Κανάλια

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΣΤΑΣΗΣ ΜΑΘΗΤΩΝ ΕΝΑΝΤΙ ΤΗΣ ΔΙΔΑΣΚΑΛΙΑΣ ΜΑΘΗΜΑΤΟΣ ΙΣΤΟΡΙΑΣ ΜΕ Η ΧΩΡΙΣ ΕΚΠΑΙΔΕΥΤΙΚΟ ΛΟΓΙΣΜΙΚΟ

ΣΥΓΚΡΙΤΙΚΗ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΣΤΑΣΗΣ ΜΑΘΗΤΩΝ ΕΝΑΝΤΙ ΤΗΣ ΔΙΔΑΣΚΑΛΙΑΣ ΜΑΘΗΜΑΤΟΣ ΙΣΤΟΡΙΑΣ ΜΕ Η ΧΩΡΙΣ ΕΚΠΑΙΔΕΥΤΙΚΟ ΛΟΓΙΣΜΙΚΟ 556 3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ ΣΥΓΚΡΙΤΙΚΗ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΣΤΑΣΗΣ ΜΑΘΗΤΩΝ ΕΝΑΝΤΙ ΤΗΣ ΔΙΔΑΣΚΑΛΙΑΣ ΜΑΘΗΜΑΤΟΣ ΙΣΤΟΡΙΑΣ ΜΕ Η ΧΩΡΙΣ ΕΚΠΑΙΔΕΥΤΙΚΟ ΛΟΓΙΣΜΙΚΟ Ματούλας Γεώργιος Δάσκαλος ΔΣ Ευξινούπολης

Διαβάστε περισσότερα

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα 6ο Πανελλήνιο Συνέδριο των Εκπαιδευτικών για τις ΤΠΕ «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη» Σύρος 6-8 Μαϊου 2011 Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά

Διαβάστε περισσότερα

Εισαγωγή στις Τεχνολογίες της

Εισαγωγή στις Τεχνολογίες της Εισαγωγή στις Τεχνολογίες της Πληροφορίας και των Επικοινωνιών Ενότητα 13 : Crowdsourcing, Τεχνητή Νοημοσύνη, Συστήματα σύστασης Διδάσκων: Νικόλαος Τσέλιος Τμήμα Επιστημών της Εκπαίδευσης και της Αγωγής

Διαβάστε περισσότερα

Δημητρίου Γεώργιος. Αναφορά Απασχολησιμότητας. Απρίλιος, 2013. Αναφορά Απασχολησιμότητας Δημητρίου Γεώργιος Απρίλιος, 2013 Σελίδα 1 / 7

Δημητρίου Γεώργιος. Αναφορά Απασχολησιμότητας. Απρίλιος, 2013. Αναφορά Απασχολησιμότητας Δημητρίου Γεώργιος Απρίλιος, 2013 Σελίδα 1 / 7 Δημητρίου Γεώργιος Απρίλιος, 2013 Αναφορά Απασχολησιμότητας Αναφορά Απασχολησιμότητας Δημητρίου Γεώργιος Απρίλιος, 2013 Σελίδα 1 / 7 Περιεχόμενα Εισαγωγή... 3 Προφίλ Απασχολησιμότητας... 3 Πώς να διαβάσεις

Διαβάστε περισσότερα

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΤΟ

Διαβάστε περισσότερα

Τμήμα Επιστημών της Θάλασσας Σύντομες οδηγίες συγγραφής της Πτυχιακής Εργασίας

Τμήμα Επιστημών της Θάλασσας Σύντομες οδηγίες συγγραφής της Πτυχιακής Εργασίας Τμήμα Επιστημών της Θάλασσας Σύντομες οδηγίες συγγραφής της Πτυχιακής Εργασίας Περίληψη (τυπική έκταση: 2-3 παράγραφοι) Η Περίληψη συνοψίζει την εργασία και τα κύρια ευρήματα αυτής με τέτοιον τρόπο, ώστε

Διαβάστε περισσότερα

Social Media. Chapter 2 Social Media Marketing

Social Media. Chapter 2 Social Media Marketing Social Media W Chapter 2 Social Media Marketing p.1 Τι είναι το Social Media Marketing Πρόκειται για ένα νέο marketing, που απευθύνεται σε ένα νέο καταναλωτή. Ζούμε σε μια εποχή που η τεχνολογία αλλάζει

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 435: ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΥΠΟΛΟΓΙΣΤΗ Ακαδηµαϊκό Έτος 2004 2005, Χειµερινό Εξάµηνο 2 Η ΟΜΑ ΙΚΗ ΕΡΓΑΣΙΑ: ΑΝΑΠΤΥΞΗ ΑΡΧΙΚΗΣ Ι ΕΑΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΝΑΓΚΩΝ

Διαβάστε περισσότερα

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

Διαβάστε περισσότερα

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΜΟΣ ΕΝΟΣ INTERNET MARKETING PLAN

ΣΧΕΔΙΑΣΜΟΣ ΕΝΟΣ INTERNET MARKETING PLAN ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΑΦΡΟΔΙΤΗ ΜΑΛΑΜΑ ΣΧΕΔΙΑΣΜΟΣ ΕΝΟΣ INTERNET MARKETING PLAN Επιβλέπουσα Καθηγήτρια: κα Μάρω Βλαχοπούλου Εξεταστής:

Διαβάστε περισσότερα

Social Web: lesson #3

Social Web: lesson #3 Social Web: lesson #3 tagging social organisation of information ratings democratic editorial control shared opinions collaborative filtering recommendations case studies del.icio.us digg last.fm το Tag...

Διαβάστε περισσότερα

Συστήματα Πληροφοριών Διοίκησης

Συστήματα Πληροφοριών Διοίκησης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Συστήματα Πληροφοριών Διοίκησης Ενότητα 2: Γενική θεώρηση και κατάταξη συστημάτων πληροφοριών διοίκησης Διονύσιος Γιαννακόπουλος, Καθηγητής Τμήμα

Διαβάστε περισσότερα

Η ΜΙΚΡΟΔΙΔΑΣΚΑΛΙΑ, ΕΡΓΑΛΕΙΟ ΤΟΥ ΜΕΛΛΟΝΤΙΚΟΥ ΕΚΠΑΙΔΕΥΤΗ

Η ΜΙΚΡΟΔΙΔΑΣΚΑΛΙΑ, ΕΡΓΑΛΕΙΟ ΤΟΥ ΜΕΛΛΟΝΤΙΚΟΥ ΕΚΠΑΙΔΕΥΤΗ Η ΜΙΚΡΟΔΙΔΑΣΚΑΛΙΑ, ΕΡΓΑΛΕΙΟ ΤΟΥ ΜΕΛΛΟΝΤΙΚΟΥ ΕΚΠΑΙΔΕΥΤΗ Κατερίνα Κεδράκα Επικ. Καθηγήτρια ΔΠΘ Τι είναι μια μικροδιδασκαλία; Μια μικροδιδασκαλία είναι μια μικρογραφία μαθήματος, μια ενδεικτική διδασκαλία,

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Συστήματα Υποστήριξης Αποφάσεων

Συστήματα Υποστήριξης Αποφάσεων ΠΜΣ Πληροφορική Συστήματα Υποστήριξης Αποφάσεων Επιλογέας Μαθήματος Φοιτητών με τη χρήση εφαρμογής μέσω διαδικτύου Γκίκας Χρήστος ΜΠΠΛ/ 09032 Οκτώβριος 14 Επιλογέας Μαθήματος Εφαρμογή που χρησιμοποιείται

Διαβάστε περισσότερα

Τεχνικές συλλογής δεδομένων στην ποιοτική έρευνα

Τεχνικές συλλογής δεδομένων στην ποιοτική έρευνα Το κείμενο αυτό είναι ένα απόσπασμα από το Κεφάλαιο 16: Ποιοτικές ερμηνευτικές μέθοδοι έρευνας στη φυσική αγωγή (σελ.341-364) του βιβλίου «Για μία καλύτερη φυσική αγωγή» (Παπαιωάννου, Α., Θεοδωράκης Ι.,

Διαβάστε περισσότερα

O7: Πρόγραμμα Κατάρτισης Εκπαιδευτικών O7-A1: Αναπτύσσοντας εργαλεία για το Πρόγραμμα Κατάρτισης Εκπαιδευτικών

O7: Πρόγραμμα Κατάρτισης Εκπαιδευτικών O7-A1: Αναπτύσσοντας εργαλεία για το Πρόγραμμα Κατάρτισης Εκπαιδευτικών O7: Πρόγραμμα Κατάρτισης Εκπαιδευτικών O7-A1: Αναπτύσσοντας εργαλεία για το Πρόγραμμα Κατάρτισης Εκπαιδευτικών Prepared by University Paderborn 30/11/2015 Project name: Project acronym: Project number:

Διαβάστε περισσότερα

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η Δ.Πολίτης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

Διαβάστε περισσότερα

Αντιλήψεις-Στάσεις των μαθητών του γυμνασίου και των Λ.Τ. τάξεων σχετικά με την σχολική ζωή

Αντιλήψεις-Στάσεις των μαθητών του γυμνασίου και των Λ.Τ. τάξεων σχετικά με την σχολική ζωή Αντιλήψεις-Στάσεις των μαθητών του γυμνασίου και των Λ.Τ. τάξεων σχετικά με την σχολική ζωή 2016-2017 Βαβαρούτα Κατερίνα Σπυρόπουλος Βασίλης Ψηλοπαναγιώτη Άννα Ψυχομάνη Γεωργία Ριόλος 2016-17 1 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Κεφάλαιο 10 Εισαγωγή στην Εκτίμηση

Κεφάλαιο 10 Εισαγωγή στην Εκτίμηση Κεφάλαιο 10 Εισαγωγή στην Εκτίμηση Εκεί που είμαστε Κεφάλαια 7 και 8: Οι διωνυμικές,κανονικές, εκθετικές κατανομές και κατανομές Poisson μας επιτρέπουν να κάνουμε διατυπώσεις πιθανοτήτων γύρω από το Χ

Διαβάστε περισσότερα

Ενότητες Γ3.1 - Γ3.2 - Γ3.3

Ενότητες Γ3.1 - Γ3.2 - Γ3.3 Ενότητες Γ3.1 - Γ3.2 - Γ3.3 3.1 Τo διαδίκτυο ως πηγή πληροφοριών 3.2 Αξιοποίηση- αξιολόγηση ιστοσελίδων, ιστοχώρων και πυλών 3.3 Σχεδίαση μαθημάτων με τη χρήση του διαδικτύου To Διαδίκτυο ως πηγή πληροφοριών

Διαβάστε περισσότερα