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


Környezet és műveletek

Fontos

2023. szeptember 20-tól nem hozhat létre új Personalizer-erőforrásokat. A Personalizer szolgáltatás 2026. október 1-jén megszűnik.

A Personalizer úgy működik, hogy megtanulja, mit kell megjelenítenie az alkalmazásnak a felhasználók számára egy adott környezetben. A környezet és a műveletek a Két legfontosabb információ, amelyet átad a Personalizernek. A környezet az aktuális felhasználóval vagy a rendszer állapotával kapcsolatos információkat jelöli, a műveletek pedig a választható lehetőségek.

Környezet

A környezet információi az egyes alkalmazásoktól és használati esetektől függenek, de általában tartalmazhatnak olyan információkat, mint például:

  • A felhasználó demográfiai és profiladatai.
  • HTTP-fejlécekből, például felhasználói ügynökből kinyert vagy HTTP-információkból, például ip-címeken alapuló fordított földrajzi keresésekből kinyert információk.
  • Információk az aktuális időpontról, például a hét napjáról, hétvégéről vagy nem, reggelről vagy délutánról, ünnepi szezonról vagy nem, stb.
  • Mobilalkalmazásokból kinyert információk, például hely, mozgás vagy akkumulátor töltöttségi szint.
  • A felhasználók viselkedésének korábbi összesítései – például azok a filmes műfajok, amelyeket a felhasználó a legjobban megtekintett.
  • A rendszer állapotával kapcsolatos információk.

Az alkalmazás feladata a környezettel kapcsolatos információk betöltése a megfelelő adatbázisokból, érzékelőkből és rendszerekből. Ha a környezeti adatok nem változnak, hozzáadhat logikát az alkalmazásban az információk gyorsítótárazásához, mielőtt elküldené azokat a Rank API-nak.

Műveletek

A műveletek a lehetőségek listáját jelölik.

Rangsorolási műveletek esetén ne küldjön 50-nél több műveletet. Lehet, hogy minden alkalommal ugyanaz az 50 művelet, vagy változhatnak. Ha például egy e-kereskedelmi alkalmazás 10 000 elemből álló termékkatalógusával rendelkezik, javaslatot vagy szűrőmotort használhat annak meghatározására, hogy melyik 40-et szeretné az ügyfél, és a Personalizer használatával keresse meg azt, amelyik a jelenlegi környezetben a legjobb jutalmat hozza létre.

Példák műveletekre

A Rank API-nak küldött műveletek attól függenek, hogy mit próbál személyre szabni.

Íme néhány példa:

Cél Művelet
Személyre szabhatja, hogy melyik cikk van kiemelve egy hírweboldalon. Minden művelet egy lehetséges hírcikk.
Webhely hirdetéselhelyezésének optimalizálása. Minden művelet egy elrendezés vagy szabály lesz, amely elrendezést hoz létre a hirdetésekhez (például felül, a jobb oldalon kis képeket, nagyméretű képeket).
A javasolt elemek személyre szabott rangsorolásának megjelenítése egy vásárlási webhelyen. Minden művelet egy adott termék.
Javasoljon felhasználói felületi elemeket, például szűrőket, amelyek egy adott fényképre vonatkoznak. Előfordulhat, hogy minden művelet más szűrő.
Válassza ki a csevegőrobot válaszát a felhasználói szándék tisztázásához, vagy javasoljon egy műveletet. Minden művelet lehetőséget ad a válasz értelmezésére.
Válassza ki, hogy mit jelenítsen meg a keresési eredmények listájának tetején Minden művelet a keresési eredmények közül az egyik.

Műveletek betöltése az ügyfélalkalmazásból

A műveletek funkciói általában tartalomkezelő rendszerekből, katalógusokból és ajánlórendszerekből származhatnak. Az alkalmazás felelős azért, hogy betöltse a műveletekkel kapcsolatos információkat a megfelelő adatbázisokból és rendszerekből. Ha a műveletek nem változnak, vagy minden alkalommal betöltik őket, szükségtelen hatással van a teljesítményre, hozzáadhat logikát az alkalmazásban az információk gyorsítótárazásához.

