Κωδικοποιήστε πολύγλωσσες ιδιότητες κειμένου στο Amazon Neptune για να εκπαιδεύσετε προγνωστικά μοντέλα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Κωδικοποιήστε ιδιότητες πολύγλωσσου κειμένου στο Amazon Neptune για να εκπαιδεύσετε προγνωστικά μοντέλα

Amazon Neptune ML είναι μια ικανότητα μηχανικής μάθησης (ML) του Amazon Ποσειδώνας που σας βοηθά να κάνετε ακριβείς και γρήγορες προβλέψεις στα δεδομένα του γραφήματος σας. Κάτω από την κουκούλα, το Neptune ML χρησιμοποιεί νευρωνικά δίκτυα γραφήματος (GNN) για να εκμεταλλευτεί ταυτόχρονα τη δομή του γραφήματος και τις ιδιότητες κόμβου/ακμής για να λύσει την εργασία που εκτελείται. Οι παραδοσιακές μέθοδοι είτε χρησιμοποιούν μόνο ιδιότητες και χωρίς δομή γραφήματος (π.χ. XGBoost, Νευρωνικά Δίκτυα), είτε μόνο δομή γραφήματος και χωρίς ιδιότητες (π.χ. node2vec, Label Propagation). Για τον καλύτερο χειρισμό των ιδιοτήτων κόμβου/ακμής, οι αλγόριθμοι ML απαιτούν τα δεδομένα να είναι καλά συμπεριφερόμενα αριθμητικά δεδομένα, αλλά τα ανεπεξέργαστα δεδομένα σε μια βάση δεδομένων μπορούν να έχουν άλλους τύπους, όπως ακατέργαστο κείμενο. Για να χρησιμοποιήσουμε αυτούς τους άλλους τύπους δεδομένων, χρειαζόμαστε εξειδικευμένα βήματα επεξεργασίας που τα μετατρέπουν από τον εγγενή τους τύπο σε αριθμητικά δεδομένα και η ποιότητα των αποτελεσμάτων ML εξαρτάται σε μεγάλο βαθμό από την ποιότητα αυτών των μετασχηματισμών δεδομένων. Το ακατέργαστο κείμενο, όπως και οι προτάσεις, είναι από τους πιο δύσκολους τύπους μετασχηματισμού, αλλά η πρόσφατη πρόοδος στον τομέα της Επεξεργασίας Φυσικής Γλώσσας (NLP) έχει οδηγήσει σε ισχυρές μεθόδους που μπορούν να χειριστούν κείμενο που προέρχεται από πολλές γλώσσες και μεγάλη ποικιλία μηκών.

Ξεκινώντας με την έκδοση 1.1.0.0, το Neptune ML υποστηρίζει πολλαπλούς κωδικοποιητές κειμένου (text_fasttext, text_sbert, text_word2vec, να text_tfidf), το οποίο φέρνει τα πλεονεκτήματα των πρόσφατων προόδων στο NLP και επιτρέπει την υποστήριξη για ιδιότητες πολύγλωσσου κειμένου καθώς και πρόσθετες απαιτήσεις συμπερασμάτων σχετικά με τις γλώσσες και το μήκος του κειμένου. Για παράδειγμα, σε μια περίπτωση χρήσης σύστασης εργασίας, οι θέσεις εργασίας σε διαφορετικές χώρες μπορούν να περιγραφούν σε διαφορετικές γλώσσες και το μήκος των περιγραφών θέσεων εργασίας ποικίλλει σημαντικά. Επιπλέον, το Neptune ML υποστηρίζει ένα αυτόματη επιλογή που επιλέγει αυτόματα την καλύτερη μέθοδο κωδικοποίησης με βάση τα χαρακτηριστικά της δυνατότητας κειμένου στα δεδομένα.

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

Τι είναι ένας κωδικοποιητής κειμένου;

