Kodeerige Amazon Neptune'is mitmekeelse teksti atribuudid, et treenida ennustavaid mudeleid PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Ennustavate mudelite koolitamiseks kodeerige Amazon Neptune'is mitmekeelse teksti atribuudid

Amazon Neptune ML on masinõppe (ML) võime Amazon Neptuun mis aitab teil teha graafiku andmete põhjal täpseid ja kiireid ennustusi. Kapoti all kasutab Neptune ML graafiku närvivõrke (GNN), et kasutada korraga ära graafiku struktuuri ja sõlme/serva omadusi käsiloleva ülesande lahendamiseks. Traditsioonilised meetodid kasutavad kas ainult atribuute ja ilma graafistruktuurita (nt XGBoost, närvivõrgud) või ainult graafiku struktuuri ja mitte mingeid atribuute (nt node2vec, Label Propagation). Sõlme/serva omaduste paremaks manipuleerimiseks nõuavad ML-algoritmid, et andmed oleksid hästi käitunud arvandmed, kuid andmebaasi toorandmetel võib olla teist tüüpi, näiteks toorteksti. Nende muud tüüpi andmete kasutamiseks vajame spetsiaalseid töötlemisetappe, mis teisendavad need algtüübist arvandmeteks, ja ML-i tulemuste kvaliteet sõltub tugevalt nende andmeteisenduste kvaliteedist. Toortekst, nagu ka laused, on ühed kõige raskemini muudetavad tüübid, kuid hiljutised edusammud loomuliku keele töötlemise (NLP) valdkonnas on viinud tugevate meetoditeni, mis suudavad käsitleda mitmest keelest pärit ja erineva pikkusega teksti.

Alates versioonist 1.1.0.0 toetab Neptune ML mitu tekstikodeerijat (text_fasttext, text_sbert, text_word2vecja text_tfidf), mis toovad kaasa NLP viimaste edusammude eelised ja võimaldavad toetada mitmekeelse teksti atribuute ning täiendavaid järeldusnõudeid keelte ja teksti pikkuse kohta. Näiteks töösoovituse kasutusjuhtumi puhul saab eri riikide tööpostitusi kirjeldada erinevates keeltes ja ametikirjelduste pikkus varieerub oluliselt. Lisaks toetab Neptune ML auto suvand, mis valib andmetes sisalduva tekstifunktsiooni omaduste põhjal automaatselt parima kodeerimismeetodi.

Selles postituses illustreerime iga tekstikodeerija kasutamist, võrdleme nende eeliseid ja puudusi ning näitame näidet selle kohta, kuidas valida töösoovitusülesande jaoks õigeid tekstikodeerijaid.

Mis on tekstikooder?

Teksti kodeerimise eesmärk on teisendada Neptune'i tekstipõhised serva/sõlme omadused fikseeritud suurusega vektoriteks, mida saab kasutada allavoolu masinõppemudelites kas sõlmede klassifitseerimise või lingi ennustamise ülesannete jaoks. Tekstifunktsiooni pikkus võib olla väga erinev. See võib olla sõna, fraas, lause, lõik või isegi mitme lausega dokument (ühe atribuudi maksimaalne suurus on Neptune'is 55 MB). Lisaks võivad tekstifunktsioonid olla erinevates keeltes. Võib esineda ka lauseid, mis sisaldavad sõnu mitmes erinevas keeles, mida me määratleme kui koodivahetus.

