アテンション単位
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/01 21:44 UTC 版)
「Transformer (機械学習モデル)」の記事における「アテンション単位」の解説
Transformer の基本的な構成要素は、Scaled dot-product attention unit と表現されるアテンション単位である。 文が Transformer モデルに渡されると、アテンションの重みがすべてのトークン間で同時に計算される。 アテンション単位は、コンテキスト内の全てのトークンの埋め込みを生成するが、そこにはトークン自体の情報だけでなく、他の関連トークンとの関連(についてアテンションの重みで重み付けされたもの)も含まれる。 具体的には、Transformerモデルは、各アテンション単位について、クエリの重み行列 W Q {\displaystyle W_{Q}} 、キーの重み行列 W K {\displaystyle W_{K}} 、値の重み行列 W V {\displaystyle W_{V}} の 3 つを学習する。 i {\displaystyle i} 番目のトークンに対し、入力の埋め込み x i {\displaystyle x_{i}} に重み行列のそれぞれを乗じることで、クエリベクトル q i = x i W Q {\displaystyle q_{i}=x_{i}W_{Q}} 、キーベクトル k i = x i W K {\displaystyle k_{i}=x_{i}W_{K}} 、値ベクトル v i = x i W V {\displaystyle v_{i}=x_{i}W_{V}} ができる。アテンションの重み a i j {\displaystyle a_{ij}} はクエリベクトル q i {\displaystyle q_{i}} とキーベクトル k j {\displaystyle k_{j}} の内積(dot product)として計算され、勾配の安定化のためにキーベクトル k j {\displaystyle k_{j}} の次元の平方根 d k {\displaystyle {\sqrt {d_{k}}}} で除算され(scaled)、さらに softmax 関数で重みの合計が 1 に正規化される。 クエリの重み W Q {\displaystyle W_{Q}} とキーの重み W K {\displaystyle W_{K}} は異なる行列であり、アテンションが非対称になりうることに注意が必要である。トークン i {\displaystyle i} がトークン j {\displaystyle j} に関心を向ける(すなわち q i ⋅ k j {\displaystyle q_{i}\cdot k_{j}} が大きい)場合であっても、トークン j {\displaystyle j} がトークン i {\displaystyle i} に注意を向ける (すなわち q j ⋅ k i {\displaystyle q_{j}\cdot k_{i}} が大きい)とは限らない。 トークン 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}} に相当する。 A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V {\displaystyle {\begin{aligned}\mathrm {Attention} (Q,K,V)=\mathrm {softmax} \left({\frac {QK^{\mathrm {T} }}{\sqrt {d_{k}}}}\right)\,V\end{aligned}}}
※この「アテンション単位」の解説は、「Transformer (機械学習モデル)」の解説の一部です。
「アテンション単位」を含む「Transformer (機械学習モデル)」の記事については、「Transformer (機械学習モデル)」の概要を参照ください。
- アテンション単位のページへのリンク