『日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
人工知能において質問応答システムは、他の動物ではなく人間にしか実現できない「人間らしい」知能を実現しようとする試みの1つである。もし優れた質問応答システムが実現されれば、Web検索技術が世の中にもたらした以上の大きなインパクトを与えるだろう。その応用の広さと重要さから、人工知能の黎明期より多くの研究や実用化がなされてきた。機械は人間が一生の間に経験するよりも多くの情報を読み込み、それらの情報を長期間正確に記憶することができるため、質問応答においても、専門家を超えられる可能性がある。
質問応答は知識の蓄積、検索、生成に対応する
現在、実用化されている質問応答システムの多くは、何らかの形でルールベースのシステムを採用している。情報をどのように知識として蓄積するか、それらの知識のどれが質問に関係するとし取り出し、それをどのように加工し、答えを生成するのか。これらの過程は一般に思われるほど単純ではなく、学習により実現することが困難だったからだ。
ここでは米Facebook社の研究チームが取り組んでいる学習ベースの質問応答システム「Memory Networks」を紹介しよう。Memory Networksはニューラルネットワークを利用しており、ルールベースではない形で質問応答を実現している1)。
問題設定として、国語の文章問題のようにシステムに文章を読ませた後に、その内容に関する質問に答えさせることを考える。例えば、図1のような問題を解くことを考える。
ここで、文章はn個の文x1、x2… xnから構成され、それぞれがw次元のベクトルで表現されているとする。文からベクトルへの変換は単語の出現情報を利用したBag-of-Words(BoW)表現や、単語の位置の情報も考慮した位置符号化を利用する。
始めに、1段から成るMemory Networksを説明する(図2)。入力x1… xnそれぞれを、行列Aを用いて内部表現(m1…mn)へmi=Axiとして変換する。行列Aは学習対象となるパラメータである。この変換はMemory Networks内部で入力をどのように知識として蓄積するかに対応しており、Aはその蓄積方法を指定する。このような元の表現から内部表現への変換は、「埋め込み(embedding)」とも呼ばれる。
また、質問qも別の行列Bを用いてmiと同じ次元数のベクトル表現u=Bqに変換する。各文の内部表現miと質問の内部表現uの内積<mi, u>をソフトマックス関数に掛けた値を求める。
pi=Softmax(<u, mi>)
ただし、と定義され、Softmaxは実数ベクトルを確率分布に変換するような操作である。そして、piは入力文集合に対する確率分布となり、piは質問がqの時、文xiが答えと関係する確率を表している。
次に、各文xiの出力ベクトルciを、行列Cを用いてci=Cxiと求める。mi=Axiは文xiが質問に関係するかを調べるための表現であり、ciはxiが答えと関係する場合、文の何の情報を利用するかを表している。
最後に応答ベクトルoを確率分布で重み付けして、
と求める。この応答oと元の質問uを用いて、答えの確率分布をa=Softmax(W(o+u))と求める。Wは内部表現から答えの候補となる単語へ変換する行列である。ここで、Softmaxがベクトルを受け取る場合は、その各値をSoftmax関数に掛けた値とする。
多段に重ねて深い推論を実現
Memory NetworksのパラメータはA、B、C、Wの4つから成る。入力xiと質問qから答えaまでの全ての計算が、パラメータに対し微分可能な関数の組み合わせで表現されているので、逆誤差伝播法で学習することができる。
このuからo+uまでを1段と考え、これを多段に重ねることでより深い推論ができると考えられる。実際、図1の例でFacebook社は、3段から成るMemory Networksで正しく答えることができたと報告している。この際、各段では異なるパラメータを使うこともできるし、毎回同じパラメータを使うこともできる。同じパラメータを使う場合は各段が再帰的となるため、RNN(recurrent neural network)と似ている。
Memory Networksでは図1のような文章からではなく、構造化された情報源から知識を獲得することも考えられる。実際、2000万個強の事実を集めた「Freebase」というデータベースによってMemory Networksを学習し、広範囲の質問応答ができたとFacebook社は報告している2)。Freebaseには人手できれいに整理した形で事実が格納されている。この事実は、(s, r, o)のような形をしている。sは主語、rは関係、oは目的語である。例えば、(ペンギン, is part of, 鳥)といった具合である。
文で単語の集合を記憶したように、これらの事実を主語と関係と目的語から成るBag-of-Symbol表現の形でMemory Networksに記録していく。このようにして、後で質問に答える際は関連する事実を組み合わせて答えを導き出すことができる。
仕組みはNeural Turing Machineに近い
Memory Networksは第1回で紹介した米グーグルの「Neural Turing Machine(NTM)」と似ている。Memory Networksは、NTMと比較すると書き込みヘッダに自由度がなく必ず連続的に書き込み、また読み込む時はアドレスベースの読み込みはなく、コンテンツベースのみから成る。
このため、NTMはアルゴリズムの学習といったものに向いているのに対し、Memory Networksは順序にあまり意味はなく内容に意味があるような情報の処理、つまり文章を読ませた上での質問応答に向いている。NTMでの読み込みヘッダが、Memory Networksではpiという表現で行っていることに相当すると考えられる。NTMとは異なり、Memory Networksは構造が単純なので比較的学習しやすいという特徴もある。
2)A. Bordes, et. al., "Large-scale Simple Question Answering with Memory Networks," 2015, http://arxiv.org/abs/1506.02075
Preferred Networks 取締役副社長