-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Positional Encoding #2
Comments
Ya que empezamos el proyecto en otro repositorio, voy a copiar a continuación los mensajes relevantes para continuar. |
Comentario de @IsaacRodgz Artículos de referencia:
|
Comentario de @IsaacRodgz Dado que todavía parece no haber un consenso o una prueba contundente sobre si los positional encodings son necesarios o no, creo lo mejor sería hacer que sea un parámetro opcional en el modelo, es decir que por argumentos se pueda decidir si incluirlos o no en el modelo. En cuanto a la implementación, yo propondría dejar la versión orginal, con señales seno y coseno y a lo mejor una opción donde estos sean una matriz Embedding aprendible. ¿Qué opinan? |
Comentario de @garbanciton Totalmente de acuerdo contigo deberíamos poner esa función de positional encoding con opción de ponerla o quitarla. Al final resumiendo mucho ese
digamos que "gato" y "saltó" tiene vectores [1,2,3] y [2,3,4] su dot product es: >> import numpy as np
>> np.dot([1,2,3],[2,3,4])
>> 20 si ahora a estos embeddings sumamos el vector de positional encoding de la oración 1 su dot product será totalmente distinto del de la oración 2, y así es como supuestamente tenemos en cuenta la posición de las palabras. Personalmente creo que no tiene sentido sumar la información de los embeddings ,si los embeddings son pre-entrenados como puede ser word2vec o glove ,porque son cosas totalmente distintas. Ahora bien tal y como dicen en el paper:
puede tener más sentido sumar aquí, ya que esos embeddings están creándose durante el entrenamiento con la suma del postional encoding. Tengo la intuición de que estos postional encoding al ser senos y cosenos tienen en cuenta la posición relativa entre palabras, es decir, las palabras que aparezcan en la posición 2 y 3, y que esas mismas aparezcan en otro contexto pero en las posiciones 7 y 8 su dot product debería ser el mismo. Sería interesante ver esta hipótesis una vez hallamos entrenado los embeddings:
|
Un par de vídeos de ~10mins muy útiles para entender positional encoding: |
Entender, explicar e implementar la pieza "Positional Encoding" de la arquitectura Transformer.
The text was updated successfully, but these errors were encountered: