ConvolutionとSelf-Attentionの違いは何ですか?[Quora]

機構に違いがあります。

Convolution(畳み込み)では入力データにフィルタと呼ばれる小領域をとり、これを1つの特徴量として畳み込みを行います。

イメージとしては、下の図のように、黄色のフィルタを緑色の画像に対して、1つずつずらしながら畳み込み演算を行うことで、特徴量化を行います。下の図では、5×5の画像に対して、3×3のフィルタを適用し、1つずつずらしているので、畳み込み後に3×3のピンク色の特徴マップが得られます。

引用元: Unsupervised Feature Learning and Deep Learning Tutorial

Convolutionは主に画像認識の分野で用いられており、Convolution層を用いることによって、画像に映り込んだオブジェクトの位置がずれていたり、形が少し変わったとしても、同じものだと機械に認識させることができます。

一方、Attentionは注意機構と呼ばれ、私たち人間と同じように必要な情報だけに「注意」を向けさせることができます。そして、Self-Attentionは、1つの文で自分自身のAttentionネットワークを構築する手法になります。

イメージとしては、下の図のように、左の文の各フレーズが、相手からどれだけ注意を向けられているか計算します。この図では、色の濃淡が重みの大きさを表しており、線で結ばれた相手のフレーズの色が濃ければ濃いほど注目の度合いが大きいということになります。

引用元: jessevig/bertviz

Attentionは主に自然言語処理の分野で用いられており、Seq2Seqという手法における、固定長ベクトルの問題を解決するために考案された手法です。Attentionは、入力文の長さに比例した情報をエンコードできる点でSeq2Seqより優れており、さらに並列処理しやすいため、BERTやGPT-3など、巨大で高性能な言語モデルの学習にも応用が進んでいます。

ConvolutionとAttentionを比べて、どちらが優れているかを議論するのは簡単ではありませんが、一般的な回答としては、用途によりけり、ということになるかと思います。

最近では、Convolutionを用いて抽出した特徴をAttentionの入力にしたり、Convolutionを用いずにSelf-Attentionを全面的に用いた画像認識モデルなど、Attentionを取り入れた手法の研究が幅広い分野で活発に行われておりますので、Convolutionが淘汰されてしまうこともありうるのではないかと私は思います。

Quora link: https://qr.ae/pNA9xC