Alates 1.1.0.0 väljalaskest võimaldab Neptune ML valida mitme erineva tekstikodeerija vahel. Iga kodeerija töötab veidi erinevalt, kuid neil on sama eesmärk teisendada Neptune'i tekstiväärtuste väli fikseeritud suurusega vektoriks, mida kasutame oma GNN-mudeli koostamiseks Neptune ML-i abil. Uued kodeerijad on järgmised:

  • text_fasttext (uus) – kasutusalad kiireTekst kodeering. FastText on raamatukogu tõhusaks tekstiesitusõppeks. text_fasttext on soovitatav funktsioonide jaoks, mis kasutavad ühte ja ainult ühte viiest fastTexti toetatavast keelest (inglise, hiina, hindi, hispaania ja prantsuse keel). The text_fasttext meetod võib valikuliselt võtta max_length väli, mis määrab kodeeritava tekstiatribuudi väärtuses olevate märkide maksimaalse arvu, mille järel stringi kärbitakse. Märki võib pidada sõnaks. See võib parandada jõudlust, kui teksti atribuudi väärtused sisaldavad pikki stringe, sest kui max_length ei ole määratud, siis fastText kodeerib kõik märgid olenemata stringi pikkusest.
  • text_sbert (uus) – kasutab lauset BERT (SBERT) kodeerimismeetodit. SBERT on omamoodi lause manustamise meetod, mis kasutab kontekstuaalse esituse õppemudeleid, BERT-Networks. text_sbert on soovitatav, kui keelt ei toeta text_fasttext. Neptune toetab kahte SBERT-meetodit: text_sbert128, mis on vaikeseade, kui lihtsalt täpsustate text_sbertja text_sbert512. Nende erinevus seisneb tekstiatribuudis olevate märkide maksimaalne arv, mis kodeeritakse. The text_sbert128 kodeerimine kodeerib ainult esimesed 128 märki, kusjuures text_sbert512 kodeerib kuni 512 märki. Selle tulemusena kasutades text_sbert512 võib nõuda rohkem töötlemisaega kui text_sbert128. Mõlemad meetodid on aeglasemad kui text_fasttext.
  • text_word2vec - Kasutab Word2Vec algselt Google'i poolt teksti kodeerimiseks avaldatud algoritmid. Word2Vec toetab ainult inglise keelt.
  • text_tfidf – Kasutab terminit sagedus-inverse dokumendi sagedus (TF-IDF) vektoriseerija teksti kodeerimiseks. TF-IDF-kodeering toetab statistilisi funktsioone, mida teised kodeeringud ei toeta. See kvantifitseerib ühe sõlme omaduse sõnade tähtsuse või asjakohasuse kõigi teiste sõlmede hulgas.

Pange tähele, et text_word2vec ja text_tfidf olid varem toetatud ja uued meetodid text_fasttext ja text_sbert on soovitatavad vanade meetodite asemel.

Erinevate tekstikodeerijate võrdlus

Järgmine tabel näitab kõigi toetatud tekstikodeeringu valikute üksikasjalikku võrdlust (text_fasttext, text_sbertja text_word2vec). text_tfidf ei ole mudelipõhine kodeerimismeetod, vaid pigem loenduspõhine meede, mis hindab, kui asjakohane on märk (nt sõna) teiste sõlmede või servade tekstifunktsioonide suhtes, seega me ei lisa text_tfidf võrdluseks. Soovitame kasutada text_tfidf kui soovite kvantifitseerida mõne sõna tähtsust või asjakohasust ühes sõlmes või servaomaduses kõigi teiste sõlme või serva omaduste hulgas.)

. . text_fasttext text_sbert text_word2vec
Mudeli võimekus Toetatud keel Inglise, hiina, hindi, hispaania ja prantsuse keel Rohkem kui 50 keelt Inglise
Oskab kodeerida tekstiatribuute, mis sisaldavad eri keeltes sõnu Ei Jah Ei
Maksimaalse pikkusega tugi Maksimaalse pikkuse piirang puudub Kodeerib tekstijada maksimaalse pikkusega 128 ja 512 Maksimaalse pikkuse piirang puudub
Ajakulu laadimine Umbes 10 sekundit Umbes 2 sekundit Umbes 2 sekundit
Järeldus kiire Aeglane Keskmine

