Transformer (機械学習モデル)
F F N ( x t ) = R e L U ( x t W 1 ) W 2 {\displaystyle FFN(x_{t})=ReLU(x_{t}W_{1})W_{2}}
Point-wise Feed-forward サブレイヤでは、位置 t {\displaystyle t} における入力ベクトル x t {\displaystyle x_{t}} に対しフィードフォワード全結合ネットワーク(MLP)を適用する。重み W 1 {\displaystyle W_{1}} W 2 {\displaystyle W_{2}} は位置 t {\displaystyle t} に依らず共有されている(異なるレイヤでは異なる重み)。すなわち特徴量をチャネルとした位置方向への 2-layer pointwise Conv1d と等価の処理をおこなう。
FFNは層内の並列計算が可能である。ゆえにこのサブレイヤは位置方向に並列計算が可能であり、Transformerの目標である高い並列性の学習が可能になっている。
サブレイヤはResidual connection内で利用されるため、入出力次元を合わせることが好ましい。原論文では入出力次元を d m o d e l = 512 {\displaystyle d_{model}=512} で固定したうえで 中間層の次元を入出力より大きくしている。
トークン i {\displaystyle i} へのアテンション単位の出力はすべてのトークンの値ベクトルの加重和であり、アテンションの重み a i j {\displaystyle a_{ij}} (トークン i {\displaystyle i} からそれぞれのトークンへのアテンション)で重み付けされている。
すべてのトークンのアテンションの計算は、1つの大きな行列計算として表現できる。これは、行列演算を高速に実行できる行列演算最適化を用いたトレーニングに役立つ。行列 Q {\displaystyle Q} 、 K {\displaystyle K} 、 V {\displaystyle V} の i {\displaystyle i} 番目の行は、それぞれ、クエリベクトル q i {\displaystyle q_{i}} 、キーベクトル k i {\displaystyle k_{i}} 、値ベクトル v i {\displaystyle v_{i}} に相当する。