Matchbox-ajánló betanítás

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

Bayes-ajánló beoktat egy Matchbox-algoritmussal

Kategória: Machine Learning / Betanítás

Megjegyzés

A következőkre vonatkozik: Machine Learning Studio (klasszikus)

Hasonló húzással használható modulok érhetők el Azure Machine Learning tervezőben.

A modul áttekintése

Ez a cikk azt ismerteti, hogyan használható a Matchbox Recommender betanítás modul a Machine Learning Studio (klasszikus) modulja javaslatmodell betanítására.

A microsoftos Machine Learning a Microsoft Research által fejlesztett Matchbox-modellen alapul. Az algoritmust részletesen leíró tanulmány letöltéséhez kattintson erre a hivatkozásra a Microsoft Research webhelyén.

A Matchbox Ajánló betanítása modul három tripla felhasználó-elem minősítésű adatkészletet, és opcionálisan néhány felhasználó- és elem-jellemzőt olvas be. Visszaad egy betanított Matchbox-ajánló. Ezután a Betanított modell használatával javaslatokat hozhat létre, kapcsolódó felhasználókat vagy kapcsolódó elemeket találhat a Matchbox Ajánló pontozása modullal .

Tipp

Ebben az oktatóanyagban a .NET fejlesztői csapattól megtudhatja, mit kell tudni a javaslati rendszerek teljes fejlesztési élményével kapcsolatban. Mintakódot és az alkalmazásból Machine Learning hívásának a megbeszélését tartalmazza.

Javaslati motor kiépítése .NET-alkalmazásokhoz a Machine Learning

További információ a javaslati modellekről és a Matchbox ajánlóról

Az ajánlási rendszer fő célja egy vagy több elem ajánlása a rendszer felhasználói számára. Egy elem lehet például egy film, egy étterem, egy könyv vagy egy dal. A felhasználó lehet személy, személycsoport vagy más, elem preferenciával megadott entitás.

Az ajánló rendszereknek két fő megközelítése van.

  • Az első a tartalomalapú megközelítés, amely a felhasználók és elemek funkcióit is használja. A felhasználókat olyan tulajdonságokkal lehet leírni, mint az életkor és a nem, az elemek pedig olyan tulajdonságokkal, mint a szerző és a gyártó. A tartalomalapú javaslati rendszerekre jellemző példák a közösségi oldalakon 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 elemeknek adott értékelések (ritka) mátrixában. A felhasználókat megismerheti a minősítésükből, valamint az olyan felhasználóktól, akik ugyanazt az elemet értékelték.

A Matchbox 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 számít.

Ennek működése: Ha egy felhasználó viszonylag új a rendszerben, az előrejelzések úgy javulnak, hogy a felhasználóra vonatkozó funkcióinformációkat használják, így megoldják a jól ismert "hideg indítás" problémáját. Ha azonban elegendő számú minősítést gyűjtött egy adott felhasználótól, akkor teljes mértékben személyre szabott előrejelzéseket is lehet tenni számukra az adott értékelések alapján, nem csak a jellemzőik alapján. Így zökkenőmentesen, együttműködésen alapuló szűrésen alapuló javaslatokra lehet áttűnni a tartalomalapú javaslatokról. A Matchbox akkor is működni fog az együttműködésen alapuló szűrési módban, ha a felhasználó vagy az elem funkciói nem érhetők el.

A Matchbox ajánlóját és mögöttes valószínűségi algoritmusát a Matchbox: Large Scale Bayes-Javaslatok Javaslatok. Emellett a Machine Learning Blog tartalmaz egy Javaslatok Everywhere című cikket, amely magas szintű bevezetést nyújt a javaslattitkos algoritmusokbe.

A Matchbox ajánló betanításának konfigurálása

Adatok előkészítése

A modul használata előtt fontos, hogy az adatok a javaslatmodell által várt formátumban legyen. Szükség van egy betanításos adathalmazra, amely felhasználóelem-minősítési triplát tartalmaz, de a felhasználói funkciókat és az elemszolgáltatásokat (ha elérhető) külön adatkészletekbe is foglalhatja.

Ha a forrásadatokat betanító és tesztelési adatkészletre osztja, használja az Adatok felosztása modul Ajánlófelosztása beállítását.

A felhasználói elemek minősítésének kötelező adatkészlete

Nagyon fontos, hogy a betanításhoz használt bemeneti adatok a megfelelő típusú adatokat tartalmazzák 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. Az értékelési értékeknek numerikusnak vagy kategorikusnak kell lennie.

