トランスフォーマーモデルの位置エンコーディングは何ですか?


23

私はMLを初めて使用するので、これが私の最初の質問です。私の質問が愚かであるとすみません。

私は紙を読んで理解しようとしています注意はあなたが必要なすべてであり、その中に写真があります:

ここに画像の説明を入力してください

位置エンコーディングが何であるかわかりません。いくつかのyoutubeビデオを聞いて、それは単語の意味と位置の両方を持つ埋め込みであり、sin(x)またはと関係があることがわかりましたcos(x)

しかし、それが何であるのか、それがどの程度正確に行われているのか理解できませんでした。だから私はいくつかの助けのためにここにいます。前もって感謝します。

回答:


30

たとえば、入力シーケンス位置にある単語場合、4次元埋め込み、および場合、操作は wpos[0,L1]w=(w0,,wL1)ewdmodel=4

ew=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


1
:また、この優れた記事では、純粋な位置埋め込みに焦点を当てているkazemnejad.com/blog/...
ヨハンObadia

6

位置エンコーディングは、単語の値と文中のその位置を再表現したものです(ただし、最初または最後または中央と同じではありません)。

ただし、文の長さは任意であることを考慮に入れる必要があるため、異なる長さの文がある場合、「Xワードは文の3番目です」と言っても意味がありません。3ワードの文の3番目は完全に20ワードの文では3番目とは異なります。

どのような位置エンコーダが行うことの周期性の助けを得ることですと文章中の単語の位置の情報を返す関数を。sin(x)cos(x)


2
ありがとうございました。この位置エンコーダがこれをとでどのように行うかについて詳しく説明してますか?sincos
ペイマン

1

他の回答に追加するために、OpenAIのref実装は自然対数空間でそれを計算します(精度を向上させるために、私は2進数で対数を使用できたかどうかわかりません)。彼らはエンコーディングを思いつきませんでした。次に、for-forループとしてCで書き換えられたPEルックアップテーブルの生成を示します。

int d_model = 512, max_len = 5000;
double pe[max_len][d_model];

for (int i = 0; i < max_len; i++) {
   for (int k = 0; k < d_model; k = k + 2) {
      double div_term = exp(k * -log(10000.0) / d_model);
      pe[i][k] = sin(i * div_term);
      pe[i][k + 1] = cos(i * div_term);
   }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.