Ο στόχος της κωδικοποίησης κειμένου είναι να μετατρέψει τις ιδιότητες ακμής/κόμβου που βασίζονται σε κείμενο στον Neptune σε διανύσματα σταθερού μεγέθους για χρήση σε μοντέλα μηχανικής εκμάθησης κατάντη για εργασίες ταξινόμησης κόμβων ή πρόβλεψης συνδέσμων. Το μήκος της δυνατότητας κειμένου μπορεί να ποικίλλει πολύ. Μπορεί να είναι μια λέξη, φράση, πρόταση, παράγραφος ή ακόμα και ένα έγγραφο με πολλές προτάσεις (το μέγιστο μέγεθος μιας μεμονωμένης ιδιότητας είναι 55 MB στον Neptune). Επιπλέον, οι λειτουργίες κειμένου μπορεί να είναι σε διαφορετικές γλώσσες. Μπορεί επίσης να υπάρχουν προτάσεις που περιέχουν λέξεις σε πολλές διαφορετικές γλώσσες, τις οποίες ορίζουμε ως εναλλαγή κώδικα.

Ξεκινώντας με την έκδοση 1.1.0.0, το Neptune ML σάς επιτρέπει να επιλέξετε από πολλούς διαφορετικούς κωδικοποιητές κειμένου. Κάθε κωδικοποιητής λειτουργεί ελαφρώς διαφορετικά, αλλά έχει τον ίδιο στόχο να μετατρέψει ένα πεδίο τιμών κειμένου από το Neptune σε ένα διάνυσμα σταθερού μεγέθους που χρησιμοποιούμε για να δημιουργήσουμε το μοντέλο GNN χρησιμοποιώντας το Neptune ML. Οι νέοι κωδικοποιητές είναι οι εξής:

  • text_fasttext (νέο) – Χρήσεις γρήγορο κείμενο κωδικοποίηση. Το FastText είναι μια βιβλιοθήκη για αποτελεσματική εκμάθηση αναπαράστασης κειμένου. text_fasttext συνιστάται για λειτουργίες που χρησιμοποιούν μία και μόνο μία από τις πέντε γλώσσες που υποστηρίζει το fastText (Αγγλικά, Κινέζικα, Χίντι, Ισπανικά και Γαλλικά). ο text_fasttext μέθοδος μπορεί προαιρετικά να λάβει το max_length πεδίο, το οποίο καθορίζει τον μέγιστο αριθμό διακριτικών σε μια τιμή ιδιότητας κειμένου που θα κωδικοποιηθεί, μετά την οποία η συμβολοσειρά περικόπτεται. Μπορείτε να θεωρήσετε ένα διακριτικό ως λέξη. Αυτό μπορεί να βελτιώσει την απόδοση όταν οι τιμές ιδιοτήτων κειμένου περιέχουν μεγάλες συμβολοσειρές, επειδή εάν max_length δεν καθορίζεται, το fastText κωδικοποιεί όλα τα διακριτικά ανεξάρτητα από το μήκος συμβολοσειράς.
  • text_sbert (νέο) – Χρησιμοποιεί την πρόταση BERT (ΣΜΠΕΡΤ) μέθοδος κωδικοποίησης. Το SBERT είναι ένα είδος μεθόδου ενσωμάτωσης προτάσεων που χρησιμοποιεί τα μοντέλα εκμάθησης αναπαράστασης με βάση τα συμφραζόμενα, BERT-Networks. text_sbert συνιστάται όταν η γλώσσα δεν υποστηρίζεται από text_fasttext. Ο Neptune υποστηρίζει δύο μεθόδους SBERT: text_sbert128, η οποία είναι η προεπιλογή εάν απλώς καθορίσετε text_sbert, να text_sbert512. Η διαφορά μεταξύ τους είναι ο μέγιστος αριθμός διακριτικών σε μια ιδιότητα κειμένου που κωδικοποιούνται. ο text_sbert128 η κωδικοποίηση κωδικοποιεί μόνο τα πρώτα 128 διακριτικά, ενώ text_sbert512 κωδικοποιεί έως και 512 μάρκες. Ως αποτέλεσμα, χρησιμοποιώντας text_sbert512 μπορεί να απαιτήσει περισσότερο χρόνο επεξεργασίας από ό text_sbert128. Και οι δύο μέθοδοι είναι πιο αργές από text_fasttext.
  • text_word2vec - Χρήσεις Word2 Old αλγόριθμοι που δημοσιεύθηκαν αρχικά από την Google για την κωδικοποίηση κειμένου. Το Word2Vec υποστηρίζει μόνο αγγλικά.
  • text_tfidf – Χρησιμοποιεί έναν όρο συχνότητα-αντίστροφη συχνότητα εγγράφου (TF-IDF) φορέας για κωδικοποίηση κειμένου. Η κωδικοποίηση TF-IDF υποστηρίζει στατιστικά χαρακτηριστικά που δεν υποστηρίζουν οι άλλες κωδικοποιήσεις. Προσδιορίζει ποσοτικά τη σημασία ή τη συνάφεια των λέξεων στην ιδιότητα ενός κόμβου μεταξύ όλων των άλλων κόμβων.

