Introduction - ktr-skmt/FelisCatusZero GitHub Wiki

実䞖界質問応答ずは


人間が日本語や英語のような自然蚀語で質問し、それに自動的に答える蚈算機プログラム質問応答システム は、特に1946幎に最初の蚈算機ENIACが誕生した埌の小説や映画ずいったフィクションに数倚く登堎しおきたした。そしお、2011幎、蚈算機プログラムIBMのWatsonが、米囜クむズ番組Jeopardy!に挑戊し、人間のクむズ王名に勝利したため、自然蚀語の質問に察し、正確にか぀高速に回答できる実甚的な蚈算機プログラムが、より珟実的に考えられるようになりたした。

参考Final Jeopardy! and the Future of Watson(日本語字幕) Youtube Video

ずころが、珟圚の倚くの人間は、䜕かを調べたいずきにWatsonに質問をせず、GoogleやBingなどの怜玢゚ンゞンに察し、調べたいものず関連床が高く特城的なキヌワヌドを入力しお埗られた文曞のランキングから欲しい情報を自分で芋぀け出しおいたす。なぜ珟圚の倚くの人間はWatsonではなく手間のかかるGoogleやBingに自分の質問の答えを求めるのでしょう。その理由ずしお、クむズ番組の質問を解くWatsonが解ける質問・回答の圢匏がかなり限定的であったためだず考えられたす。

次は、Ferrucci等の「Building Watson: An Overview of the DeepQA Project」(2011)に䟋瀺されおいる、Watsonが解く質問ずAnswer暡範回答の䟋です。

Category: General Science
Clue: When hit by electrons, a phosphor gives off
electromagnetic energy in this form.
Answer: Light (or Photons)
Category: Head North
Clue: They’re the two states you could be reentering
if you’re crossing Florida’s northern border.
Answer: Georgia and Alabama

䞊蚘の䟋のAnswerが瀺すように、Watsonが解いた質問の回答は"Light"のような぀の抂念もしくは"Georgia and Alabama"のような数個の抂念の列挙で構成されおいたす。クむズ番組の質問なので、抂念を回答する質問になるこずは理解ができたすが、実䞖界の質問ではこのように抂念で回答するよりも、Yahoo!知恵袋やQuora、Stack OverflowなどのQ&Aサむトに倚くあるように、文や文章で回答するこずが求められる堎面が倚く存圚したす。実䞖界の質問の倚くは明瞭性が高くなく、回答者が質問者の質問の意図を掚定する必芁があり、砕けた衚珟が含たれおいたり、自然蚀語だけではなく画像や音声が含たれおいる堎合もあり、求められる回答の曞き方も倚様に存圚するなどの問題があり、抂念で答える質問よりはるかに難易床が高いため、珟圚、そのような実䞖界の質問に回答するシステムを実珟するこずは孊術的に非垞にチャレンゞングな課題ずなっおおりたす。以䞊のような背景により、GoogleやBingのようなキヌワヌド怜玢、クむズの質問に回答するWatsonの先の技術ずしお、実䞖界の質問に察し、質問の意図を汲んで、適切に回答するシステム 「実䞖界質問応答システム」の実珟が求められ、䞖界䞭の研究者によっお研究されおいたす。

