¿Qué es incrustar en Machine Learning? ¿Podría dar un ejemplo / explicación simple?

La incrustación se usa comúnmente para ayudar a las computadoras a comprender el lenguaje / texto humano en el campo del procesamiento del lenguaje natural (PNL). Los humanos se comunican con caracteres, palabras y oraciones, pero las computadoras procesan la información a través de números. Podrías ver de manera simplista la incrustación como la traducción de palabras a números, pero hay más que eso.

Digamos que está desarrollando una red neuronal básica. Tiene entradas (palabras) y necesita pasarlas a través de las conexiones y nodos y funciones de activación de la red como señales. Cuando pasa esta información a través de las conexiones, es solo multiplicación. Pero, ¿qué es “gato” multiplicado por un peso (por ejemplo, 0.6)? ¿Cuál es el mapeo de “cat” pasado a una función no lineal? “Gato” como palabra no se puede pasar a través de una red, ya que no tiene sentido realizar operaciones matemáticas en una palabra. Tendremos que convertir necesariamente el término que es donde entra la incrustación. Una definición más precisa sería:

La incrustación es una transformación de valores / escalares discretos a vectores densos de valor real.

Déjame desglosar eso:

Discreto significa valores distintos, como enteros (0, 1, 2, 3) o palabras (“flor”, “árbol”, “vaca”, “basura”). Estos contienen información muy limitada.

Valor real / continuo significa números reales (pueden tener cualquier número de decimales). Entre valores discretos como 0 y 1 hay un paso, pero hay un número infinito de pasos continuos entre digamos 1.119 y 1.2 que pueden almacenar más información sobre qué tan estrechamente relacionadas están dos cosas.

Un vector aquí es un conjunto de números que describen las características / información sobre la entrada / palabra (por ejemplo, la frecuencia de esa palabra en un texto, la proximidad de la palabra a otras palabras como ‘gato’ y ‘perro’ o ‘gato’ y ‘ peludo ‘, la forma de la palabra, etc.).

Denso significa que la mayoría de las entradas de vector están pobladas. Lo opuesto a denso es escaso, por lo que un vector disperso se vería similar a, por ejemplo, [0,0,0,0,0…., 0,10.51,0.0].

Una palabra como “gato” es discreta, ya que es distinta de cualquier otra palabra, por ejemplo, no hay infinitas palabras entre “gato” y “perro” que gradualmente van entre ellas. Puede usar un vocabulario como el diccionario Webster con 470,000 términos y asignar cada palabra a su índice alfabético para ese vocabulario. Luego, podría pasar valores numéricos discretos a través de la red neuronal, lo que tiene más sentido que las palabras (al menos funciona), pero no es tan útil para las funciones de aprendizaje para usar en predicción o clasificación.

Imagine que tenemos una red que queremos entrenar para que devuelva la misma palabra que enviamos. Por lo tanto, está intentando representar internamente la función y = x. Dado “gato” debería devolver “gato” y dado “perro” debería devolver “perro”. Cuando una señal llega al final de la red, esto es simplificación, dice oh, esto está mal. Bueno, ¿por cuánto está mal? Y le dice a la red que actualice para corregir este error en esta cantidad (a través de la retropropagación). La representación de índice (discreto) de cat puede ser 8000 y dog ​​podría ser 13000. Entonces, digamos que la red envía una señal de 8000 a través y emite 11000, por lo que debe corregir la red por -3000 valores. Eventualmente terminará aproximándose, por lo que y ~ x, pero eso es terrible para valores discretos porque hay muchas palabras cerca de “gato” que no son “gato” – la red pensará que “auto”, siendo el valor 8341, es realmente cerca de “cat”, pero estos valores discretos no tienen nada que ver con las palabras y solo resultan ser su orden alfabético, por lo que termina siendo una red desordenada súper ruidosa, ya que está entrenada para reducir los valores de los errores (como -3000 )

