自然言語処理の世界から登場したTransformerですが、最近では自然言語処理以外のところでも使用されるようになっていると個人的に感じています。 そんなTransformerですが、細かいところをあんまり知らなかったのでチョットずつ勉強してました。
Transformerやその周辺に関しては、すでに多くの方が解説記事を書かれているのでそちらを参照すればよいのですが、なにぶん内容が複雑なのでわかりやすい記事がどれなのかを特定するのが大変でした。
今回は、勉強がてらいろんな記事を見たので、その中でTransformerをあまり詳しくない人が勉強するときの情報源をメモしていきます。
Transformer
元論文
とりあえず元論文はこちらです。
解説記事
個人的に、こちらの記事はイラストで直感的に説明されているため、数ある解説記事の中でもかなりわかりやすい記事だと思います。
実装解説
上の記事で、Transformerの動作の概要を理解したら、次は実際に実装していくことを考えます。
こちらは英語ですが、論文に沿ってPytorchを使用した実装の解説記事になります。
自然言語処理の研究における歴史的位置づけ
歴史的背景を知っておくと理解が進むことがあり、自然言語処理の歴史を学ぶときはこちらの記事がわかりやすかったです。
書籍
書籍で学ぼうとした際には、おそらくこちらの書籍が該当するかと思います。
つくりながら学ぶ!PyTorchによる発展ディープラーニング
- 作者:小川 雄太郎
- 発売日: 2019/07/29
- メディア: Kindle版
上の実装解説が英語でどうしても嫌だという人はこちらの書籍で学ぶのもひとつの手段かと思います。 こちらの書籍には、Transformer以外の内容も書かれていますし、損はしないかと思います。
周辺
画像×Transformer
すでにTransformerはNLPだけでなく、画像に対しても有効性が確認され始めているようです。
日本語でも解説記事が書かれています。
時系列×Transformer
Transformerのモデルを使用して、時系列予測を行った研究も行われています。 自然言語も系列データではありますが、言語でない系列データに適用した例も登場してきています。
音声×Transformer
音声も系列データですから、Transformerが使用されるケースがあるようです。 まずはこちら。
こちらは、2019年時点で多くのベンチマークでTransformerを使用したモデルとstate-of-the-artを比較した論文。 この時点で、だいたいTransformerを使ったケースのほうが優れているという結果ですね。
その他、実際にコンペでも使用され、優勝したモデルもあるそうです。
感想
自分の調査のメモなんで特に感想はありませんが、NLPである無しに関係なく「とりあえずTransformer使ってやってみるか」って雰囲気はありますね。 モデルを考えるときには、Transformerを使うことが有望な選択肢になる時代になってきたんでしょうね。