ディープラーニングでIMEはさらに進化する!――続々「Simeji」の日本語入力システム入門(3/4 ページ)

» 2015年09月11日 10時00分 公開
[PR/ITmedia]
PR

―― 中国語の文章も、アルファベットの綴りが入ってくるのでしょうか。日本語だと日本語と英語が混ざりますが。

小町氏 入ります。いったん変換をオフにして入れるという感じだと思います。ちなみにアラビア文字は右から左に向かって書くんですが、アルファベットの単語だけは左から右なんですよ。

 基本的に日本語、中国語は予測も使うんですが、英語でも、スマホやケータイではキーが少なくて入力が大変だということで、予測入力のシステムを備えているものがたくさん開発され、市販もされています。どれくらい入力しにくいかによって、予測入力を使うのだと思います。PCのキーボードだと、思考とだいたい同じ速度で入力できるので、それほど予測入力しなくていい。でも、ケータイのテンキーだとキーが少なくて入力しにくいので、予測入力によって手間を削減してあげる。ということが開発者がやりたかったことです。

 英国にSwiftKeyという会社があり、英語やヨーロッパ系言語の予測入力を作っています。Androidの予測入力システムでダウンロード1位になったこともありますよ。日本人も1人、エンジニアとして働いていて、アジア圏の言語の予測入力エンジンを作っています。予測入力の発展には、携帯端末の記憶容量が増えたのが一番大きかったと思います。辞書を導入することによって、選択するだけでどんどん入力できるようになっていったということがあると思います。

―― 広くあまねく使われる言葉がネットを介して広がっていくというのはもちろんありますが、例えばグループによって、同じ日本語でもまったく通じない言葉をやり取りしている人たちがいます。世代、業界の違い、話している文脈によって、まったく何を言っているか分からない。ユーザーはさらに細分化しています。取ったデータを最適に出し分けていく技術は、どういったものなのでしょうか。

小町氏 この単語はこう読む、ということを知らないとどうしようもないということは時々あります。例えば「五月雨(さみだれ)」。どの読みも漢字と合っていなくて、読み方を知らないと絶対入力できません。こういうものは、とにかくそう読むことをシステムが知らないと、絶対出せない。ユーザーが1度でも選んでくれたら、この人はこの単語を使うんだということで、候補リストの上に出してあげることができるようになります。この単語が存在して、この読みが付いているということが、とにかく必要です。

 問題なのは、マイニングすると単語があることは分かるんですが、読みが分からないことがあって、その読みをどうやって取ってくるのかが難しい課題の1つです。クラウド辞書で登録してもらうのが一番確実ですが、集合知に頼ると、自分の名前だけ入れるとか宣伝ばかり入れるとか、変な入力をしてくる人がいて、取り除かなくてはいけないこともあります。やはり人手をどこかでかけなくてはいけない。

―― IME自体というよりは、それを支えるビッグデータをどう運営するかという部分だと思うんですが、もともとその言語を使っている人じゃないとできないのでしょうか。ある程度、機械任せにできるのですか?

小町氏 そこはまだ手法が確立していません。専門用語ではコールドスタートプロブレム(コールドスタート問題)といわれていて、本当はその人に特化したものが出せればいいんですが、まだ1回も使っていない人は、データがないので適応できないという問題があります。そういう人でも、そのシステムが使いやすくないと使ってくれないわけですね。だからデフォルトでそこそこ使いやすいものを提供して、そこからその人に使いやすいように適応させる。

 単純に、1度でも使ったらそれを上位に出す。こんな単純な手法でも「Move to Front」という名前が付いています。先頭に移動する、そのままなんですが、それでもだいぶ効果的で、ユーザーが満足することが分かっています。

言語にもディープラーニングが活用される

