Kodirajte večjezične lastnosti besedila v Amazon Neptune za urjenje napovednih modelov PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Kodirajte lastnosti večjezičnega besedila v Amazon Neptune za urjenje napovednih modelov

Amazon Neptune ML je zmožnost strojnega učenja (ML). Amazonski Neptun ki vam pomaga pri natančnem in hitrem predvidevanju podatkov vašega grafa. Pod pokrovom Neptune ML uporablja Graph Neural Networks (GNN) za istočasno izkoriščanje prednosti strukture grafa in lastnosti vozlišč/robov za rešitev trenutne naloge. Tradicionalne metode bodisi uporabljajo samo lastnosti in ne uporabljajo strukture grafa (npr. XGBoost, nevronske mreže) ali pa samo strukturo grafa in nobenih lastnosti (npr. node2vec, širjenje oznak). Za boljše upravljanje z lastnostmi vozlišč/robov algoritmi ML zahtevajo, da so podatki dobro obnašani numerični podatki, vendar imajo neobdelani podatki v zbirki podatkov lahko druge vrste, na primer neobdelano besedilo. Za uporabo teh drugih vrst podatkov potrebujemo posebne korake obdelave, ki jih pretvorijo iz izvorne vrste v numerične podatke, kakovost rezultatov ML pa je močno odvisna od kakovosti teh transformacij podatkov. Neobdelano besedilo je tako kot stavki med vrstami, ki jih je najtežje preoblikovati, vendar je nedavni napredek na področju obdelave naravnega jezika (NLP) pripeljal do močnih metod, ki lahko obravnavajo besedilo, ki prihaja iz več jezikov in najrazličnejših dolžin.

Začenši z različico 1.1.0.0, Neptune ML podpira več kodirnikov besedila (text_fasttext, text_sbert, besedilna_beseda2vecin text_tfidf), ki prinaša prednosti nedavnega napredka v NLP in omogoča podporo za lastnosti večjezičnega besedila ter dodatne zahteve glede sklepanja glede jezikov in dolžine besedila. Na primer, v primeru uporabe priporočila za zaposlitev so delovna mesta v različnih državah lahko opisana v različnih jezikih, dolžina opisov delovnih mest pa se precej razlikuje. Poleg tega Neptune ML podpira an avto možnost, ki samodejno izbere najboljši način kodiranja na podlagi značilnosti besedilne funkcije v podatkih.

V tej objavi ponazarjamo uporabo vsakega kodirnika besedila, primerjamo njihove prednosti in slabosti ter prikazujemo primer, kako izbrati prave kodirnike besedila za nalogo priporočila za zaposlitev.

Kaj je kodirnik besedila?

Cilj kodiranja besedila je pretvoriti besedilne lastnosti robov/vozlišč v Neptunu v vektorje fiksne velikosti za uporabo v modelih strojnega učenja na nižji stopnji za naloge klasifikacije vozlišč ali napovedi povezav. Dolžina besedila je lahko zelo različna. Lahko je beseda, fraza, stavek, odstavek ali celo dokument z več stavki (največja velikost posamezne lastnosti je 55 MB v Neptunu). Poleg tega so besedilne funkcije lahko v različnih jezikih. Obstajajo lahko tudi stavki, ki vsebujejo besede v več različnih jezikih, ki jih definiramo kot preklapljanje kod.

