自然言語処理の活かし方

海野裕也氏(以下、海野):では、お話を始めさせていただきたいと思います。Preferred Networksの海野と申します。

今日は「自然言語処理の話をしてくれ」という感じで、なんかざっくりと依頼を受けたので、自然言語処理の話をするんですけども。(セッションの)タイトルにわざわざ「ビジネス」や「深層学習」を入れているのはなんでかもお話しながら、今日どういう内容にしていくのか、ちょっとずつ明らかにしていこうかなと思います。

軽く自己紹介をさせていただきますと、Preferred Networksという会社は、深層学習向けのフレームワークの「Chainer」や、GPGPU向けの行列演算ライブラリの「CuPy」といったものを、開発の初期からやっております。

一応、キャリアの中では自然言語処理を、とくに大学院の研究からずっと自然言語処理をやっておりまして、就職してからずっと民間でやってるので、自然言語処理をビジネスに活かすというのが、どんな感じなのかというところと。それから学会の運営などもやっておりますので、アカデミックでどんなことがやられているのかも、両方ある程度把握はしてると思っております。

それで、今日お話したいのは、ある種そこの2つのギャップみたいなところがたくさんありまして、そのあたりを理解していただくと、ひょっとすると自然言語処理を活かしていくというところで、有用なんじゃないのかなと思っております。

今日お話するのは、自然言語処理という技術内容になります。たぶん、今日申し込んでいただいた方はこの領域に興味がある方が多いのかなと思っていて、ある程度ご存知なのかなと思います。はじめに自然言語処理とは何かというところで、1枚だけスライドを用意しました。

自然言語処理というのは、名前のとおり、自然言語を処理します。

自然言語というのは、今私がこうしてしゃべっているような、人間がしゃべる言葉のことです。人がしゃべるような言葉のことを、自然言語と呼んでおります。これをコンピュータで処理させる、ある種の工学的な立場が、自然言語処理と言われる技術領域です。

自然言語処理の実用の難しさとは?

主な応用先としては、例えばみなさん、スマートフォンやパソコンで日本語入力すると思うんです、そうした日本語入力ですとか。有名なところでは、機械翻訳ですね。とくに最近ですと、Googleの機械翻訳が、ニュースになったりして有名になりましたが、そういうものが自然言語処理の具体的な応用になっている。

一方で、言語を扱う、コンピュータで扱わせるというのは、比較的難しい処理の1つにはなっておりまして、いろんな周辺の技術と深い関わりがある技術領域になっております。

今日、自然言語処理でどんなお話をしようかというところなんですけども、来ていただいているみなさまは民間で働いていらっしゃる方が、多いだろうと想定しておりますので、どちらかというと純粋な技術のお話をしても、しょうがないかなと思います。そこで、具体的に実用化させていくうえでどういう困難があるのか、あるいは、どこがポイントになるのかをお話しようと思っております。

自然言語処理を仕事の現場で使っていくうえで、考えないといけないと個人的に思っているのは、3つポイントがあります。

1つは言語処理の技術そのものですね。(スライドの)左下のところ。もう1個が、それをどこに適用するかというところです。何に適用するのかと、周辺のニーズというところ。この2つが組み合わさって、具体的な実用化になっていくと思っております。

ですので、今日はこの3点を主にお話します。といっても30分ぐらいしかないので、そんなにたくさんお話できるわけではないのですが、はじめにこの3つの点に関して、どんな結論になってしまうのか、先にオチを言ってしまいます。

まず最初に「実は自然言語処理というのは、ビジネス面ではそんなに使われておりませんよ」という、すごくネガティブな暗い話をしていきます。それから、みなさん、深層学習ですごいことができるようになったと思いがちなんですが、難しいところはあんまり変わってなくて、「実はそんなに変わってないんじゃない?」というのが、すごく暗い話の2つ目です。

それで仕事される方が注目しないといけないのは、周辺のニーズですね。自然言語処理がどういうところに適用できるのか。周辺のニーズがとくにここ数年でドラスティックに変わっているのが、おそらく自然言語処理周りのビジネスのニーズ的な点で見た時の、一番大きなポイントになってるんじゃないかなと思います。

今日はこの3つ。「なんでこんなに暗い話になってるのか?」という話と、「じゃあ、今どういう変化が起こっているのか?」というところの両面でお話させてもらえたらいいかなと思っております。

年ごとにトレンドはだいぶ違う

最初にその、……まあ、DLLAB(ディープラーニング・ラボ)で「深層学習やるぞ」って言ってるのに、「そんなにうまくいってないよ」とか言っちゃうと、ちょっとあれなんですけども(笑)。最初に技術のお話させていただきます。

自然言語処理周りですね。「深層学習ってどんな感じなんですか?」というところです。たぶん、みなさん、いろんなキーワードを聞いたことがあると思うんですが、確かにいろんな技術が生まれています。流行りはじめたのが、だいたい2010年代の前半からポロポロと出はじめていて。