小町氏 最後のトピックはディープラーニング(深層学習)といわれる手法です。ディープラーニングは数年前からいろんな分野で盛んに研究開発されていて、FacebookやGoogleでもディープラーニングを研究するグループを作っていますし、バイドゥさんもディープラーニングに特化したリサーチをする研究所を作っているように、世界中の開発者、いろんな会社が注目しています。

 ディープラーニングが最初にブレイクしたのは画像認識です。人がいる写真なのか、車の写真なのか、犬の写真なのかなど、画像を分類するために、これまでいろんな手法がありましたが、2012年の画像認識コンテストで、ディープラーニングを使ったチームが圧倒的な性能で優秀したんですね。その後、さまざまな研究所や企業がディープラーニングの手法を使い、これは本当に使えるというので、注目されているという経緯があります。その後、画像だけでなく音声でも役に立つことが分かりました。音声認識でディープラーニングの手法を使っていないところはほとんどなくて、国際会議の発表を聞きに行くと、ほぼ全員使っている状況だと聞きます。ディープラーニングは革命を起こした手法の1つだと思います。

 ただ、言語は画像や音声と違って、ちょっと状況が特殊です。例えば「椅子」と「机」という単語について、そこにまったく共通するものはありません。画像だと、青と緑は近い色だと分かります。赤とオレンジも暖色系で近い、そういう連続した色の変化があります。音も高い音から低い音まで連続した、グラデーションのようなところがあって、そういうものはディープラーニングがうまく処理できる。しかし、言語はそういった連続したものではなくて、例えば「あ」と「い」と「う」と「え」と「お」は、母音だから近いかもしれませんが、単語としては全然違うものになってしまうので、あまりうまくいかない。いろんな人が言語に関してもディープラーニングの手法を適用していたのですが、最初の2年くらいは、なかなか成果が出ませんでした。

 2013年くらいから、ディープラーニングの手法を、言葉の意味に適用する事例が出てきました。例えば、「word2vec」という、単語をベクトルに変換する手法です。よく出てくる例としては、「king - man + woman = queen」という計算ができるというものです。これまでも意味の計算をするという研究はあったんですが、周辺に似ている単語が出てくる単語は意味も似ているだろうという仮定を置いて、この単語のベクトルを計算します。これは厳密にはディープラーニングの中でも表現学習と呼ぶべきですが、それが予想外にうまくいったことによって、言語でもディープラーニングの手法が爆発的に使われるようになってきました。

 先程、単語自身は別々だと申し上げましたが、ディープラーニングが言語処理で使われるようになった背景には、単語をベクトルで表現したことがあります。ベクトルのそれぞれの次元には、音や画像と同様に、実数値、数字が入っています。0.5や0.3と入っている場合、0.5と0.3は0.2の差があって近い。1と100は遠い、ということが測れるようになって、自然言語処理に関してもディープラーニングが使われるようになってきました。これができると何がうれしいかというと、機械翻訳でも意味が分かる翻訳ができるようになることです。質問応答、対話など、これまで人間でも何をしているのか分からなかったようなタスクで、意味をとらえたような言語処理に効果があると思っています。

 ディープラーニングは人間が脳の中でやっている処理を模倣したようなシステムを作って、大規模データを使って出力を返すようなブラックボックスを学習します。それを対話のデータを使ってやることによって、人間がちょっと見ても、これは正しいと思えるような結果を返すくらいのシステムがたくさん作られるようになってきています。

 対話システムにはAppleのSiri、NTTドコモのしゃべってコンシェル、MicrosoftのCortana(コルタナ)などがあって、世界中の大企業が対話システムの研究をしています。ビッグデータを使えるようになって、入力に関する応答をなんとなく学習してくれるような手法が実用的になってきた背景があると思います。質問応答に関しては、2011年にIBMのWatsonというシステムが、日本でいえばクイズミリオネアのような4択のクイズ番組で、人間のチャンピオンと戦って勝利したことで、人工知能すごいな、という話になったのが大きなトピックでした。

 4択問題では人間を超えるほどになりましたが、日本語入力は出力が文で、4択問題じゃありません。将来的には、言語処理のタスクが自然言語処理とディープラーニングを使って、意味を計算しながら適切な出力を出してくれるようになる、対話できる日本語入力みたいなことが可能かなと思っています。

脳(神経細胞)と同じように情報を処理するディープラーニング

―― ディープラーニングはよく聞く言葉ですが、具体的にどういう手法なのでしょうか。

小町氏 ニューラルネットワークという、神経の動きを模倣したようなシステムがあります。図の丸それぞれがニューロン(神経細胞)だと思ってください。細胞は「発火」、電気でいうと点灯した/しないで処理していきます。

photo 神経細胞の働きを元にしたニューラルネットワーク

 例えば入力した信号をメールに例えて、スパムメールを振り分けるとします。左側から進んで、タイトルや差出人、書き出しなどと段階を踏むことで、スパムかどうかを分類します。ある段階で発火したらこのメールはスパム、発火しなかったらスパムじゃない、というようなことを、神経が発火するかどうかで何度も行うわけです。

 つながっているものとの関係で発火するかどうかを決めるのが、ニューロンを使ったシステムになります。実際の人間の脳細胞もこんな風に動いていることが分かっていて、つながっている細胞から出力を受け取って、この出力の合計がある値を超えたらこれも発火する、という風になっています。

 これをもっと複雑にして、複数の細胞から受け取ったものが別の細胞に行くというネットワークにすることができます。こうしたネットワークを組んだものがニューラルネットワークといわれています。このニューラルネットワーク自身は古く、1943年に提案されて、効果のあるタスクもあることが知られていたのですが、流行っては廃れてを繰り返して、今回が3回めくらいの流行時期でしょうか。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:バイドゥ株式会社
アイティメディア営業企画/制作:ITmedia Mobile 編集部/掲載内容有効期限:2015年9月30日