¿Existe un modelo más efectivo que Word2vec desde 2013?

Primero, más popular no significa más efectivo. A menudo, alguna técnica se vuelve más popular porque es más conveniente de usar y funciona razonablemente bien.

Algunos ejemplos clásicos de este fenómeno son:

  • Agrupación de k-means: existen todo tipo de métodos de agrupación que no tienen las limitaciones de k-means, pero k-means sigue siendo bastante popular, ya que es muy sencillo de implementar.
  • SVM: hay muchas variantes de SVM que han demostrado ser mejores que SVM de vainilla en algún aspecto u otro, pero debido a LibSVM, la biblioteca de código abierto eficiente y fácil de usar para SVM de vainilla, sigue siendo el técnica más utilizada en comparación con las versiones mejoradas.

Ahora, hay 2 ventajas (algo relacionadas) de Word2vec que los hacen tan populares:

  • Entrenado previamente : la mayoría de las veces, necesita usar incrustaciones de palabras en alguna aplicación posterior . Por lo tanto, es mucho más fácil usar incrustaciones de palabras pre-entrenadas disponibles de Google que entrenar las incrustaciones de palabras desde cero utilizando una mejor técnica. La pequeña ganancia en precisión a menudo no vale el esfuerzo de implementar la nueva técnica y ajustar cuidadosamente todos los parámetros. Este artículo compara varias técnicas de inclusión de palabras. Aquí hay un resultado importante del documento “… para las tareas en las que la inclusión de palabras se usa como una característica o para la inicialización de redes neuronales, la elección del modelo no afecta significativamente los resultados. Además, con base en los resultados dados en la Tabla 4, los márgenes entre los modelos simples y complejos son relativamente pequeños. Por lo tanto, los modelos más simples suelen ser suficientes para tareas reales “.
  • Tamaño del cuerpo : en general, cuanto más grande sea el cuerpo en el que entrenes tu modelo, mejores serán las incrustaciones. Obviamente, es difícil competir con los datos a escala de Google y la potencia de cálculo que se utilizó para entrenar Word2vec.

Una alternativa popular a Google Word2vec es GloVe, que también se ha entrenado previamente y se ha entrenado en un corpus lo suficientemente grande. Aquí hay un blog que compara los dos: GloVe vs word2vec revisited.

Ha habido bastantes modelos ( todos sin supervisión como word2vec ) que mejoran y funcionan mejor que word2vec en ciertos aspectos.

  • el más notable de ellos es quizás Adagram: enlace al papel, enlace fuente de Github.
  • Otros dos modelos notables son Wang2vec y Fastttext, que se describen a continuación.

Adagram genera diferentes incrustaciones de palabras para una palabra que tiene diferentes significados en diferentes contextos ( polisemia)

La siguiente imagen muestra los dos sentidos para la palabra planta en el corpus usando Adagram

La siguiente imagen muestra los tres sentidos para la palabra luz en corpus usando Adagram. El índice de sentidos (1) relacionado con el electromagnetismo (2) vehículos con peso ligero (3) luz en sentido filosófico.

Para tareas donde la relación sintáctica es más importante que la semántica, el enlace Wang2vec al papel, el enlace fuente de Github puede ser una mejor opción que word2vec

La imagen a continuación es del documento de Wang2vec que muestra que el modelo funciona ligeramente mejor que word2vec al acercar las palabras sintácticamente relacionadas que las semánticamente relacionadas.

Enlace de papel de texto rápido, la fuente de Github funciona mejor que word2vec en el manejo de palabras de vocabulario y también cuando la entrada tiene palabras mal escritas ( por ejemplo, texto de twitter – las palabras están mal escritas conscientemente para efecto en muchos casos: dormir, dormir ). A pesar de que las palabras mal escritas pueden tener contextos similares, el número de palabras en el contexto puede ser demasiado pequeño, o incluso estar ausente, en un tweet (por ejemplo, ¡sleeeeeep! – solo un tweet de una palabra)