Pange tähele järgmisi kasutusnõuandeid:

  • Inglise, hiina, hindi, hispaania ja prantsuse keele atribuutide väärtuste jaoks text_fasttext on soovitatav kodeering. Siiski ei saa see käsitleda juhtumeid, kus sama lause sisaldab sõnu rohkem kui ühes keeles. Muude keelte puhul peale viie selle fastText toetab, kasuta text_sbert kodeerimine.
  • Kui teil on palju atribuutide väärtuse tekstistringe, mis on pikemad kui näiteks 120 märki, kasutage max_length väljale, et piirata žetoonide arvu igas stringis text_fasttext kodeerib.

Kokkuvõtteks soovitame sõltuvalt teie kasutusjuhtumist kasutada järgmist kodeerimismeetodit.

  • Kui teie tekstiatribuudid on ühes viiest toetatud keelest, soovitame seda kasutada text_fasttext selle kiire järelduse tõttu. text_fasttext on soovitatavad valikud ja saate ka kasutada text_sbert kahe järgmise erandi korral.
  • Kui teie tekstiatribuudid on erinevates keeltes, soovitame kasutada text_sbert sest see on ainus toetatud meetod, mis suudab kodeerida teksti atribuute, mis sisaldavad sõnu mitmes erinevas keeles.
  • Kui teie tekstiatribuudid on ühes keeles, mis ei ole üks viiest toetatud keelest, soovitame seda kasutada text_sbert sest see toetab enam kui 50 keelt.
  • Kui teie tekstiatribuutide keskmine pikkus on pikem kui 128, kaaluge selle kasutamist text_sbert512 or text_fasttext. Mõlemad meetodid võivad kasutada pikemate tekstijadade kodeerimist.
  • Kui teie tekstiatribuudid on ainult inglise keeles, saate seda kasutada text_word2vec, kuid soovitame kasutada text_fasttext selle kiire järelduse jaoks.

Kasutusjuhtumi demo: töösoovitamise ülesanne

Töösoovitamise ülesande eesmärk on ennustada, millistele töökohtadele kasutajad oma varasemate kandideerimiste, demograafilise teabe ja tööajaloo põhjal kandideerivad. See postitus kasutab avatud Kaggle'i andmestik. Koostame andmestiku kolme sõlme tüüpi graafikuna: töö, kasutajaja linn.

Töökohta iseloomustavad selle pealkiri, kirjeldus, nõuded, asuv linn ja osariik. Kasutajat kirjeldatakse eriala omaduste, kraadi tüübi, tööajaloo arvu, töökogemuse aastate koguarvu ja muuga. Selle kasutusjuhtumi puhul on ametinimetus, ametijuhend, töönõuded ja erialad kõik teksti kujul.

Andmestikus on kasutajatel järgmised atribuudid.

  • riik – Näiteks CA või 广东省 (hiina)
  • Peamine – Näiteks personalijuhtimine või Lic Cytura Fisica (hispaania)
  • kraadi tüüp – Näiteks bakalaureuse-, magistri-, doktorikraad või puudub
  • WorkHistoryCount – Näiteks 0, 1, 16 ja nii edasi
  • TotalYears Experience – Näiteks 0.0, 10.0 või NAN

Töödel on järgmised omadused:

  • Kapslid – Näiteks haldusassistent või Lic Cultura Física (hispaania keel).
  • Kirjeldus – Näiteks „See haldusassistendi ametikoht vastutab erinevate büroo- ja haldusabi funktsioonide täitmise eest sidevaldkonnas…” Keskmine sõnade arv kirjelduses on umbes 192.2.
  • Nõuded – Näiteks „NÕUDED TÖÖLE: 1. Tähelepanu detailidele; 2.Võimalus töötada kiire tempoga keskkonnas;3.Arveldamine…”
  • riik: – Näiteks CA, NY ja nii edasi.

Sõlme tüüp linn nagu Washington DC ja Orlando FL on ainult iga sõlme identifikaator. Järgmises jaotises analüüsime erinevate tekstifunktsioonide omadusi ja illustreerime, kuidas valida erinevate tekstiomaduste jaoks õigeid tekstikoodereid.

Kuidas valida erinevaid tekstikoodereid

