En esta sección, se enfocan dos técnicas comunes para obtener una incorporación:
- Reducción de la dimensionalidad
- Extraer una incorporación de un modelo de red neuronal más grande
Técnicas de reducción de la dimensionalidad
Existen muchas técnicas matemáticas para capturar la estructura importante de un espacio de alta dimensión en un espacio de baja dimensión. En teoría, cualquiera de estas técnicas se puede usar a fin de crear una incorporación para un sistema de aprendizaje automático.
Por ejemplo, el análisis de componentes principales (ACP) se utiliza para crear incorporaciones de palabras. Dado un conjunto de instancias como los vectores de bolsa de palabras, el PCA intenta encontrar dimensiones altamente correlacionadas que se puedan contraer en una sola dimensión.
Entrenamiento de una incorporación como parte de una red neuronal
Puedes crear una incorporación mientras entrenas una red neuronal para tu tarea objetivo. Este enfoque te proporciona una incorporación bien personalizada para tu sistema en particular, pero puede llevar más tiempo que entrenar la incorporación por separado.
En general, puedes crear una capa oculta de tamaño d en tu red neuronal que se designe como la capa de incorporación, donde d representa la cantidad de nodos en la capa oculta y la cantidad de dimensiones en el espacio de incorporación. Esta capa de incorporación se puede combinar con otros atributos y capas ocultas. Como en cualquier red neuronal profunda, los parámetros se optimizarán durante el entrenamiento para minimizar la pérdida en los nodos de la capa de salida de la red.
Volviendo a nuestro ejemplo de recomendación de comida, nuestro objetivo es predecir las comidas nuevas que le gustarán a un usuario en función de sus comidas favoritas actuales. Primero, podemos recopilar datos adicionales sobre los cinco alimentos favoritos de nuestros usuarios. Luego, podemos modelar esta tarea como un problema de aprendizaje supervisado. Establecimos que cuatro de estos cinco alimentos principales sean datos de atributos y, luego, dejamos de lado de forma aleatoria el quinto alimento como la etiqueta positiva que nuestro modelo intenta predecir, optimizando las predicciones del modelo con una pérdida softmax.
Durante el entrenamiento, el modelo de red neuronal aprenderá los pesos óptimos para los nodos de la primera capa oculta, que funciona como capa de incorporación. Por ejemplo, si el modelo contiene tres nodos en la primera capa oculta, podría determinar que las tres dimensiones más relevantes de los alimentos son el tipo de sándwich, el tipo de postre y el tipo de líquido. En la Figura 12, se muestra el valor de entrada codificado en one-hot para “hot dog” transformado en un vector tridimensional.
Durante el entrenamiento, se optimizarán las ponderaciones de la capa de incorporación para que los vectores de incorporación de ejemplos similares estén más cerca entre sí. Las dimensiones individuales de la capa de incorporación (lo que representa cada nodo en la capa de incorporación) rara vez son tan fáciles de entender como “dessertness” o “liquidness”. A veces, se puede inferir lo que “significan”, pero no siempre es así.
Por lo general, las incorporaciones serán específicas para la tarea y diferirán entre sí cuando la tarea sea diferente. Por ejemplo, las incorporaciones generadas por un modelo de clasificación vegetariano en comparación con uno no vegetariano podrían tener dos dimensiones: contenido de carne y contenido de productos lácteos. Mientras tanto, las incorporaciones generadas por un clasificador de desayuno en comparación con una cena para la cocina estadounidense podrían tener dimensiones ligeramente diferentes: contenido calórico, contenido de granos y contenido de carne. "Cereales" y "sándwich de huevo y tocino" pueden estar cerca en el espacio de incorporación de un clasificador de desayuno frente a un clasificador de cena, pero muy separados en el espacio de incorporación de un clasificador vegetariano frente a uno no vegetariano.
Entrenamiento de un embedding de palabras
En la sección anterior, exploraste una visualización de relaciones semánticas en el espacio de incorporaciones word2vec.
Word2vec es uno de los muchos algoritmos que se usan para entrenar incorporaciones de palabras. Se basa en la hipótesis distribucional para asignar palabras con similitudes semánticas a vectores de incorporaciones geométricamente cercanas. La hipótesis distribucional afirma que las palabras que suelen tener las mismas palabras vecinas tienden a ser semánticamente similares. Tanto “perro” como “gato” suelen aparecer cerca de la palabra “veterinario”, y este hecho refleja su similitud semántica. Como dijo el lingüista John Firth en 1957, “conocerás una palabra por la compañía que mantiene”.
En el siguiente video, se explica otro método para crear una incorporación de palabras como parte del proceso de entrenamiento de una red neuronal, con un modelo más simple:
Incorporaciones estáticas o contextuales
Una limitación de las incorporaciones de palabras, como la que se analizó en el video anterior, es que son estáticas. Cada palabra está representada por un solo punto en el espacio vectorial, a pesar de que puede tener una variedad de significados diferentes, según cómo se use en una oración. En el último ejercicio, descubriste la dificultad de asignar similitudes semánticas para la palabra naranja, que puede significar un color o un tipo de fruta.
Las incorporaciones contextuales se desarrollaron para abordar estas deficiencias. Las incorporaciones contextuales permiten múltiples representaciones de la misma palabra, cada una de las cuales incorpora información sobre el contexto en el que se usa la palabra. En una incorporación contextual, la palabra naranja podría tener dos representaciones separadas: una que captura el uso del "color" de la palabra, como en oraciones como "Mi suéter favorito tiene rayas naranjas", y otra que captura el uso "fruta" de la palabra, como en oraciones como "La naranja se arró del árbol antes de que hubiera madurado por completo".