FieldAwareFactorizationMachineTrainer Třída

Definice

Predikce IEstimator<TTransformer> cíle pomocí modelu stroje faktorizace pracujícího s poli trénovaného pomocí stochastické metody přechodu.

public sealed class FieldAwareFactorizationMachineTrainer : Microsoft.ML.IEstimator<Microsoft.ML.Trainers.FieldAwareFactorizationMachinePredictionTransformer>
type FieldAwareFactorizationMachineTrainer = class
    interface IEstimator<FieldAwareFactorizationMachinePredictionTransformer>
Public NotInheritable Class FieldAwareFactorizationMachineTrainer
Implements IEstimator(Of FieldAwareFactorizationMachinePredictionTransformer)
Dědičnost
FieldAwareFactorizationMachineTrainer
Implementuje

Poznámky

Vstupní a výstupní sloupce

Vstupní data sloupce popisku musí být Boolean. Vstupní funkce sloupcová data musí být vektorem známé velikosti Single.

Tento trenér vypíše následující sloupce:

Název výstupního sloupce Typ sloupce Description
Score Single Nevázané skóre, které model vypočítal.
PredictedLabel Boolean Predikovaný popisek na základě znaménka skóre. Záporná skóre mapuje na false a kladná skóre se mapuje na true.
Probability Single Pravděpodobnost vypočítaná kalibrací skóre hodnoty true jako popisku. Hodnota pravděpodobnosti je v rozsahu [0, 1].

K vytvoření tohoto trenéra použijte FieldAwareFactorizationMachineFieldAwareFactorizationMachine nebo FieldAwareFactorizationMachine(Options).

Na rozdíl od jiných binárních klasifikátorů, které mohou podporovat pouze jeden sloupec funkcí, může stroj faktorizace s podporou polí využívat více sloupců funkcí. Každý sloupec se zobrazuje jako kontejner některých funkcí a takový kontejner se nazývá pole. Všimněte si, že všechny sloupce funkcí musí být vektory float, ale jejich rozměry se můžou lišit. Motivací rozdělení funkcí do různých polí je nezávisle modelovat funkce z různých distribucí. Například v online obchodě her je možné přiřadit funkce vytvořené z profilu uživatele a funkce z herního profilu ke dvěma různým polím.

Charakteristiky trenéra

Úloha strojového učení Binární klasifikace
Vyžaduje se normalizace? Yes
Vyžaduje se ukládání do mezipaměti? No
Požadovaný NuGet kromě Microsoft.ML Žádné
Exportovatelné do ONNX No

Pozadí

Modelová řada strojů je výkonná skupina modelů pro problémy s učením pod dohledem. V roce 2010 byla poprvé představena v dokumentu Factorization Machines Steffen Rendle. Později se jeden z jeho generalizovaných verzí, stroj faktorizace pracující s poli, stal důležitým prediktivním modulem v nedávných doporučovacích systémech a klikáním na predikce rychlosti soutěže. Příklady najdete v vítězných řešeních v KDD-Cup 2012 Steffen Rendle (Track 1 and Track 2), Criteo, Avazu a Outbrain ' s click prediction challenges on Kaggle.

Factorizace počítačů je obzvláště výkonná, pokud jsou spojení funkcí extrémně korelované se signálem, který chcete předpovědět. Příkladem párů funkcí, které mohou tvořit důležité spojení, je ID uživatele a ID hudby v doporučení k hudbě. Pokud se datová sada skládá pouze z hustších číselných funkcí, použití faktorizačního stroje se nedoporučuje nebo by se měly provádět některé featurace.

Bodovací funkce

Faktorizační stroj s podporou polí je bodovací funkce, která mapuje vektory funkcí z různých polí na skalární skóre. Předpokládejme, že všechny sloupce funkcí $m$ jsou zřetězeny do dlouhého vektoru funkce $\textbf{x} \in {\mathbb R}^n$ a ${\mathcal F}(j)$ označuje odsazení pole $j$-th. Odpovídající skóre je $\hat{y}(\textbf{x}) = \langle \textbf{w}, \textbf{x} \rangle + \sum_{j = 1}^n \sum_{j' = j + 1}^n \langle \textbf{v}_{j, {\mathcal F}(j')}, \textbf{v}_{j', {\mathcal F}(j)} \rangle x_j x_{j'}$, kde $\langle \cdot, \cdot \rangle$ je vnitřní operátor produktu, $\textbf{w} \in {\mathbb R}^n$ ukládá lineární koeficienty. a $\textbf{v}_{j, f}\in {\mathbb R}^k$ je reprezentace funkce $j$-th v opožděné oblasti $f$-th. Všimněte si, že $k$ je latentní dimenze určená uživatelem.

Predikovaný popisek je znaménkem $\hat{y}$. Pokud $\hat{y} > 0$, tento model předpovídá hodnotu true. V opačném případě predikuje false.

Systematičtější úvod do stroje pro faktorizaci pracujících s poli najdete v tomto dokumentu.

Podrobnosti trénovacího algoritmu

Algoritmus implementovaný v FieldAwareFactorizationMachineTrainer je založen na stochastické metodě přechodu. Podrobnosti o algoritmu jsou popsány v algoritmu 3 v tomto online dokumentu. Minimalizovaná ztráta je logistická ztráta, takže trénovaný model lze zobrazit jako nelineární logistickou regresi.

Odkazy na příklady použití najdete v části Viz také.

Metody

Fit(IDataView)

Vlaky a vrací hodnotu FieldAwareFactorizationMachinePredictionTransformer.

Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters)

Pokračuje v trénování FieldAwareFactorizationMachineTrainer pomocí již natrénovaných modelParameters a/nebo ověřovacích dat a vrátí FieldAwareFactorizationMachinePredictionTransformerhodnotu .

GetOutputSchema(SchemaShape)

Šíření schématu pro transformátory Vrátí výstupní schéma dat, pokud je vstupní schéma podobné zadanému schématu.

Metody rozšíření

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Připojte k řetězci estimátoru kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby podřízené estimátory byly vytrénovány proti datům uloženým v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Vzhledem k estimátoru vraťte zalamovací objekt, který zavolá delegáta jednou Fit(IDataView) . Často je důležité, aby odhadovač vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétně typ objekt, nikoli jen obecné ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetězec estimátorů, kde EstimatorChain<TLastTransformer> je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, zakopán někde v tomto řetězci. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po zavolání fit.

Platí pro

Viz také