Műveletek rangsorolásának megakadályozása

Bizonyos esetekben vannak olyan műveletek, amelyeket nem szeretne megjeleníteni a felhasználók számára. A legjobb módja annak, hogy megakadályozza a műveletet a rangsorolásban, ha hozzáadja azt a Kizárt műveletek listához, vagy nem adja át a Rangsor kérésnek.

Bizonyos esetekben előfordulhat, hogy nem szeretné, hogy az események alapértelmezés szerint betanuljanak. Más szóval csak egy adott feltétel teljesülése esetén szeretné betaníteni az eseményeket. A weblap személyre szabott része például a fold alatt található (a felhasználóknak görgetniük kell a személyre szabott tartalommal való interakció előtt). Ebben az esetben a teljes oldalt rendereli, de csak azt szeretné, hogy a felhasználó görgetésekor betanítsa az eseményt, és lehetősége van a személyre szabott tartalommal való interakcióra. Ezekben az esetekben halasztani kell az eseményaktiválást , hogy elkerülje az olyan alapértelmezett jutalomesemények (és betanítások) hozzárendelését, amelyekkel a végfelhasználónak nem volt lehetősége interakcióba lépni.

Funkciók

A környezet és a lehetséges műveletek leírása funkciókkal történik. A funkciók minden olyan információt képviselnek, amelyet fontosnak tart, hogy a döntési folyamat maximalizálja a jutalmakat. Jó kiindulópont, ha azt képzeljük, hogy minden időbélyegen a legjobb műveletet kell kiválasztania, és felteheti magának a kérdést: "Milyen információra van szükségem egy tájékozott döntés meghozatalához? Milyen információk érhetők el a környezet és az egyes lehetséges műveletek leírásához?" A funkciók lehetnek általánosak vagy egy adott elemre jellemzőek.

A Personalizer nem írja elő, nem korlátozza vagy nem javítja ki, hogy milyen szolgáltatásokat küldhet a műveletekhez és a környezethez:

  • Idővel hozzáadhat és eltávolíthat a környezettel és a műveletekkel kapcsolatos funkciókat. A Personalizer továbbra is tanul a rendelkezésre álló információkból.
  • Kategorikus funkciók esetén nincs szükség a lehetséges értékek előre definiálására.
  • Numerikus funkciók esetén nem szükséges előre definiálni a tartományokat.
  • Az aláhúzásjellel _ kezdődő funkciónevek figyelmen kívül lesznek hagyva.
  • A funkciók listája nagy (több száz) lehet, de javasoljuk, hogy egy tömör funkciókészlettel kezdjen, és szükség szerint bővítse.
  • a műveletfunkciók összefüggésben lehetnek a környezeti funkciókkal, vagy nem.
  • A nem elérhető funkciókat ki kell hagyni a kérelemből. Ha egy adott szolgáltatás értéke nem érhető el egy adott kéréshez, hagyja ki a kérés funkcióját.
  • Kerülje a null értékű szolgáltatások küldését. A null érték sztringként lesz feldolgozva, amelynek értéke "null", ami nem kívánatos.

Ez rendben van, és természetes, hogy a funkciók idővel változnak. Ne feledje azonban, hogy a Personalizer gépi tanulási modellje az általa látott funkciók alapján alkalmazkodik. Ha minden új funkciót tartalmazó kérést küld, a Personalizer modellje nem fogja tudni használni a korábbi eseményeket az aktuális esemény legjobb műveletének kiválasztásához. A "stabil" funkciókészlet (ismétlődő funkciókkal) segít a Personalizer gépi tanulási algoritmusainak teljesítményében.

Környezeti funkciók

  • Előfordulhat, hogy egyes környezeti funkciók csak az idő egy részében érhetők el. Ha például egy felhasználó be van jelentkezve az online élelmiszerbolt webhelyére, a környezet a vásárlási előzményeket leíró funkciókat fogja tartalmazni. Ezek a funkciók nem érhetők el a vendégfelhasználók számára.
  • Legalább egy környezeti funkciónak kell lennie. A Personalizer nem támogatja az üres környezetet.
  • Ha a környezeti funkciók minden kérés esetében azonosak, a Personalizer a globálisan legjobb műveletet választja.