実際には、2008年ぐらいに大きな論文が出ました。当時、僕もその論文をパッと見たんですけども、「正直これ、使い物にならんやろ」みたいな感じ、完全にスルーみたいな。まあ、タイトルだけは知ってるけど、あんまり使おうとは思わなかった感じでした。

それで、流行りはじめたのが、だいたい2012年ぐらいです。この頃はどういうのがあるかというと、木構造型の再帰ニューラルネットワークと言われるもの。それから、「言語モデルを使っていきましょう」みたいな研究が流行っていて。ここで言いたいのは、1年1年、ぜんぜんトレンドが違うんですね。

(スライドを指して)2012年がこんな感じで、知ってる方は知ってると思うんですが、Word2Vecというのが流行ったのが2013年ぐらいですね。「自然言語処理ですごいのができるんじゃないか?」と言われはじめたのが、2013年ぐらいです。とくにWord2Vecがなかなかおもしろい特徴を持っていたので、いろんな人に注目されたのがこの頃ですね。

その次が2014年で、もう1個すごく有名な論文が出てきて、それがSequence to Sequence Learningと呼ばれるものと、あとはLSTM(Long short-term memory)ですね。「LSTMというものを使うと、どうやらいいらしい」と言われたのが2014年で。LSTMという技術自体は、実は1996年(発表)の論文なのですが、どういう理由があったのか知らないんですけど、Googleの人が掘り起こしてきたというかたちで、20年の時を経てこの時に出てきて。

そして、Sequence to Sequence Learningというものができて、「これはどうやら機械翻訳ってやつが解けるんじゃないか?」と言われはじめて。2015年には注意機構というものが出て、ここで劇的に性能が上がるという流れになっています。

どうも深層学習だけでは足りないんじゃないか?

これの延長線上に出てきてるのが、今、自然言語処理界隈で話題になっている。例えばGoogleの機械翻訳といったものは、だいたいこの2015年の論文の手法をさらに大規模にして、もりもり計算のパワーを投入したらうまくいきましたというかたちで、今サービスを展開している。そういうかたちになっております。

2016年ぐらいになると、もっと別の手法を試していきましょうということで、いろんなものを使ってくるんですけども。1つ言いたいのは、「年によってトレンドはだいぶ違いますよ」というところです。それで「いろんな手法が出ていますよ」というのが、見てうかがえるかなと思っております。

じゃあ、このお話を残り30分ぐらいするかというと、しません。(スライドを指して)これはこういう本を読むとすごくわかりやすいらしいです。

まあ、これは僕が書いたんですけど(笑)。

(会場笑)

買ってくださいというよりは、30分で説明しきるのはちょっと難しいので(笑)。だいたい今お話したような、とくに2015年ぐらいまでの内容はこの中に盛り込んであるので、こちらを読んでいただくといいかなと思います。

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

それで、大事なのは、いろんな手法があります。ただ、実はこのあいだも学会が3月にあったんですけど、いろんな研究者の人たちと話すと、大方の研究者とだいたい意見は一致していて、「どうも深層学習だけでは足りないんじゃないのか」と。比較的、みんなネガティブで。

今も少し「うまくいったよね」というところが出てきてはいるんだけど、このままやっていっても、言語処理の人たちがいろいろやろうとしてきたことというのは、「どうも全部はこれだけだと解けきれないだろう」と。

ただ、一段ステップアップしたような感覚はみんな持っています。では、次に何のブレークスルーが必要なのかというのは、みんな手探り状態というのが全体の印象です。

自然言語は記号の世界

なんでそこが難しいのかというと、最近私が考えているのは、(スライドを指して)ちょっと概念図みたいな感じになっているんですけども。

自然言語というものは、基本的にある種の物理現象ではないんですね。人間の頭の中にだけある記号の世界の情報を取り扱っています。

「記号の世界」と言ってるのは、例えばここに出ているような文字で書き起こされたものですとか、ある種データ化されたもの。あるいは、本の内容だとか、Webのデータだとか、そういったものですね。

一方で、それとはまったく別の物理的な世界というものが、世の中にはあると。それは例えば実際に物理的に動くロボットや機械ですとか。それから、光や音といったものですね。前者はある種、離散的な……「離散的な」と言ってるのは、なにか記号列を使います。後者は、どちらかといえば連続的な、基本的には数値で表されるようなデータを使う世界になっている。

それで、ここの間を行ったり来たりするわけですけども、基本的に自然言語というのは(スライドの)左側の世界です。

とくに伝統的な自然言語処理は、左側の世界で閉じた中でいろんな処理をやってきました。これまで基本的には、この中で閉じてやってきました。

それは言語のデータを使う、あるいはデータベースのデータを使うと。そのあたりの電子化されたというか、記号、データ化された情報を使い、その中で処理をしてきたのが、ある種伝統的な自然言語処理の世界でした。

