情報処理における全国のエキスパートが一堂に会したリクルート主催の「春の情報処理祭」。ニュースキュレーションアプリやスマホのインターフェースにおいて注目度が高まる「自然言語処理」の重要性について、株式会社プリファードインフラストラクチャーの海野裕也氏が解説しています。自然言語処理の専門でない方にこそ、新しい研究をするチャンスがある海野裕也氏:こんにちは、プリファードの海野と申します。私は自然言語処理のお話をさせていただこうと思います。実は、今日のこのスケジュールが言語処理学会の全国大会とかぶっていまして、今、多分裏で京大のほうでチュートリアルをやっているんで、あまりいないのかなと思ってたんですけども、意外といらっしゃると。今日私がお話するのは、どちらかと言うと自然言語処理をやっていらっしゃらない方向けに、ちょっと自然言語処理をやってみたいと思っていただくようなお話をできればいいかなと思っております。すばらしい、たくさんいらっしゃいましたね。手が上がらなかったとき用のセリフも考えておいたんですけど、大丈夫でした(笑)。皆さんに今日お伝えしたいのは、実は自然言語処理が専門じゃない皆さんのほうが、この業界で新しい研究をするチャンスがあると私は考えています。皆さんのほうが実は、新しい研究ができるんだぞっていうことを今日、全体の中でお伝えできればいいなと思います。話としては2つ話します。ホットな話題っていうものを話します。1つは、この研究分野とその周辺の分野の研究の関係っていうところをお話します。後半のほうが、実際にはお話したい内容で、皆さんのほうが新しい研究ができるはずだって私がなぜ思っているかっていうところの話になります。最初に自己紹介なんですけども、海野と申します。今日、ご講演される先生の中で私だけ大学の先生でもなければ、大きな会社でもなくて、小さなベンチャー企業で働いております。修士を出た後にIBMの研究所のほうで研究員として働いていました。2011年から今の会社のプリファードインフラストラクチャーという小さい会社にいます。意外といらっしゃいます。すごい小さい会社なんですけど。話ですとか、検索エンジンというものを作っていたりします。その検索エンジンの中でも自然言語処理の技術っていうのは使われています。最近ではデータ解析ですとか、画像解析といったところもやっております。Processing。これの若手の会の委員長というものを去年からやっております。こちらもいろいろなシンポジウムとかあるので、ぜひ参加してください。ホットな話題というところをお伝えしていきます。一口で自然言語処理と言っても、分野があまりにも多すぎて、いっぱいありすぎるぞと。いろんなカテゴリーが、いろんな方向にできていると。大体その分野の全体を見ようとしたら、2つ軸があると思っています。1つは基礎的な分野か応用よりの分野かという軸。応用っていうのは、例えば検索だとか翻訳みたいなもの。実際に皆さんが何かしら使うアプリケーション。一方で基礎的なところっていうのは、例えば単語を解析するだとか、文を解析するみたいな地味な処理ですね。基礎的なほうが皆さんあんまり知らないようなキーワードが多いかなと思います。1個軸があって、処理が浅いか深いかっていうところですね。処理が浅いっていうのは何かって言うと、文字に近い。表層の情報に近いような処理をするものが浅い処理というイメージ。一方で深い処理は何かっていうと言葉が持っている意味が何を指し示しているのかっていうものを解析するようなイメージです。自然言語処理のトレンドは、深いほうにうつっている今、自然言語処理の技術的なトレンドとしては、基礎的な技術も応用的な技術もどちらかというと深いほうにだんだんと移っているような傾向があります。昔は文字列的に一致するような情報だとか、文字列的な処理が非常に多かったんですけれども、最近はより意味を深く解析するような、そういう研究分野が増えているというようなところがあります。全部をお話できればいいんですけど、さすがに30分しかないので、1個だけテーマを絞ってお話します。何の話をしようかなと思ったんですけど、やはりこれは機械翻訳の話をしなければならないなと思いまして、機械翻訳の話をさせていただこうと思います。1個迷ったのは、質問応答がちょっと今はやりっていうか、ニュースとかにたくさん出てるんですけど、私は機械翻訳のお話をさせていただきます。実は私自身は機械翻訳のプロではないんで、自然言語処理の人間ではあるんですけど、機械翻訳の本当に詳しい内容は検索すると見つかると思うので、そういう資料を参考にしてください。衝撃まずは機械翻訳って何だよって話ですね。機械翻訳って何かっていうと、ある言語で書かれたテキストを入力すると、別の言語で同じ意味の内容を出力すると。日本語で入力してあげるとそれに対応する英語が出てくるというようなイメージです。実はこの研究っていうのが自然言語処理の分野の究極的なゴールの1つになっています。いうのも、自然言語処理という分野ができた1個の動機がこういうものを成し遂げるためです。これはもう数十年という歴史があって、ずっと昔からこの分野は研究されています。今日はこの機械翻訳のお話させていただこうと思った理由っていうのが、93年のすごい有名な論文がありまして。いう1個のカテゴリーがその時にできたんですね。これのお話をさせていただきます。これは何かって言うと、統計的な手法を用いて機械翻訳をやってしまおうということがいわれました。model」といわれるものですね。このモデル自体は、実は翻訳以外にも使われるんですけど、例えば、音声認識といった分野でも同じようなモデルが使われます。先ほどコンピュータービジョンのところで似たような式が出てきたと思うんですけども。この翻訳前の文「x」が与えられた時に、確率の「P(y|x)」が最大になるような「y」を求めるというようなものです。「y」のほうが翻訳後の文ですね。観察された(日本語の)データは、もともとの翻訳後の(英語の)文に雑音がのることによって、この日本語の文になったと考えて、元の文を推定する問題だと考えてあげるということをやってあげると。「x」はここでは日本語ですね、日本語の文が与えられた時に、一番もっとももらしい英語の「y」のほうを推定する問題だというふうに考えて、こういうふうに定式化してあげるっていうような手法です。条件付き確率というのはひっくり返すことができるっていう話があります。上の式をちょっと見ていただくとわかるんですけど、「P(y|x)」をひっくり返して「P(x|y)」にしてあげると。それと、yの確率「P(y)」の積に書き直すことができる。argmax付きの時ですね(補足:正しくはP(x)で割りますが、argmaxの中でxは固定なので無視できます)。この2つの項で見てあげると、「P(x|y)」のほうの式が翻訳モデルと言われます。これは何かと言うと、「y」を与えられた時に「x」、つまりその英語の文に対する日本語の文が生成される確率のことで、どういうふうに語順が入れ変わって、単語が訳されるかということを表現している。これの学習には、「x」と「y」の入れ替わった、つまり翻訳関係にある文のたくさんのデータが必要になってくる。いう対訳データと言われるものが必要になってくる。肝は後者のほうで、この言語モデルっていうほうをちょっと見ていただくと、こちらは式の中にyしか入ってないですよね。「y」は何かって言うと英語のほうの文章です。この「P(y)」は何を表現しているかと言うと、英語の文らしさを表現してるわけですね。英語の文が自然かどうかを。こちらがその「y」のデータ、つまり英語の文のデータがたくさんあれば、精度よく推定できますと。単一の言語のデータさえあれば、すごい精度がよく「P(y)」っていうのは推定することができる。今たくさんデータってありますよね、Webとかに。いうデータをたくさん持ってきてあげると、「P(y)」のほうはいいパラメータを推定することができると。こちらは大量のデータで精度よく推定できるので、すごい翻訳の性能が上がりましたっていう話がその後はやってくるというような形になっています。何でこのお話をしたかって言うと、この話ってすごい衝撃をもって受け入れられて、その後どちらか言えば2000年代ぐらいになってから、すごいブームというか、ほとんど機械翻訳の研究はみんなこれを無視できないような状態になりました。機械翻訳っていうのは、言語学的な解析を積み重ねていって、最初に与えられた文が形態素の列に変換して、それの統語的な構造を解析し、そして意味的な構造を解析する。意味が同じ別の言語の中で同じように文を構築するっていうことをやるっていうのが伝統的なアプローチだったわけですね。それが直接、さっきの式で表されちゃったわけですね。原文から翻訳文に、この数式で表せますと。当時言われたのか、その後に言われたのはわかんないんですけど、言語学者の首を切って統計学者を雇えば雇うほど精度が上がると言われたというような、そういう逸話があったと。その時、すごいパラダイム的な変化が起こったということですね。これはすごい衝撃的でした。「機械統計」から、「ニューラルネット」へ今どうなっているのかと言うと、もちろん先ほどお話した数式っていうのは90年代の話で、そこからさらにだんだん難しくなっていくわけです。最初は「x」と「y」っていうのはただのシーケンスとして扱っていった。(単語)列から(単語)列への変換として見ていたのが、例えば名詞句みたいなまとまりのある句が、まとまりのある句に変換されるみたいな、その文の中の構造を意識しながら変換するように変わってきていて。最近の研究的なトレンドとしてはさらにもっと複雑な文の構造を、構文木みたいな複雑な文の構造をもったものから、複雑な構造をもった文の構造への変換を学習するみたいなところに、だんだん移っていると。あんなに構造いらないって言ったのに、結局は構造を考えてるじゃんっていう感じになってるんですけど、だんだん複雑になっている。去年の秋ぐらいにですね、結構衝撃的な論文が出てきて、それも全部無視してニューラルネットワークでバシッとやったら変換されちゃうとかいう話が、これはGoogleから出てきた論文ですね。Network」というものを使ってあげると、文もニューラルネットワークに食わせたら、翻訳後の文がポコポコ出てくるよっていうことを突然言われてしまったと。20年ぐらい統計で機械翻訳やってきたのに、今度ニューラルネットで全部置き換えようとしてるのかどうかちょっとわかんないんですけども、突然バッと手法自体が変わることがあるというのはちょっと余談です。いう複雑な問題も裏では基礎的な技術っていうのが下支えしておりまして、伝統的な構文解析ですとか、自然言語処理とかの構文解析みたいな話ももちろんあります。実際に翻訳をしようとすると大量の文の候補みたいのが出てくるので、その中から効率よく、一番確率が高い文を生成するにはどうすればいいかっていうようなアルゴリズムの問題もあります。データを集めてきた時に、それを使ってどうやって学習の問題に落とすかっていうような機械学習の問題っていうのもあります。いう基本的な技術に下支えされている。機械翻訳がトレンドになったのは、ソフトウェアのおかげそれから、単に技術的な側面というだけじゃなくて、エンジニアリングといいますか、ソフトウェアが流行すると一気にはやるっていうところもあります。2000年代ぐらいにすごいはやった1個の理由が、ここら辺のGIZA++とかMosesといった研究者の中では有名なソフトウェアなんですけども、こういうものが続々と公開されたと。公開されると今までちょっと実装が大変でこれは手が付けられないと思っていた人も、ダウンロードしてきてデータ用意すると動くみたいなことになった。実はこういうエンジニアリング的な側面っていうのも研究の上では非常に大事だなと思っております。全国大会をやっているって言ったと思うんですけど、発表のかなりの部分が機械翻訳というような状況になっていて。1セッション作るのも大変な分野があるのに、機械翻訳だけ5セッションあるみたいな、それぐらい機械翻訳が今、盛んに研究されていると。ニュースとかを見てみると、NICT、すごい昔から機械翻訳やってますけども、あそこがこういうスマートフォン向けのアプリとかを出しましたとか、NTTドコモが翻訳にこれから力を入れるために会社を設立しましたみたいなニュースが出てきました。皆さんもご存知のとおり、Googleはずっと機械翻訳をやっていまして、最近リアルタイムで翻訳する機能を公開しました。こんな形でビジネスサイドを見ても、機械翻訳がちょっと盛り上がっているというのが機械翻訳の現状だと思います。周辺分野のお話をさせていただきます。自然言語処理って、すごい境界領域な分野だと思っています。1つは、自然言語処理っていっても基本的には応用系の分野になるっていうイメージが皆さんあると思うんですけども、実際そうで、さまざまなベースとなるような技術を使って自然言語処理っていう分野が成り立っているっていう側面があります。一方で、言葉の解析をしただけではまだちゃんとしたアプリケーションになっていなくて、それをさらに例えば情報検索だとか人工知能だとかっていったところに活かしていくといったような話もある。この技術を輸入する部分と技術を輸出する部分というのが非常に多いので、そういう意味で皆さん別の分野の方っていうのは、実は参入すると新しい価値を出せる可能性が非常に高いという話をします。技術の輸入の部分っていうのがすごい大きくて、実は自然言語処理の分野っていうのは外の技術を輸入することが盛んです。新しい技術が輸入されると、研究の流れがガラッと変わってしまうということがよくあります。最初に機械翻訳のお話をさせていただきました。先ほどもちょっとお話したとおり、あの時に業界の構造が、もう一気にガラッと変わってしまったんですね。90年代ぐらいに統計の人たちがバアーッと入ってきて、実はそれとは別に機械学習の人たちもバアーッと入ってきて。それまで自然言語処理っていう言語学の人たちとかと一緒にやってたのが、突然数式ばっかりになったという、業界の構造が変わったと。いうのをたくさん経験してきたということがありました。他にもちょっといくつか紹介します。Parserという流派が相次いで登場したこれ、2003年、2000年代の中頃ぐらいですね。ベイズ統計といわれるような領域の人たちが一斉に入ってきて、私が院生ぐらいの頃がこういうテーマがすごい盛んだったんですけども、確率的なモデルを作ってあげると。これは、トピックモデルって言われる分野で、文っていうのは確率的に全部生成されるものだと考えます。文というのは(確率的に)トピックが選択されて、トピックに応じて(確率的に)単語が出てくる、それが文だというふうに考えると。文はどうやって生成されてるんだっていうのを確率の中の世界の話だけで全部片付けようっていうような流派っていうのが出てくる。2003年、LDAっていう手法が最初に出てきて、そこからより精緻なモデルをどんどん作るのが大流行するというのが、その後数年間続きます。当時はやっぱりこの派の人たちっていうのは、すごい注目されていた。Parserっていうのが、言語処理やってる人だったら大体通じると思うんですけど、これグラフ理論の話がパッと入ってきたんですね。構文解析っていう技術があるのは多分ご存知だとは思うんですけど、そこの中の1つで、係り受けの構造、単語がどこの単語にかかっているかというかを解析する問題っていうのがあります。グラフ理論をやっている人の「あたりまえ」が新しい発見を導いたこの問題っていうのは長年、動的計画法で、CKYアルゴリズムっていうものを使うと、O(n3)で解けるということはずっと知られてたんですね。これが2005年に、この問題ってよく考えると最小全域木問題(MST)に定式化できるよねってある人が言って。これはもう最初にMSTに定式化されるって読んだ瞬間に、確かにそうだねって私も思ったんですけども、言われるまで気付かなかった。それ考えると、それ解く手法ってもう知られてるんですね、0(n2)なんです。誰も気づかなかったのかよっていうような衝撃があったと。その後、この問題っていうのは大体MSTとかで解くっていうのがバーッと広がって、そうだったねみたいな感じの......。これ、多分グラフ理論やっている人からすると、当たり前みたいな話だと思うんですけども、われわれはそんなこと知らなかったってことです。これ、そのもうちょっと後のほうですね。2000年代後半ぐらいに最適化の手法がバンバン出てくるっていうのがはやりました。この頃、私はもう働いていたので、今からちょっと前ぐらいですね。整数線形計画法っていうのを皆さん聞いたことありますか。これ、最適化の分野でよく使われるような手法なんですけども。文書要約をする時にどの文を残してどの文を残さないかっていう選択するっていう問題を整数線形計画法で解けるぞっていう話が突然出てきました。内容の関係性と情報を最大化させて冗長にならないように文を選択することによって文章要約ができるぞと(補足:内容の関係性を表すスコア関数と、冗長性を示すスコア関数の差を最大化させる目的関数に置きます。文を選択するか否かの0/1をとる変数の制約をおいて、先の目的関数を最大化するという風に定式化しています)。いうやり方ってそれまでなかったわけですね。今はさらに、ここから劣モジュラ最適化とかっていうのがはやったりとかして、本当に外の分野の技術がどんどん入ってくるというようなことが起こりました。この話は僕じゃなくて、明日IPSJ・ONEでKevinさんがお話してくれるということでぜひ聞くといいかなと思います。どの話も出てきた時には、各研究トピックっていうのは業界全体がガラッと変わるようなことがありました。この話はすごい大事だと思っていて、皆さん、ご自身の技術っていうのが実は自然言語処理の誰も気づいていないところの問題で適用できる可能性があると。すると、一気に第一人者になれるという可能性があるということで、ぜひチャレンジしていただきたいなと思います。1つは、技術の輸出のほうですね。2つタイプがあると思っていて、1つは類似の構造を持つような問題にそのまま適用するっていうタイプ。1つは自然言語がインターフェースとなるような分野で使われます。下の図が伝統的な自然言語の構文解析の話なんですけど、実は同じような方法で画像の構造を解析する問題が解けるよっていうことをやった人がいます。これもニューラルネットを使ったような手法です。いうふうに自然言語処理で使われるような手法を外で使ってしまおうというところがたまに見られます。どっちかっていうとやっぱり多いのは、インターフェースとして言語が使われている領域に適用するっていうことが多いです。自然言語処理を情報検索に、つまり検索エンジンで応用しようとすると、検索エンジンの中で分かち書きっていうものが必要になってきます。それから、これ翻字っていうんですけども、例えば英語のスペルで書かれた地名っていうものが日本語で検索した時に「それ何に当たるの?」みたいなのを翻訳してあげると。同じ音の列を別のアルファベットで表現するっていうのを翻字っていうんですけど、そういうところで使われている。それから検索する時に例えば同義語で拡張してあげて、別の表層文字列でも検索してあげることによって漏れを防ぐっていうことも必要になってくると。いうところには同義語獲得っていうような技術が使われています。応用として難しいところの話すると、例えば人工知能に応用するっていうような話があります。「ロボットは東大へ入れるかプロジェクト」って聞いたことある人、どれぐらいいらっしゃいますかね。皆さんご存知かと思うんですけれども。「東ロボプロジェクト」っていう略称がついていて、実はあそこの中にはほぼ各科目ごとに自然言語処理の研究者がついていて、それぞれ固有の問題を解いています。ここに挙げた例っていうのは、数学の問題を解く例になってます。大ざっぱに数学の問題をどうやって解いてるのかって話なんですけども、まず問題文が与えられたら、その問題文の構造を明らかにします。文を読むっていう作業ですね。文を読んであげると、その問題文が指し示しているような問題文の意図、つまりどういう意味なのっていうのがある論理式で得られるようになっている。出てきた論理式をソルバーを使って解くと解答が得られるっていうような構造になっています。この大体2ステップになっているんですけども、この前半部分ですね。与えられた問題文の言語学的な構造を解析して、それを数学的な意味の世界にマッピングさせてあげるっていうようなところで使われている。スマホ時代のインターフェースにおける自然言語処理の重要性ということで、こういうふうにインターフェースが言葉でやりとりされるような領域っていうのはどこでも応用できるだろうとは思います。先ほどちょっとコンピュータービジョンのところでお話あったとおり、コンピュータービジョンと一緒にやるような話っていうのも今はやってきていて、いろんなところで使われています。インターフェースとしての自然言語処理ってすごい私は今重要だなと思っていまして、今って皆さん、例えばビジネスのトレンド的にはPCだとかパソコンみたいなところからどんどんスマートフォンみたいな小さなデバイスに移ってきているわけですね。スマートフォンみたいな時代になってくると、(自由に入力できるキーボードやマウスではなくて)インターフェースとして何か言葉なり、アクションなりっていう、すごい制限された状況でこういうデバイス使うことになってくる。いう中で実は自然言語処理の重要性って増えてるんじゃないのかなと思っています。AppleのSiriですとか、ドコモのしゃべってコンシェルみたいなもの。Yahoo!さんも出してますね。いうのって音声で何か入力するみたいな話って実は2000年代ぐらいにあったんですけども、音声でワープロみたいに使うっていうのはあんまりうけなかったと。それは手で打ったほうが速いよっていうことになってしまう。スマートフォンみたいに制限されたデバイスの中で何か操作をさせるっていう意味合いだと、音声で使うっていうのは実は結構適合するんじゃないか。1個は例えばニュースキュレーションみたいなサイトですね。GunosyさんとかSmartNewsさんみたいなの。いうところの中でも、私も直接知り合いが何人かいて、自然言語処理やっているような人たちが中にいて、ニュースの解析だとかっていったものをやっている。いうインターフェースとして自然言語処理を使っていて、こういうスマートフォンみたいに制限されたデバイスっていうところでこれからもっと使われていくんじゃないのかなとは思っております。研究テーマとしては、トレンドはより深い意味の構造をちゃんと処理するというような方向に移ってきています。いう応用的なタスク、意味をとらえるような応用的なタスクっていうところになると、基礎的な解析っていうところも実はすごい重要で、そういうものの積み重ねの上に成り立っているんですよっていうのが1つ目のお話です。1つ目の話っていうのは、この自然言語処理の分野っていうのは非常に技術の輸出入が盛んです。過去に何度も新しい技術が導入されて、業界が一新されるようなことがありました。これからもどんどん多分変わっていくんだろうなとは思っています。異なる技術を持っているような皆さんのほうが実はすごいチャンスがある。とも興味があると言ってくださった皆さん、自然言語処理をちょっとやってみていただくとおもしろいのかなと思います。ありがとうございました。「情報処理祭」とは?リクルートが主催する「情報処理祭」は、情報技術を学ぶ学生を対象に、自分の知識が実際の社会や企業でどう使われているかや、情報処理分野の最新動向を横断的に学べるイベントです。春の情報処理祭に関する記事をまとめています。コミュニティをフォローすることで、春の情報処理祭に関する新着記事が公開された際に、通知を受け取ることができます。