Σημειώστε ότι text_word2vec και text_tfidf υποστηριζόταν προηγουμένως και οι νέες μέθοδοι text_fasttext και text_sbert συνιστώνται έναντι των παλιών μεθόδων.

Σύγκριση διαφορετικών κωδικοποιητών κειμένου

Ο παρακάτω πίνακας δείχνει τη λεπτομερή σύγκριση όλων των υποστηριζόμενων επιλογών κωδικοποίησης κειμένου (text_fasttext, text_sbert, να text_word2vec). text_tfidf δεν είναι μέθοδος κωδικοποίησης βάσει μοντέλου, αλλά μέτρο βάσει μέτρησης που αξιολογεί πόσο σχετικό είναι ένα διακριτικό (για παράδειγμα, μια λέξη) με τα χαρακτηριστικά κειμένου σε άλλους κόμβους ή ακμές, επομένως δεν συμπεριλαμβάνουμε text_tfidf για σύγκριση. Συνιστούμε τη χρήση text_tfidf όταν θέλετε να ποσοτικοποιήσετε τη σημασία ή τη συνάφεια ορισμένων λέξεων σε έναν κόμβο ή ιδιότητα ακμής μεταξύ όλων των άλλων ιδιοτήτων κόμβου ή ακμής.)

. . text_fasttext text_sbert text_word2vec
Δυνατότητα μοντέλου Υποστηριζόμενη γλώσσα Αγγλικά, Κινέζικα, Χίντι, Ισπανικά και Γαλλικά Περισσότερες από 50 γλώσσες Αγγλικά
Μπορεί να κωδικοποιήσει ιδιότητες κειμένου που περιέχουν λέξεις σε διαφορετικές γλώσσες Οχι Ναι Οχι
Υποστήριξη μέγιστου μήκους Χωρίς μέγιστο όριο μήκους Κωδικοποιεί την ακολουθία κειμένου με μέγιστο μήκος 128 και 512 Χωρίς μέγιστο όριο μήκους
Κόστος χρόνου Φόρτωση Περίπου 10 δευτερόλεπτο Περίπου 2 δευτερόλεπτο Περίπου 2 δευτερόλεπτο
Συμπέρασμα Γρήγορα Αργά Μέτριας Δυσκολίας

Σημειώστε τις παρακάτω συμβουλές χρήσης:

  • Για τιμές ιδιοτήτων κειμένου στα Αγγλικά, Κινεζικά, Χίντι, Ισπανικά και Γαλλικά, text_fasttext είναι η συνιστώμενη κωδικοποίηση. Ωστόσο, δεν μπορεί να χειριστεί περιπτώσεις όπου η ίδια πρόταση περιέχει λέξεις σε περισσότερες από μία γλώσσες. Για άλλες γλώσσες εκτός από τις πέντε που fastText υποστηρίζει, χρήση text_sbert κωδικοποίηση.
  • Εάν έχετε πολλές συμβολοσειρές κειμένου αξίας ιδιοτήτων μεγαλύτερες από, για παράδειγμα, 120 διακριτικά, χρησιμοποιήστε το max_length πεδίο για να περιορίσετε τον αριθμό των διακριτικών σε κάθε συμβολοσειρά που text_fasttext κωδικοποιεί.

