Megosztás a következőn keresztül:


Széles és mély ajánló betanítása

Ez a cikk bemutatja, hogyan taníthat be javaslatmodellt az Azure Machine Tanulás tervezőjében a Széles és mély ajánló betanítása összetevővel. Ez az összetevő a Széles és mély tanuláson alapul, amelyet a Google javasol.

A Széles és mély ajánló betanítása összetevő beolvassa a felhasználó-elem minősítési háromszorosát, és opcionálisan néhány felhasználó- és elemfunkciót. Egy betanított Wide > Deep-ajánlót ad vissza. Ezután a betanított modell használatával minősítési előrejelzéseket vagy javaslatokat hozhat létre a Score Wide és a Deep Recommender összetevő használatával.

További információ a javaslatmodellekről és a Széles és mély ajánlóról

A javaslati rendszer fő célja egy vagy több elem ajánlása a rendszer felhasználóinak. Ilyen lehet például egy film, étterem, könyv vagy dal. A felhasználó lehet személy, személycsoport vagy más, elembeállításokkal rendelkező entitás.

A rendszerek ajánlásának két fő megközelítése van.

  • Az első a tartalomalapú megközelítés, amely a felhasználók és az elemek funkcióit is használja. A felhasználókat olyan tulajdonságok írják le, mint az életkor és a nem, az elemeket pedig olyan tulajdonságok írják le, mint a szerző és a gyártó. A tartalomalapú javaslati rendszerek tipikus példái a közösségi egyeztetési webhelyeken találhatók.
  • A második megközelítés az együttműködésen alapuló szűrés, amely csak a felhasználók és az elemek azonosítóit használja, és implicit információkat szerez be ezekről az entitásokról a felhasználók által az elemekre adott minősítések (ritka) mátrixából. A felhasználókat az általuk értékelt elemekből és más felhasználókból ismerhetjük meg, akik ugyanazokat az elemeket értékelték.

A Széles és mély ajánló ezeket a megközelítéseket kombinálja az együttműködésen alapuló szűrés és a tartalomalapú megközelítés használatával. Ezért hibrid ajánlónak minősül.

Hogyan működik ez: Ha egy felhasználó viszonylag új a rendszerben, az előrejelzések javulnak a felhasználóval kapcsolatos funkcióinformációk felhasználásával, így megoldva a jól ismert "hidegindítás" problémát. Ha azonban elegendő számú minősítést gyűjtött össze egy adott felhasználótól, teljes mértékben személyre szabott előrejelzéseket lehet készíteni számukra az adott értékelések alapján, nem pedig a saját szolgáltatásaik alapján. Ezért zökkenőmentes átmenetet biztosít a tartalomalapú javaslatokról az együttműködésen alapuló szűrésen alapuló javaslatokra. Még ha a felhasználói vagy elemfunkciók nem is érhetők el, a Wide > Deep recommender továbbra is működik az együttműködésen alapuló szűrési módban.

A Wide & Deep ajánlóról és a mögöttes valószínűségi algoritmusról a vonatkozó kutatási tanulmányban talál további részleteket: Wide &Tanulás for Recommender Systems.

A Train Wide és a Deep Recommender konfigurálása

Adatok előkészítése

Mielőtt megpróbálná használni az összetevőt, győződjön meg arról, hogy az adatok a javaslati modell elvárt formátumában lesznek. A felhasználó-elem minősítési háromszoros betanítási adatkészletre van szükség, de a felhasználói funkciókat és az elemek funkcióit (ha van ilyen) külön adathalmazokban is megadhatja.

Felhasználó-elem minősítések kötelező adathalmaza

A betanításhoz használt bemeneti adatoknak a megfelelő adattípust kell tartalmazniuk a megfelelő formátumban:

  • Az első oszlopnak felhasználói azonosítókat kell tartalmaznia.
  • A második oszlopnak elemazonosítókat kell tartalmaznia.
  • A harmadik oszlop a felhasználó-elem pár minősítését tartalmazza. A minősítési értékeknek numerikus típusnak kell lenniük.

Például a felhasználói elemek minősítésének egy tipikus halmaza a következőképpen nézhet ki:

UserId MovieId Minősítés
1 68646 10
223 31381 10

Felhasználói funkciók adatkészlete (nem kötelező)

A felhasználói funkciók adatkészletének tartalmaznia kell a felhasználók azonosítóit, és ugyanazokat az azonosítókat kell használnia, mint amelyeket a user-items-ratings adatkészlet első oszlopában adtak meg. A fennmaradó oszlopok tetszőleges számú, a felhasználókat leíró funkciót tartalmazhatnak.

Például a felhasználói funkciók egy tipikus halmaza a következőképpen nézhet ki:

UserId Kor Nem Érdeke Hely
1 25 male Dráma Európa
223 40 female Romantika Ázsia

Elemfunkciók adatkészlete (nem kötelező)

Az elemfunkciók adathalmazának tartalmaznia kell az első oszlopban található elemazonosítókat. A fennmaradó oszlopok tetszőleges számú leíró funkciót tartalmazhatnak az elemekhez.

Például az elemfunkciók egy tipikus halmaza a következőképpen nézhet ki:

MovieId Cím Eredeti nyelv Műfajok Év
68646 A keresztapa Angol Dráma 1972
31381 Elfújta a szél Angol Előzmények 1939

