検索やレコメンドに必要な形態素解析

海野裕也氏(以下、海野):自然言語処理の研究とは何かといいますと、私みたいな研究をやっている人間からすると、例えば機械翻訳だったり、質問応答みたいな目標があって、その中の技術として、ここ(スライド)に書いてあるような、漢字で長ったらしい、いろんな技術がある。

含意関係認識や、述語項構造解析、照応解析など、いっぱいあるんですけども。だいたい世間の人から見ると、「あ、自然言語処理って形態素解析のことでしょ?」って言われるわけですね。

形態素解析はもちろん今でも研究はされてはいるんですけども、残念ながら学会の中ではかなりマイノリティです。発表件数が2件とかしかなくて、セッションを組めないぐらい、ほとんどあんまりいない。あ、いないって言うとやってる人に失礼なので、ちょっとあれなんですけど(笑)。1分野なんですね。すごく狭い領域なんです。

現実的には、言語で書かれた内容を解析する技術って、ものすごく山のようにあるんですけど、おそらく多くの方の自然言語処理のイメージは形態素解析、もっと別の言い方をするとMeCabなんじゃないかと思っております。

これは逆に言うと、理由がちゃんとあります。形態素解析がないとできない応用が、ちゃんとあったからだと思っています。その1つが検索で、もう1つがレコメンドです。

みなさんご存知のとおり、検索エンジンやレコメンドエンジンはいろんなサイトで使われています。

例えばECサイトや、メディアを持っているサイトさんなど、そういうところでたくさん使われています。まあ、使われてるというより、私はPFIの時はこういうのをやっていたので、一応売ってたって話なんですけども。まあ、こういうところで使われています。

そこで検索やレコメンドを実行可能にするためには、最初の文章を単語の集合に分割してあげる必要があるんです。単語の集合に分割するために使われるのが、今言ったような形態素解析の技術。ちょっと別の言い方で言うと、単語分割の技術ですね。単語分割をしてあげないと、検索は可能にならないということで、これがないとできません。

一方で、検索エンジンやレコメンドエンジンは、インターネットの登場によって、大量のデータ、大量のテキストが書かれたような、Webサイトのサービスをつくりたいというニーズが出てきています。

そこの中に検索の機能を入れたい。あるいは、レコメンドの機能を入れたいという文脈で、これをやるためには自然言語処理をやらないといけない、単語分割をやらないといけないというので、自然言語処理が使われていたのが一番大きなところなんですね。

人間にとって簡単でも機械にとっては難しい

逆の言い方をすると、単語分割が簡単な言語では、自然言語処理はまったく流行っていません。例えば海外の人に言うと、「自然言語処理? え、何それ?」みたいな感じです。どこかで見たんですけど、何かの設定ファイルをパッと開いたら、ものすごい量の正規表現が書いてあって、「え、分割しないの?」みたいな話をしたら、「しない、しない。全部、正規表現で書けばいいじゃん」と。まあ、そういう感じになっているのが現実です。

スペースで単語が区切られてるような言語ですと、スペースで切ってしまえばいい。それから活用があったとしても、最後の文字をちょっと切ってあげればいい。実はかなり簡単なルールで、レコメンドや検索といったものが実現できてしまう。

ですので、ある種、日本は自然言語処理が進んでるというか、エンジニアに対する認知率が非常に高いのかなと、個人的には思っています。ただ一方で、自然言語処理って言われた時に、言語の解析というと、本当はこんなにたくさんの技術が研究されてるんですけど、現実的に使われているのはほとんどないのが現状です。

では、なぜ言語処理が役に立たないのかというところなのですが。このへんから本質的に何が難しいのかという話になるんですけども、1つは人間にとって、言語ってすごく簡単なんですね。この中で日本語しゃべれない方はたぶん……わからないですね、すみません。外国人の方がいらっしゃったらすみません。あの、日本語がしゃべれない方っていないと思うんですよね。

ですが、日本語を扱える機械をつくれる人もまたいないよねという。人間にとっては、言葉をしゃべるのはものすごく簡単で、機械にとっては非常に難しい。もう50年とか、ずっとやってきてるんですけど、言葉を扱う機械というのはいまだにできていない。ですので、(そこに)すごくギャップがある。