Műveletfunkciók

  • Nem minden műveletnek kell ugyanazokat a funkciókat tartalmaznia. Az online élelmiszerbolt forgatókönyvében például a mikrovázható popcorn "főzési idő" funkcióval rendelkezik, míg az uborka nem.
  • Előfordulhat, hogy egy adott műveletazonosító funkciói egy nap elérhetők lesznek, de később elérhetetlenné válnak.

Példák:

Az alábbiakban jó példákat talál a műveleti funkciókra. Ezek sok minden alkalmazástól függenek.

  • A műveletek jellemzőivel rendelkező funkciók. Például egy film vagy egy tévésorozat?
  • Funkciók arról, hogy a felhasználók hogyan használhatták ezt a műveletet a múltban. Ezt a filmet például többnyire az A vagy A demográfiai csoporthoz tartozók láthatják, általában csak egyszer játsszák le.
  • A felhasználók által a műveletek megtekintésének jellemzőivel kapcsolatos funkciók. Például a miniatűrben látható film plakátja tartalmazza az arcokat, az autókat vagy a tájakat?

Támogatott szolgáltatástípusok

A Personalizer támogatja a sztringek, numerikus és logikai típusok funkcióit. Valószínű, hogy az alkalmazás többnyire sztringszolgáltatásokat fog használni néhány kivétellel.

A funkciótípusok hatása a gépi tanulásra a Personalizerben

  • Sztringek: A sztringtípusok esetében a rendszer minden kulcs-érték (funkciónév, funkcióérték) kombinációt egy gyakori elérésű funkcióként kezeli (például kategória:"Termék" és kategória:"Hús" belsőleg a gépi tanulási modell különböző funkcióiként jelenik meg).
  • Numerikus: Csak akkor használjon numerikus értékeket, ha a szám olyan nagyság, amely a személyre szabás eredményét arányosan befolyásolja. Ez nagyon függ a forgatókönyvtől. A numerikus egységeken alapuló, de nem lineáris jelentésű funkciók – például az Életkor, a Hőmérséklet vagy a Személymagasság – a legjobban kategorikus sztringekként vannak kódolva. Az Age például "Age":"0-5", "Age":"6-10" stb. kódolható. A magasság lehet "Height": "<5'0", "Height": "5'0-5'4", "Height": "5'5-5'11", "Height":"6'0-6-4", "Height":">6'4".
  • Logikai
  • Csak numerikus tömbök támogatottak.

Jellemzőkiemelés

  • Kategorikus és sztringtípusokat használjon a nem nagyságú szolgáltatásokhoz.
  • Győződjön meg arról, hogy elegendő szolgáltatás áll rendelkezésre a személyre szabásához. Minél pontosabban megcélozza a tartalmat, annál több funkcióra van szükség.
  • A különböző sűrűségek jellemzői vannak. A funkció sűrű, ha sok elem néhány gyűjtőbe van csoportosítva. Például több ezer videó besorolható "Hosszú" (több mint 5 perc hosszú) és "Rövid" (5 perc alatt hosszú) kategóriába. Ez egy nagyon sűrű funkció. Ugyanakkor ugyanaz a több ezer elem rendelkezhet egy "Cím" nevű attribútummal, amelynek szinte soha nem lesz ugyanaz az értéke egyik elemről a másikra. Ez egy nagyon nem sűrű vagy ritka funkció.

A nagy sűrűségű funkciókkal a Personalizer extrapolálhatja a tanulást egyik elemről a másikra. Ha azonban csak néhány funkció van, és túl sűrűek, a Personalizer megpróbálja pontosan megcélezni a tartalmat, és csak néhány gyűjtő közül lehet választani.