Začenši z izdajo 1.1.0.0 vam Neptune ML omogoča izbiro med več različnimi kodirniki besedila. Vsak kodirnik deluje nekoliko drugače, vendar ima isti cilj pretvorbe polja z besedilno vrednostjo iz Neptuna v vektor s fiksno velikostjo, ki ga uporabimo za izdelavo našega modela GNN z uporabo Neptune ML. Novi kodirniki so naslednji:

  • text_fasttext (novo) – Uporabe hitro besedilo kodiranje. FastText je knjižnica za učinkovito učenje predstavljanja besedila. text_fasttext se priporoča za funkcije, ki uporabljajo enega in samo enega od petih jezikov, ki jih podpira fastText (angleščina, kitajščina, hindijščina, španščina in francoščina). The text_fasttext metoda lahko izbirno sprejme max_length polje, ki podaja največje število žetonov v vrednosti lastnosti besedila, ki bo kodirana, po kateri se niz skrajša. Žeton lahko obravnavate kot besedo. To lahko izboljša zmogljivost, ko vrednosti lastnosti besedila vsebujejo dolge nize, ker if max_length ni podano, fastText kodira vse žetone ne glede na dolžino niza.
  • text_sbert (novo) – uporablja stavek BERT (SBERT) način kodiranja. SBERT je nekakšna metoda vdelave stavkov z uporabo učnih modelov kontekstualne predstavitve, BERT-Networks. text_sbert je priporočljivo, če jezika ne podpira text_fasttext. Neptune podpira dve metodi SBERT: text_sbert128, kar je privzeto, če samo določite text_sbertin text_sbert512. Razlika med njima je največje število žetonov v lastnosti besedila, ki se kodirajo. The text_sbert128 kodiranje kodira le prvih 128 žetonov, medtem ko text_sbert512 kodira do 512 žetonov. Kot rezultat, uporaba text_sbert512 lahko zahteva več časa obdelave kot text_sbert128. Obe metodi sta počasnejši od text_fasttext.
  • besedilna_beseda2vec - Uporabe Word2Vec algoritmi, ki jih je prvotno objavil Google za kodiranje besedila. Word2Vec podpira samo angleščino.
  • text_tfidf – Uporablja izraz frekvenčna inverzna frekvenca dokumenta (TF-IDF) vektorizator za kodiranje besedila. Kodiranje TF-IDF podpira statistične funkcije, ki jih druga kodiranja ne podpirajo. Kvantificira pomembnost ali ustreznost besed v eni lastnosti vozlišča med vsemi drugimi vozlišči.

Upoštevajte, da text_word2vec in text_tfidf so bile prej podprte in nove metode text_fasttext in text_sbert se priporočajo namesto starih metod.

Primerjava različnih kodirnikov besedila

Naslednja tabela prikazuje podrobno primerjavo vseh podprtih možnosti kodiranja besedila (text_fasttext, text_sbertin text_word2vec). text_tfidf ni metoda kodiranja, ki temelji na modelu, temveč merilo, ki temelji na štetju in ocenjuje, kako pomemben je žeton (na primer beseda) za funkcije besedila v drugih vozliščih ali robovih, zato ne vključujemo text_tfidf za primerjavo. Priporočamo uporabo text_tfidf ko želite količinsko opredeliti pomembnost ali ustreznost nekaterih besed v eni lastnosti vozlišča ali roba med vsemi drugimi lastnostmi vozlišča ali roba.)

. . text_fasttext text_sbert besedilna_beseda2vec
Zmogljivost modela Podprti jezik Angleščina, kitajščina, hindijščina, španščina in francoščina Več kot 50 jezikov Angleščina
Lahko kodira lastnosti besedila, ki vsebujejo besede v različnih jezikih Ne Da Ne
Podpora za maksimalno dolžino Ni omejitve največje dolžine Kodira besedilno zaporedje z največjo dolžino 128 in 512 Ni omejitve največje dolžine
Časovni stroški loading Približno 10 sekund Približno 2 sekund Približno 2 sekund
Sklepanje Hitro Počasi srednje

Upoštevajte naslednje nasvete za uporabo:

  • Za vrednosti lastnosti besedila v angleščini, kitajščini, hindijščini, španščini in francoščini, text_fasttext je priporočeno kodiranje. Vendar pa ne more obravnavati primerov, ko isti stavek vsebuje besede v več kot enem jeziku. Za druge jezike razen petih, ki fastText podpira, uporaba text_sbert kodiranje.
  • Če imate veliko besedilnih nizov vrednosti lastnosti, ki so daljši od na primer 120 žetonov, uporabite max_length polje za omejitev števila žetonov v vsakem nizu, ki text_fasttext kodira.

