Kódolja a többnyelvű szövegtulajdonságokat az Amazon Neptune-ban a PlatoBlockchain Data Intelligence prediktív modellek betanításához. Függőleges keresés. Ai.

Kódolja a többnyelvű szövegtulajdonságokat az Amazon Neptune-ban a prediktív modellek betanításához

Amazon Neptune ML egy gépi tanulási (ML) képessége Amazon Neptun amely segít pontos és gyors előrejelzések készítésében a grafikon adataira vonatkozóan. A motorháztető alatt a Neptune ML Graph Neural Networks (GNN-ek) segítségével egyszerre használja ki a gráf szerkezetét és a csomópont/él tulajdonságait az adott feladat megoldására. A hagyományos módszerek vagy csak tulajdonságokat használnak gráfszerkezet nélkül (pl. XGBoost, Neural Networks), vagy csak gráfszerkezetet használnak tulajdonságok nélkül (pl. node2vec, Label Propagation). A csomópont/él tulajdonságainak jobb manipulálása érdekében az ML algoritmusok megkövetelik, hogy az adatok jól viselkedő numerikus adatok legyenek, de az adatbázisban lévő nyers adatoknak más típusai is lehetnek, például nyers szöveg. Ezen más típusú adatok felhasználásához speciális feldolgozási lépésekre van szükségünk, amelyek natív típusukból numerikus adatokká alakítják át őket, és az ML eredmények minősége erősen függ ezen adatátalakítások minőségétől. A nyers szöveg, akárcsak a mondatok, a legnehezebben átalakítható típusok közé tartozik, de a természetes nyelvi feldolgozás (NLP) területén a közelmúltban elért előrelépések olyan erős módszereket eredményeztek, amelyek képesek kezelni a több nyelvről érkező és sokféle hosszúságú szöveget.

Az 1.1.0.0 verziótól kezdve a Neptune ML támogatja több szövegkódoló (text_fasttext, text_sbert, text_word2vecés text_tfidf). Például egy állásajánló felhasználási esetnél a különböző országok álláshirdetései különböző nyelveken írhatók le, és a munkaköri leírások hossza jelentősen eltér. Ezenkívül a Neptune ML támogatja a auto opció, amely automatikusan kiválasztja a legjobb kódolási módszert az adatokban található szöveg jellemzői alapján.

Ebben a bejegyzésben bemutatjuk az egyes szövegkódolók használatát, összehasonlítjuk előnyeiket és hátrányaikat, és példát mutatunk be a megfelelő szövegkódolók kiválasztására egy állásajánló feladathoz.

Mi az a szövegkódoló?

A szövegkódolás célja, hogy a Neptune szövegalapú él/csomópont tulajdonságait fix méretű vektorokká alakítsa át, amelyek a későbbi gépi tanulási modellekben használhatók csomópontosztályozási vagy linkelőrejelzési feladatokhoz. A szövegelem hossza nagyon eltérő lehet. Lehet szó, kifejezés, mondat, bekezdés, vagy akár több mondatos dokumentum is (a Neptunban egyetlen tulajdonság maximális mérete 55 MB). Ezenkívül a szöveges jellemzők különböző nyelvűek lehetnek. Előfordulhatnak olyan mondatok is, amelyek több különböző nyelvű szavakat tartalmaznak, amelyeket mi így határozunk meg kód váltás.