Aquí hay unos ejemplos. En este caso, las incrustaciones generadas en un corpus de tweets (y Wiki para más contexto de texto) se usan para generar una incrustación de oraciones ( todos los vectores de palabras en una oración simplemente se agregan para formar incrustaciones de oraciones ), que luego se usa para hacer un coseno comparación de distancia con otros tweets existentes para encontrar tweets similares. El primer ejemplo, aunque divertido, es ilustrativo: muestra que el texto rápido no solo conserva la relación semántica de word2vec sino que también acerca a Feynman a la física (a pesar del improperio mal escrito ): word2vec habría producido el mismo resultado si las palabras fuera del vocabulario se hubieran eliminado. pero no en el tercer ejemplo a continuación, una oración con una palabra mal escrita como sueño todavía lo acerca a las oraciones relacionadas con el sueño, que word2vec puede no ser capaz de hacer, particularmente si dormir no tiene vocabulario.

Otros ejemplos de texto rápido.

En el siguiente ejemplo, a pesar de que la entrada tiene el sueño mal escrito, trae otras oraciones relacionadas. En word2vec, si el corpus de entrada no tiene la palabra sleep mal escrita de la misma manera, sería una palabra sin vocabulario. En texto rápido, dormir y dormir están cerca en el espacio vectorial.

¿Qué quieres decir con un modelo efectivo?

Word2vec es el primer intento de establecer relaciones entre las relaciones de las palabras. Anteriormente hay SVD, LSI, LSA, etc. para hacer esto, pero todos tienen una funcionalidad limitada. En el mejor de los casos, puede usar esas cosas para permitir una buena búsqueda o clasificación.

Con word2vec, uno puede, no solo entender, cómo se relaciona una palabra entre sí, sino también si la relación entre dos palabras se basa en otras dos palabras. El famoso ejemplo de “si es hombre a mujer, ¿cuál es la palabra para rey?”

Hay otros intentos de hacer esto. Hay guante de Stanford. Experimenté con Contex2vec.

Pero todos estos modelos tienen la desventaja básica como cualquier otro modelo en aprendizaje profundo / red neuronal. Es una matemática simple ejecutada a gran escala y necesita muchos datos. Incluso con muchos datos, puede extraer solo un porcentaje limitado de relaciones, no todas. Las relaciones raras están fuera de discusión. Las palabras fuera del vocabulario solo están habilitadas, por ejemplo: texto rápido de Facebook.

Si quiere decir esto como un punto de referencia para la efectividad, entonces no hay un modelo efectivo desde word2vec.

Queremos que las computadoras le hagan a nuestro cerebro, lo que los motores le hicieron a nuestro músculo, el trabajo pesado.

Word2vec es el primer intento en esa dirección. Un modelo más efectivo puede extraer relaciones raras o leer un texto como humano y convertir las palabras en vectores.

More Interesting

¿Cuántas clases diferentes podemos tener prácticamente dentro de un conjunto de entrenamiento, mientras usamos el algoritmo KNN?

¿En qué campos todavía no se ha aplicado el aprendizaje automático (o está menos explorado)?

¿Cuál es la relación entre IA, aprendizaje automático y ciencias de la computación? ¿Hay especializaciones en IA o aprendizaje automático, o son especializaciones en informática?

¿Qué tan bueno debería ser para inscribirme en un Master Machine Learning?

¿Cómo se puede interpretar el teorema de Bayes en términos de inferir relaciones causales en los datos?

¿Cuáles son los problemas con el enfoque de clasificación uno contra todos?

¿Qué tan importante es el aprendizaje profundo en la conducción autónoma?

¿Cuáles son algunas buenas ideas de proyectos para aplicaciones web de negocios que utilizan análisis de sentimientos?

Si pudiera construir una plataforma de contenido (piense en la entrega de noticias) desde cero con el objetivo de escalar a millones de usuarios, ¿qué infraestructura utilizaría?

¿Qué es el aprendizaje supervisado?

En TensorFlow, ¿qué es una capa 'densa' y una 'abandonada'?

¿Cuáles son algunos buenos indicadores para ideas de proyectos en biología computacional?

¿Cuáles son algunos algoritmos de corrección ortográfica que usan los motores de búsqueda? Por ejemplo, cuando utilicé Google para buscar "imágenes de Google", me preguntó: "¿Quiso decir: imágenes de Google?".

¿Un descenso de gradiente funciona en Big Data?

¿Qué hace el -1 en la siguiente línea del código TensorFlow x_image = tf.reshape (x, [-1,28,28,1])?