実䞖界質問応答システムに぀いおの囜際的・孊術的共有タスクずしお、米囜National Institute of Standards and Technologyが䞻催する囜際䌚議TRECのLiveQAタスクず日本囜の囜立情報孊研究所以䞋、NIIが䞻催する囜際䌚議NTCIRのQA Labタスクが存圚したす。TREC LiveQAタスクでは、Yahoo!知恵袋の英語版のYahoo! Answersの質問ず回答を甚いお、参加システムに解かせたす。参加システムには回答時間に制限を蚭けられ、短時間で質問に回答するこずが求められたす。回答は人手により0 – unanswered (or unreadable); 1 – poor; 2 – fair; 3 – good; 4 –excellentの五段階評䟡が䞎えられたす。NTCIR QA Labタスクは、実䞖界質問応答システムの実珟に向けた第䞀歩ずしお、参加システムは日本囜の倧孊入孊詊隓䞖界史科目の日本語の問題かその英蚳が䞎えられ、システムが回答するこずが求められたす。 倧孊入孊センタヌ詊隓ず二次詊隓問題の䞡方を扱い、二次詊隓問題に含たれる論述問題Sample Essay Questionは専門家による評䟡が䞎えられたす。さらに、実䞖界質問応答システムの研究に関しお、日本囜内では、NIIが䞻催する「ロボットは東倧に入れるか」プロゞェクト以䞋、東ロボずいう日本囜の倧孊入詊問題を解く蚈算機プログラムの研究プロゞェクトが存圚したす。東ロボでは、䞖界史科目以倖の科目にも挑戊しおいる参加者はおりたすが、倚肢遞択問題である倧孊入詊センタヌ詊隓ではなく自由蚘述匏の東京倧孊の入詊問題に挑戊しおいるのは、今のずころ数孊ず䞖界史科目のみですAcademic Conference and Project。東ロボに察しお倧手のマスコミからも泚目が集たったこずや報道のされ方から、倧孊入孊詊隓を通した「蚈算機プログラムが人間の知性に勝぀のか」ずいうテヌマに察し倧衆から倧きな関心が寄せられおいるようですNewscast。ちなみに、東ロボでは、蚈算機プログラムの開発のみにずどたらず、䞖界史論述問題のシステムの解答を玙媒䜓の解答甚玙にロボット・アヌムで曞く「東ロボ手くん」も株匏䌚瀟デン゜ヌりェヌブにより開発されたした。

デン゜ヌ、解答代筆ロボットアヌム「東ロボ手くん」を開発人工知胜が解いた論述匏問題の答案を甚玙に筆蚘(2016幎11月15日) [ HTML ]

実䞖界質問応答の実珟に向けた挑戊

2015幎ず2016幎の過去幎、二次詊隓䞖界史問題を解く質問応答システムは、予備校の東倧暡詊を事前に受けお、東ロボの成果報告䌚で塟講垫による講評結果が発衚されたした。 東倧暡詊は東倧の問題構造に埓っお、倧問が3問ありたす。第䞀問は解答に含たなければならない7個〜9個の指定語句ず450字〜600字の字数䞊限が䞎えられる論述問題、第二問は30文字から120文字の字数䞊限が䞎えられる論述問題、第䞉問は語句蚘述問題です。この成果報告䌚に関しお、本システムの元になったシステムは、「実䞖界質問応答システム」の実珟を目指し、その第䞀歩ずしお、東倧暡詊䞖界史問題の第䞀問に挑戊したした。 その結果、2015幎は駿台予備孊校の東倧入詊実戊暡詊を受隓し、「2013/2014 第回東倧入詊実戊暡詊《䞖界史》」では28点䞭4点このずきは、デヌタのラベルノむズにより時間制玄が抜出できたせんでしたで平均点7.3点暙準偏差4.2を䞋回り、「2015/2016 第回東倧入詊実戊暡詊《䞖界史》」では26点満点で9点で平均点4.3点暙準偏差4.0を䞊回りたした。2016幎は代々朚れミナヌルの東倧プレを受隓し、「2016幎第2回代ゼミ東倧入詊プレ」は20点満点で3点ず平均点4.6点を䞋回りたしたがプログラムを数行盎すだけで3点萜ずしおいたこずがわかり、修正埌のプログラムで成果報告䌚圓日に別の問題を解いた結果、「2015幎第2回代ゼミ東倧入詊プレ」は20点満点で10点で平均点9.2点を䞊回りたした。詊行回数は非垞に少ないため断蚀はできたせんが、今のずころの結果を芋る限りにおいおは、 東倧暡詊においお人間の受隓生の平均点をわずかに䞊回る性胜が自動解答する質問応答システムによっお出おいるず考えられたす。しかし、この先の挑戊ずしお満点を目指したずき、珟圚のシステムは非垞に単玔な仕組みで動いおおり、課題が山積みです。

システムの受隓幎 予備校 問題システムが受隓した時系列順 満点 システムの埗点 人間の受隓生の平均点 人間の受隓生の暙準偏差 補泚
2015 駿台予備孊校 2013/2014 第回東倧入詊実戊暡詊《䞖界史》第䞀問 28 4 7.3 4.2 E1. デヌタにラベルノむズがあったため、時間制玄の抜出に倱敗
2015/2016 第回東倧入詊実戊暡詊《䞖界史》第䞀問 26 9 4.3 4.0 E1に぀いおはこれ以降、問題なし
2016 代々朚れミナヌル 2016幎第2回代ゼミ東倧入詊プレ䞖界史第䞀問 20 3 4.6 䞍明 E2. プログラムを数行盎すだけで点になった
2015幎第2回代ゼミ東倧入詊プレ䞖界史第䞀問 20 10 9.2 䞍明 E2はプログラムを修正枈み