Az 1.1.0.0 kiadástól kezdődően a Neptune ML lehetővé teszi, hogy többféle szövegkódoló közül válasszunk. Mindegyik kódoló kissé eltérően működik, de ugyanaz a célja, hogy egy szöveges értékmezőt Neptune-ból fix méretű vektorokká alakítsunk, amelyeket a GNN-modell felépítéséhez használunk Neptune ML segítségével. Az új kódolók a következők:

  • text_fasttext (új) – Felhasználások gyors Szöveg kódolás. A FastText egy könyvtár a hatékony szövegábrázolás-tanuláshoz. text_fasttext olyan funkciókhoz ajánlott, amelyek a fastText által támogatott öt nyelv közül csak egyet használnak (angol, kínai, hindi, spanyol és francia). Az text_fasttext módszer opcionálisan veheti a max_length mező, amely megadja a kódolt szövegtulajdonság értékében lévő tokenek maximális számát, amely után a karakterlánc csonkolásra kerül. A jelzőt szónak tekintheti. Ez javíthatja a teljesítményt, ha a szövegtulajdonságok értékei hosszú karakterláncokat tartalmaznak, mert ha max_length nincs megadva, a fastText az összes tokent kódolja, függetlenül a karakterlánc hosszától.
  • text_sbert (új) – A BERT mondatot használja (SBERT) kódolási módszer. A SBERT egyfajta mondatbeágyazási módszer, amely a kontextuális reprezentációs tanulási modelleket, a BERT-Networks-t használja. text_sbert akkor ajánlott, ha a nyelvet nem támogatja text_fasttext. A Neptune két SBERT módszert támogat: text_sbert128, ami az alapértelmezett, ha csak megadja text_sbertés text_sbert512. A különbség köztük a kódolt szövegtulajdonságban található tokenek maximális száma. Az text_sbert128 A kódolás csak az első 128 tokent kódolja, míg text_sbert512 legfeljebb 512 tokent kódol. Ennek eredményeként a felhasználás text_sbert512 több feldolgozási időt igényelhet, mint text_sbert128. Mindkét módszer lassabb, mint text_fasttext.
  • text_word2vec - Használ Word2Vec eredetileg a Google által szövegkódolásra kiadott algoritmusok. A Word2Vec csak az angol nyelvet támogatja.
  • text_tfidf – Gyakoriság-inverz dokumentumgyakoriság kifejezést használ (TF-IDF) vektoros szöveg kódolásához. A TF-IDF kódolás olyan statisztikai jellemzőket támogat, amelyeket a többi kódolás nem. Számszerűsíti a szavak fontosságát vagy relevanciáját egy csomópont tulajdonságban az összes többi csomópont között.

Ne feledje, hogy text_word2vec és a text_tfidf korábban támogatottak és az új módszerek text_fasttext és a text_sbert ajánlottak a régi módszerekkel szemben.

Különböző szövegkódolók összehasonlítása

Az alábbi táblázat az összes támogatott szövegkódolási opció részletes összehasonlítását mutatja (text_fasttext, text_sbertés text_word2vec). text_tfidf nem egy modell alapú kódolási módszer, hanem egy számláláson alapuló mérőszám, amely kiértékeli, hogy egy token (például egy szó) mennyire releváns a többi csomópontban vagy élben lévő szövegjellemzők szempontjából, ezért nem vesszük figyelembe. text_tfidf Összehasonlításképp. Javasoljuk a használatát text_tfidf amikor számszerűsíteni szeretné egyes szavak fontosságát vagy relevanciáját az egyik csomópontban vagy éltulajdonságban az összes többi csomópont vagy éltulajdonság között.)

. . text_fasttext text_sbert text_word2vec
Modellképesség Támogatott nyelv Angol, kínai, hindi, spanyol és francia Több mint 50 nyelv Angol
Képes olyan szövegtulajdonságokat kódolni, amelyek különböző nyelvű szavakat tartalmaznak Nem Igen Nem
Maximális támaszték Nincs maximális hosszkorlát A szövegsorozatot 128 és 512 maximális hosszúsággal kódolja Nincs maximális hosszkorlát
Időköltség Rakodás Körülbelül 10 másodperc Körülbelül 2 másodperc Körülbelül 2 másodperc
Következtetés Gyors Lassíts közepes

Vegye figyelembe a következő használati tippeket:

  • Az angol, kínai, hindi, spanyol és francia nyelvű szövegtulajdonságok értékéhez text_fasttext az ajánlott kódolás. Azonban nem tudja kezelni azokat az eseteket, amikor ugyanaz a mondat több nyelven is tartalmaz szavakat. Más nyelvek esetében, mint az öt fastText támogatja, használja text_sbert kódoló.
  • Ha sok, például 120 tokennél hosszabb tulajdonságérték szöveges karakterlánca van, használja a max_length mezőben korlátozza a tokenek számát az egyes karakterláncokban text_fasttext kódol.

