Hashing Trick - was passiert eigentlich

12

Wenn ML-Algorithmen, z. B. Vowpal Wabbit oder einige der Faktorisierungsmaschinen, die Klickratenwettbewerbe gewinnen ( Kaggle ), erwähnen, dass Features gehasht sind, was bedeutet das eigentlich für das Modell? Nehmen wir an, es gibt eine Variable, die die ID eines Internet-Zusatzes darstellt, der Werte wie '236BG231' annimmt. Dann verstehe ich, dass diese Funktion zu einer zufälligen ganzen Zahl gehasht wird. Aber meine Frage ist:

  • Wird die Ganzzahl jetzt im Modell als ganzzahliges (numerisches) ODER verwendet?
  • Wird der Hash-Wert tatsächlich immer noch wie eine kategoriale Variable behandelt und One-Hot-Coded? Der Hashing-Trick ist also, mit großen Datenmengen irgendwie Platz zu sparen?
B_Miner
quelle

Antworten:

7

Der zweite Punkt ist der Wert im Feature-Hashing. Durch Hashing und eine Hot-Codierung für spärliche Daten wird Speicherplatz gespart. Abhängig vom Hash-Algo kann es zu unterschiedlich starken Kollisionen kommen, was eine Art Dimensionsreduktion darstellt.

Im speziellen Fall von Kaggle-Feature-Hashing und einer Hot-Encoding-Funktion können Sie bei der Feature-Erweiterung / -Engineering helfen, indem Sie alle möglichen Tupel (in der Regel nur zweiter, manchmal dritter Ordnung) von Features verwenden, die dann mit Kollisionen gehasht werden, die explizit häufig prädiktive Interaktionen erzeugen während die einzelnen Funktionen nicht sind.

In den meisten Fällen ähnelt diese Technik in Kombination mit Merkmalsauswahl und elastischer Netzregulierung in LR einer NN mit einer verborgenen Schicht, sodass sie bei Wettbewerben eine recht gute Leistung erbringt.

Cwharland
quelle
Eine One-Hot-Codierung wird also immer noch verwendet, nur für Hash-Werte *, was, wie Sie sagen, Platz spart und zu einer Verringerung der Dimensionalität führen kann (bei Kollisionen). Ist das korrekt?
B_Miner
1
One Host Encoding ist kein notwendiger Bestandteil von Hashing-Funktionen, wird jedoch häufig zusammen mit verwendet, da es ein gutes Stück Vorhersagekraft bietet. Eine Möglichkeit, sich eine heiße Kodierung vorzustellen, besteht darin, ein Merkmal aus einer Menge von N diskreten Werten in eine Menge von N binären Fragen umzuwandeln. Vielleicht ist es für mich nicht wichtig zu wissen, ob Merkmal J 2 oder 3 ist, nur dass es nicht 4 ist. One Hot macht diese Unterscheidung spezifisch. Dies ist bei linearen Modellen sehr hilfreich, wohingegen Ensemble-Ansätze (wie RF) Unterbrechungspunkte im Feature scannen, um diese Unterscheidung zu finden.
Cwharland