Συνοψίζοντας, ανάλογα με την περίπτωση χρήσης σας, προτείνουμε την ακόλουθη μέθοδο κωδικοποίησης:

  • Εάν οι ιδιότητες του κειμένου σας είναι σε μία από τις πέντε υποστηριζόμενες γλώσσες, συνιστούμε να το χρησιμοποιήσετε text_fasttext λόγω της γρήγορης συναγωγής του. text_fasttext είναι οι προτεινόμενες επιλογές και μπορείτε επίσης να χρησιμοποιήσετε text_sbert στις ακόλουθες δύο εξαιρέσεις.
  • Εάν οι ιδιότητες του κειμένου σας είναι σε διαφορετικές γλώσσες, συνιστούμε να το χρησιμοποιήσετε text_sbert επειδή είναι η μόνη υποστηριζόμενη μέθοδος που μπορεί να κωδικοποιήσει ιδιότητες κειμένου που περιέχουν λέξεις σε πολλές διαφορετικές γλώσσες.
  • Εάν οι ιδιότητες του κειμένου σας είναι σε μία γλώσσα που δεν είναι μία από τις πέντε υποστηριζόμενες γλώσσες, συνιστούμε να χρησιμοποιήσετε text_sbert γιατί υποστηρίζει περισσότερες από 50 γλώσσες.
  • Εάν το μέσο μήκος των ιδιοτήτων του κειμένου σας είναι μεγαλύτερο από 128, σκεφτείτε να το χρησιμοποιήσετε text_sbert512 or text_fasttext. Και οι δύο μέθοδοι μπορούν να χρησιμοποιούν κωδικοποιούν μεγαλύτερες ακολουθίες κειμένου.
  • Εάν οι ιδιότητες του κειμένου σας είναι μόνο στα Αγγλικά, μπορείτε να το χρησιμοποιήσετε text_word2vec, αλλά συνιστούμε τη χρήση text_fasttext για το γρήγορο συμπέρασμα του.

Επίδειξη περίπτωσης χρήσης: Εργασία σύστασης εργασίας

Ο στόχος της εργασίας σύστασης εργασίας είναι να προβλέψει ποιες θέσεις εργασίας θα κάνουν αίτηση οι χρήστες με βάση τις προηγούμενες αιτήσεις τους, τα δημογραφικά στοιχεία και το ιστορικό εργασίας τους. Αυτή η ανάρτηση χρησιμοποιεί ένα ανοιχτό σύνολο δεδομένων Kaggle. Κατασκευάζουμε το σύνολο δεδομένων ως γράφημα τύπου τριών κόμβων: εργασία, χρήστη, να πόλη.

Μια θέση εργασίας χαρακτηρίζεται από τον τίτλο, την περιγραφή, τις απαιτήσεις, την τοποθεσία της πόλης και την πολιτεία. Ένας χρήστης περιγράφεται με τις ιδιότητες της ειδικότητας, τον τύπο πτυχίου, τον αριθμό του ιστορικού εργασίας, τον συνολικό αριθμό ετών για εργασιακή εμπειρία και άλλα. Για αυτήν την περίπτωση χρήσης, ο τίτλος εργασίας, η περιγραφή της θέσης εργασίας, οι απαιτήσεις εργασίας και οι ειδικότητες είναι όλα σε μορφή κειμένου.

Στο σύνολο δεδομένων, οι χρήστες έχουν τις ακόλουθες ιδιότητες:

  • Κατάσταση – Για παράδειγμα, CA ή 广东省 (Κινεζικά)
  • Μείζων – Για παράδειγμα, Διαχείριση Ανθρώπινου Δυναμικού ή Lic Cytura Fisica (ισπανικά)
  • Τύπος Πτυχίου – Για παράδειγμα, πτυχίο, μεταπτυχιακό, διδακτορικό ή κανένα
  • WorkHistoryCount – Για παράδειγμα, 0, 1, 16 και ούτω καθεξής
  • TotalYearsExperience – Για παράδειγμα, 0.0, 10.0 ή NAN

