前回、末尾に次のように記しました:
「…次回は、新世代の人工知能らしい「学習」とは何かについて、かな漢字変換から、人工知能分野とは少し違う領域の研究者が取り組んでいた機械学習について、また、最適化のタスクや、そのためのビッグデータのモデル化などに触れてみたいと思います。」
このあと、私の会社であるメタデータ(株)から半年ぶりに、機械学習による全自動テキスト分類等の意味理解機能を搭載したことで初めて「人工知能(AI)」をうたった製品「VoC分析AIサーバ」を発表しました。そこでこの製品にも触れつつ、主に、これまでに実現している機械による学習について論じてみたいと思います。
弱いAIの理想は「透明な」道具
もっともシンプルで、日本人のほとんどがなじんでいる「学習」機能といえば、かな漢字変換でしょう。一番最近の変換結果を最優先で候補として出す機能です。確かに便利ですが、これに対して「人間のように知的な振る舞いをする人工知能だ!」と感動する人は見当たりません。かな漢字変換などは、誤変換をしないのはもちろん、できれば変換自体を意識させないことこそが高性能の証しであり、自ら自我を持ったり目立ったりしてはいけません。
存在が利用者の意識から消えてしまい、道具を使っているという意識がなくなってしまうほど手になじむ道具こそが理想の道具ではないか。これを「目に見えないものは意識していないだろう」という意味で、認知心理学やユーザーインタフェースの学会などでは“transparency”(透明性)と呼んで、非常に重要な概念として位置付けてきました。
かと言って、別に透明人間や透明アルミニウム(映画スタートレックで登場)を作るような苦労は必須ではありません。紙と鉛筆の組み合わせでも、それで書くことに集中できて、道具を使っているという意識が消し飛び、道具の存在を忘れていられるならその人にとって十分に「透明な」道具なのであります。前回書いた、自動運転車が目指すべき「馬」も、熟練者にとっては透明な道具になっているのでありましょう。
インパクトのある誤変換との戦い
残念ながら、かな漢字変換は精度が100%にならない宿命があります。そして、誤変換をユーザーに見せてしまった瞬間、その時点で、文章を紡ぐ思考が途切れ、道具の存在を意識せざるを得なくなります。インパクトの激しすぎる誤変換を見つけた時にみんなで投稿するサイト「誤変換の宴」というのが以前ありました。私より10年位後輩のM君が運営していたのですが、SNSやboketeの出現前に、ソーシャルなジョークの先駆けの役割を果たしていたと思われます。
当時栄えたパソコン関係の雑誌にも時々、笑える誤変換の特集がありました。私が最も衝撃を覚えたのは、S社の某専用ワープロが「せんちょうさん」の誤変換を起こしたときの画面例です。「船長さん」が出てくるかと思いきや、変換結果の第一候補が「1000000000000003」だったのです。一瞬、かな漢字変換プログラムの致命的なバグ(トラブル)で、機械語という「0」「1」で記述された低レベルのコンピュータ言語のコード列がディスプレイに流れ出してきたのかと思いました。しかし、数字読み上げ規則(文法)を忠実に実装したS社のかな漢字変換は、残念ながら「人が数字をしゃべる時、概算で数量を把握し伝達するので、10桁以上も離れた位取りの数値を発音したりしない」という常識を備えていなかったため、激しいインパクトのあるおかしな、でも絶対に間違っているとまでは言いきれない変換結果を見せてくれたのでありました。
他にもトホホな例として、女優の鶴田真由さんの名前を書こうとして、「鶴玉湯」というお風呂屋さんの名前になってしまったりした例などがあります。単語のジャンルというか意味カテゴリのシフトが、(文脈からの期待値から)著しく大きかったとき、インパクトは激しくなります。
私の古巣でもあるジャストシステムのATOKチーム、ATOK辞書チームは大変優秀で、ごく最近になるまで、ビッグデータの物量と大量の機械学習、統計データの蓄積によるGoogleのクラウドかな漢字変換が精度で追いつけなかったほどです。15年〜20年ほど前にも、少なくとも上記のような「インパクト」の激しい誤変換を生じさせないよう、差分の自動評価に加えて、ATOK辞書チームで一生懸命、目視評価を併用してつぶしていました。
気づいても黙認した唯一の例外が、全員登録を原則としていたジャストシステム社員の姓名です。社長・専務夫妻の名字が「浮川(うきがわ)」だったため、「今日の海釣りの釣果がいまいちなのは浮きが悪いからだ」と変換しようとしたら最後が「浮川類からだ」となっても、多数の変換のバランスをとる関係上、この名字を辞書から外さないことは黙認されたように記憶しています。現在はその限りではないかもしれませんが、入社した後の最初のATOKのリリースで、最初の変換候補が「野村直行」から「野村直之」に代わってくれたときは、それは嬉しかった覚えがあります。最盛期には日本のパソコンユーザーの8割が使っていたかな漢字変換辞書、システムが自分の名前を優先してくれたのですから!
※一方、数年前にしばらくの間Google検索が、「野村直行」と入力すると「もしかして野村直之?」と訂正を促していた頃は、後ろめたいような、倫理にもとることを自分がやっているのではないか? と嫌な感じがしたものです。「学習」機能で実用レベルの一線を超えた
かな漢字変換は今後も改良が続きます。そもそも、かな文字列を漢字かな交じり文に変える技術は音声認識のために必要だ、と確信して最初に開発した、元東芝常務の森健一博士、天野真家さん(もちろん博士で教授ですが友達なので)らによって1979年に、4人で使える600万円位のワークステーションの形で産声を上げました。機械翻訳用のために、日本語の漢字かな交じり文を分かち書きするよりも、平がな文字列を「使える」水準の漢字かな交じり文字列に変換するほうがずっと難しい。これは直観のとおりです。このあたり、私がくどくど書くよりも、前述の森博士自身の研究開発の総括論文をご参照ください。さすが、オリジナル開発者だけあって、難しかったことも実に平易に解説してくれています:
「我々の研究結果の結論を先に述べますと、実用レベルの「かな漢字変換方式」を実現するための鍵は、日本語文法の精緻化と同音異義語に関する利用者の使用頻度情報を、機械自身が自動的に学習する機能の開発にありました。」
旧来の国文法がわずか10数ページ程度にまとめていた、厳密とは言い難い日本語文法を、品詞を細かく増やして定義し、文法ルール、制約条件も数千近くに及ぶまでに整備するとともに、どの切り方が最も正しい確率が高いかについては、辞書中のなるべく長い単語が採用される確率が高いように切り出す「最長一致法」が採用されていました。これは後年、最小コスト法という大量計算する一般的な手法と比べて、多くの場合に、少ない計算量で最適に近いほぼ同じ回答を出すことが証明されました。単語間の結びつきの違いで「子供は泣くが、猫は鳴く」が正しく変換されるように、共起辞書も丹念に人手で制作されていきました。
そして、上記文献の図6の真ん中にある、
◆単語使用の学習機能
には、
- 最頻度語の優先表示(同音異義語は使用頻度の順番に辞書に入れておく)
- 最近使用語の学習機能
とあり、これが、実用水準に到達する最後のカギだったと思われます。
人類初の日本語ワープロに、最初からこの「学習」機能が入っていたわけです。
かな漢字変換とAIのその後
その後、ジャストシステムにより、変換キー(PC-98等にあったXFERキー)よりも、分かち書きしない日本語では使用頻度が極少なのに一番押しやすいスペースバー(空白キー)で変換させるという工夫がなされました(皆に使ってもらうため、あえて特許は申請しなかった!)。ATOKが昇り竜のように頭角を現した頃には、このスペースバーすら押させずに、「随分たくさんの平がなが溜まってきた。助詞と思われる『が』『を』『に』の推計数からすると、ここらでコンピュータがユーザーに代わってスペースバーを押し、確定待ち状態にしてもいいのでは?」と判断して、ほどよい単位でユーザーに変換結果の確認を求める「自動変換」が搭載されました。しかし、これはユーザーインタフェース的に違和感が残る人が多かったようで、その後のバージョンでは次第に消えていきました。
1980年代の第二次人工知能ブームには、かな漢字変換にも「AI変換」という言葉が使われ、より広めの文脈をある程度読んで、少しでも高い精度で変換する仕組みが追求されていきました。現在のかな漢字変換、特にクラウド型のものは、裏側には文法を教え込んだ、もしくは学習させた何らかのメカニズムと、辞書に加えてビッグデータから抽出された大量の常識知識のようなものなど、ミリ秒以下で何万回もの判断をしているような、賢い、「弱いAI」が存在しています。Googleのエンジニア、工藤拓さんの研究開発を漫画にしたこちらをご覧ください。今後も読心術という超能力でも備えない限り100%の精度にはなりませんが、より膨大なビッグデータ由来の知識をリアルタイムで更新することで精度を上げていくことでしょう。
第二次人工知能ブーム当時の「AI変換」の実態は、1979年の初代ワープロの共起辞書に毛が生えた程度で、当時既にブームになっていた3層ニューラルネットなどは使われていませんでした。それは、ニューラルネットの計算量が理論的にも実際的にも非常に悪くて、当時の計算機のパワーがせいぜい、数10の要素(単語)の間の関係しか自動で学習できなかったため、数万以上もある単語の列などには対応できなかったからです。
現在は、当時、例えば月額レンタル料が数10億円単位だったNECの初代スーパーコンピュータSX-2の1.3GFlops(毎秒13億回の浮動小数点演算)に対し、4万円以下で購入できるNVidiaのGTX970というビデオカードが2000個近いCUDAプロセッサを搭載し、4.0TFlops(毎秒4兆回の浮動小数点演算)と、3000倍の性能を叩き出しています。個人のパソコンでも700W以上の強力な電源を積めば、このビデオカード(実は超並列スーパーコンピュータ!)を4枚刺すことも可能です。ほぼこの計算パワーに比例して、多層ニューラルネットに何万もの要素(単語や画素など)の入出力を放り込んで全自動で生データと最終出力の関係を学習させ、徐々に精度を向上させることが可能になっています。
古くて新しい様々な技術が「学習」的な応用を支える
最近、日経BPの浅川記者が、入魂の人工知能最新動向の記事を多数書かれました。その中に、UBICさんの例 があったのですが、いろいろな意味で考えさせられました。
UBICさんのサイトに行くと、行動科学研究の成果によるPredictive Coding(直訳:予測型符号化)という名前の自動文書解析技術が紹介されています。動画をよく見ると、日本語を分かち書きできること、それらの出現頻度等に応じて、単語の重要度の数値組を作れること、それに対し、数値データマイニングで伝統的に使われてきた様々な統計量を適用して分析をするオーソドックスな手法のことのようでした。
「伝統的」というのには、例えば、前述のかな漢字変換が誕生した1979年よりずっと以前から使われてきた相互情報量があります。これは、分子分母2項ずつの非常にシンプルな定義です。平たくいえば、ある2つの要素が同時に生じる(例えばその単語が使われる)確率を総合、平均的に求めるもので、2要素間の近しさ、遠さを正負の数値にしたもの。例えば、心理学実験で、集団中のAさんとBさんが一緒に同じ場所に現れやすければ正の値で、どうも互いに避けているのでは? と思われる状況が負の値となって、検証できたりします。要素を単語にしても全く同じで、1950年代前半以来様々に応用されてきたものです。(注:人工知能が誕生したダートマス会議は1956年)
一挙に60年、時計の針を進めて、ビッグデータ時代の今日、例えば研究者でなく法律などの実務家が、従来、人間が丹念に順番に読むだけだったのに比べて、何十万もの単語のランキングが瞬時に出てきたり、共起関係の出現頻度も出てきて、書類ごとのトピックの違いが何となく一瞥して分かるようなシステムが安価に使えるようになったのは素晴らしいことと言えるでしょう。
UBICさんの例で言えば、医療分野や法律分野という、少しの生産性向上、検索カバレージ、精度の向上が大きな経済価値を生み出すところに特化して、古くて新しい技術にもその分野、業界特有の運用ノウハウを蓄積して、価値の増大を図ってこられているはず。ですので、高度なSI、コンサルティング業に喩えて、大きな価値が認められるだろうことも容易に想像できます。
膨大な試行錯誤を代行する強力な「弱いAI」
先週、メタデータ社が発表した「VoC分析AIサーバ」では、-3, -2, -1, 0, 1,2,3の7段階のネガポジ判定結果や、上記の単語ランキング、フレーズ(係り受け)ランキングが任意の組み合わせ条件で絞り込んだ結果に合わせて集計され、すぐに表形式で出力されます。出現頻度数をクリックすると、該当の生データ一覧が開き、また、絞り込んだランキングの結果全体をCSV出力して、自前の5種類の相関分析ツール以外にも、専門の統計パッケージや、Excelの3Dグラフに流し込むことができます(機械学習機能ではないので次回以降、適宜画面例を参照して解説します)。これだけでも、結果が予想できないアンケート自由回答や顧客の声(VoC)の分析には大助かりで、前節の基準では人工知能と呼ばれても良いくらいです。もちろん「弱いAI」です。分析レポートを作成する人間の分析能力を数10倍に拡大できた実績がいくつもあります。
自由回答テキストを全自動で解析、集計 〜人は高度な分析に専念
「VoC分析AIサーバ」の最大の売りは、機械学習と階層意味分類を活用した全自動テキスト分類です。5階層、約1万種類の意味カテゴリが解析結果抽出されたほとんどの単語に付与されます。
例えば「信頼」という単語の意味カテゴリoik70は日本語で階層的に表現すると、[人の活動]‐[精神作用]‐[心的反応]‐[信頼・謝意・敬意] となります。図中、「@」「A」と操作して、中部地方の回答者1013名に絞り込んだ母集団を、意味カテゴリの識別は、最大限の5階層、そして、T0〜T9までの10種類に自動分類しなさい、と、「B」「C」「D」の順に操作すると、「E」以下の「分類結果」に、その結果が現れます。
先の、「信頼」と同様の意味カテゴリの共通部分が多い自由回答は、確かに、5本ともT8に分類されています。T8には、営業担当の信頼性の話題が集約されています。同様に、T4には営業マンが仕事の紹介を頑張っている記述が、T1には経済的条件が良いとする記述が、T2には対応、サポートの良さが、T3は仕事が決まる話題の記述が、各々集約されています。
大事なのは、共通単語が1つもなくとも、表記が違っていても、意味が近ければ同じ分類にすることができている点です。前述の伝統的な手法とは一線を画しています。
機械学習エンジンは、意味カテゴリの出現頻度のパターンから、適当な初期仮説を生成して、全記事をざっくりと所要の分類数、ここではT0〜T9までの10種類に分けます。その後、果たしてこの分類で、
- 分類間の違い(距離)が十分大きいかどうか
- 分類内の違い(距離)が十分小さいかどうか
何10回も評価を繰り返しては、初期の分類を少しずつ修正していきます。
その結果、ほぼ収束した、と判断されたものを分類結果として出力します。
また、実行時ではありませんが、開発時、特に意味カテゴリの改良に際して、さまざまな候補の収集、摺り合わせに、さまざまな人工知能手法を採用しています。これまではひたすら「弱いAI」で人間の判断をサポートするシステムを運用していましたが、今後は全自動タイプの人工知能、例えばディープラーニング応用のビッグデータ解析エンジンを人間のパートナーとして採用し、類語や反意語、関連語の候補を自動学習した結果を人間がチェックすればよい形にもっていきます。こうして、機械と人間がタッグを組んだ最強の知識創出システムが生み出した知識構造を活用して高度な分析が素早くできるようにもってまいります。
その次に、別種の人工知能を製品に追加搭載することも確定しています。それについては、当該のプレスリリース以降に解説させていただきたいと思います。
また少し長くなりました。次回以降は、今回用に書いていた、SF作家アイザック・アシモフによるロボット工学の3原則(学習とも大いに関係あります)の実現性、また人工知能的な手法と人工知能的なご利益(ベネフィット)の違いについて書いてみたいと思います。