• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版

HOME有料会員向けトップ > 《日経Robo》文から文を生成するニューラルネットワーク

日経Robotics 2016年1月号

AI最前線

《日経Robo》文から文を生成するニューラルネットワーク

PFN岡野原氏によるAI解説:第6回

  • 岡野原 大輔=Preferred Networks 取締役副社長
  • 2017/10/04 05:00
  • 1/1ページ

出典:日経Robotics、2016年1月号、pp.44-45(記事は執筆時の情報に基づいており、現在では異なる場合があります)

この記事は日経Robotics 有料購読者向けの記事ですが
日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
著者の岡野原大輔氏
著者の岡野原大輔氏

 自然言語処理分野において、この数年で大きく進展したのが文の認識と生成である。この中心的な役割を果たしたのがseq2seq(Sequence To Sequence)と呼ばれる新しい系列モデルだ1)

 文はサイズが可変である一方、機械学習が使うモデルのサイズは固定である。このため、文を機械学習のモデルで扱うには、何らかの形で文を機械が扱える固定長の表現に変換する必要がある。

 従来手法では文を表現するには、Bag of Wordsと呼ばれる、文に含まれる単語の集合による表現(文書中の単語の位置は無視し、文書中にある単語が出現していたら、その単語に対応する次元を1、それ以外を0にしたような表現)か、または文の意味を解析し、述語項解析をした上でその主語、述語、目的語などの3つの組を求め、これを使うといった方法が採られていた。さらにこの問題は、機械翻訳のように入力も文、出力も文であるような問題の場合、より複雑化する。入出力ともに可変長のサイズの問題を、機械学習でどのように扱うかは長年の課題であり、従来はアドホックな方法が使われていた。

可変長の文を扱いやすくしたseq2seq

 この問題を解決したのがseq2seqである。seq2seqは文から文を生成するモデルである。はじめに、入力文を単語ごとに順に読み込み、固定長の内部表現に変換し、またその固定長の内部表現から可変長の文を単語ごとに順に生成する。seq2seqは入力系列を固定長に収めるという、かなり強い制約のもとで学習を行う。

 文X=x1、x2…xnから、文Y=y1、y2…ymを推定する問題を考えてみよう。seq2seqは図1にあるようなRNNを利用する。はじめに符号化器feは単語を1つずつ読み込み、内部表現を順に更新していく。つまり、i番目の内部状態をsi、入力単語をxiとした時、i+1番目の内部状態は、

si+1=fe(si, xi

と求められる。そして、文の終端を表すEOSという単語を受け取ったら、次に復号化器fdは単語を1つずつ生成する。この際、直前で何の単語を生成したかの情報は加えるようにする。

(yi, si+1)=fd(si, yi−1

ここで、yiは直前に出力した単語であり、y0=EOSである。復号化がEOSを生成したら、文の生成は終了したとみなせる。符号化器fe、fdはともに異なるモデルを使ってもよい。また、この場合は1層のモデルだが、内部状態の隠れ層を複数階層、用意することもできる。

図1 seq2seqの構造
横方向に時間軸上の変化を示してある。入力文Xを単語ごとにx1、 x2と読み込み、出力文Yも単語ごとにy1、 y2と出力する。(図:Ilya Sutskever氏らの論文1)
[画像のクリックで拡大表示]

 このseq2seqは、EOSを受け取った瞬間の内部状態snに、入力Xの情報が全て詰め込まれており、入力Xの情報を固定長の内部表現に符号化したと考えられる。そして、その情報から出力Yを順に生成できるようにfe、fdを学習する。

 復号化時に各単語を生成する際に、yiはsoftmaxなどを使い、単語集合に対する確率分布を生成するようにし、各出力の単語を予測できるように学習した場合、

 ∑ilog p(yi|si, yi−1)  
=∑ilog p(yi|X, y1, …yi1

である。このため、seq2seqはYのXでの条件付き確率p(Y|X)を学習していることに相当する。可変長の入出力を扱っているが、モデルfe、fdは固定長のサイズである。

 このRNNでは長期の依存関係が重要になるので、LSTM(Long Short Term Memory)などゲート付きのユニットを利用する。こうすることで、情報を長期的に記憶し、学習の際、遠くの層までエラー(目的関数の勾配)を減衰せずに伝搬させることができる。

 seq2seqは機械翻訳、構文解析、画像からのキャプション生成、対話モデルなど広い問題に利用され、大きな成功を収めた。自然言語処理では文の構造は木で表す考えが主流だった。しかし、seq2seqのように内部状態に入力を畳み込んでいく方法でも、ゲートがあれば長い距離の単語間の関係が扱える。seq2seqは構造が単純ながら様々なタスクで木構造を使った手法と同程度かそれ以上の精度を達成できるため、最近では「木構造は本当に必要なのか」という議論もされている。

自己符号化器としてのseq2seq

 入力文と出力文が同じ場合は、seq2seqは系列に対する自己符号化器(AutoEncoder)として考えることができる。自己符号化器が事前学習に有効であったのと同様に、seq2seqも系列データに対する事前学習として使うことができる2)

 RNNは従来、学習が難しいことが知られていた。ハイパーパラメータの組み合わせ次第で学習が全く進まなかったり、発散したりしてしまうことがあり、うまく学習ができるのは非常に狭い領域だけである。そのため、RNNの学習を安定化させるような研究が進められていた。

 seq2seqを利用した事前学習は、このRNNの学習を安定化させるのに役立つ。正しく文を要約できるような符号化と表現方法を獲得できているため、これを使ってより詳細なタスクに調整することができるからだ。この場合、入力と出力は同じ文を利用し、文を読み込み、その文を生成できるように学習する。

 従来の自己符号化器と同様に、内部表現は表現力(次元数)が抑えられているため、seq2seqでも文をそのまま記憶することはできず、文を要約して圧縮した形で保存しなければならない。そして、符号化器は文から良い内部表現を作れるように、復号化器は内部表現から文を作れるように学習をする。また、単語単位のドロップアウトも有効であることが報告されている。文の中から多少単語が抜け落ちたとしても、正しく必要な情報が抽出できるように学習される。もともと自然言語はかなり冗長にできているため、このようなことをしても学習できる。

 このように学習したRNNを初期値として利用し、その後、文書分類や意味解析など特定のタスクを学習するようにすることで、安定して学習でき、精度も従来手法と比べて高くなることが報告されている。

1)I. Sutskever, et al.,“Sequence to Sequence Learning with Neural Networks,”NIPS 2014
2)A. Dai, et al.,“Semi-supervised Sequence Learning”, http://arxiv.org/abs/1511.01432
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 取締役副社長
岡野原 大輔2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。

おすすめ