【#7 論文解説】Attention is All You Need
こんにちは,ohashiです.
今回は畳み込み層を持たない機械翻訳モデルをご紹介します.
従来の自然言語処理を刷新して新たな定番となったTransformerに興味がある方はぜひ!
目的
こんな人向け
- 社内で扱ったことのない分野の技術調査を始めたい.
- ゼミでの論文紹介の前に論文がどんな技術か把握したい.
- githubのコードを触る前に論文の要点を把握したい.
- そもそも論文を読むことが苦手.
こんな人向けではない
- 論文内の数式を完璧に追って理解したい.(要は何がしたいのかの説明を優先します.)
- 著者または他者実装の追試結果,実装ノウハウを知りたい.(githubをご参照下さい.)
論文
今回は自然言語処理分野の機械翻訳モデルで有名になったTransformerを紹介します.
- 畳み込み層を使わない.
- Attention機構と全結合層のみから構成される.
- 2017年時点,様々な機械翻訳データセットでSOTA(State Of The Art, 最高精度).
- 後に発表されるBERTのモデル構造に採用される.
等,多くの特徴がありますが,今回はTransformerの仕組みとでできることについて説明します.
Attention is all you need [NIPS, 2017]
Authors: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin
Publication: arXiv:1706.03762v5 [cs.CL]
できるようになったこと
トークン長に依存せず入力文のどこを見て翻訳すれば良いかを学習
従来では畳み込みニューラルネットワークを使用していた観点から,入力文を分割した最小単位,トークンの入力範囲が固定長に制限されていました.また,LSTMも予測誤差をどのトークンまで逆伝搬させるかをハイパーパラメータとして制限する必要がありました.それを踏まえて,Transformerはトークン長に依存しない翻訳を実現しました.
Transformerの中身でやっていることは以下です.
- 分散表現に変換した単語に対してPositional Encodingで位置情報を加算
- 位置毎の全結合層で特徴量の次元を圧縮
- Self-Attention6層で分散表現を圧縮(並列処理)
- Masked Self-Attention6層で埋め込んだ表現から単語を生成(not並列処理)
- Decode時に未来の単語は参照しないようにマスクをかける.
入力された分散表現に重み付き加重和マスクを積算して単語同士の関連度を計算
Transformerで注目されている構造はSelf-Attention層です.画像分野だと2018年にGoodfellow氏も提案したことで有名ですが,かみ砕くと,入力の特徴量マップに,重み付きマスクを乗算したものを新たな特徴量として使用しています.p.8に示しているように,入力した分散表現を一旦,位置毎の全結合層で圧縮します.目的はチャンネル数の削減と,Self-Attentionに適した特徴量に変換する為です.その後,Attention Headで指定したHead数に従って特徴量を等分します.それらを独立にScaled-Dot Product Attentionに代入します.
詳細はスライドで説明していますが,Scaled-Dot Product Attentionは抽出した特徴量マップ内で類似している特徴量ベクトルを強調している処理に相当します.等分された特徴量マップは1層では文章全体をカバーできていませんが,Multi-Head Self-Attention層で特徴量を連結し,それをさらに次のSelf-Attention層に渡す,という処理を繰り返すことにより文章全体を考慮した特徴量を獲得しています.これによりTruncated LSTM, Convolutional Seq2Seqのように解析窓を固定幅にしないといけなかった手法と比較して優位性を確立しています.
従来よりも高精度な翻訳を達成,モデルを大きくすればするほどさらに高精度な翻訳を達成
p.26から示しているように,Head数以外は,ハイパーパラメータをモデルのサイズを大きくすると,検証データセットの精度が向上していることを確認しています.Headの次元,分散表現の次元,FF中間層の次元を上げることで精度向上したことを報告しています.また,Dropout, label smoothingの有効性も切除実験からその有効性を報告しています.
まだできないこと
正確な単語同士の関連度の計算
論文中では述べられていませんが,Transformerが発表された後にSelf-Attentionを批判するいくつかの論文が学会で採択されています.その内の一つにSelf-Attentionは単語の関連度を計算しているものもあるが,説明のつかない挙動も多く見られたため,Self-Attentionはまだ完璧な技術ではないと報告されています.その後も多くのTransformerの改善論文が投稿されているため,引き続き調査が必要です.
所感
2017年12月,Vaswani氏により発表されたTransformerは以降の自然言語処理分野の研究に大きな影響を与えています.モデルをTransformerに固定し事前学習を一般化したBERTにより,Transformer自体も研究対象になっており,改善モデルも次々と報告されています.モデルをより巨大にしたXL-net, 計算負荷を大幅に削減したALBERTやReformer, Linformer, 事前学習の精査やマスク処理の変更,データ量の増加によりBERTの精度向上を図ったRoBERTa, Transformerの構造を再考察したSandwitch Transformer, Self-Attentionの改善を図るSYNTHESIZERなど,爆発的に議論が活発になります.2020年に入ってからTransformerを画像に適用して物体検出するDETRや,Transformerを使って画像の教師無し学習を行うImage-GPT2も出てきています.早くそれらの論文に追いつけるように引き続き記事をまとめていきます.次はBERTについてまとめていきます.
ohashi
2019年入社,深層学習を扱う部署に配属.大学院では動画から脈波を抽出する研究に従事.動画像の理解,人間の魅力の解析,人間の自律神経や生体信号に興味関心.深層学習だと自然言語処理の実用化に興味関心.
同じ研究分野の人間が利害問わず協力して研究動向を追って,初学者の方に自分が勉強した教材を利用してもらって,研究のコミュニティが広がると嬉しいですよね.AIはとっつきにくい分野ではないことを知ってほしいです.むしろ社会にも実装され始めている現在は,みんなでAIが今できることとできないことを把握して,知恵を絞って面白いアイデアをどんどん出して実現していく段階だと思います.そういった時代に向けて,情報共有の一助になれば幸いです.
ご連絡はお問い合わせフォームからお願い致します.