3. 今回の講義の目標
● 自然言語処理(Natural Language Processing, NLP)
の概観を理解する
● 深層学習によるNLPの基本を理解する
○ Word embedding
○ Encoder-Decoder
○ Attention
● 深層学習によるNLPの課題と最近の研究動向を理解する
3
4. 自然言語処理をもっと学びたい人に:参考資料
Stanford大学の講義資料
Natural Language Processing with Deep Learning
動画・演習のソースコードも充実
http://web.stanford.edu/class/cs224n/
Speech and Language Processing
Dan Jurafsky and James H. Martin
https://web.stanford.edu/~jurafsky/slp3/
東工大岡崎先生の講義資料
https://chokkan.github.io/deeplearning/
最新の研究は、Twitterも情報源
(NLPerの多くはTwitterにいる:ハッシュタグは#NLProc)
4
これに対して、文脈を考慮した単語ベクトルとして代表的なものにELMoがあります。
これは双方向LSTM(Bidirectional LSTM)を用いて大量のコーパスを学習することで,同じ単語でも文脈によって異なる埋め込み表現を獲得することができる手法で、2018年のNAACLという自然言語処理のトップ会議でBest paper awardを受賞した手法です。トップ会議とかにも論文をだしてみたいという人がいるのかもしれないですがELMoは2018年のBestのモデルだったということですね。。
系列から別の系列に変換する確率をモデル化したものがEncoder-decoderモデルです。
今日は晴れという単語列Xを固定長のベクトルZに変換するEncoderモデルと固定長のベクトルZからIt is sunny todayという系列Yを出力するDecoderモデルから構成されます。
ここで<BOS>はbeginning of sentenceの略で文頭, <EOS>はending of sentenceと文末を表す記号で、よく実装で使う記号なので覚えておいてください。
ここでのポイントはEncoderの最後の位置の隠れ状態ベクトルをDecoderの初期状態の隠れ状態ベクトルhとして利用するところです。
Attentionを用いた代表的なモデルとしては、現在活発に研究されているTransformerというモデルがあります。これはAttention is all you needという論文のタイトルの通り、RNNやCNNを用いずAttentionのみを用いたEncoder-decoderモデルになっています。
Encoder, Decoderはそれぞれ6層あり、〜という3種類のAttentionを使用しています。順に説明します。
positional encoding: 一番最初にこのモデルに単語の分散表現を入力するときに単語位置に一意の値を各分散表現に加算する
masked decoder: 予測すべきターゲット単語の情報が予測前のデコーダにリークしないように自己注意にマスクをかけている