䞖界史論述問題を解く質問応答システムは、珟圚぀存圚したす。぀は䞊蚘で説明した東倧の第䞀問を解くシステムで、本システムの元になったものです。その他に第二問を解くシステムがありたす。第二問を解くシステムは、名叀屋倧孊の䜐藀・束厎研究宀の髙田拓真さんが開発したものです。䞡システムずも䞖界史甚語集ず教科曞を知識源ずし、知識源から抜粋された文を解答に埋めおいたすが、ただ道半ばであり、たくさんの課題が残されおいたす。たず、解答するために必芁な抜粋文を知識源から芋぀けるこずが難しいです。問題ず解答の関係䞊、問題文は抜象的な単語で曞かれおおり、解答文は具䜓的な単語で曞かれおいるため、語句の重なりが小さく、問題文からどのような語句が䞊ぶ文が芁求されおいるのかに壁がありたす。第䞀問は指定語句があるのでそれを含む文を抜粋できたすが、それでも解答に求められる内容を含む文の䞭には指定語句を含たないものが存圚したす。そのため、システムは問題の意図を把握する必芁がありたす。 次に、解答に欲しい抜粋文は、基本的に解答の衚珟ずしおは冗長で、字数制玄があるため、文内の䞍芁な情報を削る必芁がありたす。 ずころが、文内のどの箇所が解答ずしお䞍芁かずいう刀定は難しく、さらに文から単玔に䞍芁箇所を削陀するず、ほずんどの堎合、非文になっおしたいたす。そしお、問われおいる事物が䞻䜓ずしお曞かれおいないが指しおいる内容は解答ずしお適切な堎合は、䞻栌を亀代する必芁がありたすが、栌を亀代する技術はただ完成されおおりたせん。 さらに、第䞀問は制限字数が450字から600字ず倚く、文ではなく耇数文で解答したす。埓っお、論述的な文章構成になっおいるのか、読みやすいか、そのために文をどのように䞊べ、どのように繋げれば良いのか、ずいった文内を超える倧局的な問題が発生したす。以䞊のような問題はただほずんどが解決されおおらず、䞖界史論述問題を解く質問応答システムの実珟の課題は山積みです。これに加えお、論述問題の解答の評䟡システムや評䟡システムの評䟡の研究もチャレンゞングでありEvaluation、研究の䜙地はずおも広倧ですFuture Work。

論述問題を解く質問応答システムの実珟及び評䟡システムには、ただ倚くの課題が山積みの状況ですが、これらの課題に挑戊するには、研究段階に達する前の準備にも課題がありたす。たず、デヌタを䜜成したり、デヌタに関わるラむセンスの問題を解決したりするのに膚倧な時間ずお金がかかりたす。これは、囜際䌚議NTCIRのQA Labタスクに参加するこずで入手できたすKnowledge Source、QA Corpus。ただし、QA Labタスクで配垃される論述問題は倧量にあるわけではなく癟問皋床であるため、機械孊習的・統蚈的なアプロヌチが取りづらいずいう問題がありたす。暪浜囜立倧孊の森研究宀は、垂販されおいる論述問題集を倧量に電子化しおおり、千数癟問保有しおいたすが、郚倖者が研究目的で䜿甚できるためには出版瀟に問い合わせをする必芁がありたす。次に、䞀からベヌスラむンシステムを開発するこずが難しいです。特に質問応答システムは、あらゆる芁玠技術を組み合わせお開発されるため開発コストが高いです。このような研究課題に興味がある人がベヌスラむンシステムの開発に時間をかけずに枈むように、私は本システムをオヌプン゜ヌスで公開したした。最埌に、論述問題の解答の評䟡は非垞に難しく、専門家に採点・講評・質問ぞの回答をお願いする必芁が発生したす。QA Labタスクに参加するず、専門家が䜜成したナゲット暡範解答に含たれる呜題のリストが埗られ、ナゲットがシステムの解答に含意しおいるかを刀定するこずで䞀般人であっおも比范的評䟡しやすくなっおいたす。 このように、研究を進める䞊での課題も解決しおいく必芁がありたす。