そうすると結果的に何が起こるかというと、当然ですけど、「え、それ、人にやらせたらおしまいじゃん」というようなユースケースだと、機械を使うモチベーションがわかないんですね。

ですので、結果的に機械が有利な状況がなかなかつくれない。そして「結果的には人を並べたほうがうまくいくよね」というシチュエーションになってしまう。まあ、あんまりうまくいきませんと。なので、実際に使うようなユースケースを見た時に、「これ、本当に機械で大丈夫なのか? 人間を並べるより有利なのか?」というのをちゃんと見ないといけないということです。

精度ではなく、量と速度

基本的に機械学習をうまく活かすポイントとして、いつも私が挙げてるものが2つありまして、性能じゃないんだと。精度じゃないと。精度が重要になってくるようなユースケースで、機械学習なり自然言語処理なりの技術を使ってしまうと、だいたいうまくいかない。ポイントは量と速度です。

機械を使った時の一番のメリットは、まず量。大量にさばくことができる。これは機械をたくさん並べれば大量にさばくことができるという意味です。当然そうですよね。機械だったら、買ってくればできます。それから性能は年々どんどん上がっていきます。

それから速度。速度が速い。これはある程度いくと機械はどんどん速くなっていきますので、ある一定以上いくと人間より処理速度が速くなります。

そして量か速度が、そのユースケースの中でなにかしら重要なファクターになっているようなシチュエーションじゃないと、だいたい機械化してもメリットが出てきません。これは機械学習に関するポイントというよりは、どちらかというと、一般的に機械が単純に人間より優っているポイントって量と速度ですよね、ということです。

みなさん、ディープラーニングをやっていけば、きっと性能が上がるから、人間の性能を凌駕するだろうって期待されると思うんですけども、先ほどから申し上げてるとおり、現状では人間を別に超えているわけではない。ですので、量と速度をちゃんと活かせるのか、このシチュエーションで活かせているのかをポイントにしながら考えられるといいのかなと思っています。

テキストの時代背景に合わせてビジネスを考える

今日はずっとネガティブな話しかしてないんですけども、最後に自然言語処理にまつわる周囲の変化というところを、ちゃんと注目していくといいかなと思っております。

ここが最近とても変化していることです。自然言語処理という分野、基本的にはテキストのデータですね。テキストで書かれたデータを扱うので、どういうところでテキストのデータが生まれるかという時代背景に応じて、どういうことが研究されてるかが大きく変わります。逆に言うと、どういうテキストが生まれるかに合わせて、ビジネスを考えていくほうがおそらくいいだろうと、個人的には思っております。

ちょっと見ていくと、例えば2000年代って、自然言語処理界隈で大きな変化がありました。何かというと、インターネットの流行です。インターネットが流行する前にはテキストはどこにあったのか。

わかりますかね? インターネットが出現する前に、テキストのデータってそんなにあるかと。何を対象にみんなが研究してたかというと、新聞なんです。ですので、それまではテキストがデータ化されてないんです。データ化されてないので、どうやってやるのかというと、唯一大量に集まった新聞などのような、かっちり決まったデータしかありませんでした。

それがインターネットが登場してから、ちょっとタイプは違うんですけれども、データ化されたテキスト、つまりコンピュータで扱わせるのに都合のいいデータが突然現れたんです。例えばWorld Wide Webやメールなど、そういったものが出てくる。

そうすると、その大量のデータをうまく使うビジネスをみんなやりたくなってきて、直接的に自然言語を扱う検索サービスの場合ももちろんありますし、ECサイトの裏側で使われる、そういうユースケースが出てくる。

それが2005年ぐらいになると、今度は何になるのかというと、だんだんSNSが流行ってくるんですね。SNSが流行ってくると、今まではどちらかというとマス向けにつくっていたようなWebのデータ、あるいはECサイトのデータから、個人間のやり取りのようなデータが増えてくる。こっちの量がすごく膨大になってくる。