Meie näiteks on Peamine ja Kapslid atribuudid on mitmes keeles ja neil on lühikesed tekstijadad, nii et text_sbert on soovitatav. Näidiskood ekspordi parameetrid on järgmine. Jaoks text_sbert tüüpi, muid parameetrivälju pole. Siin valime text_sbert128 peale text_sbert512, sest teksti pikkus on suhteliselt lühem kui 128.

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

. Kirjeldus ja Nõuded omadused on tavaliselt pikkades tekstijadades. Kirjelduse keskmine pikkus on umbes 192 sõna, mis on pikem kui maksimaalne sisendi pikkus text_sbert (128). Saame kasutada text_sbert512, kuid see võib põhjustada aeglasemaid järeldusi. Lisaks on tekst ühes keeles (inglise). Seetõttu soovitame text_fasttext koos en keele väärtus selle kiire järelduse ja piiratud sisendi pikkuse tõttu. Näidiskood ekspordi parameetrid on järgmine. The text_fasttext kodeeringut saab kohandada kasutades keel ja max_pikkus. language väärtus on nõutav, kuid max_length on vabatahtlik.

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

Lisateavet töösoovituste kasutamise juhtumite kohta leiate veebisaidilt Neptune'i sülearvuti õpetus.

Demonstreerimiseks valime ühe kasutaja, st kasutaja 443931, kellel on magistrikraad juhtimis- ja personalivaldkonnas. Kasutaja on kandideerinud viiele erinevale ametikohale, mille pealkirjad on „Personalijuht“, „Personalijuht“, „Personalijuht“, „Personaliadministraator“ ja „Palgaarvestuse vanemspetsialist“. Soovitusülesande toimivuse hindamiseks kustutame 50% kasutaja rakendatud töökohtadest (servadest) (siin kustutame “Personaliadministraator” ja “Personalijuht) ning püüame ennustada parimat 10 töökohta, millele see kasutaja kõige tõenäolisemalt kandideerib.

Pärast tööfunktsioonide ja kasutajafunktsioonide kodeerimist teostame lingi ennustamise ülesande, treenides relatsioonigraafiku konvolutsioonivõrgu (RGCN) mudelit. Neptune ML mudeli koolitamiseks on vaja kolme etappi: andmetöötlus, mudeli koolitus ja lõpp-punkti loomine. Pärast järelduse lõpp-punkti loomist saame anda soovitusi kasutajale 443931. Kasutaja 10 prognoositud 443931 populaarseima töökoha hulgast (st "personalipealik", "personalijuht", "palgaarvestuse vanemspetsialist", "inimene" Ressursiadministraator“, „HR Analyst“ jt), täheldame, et kaks kustutatud tööd on 10 prognoosi hulgas.

Järeldus

Selles postituses näitasime äsja toetatud tekstikodeerijate kasutamist Neptune ML-is. Neid tekstikoodereid on lihtne kasutada ja need toetavad mitmeid nõudeid. Kokkuvõttes,

  • text_fasttext on soovitatav funktsioonide jaoks, mis kasutavad ühte ja ainult ühte viiest keelest, mida text_fasttext toetab.
  • text_sbert on soovitatav teksti jaoks, mida text_fasttext ei toeta.
  • text_word2vec toetab ainult inglise keelt ja selle saab iga stsenaariumi korral asendada tekstiga text_fasttext.

Lisateavet lahenduse kohta leiate aadressilt GitHub repo. Soovitame oma nõuete täitmiseks kasutada graafiku andmetel tekstikoodereid. Saate lihtsalt valida kodeerija nime ja määrata mõned kodeerija atribuudid, jättes samal ajal GNN-i mudeli muutmata.


Autoritest

Kodeerige Amazon Neptune'is mitmekeelse teksti atribuudid, et treenida ennustavaid mudeleid PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Jiani Zhang on AWS AI Research and Education (AIRE) rakendusteadlane. Ta tegeleb reaalmaailma rakenduste lahendamisega, kasutades masinõppe algoritme, eriti loomuliku keele ja graafikuga seotud probleeme.

Ajatempel:

Veel alates AWS-i masinõpe