¿Qué hace exactamente esta función, tf.nn.embedding_lookup (), en TensorFlow?

Es una forma conveniente de incrustar documentos de texto en TensorFlow.

Al utilizar el método tf.nn.embedding_lookup () , se espera que alimente su red con lotes de índices (por ejemplo, un lote podría ser [[1, 2, 4, 2, 8], [6, 3, 9, 2, 8], [2, 19, 34, 3, 7, 18]]. Esto significa que la primera muestra (documento) contiene los tokens número 1, 2, 4, 2, 8 (ordenados).

En este caso, tiene tantos elementos en su índice como tokens en todo su corpus de documentos. El tamaño de su matriz de incrustación es (número de tokens en vocabulario * dimensión de incrustación). La dimensión de incrustación es un hiperparámetro que debe definir. Al alimentar a su red con lotes de índices, cada índice recuperará la fila de la matriz de incrustación correspondiente al token relevante. Cuando se trabaja con PNL y aprendizaje profundo, es habitual tener un “tamaño normalizado” para sus documentos, es decir, cada documento en un lote se truncará o rellenará para tener el mismo tamaño. La función embedding_lookup recuperará la fila relevante de la matriz de incrustación (generalmente, esta matriz se inicializa aleatoriamente con variables aleatorias gaussianas o con incrustaciones de Word2Vec, por ejemplo).

Aquí hay un pequeño borrador explicativo:

Cada índice se asigna a su incrustación, es decir, a la fila correspondiente de la matriz de incrustación. Tenga en cuenta que esta matriz de inclusión se puede entrenar o se fija a su valor inicial.

Además, la representación en el borrador es útil para redes neuronales convolucionales. Una representación secuencial como [[[0.32, 0.48, …, 1.2], […], […]], [[0.32, 0.48, …, 1.2], […], […]], [[…] , […], […]]] puede ser más adecuado para redes neuronales recurrentes y también es posible con embedding_lookup.

Se indexa en una matriz (en este punto, cada posible entrada que pueda tener está representada por algún número) y recupera la fila correspondiente de la matriz de incrustación.

More Interesting

Quiero aprender Python para el análisis de datos y el aprendizaje automático. ¿De dónde debería comenzar?

¿La correlación entre dos variables cuenta como evidencia débil de un vínculo causal entre ellas?

¿Qué parámetros en los datos de entrenamiento / prueba deben considerarse para decidir la elección de un método de clasificación de aprendizaje automático (fuera de SVM, red neuronal, regresión logística, etc.)?

¿Cuáles son las mejores técnicas para crear vectores de oraciones para el procesamiento del lenguaje natural?

¿Los bancos de inversión como Goldman Sachs o JP Morgan utilizan el aprendizaje automático? ¿Contratan a un ingeniero de IA?

Aprendizaje automático: ¿cómo se puede saber cuándo combinar diferentes características sería útil?

¿Cuáles son los pros y los contras del aprendizaje en línea y fuera de línea? ¿En qué escenarios son útiles cada uno?

¿Cuáles son los temas que debo saber antes de comenzar el aprendizaje automático?

¿Qué es el mecanizado en caliente?

¿Necesito implementar modelos de aprendizaje profundo desde cero?

¿Cuáles son algunos temas de proyectos realmente interesantes para la investigación en informática como el reconocimiento de gestos a través de Kinect o el sexto sentido de Pranav Mistry?

¿Cómo se diseñan y desarrollan las nuevas arquitecturas de aprendizaje profundo?

¿Se puede entrenar la imagen usando la función de activación?

¿Las redes neuronales convolucionales funcionan de la misma manera que las redes en nuestro cerebro?

¿Qué tan efectivamente se pueden usar las redes neuronales en la regresión? ¿Es posible alguna configuración que prediga un número que no se ve en los datos de entrenamiento?