ただ一方で、このへんはビジネス化するのがけっこう難しくて。ソーシャルメディアのサービスが流行るなかで、裏ではおそらく使われてるんですけど、直接的には他のビジネスはあんまり出てきていません。

テキストから音声へのシフト

これが2010年ぐらいになると、今度はスマートフォンが出てくる。スマートフォンが出てからは、実はいろんなサービスが出てきていて。言語というよりは音声系なんですが。音声入力というのは、実はスマートフォンが出てきてから流行りはじめました。

別の言い方をすると、2000年代ぐらいに音声入力のアプリケーションをつくったんです。機械翻訳と同じぐらいに、パソコン向けの音声入力の有料ソフトをつくったんですけど、実はぜんぜん流行りませんでした。実際、みなさん使ってないと思うので、流行ってなかったんですが。

一方で、スマートフォンみたいな小さなデバイスになると入力自体が大変なので、音声検索といったものが出てくる。最初に出てきたのは、たぶん音声検索だったと思うんですが、直後か時期を同じくして、Siriが出てきました。そういうかたちで音声の入力がだんだん進化してきた。

2015年ぐらいは、みなさんご存知のとおり、チャットアプリがどんどん流行っていって、チャットアプリのうえでなにかビジネスをつくっていきましょう、という流れが出てきています。

全体のテキストにまつわるデータの大きな流れの変化は、基本的には中央集権的でかっちりしたデータから、だんだんと個人間のやりとりのような、もっとローカルで、より文体は崩れて口語的で多様なデータになった。そして量が多い。この15年、20年ぐらいは、ずっとこの流れで来ていると感じております。

とくに2010年以降ぐらいから、「いろんなサービスのバックグラウンドで自然言語処理が要るんじゃないの?」という気運は、かなり高まってるかなと個人的に思っています。Siriですとか、スマートフォン上のキュレーションアプリみたいなものが出てくる。あるいは対話型、コミュニケーション型のロボットや、チャットボットみたいなものが出てくる。

とくに最近の流れとして、全体的にはだんだん口語的なものになっている。それからもっと大きな流れというのは、話し言葉。とくにテキスト、文字で入力するよりは、音声で入力するようなデバイスや方法に、徐々にシフトしているのが、全体の流れから見て取れるかなと思います。話言葉とか音声へのシフトが、流れとしては来ています。

書き言葉と話し言葉

一方で、自然言語処理界隈は、伝統的に書き言葉の情報のやりとりを研究開発してきたので、音声処理……音声というよりは話し言葉ですね。自然な話し言葉を扱う技術は、実はかなり少ないです。今年も見た感じだと、音声処理というか話し言葉をやってる人はすごく少ない。

ということで、技術的なギャップみたいなものも発生してるのかなと思っています。一方で、そういう意味合いで言うと、そういったデータがどこにもたまっていなくて、逆にそこがチャンスになるんじゃないのかなと思っています。

まあ、別に私がなにかうまくいったというわけではないので、こういう考えもあるかなと思って聞いていただくといいんですが。そういうバックグラウンドの、どういうところで使われるかというところが変わるタイミング。周囲でどういうサービスが使われて、どこでどうやって言語処理を適用するのかというものの大きく変化するタイミングを見逃さない、というのが重要だと思います。

(スライドを指して)ここに謎の絵が描いてあると思うんですけど、これは何の絵かというと、機械翻訳を表しています。意味わかんないですね(笑)。

機械翻訳ってもともと、書き言葉で書かれたテキスト、つまり文書ですね。文書を別の言語の文書に変換する。例えば企業の中のマニュアル、製品のマニュアルなど、社内の文書を翻訳して使う。2000年代は、そういうことを想定してやろうとしていました

ただ、その場合、書き言葉のマニュアルみたいなシチュエーションって、かなりかっちり正しい結果が求められるため、機械的にやったうえで実は1割ぐらい間違ってます、というのが許容できません。それ(機械翻訳)で変換したマニュアルをそのまま出荷できるかというと、できない。

そういうかたちで、実は書き言葉を変換するようなユースケースの場合に、技術が追いついていないということで、あまりうまくいかなかったのが1つの理由になっています。