Összefoglalva, a használati esettől függően a következő kódolási módszert javasoljuk:

  • Ha a szövegtulajdonságok az öt támogatott nyelv valamelyikén vannak, javasoljuk a használatát text_fasttext gyors következtetése miatt. text_fasttext az ajánlott választás, és Ön is használhatja text_sbert a következő két kivételben.
  • Ha a szövegtulajdonságok különböző nyelveken vannak, javasoljuk a használatát text_sbert mert ez az egyetlen támogatott módszer, amely több különböző nyelvű szavakat tartalmazó szövegtulajdonságokat képes kódolni.
  • Ha a szövegtulajdonságok egy olyan nyelven találhatók, amely nem az öt támogatott nyelv egyike, javasoljuk a használatát text_sbert mert több mint 50 nyelvet támogat.
  • Ha a szövegtulajdonságok átlagos hossza meghaladja a 128-at, fontolja meg a használatát text_sbert512 or text_fasttext. Mindkét módszer használhat hosszabb szövegsorozatok kódolását.
  • Ha a szövegtulajdonságok csak angol nyelvűek, használhatja text_word2vec, de javasoljuk a használatát text_fasttext gyors következtetéséhez.

Használati eset bemutató: Állásajánló feladat

Az állásajánló feladat célja annak előrejelzése, hogy a felhasználók milyen állásokra jelentkeznek korábbi jelentkezéseik, demográfiai adataik és munkatörténetük alapján. Ez a bejegyzés használja nyitott Kaggle adatkészlet. Az adatkészletet három csomópontos gráfként hozzuk létre: munka, használóés város.

A munkakört a cím, a leírás, a követelmények, a város és az állam jellemzi. A felhasználó leírása a szak, a diploma típusa, a szakmai előzmények száma, a munkatapasztalat teljes éveinek száma stb. Ebben a felhasználási esetben a munkakör megnevezése, a munkakör leírása, a munkaköri követelmények és a szakok mind szöveges formában vannak megadva.

Az adatkészletben a felhasználók a következő tulajdonságokkal rendelkeznek:

  • Állami – Például CA vagy 广东省 (kínai)
  • Fontos – Például humánerőforrás menedzsment vagy Lic Cytura Fisica (spanyol)
  • DegreeType – Például Bachelor's, Master's, PhD vagy Nincs
  • WorkHistoryCount – Például 0, 1, 16 és így tovább
  • TotalYears Experience – Például 0.0, 10.0 vagy NAN

A munkák a következő tulajdonságokkal rendelkeznek:

  • Cím – Például adminisztratív asszisztens vagy Lic Cultura Física (spanyol).
  • Leírás – Például: „Ez az adminisztratív asszisztens pozíció különféle irodai és adminisztratív támogatási feladatok ellátásáért felel a kommunikáció területén…” A leírásban szereplő szavak átlagos száma körülbelül 192.2.
  • követelmények – Például: „ÁLLÁSKÖVETELMÉNYEK: 1. Odafigyelés a részletekre; 2. Gyors tempójú környezetben való munkavégzés képessége; 3.Számlázás…”
  • Állami: – Például CA, NY és így tovább.

A csomópont típusa város Washington DC-hez és Orlando FL-hez hasonlóan csak az egyes csomópontok azonosítója van. A következő részben a különböző szövegjellemzők jellemzőit elemezzük, és bemutatjuk, hogyan válasszuk ki a megfelelő szövegkódolókat a különböző szövegtulajdonságokhoz.

Különböző szövegkódolók kiválasztása

Példánkra a Fontos és a Cím A tulajdonságok több nyelven vannak, és rövid szövegsorozattal rendelkeznek, így text_sbert ajánlott. A mintakód a export paraméterek az alábbiak. A text_sbert típus, nincs más paramétermező. Itt választunk text_sbert128 más, mint text_sbert512, mert a szöveg hossza viszonylag rövidebb, mint 128.

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