A funkciók tervezésével és formázásával kapcsolatos gyakori problémák

  • Szolgáltatások küldése magas számossággal. Olyan egyedi értékekkel rendelkező funkciók, amelyek valószínűleg nem ismétlődnek meg sok esemény során. Például egy adott személyre (például névre, telefonszámra, hitelkártyaszámra, IP-címre) vonatkozó PII-t nem szabad használni a Personalizerrel.
  • Felhasználói azonosítók küldése nagy számú felhasználóval, nem valószínű, hogy ezek az információk relevánsak a Personalizer-tanulás szempontjából az átlagos jutalompontszám maximalizálása érdekében. A felhasználói azonosítók küldése (még akkor is, ha nem PII) valószínűleg több zajt ad a modellhez, és nem ajánlott.
  • Egyedi értékek küldése, amelyek ritkán fordulnak elő többször, mint néhányszor. Javasoljuk, hogy magasabb szintű részletességgel gyűjtse be a funkciókat. Ha például olyan funkciókkal rendelkezik, mint például "Context.TimeStamp.Day":"Monday" vagy "Context.TimeStamp.Hour":13 hasznos lehet, mivel csak 7, illetve 24 egyedi érték van. Azonban nagyon pontos, "Context.TimeStamp":"1985-04-12T23:20:50.52Z" és rendkívül sok egyedi értéket tartalmaz, ami nagyon megnehezíti a Personalizer számára, hogy tanuljon belőle.

Funkciókészletek fejlesztése

Elemezze a felhasználói viselkedést egy funkció-kiértékelési feladat futtatásával. Ez lehetővé teszi a múltbeli adatok megtekintését, hogy lássa, milyen funkciók járulnak hozzá jelentős mértékben a pozitív jutalmakhoz, illetve azokéhoz, amelyek kevésbé járulnak hozzá. Láthatja, hogy milyen funkciók segítenek, és ön és az alkalmazás fogja segíteni, hogy jobb funkciókat találjon, amelyeket elküldhet a Personalizernek, hogy még tovább javítsa az eredményeket.

Funkciókészletek bővítése mesterséges intelligenciával és Azure AI-szolgáltatásokkal

A mesterséges intelligencia és a használatra kész Azure AI-szolgáltatások nagyon hatékony kiegészítői lehetnek a Personalizernek.

Az elemek mesterségesintelligencia-szolgáltatások használatával történő előfeldolgozásával automatikusan kinyerheti azokat az információkat, amelyek valószínűleg relevánsak a személyre szabáshoz.

Példa:

  • A Video Indexerrel mozgóképfájlt futtathat a jelenetelemek, a szöveg, a hangulat és sok más attribútum kinyeréséhez. Ezek az attribútumok ezután sűrűbbé tehetők, hogy tükrözzék azokat a jellemzőket, amelyekkel az eredeti elem metaadatai nem rendelkeztek.
  • A képek futtathatók az objektumészlelésen, az arcokon a hangulaton keresztül stb.
  • A szöveg információi bővíthetők entitások, hangulatok és entitások kibontásával a Bing tudásgráfjával.

Számos más Azure AI-szolgáltatást is használhat, például

Beágyazások használata szolgáltatásként

A különböző Machine Learning-modellek beágyazásai a Personalizer befolyásoló funkcióinak bizonyultak

  • Beágyazások nagy nyelvi modellekből
  • Beágyazások az Azure AI Vision-modellekből

Névterek

A funkciók rendszerezhetők névterek használatával (a környezet és a műveleti funkciók szempontjából is relevánsak). A névterek a funkciók témakör, forrás vagy bármely más, az alkalmazásban értelmezhető csoportosítás szerint csoportosíthatók. Ön határozza meg, hogy a névterek használatban vannak-e, és hogy mik legyenek. A névterek különböző csoportokba rendezik a szolgáltatásokat, és hasonló nevű szolgáltatásokat egyértelműsítenek. A névterek a funkciónevekhez hozzáadott "előtagként" is felfoghatók. A névterek nem ágyazhatók be.