シチュエーションで変わる翻訳精度の重要度

(スライドを指して)それで右の絵は何を言いたいかというと、こういう機械翻訳のような技術が、例えば、僕が中東のどこかに行ったところで、英語はまったく通じません、日本語もまったく通じませんという時に、じゃあ、どうするかという話ですね。

ちょっと想像していただきたいのですが、ここになにかデバイスがあります。まあ、きっとスマートフォンでしょう。最近のインターネットや携帯電話の技術の発達によって、世界のどこでも通信はできます。そして機械翻訳のサービスが動いてます。僕がなにか怪我をして、病院に来ましたと。今すぐ病状を言いたいんだけど、ぜんぜん伝わんない。

この時に、ちょっとしゃべって、8割ぐらいたぶん合ってるような、現地の言葉で翻訳してくれるサービスがあったら、使いたくなるかどうか。「8割だとちょっと不安だな」と思って使わないで、「すっげーお腹痛いけど帰りますわ」ってなるかというと、ならないわけですよね。

かつて書き言葉のようなシチュエーションで使おうと思った場合は、翻訳の精度が本質的に重要だったのかもしれないのが、シチュエーションが変わると、翻訳の精度じゃなくて、今その場で使えることが重要になります。そうすると、実は翻訳精度って、シチュエーションによっては、そこまで重要じゃない可能性があるということですね。

このように、機械翻訳の実用化を目指してるところは、出先で使うような機械翻訳というものを狙ってる方がかなり多いかなというのが、周りの話を聞いてる印象ではあります。また、翻訳の研究の界隈でも、旅行をターゲットにしたような機械翻訳のタスクというのもありまして、それはおそらく今言ったようなことを意図してるのかなと思います。   これは一例なんですが、何が言いたいかというと、実は時代が変わるとどんどん性能が上がっていって、かつては性能が足りなかったからできなかったものが、性能が上がったからできるとみなさん思いがちなんですが、実はそうじゃなくて、ユースケースとか使う場面が変わることで、今までの精度で実は十分ワークするようなユースケースが出てくる可能性がありますよと、今日は言いたかったということです。

そういう新しいユースケースが生まれるのは、自然言語処理の技術そのものとは基本的には独立して、まったく違う文脈で現れることがありますよ、というのが今日お伝えしたかったことです。

どういう技術かよりも応用先がポイント

それで、私自身は今何をやってるのかというと、機械を言葉で操るような技術開発をやっております。

ここでは産業ロボットみたいなものを見せてますけど、ロボットに対して「こういうことをやってください」ということを言っています。

こういうシチュエーションって、基本的に今までほとんどできなかったんですけども、機械を制御したり、機械が認識してなにかを動かしたりというのは、深層学習の技術のおかげでテクニカルにできるようになってきました。

そうなると、そこにどうやって指示を出すかは自然言語処理のほうで、技術的には今までとぜんぜん違うタスクになっているので、できるかできないかよくわかりませんが、やっています。論文を出したりして、ある程度できそうというところは示しています。そんなかたちで研究開発をしてます。

まとめです。今日3つお話させていただきました。1つは、自然言語処理の技術トレンドです。深層学習でいろんな新しい手法が出てきていますが、「やっぱり難しいところはまだ難しいですね」というのが大方の見方です。

2つ目は実用化の歴史のお話をさせていただきましたが、実は多くの応用は、みんなが期待してるほどはうまくいっていません、というところです。そこで重要なのは、どんな技術かということよりも、応用先なんじゃないのかなというのが、今日一番お伝えしたかったところです。

この20年間、自然言語処理に関係するようなシチュエーション、周りの環境というのがすごくドラスティックに変わり続けています。これまでの流れを外挿していくと、これからもおそらく変わっていくと思います。

その瞬間に、「あ、こういうユースケースがあるぞ」というものをいかに発見するかが、自然言語処理をうまくビジネスに使っていくために重要になってくるんじゃないのかなと思っています。はい、以上になります。どうもありがとうございました。

(会場拍手)