A betanítás során az értékelés értéke nem lehet azonos. Továbbá numerikus érték esetén a minimális és a maximális értékelés közötti különbségnek 100-asnál kisebbnek kell lennie, és ideális esetben nem lehet nagyobb 20-ban.

A Machine Learning Studio (klasszikus) Restaurant ratings adatkészlete (kattintson a Mentett adatkészletek, majd a Minták elemre) mutatja a várt formátumot:

userID placeID (helyazonosító) rating
U1077 135085 2
U1077 135038 2

Ebből a mintából láthatja, hogy egyetlen felhasználó minősített két különböző éttermeket.

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 a users-items-ratings adatkészlet első oszlopában megadott azonosítókat kell használnia. A fennmaradó oszlopok a felhasználókat leíró bármilyen számú funkciót tartalmazhatnak.

Példaként tekintse meg a Restaurant customer (Éttermi ügyfelek) adatkészletet a Machine Learning Studióban (klasszikus). A felhasználói funkciók egy tipikus készlete a következő:

userID Környezetben Dress_preference Közlekedési Dohányos
U1004 family Informális Élőben HAMIS
U1005 barátok Nincs preferencia Autótulajdonos IGAZ

Elem funkcióinak adatkészlete (nem kötelező)

Az elem jellemzők adatkészletének az első oszlopában elemazonosítókat kell tartalmaznia. A fennmaradó oszlopok az elemek bármilyen számú leíró jellemzőt tartalmazhatnak.

Példaként tekintse meg a Machine Learning Studio (klasszikus) által biztosított Restaurant feature (Éttermi szolgáltatások) adatkészletet (kattintson a Saved Datasets (Mentett adatkészletek), majd a Samples (Minták) elemre). A jellemző elemjellemzők (ebben az esetben az elem egy étterem) a következőhöz hasonlók lehetnek:

placeID (helyazonosító) Alkohol Smoking_area price Rambience (Memória)
135106 Wine-Beer Nincs Alacsony family
132667 No_Alcohol_Served Megengedett közepes Alkalmi

A modell betanítása

  1. Adja hozzá a Train Matchbox Recommender (Matchbox ajánló betanítása) modult a (klasszikus) Studióban található kísérlethez, és csatlakoztassa a betanítás adataihoz.

  2. Ha a felhasználói funkciók és/vagy az elem funkcióinak külön adatkészlete van, csatlakoztassa őket a Matchbox Recommender betanítása modulhoz .

    • A felhasználó által funkciók adatkészlete: Csatlakozás második bemenetet a felhasználókat leíró adatkészletet.

    • Elem jellemzők adatkészlete: Csatlakozás a harmadik bemenethez elemeket leíró adatkészletet.

  3. A Number of training batchs (Betanítás kötegek száma) mezőbe írja be az adatok betanítás során való osztásaként szükséges kötegek számát.

    Ennek az értéknek az alapján a felhasználó által értékelt három pont adatkészlete több részre vagy kötegre van osztva a betanítás során.

    Mivel a Matchbox Ajánló betanítása párhuzamosan futtat kötegeket, javasoljuk, hogy a betanító kötegek számát állítsa a rendelkezésre álló magok számára, ha a teljes betanításadat belefér a memóriába. Ellenkező esetben a betanító kötegek számát a rendelkezésre álló magok azon számának legalacsonyabb többszörösére kell beállítani, amelyekhez a betanítás adatai beleférnek a memóriába.

    Alapértelmezés szerint a betanítás adatai négy (4) kötegre vannak felosztva. A rendszer csak a felhasználóelem-minősítések háromszoros adatkészletét osztja fel. A felhasználói vagy elemi funkciók nem oszthatóak fel, mert a funkciókat nem kell felosztani.

  4. A Jellemzők száma mezőbe írja be az egyes felhasználókra és elemekre vonatkozó rejtett jellemzők számát.

    Minél nagyobb a jellemzők száma, annál pontosabbak lesznek az előrejelzések; A betanítás azonban lassabb lesz. A jellemzők száma általában a 2 és 20 tartományba esik.

  5. A Number of recommendation algorithm iterations (Javaslati algoritmus iterációk száma) mezőben adja meg, hogy az algoritmusnak hányszor kell feldolgoznia a bemeneti adatokat.

    A Matchbox ajánló egy üzenetátmeneti algoritmussal van betanítva, amely többször is képes iterálni a bemeneti adatokon. Minél nagyobb ez a szám, annál pontosabbak az előrejelzések; A betanítás azonban lassabb. Az iterációk száma általában az 1 és 10 tartományba esik.

  6. Futtassa a kísérletet, vagy válassza ki csak a Matchbox ajánló betanítás modulját, és válassza a Futtatás kiválasztva lehetőséget.

