たとえば、入力シーケンス位置にある単語場合、4次元埋め込み、および場合、操作は
wpos∈[0,L−1]w=(w0,⋯,wL−1)ewdmodel=4e′w=ew+[sin(pos100000),cos(pos100000),sin(pos100002/4),cos(pos100002/4)]=ew+[sin(pos),cos(pos),sin(pos100),cos(pos100)]
ここで、位置エンコーディングの式は次のとおりです。
(したがって原紙で)。PE(pos,2i)=sin(pos100002i/dmodel),
PE(pos,2i+1)=cos(pos100002i/dmodel).
dmodel=512i∈[0,255]
この手法が使用されるのは、提案されたアーキテクチャでは単語の順序(最初の単語、2番目の単語、...)の概念がないためです。入力シーケンスのすべての単語は、特別な順序や位置(通常のRNNまたはConvNetアーキテクチャーとは異なります)なしでネットワークに供給されるため、モデルには単語の順序がわかりません。その結果、位置依存の信号が各単語の埋め込みに追加され、モデルが単語の順序を組み込むのに役立ちます。実験に基づいて、この追加は、埋め込み情報の破壊を回避するだけでなく、重要な位置情報も追加します。RNNの場合、単語をRNNに順次フィードします。つまり、ステップで番目の単語がフィードされ、モデルが単語の順序を組み込むのに役立ちます。nn
Jay Alammarによるこの記事は、優れた視覚化で論文を説明しています。残念ながら、位置エンコーディングの例は現時点では正しくありません(偶数のインデックスにはを使用し、奇数のインデックスにはを使用するのではなく、埋め込み次元の前半にはを使用し、後半にはを使用します)。sincossincos