Οι θέσεις εργασίας έχουν τις ακόλουθες ιδιότητες:

  • Τίτλος – Για παράδειγμα, Administrative Assistant ή Lic Cultura Física (ισπανικά).
  • Περιγραφή – Για παράδειγμα, «Αυτή η θέση Βοηθού Διοικητικού Συμβουλίου είναι υπεύθυνη για την εκτέλεση ποικίλων λειτουργιών γραφείου και διοικητικής υποστήριξης στους τομείς των επικοινωνιών, …» Ο μέσος αριθμός λέξεων σε μια περιγραφή είναι περίπου 192.2.
  • απαιτήσεις – Για παράδειγμα, «ΑΠΑΙΤΗΣΕΙΣ ΕΡΓΑΣΙΑΣ: 1. Προσοχή στη λεπτομέρεια. 2.Ικανότητα εργασίας σε περιβάλλον γρήγορου ρυθμού.3.Τιμολόγηση…”
  • Κατάσταση: – Για παράδειγμα, CA, NY και ούτω καθεξής.

Ο τύπος κόμβου πόλη όπως η Washington DC και το Orlando FL έχουν μόνο το αναγνωριστικό για κάθε κόμβο. Στην επόμενη ενότητα, αναλύουμε τα χαρακτηριστικά των διαφορετικών χαρακτηριστικών κειμένου και παρουσιάζουμε τον τρόπο επιλογής των κατάλληλων κωδικοποιητών κειμένου για διαφορετικές ιδιότητες κειμένου.

Πώς να επιλέξετε διαφορετικούς κωδικοποιητές κειμένου

Για το παράδειγμά μας, το Μείζων και Τίτλος Οι ιδιότητες είναι σε πολλές γλώσσες και έχουν σύντομες ακολουθίες κειμένου, έτσι text_sbert προτείνεται. Το δείγμα κώδικα για το παραμέτρους εξαγωγής είναι όπως ακολουθεί. Για το text_sbert τύπου, δεν υπάρχουν άλλα πεδία παραμέτρων. Εδώ επιλέγουμε text_sbert128 πλην text_sbert512, επειδή το μήκος του κειμένου είναι σχετικά μικρότερο από 128.

"additionalParams": {
    "neptune_ml": {
        "version": "v2.0",
        "targets": [ ... ],
        "features": [
            {
                "node": "user",
                "property": "Major",
                "type": "text_sbert128"
            },
            {
                "node": "job",
                "property": "Title",
                "type": "text_sbert128",
            }, ...
        ], ...
    }
}

Η Περιγραφή και απαιτήσεις Οι ιδιότητες είναι συνήθως σε μεγάλες ακολουθίες κειμένου. Το μέσο μήκος μιας περιγραφής είναι περίπου 192 λέξεις, το οποίο είναι μεγαλύτερο από το μέγιστο μήκος εισαγωγής text_sbert (128). Μπορούμε να χρησιμοποιήσουμε text_sbert512, αλλά μπορεί να οδηγήσει σε πιο αργό συμπέρασμα. Επιπλέον, το κείμενο είναι σε μία μόνο γλώσσα (Αγγλικά). Ως εκ τούτου, προτείνουμε text_fasttext με en γλωσσική αξία λόγω της γρήγορης εξαγωγής συμπερασμάτων και του μη περιορισμένου μήκους εισαγωγής. Το δείγμα κώδικα για το παραμέτρους εξαγωγής είναι όπως ακολουθεί. ο text_fasttext Η κωδικοποίηση μπορεί να προσαρμοστεί χρησιμοποιώντας Γλώσσα και μέγιστο μήκος. ο language απαιτείται τιμή, αλλά max_length είναι προαιρετικό.

"additionalParams": {
    "neptune_ml": {
        "version": "v2.0",
        "targets": [ ... ],
        "features": [
            {
                "node": "job",
                "property": "Description",
                "type": "text_fasttext",
                "language": "en",
                "max_length": 256
            },
            {
                "node": "job",
                "property": "Requirements",
                "type": "text_fasttext",
                "language": "en"
            }, ...
        ], ...
    }
}

Περισσότερες λεπτομέρειες για τις περιπτώσεις χρήσης σύστασης εργασίας μπορείτε να βρείτε στο Εκμάθηση σημειωματάριου Neptune.

