Τα συστήματα συστάσεων είναι μία από τις πιο ευρέως διαδεδομένες τεχνολογίες μηχανικής μάθησης (ML) σε εφαρμογές πραγματικού κόσμου, που κυμαίνονται από τα κοινωνικά δίκτυα έως τις πλατφόρμες ηλεκτρονικού εμπορίου. Οι χρήστες πολλών διαδικτυακών συστημάτων βασίζονται σε συστήματα συστάσεων για να δημιουργήσουν νέες φιλίες, να ανακαλύψουν νέα μουσική σύμφωνα με προτεινόμενες λίστες μουσικής ή ακόμα και να λάβουν αποφάσεις αγοράς ηλεκτρονικού εμπορίου με βάση τα προτεινόμενα προϊόντα. Στα κοινωνικά δίκτυα, μια συνηθισμένη περίπτωση χρήσης είναι να προτείνουμε νέους φίλους σε έναν χρήστη με βάση τις άλλες συνδέσεις των χρηστών. Οι χρήστες με κοινούς φίλους πιθανότατα γνωρίζονται μεταξύ τους. Επομένως, θα πρέπει να έχουν υψηλότερη βαθμολογία για να προτείνουν ένα σύστημα συστάσεων εάν δεν έχουν συνδεθεί ακόμα.
Τα κοινωνικά δίκτυα μπορούν φυσικά να εκφραστούν σε ένα γράφημα, όπου οι κόμβοι αντιπροσωπεύουν τους ανθρώπους και οι συνδέσεις μεταξύ των ανθρώπων, όπως η φιλία ή οι συνάδελφοι, αντιπροσωπεύονται από ακμές. Το παρακάτω απεικονίζει ένα τέτοιο κοινωνικό δίκτυο. Ας φανταστούμε ότι έχουμε ένα κοινωνικό δίκτυο με τα μέλη (κόμβους) Bill, Terry, Henry, Gary και Alistair. Οι σχέσεις τους αντιπροσωπεύονται από έναν σύνδεσμο (άκρο) και τα ενδιαφέροντα κάθε ατόμου, όπως αθλήματα, τέχνες, παιχνίδια και κόμικς, αντιπροσωπεύονται από ιδιότητες κόμβου.
Ο στόχος εδώ είναι να προβλέψουμε εάν υπάρχει ένας πιθανός κρίκος που λείπει μεταξύ των μελών. Για παράδειγμα, πρέπει να προτείνουμε μια σύνδεση μεταξύ του Henry και του Terry; Κοιτάζοντας το γράφημα, μπορούμε να δούμε ότι έχουν δύο κοινούς φίλους, τον Gary και τον Alistair. Επομένως, υπάρχει μεγάλη πιθανότητα ο Χένρι και ο Τέρι είτε να γνωρίζονταν ήδη είτε να γνωριστούν σύντομα. Τι θα λέγατε για τον Χένρι και τον Μπιλ; Δεν έχουν κοινούς φίλους, αλλά έχουν κάποια αδύναμη σύνδεση μέσω των συνδέσεων των φίλων τους. Επιπλέον, και οι δύο έχουν παρόμοια ενδιαφέροντα για τις τέχνες, τα κόμικς και τα παιχνίδια. Πρέπει να προωθήσουμε αυτή τη σύνδεση; Όλες αυτές οι ερωτήσεις και οι διαισθήσεις είναι η βασική λογική των συστημάτων συστάσεων κοινωνικών δικτύων.
Ένας πιθανός τρόπος για να γίνει αυτό είναι να προτείνετε σχέσεις που βασίζονται στην εξερεύνηση γραφήματος. Σε γλώσσες ερωτημάτων γραφημάτων, όπως π.χ Apache TinkerPop Gremlin, η εφαρμογή συνόλων κανόνων, όπως η καταμέτρηση κοινών φίλων, είναι σχετικά εύκολη και μπορεί να χρησιμοποιηθεί για τον προσδιορισμό της σχέσης μεταξύ του Χένρι και του Τέρι. Ωστόσο, αυτά τα σύνολα κανόνων θα είναι πολύ περίπλοκα όταν θέλουμε να λάβουμε υπόψη άλλα χαρακτηριστικά, όπως ιδιότητες κόμβου, ισχύ σύνδεσης κ.λπ. Ας φανταστούμε ένα σύνολο κανόνων για τον προσδιορισμό της σύνδεσης μεταξύ του Henry και του Bill. Αυτό το σύνολο κανόνων πρέπει να λαμβάνει υπόψη τα κοινά τους ενδιαφέροντα και τις αδύναμες συνδέσεις τους μέσω ορισμένων μονοπατιών στο γράφημα. Για να αυξήσουμε την ευρωστία, ίσως χρειαστεί επίσης να προσθέσουμε έναν παράγοντα απόστασης για να ευνοήσουμε τις ισχυρές συνδέσεις και να τιμωρήσουμε τις αδύναμες. Ομοίως, θα θέλαμε έναν παράγοντα που να ευνοεί τα κοινά συμφέροντα. Σύντομα, τα σύνολα κανόνων που μπορούν να αποκαλύψουν πολύπλοκα κρυφά μοτίβα θα καταστεί αδύνατο να απαριθμηθούν.
Η τεχνολογία ML μας επιτρέπει να ανακαλύψουμε κρυφά μοτίβα εκμάθησης αλγορίθμων. Ένα παράδειγμα είναι το XGBoost, το οποίο χρησιμοποιείται ευρέως για εργασίες ταξινόμησης ή παλινδρόμησης. Ωστόσο, αλγόριθμοι όπως ο XGBoost χρησιμοποιούν μια συμβατική προσέγγιση ML που βασίζεται σε μορφή πίνακα δεδομένων. Αυτές οι προσεγγίσεις δεν είναι βελτιστοποιημένες για δομές δεδομένων γραφημάτων και απαιτούν σύνθετη μηχανική χαρακτηριστικών για να αντιμετωπίσουν αυτά τα μοτίβα δεδομένων.
Στο προηγούμενο παράδειγμα κοινωνικού δικτύου, οι πληροφορίες αλληλεπίδρασης γραφήματος είναι κρίσιμες για τη βελτίωση της ακρίβειας των συστάσεων. Το νευρωνικό δίκτυο γραφήματος (GNN) είναι ένα πλαίσιο βαθιάς εκμάθησης (DL) που μπορεί να εφαρμοστεί σε δεδομένα γραφήματος για την εκτέλεση εργασιών πρόβλεψης σε επίπεδο ακμής, σε επίπεδο κόμβου ή σε επίπεδο γραφήματος. Τα GNN μπορούν να αξιοποιήσουν μεμονωμένα χαρακτηριστικά κόμβου καθώς και πληροφορίες δομής γραφήματος όταν μαθαίνουν την αναπαράσταση του γραφήματος και τα υποκείμενα μοτίβα. Ως εκ τούτου, τα τελευταία χρόνια, οι μέθοδοι που βασίζονται στο GNN έχουν θέσει νέα πρότυπα σε πολλά σημεία αναφοράς συστημάτων συστάσεων. Δείτε αναλυτικότερες πληροφορίες σε πρόσφατες ερευνητικές εργασίες: Μια ολοκληρωμένη έρευνα για τα νευρωνικά δίκτυα γραφικών και Συστήματα συστάσεων με βάση τη μάθηση γραφήματος: Μια ανασκόπηση.
Το παρακάτω είναι ένα διάσημο παράδειγμα μιας τέτοιας περίπτωσης χρήσης. Ερευνητές και μηχανικοί στο Pinterest έχουν εκπαιδευτεί Γράφημα Συνελικτικά Νευρωνικά Δίκτυα για Συστήματα Προτάσεων Κλίμακας Ιστού, που ονομάζεται PinSage, με τρία δισεκατομμύρια κόμβους που αντιπροσωπεύουν καρφίτσες και πίνακες και 18 δισεκατομμύρια άκρες. Το PinSage δημιουργεί ενσωματώσεις υψηλής ποιότητας που αντιπροσωπεύουν καρφίτσες (οπτικούς σελιδοδείκτες σε διαδικτυακό περιεχόμενο). Αυτά μπορούν να χρησιμοποιηθούν για ένα ευρύ φάσμα εργασιών κατάντη συστάσεων, όπως αναζητήσεις πλησιέστερου γείτονα στον εκμαθημένο χώρο ενσωμάτωσης για ανακάλυψη περιεχομένου και προτάσεις.
Σε αυτήν την ανάρτηση, θα σας καθοδηγήσουμε στον τρόπο χρήσης GNN για περιπτώσεις χρήσης συστάσεων, μεταφέροντας αυτό ως πρόβλημα πρόβλεψης συνδέσμου. Θα δείξουμε επίσης πώς το Neptune ML μπορεί να διευκολύνει την εφαρμογή. Θα παρέχουμε επίσης δείγμα κώδικα στο GitHub για να εκπαιδεύσετε το πρώτο σας GNN με το Neptune ML και να κάνετε συμπεράσματα συστάσεων στο δημογραφικό γράφημα μέσω εργασιών πρόβλεψης συνδέσμων.
Πρόβλεψη σύνδεσης με γραφικά νευρωνικά δίκτυα
Λαμβάνοντας υπόψη το προηγούμενο παράδειγμα κοινωνικού δικτύου, θα θέλαμε να προτείνουμε νέους φίλους στον Henry. Και ο Τέρι και ο Μπιλ θα ήταν καλοί υποψήφιοι. Ο Terry έχει περισσότερους κοινούς φίλους (Gary, Alistair) με τον Henry αλλά όχι κοινά ενδιαφέροντα. Ενώ ο Μπιλ μοιράζεται κοινά ενδιαφέροντα (τέχνη, κόμικς, παιχνίδια) με τον Χένρι, αλλά όχι κοινούς φίλους. Ποια θα ήταν καλύτερη σύσταση; Όταν πλαισιώνεται ως πρόβλημα πρόβλεψης σύνδεσης, το καθήκον είναι να εκχωρηθεί μια βαθμολογία σε οποιαδήποτε πιθανή σύνδεση μεταξύ των δύο κόμβων. Όσο υψηλότερη είναι η βαθμολογία του συνδέσμου, τόσο πιο πιθανό είναι αυτή η σύσταση να συγκλίνει. Με την εκμάθηση των δομών συνδέσμων που υπάρχουν ήδη στο γράφημα, ένα μοντέλο πρόβλεψης συνδέσμων μπορεί να γενικεύσει νέες προβλέψεις συνδέσμων που «ολοκληρώνουν» το γράφημα.
Οι παράμετροι της συνάρτησης f
που προβλέπει ότι το σκορ σύνδεσης μαθαίνεται κατά τη φάση της εκπαίδευσης. Από τη λειτουργία f
κάνει μια πρόβλεψη για οποιουσδήποτε δύο κόμβους στο γράφημα, τα διανύσματα χαρακτηριστικών που σχετίζονται με τους κόμβους είναι απαραίτητα για τη διαδικασία εκμάθησης. Για να προβλέψουμε τη βαθμολογία σύνδεσης μεταξύ του Henry και του Bill, έχουμε ένα σύνολο χαρακτηριστικών ακατέργαστων δεδομένων (τέχνη, κόμικ, παιχνίδια) που μπορούν να αντιπροσωπεύουν τον Henry και τον Bill. Το μετασχηματίζουμε αυτό, μαζί με τις συνδέσεις στο γράφημα, χρησιμοποιώντας ένα δίκτυο GNN για να σχηματίσουμε νέες αναπαραστάσεις γνωστές ως ενσωματώσεις κόμβων. Μπορούμε επίσης να συμπληρώσουμε ή να αντικαταστήσουμε τα αρχικά πρωτογενή χαρακτηριστικά με διανύσματα από έναν πίνακα αναζήτησης ενσωμάτωσης που μπορεί να μάθει κατά τη διάρκεια της εκπαιδευτικής διαδικασίας. Στην ιδανική περίπτωση, τα ενσωματωμένα χαρακτηριστικά για τον Henry και τον Bill θα πρέπει να αντιπροσωπεύουν τα ενδιαφέροντά τους καθώς και τις τοπολογικές τους πληροφορίες από το γράφημα.
Πώς λειτουργούν τα GNN
Ένα GNN μετατρέπει τα αρχικά χαρακτηριστικά κόμβου σε ενσωματώσεις κόμβων χρησιμοποιώντας μια τεχνική που ονομάζεται πέρασμα μηνύματος. Η διαδικασία διέλευσης μηνύματος φαίνεται στο παρακάτω σχήμα. Στην αρχή, τα χαρακτηριστικά ή τα χαρακτηριστικά του κόμβου μετατρέπονται σε αριθμητικά χαρακτηριστικά. Στην περίπτωσή μας, κάνουμε one-hot κωδικοποίηση των κατηγορικών χαρακτηριστικών (ενδιαφέροντα του Henry: τέχνες, κόμικς, παιχνίδια). Στη συνέχεια, το πρώτο στρώμα του GNN συγκεντρώνει όλα τα ακατέργαστα χαρακτηριστικά των γειτόνων (Gary και Alistair) (με μαύρο) για να σχηματίσει ένα νέο σύνολο χαρακτηριστικών (με κίτρινο). Μια κοινή προσέγγιση είναι ο γραμμικός μετασχηματισμός όλων των γειτονικών χαρακτηριστικών, στη συνέχεια η άθροισή τους μέσω ενός κανονικοποιημένου αθροίσματος και η μεταφορά των αποτελεσμάτων σε μια μη γραμμική συνάρτηση ενεργοποίησης, όπως το ReLU, για να δημιουργηθεί ένα νέο διανυσματικό σύνολο. Το παρακάτω σχήμα δείχνει πώς λειτουργεί η μετάδοση μηνυμάτων για τον κόμβο Αυτεπαγωγής. Το H, ο αλγόριθμος μετάδοσης μηνυμάτων GNN, θα υπολογίσει αναπαραστάσεις για όλους τους κόμβους του γραφήματος. Αυτά χρησιμοποιούνται αργότερα ως χαρακτηριστικά εισόδου για το δεύτερο επίπεδο.
Το δεύτερο στρώμα ενός GNN επαναλαμβάνει την ίδια διαδικασία. Παίρνει το χαρακτηριστικό που είχε υπολογιστεί προηγουμένως (με κίτρινο) από το πρώτο επίπεδο ως είσοδο, συγκεντρώνει όλα τα νέα ενσωματωμένα χαρακτηριστικά των γειτόνων του Gary και του Alistair και δημιουργεί διανύσματα χαρακτηριστικών δεύτερου επιπέδου για τον Henry (με πορτοκαλί). Όπως μπορείτε να δείτε, επαναλαμβάνοντας τον μηχανισμό μετάδοσης μηνυμάτων, επεκτείναμε τη συνάθροιση χαρακτηριστικών σε γείτονες 2-hop. Στην απεικόνισή μας, περιοριζόμαστε στους γείτονες 2-hop, αλλά η επέκταση σε γείτονες 3-hop μπορεί να γίνει με τον ίδιο τρόπο προσθέτοντας ένα άλλο επίπεδο GNN.
Οι τελικές ενσωματώσεις από τον Henry και τον Bill (με πορτοκαλί χρώμα) χρησιμοποιούνται για τον υπολογισμό της βαθμολογίας. Κατά τη διαδικασία εκπαίδευσης, η βαθμολογία σύνδεσης ορίζεται ως 1 όταν η άκρη υπάρχει μεταξύ των δύο κόμβων (θετικό δείγμα) και ως 0 όταν οι ακμές μεταξύ των δύο κόμβων δεν υπάρχουν (αρνητικό δείγμα). Στη συνέχεια, το σφάλμα ή η απώλεια μεταξύ της πραγματικής βαθμολογίας και της πρόβλεψης f(e1,e2)
επαναδιαδίδεται σε προηγούμενα στρώματα για να ρυθμιστούν τα βάρη. Μόλις ολοκληρωθεί η εκπαίδευση, μπορούμε να βασιστούμε στα ενσωματωμένα διανύσματα χαρακτηριστικών για κάθε κόμβο για να υπολογίσουμε τις βαθμολογίες σύνδεσης με τη συνάρτησή μας f
.
Σε αυτό το παράδειγμα, απλοποιήσαμε την εργασία μάθησης στο α ομοιογενές γράφημα, όπου όλοι οι κόμβοι και οι ακμές είναι του ίδιου τύπου. Για παράδειγμα, όλοι οι κόμβοι στο γράφημα είναι του τύπου "Άνθρωποι" και όλες οι ακμές είναι του τύπου "φίλοι με". Ωστόσο, ο αλγόριθμος εκμάθησης υποστηρίζει επίσης ετερογενή γραφήματα με διαφορετικούς τύπους κόμβων και ακμών. Μπορούμε να επεκτείνουμε την προηγούμενη περίπτωση χρήσης για να προτείνουμε προϊόντα σε διαφορετικούς χρήστες που μοιράζονται παρόμοιες αλληλεπιδράσεις και ενδιαφέροντα. Δείτε περισσότερες λεπτομέρειες σε αυτή την ερευνητική εργασία: Μοντελοποίηση σχεσιακών δεδομένων με γραφήματα Convolutional Networks.
Στο AWS re:Invent 2020, παρουσιάσαμε Amazon Neptune ML, που επιτρέπει στους πελάτες μας να εκπαιδεύουν μοντέλα ML σε δεδομένα γραφημάτων, χωρίς απαραίτητα να διαθέτουν βαθιά τεχνογνωσία ML. Σε αυτό το παράδειγμα, με τη βοήθεια του Neptune ML, θα σας δείξουμε πώς να δημιουργήσετε το δικό σας σύστημα συστάσεων σε δεδομένα γραφήματος.
Εκπαιδεύστε το Graph Convolution Network σας με το Amazon Neptune ML
Το Neptune ML χρησιμοποιεί τεχνολογία νευρωνικών δικτύων γραφημάτων για αυτόματη δημιουργία, εκπαίδευση και ανάπτυξη μοντέλων ML στα δεδομένα του γραφήματος σας. Το Neptune ML υποστηρίζει κοινές εργασίες πρόβλεψης γραφημάτων, όπως ταξινόμηση κόμβων και παλινδρόμηση, ταξινόμηση ακμών και παλινδρόμηση και πρόβλεψη συνδέσμων.
Τροφοδοτείται από:
- Amazon Ποσειδώνας: μια γρήγορη, αξιόπιστη και πλήρως διαχειριζόμενη βάση δεδομένων γραφημάτων, η οποία είναι βελτιστοποιημένη για την αποθήκευση δισεκατομμυρίων σχέσεων και την αναζήτηση του γραφήματος με καθυστέρηση χιλιοστού του δευτερολέπτου. Το Amazon Neptune υποστηρίζει τρία ανοιχτά πρότυπα για τη δημιουργία εφαρμογών γραφημάτων: Apache TinkerPop Gremlin, RDF SPARQL και openCypher. Μάθετε περισσότερα στο Επισκόπηση των χαρακτηριστικών του Amazon Neptune.
- Amazon Sage Maker: μια πλήρως διαχειριζόμενη υπηρεσία που παρέχει σε κάθε προγραμματιστή και επιστήμονα δεδομένων τη δυνατότητα να προετοιμάσει γρήγορα, να δημιουργήσει, να εκπαιδεύσει και να αναπτύξει μοντέλα ML.
- Βιβλιοθήκη Deep Graph (DGL): ένα ανοικτού κώδικα, υψηλής απόδοσης και κλιμακούμενο πακέτο Python για DL σε γραφήματα. Παρέχει γρήγορη και αποδοτική μνήμη για τη μετάδοση μηνυμάτων για την εκπαίδευση των νευρωνικών δικτύων γραφικών. Το Neptune ML χρησιμοποιεί το DGL για να επιλέξει αυτόματα και να εκπαιδεύσει το καλύτερο μοντέλο ML για τον φόρτο εργασίας σας. Αυτό σας δίνει τη δυνατότητα να κάνετε προβλέψεις βάσει ML σε δεδομένα γραφήματος σε ώρες αντί για εβδομάδες.
Ο ευκολότερος τρόπος για να ξεκινήσετε με το Neptune ML είναι να χρησιμοποιήσετε το Πρότυπο γρήγορης εκκίνησης AWS CloudFormation. Το πρότυπο εγκαθιστά όλα τα απαραίτητα στοιχεία, συμπεριλαμβανομένου ενός συμπλέγματος Neptune DB, και ρυθμίζει τις διαμορφώσεις δικτύου, τους ρόλους IAM και τη σχετική παρουσία φορητού υπολογιστή SageMaker με προσυμπληρωμένα δείγματα σημειωματάριων για το Neptune ML.
Το παρακάτω σχήμα απεικονίζει διαφορετικά βήματα για το Neptune ML για την εκπαίδευση ενός συστήματος συστάσεων που βασίζεται σε GNN. Ας κάνουμε μεγέθυνση σε κάθε βήμα και ας εξερευνήσουμε τι περιλαμβάνει:
-
Διαμόρφωση εξαγωγής δεδομένων
Το πρώτο βήμα στη διαδικασία Neptune ML είναι η εξαγωγή των δεδομένων γραφήματος από το σύμπλεγμα Neptune. Πρέπει να καθορίσουμε τις παραμέτρους και τη διαμόρφωση μοντέλου για την εργασία εξαγωγής δεδομένων. Χρησιμοποιούμε τον πάγκο εργασίας Neptune για όλες τις διαμορφώσεις και επαίνους. Ο πάγκος εργασίας μας επιτρέπει να εργαστούμε με το σύμπλεγμα Neptune DB χρησιμοποιώντας σημειωματάρια Jupyter που φιλοξενούνται από το Amazon SageMaker. Επιπλέον, παρέχει μια σειρά από μαγικές εντολές στα notebook που εξοικονομούν πολύ χρόνο και προσπάθεια. Ακολουθεί το παράδειγμα των παραμέτρων εξαγωγής:
In export_params
, πρέπει να διαμορφώσουμε τη βασική ρύθμιση, όπως το σύμπλεγμα Neptune και την έξοδο Amazon Simple Storage Service (S3) διαδρομή για αποθήκευση δεδομένων εξαγωγής. Η διαμόρφωση που καθορίζεται στο additionalParams
είναι ο τύπος εργασίας ML που πρέπει να εκτελεστεί. Σε αυτό το παράδειγμα, η πρόβλεψη συνδέσμου χρησιμοποιείται προαιρετικά για την πρόβλεψη ενός συγκεκριμένου τύπου ακμής (Χρήστης—ΦΙΛΟΣ—Χρήστης). Εάν δεν έχει καθοριστεί τύπος στόχου, τότε το Neptune ML θα υποθέσει ότι η εργασία είναι Πρόβλεψη σύνδεσης. Οι παράμετροι καθορίζουν επίσης λεπτομέρειες σχετικά με τα δεδομένα που είναι αποθηκευμένα στο γράφημά μας και τον τρόπο με τον οποίο το μοντέλο ML θα ερμηνεύσει αυτά τα δεδομένα (έχουμε ως κόμβο το "User" και ως ιδιότητα κόμβου το "interests".
Για να εκτελέσετε κάθε βήμα στη διαδικασία οικοδόμησης ML, απλώς χρησιμοποιήστε εντολές πάγκου εργασίας Neptune. ο Πάγκος εργασίας Neptune περιέχει μια μαγεία γραμμής και μια μαγεία κυττάρων που μπορεί να σας εξοικονομήσει πολύ χρόνο για τη διαχείριση αυτών των βημάτων. Για να εκτελέσετε την εξαγωγή δεδομένων, χρησιμοποιήστε την εντολή Neptune Workbench: %neptune_ml export start
Μόλις ολοκληρωθεί η εργασία εξαγωγής, το γράφημα Neptune θα εξαχθεί σε μορφή CSV και θα αποθηκευτεί σε έναν κάδο S3. Θα υπάρχουν δύο τύποι αρχείων: nodes.csv
και edges.csv
. Ένα αρχείο με όνομα training-data-configuration.json
Θα δημιουργηθεί επίσης το οποίο έχει τη διαμόρφωση που απαιτείται για το Neptune ML για την εκτέλεση εκπαίδευσης μοντέλων.
Βλέπω Εξαγωγή δεδομένων από το Neptune για το Neptune ML Για περισσότερες πληροφορίες.
-
Προεπεξεργασία δεδομένων
Το Neptune ML εκτελεί εξαγωγή και κωδικοποίηση χαρακτηριστικών ως μέρος των βημάτων επεξεργασίας δεδομένων. Οι συνήθεις τύποι προεπεξεργασίας ιδιοτήτων περιλαμβάνουν: κωδικοποίηση κατηγορικών χαρακτηριστικών μέσω κωδικοποίησης μίας κλήσης, εισαγωγή αριθμητικών χαρακτηριστικών σε κάδο ή χρήση του word2vec για την κωδικοποίηση μιας ιδιότητας συμβολοσειράς ή άλλων τιμών ιδιοτήτων κειμένου ελεύθερης μορφής.
Στο παράδειγμά μας, θα χρησιμοποιήσουμε απλώς την ιδιότητα «ενδιαφέροντα». Το Neptune ML κωδικοποιεί τις τιμές ως πολυκατηγορικές. Ωστόσο, εάν μια κατηγορική τιμή είναι σύνθετη (περισσότερες από τρεις λέξεις ανά κόμβο), τότε το Neptune ML συμπεραίνει ότι ο τύπος ιδιότητας είναι κείμενο και χρησιμοποιεί την κωδικοποίηση text_word2vec.
Για να εκτελέσετε την προεπεξεργασία δεδομένων, χρησιμοποιήστε την ακόλουθη μαγική εντολή φορητού υπολογιστή Neptune: %neptune_ml dataprocessing start
Στο τέλος αυτού του βήματος, δημιουργείται ένα γράφημα DGL από το εξαγόμενο σύνολο δεδομένων για χρήση από το βήμα εκπαίδευσης του μοντέλου. Το Neptune ML συντονίζει αυτόματα το μοντέλο με τις εργασίες συντονισμού βελτιστοποίησης υπερπαραμέτρων που ορίζονται στο training-data-configuration.json
. Μπορούμε να κατεβάσουμε και να τροποποιήσουμε αυτό το αρχείο για να συντονίσουμε τις υπερπαραμέτρους του μοντέλου, όπως batch-size, num-hidden, num-epochs, dropout κ.λπ. δείγμα αρχείου configuration.json.
Βλέπω Επεξεργασία των δεδομένων γραφήματος που εξάγονται από τον Ποσειδώνα για εκπαίδευση Για περισσότερες πληροφορίες.
-
Εκπαίδευση μοντέλων
Το επόμενο βήμα είναι η αυτοματοποιημένη εκπαίδευση του μοντέλου GNN. Η εκπαίδευση του μοντέλου γίνεται σε δύο στάδια. Το πρώτο στάδιο χρησιμοποιεί μια εργασία Επεξεργασίας SageMaker για τη δημιουργία ενός μοντέλου στρατηγικής εκπαίδευσης. Αυτό είναι ένα σύνολο ρυθμίσεων που καθορίζει τον τύπο του μοντέλου και τις περιοχές υπερπαραμέτρων μοντέλου που θα χρησιμοποιηθούν για την εκπαίδευση του μοντέλου.
Στη συνέχεια, θα ξεκινήσει μια εργασία συντονισμού υπερπαραμέτρων του SageMaker. ο Εργασία βελτιστοποίησης συντονισμού υπερπαραμέτρων SageMaker εκτελεί έναν προκαθορισμένο αριθμό δοκιμών εργασίας κατάρτισης μοντέλων στα επεξεργασμένα δεδομένα, δοκιμάζει διαφορετικούς συνδυασμούς υπερπαραμέτρων σύμφωνα με model-hpo-configuration.json
αρχείο και αποθηκεύει τα τεχνουργήματα του μοντέλου που δημιουργούνται από την εκπαίδευση στη θέση εξόδου Amazon S3.
Για να ξεκινήσετε το βήμα εκπαίδευσης, μπορείτε να χρησιμοποιήσετε το %neptune_ml training start
εντολή.
Μόλις ολοκληρωθούν όλες οι εργασίες εκπαίδευσης, η εργασία συντονισμού υπερπαραμέτρων θα αποθηκεύσει τα τεχνουργήματα από το μοντέλο με την καλύτερη απόδοση, το οποίο θα χρησιμοποιηθεί για συμπέρασμα.
Στο τέλος της εκπαίδευσης, το Neptune ML θα δώσει εντολή στο SageMaker να αποθηκεύσει το εκπαιδευμένο μοντέλο, τις ακατέργαστες ενσωματώσεις που υπολογίζονται για τους κόμβους και τις ακμές και τις πληροφορίες χαρτογράφησης μεταξύ των ενσωματώσεων και των δεικτών κόμβων.
Βλέπω Εκπαίδευση μοντέλου χρησιμοποιώντας Neptune ML Για περισσότερες πληροφορίες.
-
Δημιουργήστε ένα τελικό σημείο συμπερασμάτων στο Amazon SageMaker
Τώρα που μαθαίνουμε την αναπαράσταση του γραφήματος, μπορούμε να αναπτύξουμε το μοντέλο που μαθαίνουμε πίσω από ένα τελικό σημείο για την εκτέλεση αιτημάτων συμπερασμάτων. Η είσοδος του μοντέλου θα είναι ο Χρήστης για τον οποίο πρέπει να δημιουργήσουμε συστάσεις φίλων, μαζί με τον τύπο άκρης, και η έξοδος θα είναι η λίστα των πιθανών προτεινόμενων φίλων για αυτόν τον χρήστη.
Για να αναπτύξετε το μοντέλο στην παρουσία τελικού σημείου SageMaker, χρησιμοποιήστε το %neptune_ml endpoint create
εντολή.
-
Αναζητήστε το μοντέλο ML χρησιμοποιώντας το Gremlin
Μόλις το τελικό σημείο είναι έτοιμο, μπορούμε να το χρησιμοποιήσουμε για ερωτήματα συμπερασμάτων γραφήματος. Το Neptune ML υποστηρίζει ερωτήματα συμπερασμάτων γραφήματος σε Gremlin ή SPARQL. Στο παράδειγμά μας, μπορούμε τώρα να ελέγξουμε τη σύσταση φίλων με το Neptune ML στον χρήστη "Henry". Απαιτεί σχεδόν την ίδια σύνταξη για να διασχίσει την άκρη και παραθέτει τους άλλους χρήστες που είναι συνδεδεμένοι με τον Henry μέσω της σύνδεσης FRIEND.
Neptune#ml.prediction
επιστρέφει τη σύνδεση που καθορίστηκε από τις προβλέψεις Neptune ML χρησιμοποιώντας το μοντέλο που μόλις εκπαιδεύσαμε στο κοινωνικό γράφημα. Ο λογαριασμός επιστρέφεται όπως ακριβώς περιμέναμε.
Ακολουθεί ένα άλλο δείγμα ερωτήματος πρόβλεψης που χρησιμοποιείται για την πρόβλεψη των οκτώ κορυφαίων χρηστών που είναι πιο πιθανό να συνδεθούν με τον Henry:
Τα αποτελέσματα ταξινομούνται από την ισχυρότερη σύνδεση στην πιο αδύναμη, όπου η σύνδεση Henry — FRIEND — Colin and Henry — FRIEND — Terry
προτείνεται επίσης. Αυτή η πρόταση γίνεται μέσω ML που βασίζεται σε γράφημα, όπου μπορούν να διερευνηθούν πολύπλοκα μοτίβα αλληλεπίδρασης σε γράφημα.
Βλέπω Ερωτήματα συμπερασμάτων Gremlin στο Neptune ML Για περισσότερες πληροφορίες.
Μετασχηματισμός μοντέλου ή επανεκπαίδευση όταν αλλάζουν τα δεδομένα γραφήματος
Μια άλλη ερώτηση που θα μπορούσατε να κάνετε είναι: τι γίνεται αν αλλάξει το κοινωνικό μου δίκτυο ή αν θέλω να κάνω συστάσεις για χρήστες που προστέθηκαν πρόσφατα; Σε αυτά τα σενάρια, όπου αλλάζουν συνεχώς γραφήματα, μπορεί να χρειαστεί να ενημερώσετε τις προβλέψεις ML με τα νεότερα δεδομένα γραφημάτων. Τα δημιουργούμενα τεχνουργήματα του μοντέλου μετά την εκπαίδευση συνδέονται άμεσα με το γράφημα εκπαίδευσης. Αυτό σημαίνει ότι το τελικό σημείο συμπερασμάτων πρέπει να ενημερωθεί μόλις αλλάξουν οι οντότητες στο αρχικό γράφημα εκπαίδευσης.
Ωστόσο, δεν χρειάζεται να επανεκπαιδεύσετε ολόκληρο το μοντέλο για να κάνετε προβλέψεις στο ενημερωμένο γράφημα. Με μια επαυξητική ροή εργασίας συμπερασμάτων μοντέλου, χρειάζεται μόνο να εξαγάγετε τα δεδομένα Neptune DB, να εκτελέσετε μια στοιχειώδη προεπεξεργασία δεδομένων, να εκτελέσετε μια εργασία μετασχηματισμού παρτίδας μοντέλου και, στη συνέχεια, να ενημερώσετε το τελικό σημείο συμπερασμάτων. Το βήμα μετασχηματισμού μοντέλου παίρνει το εκπαιδευμένο μοντέλο από την κύρια ροή εργασίας και τα αποτελέσματα του σταδίου προεπεξεργασίας σταδιακών δεδομένων ως εισόδους. Στη συνέχεια, βγάζει ένα νέο τεχνούργημα μοντέλου για να χρησιμοποιηθεί για συμπέρασμα. Αυτό το νέο τεχνούργημα μοντέλου δημιουργείται από τα ενημερωμένα δεδομένα γραφήματος.
Μια ειδική εστίαση εδώ είναι η εντολή βήματος μετασχηματισμού μοντέλου. Μπορεί να υπολογίσει τεχνουργήματα μοντέλων σε δεδομένα γραφήματος που δεν χρησιμοποιήθηκαν για εκπαίδευση μοντέλων. Οι ενσωματώσεις κόμβων υπολογίζονται εκ νέου και τυχόν υπάρχουσες ενσωματώσεις κόμβων παρακάμπτονται. Το Neptune ML εφαρμόζει τον μαθημένο κωδικοποιητή GNN από το προηγούμενο εκπαιδευμένο μοντέλο στους νέους κόμβους δεδομένων γραφήματος με τα νέα χαρακτηριστικά τους. Επομένως, τα νέα δεδομένα γραφήματος πρέπει να υποβάλλονται σε επεξεργασία χρησιμοποιώντας τις ίδιες κωδικοποιήσεις χαρακτηριστικών και πρέπει να συμμορφώνονται με το ίδιο σχήμα γραφήματος με τα αρχικά δεδομένα γραφήματος. Δείτε περισσότερες λεπτομέρειες εφαρμογής Neptune ML στο Δημιουργία νέων μοντέλων τεχνουργημάτων.
Επιπλέον, μπορείτε να επανεκπαιδεύσετε ολόκληρο το μοντέλο εάν το γράφημα αλλάξει δραματικά ή εάν το μοντέλο που εκπαιδεύτηκε προηγουμένως δεν μπορούσε πλέον να αναπαραστήσει με ακρίβεια τις υποκείμενες αλληλεπιδράσεις. Σε αυτήν την περίπτωση, η επαναχρησιμοποίηση των παραμέτρων του μοντέλου που μάθαμε σε ένα νέο γράφημα δεν μπορεί να εγγυηθεί παρόμοια απόδοση μοντέλου. Πρέπει να επανεκπαιδεύσετε το μοντέλο σας στο νέο γράφημα. Για να επιταχύνει την αναζήτηση υπερπαραμέτρων, το Neptune ML μπορεί να αξιοποιήσει τις πληροφορίες από την προηγούμενη εργασία εκπαίδευσης μοντέλου με θερμή εκκίνηση: τα αποτελέσματα προηγούμενων εργασιών εκπαίδευσης χρησιμοποιούνται για την επιλογή καλών συνδυασμών υπερπαραμέτρων για αναζήτηση στη νέα εργασία συντονισμού.
Βλέπω ροές εργασιών για το χειρισμό εξελισσόμενων δεδομένων γραφήματος Για περισσότερες πληροφορίες.
Συμπέρασμα
Σε αυτήν την ανάρτηση, έχετε δει πώς το Neptune ML και το GNN μπορούν να σας βοηθήσουν να κάνετε συστάσεις για δεδομένα γραφήματος χρησιμοποιώντας μια εργασία πρόβλεψης συνδέσμων συνδυάζοντας πληροφορίες από τα πολύπλοκα μοτίβα αλληλεπίδρασης στο γράφημα.
Η πρόβλεψη συνδέσμων είναι ένας τρόπος εφαρμογής ενός συστήματος συστάσεων σε γράφημα. Μπορείτε να δημιουργήσετε τον συνιστώμενό σας με πολλούς άλλους τρόπους. Μπορείτε να χρησιμοποιήσετε τις ενσωματώσεις που έχετε μάθει κατά τη διάρκεια της εκπαίδευσης πρόβλεψης συνδέσμων για να ομαδοποιήσετε τους κόμβους σε διαφορετικά τμήματα με τρόπο χωρίς επίβλεψη και να προτείνετε στοιχεία σε αυτό που ανήκει στο ίδιο τμήμα. Επιπλέον, μπορείτε να αποκτήσετε τις ενσωματώσεις και να τις τροφοδοτήσετε σε ένα σύστημα συστάσεων που βασίζεται σε ομοιότητες κατάντη ως χαρακτηριστικό εισόδου. Τώρα αυτή η πρόσθετη δυνατότητα εισαγωγής κωδικοποιεί επίσης τις σημασιολογικές πληροφορίες που προέρχονται από το γράφημα και μπορεί να προσφέρει σημαντικές βελτιώσεις στη συνολική ακρίβεια του συστήματος. Μάθετε περισσότερα για το Amazon Neptune ML μεταβαίνοντας στο ή μη διστάσετε να κάνετε ερωτήσεις στα σχόλια!
Σχετικά με τους Συγγραφείς
Γιανγουέι Κούι, PhD, είναι αρχιτέκτων λύσεων μηχανικής εκμάθησης μηχανών στο AWS. Ξεκίνησε την έρευνα μηχανικής μάθησης στο IRISA (Research Institute of Computer Science and Random Systems), και έχει αρκετά χρόνια εμπειρίας στην κατασκευή βιομηχανικών εφαρμογών με τεχνητή νοημοσύνη στην όραση υπολογιστών, την επεξεργασία φυσικής γλώσσας και την πρόβλεψη συμπεριφοράς των χρηστών στο διαδίκτυο. Στο AWS, μοιράζεται την τεχνογνωσία στον τομέα και βοηθά τους πελάτες να ξεκλειδώσουν τις επιχειρηματικές δυνατότητες και να οδηγήσουν σε αποτελεσματικά αποτελέσματα με μηχανική μάθηση σε κλίμακα. Εκτός εργασίας, του αρέσει να διαβάζει και να ταξιδεύει.
Ο Γουίλ Μπαντρ είναι Κύριος Ειδικός AI/ML SA που εργάζεται ως μέλος της παγκόσμιας ομάδας μηχανικής εκμάθησης της Amazon. Ο Will είναι παθιασμένος με τη χρήση της τεχνολογίας με καινοτόμους τρόπους για να επηρεάσει θετικά την κοινότητα. Στον ελεύθερο χρόνο του, του αρέσει να κάνει καταδύσεις, να παίζει ποδόσφαιρο και να εξερευνά τα νησιά του Ειρηνικού.
- '
- "
- 100
- 2020
- 7
- Σχετικά
- Σύμφωνα με
- Λογαριασμός
- Επιπλέον
- Πρόσθετος
- αλγόριθμος
- αλγόριθμοι
- Όλα
- ήδη
- Amazon
- Εκμάθηση μηχανών του Αμαζονίου
- Amazon Sage Maker
- Apache
- εφαρμογές
- τεχνητός
- τεχνητή νοημοσύνη
- Τέχνες
- Αυτοματοποιημένη
- AWS
- AWS re: Εφευρέστε
- Αρχή
- ΚΑΛΎΤΕΡΟΣ
- Νομοσχέδιο
- Δισεκατομμύριο
- Μαύρη
- χτίζω
- Κτίριο
- επιχείρηση
- περιπτώσεις
- προκλήσεις
- ταξινόμηση
- κωδικός
- Κοινός
- κοινότητα
- συγκρότημα
- Υπολογίστε
- Πληροφορική
- Computer Vision
- χρήση υπολογιστή
- διαμόρφωση
- σύνδεση
- Διασυνδέσεις
- πρόξενος
- περιεχόμενο
- συγκλίνει
- θα μπορούσε να
- Πελάτες
- ημερομηνία
- επιστήμονας δεδομένων
- αποθήκευση δεδομένων
- βάση δεδομένων
- συμφωνία
- βαθιά μάθηση
- Εργολάβος
- διαφορετικές
- ανακάλυψη
- απόσταση
- ηλεκτρονικού εμπορίου
- άκρη
- Τελικό σημείο
- Μηχανική
- Μηχανικοί
- κ.λπ.
- παράδειγμα
- εμπειρία
- εξερεύνηση
- εξαγωγή
- εξαγωγή
- FAST
- Χαρακτηριστικό
- Χαρακτηριστικά
- Εικόνα
- Όνομα
- Συγκέντρωση
- μορφή
- μορφή
- Πλαίσιο
- Δωρεάν
- Φιλία
- λειτουργία
- Games
- παράγουν
- Παγκόσμιο
- καλός
- νευρωνικά δίκτυα γραφημάτων
- εξαιρετική
- Χειρισμός
- βοήθεια
- βοηθά
- εδώ
- Πως
- Πώς να
- HTTPS
- IAM
- Επίπτωση
- εκτελεστικών
- βελτίωση
- Συμπεριλαμβανομένου
- Αυξάνουν
- ατομικές
- βιομηχανικές
- πληροφορίες
- καινοτόμες
- Νοημοσύνη
- αλληλεπίδραση
- συμφέροντα
- IT
- Δουλειά
- Θέσεις εργασίας
- Γλώσσα
- Γλώσσες
- ΜΑΘΑΊΝΩ
- μάθει
- μάθηση
- Μόχλευση
- Βιβλιοθήκη
- γραμμή
- LINK
- Λίστα
- Λίστες
- τοποθεσία
- κοιτάζοντας
- αναζήτηση
- μάθηση μηχανής
- Μέλη
- χιλιοστά του δευτερολέπτου
- ML
- μοντέλο
- Μουσική
- Φυσική γλώσσα
- Επεξεργασία φυσικής γλώσσας
- που απαιτούνται
- γείτονες
- δίκτυο
- δίκτυα
- Νευρικός
- νευρικό σύστημα
- νευρωνικά δίκτυα
- Νέες δυνατότητες
- κόμβων
- φορητούς υπολογιστές
- διαδικτυακά (online)
- ανοίξτε
- ΑΛΛΑ
- Ειρηνικός
- Χαρτί
- People
- επίδοση
- φάση
- Πλατφόρμες
- Δοκιμάστε να παίξετε
- Ακρίβεια
- πρόβλεψη
- Προβλέψεις
- παρόν
- Κύριος
- Πρόβλημα
- διαδικασια μας
- Προϊόντα
- Προφίλ ⬇️
- email marketing
- περιουσία
- προτείνω
- παρέχουν
- παρέχει
- αγορά
- Python
- ερώτηση
- σειρά
- Ακατέργαστος
- ακατέργαστα δεδομένα
- RE
- Ανάγνωση
- οπισθοδρόμηση
- Σχέσεις
- αντικαθιστώ
- έρευνα
- Αποτελέσματα
- επανεκπαίδευση
- Επιστροφές
- τρέξιμο
- σοφός
- Κλίμακα
- Επιστήμη
- Αναζήτηση
- σειρά
- Κοινοποίηση
- Μερίδια
- παρόμοιες
- Απλούς
- small
- Ποδόσφαιρο
- Μ.Κ.Δ
- κοινωνικό γράφημα
- κοινωνικό δίκτυο
- κοινωνικά δίκτυα
- Λύσεις
- Χώρος
- Αθλητισμός
- Στάδιο
- πρότυπα
- Εκκίνηση
- ξεκίνησε
- χώρος στο δίσκο
- καταστήματα
- Στρατηγική
- συμπλήρωμα
- Υποστηρίζει
- Έρευνες
- σύστημα
- συστήματα
- στόχος
- Τεχνολογίες
- Τεχνολογία
- Το γράφημα
- Μέσω
- ώρα
- κορυφή
- Εκπαίδευση
- Μεταμορφώστε
- Μεταμόρφωση
- Ενημέρωση
- us
- Χρήστες
- αξία
- όραμα
- Τι
- Ο ΟΠΟΊΟΣ
- ευρέως
- Wikipedia
- χωρίς
- λόγια
- Εργασία
- ροής εργασίας
- λειτουργεί
- θα
- χρόνια
- ζουμ