Určení skóre doporučovacího systému Wide and Deep

Tento článek popisuje, jak pomocí komponenty Score Wide and Deep Recommender v návrháři azure Machine Učení vytvářet předpovědi na základě natrénovaného modelu doporučení založeného na širokém a hlubokém učení od Googlu.

Doporučovač Wide and Deep může generovat dva různé druhy předpovědí:

Při vytváření druhého typu předpovědí můžete pracovat v produkčním režimu nebo v režimu vyhodnocení.

  • Provozní režim bere v úvahu všechny uživatele nebo položky a obvykle se používá ve webové službě. Můžete vytvářet skóre pro nové uživatele, nejen pro uživatele, kteří se během trénování zobrazují.

  • Režim vyhodnocení funguje na omezené sadě uživatelů nebo položek, které je možné vyhodnotit, a obvykle se používá během experimentování.

Další podrobnosti o širokoúhlém a hlubokém doporučovači a jeho základní teorii najdete v příslušné výzkumné knize: Wide &Deep Učení for Recommender Systems.

Postup konfigurace funkce Score Wide a Deep Recommender

Tato komponenta podporuje různé typy doporučení, z nichž každá má různé požadavky. Klikněte na odkaz pro typ dat, která máte, a typ doporučení, které chcete vytvořit.

Predikce hodnocení

Když předpovídáte hodnocení, model vypočítá, jak daný uživatel bude reagovat na konkrétní položku vzhledem k trénovacím datům. Vstupní data pro bodování proto musí poskytnout jak uživatel, tak i položku, které se mají ohodnotit.

  1. Přidejte do experimentu natrénovaný model doporučení Wide &Deep a připojte ho k modelu trénovaného širokého a hloubkového doporučení. Model musíte vytvořit pomocí nástroje Train Wide and Deep Recommender.

  2. Druh predikce doporučeného typu: Vyberte Předpověď hodnocení. Nejsou vyžadovány žádné další parametry.

  3. Přidejte data, pro která chcete vytvořit předpovědi, a připojte je k datové sadě, abyste mohli skóre určit.

    Aby bylo potřeba předpovědět hodnocení, vstupní datová sada musí obsahovat páry položek uživatele.

    Datová sada může obsahovat volitelný třetí sloupec hodnocení pro dvojici položek uživatele v prvním a druhém sloupci, ale třetí sloupec se během předpovědi ignoruje.

  4. (Volitelné). Pokud máte datovou sadu uživatelských funkcí, připojte ji k funkcím uživatele.

    Datová sada uživatelských funkcí by měla obsahovat identifikátor uživatele v prvním sloupci. Zbývající sloupce by měly obsahovat hodnoty, které charakterizují uživatele, například jejich pohlaví, předvolby, umístění atd.

    Funkce uživatelů, kteří ohodnotili položky v trénovací datové sadě, se ignorují skóre Wide a Deep Recommender, protože se už během trénování naučili. Proto datovou sadu předem vyfiltrujte tak, aby zahrnovala pouze uživatele, kteří nemají hodnocení žádné položky.

    Upozorňující

    Pokud byl model vytrénován bez použití uživatelských funkcí, nemůžete během vyhodnocování zavádět funkce uživatele.

  5. Pokud máte datovou sadu funkcí položek, můžete ji připojit k funkcím položky.

    Datová sada funkcí položky musí obsahovat identifikátor položky v prvním sloupci. Zbývající sloupce by měly obsahovat hodnoty, které charakterizují položky.

    Funkce hodnocených položek v trénovací datové sadě se ignorují skóre Wide a Deep Recommender , protože se už během trénování naučili. Proto omezte datovou sadu vyhodnocování na položky studeného spuštění nebo položky, které žádní uživatelé neohodnoceli.

    Upozorňující

    Pokud byl model vytrénován bez použití funkcí položek, nemůžete během vyhodnocování zavádět funkce položek.

  6. Spusťte experiment.

Výsledky pro predikce hodnocení

Výstupní datová sada obsahuje tři sloupce, které obsahují uživatele, položku a predikované hodnocení každého vstupního uživatele a položky.

Kromě toho se během vyhodnocování použijí následující změny:

  • U číselného sloupce funkce uživatele nebo položky se chybějící hodnoty automaticky nahradí střední hodnotou chybějících trénovacích množiny. U kategorické funkce se chybějící hodnoty nahradí stejnou hodnotou kategorií, která je jiná než všechny možné hodnoty této funkce.
  • Na hodnoty funkcí se nepoužije žádný překlad, aby se zachovala jejich sparsita.

Doporučené položky

