Me gustó la respuesta de Luis, aunque me gustaría enfatizar cuál es el beneficio del truco de hash y cuáles son sus alternativas.
La mayoría de los algoritmos de ML requieren que represente los datos de entrada como una matriz de números reales. El proceso de conversión de datos en bruto a una matriz de números reales se llama ingeniería de características, y el truco de hashing es una técnica de ingeniería de características.
Veamos cuáles son las técnicas estándar de ingeniería de características para tratar con datos categóricos y datos de texto.
- ¿Cómo se usan los árboles BSP (partición de espacio binario) en los algoritmos de aprendizaje automático?
- Cómo realizar el aprendizaje de refuerzo en una red neuronal de alimentación oculta de capas múltiples
- Cómo evaluar mi modelo cada época en TensorFlow
- ¿Qué tan popular y extendido es el aprendizaje automático en África?
- ¿Qué conjuntos de datos se utilizan como puntos de referencia en los métodos de transcripción de voz / voz y qué métodos tienen los mejores resultados actuales?
La variable categórica es una variable que puede tomar un número finito de valores. Ejemplo: ID de anuncio, ID de usuario, categoría de anuncio. El enfoque habitual para representar esta variable como entrada para el algoritmo ML es utilizar una codificación única: crea N variables binarias donde N es un número de posibles valores de variable categórica.
La forma más sencilla de representar datos de texto como entrada al algoritmo ML es usar la variación del modelo de bolsa de palabras: crea N variables binarias donde N es una cantidad de palabras en el lenguaje y marca todas las variables correspondientes a cada palabra que contiene un ejemplo de entrenamiento para ser verdad.
Puede ver que estos dos enfoques son muy similares entre sí y ambos crean una matriz de entrada muy dispersa y muy dimensional.
Entonces, el truco de hash, como lo explicó Luis, simplemente simula estos 2 enfoques y funciona como una tabla de hash.
Y si sabe cómo funciona la tabla hash, es posible que se pregunte sobre la colisión. Pero la investigación y la práctica han demostrado que la colisión no perjudica demasiado la precisión (o, a veces, no la perjudica en absoluto). De todos modos, esta es una desventaja del truco de hashing. Otra desventaja es que pierde la capacidad de interpretación.
El truco de hash tiene 3 grandes ventajas para el modelo de codificación / conjunto de palabras de uno en caliente:
- Es mucho más simple de codificar.
- No requiere ningún diccionario para prepararse. Centrémonos un poco en esto. Por lo general, en el sistema real, la fase del tren se separa de la fase de aplicación. Pero para mapear un valor de variable categórica a una variable codificada en binario, primero debe encontrar todos los valores de esta variable categórica, también debe usar el mismo mapeo en el tren y aplicar la fase, por lo que debe pasar estos mapeos de alguna manera.
- Es amigable con el aprendizaje en línea, donde puedes entrenar en un conjunto de datos que no cabe en la memoria porque solo necesitas ver cada ejemplo una vez. La codificación única no funcionará bien con el aprendizaje en línea porque para preparar los diccionarios primero debe ver el conjunto de datos completo. Ver el volador wabbit.
Espero que ayude.