En esta sección, se describen varios medios para obtener incorporaciones, así como cómo transformar incorporaciones estáticas en incorporaciones contextuales.
Técnicas de reducción de la dimensionalidad
Existen muchas técnicas matemáticas que capturan las estructuras importantes 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 para crear una incorporación para un sistema de aprendizaje automático.
Por ejemplo, el análisis de componentes principales (PCA) se usó 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 brinda una incorporación bien personalizada para tu sistema en particular, pero puede tardar más 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 cualquier otra función y capa oculta. 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. En primer lugar, 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.
![Figura 12. Red neuronal para la codificación one-hot de hot dog. La primera capa es una capa de entrada con 5 nodos, cada uno con una anotación de un ícono del alimento que representa (borscht, hot dog, ensalada, etc. y shawarma). Estos nodos tienen los valores [0, 1, 0, …, 0], respectivamente, que representan la codificación one-hot de “hot dog”. La capa de entrada está conectada a una capa de incorporación de 3 nodos, cuyos nodos tienen los valores 2.98, -0.75 y 0, respectivamente. La capa de incorporación está conectada a una capa oculta de 5 nodos, que luego se conecta a una capa de salida de 5 nodos.](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/one_hot_hot_dog_embedding.png?authuser=4&hl=es-419)
hot dog
proporcionada como entrada a una red neuronal profunda. Una capa de incorporación traduce la codificación one-hot en el vector de incorporación tridimensional [2.98, -0.75, 0]
.
Durante el entrenamiento, se optimizarán los pesos de la capa de incorporación para que los vectores de incorporación de ejemplos similares estén más cerca entre sí. Como se mencionó anteriormente, es poco probable que las dimensiones que elige un modelo real para sus incorporaciones sean tan intuitivas o comprensibles como en este ejemplo.
Incorporaciones contextuales
Una limitación de los vectores de incorporación estáticos de word2vec
es que las palabras pueden tener distintos significados en diferentes contextos. “Sí” significa una cosa por sí sola, pero lo opuesto en la frase “Sí, claro”. “Post” puede significar “correo”, “enviar por correo”, “pieza posterior de un pendiente”, “marcador al final de una carrera de caballos”, “posproducción”, “pilar”, “colocar un aviso”, “colocar un guardia o un soldado” o “después”, entre otras posibilidades.
Sin embargo, con las incorporaciones estáticas, cada palabra está representada por un solo punto en el espacio vectorial, aunque pueda tener varios significados.
En el último ejercicio,
descubriste las limitaciones de las incorporaciones estáticas para la palabra
orange, que puede significar un color o un tipo de fruta. Con solo una incorporación estática, naranja siempre estará más cerca de otros colores que de jugo cuando se entrene en el conjunto de datos word2vec
.
Las incorporaciones contextuales se desarrollaron para abordar esta limitación. Las incorporaciones contextuales permiten que una palabra se represente con varias incorporaciones que incorporan información sobre las palabras circundantes, así como la palabra en sí. Naranja tendría una incorporación diferente para cada oración única que contenga la palabra en el conjunto de datos.
Algunos métodos para crear incorporaciones contextuales, como ELMo, toman la incorporación estática de un ejemplo, como el vector word2vec
para una palabra en una oración, y la transforman mediante una función que incorpora información sobre las palabras que la rodean. Esto produce una incorporación contextual.
Haz clic aquí para obtener detalles sobre las incorporaciones contextuales
- En el caso de los modelos de ELMo, la incorporación estática se agrega con incorporaciones tomadas de otras capas, que codifican las lecturas de la oración de adelante hacia atrás y de atrás hacia adelante.
- Los modelos de BERT ocultan parte de la secuencia que el modelo toma como entrada.
- Los modelos Transformer usan una capa de autoatención para ponderar la relevancia de las otras palabras en una secuencia para cada palabra individual. También agregan la columna relevante de una matriz de incorporación posicional (consulta codificación posicional) a cada incorporación de token aprendida anteriormente, elemento por elemento, para producir la incorporación de entrada que se ingresa al resto del modelo para la inferencia. Esta vinculación de entrada, única para cada secuencia textual distinta, es una vinculación contextual.
Si bien los modelos descritos anteriormente son modelos de lenguaje, las incorporaciones contextuales son útiles en otras tareas generativas, como las imágenes. Una incorporación de los valores RGB de píxeles en una foto de un caballo proporciona más información al modelo cuando se combina con una matriz posicional que representa cada píxel y una codificación de los píxeles vecinos, lo que crea incorporaciones contextuales, que las incorporaciones estáticas originales de los valores RGB por sí solos.