A modell betanítása

  1. Adja hozzá a Train Wide és Deep Recommender összetevőt a kísérlethez a tervezőben, és csatlakoztassa a betanítási adatkészlethez.

  2. Ha külön adatkészlete van a felhasználói funkciókról és/vagy az elemfunkciókról, csatlakoztassa őket a Széles és a Mély ajánló összetevőhöz.

    • Felhasználói funkciók adatkészlete: Csatlakozás a felhasználókat leíró adatkészletet a második bemenetre.
    • Az elem jellemzőinek adathalmaza: Csatlakozás a harmadik bemenethez tartozó elemeket leíró adatkészletet.
  3. Korszakok: azt jelzi, hogy az algoritmusnak hányszor kell feldolgoznia a teljes betanítási adatokat.

    Minél magasabb ez a szám, annál megfelelőbb a képzés; azonban a betanítás több időbe kerül, és túlillesztést okozhat.

  4. Kötegelt méret: írja be az egy betanítási lépésben használt betanítási példák számát.

    Ez a hiperparaméter befolyásolhatja a betanítási sebességet. A nagyobb kötegméret kisebb időköltséget eredményez, de növelheti a konvergenciát. Ha a köteg túl nagy a GPU/CPU illesztéséhez, memóriahiba léphet fel.

  5. Széles részoptimalizáló: válasszon ki egy optimalizálót, hogy színátmeneteket alkalmazzon a modell széles részére.

  6. Széles körű optimalizáló tanulási sebesség: adjon meg egy 0,0 és 2,0 közötti számot, amely meghatározza a széles részoptimalizáló tanulási sebességét.

    Ez a hiperparaméter határozza meg az egyes betanítási lépések lépésméretét, miközben a minimális veszteségfüggvény felé halad. A nagy tanulási arány miatt a tanulás átugorhat a minimumon, míg a túl alacsony tanulási arány konvergenciaproblémát okozhat.

  7. Többfunkciós dimenzió: írja be a dimenziót a kívánt felhasználói azonosítók és elemazonosító-funkciók megadásával.

    A Széles és mély ajánló alapértelmezés szerint termékközi átalakítást hajt végre a felhasználói azonosító és az elemazonosító funkciói felett. A keresztezés eredménye ennek a számnak megfelelően kivonatolt lesz a dimenzió biztosítása érdekében.

  8. Mélyrész-optimalizáló: válasszon ki egy optimalizálót, hogy színátmeneteket alkalmazzon a modell mély részére.

  9. Mélyoptimalizáló tanulási sebesség: adjon meg egy 0,0 és 2,0 közötti számot, amely meghatározza a mélyrész-optimalizáló tanulási sebességét.

  10. Felhasználói beágyazási dimenzió: írjon be egy egész számot a felhasználói azonosító beágyazásának dimenziójának megadásához.

    A Széles és mély ajánló létrehozza a megosztott felhasználói azonosító beágyazásokat és elemazonosító-beágyazásokat a széles és a mély részhez is.

  11. Elembeágyazási dimenzió: írjon be egy egész számot az elemazonosító beágyazásának dimenziójának megadásához.

  12. Kategorikus funkciók beágyazási dimenziója: adjon meg egy egész számot a kategorikus funkciók beágyazásának dimenzióinak megadásához.

    A Wide > Deep recommender mély összetevőjében minden kategorikus funkcióhoz egy beágyazási vektort ismerünk meg. És ezek a beágyazási vektorok ugyanazzal a dimenzióval vannak elosztva.

  13. Rejtett egységek: írja be a mély összetevő rejtett csomópontjainak számát. Az egyes rétegek csomópontszámát vesszők választják el egymástól. Például az "1000 500 100" típussal megadhatja, hogy a mély összetevő három rétegből áll, és az első réteg az utolsóhoz 1000 csomóponttal, 500 csomóponttal és 100 csomóponttal rendelkezik.

  14. Aktiválási függvény: válassza ki az egyes rétegekre alkalmazott aktiválási függvényt, az alapértelmezett reLU.

  15. Legördülő lista: Adjon meg egy 0,0 és 1,0 közötti számot annak megállapításához, hogy a kimenetek az egyes rétegekben a betanítás során el lesznek dobva.

    A dropout egy olyan rendszeresítési módszer, amely megakadályozza a neurális hálózatok túlillesztését. Ennek az értéknek az egyik gyakori döntése a 0,5-ös érték, amely úgy tűnik, hogy a hálózatok és feladatok széles köréhez közel áll az optimálishoz.

  16. Kötegelt normalizálás: válassza ezt a beállítást a kötegelt normalizálás használatához a mély összetevő minden rejtett rétege után.

    A batch normalizálás a hálózati betanítás során a belső kovarianitális műszakokkal kapcsolatos problémák elleni küzdelem egyik technikája. Általánosságban elmondható, hogy segíthet a hálózatok sebességének, teljesítményének és stabilitásának javításában.

  17. A folyamat futtatása.

Technikai megjegyzések

A Wide & Deep közösen edz széles lineáris modelleket és mély neurális hálózatokat a memorizálás és az általánosítás erősségeinek kombinálásához. A széles összetevő számos nyers funkciót és funkcióátalakítást fogad el a funkciók interakcióinak memorizálásához. A kevesebb funkciós tervezés mellett a mély összetevő általánosítja a funkciókombinációk kisdimenziós sűrű funkcióbeágyazásokon keresztül történő feloldását.

A Wide > Deep recommender implementációjában az összetevő egy alapértelmezett modellstruktúrát használ. A széles összetevő bemenetként kezeli a felhasználói beágyazásokat, az elemek beágyazását, valamint a felhasználói azonosítók és elemazonosítók termékközi átalakítását. A modell mély részében egy beágyazási vektort ismerünk meg minden kategorikus funkcióhoz. A többi numerikus jellemzővektorral együtt ezeket a vektorokat a rendszer betáplálja a mély előtolású neurális hálózatba. A széles és a mély részt kombinálja a végső kimeneti naplók esélyeinek összegzésével előrejelzésként, amely végül egy közös betanítási veszteségfüggvényre kerül.

További lépések

Tekintse meg az Azure Machine Tanulás elérhető összetevőit.