Pokud chcete uživatelům doporučit položky, zadejte jako vstup seznam uživatelů a položek. Z těchto dat model využívá své znalosti o existujících položkách a uživatelích k vygenerování seznamu položek s pravděpodobným odvoláním na každého uživatele. Můžete přizpůsobit počet vrácených doporučení a nastavit prahovou hodnotu pro počet předchozích doporučení, která jsou nutná k vygenerování doporučení.

  1. Přidejte do experimentu natrénovaný model doporučení Wide and Deep a připojte ho k modelu trénovaného širokého a hloubkového doporučení. Model musíte vytvořit pomocí nástroje Train Wide and Deep Recommender.

  2. Pokud chcete doporučit položky pro daný seznam uživatelů, nastavte typ predikce Doporučovací modul na doporučení položky.

  3. Doporučený výběr položky: Určete, jestli používáte bodovací komponentu v produkčním prostředí nebo pro vyhodnocení modelu, a to tak, že zvolíte jednu z těchto hodnot:

    • Z hodnocených položek (pro vyhodnocení modelu): Tuto možnost vyberte, pokud vyvíjíte nebo testujete model. Tato možnost povolí režim vyhodnocení a komponenta poskytuje doporučení jenom z těchto položek ve vstupní datové sadě, které byly hodnoceny.
    • Ze všech položek: Tuto možnost vyberte, pokud nastavujete experiment pro použití ve webové službě nebo produkčním prostředí. Tato možnost umožňuje produkční režim a komponenta poskytuje doporučení ze všech položek, které se zobrazují během trénování.
    • Z nehodnocených položek (pro návrhy nových položek pro uživatele): Tuto možnost vyberte, pokud chcete, aby komponenta zobrazovala doporučení pouze z těchto položek v trénovací datové sadě, které nebyly hodnoceny.
  4. Přidejte datovou sadu, pro kterou chcete vytvářet předpovědi, a připojte ji k datové sadě, abyste mohli skóre určit.

    • Pokud zvolíte možnost Ze všech položek, vstupní datová sada by se měla skládat z jednoho a pouze jednoho sloupce, který obsahuje identifikátory uživatelů, pro které mají být doporučení.

      Datová sada může obsahovat další dva sloupce identifikátorů položek a hodnocení, ale tyto dva sloupce se ignorují.

    • Pokud zvolíte možnost Z hodnocených položek (pro vyhodnocení modelu), vstupní datová sada by se měla skládat z párů položek uživatele. První sloupec by měl obsahovat identifikátor uživatele . Druhý sloupec by měl obsahovat odpovídající identifikátory položek .

      Datová sada může obsahovat třetí sloupec hodnocení uživatelských položek, ale tento sloupec se ignoruje.

    • Vstupní datová sada by se měla skládat z párů položek uživatele (pokud chcete navrhovat nové položky uživatelům). První sloupec by měl obsahovat identifikátor uživatele. Druhý sloupec by měl obsahovat odpovídající identifikátory položek.

      Datová sada může obsahovat třetí sloupec hodnocení uživatelských položek, ale tento sloupec se ignoruje.

  5. (Volitelné). Pokud máte datovou sadu uživatelských funkcí, připojte ji k funkcím uživatele.

    První sloupec v datové sadě funkcí uživatele by měl obsahovat identifikátor uživatele. Zbývající sloupce by měly obsahovat hodnoty, které charakterizují uživatele, například pohlaví, předvolby, umístění atd.

    Funkce uživatelů s hodnocením položek jsou ignorovány skóre Wide a Deep Recommender, protože tyto funkce se už během trénování naučily. Proto můžete datovou sadu předem filtrovat tak, aby zahrnovala pouze uživatele s studeným startem nebo uživatele, kteří nehodnoceli žádné položky.

    Upozorňující

    Pokud byl model vytrénován bez použití uživatelských funkcí, nemůžete při vyhodnocování použít funkce.

  6. (Volitelné) Pokud máte datovou sadu funkcí položek, můžete ji připojit k funkcím položky.

    První sloupec v datové sadě funkcí položky musí obsahovat identifikátor položky. Zbývající sloupce by měly obsahovat hodnoty, které charakterizují položky.

    Funkce hodnocených položek jsou ignorovány funkcí Score Wide a Deep Recommender, protože tyto funkce se už během trénování naučily. Proto můžete datovou sadu hodnocení omezit na položky studeného startu nebo položky, které žádní uživatelé neohodnoceli.

    Upozorňující

    Pokud byl model vytrénován bez použití funkcí položek, nepoužívejte při vyhodnocování funkce položek.

  7. Maximální počet položek, které chcete uživateli doporučit: Zadejte počet položek, které se mají vrátit pro každého uživatele. Ve výchozím nastavení se doporučuje 5 položek.

  8. Minimální velikost fondu doporučení na uživatele: Zadejte hodnotu, která určuje, kolik předchozích doporučení je potřeba. Ve výchozím nastavení je tento parametr nastaven na hodnotu 2, což znamená, že položka musí být doporučena alespoň dvěma dalšími uživateli.

    Tuto možnost byste měli použít jenom v případě, že bodujete v režimu vyhodnocení. Tato možnost není dostupná, pokud vyberete Ze všech položek nebo Od nehodnocených položek (chcete-li navrhnout nové položky uživatelům).

  9. V části Od nehodnocených položek (chcete-li navrhovat nové položky uživatelům) použijte třetí vstupní port s názvem Trénovací data k odebrání položek, které už byly hodnoceny z výsledků předpovědi.

    Pokud chcete tento filtr použít, připojte původní trénovací datovou sadu ke vstupnímu portu.

  10. Spusťte experiment.

