Eyes, JAPAN Blog > Google発 世界最高精度の構文解析器 “SyntaxNet” はどこがすごいのか

Google発 世界最高精度の構文解析器 “SyntaxNet” はどこがすごいのか

yahata

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

-shared-img-thumb-C789_hokorigakabuttataipuraita-_TP_V

SyntaxNet

2016年5月12日、Googleから"SyntaxNet"と"Parsey McParseface"というふたつのツールが発表されました。

"The World's Most Accurate Parser" の実力や如何に!
ということで、早速調査を進めてみました。

※ おことわり

この記事では、SyntaxNetのセットアップ方法などは書いておりません。ご承知おきくださいませ。
セットアップ方法が知りたい方はリポジトリのREADMEを読むことをお勧めします。親切なことにDockerfileも入っています。

TL;DR

  • SyntaxNetは自然言語全般に使える。Parsey McParsefaceは英文用。
  • 大きな技術革新があったというよりは、莫大なデータセットによる学習と地道なチューニングの賜物がSyntaxNetである。
  • TensorFlowのプラットフォームに乗せて一般開発者に開放したことがセンセーショナルですごいところ。

SyntaxNetとParsey McParsefaceとは一体何なのか

発表当初、このふたつの名前を見て「Parsey McParsefaceってなんだろう?」「構文解析器をふたつ発表したのかな?」という疑問を抱かれた方も多いかと思います。

それぞれを簡単にまとめると、このようになります。

  • SyntaxNet: 自然言語理解(NLU: Natural Language Understanding)のためのニューラルネットのモデル
  • Parsey McParseface: SyntaxNetを用いて学習した英語用のモデル

SyntaxNetは自然言語理解のためのニューラルネットのモデルであり、TensorFlow上で動作するようになっています。
そして、SyntaxNetを用いて英文用に学習したモデルがParsey McParsefaceなのです。

ちなみに、このParsey McParsefaceという特徴的な名前の由来も気になりませんか?

実はこれ、Boaty McBoatfaceという実在の船の名前をもじったものなのです。
日本語訳すると「船田 船左衛門」くらいのニュアンスだそうです。
すると今回のParsey McParsefaceはさしあたり「構文解析田 構文解析左衛門」といったところでしょうか。

SyntaxNetの手法の特徴

SyntaxNetの最新の論文(※2016年5月現在)はこちらです。

SyntaxNetは次のような特徴を持っています(論文のタイトルそのままですが!)

  1. Transition-Based
  2. Neural Networks
  3. Globally Normalized

これらの特徴を踏まえて、自然言語処理(NLP: Natural Language Processing)技術の最近の動向を調べてみました。

2013年頃

2013年頃の構文解析は、Transition-basedアプローチと他の機械学習手法を組み合わせたハイブリッド手法が最先端でした。

Transition-basedは、構文解析でも係り受け解析(Dependency Parsing)に用いられるアプローチのひとつです。

係り受け解析の手法は、このTransition-basedとGraph-basedとで大きくふたつの派閥に分かれており、
このうちTransition-basedはGraph-basedと比べて高速に動作するという特徴があります。
ただし、Transition-basedは局所最適の手法であるため、ラベルバイアス問題によって精度が落ちてしまいます。
それでもTransition-basedが採用されたのは、ラベルバイアスを補って余りある利点があったということなのかもしれません。

最近の係り受け解析手法は概ねこの流れを踏襲しているようで、SyntaxNetではTransition-basedの方を採用しています。

これが特徴1 "Transition-Based" です。

2014年

2014年になって登場したのがStanford CoreNLPです。

これは英語の自然言語処理のためのツールセットです。
形態素解析・固有表現抽出・句構造解析・センチメント解析など、これ1つで色々行うことができて、海外では結構人気があるようですね。
日本でもいくつか記事を見かけます。

Stanford CoreNLPが採用した手法は、Transition-basedとニューラルネットワークを組み合わせたハイブリッド手法でした。

ただし、ニューラルネットワーク自体はそれほど目新しいものではありません。
ニューラルネットワークを用いたNLP手法は、1990年代からすでに研究されていました。
特に、時系列データの機械学習に利用されるリカレントニューラルネットワーク(RNN: Recurrent Neural Network)は、文章の文脈を考慮しながら構文解析を行うことができるとして注目を集めていたようです。

残念ながらここは調査しきれていないのですが、Transition-basedとニューラルネットワークという組み合わせでこれほど豊富なツールセットが登場したこと自体が、大きなニュースであるのかもしれません。

これが特徴2 "Neural Networks" に繋がります。

2015年

翌2015年1月、ついにSyntaxNetの最初の論文が発表されました。

まず興味深いのが次の一文です。

… like Chen and Manning (2014), our network avoids any recurrent structure so as to keep inference fast and efficient and to allow the use of simple backpropagation to compute gradients.

ここで "Chen and Manning (2014)" というのは、上述のStanford CoreNLPを指しています。
両者は、推論効率と単純なバックプロパゲーションを実現するために、RNNではなくシンプルなフィードフォワード型ニューラルネットワークを利用しているとのこと。
これはStanford CoreNLPとSyntaxNetのニューラルネットの大きな特徴となっています。

つまり、Transitioin-basedとシンプルなニューラルネットワークを組み合わせることで、爆速で構文解析ができるようになったのです。
ここが技術的に優れているポイントだといえるでしょう。

ちなみにこれらとは対照的に、同年5月にはLSTM(RNNの一種)を用いた手法も発表されています。

2016年

2016年3月、SyntaxNetの最新の論文(※2016年5月現在)が発表されました。

Transition-basedの局所最適の欠点として、ラベルバイアス問題がありました。
しかし、ここでCRFを用いて系列データ全体に対して学習するという手法が導入され、ラベルバイアス問題を克服してしまったのです。

ここでようやく特徴3 "Globally Normalized" が導入されました。

そして同年5月12日、SyntaxNetがオープンソースで公開されました。

まとめ

SyntaxNetが何か大きな技術革新をしたのかというと、調べてみるとどうもそういうわけではないようです。
むしろ、これまでのNLP技術の流れを踏襲しつつ、莫大なデータセットによる学習と地道なチューニングで成果を出したという印象があります。

翻って一般開発者の視点でSyntaxNetを見てみると、すごいのはTensorFlowという機械学習プラットフォームに乗って登場したことで、一般開発者が簡単に好きな自然言語を学習させられるようになったという点です。カタルーニャ語・中国語・チェコ語・英語・ドイツ語・日本語・スペイン語など。音声認識にも応用が期待されます。
単に高精度の構文解析エンジンをオープンにしただけでは終わらないというのが、さすがといったところですね。

あのGoogleから"The World's Most Accurate Parser"と銘打って登場しただけあり、一般開発者にもSyntaxNetの名前は広がりつつあるように感じます。
近年は世界中いたるところでサービスデザインにAI技術が溶け込んできていて、Botプラットフォームなども各社から発表されています。
SyntaxNetの登場はそこにどんな変化をもたらしてくれるのか、非常に楽しみですね。

参考資料

Comments are closed.