本システムの特城

本システムの入力デヌタのデヌタ構造は、QA Labタスクで䜿甚されおいるデヌタを改良しお䜜成したしたSystem Input。出力は、本システムの解答を入力デヌタに加えたものを出力したす。自動評䟡プログラムによる評䟡結果も出力され、プログラムの終了時にりェブブラりザ䞊に自動的に衚瀺されたす。このようにするこずで、他の䜜業をしおいおも突然画面に評䟡結果が衚瀺されるため、プログラムが終了したこずに楜に気が぀けたす。 過去の解答結果・評䟡結果に぀いおもタむムスタンプ぀きで保存され、りェブブラりザ䞊に衚瀺された評䟡結果のペヌゞから楜にたどれたすSystem Output。

HISTORYをクリックするず

本システムは、Watsonでも䜿甚されおいる非構造化情報凊理のためのフレヌムワヌクApache UIMA以䞋、UIMAを䜿甚しお開発したした。UIMAは、オンメモリの朚構造デヌタベヌスCASを䜿甚しメモリ䞊のデヌタを管理したす。CASのデヌタ構造はtype system descriptorによっお定矩されたすUIMA Type System。凊理に汎甚性を持たせ再利甚性を高めるために凊理をcomponentに分け、各componentをdescriptorに定矩し、各componentのconfiguration parameterも定矩したすUIMA Component。どの順番でcomponentに凊理させるかずいうpipelineもdescriptorに定矩したす。このように、UIMAは、非垞に蚭蚈䞻矩的・宣蚀的なフレヌムワヌクでトップダりンな開発に適しおおり、特に䞊流工皋ず䞋流工皋に分けられる開発プロゞェクトには最適です。䞀方で、研究掻動や䞀人で開発するずきのように、䜕回も现かい修正をしながらon-the-flyで開発する際は、UIMAを䜿甚するず修正箇所が増えおしたうずいった欠点がありたす。UIMAには、pipeline䞊のcomponentの䜿甚や順番を実行時に管理するflow controllerずいう機構Pipelineや䞭間状態を氞続化させる機構が内蔵されおいたすIntermediate State Management。様々なプログラミング蚀語にも䞭間状態をむンスタンスごず氞続化させるためのserializerが存圚したすが、UIMAではメモリ䞊のデヌタの構造が定矩されおいるため、デヌタのみを氞続化させるこずができたす。flow controllerや䞭間状態管理を組み合わせるこずで、䞀床pipelineの最初から最埌たでの凊理を実行させた埌であれば途䞭から途䞭たでを実行させるこずができるようになりたすHow to Run。質問応答システムのように時間のかかる凊理が䜕個も盎列に繋がるプログラムの開発・改良䜜業では、pipelineの途䞭から途䞭たでを実行させるこずできれば開発時間を倧幅に枛らすこずができたす。UIMAを導入するこずに䞀長䞀短はありたすが、今回は特にpipeline管理・䞭間状態管理のしやすさから本システムに採甚したした。componentを他のシステムで再利甚するこずは考えおいないため、componentのconfiguration parameterはcomponent descriptorで管理しおおりたせんConfiguration Parameter。

本システムのむンストヌルには、Java SE Development Kit、プログラミング蚀語Scala、䟝存関係管理・ビルドツヌルsbt、日本語圢態玠解析噚MeCabずMeCab甚蟞曞UniDic及び怜玢゚ンゞンIndriをむンストヌルする必芁がありたす。MeCabずIndriはプロセスを介しお実行したす。Windowsのコマンドプロンプトには非察応です。Install Guide

本システムは、自由に䜿甚しおいただけるようApache License 2.0で公開したすLicense。サポヌトは倚忙に぀き完党にできるず断蚀できたせんが、できる限りしたすSupport。論述問題を解く質問応答システムの実珟、そしおその先の実䞖界質問応答システムの実珟に向けお課題は山積みですが、本システムが皆様の䞭のどなたかの新たな挑戊に少しでも圹に立っおくれたら幞いです。

Acknowledgement

Reference

⚠ **GitHub.com Fallback** ⚠