Hallo,
ich bin Computerlinguist und interessiere mich für die Positionskodierung bei den jetzt so beliebten Transformer-Netzwerken.
Jedem Inputwort wird ein Wortvektor zugeordnet, der 512 reelle Zahlen enthält (Anzahl sei hier egal). Um die Position des Wortes im Satz zu kennzeichnen, erzeugt man einen Vektor (Positionsvektor) der gleichen Länge und addiert diesen zu dem Wortvektor hinzu. Der Positionsvektor ist stets klein, damit der Wortvektor sich nicht zu sehr in der Semantik verschiebt. Ohne Positionsvektor ließen sich alle Eingabewörter in ihrer Reihenfolge vertauschen mit gleichem Output. Der Positionsvektor enthält somit jegliche Grammatik.
Wie verarbeitet nun das Transformer-Netzwerk diesen Positionsvektor, wenn dieser bloß additiv dem Wortvektor hinzugefügt wurde. Und geht nicht der Positionsvektor unter, wenn man nicht-lineare Operationen macht?
Ich freue mich auf jede Antwort, die etwas Aufhellung in das Thema bringt.