Výsledky doporučení k položce

Výsledná datová sada vrácená nástrojem Score Wide a Deep Recommender obsahuje seznam doporučených položek pro každého uživatele.

  • První sloupec obsahuje identifikátory uživatele.
  • Vygeneruje se několik dalších sloupců v závislosti na hodnotě, kterou jste nastavili pro maximální počet položek, které doporučíte uživateli. Každý sloupec obsahuje doporučenou položku (podle identifikátoru). Doporučení jsou seřazena podle spřažení položek uživatele, přičemž položka s nejvyšší spřažení je umístěna ve sloupci Položka 1.

Technické poznámky

Tato část obsahuje odpovědi na některé běžné otázky týkající se použití doporučovacího nástroje Wide &Deep k vytváření předpovědí.

Uživatelé a doporučení pro studený start

Při vytváření doporučení obvykle komponenta Score Wide and Deep Recommender vyžaduje stejné vstupy, které jste použili při trénování modelu, včetně ID uživatele. Důvodem je to, že algoritmus potřebuje vědět, jestli se během trénování naučil něco o tomto uživateli.

U nových uživatelů ale možná nemáte ID uživatele, ale jenom některé funkce uživatelů, jako je věk, pohlaví atd.

Stále můžete vytvářet doporučení pro uživatele, kteří s vaším systémem teprve začínají, tím, že je budete zpracovávat jako uživatele, kteří začínají chladně. Pro takové uživatele algoritmus doporučení nepoužívá předchozí historii ani předchozí hodnocení, pouze uživatelské funkce.

Pro účely předpovědi je uživatel studeného startu definován jako uživatel s ID, které nebylo použito pro trénování. Abyste měli jistotu, že ID neodpovídají ID použitá při trénování, můžete vytvořit nové identifikátory. Můžete například vygenerovat náhodná ID v zadaném rozsahu nebo předem přidělit řadu ID pro uživatele s studeným startem.

Pokud ale nemáte žádná data pro spolupráci, jako je vektor uživatelských funkcí, lépe používáte klasifikaci nebo regresní učení.

Použití širokoúhlého a hlubokého doporučovacího nástroje

Pokud jste experimentovali s doporučovacím nástrojem Wide and Deep a pak model přesuňte do produkčního prostředí, mějte na paměti tyto klíčové rozdíly při použití doporučovače v režimu vyhodnocení a v produkčním režimu:

  • Vyhodnocení podle definice vyžaduje předpovědi, které lze ověřit na základě základní pravdy v testovací sadě. Proto když vyhodnotíte doporučovací nástroj, musí předpovědět pouze položky, které byly hodnoceny v testovací sadě. To nutně omezuje možné hodnoty, které jsou predikovány.

    Když ale model zprovozníte, obvykle změníte režim předpovědi tak, aby doporučení byla založena na všech možných položkách, abyste získali nejlepší předpovědi. U mnoha těchto předpovědí neexistuje žádná odpovídající základní pravda, takže přesnost doporučení se nedá ověřit stejným způsobem jako při experimentování.

  • Pokud nezadáte ID uživatele v produkčním prostředí a poskytnete pouze vektor funkce, můžete získat jako odpověď seznam všech doporučení pro všechny možné uživatele. Nezapomeňte zadat ID uživatele.

    Pokud chcete omezit počet vrácených doporučení, můžete také zadat maximální počet vrácených položek pro jednotlivé uživatele.

Další kroky

Podívejte se na sadu komponent dostupných Učení Azure Machine.