Példák

A javaslatok modelljeinek a Machine Learning a következő mintakísérleteket a Azure AI Gallery:

  • Filmajátító minta: Bemutatja, hogyan lehet betanítni, kiértékelni és pontozást egy javaslati modellel.

Technikai megjegyzések

Ez a szakasz az implementáció részleteit, a tippeket és a gyakori kérdésekre adott válaszokat tartalmazza.

Használati tippek

  • Ha egy jellemzőoszlopból hiányoznak értékek, a hiányzó értékek helyett a rendszer a nem hiányzó értékek módját használja.

  • A rendszer minden felhasználói és elemi jellemzőt átméretez az egységhosszúság érdekében, hogy maximális abszolút értéke 1 legyen. A rendszer nem alkalmaz fordítást a jellemzőértékekre, hogy fenntartsa a ritkaságukat.

Korlátozások

A javaslati modell online frissítése (vagy folyamatos betanítás) jelenleg nem támogatott a Machine Learning. Ha rögzíteni szeretné a javaslatokra adott felhasználói válaszokat, és ezeket a modell javítására szeretné használni, javasoljuk, hogy rendszeresen képezheti újra a teljes modellt. Növekményes betanítás nem lehetséges, de csúszóablakot is alkalmazhat a betanítás adataira, hogy a legújabb adatok használata közben minimalizálja az adatmennyiséget.

Ajánló memóriahasználat becslése

Jelenleg a Matchbox 16 * N\(4\T + 2\R) memóriaigényének alsó határa bájt, ahol N a betanítás adatkészletében lévő felhasználóelem-minősítési triplák számát, a T értéket a rejtett jellemzők számára, az R pedig a minimális és maximális értékelés közötti különbséget jelenti (a betanítás adatkészletében).

A szerializált Matchbox-ajánló 16 * T\(U\R + I + X + Y) modell mérete körülbelül bájt, ahol az U a felhasználók számát, az I az elemek számát, az X a felhasználói funkciók számát, az Y pedig az elemi funkciók számát jelenti.

Várt bemenetek

Név Típus Description
A felhasználó-elem-értékelés háromszoros betanítás adatkészlete Adattábla Elemek értékelése felhasználók szerint, háromszorosan kifejezve (Felhasználó, Elem, Értékelés)
A felhasználói funkciók betanítása Adattábla Felhasználókat leíró szolgáltatásokat tartalmazó adatkészlet (nem kötelező)
Elem funkcióinak betanítása Adattábla Elemeket leíró funkciókat tartalmazó adatkészlet (nem kötelező)

Modulparaméterek

Name Tartomány Típus Alapértelmezett Description
Jellemzők száma >=0 Egész szám 10 Adja meg az ajánlóval használni kívánt jellemzők számát (nem kötelező)
Javaslati algoritmus iterációinak száma >=1 Egész szám 5 Adja meg a javaslatmodell betanítás során végrehajtani kívánt iterációk maximális számát (nem kötelező)
Betanítás kötegek száma >=1 Egész szám 4 Adja meg az ajánlóval használni kívánt betanító kötegek számát (nem kötelező)

Kimenetek

Név Típus Description
Betanított Matchbox-ajánló ILearner interfész Betanított Matchbox-ajánló

Kivételek

Kivétel Description
0022-es hiba Kivétel akkor fordul elő, ha a bemeneti adatkészlet kiválasztott oszlopainak száma nem egyenlő a várt számmal.
0036-os hiba Kivétel akkor fordul elő, ha egy adott felhasználóhoz vagy elemhez több jellemzővektor is meg van adva.
0018-as hiba Kivétel akkor fordul elő, ha a bemeneti adatkészlet érvénytelen.
0035-ös hiba Kivétel akkor fordul elő, ha nem biztosítanak szolgáltatásokat egy adott felhasználóhoz vagy elemhez.
0034-es hiba Kivétel akkor fordul elő, ha egy adott felhasználó-elem párhoz több értékelés is létezik.
0053-as hiba Kivétel akkor fordul elő, ha nincsenek felhasználói funkciók vagy elemek a Matchbox-javaslatokhoz.
0003-as hiba Kivétel akkor fordul elő, ha egy vagy több bemenet null vagy üres.

A Studio (klasszikus) moduljaival kapcsolatos hibák listájáért tekintse meg a Machine Learning hibakódokat.

Az API-kivételek listáját a hibakódok Machine Learning REST API.

Lásd még

Modell kereszt-ellenőrzése
Ajánló értékelése
Betanítás
Matchbox Ajánló pontozása