Για λόγους επίδειξης, επιλέγουμε έναν χρήστη, δηλαδή τον χρήστη 443931, ο οποίος είναι κάτοχος μεταπτυχιακού τίτλου στη «Διοίκηση και Ανθρώπινο Δυναμικό». Ο χρήστης έχει υποβάλει αίτηση για πέντε διαφορετικές θέσεις εργασίας, με τίτλους «Διευθυντής Ανθρώπινου Δυναμικού (HR)», «Γενικός Διευθυντής Ανθρώπινου Δυναμικού», «Διευθυντής Ανθρώπινου Δυναμικού», «Διαχειριστής Ανθρώπινου Δυναμικού» και «Ανώτερος Ειδικός Μισθοδοσίας». Για να αξιολογήσουμε την απόδοση της εργασίας σύστασης, διαγράφουμε το 50% των εφαρμογών εργασιών (τα άκρα) του χρήστη (εδώ διαγράφουμε το "Διαχειριστής Ανθρώπινου Δυναμικού" και "Διαχειριστής Ανθρώπινου Δυναμικού (HR)) και προσπαθούμε να προβλέψουμε την κορυφή 10 θέσεις εργασίας για τις οποίες είναι πιο πιθανό να κάνει αίτηση αυτός ο χρήστης.

Αφού κωδικοποιήσουμε τις δυνατότητες εργασίας και τις δυνατότητες χρήστη, εκτελούμε μια εργασία πρόβλεψης συνδέσμων εκπαιδεύοντας ένα μοντέλο συνελικτικού δικτύου σχεσιακού γραφήματος (RGCN). Η εκπαίδευση ενός μοντέλου Neptune ML απαιτεί τρία βήματα: επεξεργασία δεδομένων, εκπαίδευση μοντέλου και δημιουργία τελικού σημείου. Αφού δημιουργηθεί το τελικό σημείο συμπερασμάτων, μπορούμε να κάνουμε συστάσεις για τον χρήστη 443931. Από τις προβλεπόμενες 10 κορυφαίες θέσεις εργασίας για τον χρήστη 443931 (δηλαδή, "HR Generalist", "Human Resources (HR) Manager", "Senior Payroll Specialist", "Human Resources Administrator», «HR Analyst», et al.), παρατηρούμε ότι οι δύο διαγραμμένες εργασίες συγκαταλέγονται στις 10 προβλέψεις.

Συμπέρασμα

Σε αυτήν την ανάρτηση, δείξαμε τη χρήση των πρόσφατα υποστηριζόμενων κωδικοποιητών κειμένου στο Neptune ML. Αυτοί οι κωδικοποιητές κειμένου είναι απλοί στη χρήση και μπορούν να υποστηρίξουν πολλαπλές απαιτήσεις. Συνοψίζοντας,

  • Το text_fasttext συνιστάται για λειτουργίες που χρησιμοποιούν μία και μόνο μία από τις πέντε γλώσσες που υποστηρίζει το text_fasttext.
  • Το text_sbert συνιστάται για κείμενο που το text_fasttext δεν υποστηρίζει.
  • Το text_word2vec υποστηρίζει μόνο αγγλικά και μπορεί να αντικατασταθεί από text_fasttext σε οποιοδήποτε σενάριο.

Για περισσότερες λεπτομέρειες σχετικά με τη λύση, ανατρέξτε στο GitHub repo. Συνιστούμε να χρησιμοποιείτε τους κωδικοποιητές κειμένου στα δεδομένα του γραφήματος σας για να καλύψετε τις απαιτήσεις σας. Μπορείτε απλώς να επιλέξετε ένα όνομα κωδικοποιητή και να ορίσετε ορισμένα χαρακτηριστικά κωδικοποιητή, διατηρώντας το μοντέλο GNN αμετάβλητο.


Σχετικά με τους συγγραφείς

Κωδικοποιήστε πολύγλωσσες ιδιότητες κειμένου στο Amazon Neptune για να εκπαιδεύσετε προγνωστικά μοντέλα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Jiani Zhang είναι εφαρμοσμένος επιστήμονας της AWS AI Research and Education (AIRE). Εργάζεται στην επίλυση πραγματικών εφαρμογών χρησιμοποιώντας αλγόριθμους μηχανικής μάθησης, ειδικά προβλήματα που σχετίζονται με φυσική γλώσσα και γραφήματα.

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS