森山和道の「ヒトと機械の境界面」

クイズ王を破ったIBMの質問応答システム「Watson」とは
〜人間より速くクイズを解く知的処理の仕組みと今後の可能性



 3月10日、IBMは同社のUNIXサーバー「AIX」の25周年記念イベントの中で、特別講演「研究者が語るWatson - 質問応答技術の可能性と今後の展望」を開催した。

 「Watson」とはIBMが「DeepQAプロジェクト」で約4年の歳月をかけて開発した質問応答システムである。2011年2月16日(米国時間)、アメリカのクイズ番組「Jeopardy!(ジョパディ!)」で過去74連勝したKen Jennings(ケン・ジェニングス)氏、そしてそのケン・ジェニングスを破って賞金総額歴代最高になったBrad Rutter(ブラッド・ラター)氏、2人の人間のチャンピオンを破って勝利を収めた。驚愕すべき出来事であり、ネット上でも大いに盛り上がった。

日本アイ・ビー・エム株式会社 東京基礎研究所 シニアテクニカルスタッフメンバー 武田浩一氏

 講演ではこのプロジェクトに日本から参加した1人である、日本アイ・ビー・エム株式会社 東京基礎研究所 シニアテクニカルスタッフメンバーである武田浩一氏が、Watsonの概略とその意味について語った。なお日本IBM東京基礎研究所からは、武田氏のほか、自然言語処理を専門とする金山博氏もこのプロジェクトに参加している。対戦時には金山氏はTwitterの@Research_Tokyoのアカウントで、概要解説を行なった

 IBMはこれまでに、1996年と1997年にチェスのチャンピオンだった、ガルリ・カスパロフ氏を破ったスーパーコンピュータ「Deep Blue」を開発している。今回のWatsonはそれ以来の「グランドチャレンジ」だ。「グランドチャレンジ」とは、少しずつ改良していくのではなく、高い目標を設定して、それを克服するための研究開発を行なうことで、これまでにないレベルでの技術開発を目指すものである。失敗したとしてもその過程で得られるものが多いようなチャレンジをすることの意義がある、Watsonには、アメリカのワトソン研究所を中心に、4年の歳月と25人の研究員が従事した。

 IBMがクイズ番組に挑戦すると社外に発表したのは、2009年4月だが、実際のプロジェクトはその2年前に始まっていた。グランドチャレンジは、大きな失敗をする可能性もあるようなチャレンジでなければ意味がない。そこでまずは2年間、社内だけで開発に取り組んで、ある程度目処がついた段階で社外に公表したわけだ。

 背景には既存のデータベースが扱う構造化データに対して自由な形式で書かれた「非構造化情報」、すなわち膨大なテキストやセンサー情報などが爆発的に増大しているということがある。これら人がコミュニケートしたり、直接測定で得られた生のデータ、デジタル化された情報を人の知見に応用できるか、有効活用できれば大いに有用である。クイズ番組を対象に選んだのは、技術者ではない人にも、どういうことをやったかがすぐに分かるからだ。

 なおIBMは非構造化データの取り扱いについてオープンソースプラットフォームとして「UIMA(Unstructured Information Management Architecture)」を提案し、2004年にSDKを公開している。Watsonも非構造情報を解くプラットフォームであるUIMAの上に、およそ300個のコンポーネントを組み込んだものだと言える。

●クイズ番組「Jeopardy!」とは? Watsonとは?

 Watsonとはテキストを受け取り処理することで、解答の候補を列挙するシステムである。導き出した解答候補は問題文に照合して確からしさを検証し、導き出した答えに自信があれば、ボタンを押して回答する。ちなみにWatsonは、他のクイズ回答者同様、プランジャーでボタンを物理的に押していたという。正答すると次の問題を選べるので有利になるが、外すと減点になる。Watsonは答えに対する「確信度」を計算しており、自信がない場合はボタンは押さない。なお、回答と問題の選択は音声で読み上げることができるが、司会者の問題文の読み上げの音声認識はしていない。他の回答者の回答も聞いていないし表情認識もしていない。画像認識もしていない。つまりWatsonは人の言うことは聞いてないが、話すことはできるというわけだ。

 そのWatsonが挑戦した「Jeopardy!」とは、平日毎日30分放送されているクイズ番組で、なんと1964年からオンエアされ続けているという人気長寿番組である。「Jeopardy!」はエンターテイメント番組なので、問題文もストレートではない。ある言葉に対する事実が語られるセンテンスが提示され、その文章が何を意味しているのか回答する形式の番組だ。このひねった質問文をまず理解するところから番組視聴者は楽しむわけだが、武田氏によれば「母国語でない人間にとっては、その面白ささえわかりにくい。何を聞かれているのかもわからない」という代物だ。つまり、回答以前に問題文が何を問うているのかという「読解」が必要なのである。

 武田氏は具体例を示した。「Jeopardy!」の問題文は例えばこうだ。「米国が外交関係を持たない世界の4カ国のうち、この国は最も北にある」。つまり問題文は質問文形式ではなく、事実の形で書かれている。この文章を手がかりとして、そもそも何が聞かれているかをつきとめないといけない。これに対してWatsonは、人間の思考とはだいぶ違うやり方で挑んで、クイズ王に勝利した。ちなみにこの問題文の質問部分は「この国」であり、正答は「北朝鮮」である。

Watsonが挑戦したクイズ番組「Jeopardy!(ジョパディ!)」 「Jeopardy!」のゲームの進め方

 TV番組でWatsonが答えるシーンを見た人も多いと思うが、そのためいくらかWatsonについては誤解されているところもあるという。まずWatosonは対戦当日はスタンドアローンで、インターネットなど外部接続はしていない。解答時、若干、人間のようなちょっとしゃれた言い方をすることもあったが、それは単なる作りこみによる表層的な処理に過ぎない。人間的思考や感情を実装したものではない。いわゆる人工知能のように、人の考え方や意味処理を追求したものではなく、Watsonの処理は既存の情報検索技術の延長線上にある。大量の情報から、信頼度を積み重ねることで回答を選ぶ、情報検索応答技術の延長線上にあるものだ。

 ただし、従来のやり方ではWatsonの勝利はなかった。1番の課題は、問題がありとあらゆるジャンルから出題され、幅広く知識が問われることだ。通常のこのようなシステムにおいては、特定分野や特定範囲だけを対象にするなど制限を用いる。しかしクイズ番組には制限はない。「オープンドメイン、すなわち制限のない質問に答えるのが大きなチャレンジの1つだった」という。しかも前述のように問題文はひねられている。語呂合わせや、おかしみのある表現をしている人間的な問題文から手がかりを読み解き、確信度の計算に反映するために、IBMでは自然言語処理を駆使して、問われている内容と手がかりを紐解いた。

 もう1つ、正解率も重要だ。ボタンを押して間違えると減点され、掛け金を失ってしまう。だから自信があるときだけボタンを押さなければならない。今回、Watsonはボタンを押せば9割弱くらい正答する正解率を達成した。これは人間のチャンピオンとほぼ同等の正答率である。この計算が内部的には大きなものだった。解の候補は人間のように一直線に出てくるわけではない。あらゆる手がかりからいくつか上がってきた解答候補に対して、確信度を処理する計算が走る。だから非常に大規模な計算になるのだ。しかもそれを2、3秒以内に処理しないと人間には勝てない。最終的におよそ10万にものぼる候補を計算処理するために非常に大規模で高速な並列計算処理をやるのが重要な課題だったという。

 このような技術的課題を解決するために、確信度を計算して、「観点」にもとづいた処理を行なうアーキテクチャを実装した。これがポイントになる。詳細は後述する。

 もう1つ、「ゲームに勝つ」ということにも戦略がある。「Jeopardy!」では、ときどき掛け金が倍になる問題がある。Watsonは、対戦者のスコアが自分と比べていいのか悪いのかを見て、「確信度」の閾値を変えるようにしていた。理由は言うまでもないが、自分が負けているときは積極的に点を取りに行かないと追いつかない、逆に勝っている場合はある程度落ち着いて確信度が高いときだけ答えようといった戦略をとったのだ。勝負なので、そのような、ダイナミックな状況に応じた判断、駆け引きが必要になるのである。ゲームに勝つための戦略についても専用の研究員を用意して、そのアルゴリズムを実装したという。

●人間、検索エンジン、そして質問応答システム「Watson」、それぞれの処理の違い

 先ほども述べたが、「Jeopardy!」は1964年から45年以上続いている30分のTV番組で、月曜から金曜まで通算既に9,000回以上放映されている正統的クイズ番組だ。早押しで回答するのだが、パネルに問題文が全部一度に表示されるので、読んでいる間に途中で答えるような「ひっかけ」要素はない。6つのカテゴリで各5問、全部で30問を解く。問題は歴史、スポーツ、科学など幅広い分野から出題され、3人の回答者がいる。

 この「カテゴリ」が曲者である。単純な、政治とかスポーツとかではなく、「Eで始まる医療用語」とか、「ビートルズの歌詞に出てくる人の名前」といったものが「カテゴリ」として設定されている。要するに非常に細分化されたマニアックなカテゴリなのである。このカテゴリについては、日本のクイズ番組だと「カルトQ」がちょっと近いのかもしれない。カテゴリの選び方自体にウィットが効いている点も、「Jeopardy!」の人気の1つの理由だという。当然だが掛け金が上がれば上がるほど問題の難易度も上がる。

 「Watson」との対戦時には、研究所の中に特設会場をつくって、テレビクルーがテレビセットのパネルを設置した。パネルから1問を選んで回答者が回答する。対戦の様子はIBMのYouTubeチャンネルに上がっている。

 最初の対戦時、まず人間のチャンピオン(ブラッド・ラター氏)が回答した。前半後半30分で解くため、あっという間に1問は終わる。ラター氏が1問目に正答したことで、研究者達の間では一瞬動揺が走ったという。第2問はWatsonが正答した。番組では、Watsonがどのような答えにどのくらいの確信度を持っているのかが表示されていた。早押しなのでゲームはどんどん、かつ淡々と進んで行く。この様子はぜひ動画でご覧頂きたい。


 質問は多様である。いったん使われた質問は出てこない。だから過去問を単純に覚えるだけでは何の役にも立たない。過去問は、答えの信頼性を計算する仕組みづくりにのみ役に立つ。

 問題文には「型」がある。例えば「4文字の言葉」だったら「4文字」、国だったら「国名」が「型」になる。もっともよく出てくるような型、すなわちカテゴリの質問でもすごく少ない。「Jeopardy!」の問題製作者は毎回カテゴリを作っているようなものなのだ。過去問が同じ物を使わないという特徴があるので、常に新しい質問があたえられても、安定して答えられなければならない。

 例えば「マルタ語はイタリア語から多くの語彙を借りているが、それはこのセム語系言語の方言から発展した」という問題文がある。この答えは「アラビア語」である。しかし、問題文をよく読めば分かるが、問題文の一部(イタリア語から多くの語彙を借りている)は解答の手がかりにまったく寄与していない。つまり問題文が何を意味しているのか、どこが手がかりなのかをまず探さなければならないのである。

「Jeopardy!」での質問は多種多様で丸覚えは無意味 「Jeopardy!」での出題文の例

 人間とWatsonのような質問応答システムの処理の違いを示すために、日本語での例として武田氏は「この県は本州の中でもっとも西に位置しています」という問題文を示した。人間の場合、「本州」という言葉を聞いたとたんに、これが「日本」のことだとわかるし、「県」に関する問題だとわかる。つまり人間は「本州」という単語について紐づけられた非常に豊富なセマンティクス(意味情報)を持っている。

 しかしWatsonはそのような情報を持っていない。日本であることすらわからない。全ての単語について意味情報を想定して入力することは不可能なので、「本州」という言葉が日本と関係しているらしいということは、豊富な情報源から読み取る必要がある。だが問題文と全く同じ形式で情報が表現していることは少ない。

 人間であれば、本州ときいたときに地理的なイメージも同時に浮かぶ。そして西の端にあるのは山口県だと思いつけば瞬時に回答できる。人の場合は質問を正確に理解して、構造化された意味情報を使うことでトップダウン的な考え方でほとんど瞬時に答えを出せる。ストレートに問題から答えを絞り込んでいるような連想処理をしていると考えられる、という。

 人と似たようなシステムを作るのであればそのようなやり方をとることになる。しかし豊富な意味情報を全部事前にロードしないといけなくなる。今回のようなクイズ番組に勝つためにはこのようなアプローチはとれない。

 検索エンジンの場合は、問題文に出てくる単語が意味を代表すると考えて、似たような単語が出てくるページをつきとめる。そこから正解にたどりつく動作は人間に任せている。検索エンジンは情報要求に対してポインタをかえすような処理がメインで、実際の判断は人に任されているのだ。

質問応答における人間の知的処理 検索エンジンの場合

 Watsonの場合は、質問文が構造的にどうなっているかを分析して、「この県」が聞かれている対象だろうとあたりをつける。そして背後にある豊富な情報源、すなわち百科事典やWikipediaなどデジタル化された知識の情報源から、「こういう情報」と表記しやすいものは解の候補だとする。つまり文字通りでなくても内容に近いものを探して列挙する。これが答えの候補になる。

 次にその答えの候補を、さまざまな観点で検証する。例えば、質問の型が一致しているか、条件が一致しているか、性別が一致しているか、該当語へのリンク数はどうか。このような「観点」で見ていく。正解に近ければ近いほど多くの観点を満たしていると考える。山口は本州の西にある、山口は県だといったことを確認していくのだ。観点の重み付けが難しいところだが、重み付けについては過去問が使われる。それぞれの観点がどんな問題のときでもまったく同じ重みではうまくいかないので、場所を問う質問にはこういう観点でいこうといった、解き方が正しいかどうかを過去問から検証するのである。

 そのためのアーキテクチャ、Watsonを構成する処理のフローはこうだ。まず質問とカテゴリが来る。その構文を解析して何が問われているか手がかりの部分と、対象の問われている「型」を推定する。その手がかりで情報源を調べにいく。候補をいくつかあげる。その候補を再度、情報源に照らし合わせる。候補が得られたら、その候補を手がかりに埋め込む。手がかりのところに候補を埋め込んだものが「仮説」になる。その仮説を再度知識源に検証に行く。それが正しい解答であれば情報源の中に一致が見られるはずである。それを「観点」ごとに行なって、結果をスコアとして和をとる。それを合わせることでもっとも高い確信度のものを解答として答える。おおまかに言えばWatsonはこういう計算をしているという。

 こういう処理が実際に人との対戦で競いあうレベルにできた背景には、情報源が大量にあること、Wikipediaのように良質な情報が存在し、他にもありとあらゆる歌の歌詞や聖書など、情報のかなりの部分がデジタル化されていることにも大きな恩恵を受けている。

Watsonの質問応答のアプローチ Watsonの処理の流れ

 問題を解くためには言語処理が必要だ。問われている内容の解析、問題文の読解である。これもかなり難しい。例えば「照応解析」と呼ばれる、代名詞が何を指しているのかを解析するような処理をしてそもそも何が聞かれているかを読み解き、問題文のうち手がかりになっている部分と、手がかりとして役に立たない不要な部分を判別する必要がある。質問文の解析がまちがっていたら回答にたどりつくのは難しい。そのためには、問題文を分解してやる。そして解の候補を手がかりにいれてみて解の正当性を確かめていく。それを毎回行なう。2つの条件があるとき、まず片方の問題を解かないともう片方が出てこないこともある。そのような形で質問を分解して解いていかなければならない。

問題文を読解するための言語処理 問題を分解する

 キーワード・マッチで良いのではないかと考える人もいると思うが、それではだめだという。武田氏は「(バスコ・ダ・ガマが)1898年にインドに上陸した400周年記念を祝った」という問題文を例にとった。この場合、バスコ・ダ・ガマという人名が正解である。だがこの問題文からキーワードを抽出しても、どこの誰だかさえわからない人が書いた旅行ブログが合致してしまうようなケースもありえる。そしてその人の名前が解答ではないかと判断してしまうことになってしまいかねない。単純に知識源と問題文との間でキーワードマッチをしてもダメなのだ。「意味を考慮したマッチング」が必要だと言う。

 具体的にはイベントについて聞かれていると判断したときは、時間が同じだという同義性、地理的な類推、統計データをベースにした言い換えなどのパラメータを上げる。そうすることで解答にたどり着くことができる。試行錯誤をしながら観点を作り、重み付けをトライアンドエラーを繰り返してチューンしていったという。例えばイベントについて問われたときは、時間と場所のパラメータをあげることで正解に近づけると学習するわけだ。ただし意味的な一致は強い根拠にはなるものの、数値化が難しく、どんな根拠も100%の信頼性はない。

キーワードマッチでは誤答してしまう 正答を導き出すためには意味を考慮したマッチングが必要

 Watsonシステムが人に対戦した結果を測定して確認するための指標もつくった。過去にクイズ番組に出場して1度でも勝ったことがあるチャンピオンの成績をプロットしたところ、特にずば抜けた成績を持つグランドチャンピオンたちは70%で押して9割正解するパフォーマンスを持っていることがわかった。これが目標になるわけだが、プロジェクトを始めた時にはなんと、20問中もっとも自信がある1問だけ選んで答えさせても半分以上間違えるようなレベルだった。全部に答えさせると10問に1問しか正解しなかった。実に散々な成績である。この差を埋めるのは絶望的で暗中模索だったという。だがどんな手法をとればパフォーマンスを上げられるかと考えたところに今回の偉業の始まりがある。2007年12月に確信度のアーキテクチャを上述のようなものへと根本的に変更したことが、一番最初の大きなジャンプになった。以後はWatsonは成績を着実に伸ばしていった。そして2009年に対戦を発表した。精度が高くなればなるほど改善度合いは低くなるので、そこには「血の滲むような努力」があったという。

 冒頭で述べたように、WatsonはUIMAの上におよそ300個のコンポーネントを組み込んだものだ。質問文の解析、検索、解答候補の生成、スコア付け、構造化データの準備、根拠の獲得、結果の出力などをそれぞれ行なうコンポーネントを開発した。そのうちいくつかは日本の研究者が貢献した。