Las incrustaciones de palabras son vectores densos de valor real, por lo que en lugar de representar cada palabra como un entero índice arbitrario, representan cada palabra como un vector de números reales como [101.144, 525.12, 0.632, 46.41, …]. Estos números intentan representar la palabra en varios espectros, por ejemplo, 0.632 puede relacionarse con la vejez / novedad, por lo que la palabra “cachorro” tendría valores muy similares a “perro” en la mayoría de los otros espectros, pero muy diferentes en los valores que representan vejez / novedad. Al usar la incrustación, tenemos muchas dimensiones diferentes de similitud o comparaciones almacenadas en vectores de valor real, así como una función espacial continua que corresponde a eso para que nuestra red neuronal pueda aprender mucho más que si estuviera usando valores discretos.

En realidad, no sería capaz de precisar que 0.632 representa qué tan viejo / nuevo es algo. Las incrustaciones de palabras son, para cada palabra, un vector de alta dimensión (como números 100, 200 o 300). Realmente no sabes a qué característica (como vejez / novedad) corresponde cada dimensión. Es solo aprendido por la red. Y hay muchas características / espectros continuos que la red puede aprender para los cuales ni siquiera tenemos palabras y esas características pueden terminar siendo mejores predicciones que cualquier etiqueta humana. Al igual que no podemos ver fácilmente un espectro entre las palabras “tazón”, “reina”, “zapatilla deportiva” y “manzana”, pero el aprendizaje automático puede.

El éxito del aprendizaje profundo, por qué incluso lo usamos, se debe a que tiene esta propiedad de poder crear funciones sin ningún aporte o conocimiento humano. Las características no necesitan ser interpretables por los humanos y, de hecho, perdemos una gran cantidad de información latente a través del etiquetado manual. Piense en la etiqueta “perro” vs. 300 espectros de características diferentes que describen perro y su relación con otras palabras. Esto explica por qué cuando intentamos realizar un aprendizaje profundo además de características etiquetadas por humanos, en lugar de datos incrustados sin procesar, podemos tener un rendimiento mucho peor. ¿Cómo podría esperar capturar todo esto en una simple etiqueta ‘perro’?

Foto de Marko Ćipović

Un desafío en la inclusión de palabras es que, al optimizar para modelar las propiedades estadísticas de los datos de entrenamiento, podemos inadvertidamente detectar prejuicios y estereotipos implícitos en los datos. Por ejemplo, en la inserción de word2vec popular entrenada en las noticias de Google, vemos que ha aprendido a asociar al hombre negro más estrechamente con el asaltado y al hombre blanco con derecho. Lea más sobre cómo reducir este problema en este documento: Cuantificación y reducción de los estereotipos en las incorporaciones de palabras (Tolga Bolukbasi, Kai-Wei Chang, James Zou, Venkatesh Saligrama, Adam Kalai, 2016)

More Interesting

¿Es la era de la inteligencia artificial la culminación de la era de la razón, o la IA es una de las consecuencias de la era de la razón?

A medida que los robots y otras formas de IA eventualmente toman todos los trabajos, ¿qué harán los humanos entonces?

¿Cuál es el mejor libro para aprender IA?

¿Cuáles son las técnicas / modelos de aprendizaje automático adecuados para la entrada de datos semiautomática?

¿Qué es la regresión lineal generalizada?

¿El aprendizaje profundo se está volviendo más importante y valioso que el aprendizaje automático?

¿Qué pasa si la IA se vuelve tan inteligente que puede pensar libremente?

¿Realmente IBM está haciendo dinero con el sistema de control de calidad de Watson, o es solo un proyecto para comercializar el nombre de la empresa?

¿Por qué las redes neuronales convolucionales (CNN) son ampliamente consideradas como el mejor tipo de diseño de red profunda para el procesamiento de imágenes?

¿Cómo hacer un juego de Slenderman basado en texto? Más específicamente, ¿cómo puedo darle a Slenderman una IA?

¿Cuál es una explicación intuitiva de cómo funciona la atención en el aprendizaje profundo?

¿Deberían los robots y otras IA tener un estatus humano?

¿Cuáles son los buenos sitios web y foros de inteligencia artificial?

¿Cuál es el progreso en descifrar patrones neuronales de multipoblación?

Suponiendo que una IA pueda jugar un juego matemáticamente perfecto de damas, ¿podría Dios vencerlo? ¿Se limitarían a atar?