Če povzamemo, glede na vaš primer uporabe priporočamo naslednji način kodiranja:

  • Če so vaše lastnosti besedila v enem od petih podprtih jezikov, priporočamo uporabo text_fasttext zaradi hitrega sklepanja. text_fasttext je priporočena izbira in jo lahko tudi uporabite text_sbert v naslednjih dveh izjemah.
  • Če so vaše lastnosti besedila v različnih jezikih, priporočamo uporabo text_sbert ker je to edina podprta metoda, ki lahko kodira lastnosti besedila, ki vsebuje besede v več različnih jezikih.
  • Če so vaše lastnosti besedila v enem jeziku, ki ni eden od petih podprtih jezikov, priporočamo uporabo text_sbert ker podpira več kot 50 jezikov.
  • Če je povprečna dolžina vaših lastnosti besedila daljša od 128, razmislite o uporabi text_sbert512 or text_fasttext. Obe metodi lahko uporabljata kodiranje daljših besedilnih zaporedij.
  • Če so vaše lastnosti besedila samo v angleščini, lahko uporabite text_word2vec, vendar priporočamo uporabo text_fasttext za njegovo hitro sklepanje.

Predstavitev primera uporabe: Naloga priporočila za zaposlitev

Cilj naloge priporočila za delo je napovedati, za katera delovna mesta se bodo uporabniki prijavili na podlagi njihovih prejšnjih prijav, demografskih podatkov in delovne zgodovine. Ta objava uporablja odprt nabor podatkov Kaggle. Nabor podatkov izdelamo kot graf s tremi vozlišči: delo, uporabnikin CITY.

Delovno mesto je označeno z naslovom, opisom, zahtevami, mestom in državo. Uporabnik je opisan z lastnostmi smeri, vrsto diplome, številom delovne zgodovine, skupnim številom let delovnih izkušenj ipd. Za ta primer uporabe so naziv delovnega mesta, opis delovnega mesta, zahteve za delovno mesto in glavne smeri v obliki besedila.

V naboru podatkov imajo uporabniki naslednje lastnosti:

  • Država – Na primer CA ali 广东省 (kitajščina)
  • Major – Na primer upravljanje s človeškimi viri ali Lic Cytura Fisica (španščina)
  • DegreeType – Na primer diploma, magisterij, doktorat ali nič
  • WorkHistoryCount – Na primer 0, 1, 16 itd
  • TotalYearsExperience – Na primer 0.0, 10.0 ali NAN

Delovna mesta imajo naslednje lastnosti:

  • Naslov – Na primer, Administrative Assistant ali Lic Cultura Física (španščina).
  • Opis – Na primer, »Ta položaj administrativnega pomočnika je odgovoren za opravljanje različnih pisarniških in administrativnih podpornih funkcij na področju komunikacij, …« Povprečno število besed v opisu je približno 192.2.
  • Zahteve – Na primer, »ZAHTEVE ZA DELOVNO MESTO: 1. Pozornost do podrobnosti; 2. Sposobnost dela v hitrem okolju; 3. Fakturiranje…”
  • Država: – Na primer CA, NY itd.

Vrsta vozlišča CITY kot sta Washington DC in Orlando FL, ima samo identifikator za vsako vozlišče. V naslednjem razdelku analiziramo značilnosti različnih funkcij besedila in ponazarjamo, kako izbrati ustrezne kodirnike besedila za različne lastnosti besedila.

Kako izbrati različne kodirnike besedila

Za naš primer, Major in Naslov lastnosti so v več jezikih in imajo kratka besedilna zaporedja, torej text_sbert je priporočljivo. Vzorčna koda za izvozne parametre kot sledi. Za text_sbert vrste, ni drugih polj parametrov. Tukaj izbiramo text_sbert128 razen text_sbert512, ker je dolžina besedila relativno krajša od 128.

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