人間の成績と当初のWatsonの成績(下の折れ線) アーキテクチャを変えてチューンすることで成績が向上 Watsonに組み込まれた非構造化情報を扱うためのコンポーネント。日本が貢献したものは青字

●Watsonが実装した並列化処理とハードウェア

 Watsonは2、3秒で膨大な処理を並列化で行なう。Watsonは問題の分割による質問の解釈、解答候補の生成、フィルタリング、解答の根拠とスコアリング、さらに質問に解の候補を埋め込んで検証するといった手順で問題を解いていくわけだが、それぞれのステップで処理すべき解の候補がどんどん増えていく。最終的には数十万の観点ごとの評価を処理しなければならず、後段の処理、下流プロセスになればなるほど並列化が必要になる。

 この大規模並列処理を数秒でこなす対戦用システムは同社の「Power750」に実装した。最初は2.6GHzのマシンで2時間かかっていたという。それを200GFLOPSを超える性能を持つ汎用プロセッサー「POWER7」2,880コアを用いた並列化処理で、2〜3秒で応答できるようにした。特徴は大容量メモリを使っていること。これはもちろんディスク上にインデックスがあるとディスクアクセスに時間がかかるためだ。特に並列処理を安定して行なえるようにすることが非常に重要だったという。対戦時にはあまり安価なサーバーを並列化すると障害に対する予測ができないし冗長化も課題がある。しかしながら今回は商用化されているシステムを使ったため、システムの安定性が確保されたという。

 Watsonは1ラックあたり10ノードで、うち1つは制御用。それを10ラック組み合わせている。うち、60ノードには128GBのメモリ,30ノードは256GBのメモリを搭載。各ノードは4個のPOWER7 Atlasチップから構成されている。各チップは8個のCPUコアを含むので、合計2,880コアという計算だ。この規模で初めて人と対戦する速度を実現した。現在でも自然言語処理のソリューションをIBMは提供している。

下流プロセスになればなるほど並列化が必要 IBM Power 750上に実装した 商用化された汎用品を用いている

●「DeepQA」=「根拠に基づいて仮説の生成と評価を行なうシステム」の今後

 Watsonの本質、「DeepQAアーキテクチャ」は「根拠に基づいて仮説の生成と評価を行なうシステム」だという。大量の知識源があったときに、直接キーワードを検索しにいくのではない。こういう種類のものが知りたいとか、こういうものがあるかといった質問から、問われている内容を解析し、それをもとに情報源から仮説を生成し、その仮説の根拠を探してスコアリングして答えとして出し、それを学習できるというものだ。原因と結果、症状と病気のような、表現そのものと解の間の関係がキーワードではなく、知識源に書いてある対象を推定する技術である。

 Watsonを使えば、これまではキーワード検索で見つからなかった、解答がどこにあるか見つからない、情報要求をうまく伝えられないような問題が解ける可能性がある。武田氏は「考え方を変えると、『根拠』という大量の情報があるときに、問い合わされた内容を『仮説』と見なして、その仮説を実際に根拠と突き合わせることで解を導き出す。そういう汎用的なアーキテクチャができているのだとお考えください」と述べた。

 Watsonは人間とは異なるアプローチをとっている。だから人間にとって代わるものではない。だがこの仕組みを使った診断支援システムへの応用研究が始まっている。音声認識システムで知られるNuanceとの提携が発表されているが、これは患者の話や症状、既往症などのデータをもとに、医療関連情報を情報源として、病気の診断をある確信度で行なうというものだ。普通の病気であれば医師だけで十分だが、難病など稀な病気である場合、見逃すこともある。その場合はシステムが導きだした答えが役に立つこともあるかもしれない。「医療の見逃しや気づきを支援できるかもしれない」と武田氏は語った。製造業における不具合の出方と根本原因の探索などにも役に立つ可能性があるという。

 このほか、コールセンターそのほかテキストマイニングが必要なシーンで使える可能性は高い。大学との共同研究もしているので、時期を見てより詳しい情報を公開するとのことだ。

根拠に基づいて仮説の生成と評価を行なう「DeepQAアーキテクチャ」 エビデンスに基づいて診断支援するシステムへの応用が考えられる 自動的な概念抽出と文の構造解析ができるシステムの応用範囲は広そうだ

 内容盛り沢山だが正味45分程度の講演だったので、やや駆け足であり、詳細がよく分からないところもあったが、大変興味深かった。コンピュータの歴史に残る偉業なので、より詳細な内容が公開されることも期待したい。また開発した研究者たちに拍手を送りたい。