ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

Attentionを使うとは

こんにちは!ノイです。

Attention

Attention(アテンション)とは、機械学習自然言語処理の分野において注目されている技術の一つです。Attentionは、モデルが入力データの中から重要な情報に注目するための仕組みです。

Attentionの要素

Attentionは、Query、Key、Valueの三つの要素で構成されています。 Query、KryValueで構成されている

  • Query:Inputをもとに全結合層で処理を行ったもの
  • Key:Queryとどれだけ似ているかを測るための指標
  • Value:Keyに基づいた出力

Attentionの仕組み

まず、InputからQueryを作成します。そして、検索するための情報を含むMemoryからKeyとValueを分離します。KeyとQueryの類似度を測ることで、関連性の高い情報を取り出します。その後、QueryとKeyの内積を取り、logitを計算します。softmax関数を使って、各QueryがMemoryから情報を受け取る重みを計算します。そして、Attention WeightとValueを合わせた結果が、Outputとなります。

MemoryからKeyとvalueをえるのは分離するのはkeyとvalue 間の非自明な変換によって高い表現力が得られるためである。keyとqueryの内積(関連度)からlogitをとる。

※inputは入力の時系列、memoryは検索するための情報の時系列

※Attention Weightは各queryがそのmemoryから情報をもらうかの重み

input

tensorのshapeは[batch_size, length, depth]のようになっています。 トークンをdepth次元の分散表現にします。

分散表現:分散表現は、単語や文書を数値化したもの

代表的な手法としては、Word2VecやGloVe (Global Vectors)などがあります。

Attentionの応用

Attentionは、入力データの中から重要な情報を選び出すことができます。例えば、文章の中から重要な単語を取り出したり、画像の中から注目すべき領域を決定することができます。 Attentionは、機械翻訳や質問応答、文章要約、音声認識などの分野で活用されています。これらのタスクでは、入力データの中から重要な情報を正確に抽出することが重要です。Attentionを利用することで、高い精度でこれらのタスクを実現することができます。

※この記事の一部情報にはChatGPTを用いています。

YouTube

youtu.be