O Opis in Zahteve lastnosti so običajno v dolgih besedilnih zaporedjih. Povprečna dolžina opisa je približno 192 besed, kar je več od največje vnesene dolžine text_sbert (128). Lahko uporabimo text_sbert512, vendar lahko povzroči počasnejše sklepanje. Poleg tega je besedilo v enem samem jeziku (angleščina). Zato priporočamo text_fasttext s en jezikovna vrednost zaradi hitrega sklepanja in neomejene dolžine vnosa. Vzorčna koda za izvozne parametre kot sledi. The text_fasttext kodiranje je mogoče prilagoditi z uporabo jezik in največja_dolžina. language vrednost je zahtevana, vendar max_length ni obvezen.

"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"
            }, ...
        ], ...
    }
}

Več podrobnosti o primerih uporabe priporočil za zaposlitev najdete v Vadnica za zvezek Neptun.

Za demonstracijske namene izberemo enega uporabnika, to je uporabnika 443931, ki je magistriral s področja managementa in človeških virov. Uporabnik se je prijavil na pet različnih delovnih mest z naslovi »Upravitelj človeških virov (HR)«, »Splošni kadrovski strokovnjak«, »Upravitelj človeških virov«, »Administrator človeških virov« in »Višji specialist za obračun plač«. Da bi ocenili uspešnost priporočilne naloge, izbrišemo 50 % prijavljenih delovnih mest (robov) uporabnika (tu izbrišemo »Skrbnika za človeške vire« in »Upravitelja človeških virov (HR)) in poskušamo predvideti vrh 10 delovnih mest, za katera se bo ta uporabnik najverjetneje prijavil.

Po kodiranju delovnih funkcij in uporabniških funkcij izvedemo nalogo napovedovanja povezave z usposabljanjem modela konvolucijske mreže relacijskega grafa (RGCN). Usposabljanje modela Neptune ML zahteva tri korake: obdelavo podatkov, usposabljanje modela in ustvarjanje končne točke. Ko je končna točka sklepanja ustvarjena, lahko podamo priporočila za uporabnika 443931. Iz predvidenih 10 najboljših delovnih mest za uporabnika 443931 (tj. »HR Generalist«, »Human Resources (HR) Manager«, »Senior Payroll Specialist«, »Human Resources Administrator«, »HR Analyst«, et al.), opazimo, da sta dve izbrisani zaposlitvi med 10 predvidevanji.

zaključek

V tej objavi smo prikazali uporabo na novo podprtih kodirnikov besedila v Neptune ML. Ti kodirniki besedila so preprosti za uporabo in podpirajo več zahtev. V povzetku,

  • text_fasttext je priporočljiv za funkcije, ki uporabljajo enega in samo enega od petih jezikov, ki jih podpira text_fasttext.
  • text_sbert je priporočljiv za besedilo, ki ga text_fasttext ne podpira.
  • text_word2vec podpira samo angleščino in ga je mogoče zamenjati s text_fasttext v katerem koli scenariju.

Za več podrobnosti o rešitvi glejte GitHub repo. Priporočamo uporabo kodirnikov besedila na vaših podatkih grafa, da izpolnite svoje zahteve. Izberete lahko samo ime kodirnika in nastavite nekaj atributov kodirnika, pri tem pa ohranite model GNN nespremenjen.


O avtorjih

Kodirajte večjezične lastnosti besedila v Amazon Neptune za urjenje napovednih modelov PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Jiani Zhang je uporabni znanstvenik AWS AI Research and Education (AIRE). Dela na reševanju aplikacij iz resničnega sveta z uporabo algoritmov strojnega učenja, zlasti problemov, povezanih z naravnim jezikom in grafi.

Časovni žig:

Več od Strojno učenje AWS