一方で、深層学習って基本的には、この右側のデータのように、ある種の連続的なデータを扱うのが得意なんですね。

これ何を言ってるかというと、例えば、深層学習で得意と言われているものの1つの代表例は、画像の処理ですよね。

画像のデータをうまく扱えるようになりましたというのは、いろんなところで聞いてます。これは完全に右側のデータですよね。それから音の処理。これも音波ですよね。音波は右の処理です。

ですので、物理的な世界の情報をなにか解析するところで、非常にうまく働いた例は、わりといろんなところで見つかってはいるんですけど、一方で左側の離散的な情報をうまく扱うところというのは、実はちょっと扱うデータの処理にギャップがあるんじゃないのかなと思っています。

このあたりが深層学習がばっちりハマって、すごくうまくいくというかたちに、まだなってないんじゃないのかなと思っております。まあ、「だから何だ?」という話なんですけども。ものすごくなにかを期待されると、画像処理や音声処理といったところで、ものすごくうまくいってるほどのインパクトというのは、おそらくまだあんまり出てないのかなと思っております。

機械翻訳には誰一人お金を払っていない

もう1つ、今日したいネガティブな話は……。なんかネガティブな話ばかりしたい人になってますけども。もう1つは、(自然言語処理は)実はあんまり実用化されてないんですね。うまく役に立ってないと。

これまで自然言語処理で、テキストの情報を扱うもので、うまく実用化させていこうと思ったものが、いくつかあるんですけども。1つは、ワープロの時代。まあ、どのぐらい前かというと、私も生まれる前だから、ぜんぜん大学でやる前の話なんですけども。まあ、ワープロだとか日本語入力ですね。

これはみなさんご存知のとおりに実用化されておりまして。当然のようにみなさん、おそらく毎日使っています。現在は、日本語入力だけでなにかビジネスをするのはかなり難しい。どちらかというとすでにコモディティ化してしまって、オープンなものすら存在している。こういうところはすごく実用化されて、みんな使っていると。

それ以降、そんなにヒットするような応用例は、実は出ていません。だいたい2000年代ぐらいに、機械翻訳を各社いっせいに実用化しようとしたんですが、残念ながら、それはあんまり実用化されませんでした。

「いや、そんなことないじゃないか。機械翻訳のサービスも世の中にいっぱい出てるじゃないか」と、みなさん思うんですけども、その後何が起こったかというと、インターネットがやってきて、例えば有名なところですと、エキサイト翻訳みたいなサービスが出てきました。あれにみなさんお金を払ったかというと、よく考えていただくとわかると思いますが、フリーで使われるかたちになってしまった。

エキサイト翻訳のような、インターネット上の機械翻訳のサービスが出る前というのは、商用のサービスとして売り出そうと各社がんばっていましたが、商用化というかたちで、有償のサービスとして大成功したところは、大手のいろんな会社が渡来したんですけども、結局その時はあんまりうまくいきませんでした。

その後どうなるかというと、インターネットでフリーで使われるサービスが、機械翻訳の典型例になっています。この間、「Googleがすごく精度が上がったよ」とみんなが言って、「あ、これはすごい」って、みなさんたぶん言ったと思うんですけども、実は誰一人お金を払ってない。これって、けっこう衝撃的です。

もともと自然言語処理ってある意味、機械翻訳を達成するためにできたような業界だったんですね。ですので、これはある種、グランドチャレンジだったんですけど。「そろそろ実用化していくんじゃないか」と思われているのに、「なんだか誰もお金払ってくれてないぞ」みたいな感じになって、ちょっと暗い気分で。

テキストマイニングの現状

一方で、もっと別のかたちのチャレンジをされてる会社さんがいっぱいあるのも私は知っております。それはまた、後でちょっと出てきます。

2000年代ぐらいにうまくいかなかった後にどうなったかというと、各社、とくにB2Bの自然言語処理をやってるところは、テキストマイニングに行くわけですね。これはテキストデータを解析するような処理です。

だいたい2000年代ぐらいから、「社内にたまっているテキストのデータを解析して、ある種会社にとって重要な知見を出しましょう」というアプリケーションの応用がありました。それをやるためには自然言語のデータを解析する必要があるというところで、こういう応用の仕方をやったわけですね。

それで、いろんな大手の自然言語処理の研究部隊を持っているような会社が、こういうサービスや、ツールといったものを研究開発していて、ビッグデータのブームもあって、ちょっと話題にはなっていますが、現実的にはそこまで大きな市場規模にはなっていない、というのが現実です。

最近は、質問応答のかたちで、質問されると答えるものをやろうとしているところが多いんですが、現実的にはやっぱりこれもなかなか商用化が難しくて、難航しているというのが現状です。

といったように、実はすごく難しいです。「いや、そんなことないだろう」「私は自然言語処理のツールを使ったことがあるぞ」という方が、けっこういらっしゃるのかなと思っているのですが、まずそこでけっこうギャップがあります。