A Leírás és a követelmények A tulajdonságok általában hosszú szövegsorozatokban vannak. A leírás átlagos hossza körülbelül 192 szó, ami hosszabb, mint a maximális bemeneti hossz text_sbert (128). Tudjuk használni text_sbert512, de ez lassabb következtetést eredményezhet. Ezenkívül a szöveg egyetlen nyelven (angol) van. Ezért javasoljuk text_fasttext a ... val en nyelvi értéke gyors következtetése és nem korlátozott bemeneti hossza miatt. A mintakód a export paraméterek az alábbiak. Az text_fasttext segítségével testreszabható a kódolás nyelv és a max_length Az language értékre van szükség, de max_length opcionális.

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

Az állásajánlás felhasználási eseteiről további részletek a Neptune notebook oktatóanyag.

Demonstrációs célból kiválasztunk egy felhasználót, azaz a 443931-es felhasználót, aki mesterfokozattal rendelkezik „Menedzsment és humánerőforrás” szakon. A felhasználó öt különböző állásra jelentkezett, „Humánerőforrás-menedzser”, „HR-generális”, „Humánerőforrás-menedzser”, „Humánerőforrás-adminisztrátor” és „Senior Payroll Specialist”. Az ajánlási feladat teljesítményének értékelése érdekében töröljük a felhasználó jelentkezett munkáinak (a széleinek) 50%-át (itt töröljük a „Humánerőforrás-adminisztrátor” és a „Humánerőforrás-menedzser”), és megpróbáljuk megjósolni a csúcsot. 10 állás, amelyre ez a felhasználó a legnagyobb valószínűséggel jelentkezik.

A feladat jellemzőinek és felhasználói jellemzőinek kódolása után egy linkelőrejelzési feladatot hajtunk végre egy relációs gráf konvolúciós hálózat (RGCN) modell betanításával. A Neptune ML modell betanítása három lépést igényel: adatfeldolgozás, modell betanítás és végpont létrehozása. A következtetési végpont létrehozása után javaslatokat tehetünk a 443931 felhasználó számára. A 10 felhasználó számára (azaz „HR Generalist”, „Human Resources (HR) Manager”, „Senior Payroll Specialist”, „Human”) a 443931 legjobb állás közül. Erőforrás-adminisztrátor”, „HR Analyst” et al.), megfigyeljük, hogy a két törölt munka a 10 előrejelzés között szerepel.

Következtetés

Ebben a bejegyzésben bemutattuk az újonnan támogatott szövegkódolók használatát a Neptune ML-ben. Ezek a szövegkódolók egyszerűen használhatók, és többféle követelményt is támogathatnak. Összefoglalva,

  • A text_fasttext olyan szolgáltatásokhoz ajánlott, amelyek a text_fasttext által támogatott öt nyelv közül csak egyet használnak.
  • A text_sbert a text_fasttext által nem támogatott szövegekhez ajánlott.
  • A text_word2vec csak az angol nyelvet támogatja, és bármilyen forgatókönyv esetén helyettesíthető a text_fasttext szöveggel.

A megoldással kapcsolatos további részletekért lásd a GitHub repo. Javasoljuk, hogy a szövegkódolókat használja a grafikon adataihoz, hogy megfeleljen az Ön igényeinek. Csak kiválaszthat egy kódolónevet, és beállíthat néhány kódolóattribútumot, miközben a GNN-modell változatlan marad.


A szerzőkről

Kódolja a többnyelvű szövegtulajdonságokat az Amazon Neptune-ban a PlatoBlockchain Data Intelligence prediktív modellek betanításához. Függőleges keresés. Ai.Jiani Zhang az AWS AI Research and Education (AIRE) alkalmazott tudósa. Valós alkalmazások megoldásán dolgozik gépi tanulási algoritmusok segítségével, különös tekintettel a természetes nyelvvel és gráfokkal kapcsolatos problémákra.

Időbélyeg:

Még több AWS gépi tanulás