Amazon Neptune ML on koneoppimiskyky (ML). Amazonin Neptuuni jonka avulla voit tehdä tarkkoja ja nopeita ennusteita kaaviotiedoistasi. Kotelon alla Neptune ML käyttää Graph Neural Networks (GNN) -verkkoja hyödyntääkseen samanaikaisesti graafin rakennetta ja solmu-/reunaominaisuuksia käsillä olevan tehtävän ratkaisemiseksi. Perinteiset menetelmät käyttävät joko vain ominaisuuksia eikä kuvaajarakennetta (esim. XGBoost, Neural Networks) tai vain graafin rakennetta ilman ominaisuuksia (esim. node2vec, Label Propagation). Solmun/reunan ominaisuuksien käsittelemiseksi paremmin ML-algoritmit edellyttävät tietojen olevan hyvin käyttäytyviä numeerisia tietoja, mutta tietokannan raakadatalla voi olla muun tyyppisiä tietoja, kuten raakatekstiä. Näiden muuntyyppisten tietojen hyödyntämiseksi tarvitsemme erityisiä käsittelyvaiheita, jotka muuntavat ne alkuperäisestä tyypistä numeerisiksi tiedoiksi, ja ML-tulosten laatu riippuu voimakkaasti näiden datamuunnosten laadusta. Raakateksti, kuten lauseet, kuuluu vaikeimmin muunnettaviin tyyppeihin, mutta viimeaikainen edistyminen luonnollisen kielenkäsittelyn (NLP) alalla on johtanut vahvoihin menetelmiin, jotka pystyvät käsittelemään useista kielistä ja eripituisia tekstiä.
Versiosta 1.1.0.0 alkaen Neptune ML tukee useita tekstikoodareita (text_fasttext, text_sbert, text_word2vecja text_tfidf), jotka tuovat etuja NLP:n viimeaikaisista edistysaskeleista ja mahdollistavat tuen monikielisille tekstiominaisuuksille sekä ylimääräiset päättelyvaatimukset kielistä ja tekstin pituudesta. Esimerkiksi työsuositusten käyttötapauksessa eri maiden työpaikat voidaan kuvata eri kielillä ja työnkuvausten pituus vaihtelee huomattavasti. Lisäksi Neptune ML tukee auto vaihtoehto, joka valitsee automaattisesti parhaan koodausmenetelmän datan tekstiominaisuuden ominaisuuksien perusteella.
Tässä viestissä havainnollistamme kunkin tekstikooderin käyttöä, vertaamme niiden etuja ja haittoja sekä näytämme esimerkin siitä, kuinka valita oikeat tekstienkooderit työsuositustehtävää varten.
Mikä on tekstikooderi?
Tekstin koodauksen tavoitteena on muuntaa Neptunen tekstipohjaiset reuna-/solmuominaisuudet kiinteän kokoisiksi vektoreiksi käytettäväksi alavirran koneoppimismalleissa joko solmujen luokittelussa tai linkin ennustetehtävissä. Tekstiominaisuuden pituus voi vaihdella paljon. Se voi olla sana, lause, lause, kappale tai jopa asiakirja, jossa on useita lauseita (yhden ominaisuuden enimmäiskoko on 55 Mt Neptunuksessa). Lisäksi tekstiominaisuudet voivat olla eri kielillä. Voi myös olla lauseita, jotka sisältävät sanoja useilla eri kielillä, joita määrittelemme koodinvaihto.
Julkaisusta 1.1.0.0 alkaen Neptune ML:n avulla voit valita useista eri tekstikoodereista. Jokainen kooderi toimii hieman eri tavalla, mutta sillä on sama tavoite muuntaa tekstiarvokenttä Neptunuksesta kiinteän kokoiseksi vektoriksi, jota käytämme GNN-mallimme rakentamiseen Neptune ML:n avulla. Uudet kooderit ovat seuraavat:
- text_fasttext (uusi) – Käyttötarkoitukset tekstitelevisiosignaalia koodaus. FastText on kirjasto tehokkaaseen tekstin esittämisen oppimiseen.
text_fasttext
suositellaan ominaisuuksille, jotka käyttävät yhtä ja vain yhtä viidestä fastTextin tukemasta kielestä (englanti, kiina, hindi, espanja ja ranska). Thetext_fasttext
menetelmä voi valinnaisesti ottaamax_length
-kenttä, joka määrittää koodattavan tekstin ominaisuuden arvossa olevien merkkien enimmäismäärän, jonka jälkeen merkkijono katkaistaan. Voit pitää merkkiä sanana. Tämä voi parantaa suorituskykyä, kun tekstin ominaisuusarvot sisältävät pitkiä merkkijonoja, koska josmax_length
ei ole määritetty, fastText koodaa kaikki tokenit merkkijonon pituudesta riippumatta. - text_sbert (uusi) – Käyttää lausetta BERT (SBERT) koodausmenetelmää. SBERT on eräänlainen lauseen upotusmenetelmä, jossa käytetään kontekstuaalisen esityksen oppimismalleja, BERT-Networks.
text_sbert
suositellaan, kun kieltä ei tuetext_fasttext
. Neptune tukee kahta SBERT-menetelmää:text_sbert128
, joka on oletusarvo, jos vain määritättext_sbert
jatext_sbert512
. Niiden välinen ero on tekstiominaisuuden koodattavien merkkien enimmäismäärä. Thetext_sbert128
koodaus koodaa vain ensimmäiset 128 merkkiä, kun taastext_sbert512
koodaa jopa 512 merkkiä. Tämän seurauksena käyttämällätext_sbert512
voi vaatia enemmän käsittelyaikaa kuintext_sbert128
. Molemmat menetelmät ovat hitaampia kuintext_fasttext
. - text_word2vec - Käyttää Word2Vec Googlen alun perin julkaisemat algoritmit tekstin koodaamiseksi. Word2Vec tukee vain englantia.
- text_tfidf – Käyttää termiä taajuus-käänteinen asiakirjataajuus (TF-IDF) vektoriohjelma tekstin koodaamiseen. TF-IDF-koodaus tukee tilastollisia ominaisuuksia, joita muut koodaukset eivät. Se kvantifioi yhden solmuominaisuuden sanojen tärkeyden tai merkityksellisyyden kaikkien muiden solmujen joukossa.
Huomaa, että text_word2vec
ja text_tfidf
aiemmin tuetut ja uudet menetelmät text_fasttext
ja text_sbert
suositellaan vanhojen menetelmien sijaan.
Erilaisten tekstienkooderien vertailu
Seuraava taulukko näyttää yksityiskohtaisen vertailun kaikista tuetuista tekstin koodausvaihtoehdoista (text_fasttext
, text_sbert
ja text_word2vec
). text_tfidf
ei ole mallipohjainen koodausmenetelmä, vaan pikemminkin laskentaan perustuva mitta, joka arvioi, kuinka osuva merkki (esimerkiksi sana) on muiden solmujen tai reunojen tekstiominaisuuksien kannalta, joten emme sisällytä text_tfidf
vertailun vuoksi. Suosittelemme käyttöä text_tfidf
kun haluat kvantifioida joidenkin sanojen tärkeyden tai relevanssia yhdessä solmun tai reunan ominaisuudessa kaikkien muiden solmu- tai reunaominaisuuksien joukossa.)
. | . | text_fasttext | text_sbert | text_word2vec |
Mallin kyky | Tuettu kieli | Englanti, kiina, hindi, espanja ja ranska | Yli 50 kieltä | Englanti |
Osaa koodata tekstiominaisuuksia, jotka sisältävät sanoja eri kielillä | Ei | Kyllä | Ei | |
Maksimipituustuki | Ei enimmäispituusrajoitusta | Koodaa tekstisekvenssin, jonka enimmäispituus on 128 ja 512 | Ei enimmäispituusrajoitusta | |
Aikakustannukset | Ladataan | Noin 10 sekuntia | Noin 2 sekuntia | Noin 2 sekuntia |
Päättely | Nopea | Hidas | Keskikokoinen |
Huomioi seuraavat käyttövinkit:
- Tekstiominaisuuksien arvot englanniksi, kiinaksi, hindiksi, espanjaksi ja ranskaksi:
text_fasttext
on suositeltu koodaus. Se ei kuitenkaan pysty käsittelemään tapauksia, joissa sama lause sisältää sanoja useammalla kuin yhdellä kielellä. Muille kielille kuin niille viidellefastText
tukee, käytätext_sbert
koodaavat. - Jos sinulla on monia ominaisuuden arvon tekstijonoja, jotka ovat pidempiä kuin esimerkiksi 120 merkkiä, käytä
max_length
-kenttä rajoittaaksesi merkkien määrää kussakin merkkijonossatext_fasttext
koodaa.
Yhteenvetona, käyttötapauksestasi riippuen, suosittelemme seuraavaa koodausmenetelmää:
- Jos tekstiominaisuudet ovat jollakin viidestä tuetuista kielestä, suosittelemme käyttämään sitä
text_fasttext
sen nopean päättelyn ansiosta.text_fasttext
on suositeltu vaihtoehto ja voit myös käyttäätext_sbert
kahdessa seuraavassa poikkeuksessa. - Jos tekstiominaisuudet ovat eri kielillä, suosittelemme käyttämään
text_sbert
koska se on ainoa tuettu menetelmä, joka voi koodata tekstin ominaisuuksia, jotka sisältävät sanoja useilla eri kielillä. - Jos tekstiominaisuudet ovat yhdellä kielellä, joka ei ole yksi viidestä tuetusta kielestä, suosittelemme käyttämään sitä
text_sbert
koska se tukee yli 50 kieltä. - Jos tekstiominaisuuksien keskimääräinen pituus on yli 128, harkitse sen käyttöä
text_sbert512
ortext_fasttext
. Molemmat menetelmät voivat koodata pidempiä tekstisarjoja. - Jos tekstiominaisuudet ovat vain englanninkielisiä, voit käyttää
text_word2vec
, mutta suosittelemme käyttämääntext_fasttext
sen nopean päättelyn vuoksi.
Käyttötapausesittely: Työn suositustehtävä
Työsuositustehtävän tavoitteena on ennustaa aiempien hakemustensa, demografisten tietojen ja työhistoriansa perusteella, mitä töitä käyttäjät hakevat. Tämä viesti käyttää avoin Kaggle-tietojoukko. Rakennamme tietojoukon kolmen solmun tyyppisenä graafina: Työpaikka, lähettämäja kaupunki.
Työlle on ominaista sen nimi, kuvaus, vaatimukset, sijaintikaupunki ja osavaltio. Käyttäjää kuvataan pääaineen, tutkintotyypin, työhistorian, työkokemusvuosien kokonaismäärän ja muiden ominaisuuksilla. Tässä käyttötapauksessa työn nimi, työnkuvaus, työn vaatimukset ja pääaineet ovat kaikki tekstin muodossa.
Tietojoukossa käyttäjillä on seuraavat ominaisuudet:
- Osavaltio – Esimerkiksi CA tai 广东省 (kiina)
- Merkittävä – Esimerkiksi henkilöstöhallinto tai Lic Cytura Fisica (espanja)
- DegreeType – Esimerkiksi kandidaatin, maisterin, tohtorin tai ei mitään
- WorkHistoryCount – Esimerkiksi 0, 1, 16 ja niin edelleen
- Total Years Experience – Esimerkiksi 0.0, 10.0 tai NAN
Työpaikoilla on seuraavat ominaisuudet:
- Otsikko – Esimerkiksi hallintoassistentti tai Lic Cultura Física (espanja).
- Kuvaus – Esimerkiksi "Tämä hallintoavustajan tehtävä vastaa erilaisten viestinnän toimisto- ja hallinnollisten tukitehtävien suorittamisesta..." Kuvauksen sanojen keskimääräinen määrä on noin 192.2.
- vaatimukset – Esimerkiksi “TYÖVAATIMUKSET: 1. Huomio yksityiskohtiin; 2. Kyky työskennellä nopeatempoisessa ympäristössä; 3. Laskutus…”
- Osavaltio: – Esimerkiksi CA, NY ja niin edelleen.
Solmun tyyppi kaupunki kuten Washington DC:ssä ja Orlando FL:ssä on vain kunkin solmun tunniste. Seuraavassa osiossa analysoimme eri tekstiominaisuuksien ominaisuuksia ja havainnollistamme, kuinka valitaan oikeat tekstienkooderit eri tekstiominaisuuksille.
Kuinka valita erilaisia tekstikoodeja
Esimerkiksi meidän Merkittävä ja Otsikko ominaisuudet ovat useilla kielillä ja niissä on lyhyitä tekstijaksoja, joten text_sbert
on suositeltavaa. Mallikoodi vientiparametrit on seuraava. Varten text_sbert
tyyppiä, muita parametrikenttiä ei ole. Tässä valitsemme text_sbert128
muu kuin text_sbert512
, koska tekstin pituus on suhteellisen lyhyempi kuin 128.
- Kuvaus ja vaatimukset ominaisuudet ovat yleensä pitkissä tekstisarjoissa. Kuvauksen keskimääräinen pituus on noin 192 sanaa, mikä on pidempi kuin syötettävän enimmäispituuden text_sbert
(128). Voimme käyttää text_sbert512
, mutta se voi johtaa hitaampaan päättelyyn. Lisäksi teksti on yhdellä kielellä (englanniksi). Siksi suosittelemme text_fasttext
jossa en kielen arvo sen nopean päättelyn ja rajoittamattoman syötteen pituuden vuoksi. Mallikoodi vientiparametrit on seuraava. The text_fasttext
koodausta voidaan mukauttaa käyttämällä Kieli ja Maksimi pituus. language
arvo vaaditaan, mutta max_length
on valinnainen.
Tarkemmat tiedot työsuositusten käyttötapauksista löydät osoitteesta Neptune-muistikirjan opetusohjelma.
Esittelytarkoituksessa valitsemme yhden käyttäjän, eli käyttäjän 443931, jolla on johtamisen ja henkilöstöhallinnon maisterin tutkinto. Käyttäjä on hakenut viiteen eri työhön, nimeltään "Human Resources (HR) Manager", "HR Generalist", "Human Resources Manager", "Human Resources Administrator" ja "Senior Payroll Specialist". Suositustehtävän suorituskyvyn arvioimiseksi poistamme 50 % käyttäjän hakemista töistä (reunat) (tästä poistamme "Human Resources Administrator" ja "Human Resources (HR) Manager) ja yritämme ennustaa alkuun 10 työpaikkaa, joihin tämä käyttäjä todennäköisimmin hakee.
Työn ominaisuuksien ja käyttäjäominaisuuksien koodauksen jälkeen suoritamme linkin ennustustehtävän kouluttamalla relaatiograafien konvoluutioverkon (RGCN) mallin. Neptune ML -mallin kouluttaminen vaatii kolme vaihetta: tietojenkäsittely, mallin koulutus ja päätepisteiden luominen. Kun päätepäätepiste on luotu, voimme tehdä suosituksia käyttäjälle 443931. Käyttäjän 10 ennustetuista 443931 suosituimmasta työpaikasta (eli "HR Generalist", "Human Resources (HR) Manager", "Senior Payroll Specialist", "Human Resurssien järjestelmänvalvoja", "HR Analyst" et al.), havaitsemme, että kaksi poistettua työtä ovat 10 ennusteen joukossa.
Yhteenveto
Tässä viestissä näytimme äskettäin tuettujen tekstienkooderien käytön Neptune ML:ssä. Nämä tekstikooderit ovat helppokäyttöisiä ja voivat tukea useita vaatimuksia. Yhteenvetona,
- text_fasttext on suositeltavaa ominaisuuksille, jotka käyttävät yhtä ja vain yhtä viidestä text_fasttextin tukemasta kielestä.
- text_sbert suositellaan tekstille, jota text_fasttext ei tue.
- text_word2vec tukee vain englantia, ja se voidaan korvata tekstillä text_fasttext missä tahansa tilanteessa.
Lisätietoja ratkaisusta on kohdassa GitHub repo. Suosittelemme, että käytät graafitiedoissa tekstienkoodeja tarpeidesi mukaan. Voit vain valita kooderin nimen ja asettaa joitain kooderin attribuutteja pitäen samalla GNN-mallin muuttumattomana.
Tietoja kirjoittajista
Jiani Zhang on AWS AI Research and Educationin (AIRE) soveltava tutkija. Hän työskentelee todellisten sovellusten ratkaisemisessa koneoppimisalgoritmeilla, erityisesti luonnolliseen kieleen ja graafiin liittyviin ongelmiin.
- Lisäasetukset (300)
- AI
- ai taide
- ai taiteen generaattori
- ai robotti
- Amazonin Neptuuni
- tekoäly
- tekoälyn sertifiointi
- tekoäly pankkitoiminnassa
- tekoäly robotti
- tekoälyrobotit
- tekoälyohjelmisto
- AWS-koneoppiminen
- blockchain
- blockchain-konferenssi ai
- coingenius
- keskustelullinen tekoäly
- kryptokonferenssi ai
- dall's
- syvä oppiminen
- google ai
- koneoppiminen
- Platon
- plato ai
- Platonin tietotieto
- Platon peli
- PlatonData
- platopeliä
- mittakaava ai
- syntaksi
- zephyrnet