記事一覧に戻る
論文を読む

Attention Is All You Need を、自分の言葉で読み解く

Transformerの原点となった論文を読む。「どこに注目するか」というアイデアを、数式と身近なたとえで整理してみました。

Q・K・Vを結ぶ線でAttentionの関係を表した図

長い文章を読むとき、私たちはすべての単語を同じようには扱っていない。少し前に出てきた主語を思い出したり、遠くにある言葉とのつながりに気づいたりする。

Attentionを理解する入口として、まずは「いまの言葉を理解するために、ほかのどの言葉を参照するか」という問いを置いてみる。

まず、論文の位置づけをつかむ

Vaswaniらの論文は、再帰や畳み込みを使わず、Attentionを中心に組み立てたTransformerを提案した。機械翻訳の実験を通して、品質と並列化のしやすさを示している。

この記事では全体の実装には踏み込まず、その核になるAttentionの直感をつかむことを目標にする。

Query・Key・Valueを、図書館で考える

図書館で調べものをする場面を想像する。知りたいことがQuery、本を探す手がかりがKey、見つけた本から得る内容がValue。これは理解のためのたとえで、実際のモデルではいずれもベクトルとして扱う。

  • Query(Q):何を知りたいか。
  • Key(K):どれだけ関連があるかを比べる手がかり。
  • Value(V):関連度に応じて集める情報。

数式は「重みをつけて集める」

Scaled Dot-Product Attentionの形は、次のように表せる。

Attention(Q,K,V)=softmax(QKTdk)V

まずQとKで関連度を計算し、スケールを調整する。softmaxで重みに変換してから、その重みでVを集める。記号を一つずつ追うと、やっていることは「どの情報を、どれくらい参照するか」に近づいてくる。

理解は、まだ途中でいい

一つの式が読めるようになったら、次はMulti-Head Attentionや位置情報の扱いへ進めばいい。論文全体を一度に理解するより、一つの疑問を持ち帰れる読み方を大切にしたい。

式を眺めるだけでなく、「この計算は、何を決めているんだろう」と言葉にしてみる。

読んだもの

Vaswani et al., Attention Is All You Need(2017)。本記事のたとえは、理解のために独自に付け加えたものです。