Az alábbiakban példákat láthat az alkalmazások által használt szolgáltatásnévterekre:

  • User_Profile_from_CRM
  • Idő
  • Mobile_Device_Info
  • http_user_agent
  • VideoResolution
  • DeviceInfo
  • Időjárás
  • Product_Recommendation_Ratings
  • current_time
  • NewsArticle_TextAnalytics

Névtér elnevezési konvenciók és irányelvek

  • A névterek nem ágyazhatók be.
  • A névtereknek egyedi ASCII-karakterekkel kell kezdődniük (UTF-8-alapú névterek használatát javasoljuk). Az azonos első karakterekkel rendelkező névterek ütközéseket okozhatnak, ezért erősen ajánlott, hogy a névterek olyan karakterekkel kezdődjenek, amelyek különböznek egymástól.
  • A névterek megkülönböztetik a kis- és nagybetűket. Például user User különböző névtereknek minősülnek.
  • A szolgáltatásnevek megismételhetők a névterek között, és külön szolgáltatásként lesznek kezelve
  • A következő karakterek nem használhatók: < 32 (nem nyomtatható), 32 (szóköz), 58 (kettőspont), 124 (cső) és 126–140 kód.
  • A rendszer figyelmen kívül hagyja az aláhúzással _ kezdődő összes névteret.

JSON-példák

Műveletek

Rang hívásakor több műveletet is elküld, amelyek közül választhat:

A JSON-objektumok tartalmazhatnak beágyazott JSON-objektumokat és egyszerű tulajdonságokat/értékeket. A tömbök csak akkor vehetők fel, ha a tömbelemek számok.

{
    "actions": [
    {
      "id": "pasta",
      "features": [
        {
          "taste": "salty",
          "spiceLevel": "medium",
          "grams": [400,800]
        },
        {
          "nutritionLevel": 5,
          "cuisine": "italian"
        }
      ]
    },
    {
      "id": "ice cream",
      "features": [
        {
          "taste": "sweet",
          "spiceLevel": "none",
          "grams": [150, 300, 450]
        },
        {
          "nutritionalLevel": 2
        }
      ]
    },
    {
      "id": "juice",
      "features": [
        {
          "taste": "sweet",
          "spiceLevel": "none",
          "grams": [300, 600, 900]
        },
        {
          "nutritionLevel": 5
        },
        {
          "drink": true
        }
      ]
    },
    {
      "id": "salad",
      "features": [
        {
          "taste": "salty",
          "spiceLevel": "low",
          "grams": [300, 600]
        },
        {
          "nutritionLevel": 8
        }
      ]
    }
  ]
}

Környezet

A környezet a Rank API-nak küldött JSON-objektumként van kifejezve:

A JSON-objektumok tartalmazhatnak beágyazott JSON-objektumokat és egyszerű tulajdonságokat/értékeket. A tömbök csak akkor vehetők fel, ha a tömbelemek számok.

{
    "contextFeatures": [
        {
            "state": {
                "timeOfDay": "noon",
                "weather": "sunny"
            }
        },
        {
            "device": {
                "mobile":true,
                "Windows":true,
                "screensize": [1680,1050]
            }
        }
    ]
}

Névterek

A következő JSON-ban, user, environmentés deviceactivity névterek.

Feljegyzés

Határozottan javasoljuk, hogy az UTF-8 alapú és különböző betűkkel kezdődő funkciónévterekhez használjon neveket. Például, , , és kezdje a következővelu: , e, dés a.activity deviceenvironmentuser Az azonos első karakterekkel rendelkező névterek ütközéseket okozhatnak.

{
    "contextFeatures": [
        { 
            "user": {
                "profileType":"AnonymousUser",
                "Location": "New York, USA"
            }
        },
        {
            "environment": {
                "monthOfYear": "8",
                "timeOfDay": "Afternoon",
                "weather": "Sunny"
            }
        },
        {
            "device": {
                "mobile":true,
                "Windows":true
            }
        },
        {
            "activity" : {
                "itemsInCart": "3-5",
                "cartValue": "250-300",
                "appliedCoupon": true
            }
        }
    ]
}

Következő lépések

Megerősítési tanulás