【新規性喪失の例外の表示】特許法第30条第2項適用 開催日:平成29年3月8日、集会名:Open Tech Talk「〔解体新書〕深層学習を取り入れたサービス作り」、開催場所:サイボウズ・東京オフィス(東京都中央区日本橋2−7−1 東京日本橋タワー) 開催日:平成29年4月12日、集会名:Open Tech Talk「AI技術を取り入れたサービス作り」、開催場所:freee株式会社(東京都品川区西五反田2−8−1 五反田ファーストビル 9F)
【文献】
小林 颯介,外3名,“談話内における局所文脈の動的分散表現”,言語処理学会第22回年次大会 発表論文集,日本,言語処理学会,2016年11月28日,p.1137-1140
【文献】
内山 育海,“世界で広がる動画のAI活用 民放キー局が本腰入れる理由”,日経エレクトロニクス,日本,日経BP社,2017年 5月20日,第1180号,p.18-20
【文献】
大塚 淳史,外4名,“答えを先読みする文書検索手法の提案”,第9回データ工学と情報マネジメントに関するフォーラム (第15回日本データベース学会年次大会),日本,電子情報通信学会データ工学研究専門委員会 日本データベース学会 情報処理学会データベースシステム研究会,2017年 7月 6日
(58)【調査した分野】(Int.Cl.,DB名)
前記文単位学習モデルは、前記エンコーダデコーダモデルの途中学習結果及び前記文脈ベクトルに基づいて生成した回答文を前記部分回答文とし、当該部分回答文と前記質問文とを含む組情報を前記入力情報として学習する
ことを特徴とする請求項1に記載の情報処理装置。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態による情報処理装置について図面を参照して説明する。
【0017】
図1は、本実施形態による情報処理システム100の一例を示す概略ブロック図である。
図1に示すように、情報処理システム100は、情報処理装置1と、端末装置2とを備えている。情報処理装置1と、端末装置2とは、ネットワークNW1を介して接続されている。
情報処理システム100は、例えば、情報処理装置1に接続した端末装置2に、投稿された質問及び回答を表示して、ユーザ間で情報共有するQ&Aサービスなどの情報サービスを提供する。
【0018】
端末装置2は、情報処理システム100が提供する情報サービスを利用するために、ユーザが使用するクライアント端末である。なお、
図1に示す例では、説明を簡略化するため、情報処理装置1に1台の端末装置2が接続されている例を示しているが、複数の端末装置2が、情報処理装置1に接続されてもよい。
【0019】
情報処理装置1は、例えば、Q&Aサービスなどの情報サービスを提供するサーバ装置である。情報処理装置1は、例えば、端末装置2を介してユーザから受け付けた質問文を、Q&Aサービスに登録して閲覧可能にするとともに、端末装置2を介して他のユーザから受け付けた回答文を登録して閲覧可能にする。また、情報処理装置1は、機械学習を利用して、登録された質問文に対する回答文を生成し、当該回答文をQ&Aサービスに登録して閲覧可能にする。また、情報処理装置1は、NW(ネットワーク)通信部11と、記憶部12と、制御部13とを備えている。
【0020】
NW通信部11は、例えば、インターネットなどを利用してネットワークNW1に接続し、ネットワークNW1を介して各種情報の通信を行う。NW通信部11は、例えば、ネットワークNW1を介して、接続要求のあった端末装置2に接続し、各種情報の通信を行う。
【0021】
記憶部12は、情報処理装置1が実行する各種処理に利用される情報を記憶する。記憶部12は、例えば、サービス記憶部121と、学習結果記憶部122とを備えている。
サービス記憶部121は、例えば、ユーザによって端末装置2からQ&Aサービスに投稿された質問文及び回答文などの投稿情報を記憶する。
学習結果記憶部122は、後述する学習処理部132によって、機械学習された学習結果を記憶する。なお、学習結果の詳細については後述する。
【0022】
制御部13は、例えば、CPU(Central Processing Unit)などを含むプロセッサであり、情報処理装置1を統括的に制御する。制御部13は、例えば、上述したQ&Aサービスなどの情報サービスを提供する処理や、学習結果記憶部122が記憶する学習結果の生成処理、情報処理装置1がNW通信部11を介して取得した質問文に対する回答文の生成処理などの各種処理を実行する。また、制御部13は、サービス提供部131と、学習処理部132と、質問取得部133と、回答生成部134とを備えている。
【0023】
サービス提供部131は、情報処理装置1が提供する情報サービスに関する処理を実行する。サービス提供部131は、例えば、端末装置2からNW通信部11を介して、受け付けた質問文及び回答文を投稿情報として、サービス記憶部121に記憶させる。また、サービス提供部131は、例えば、Q&Aサービスの閲覧を希望する端末装置2に対して、サービス記憶部121に記憶されている投稿情報を、NW通信部11を介して端末装置2に出力し、端末装置2に表示させる。また、サービス提供部131は、後述する回答生成部134が生成した回答文を、サービス記憶部121に記憶させる。なお、サービス提供部131は、Q&Aサービスにおいて、例えば、「恋愛」、「家族」、「料理」など、カテゴリ(分類)ごとに分かれて、情報をユーザに提供するものとする。
【0024】
学習処理部132は、質問文と、既知の回答文において、予め定められた文章の筋道(シナリオ)により分割される複数の部分項目それぞれに対応する部分回答文との組を複数有する学習情報に基づいて、機械学習を実行して学習結果を生成する。ここで、例えば、回答文の文章の筋道(シナリオ)を、「結論」、「補足」の順に定めた場合には、部分項目は、「結論」及び「補足」であり、回答文の文章の筋道(シナリオ)を、「雑談」、「事例」、「結論」の順番に定めた場合には、部分項目は、「雑談」、「事例」、及び「結論」である。
なお、以下の説明では、複数の部分項目の一例として、「結論」及び「補足」である場合について説明する。
【0025】
また、学習処理部132は、例えば、サービス記憶部121が記憶するQ&Aサービスの投稿情報(既知の質問文及び既知の回答文)を入力情報として、深層学習(ディープラーニング)技術を利用した学習モデルにより学習した学習結果を生成する。なお、既知の回答文には、質問文に対する正解文と、不正解文とが含まれる。学習処理部132は、学習処理の入力情報(学習情報)として、質問文と、正解の回答文、及び正解以外の回答文の中から任意に抽出した不正解文の組を学習情報として使用する。学習処理部132は、生成した学習結果を学習結果記憶部122に記憶させる。
なお、本実施形態の学習モデル、学習処理部132の構成、及び学習処理の詳細ついては、後述する。
【0026】
質問取得部133は、情報処理装置1に入力された入力質問文を取得する。質問取得部133は、例えば、サービス記憶部121が記憶している質問文の中から、入力質問文を取得する。
【0027】
回答生成部134は、上述した学習処理部132によって学習された学習結果に基づいて、質問取得部133によって取得された入力質問文に対する回答文を生成する。すなわち、回答生成部134は、学習結果記憶部122が記憶する学習結果に基づいて、複数の部分項目を結合して生成された回答文を生成する。また、回答生成部134は、生成した回答文をサービス提供部131に供給して、当該回答文を、入力質問文の回答の投稿として、サービス記憶部121に記憶させる。
【0028】
次に、
図2及び
図3を参照して、本実施形態における学習モデルについて説明する。
図2は、本実施形態における学習モデルM1の一例を説明する図である。
図2に示すように、本実施形態における学習モデルM1は、深層学習技術を利用したモデルであり、エンコーダデコーダモデルM11と、文単位学習モデルM12とを組み合わせたモデルである。
【0029】
エンコーダデコーダモデルM11は、質問文を1単語ずつ順次単語の並び順に基づいてエンコードして文脈ベクトル10(Context vector)を生成し、生成した文脈ベクトル10に基づいて、複数の部分項目ごとの既知の部分回答文をデコードして学習する。エンコーダデコーダモデルM11は、例えば、ニューラルエンコーダデコーダモデルであり、まずに、一度に質問文の1つの単語(トークン)をエンコードし、回答文を一度に1つの単語(トークン)をデコードする。エンコーダデコーダモデルM11は、複数の部分項目ごとの既知の回答文を生成するようにデコードして学習するモデルである。エンコーダデコーダモデルM11は、質問文の言葉(WORD)を質問文である入力文Xによって調整することにより、逐次生成する。また、目標文は、Y={y(1),・・・,y(T)}とする。エンコーダデコーダモデルM11において、損失関数Lは、以下の式(1)により表される。
【0031】
なお、エンコーダデコーダモデルM11は、エンコーダモデルM111と、デコーダモデルM112とを含んでいる。
エンコーダモデルM111は、質問の全体の意味を捕えるために、両方向にエンコードされるbiLSTM(bidirectional Long Short-Term Memory)を使用する。エンコーダモデルM111は、biLSTMの出力の各要素の最大値を抽出して蓄積するマックスプーリング(Max pooling)処理により文脈ベクトル10を生成する。
【0032】
デコーダモデルM112は、エンコーダモデルM111によって生成された文脈ベクトル10に基づいて、部分回答文(結論回答文ac及び補足回答文as)を出力するように学習するモデルであり、LSTM(Long Short-Term Memory)を利用して、各単語を予測するモデルである。ここでは、デコーダモデルM112は、文脈ベクトル10に基づいて、結論回答文acをデコードするとともに、補足回答文asをデコードするモデルである。
デコーダモデルM112は、例えば、「遠距離」、「恋愛」、「は」、「愛」、「を」、・・・という質問文qをエンコーダモデルM111によりエンコードした文脈ベクトル10に基づいて、「遠距離」、「恋愛」、「は」、「真実の」、「愛」、・・・という既知の部分回答文(結論回答文ac)をデコードするように学習する。また、デコーダモデルM112は、文脈ベクトル10に基づいて、「遠距離」、「恋愛」、「は」、「あなたの」、「愛」、・・・という既知の部分回答文(補足回答文as)をデコードするように学習する。
【0033】
なお、デコーダモデルM112は、
図3に示すように、部分回答文における単語ごとに関連するトピック情報に基づいて、既知の部分回答文をデコードして学習するC−LSTM(Contextual-Long Short-Term Memory)により学習するモデルである。
【0034】
図3は、本実施形態におけるデコーダモデルの一例を説明する図である。
図3に示す例では、単語「情報」に対応するトピック情報は、「IT」(情報技術)であり、単語「社会」に対応するトピック情報は、「公共」である。また、単語「とは」、「、」(読点)、及び「が」に対応するトピック情報は、「接続」であり、単語「資源」に対応するトピック情報は、「IT」である。このように、トピック情報は、例えば、単語の関連分野を示す情報である。
デコーダモデルM112は、
図3に示すような回答文(部分回答文)の単語列と、各単語に対応するトピック情報とに基づいて、回答文(部分回答文)を生成すうように、学習する。
【0035】
図2の説明に戻り、文単位学習モデルM12は、上述したエンコーダデコーダモデルM11の出力(部分回答文)と、質問文qとを入力情報として、文ごとに学習するセンテンスバイセンテンス(Sentence-by-sentence)モデルである。文単位学習モデルM12は、質問文qと、複数の部分項目の部分回答文とのそれぞれについて、biLSTM及びマックスプーリング処理を利用して、エンコーダデコーダモデルM11とデコーダモデルM112とを組み合わせた損失関数Lwにより最適化されて学習する。
【0036】
なお、文単位学習モデルM12は、エンコーダデコーダモデルM11の途中学習結果及び文脈ベクトル10に基づいて生成した回答文を部分回答文とし、当該部分回答文と質問文とを含む組情報を入力情報として学習するようにしてもよい。また、文単位学習モデルM12の入力情報は、例えば、部分回答文と質問文とを含む組情報をベクトル化した情報(特徴ベクトル)である。
また、文単位学習モデルM12は、複数の部分項目のうちの第1の部分項目に対応する出力に基づいて、第1の部分項目と異なる第2の部分項目に対応するbiLSTMが更新されて学習されるアテンションメカニズムを利用するようにしてもよい。
【0037】
次に、
図4及び
図5を参照して、本実施形態における学習処理部132及び学習処理について説明する。
図4は、本実施形態における学習処理部132及び学習処理の一例を説明する図である。なお、
図4に示す例では、学習の入力情報の一部となる既知の回答文に、質問文に対する正解文と、不正解文とが含まれる場合の一例について説明する。
【0038】
図4に示すように、学習処理部132は、エンコーダデコーダモデルM11と、QA−LSTM(Question Answering-Long Short-Term Memory)部(20−1、20−2)と、損失関数生成部30とを備えている。
【0039】
エンコーダデコーダモデルM11は、上述した
図2に示すエンコーダデコーダモデルM11を、正解文と不正解文とに対応させたモデルであり、例えば、
図5に示すようなモデルである。ここで、エンコーダデコーダモデルM11は、学習情報の組に含まれる、質問文q、「結論」の正解文ac+、「結論」の不正解文ac−、「補足」の正解文as+、及び「補足」の不正解文as−に基づいて学習する。
【0040】
図5は、本実施形態におけるエンコーダデコーダモデルM11の一例を説明する図である。
図5に示すように、エンコーダデコーダモデルM11は、エンコーダモデルM111と、デコーダモデルM112とを含んでおり、上述した質問文q、「結論」の正解文ac+、「結論」の不正解文ac−、「補足」の正解文as+、及び「補足」の不正解文as−の組情報に基づいて学習する。
【0041】
エンコーダモデルM111は、上述した
図2と同様に、質問文qを1単語ずつ順次単語の並び順に基づいてエンコードして文脈ベクトル10を生成する。
また、デコーダモデルM112は、当該文脈ベクトル10に基づいて、「結論」の正解文ac+、「結論」の不正解文ac−、「補足」の正解文as+、及び「補足」の不正解文aq−のそれぞれを生成するようにデコードして学習する。
このように、エンコーダデコーダモデルM11は、文脈ベクトル10に基づいて、複数の部分項目ごとの正解文及び不正解文をデコードして学習する。ここで、エンコーダデコーダモデルM11によって生成された「結論」の正解文及び不正解文と、「補足」の正解文及び不正解文とを、「結論」の正解文ac2+、「結論」の不正解文ac2−、「補足」の正解文as2+、及び「補足」の不正解文as2−とする。また、「結論」の正解文ac2+、「結論」の不正解文ac2−、「補足」の正解文as2+、及び「補足」の不正解文as2−は、特徴ベクトルとして出力されるものとする。
【0042】
図4の説明に戻り、学習処理部132は、エンコーダデコーダモデルM11の出力である質問文q、「結論」の正解文ac2+、「結論」の不正解文ac2−、「補足」の正解文as2+、及び「補足」の不正解文as2−を、それぞれの特徴ベクトル群に変換する。すなわち、学習処理部132は、質問文qを、特徴ベクトルの集合である特徴ベクトル列W
qに変換する。また、学習処理部132は、「結論」の正解文ac2+を、特徴ベクトルの集合である特徴ベクトル列W
ac+に変換し、「結論」の不正解文ac2−を、特徴ベクトルの集合である特徴ベクトル列W
ac−に変換する。また、学習処理部132は、「補足」の正解文as2+を、特徴ベクトルの集合である特徴ベクトル列W
as+に変換し、「補足」の不正解文as2−を、特徴ベクトルの集合である特徴ベクトル列W
as−に変換する。
【0043】
QA−LSTM部(20−1、20−2)は、双方向に学習するニューラルネットワークであるbiLSTMである。QA−LSTM部20−1は、「結論」用のbiLSTMであり、QA−LSTM部20−2は、「補足」用のbiLSTMである。なお、本実施形態において、QA−LSTM部20−1と、QA−LSTM部20−2とは、同様の構成であり、学習処理部132が備える任意のQA−LSTM部を示す場合、又は特に区別しない場合には、QA−LSTM部20として説明する。
【0044】
QA−LSTM部20は、質問埋め込みベクトル生成部21と、正解埋め込みベクトル生成部22と、不正解埋め込みベクトル生成部23とを備えている。
質問埋め込みベクトル生成部21は、質問文を単語ごとに変換された特徴ベクトルを時系列の順方向及び逆方向の双方向の単語の並び順に基づいて生成した双方向ベクトル列24(質問特徴ベクトル群)に基づいて、単語の並びを双方向に学習して、質問埋め込みベクトルO
qを生成する。質問埋め込みベクトル生成部21は、例えば、質問文の特徴ベクトル列W
qから双方向ベクトル列24を生成し、当該双方向ベクトル列24の各要素の最大値を抽出して蓄積するマックスプーリング処理により質問埋め込みベクトルO
q(質問中間ベクトル)を生成する。
【0045】
正解埋め込みベクトル生成部22は、正解文を単語ごとに変換された特徴ベクトルを時系列の順方向及び逆方向の双方向の単語の並び順に基づいて生成した双方向ベクトル列25(正解特徴ベクトル群)に基づいて、単語の並びを双方向に学習して、正解埋め込みベクトルO
a+を生成する。正解埋め込みベクトル生成部22は、例えば、正解文の特徴ベクトル列W
a+から双方向ベクトル列25を生成し、当該双方向ベクトル列25の各要素の最大値を抽出して蓄積するマックスプーリング処理により正解埋め込みベクトルO
a+(正解中間ベクトル)を生成する。
【0046】
不正解埋め込みベクトル生成部23は、不正解文を単語ごとに変換された特徴ベクトルを時系列の順方向及び逆方向の双方向の単語の並び順に基づいて生成した双方向ベクトル列26(不正解特徴ベクトル群)に基づいて、単語の並びを双方向に学習して、正解埋め込みベクトルO
a−を生成する。不正解埋め込みベクトル生成部23は、例えば、不正解文の特徴ベクトル列W
a−から双方向ベクトル列26を生成し、当該双方向ベクトル列26の各要素の最大値を抽出して蓄積するマックスプーリング処理により不正解埋め込みベクトルO
a−(不正解中間ベクトル)を生成する。
【0047】
なお、QA−LSTM部20の基本となるLSTMについては、非特許文献1に開示されている。基本的なLSTMでは、学習する際に、入力される時系列の入力X={x(1),x(2),・・・,x(N)}とし、x(t)をt番目の単語の特徴ベクトルとした場合に、双方向ベクトル列(24、25、26)の内部のベクトルである各双方向ベクトルh(t)が、t時間ごとに以下の式(2)により更新される。
【0049】
ここで、基本的なLSTMのアーキテクチャにおいて、3つのゲート(input i
t,forget f
t,output o
t)と、セルメモリーベクトルc
tとがある。また、σ()はシグモイド関数である。また、W
i、W
f、W
o、W
c、U
i、U
f,U
o、U
c、b
i、b
f,b
o、b
cは学習されるネットワークパラメータである。
【0050】
QA−LSTM部20−1は、「結論」用のbiLSTMであり、特徴ベクトル列(W
q、W
ac+、W
ac−)に基づいて、質問埋め込みベクトルO
qc、正解埋め込みベクトルO
ac+、及び不正解埋め込みベクトルO
ac−を生成する。QA−LSTM部20−1は、質問埋め込みベクトル生成部21−1と、正解埋め込みベクトル生成部22−1と、不正解埋め込みベクトル生成部23−1とを備えている。質問埋め込みベクトル生成部21−1は、特徴ベクトル列W
qから双方向ベクトル列24−1を生成し、マックスプーリング処理により質問埋め込みベクトルO
qcを生成する。また、正解埋め込みベクトル生成部22−1は、特徴ベクトル列W
ac+から双方向ベクトル列25−1を生成し、マックスプーリング処理により正解埋め込みベクトルO
ac+を生成する。また、不正解埋め込みベクトル生成部23−1は、特徴ベクトル列W
ac−から双方向ベクトル列26−1を生成し、マックスプーリング処理により正解埋め込みベクトルO
ac−を生成する。
【0051】
QA−LSTM部20−2は、「補足」用のbiLSTMであり、特徴ベクトル列(W
q、W
as+、W
as−)に基づいて、質問埋め込みベクトルO
qs、正解埋め込みベクトルO
as+、及び不正解埋め込みベクトルO
as−を生成する。QA−LSTM部20−2は、質問埋め込みベクトル生成部21−2と、正解埋め込みベクトル生成部22−2と、不正解埋め込みベクトル生成部23−2とを備えている。質問埋め込みベクトル生成部21−2は、特徴ベクトル列W
qから双方向ベクトル列24−2を生成し、マックスプーリング処理により質問埋め込みベクトルO
qsを生成する。また、正解埋め込みベクトル生成部22−2は、特徴ベクトル列W
as+から双方向ベクトル列25−2を生成し、マックスプーリング処理により正解埋め込みベクトルO
as+を生成する。また、不正解埋め込みベクトル生成部23−2は、特徴ベクトル列W
as−から双方向ベクトル列26−2を生成し、マックスプーリング処理により不正解埋め込みベクトルO
as−を生成する。
【0052】
また、QA−LSTM部20−2は、学習する際に、アテンションメカニズムを利用して、双方向ベクトル列25−2及び双方向ベクトル列26−2を更新する。QA−LSTM部20−2は、例えば、QA−LSTM部20−1が生成した「結論」に対応する正解埋め込みベクトルO
as+及び不正解埋め込みベクトルO
as−ルに基づいて、「補足」に対応する双方向ベクトル列25−2(正解特徴ベクトル群)及び双方向ベクトル列26−2(不正解特徴ベクトル群)を更新する。具体的に、QA−LSTM部20−2は、以下の式(3)により、双方向ベクトル列25−2及び双方向ベクトル列26−2の内部ベクトルである双方向ベクトルh
s(t)を更新する。
【0054】
ここで、tは、時間のステップであり、W
sm、W
cm、及びw
mbは、アテンションパラメータである。また、
〜h
s(t)は、更新後の双方向ベクトルを示す。なお、本文中の上付の〜は文字の真上に付けられた記号を表すものとする。
【0055】
また、QA−LSTM部20−1が生成した質問埋め込みベクトルO
qc、正解埋め込みベクトルO
ac+、及び不正解埋め込みベクトルO
ac−と、QA−LSTM部20−2が生成した質問埋め込みベクトルO
qs、正解埋め込みベクトルO
as+、及び不正解埋め込みベクトルO
as−とに基づいて、コサイン類似度を利用した損失関数Lsは、例えば、以下の式(4)により表される。すなわち、上述した文単位学習モデルM12に対応する損失関数Lsは、式(4)により表される。なお、文単位学習モデルM12において、損失関数Lsは、「結論」と、「補足」と、「正解」と、「不正解」との組み合わせに基づいて、算出される。
【0057】
ここで、[y,z]は、ベクトルyとベクトルzとの結合を示す。O
qは、[O
qc,O
qs]である。また、Mは、定数を示し、k(0<k<1)は、マージンをコントロールするパラメータである。
【0058】
損失関数生成部30は、エンコーダデコーダモデルM11と、文単位学習モデルM12とを組み合わせて損失関数Lwを算出する。すなわち、損失関数生成部30は、上述した式(1)の損失関数Lと式(4)の損失関数Lsとを組み合わせて以下の式(5)により、損失関数Lwを算出する。
【0060】
ここで、αは、重み付けを2つの損失関数でコントロールするパラメータである。
なお、損失関数Lwは、学習中の質問と回答との各組合せにおけるコサイン値が最大になるように設定されている。
【0061】
学習処理部132は、上述のような構成を用いて算出された損失関数Lwによって最適化して学習結果を生成し、生成した学習結果を学習結果記憶部122に記憶させる。学習処理部132は、上述した式(2)の「結論」用のパラメータセット{W
i、W
f、W
o、W
c、U
i、U
f,U
o、U
c、b
i、b
f,b
o、b
c}
cと、「補足」用のパラメータセット{W
i、W
f、W
o、W
c、U
i、U
f,U
o、U
c、b
i、b
f,b
o、b
c}
sと、アテンションパラメータ{W
sm、W
cm、w
mb}と、を含む学習結果を生成する。
【0062】
なお、上述した例では、回答文のシナリオを「結論」及び「補足」の2つの部分項目により構成する例を説明したが、2つ以上の部分項目により構成するようにしてもよい。その場合、学習処理部132によって学習される学習結果は、質問文から生成された質問埋め込みベクトルO
qと、複数の部分項目それぞれに対応した正解埋め込みベクトルO
a+と、複数の部分項目それぞれに対応した不正解中間ベクトルO
a−との複数の部分項目の組合せに基づいて算出される損失関数Lwにより最適化されて学習される。
【0063】
次に、図面を参照して、本実施形態による情報処理装置1の動作について説明する。
<学習処理>
ます、情報処理装置1における学習処理部132の学習処理について、
図6を参照して説明する。
【0064】
図6は、本実施形態における学習処理の一例を示すフローチャートである。
図6に示すように、学習処理部132は、まず、変数nに“1”を代入する(ステップS101)。なお、変数nは、学習の繰り返し回数をカウントする。この例では、NN回の学習を繰り返す場合について説明する。
【0065】
次に、学習処理部132は、質問文及び回答文の組を入力情報として取得する(ステップS102)。学習処理部132は、例えば、複数ある既存の質問文と既存の回答文との組情報のうちから、
図4に示すように、質問文qと結論回答文ac及び補足回答文as(「結論」の正解文ac+、「結論」の不正解文ac−、「補足」の正解文as+、及び「補足」の不正解文as−)との組情報を取得する。
【0066】
次に、学習処理部132は、質問文qをエンコードする(ステップS103)。学習処理部132は、取得した質問文qを、上述したエンコーダデコーダモデルM11のエンコーダモデルM111によりエンコードする。すなわち、学習処理部132は、取得した質問文qを、biLSTM及びマックスプーリング処理によってエンコードして、文脈ベクトル10を生成する。ここでの文脈ベクトル10は、質問ベクトルである。
【0067】
次に、学習処理部132は、結論回答文ac及び補足回答文asをデコードする(ステップS104)。学習処理部132は、結論回答文ac及び補足回答文asを学習するために、例えば、予め用意された2つのタイプ識別ベクトル(部分項目ベクトル)を使用する。学習処理部132は、エンコーダデコーダモデルM11のデコーダモデルM112において、タイプ識別ベクトルをエンコーダモデルM111により生成された文脈ベクトル10とともに入力情報として使用し、目標のタイプ(部分項目)の回答文(結論回答文ac及び補足回答文as)になるようにデコードする。
【0068】
ここで、デコーダモデルM112の出力列(単語列)は、一度に、1つの単語(トークン)を構成する。また、タイプ識別ベクトルは、C−LSTMモデルにおける文脈ベクトルであるという点で同様である。これによって、学習処理部132は、単一のエンコーダデコーダネットワークによって、入力した回答タイプの識別情報(「結論」及び「補足」)に従って、目的のシーケンス(回答文)を生成することができる。
なお、学習処理部132は、
図5に示すように、「結論」と「補足」とのそれぞれについて、正解文と不正解文とをデコードする。また、学習処理部132は、ステップS104において、「結論」と「補足」との回答文を、1文字(1単語)ずつ学習する。
【0069】
次に、学習処理部132は、結論回答文ac2及び補足回答文as2を生成する(ステップS105)。学習処理部132は、1組の質問文qと結論回答文ac及び補足回答文asとの組情報のためにそれぞれ学習した上述したエンコーダデコーダ学習過程において、次に出力を予測するための入力として、予測された出力単語を単に供給して、結論回答文ac2及び補足回答文as2を生成する。なお、この処理は、上述したステップS104の処理においての学習が、EOS(end of sequence;結論回答文ac又は補足回答文asの最後の文字)まで進んだ場合に、そのときまでの更新パラメータ(途中学習結果)によって、一旦、結論回答文ac2及び補足回答文as2を生成する処理である。すなわち、学習処理部132は、エンコーダデコーダモデルM11の途中学習結果及び文脈ベクトル10に基づいて、結論回答文ac2及び補足回答文as2を生成する。具体的に、学習処理部132は、
図4に示すように、「結論」の正解文ac2+、「結論」の不正解文ac2−、「補足」の正解文as2+、及び「補足」の不正解文as2−を生成する。
【0070】
次に、学習処理部132は、質問文q、結論回答文ac2、及び補足回答文as2を文単位学習モデルM12に入力して、損失関数Lwを生成する(ステップS106)。学習処理部132は、例えば、以下の(a)〜(f)の処理により、損失関数Lwを生成する。
(a)学習処理部132は、まず、
図4に示すように、質問文q、「結論」の正解文ac2+、「結論」の不正解文ac2−、「補足」の正解文as2+、「補足」の不正解文as2−の組情報を特徴ベクトル列(W
q、W
ac+、W
ac−、W
as+、W
as−)に変換する。
【0071】
(b)次に、学習処理部132のQA−LSTM部20−1は、特徴ベクトル列(W
q、W
ac+、W
ac−)に基づいて、質問埋め込みベクトルO
qc、正解埋め込みベクトルO
ac+、及び不正解埋め込みベクトルO
ac−を生成する。また、QA−LSTM部20−1は、双方向ベクトル列(24−1、25−1、26−1)のt番目の各双方向ベクトル(h
qc(t)、h
ac+(t)、h
ac−(t))をそれぞれマックスプーリング処理して、質問埋め込みベクトルO
qc、正解埋め込みベクトルO
ac+、及び不正解埋め込みベクトルO
ac−を生成する。
【0072】
(c)次に、学習処理部132のQA−LSTM部20−2は、まず、質問埋め込みベクトルO
qsを生成する。QA−LSTM部20−2は、双方向ベクトル列24−2のt番目の各双方向ベクトルh
qs(t)をマックスプーリング処理して、質問埋め込みベクトルO
qsを生成する。
【0073】
(d)次に、QA−LSTM部20−2は、双方向ベクトル列(25−2、26−2)のt番目の各双方向ベクトル(h
as+(t)、h
as−(t))を、正解埋め込みベクトルO
ac+、及び不正解埋め込みベクトルO
ac−を用いて更新する。すなわち、QA−LSTM部20−2は、上述した式(2)を用いて、各双方向ベクトル(h
as+(t)、h
as−(t))を更新して、更新ベクトル(
〜h
as+(t)、
〜h
as−(t))を生成する。
【0074】
(e)次に、QA−LSTM部20−2は、更新ベクトル(
〜h
as+(t)、
〜h
as−(t))をそれぞれマックスプーリング処理して、正解埋め込みベクトルO
as+、及び不正解埋め込みベクトルO
as−を生成する。
(f)そして、学習処理部132の損失関数生成部30は、生成した各埋め込みベクトル(O
qc、O
ac+、O
ac−、O
qs、O
as+、O
as−)、及び式(5)に基づいて、損失関数Lwを生成する。
【0075】
次に、学習処理部132は、生成した損失関数Lwにより最適化する(ステップS107)。学習処理部132は、算出した損失関数Lwにより、各パラメータを最適化する。学習処理部132は、例えば、「結論」用のパラメータセット{W
i、W
f、W
o、W
c、U
i、U
f,U
o、U
c、b
i、b
f,b
o、b
c}
cと、「補足」用のパラメータセット{W
i、W
f、W
o、W
c、U
i、U
f,U
o、U
c、b
i、b
f,b
o、b
c}
sと、アテンションパラメータ{W
sm、W
cm、w
mb}とを最適化する。学習処理部132は、最適化した各パラメータを学習結果として学習結果記憶部122に記憶させる。
【0076】
次に、学習処理部132は、入力情報が終了であるか否かを判定する(ステップS108)。学習処理部132は、入力情報である質問文qと結論回答文ac及び補足回答文as(「結論」の正解文ac+、「結論」の不正解文ac−、「補足」の正解文as+、及び「補足」の不正解文as−)との次の組情報があるか否かを判定する。学習処理部132は、入力情報が終了である場合(ステップS108:YES)に、処理をステップS109に進める。また、学習処理部132は、入力情報が終了でない(次の入力情報がある)場合(ステップS108:YES)に、処理をステップS102に戻す。
【0077】
ステップS109において、学習処理部132は、変数nが繰り返し回数NN以上(n≧NN)であるか否かを判定する。すなわち、学習処理部132は、ステップS102からステップS108までの処理をNN回繰り返して学習したか否かを判定する。学習処理部132は、変数nが繰り返し回数NN以上である場合(ステップS109:YES)に、この学習処理を終了する。また、学習処理部132は、変数nが繰り返し回数NN未満である場合(ステップS109:NO)に、処理をステップS110に進める。
【0078】
ステップS110において、学習処理部132は、変数nに“n+1”を代入して、処理をステップS102に戻す。すなわち、学習処理部132は、変数nの値に“1”を加算して、処理をステップS102に戻す。
このように、学習処理部132は、ステップS102からステップS108までの処理をNN回繰り返して学習させ、当該学習結果を学習結果記憶部122に記憶させる。
【0079】
<回答文の生成処理>
次に、図面を参照して、本実施形態における情報処理装置1の質問文から回答文を生成する処理について説明する。
図7は、本実施形態における情報処理装置1の質問文から回答文を生成する処理の一例を示すフローチャートである。
【0080】
図7に示すように、情報処理装置1は、まず、質問文をサービス記憶部121から取得する(ステップS201)。情報処理装置1の質問取得部133は、サービス記憶部121が記憶している質問文の中から、入力質問文を取得する。
【0081】
次に、情報処理装置1の回答生成部134は、入力質問文と、学習結果記憶部122が記憶する学習結果とに基づいて、回答文を生成する(ステップS202)。なお、ここでの学習結果は、学習処理部132によって、上述した文字単位(単語単位)で学習するエンコーダデコーダモデルM11と、文ごとに学習するセンテンスバイセンテンスモデルである文単位学習モデルM12とを組み合わせて学習されている。すなわち、回答生成部134は、例えば、
図6に示す学習処理により学習されたが学習結果に基づいて、入力質問文から回答文を生成する。
【0082】
なお、回答生成部134は、既存の回答文を単に選択するのではなく、文章の筋道を考慮した部分項目の部分回答文を適切に組み合わせて新たな回答文を生成する。また、回答生成部134は、文字単位(単語単位)で学習するエンコーダデコーダモデルM11を組み合わせることにより、「結論」及び「補足」の部分回答文を既存の回答文から単純に選択するのではなく、部分回答文を単語単位で選択して、新たな回答文を生成する。
【0083】
次に、回答生成部134は、サービス記憶部121に回答文を記憶させる(ステップS203)。すなわち、回答生成部134は、生成した回答文をサービス提供部131に供給して、当該回答文を、入力質問文の回答の投稿として、サービス記憶部121に記憶させる。これにより、情報処理装置1にネットワークNW1を介して接続し端末装置2から、質問文に対して、回答生成部134が生成した回答文を閲覧可能になる。ステップS203の処理後に、情報処理装置1は、回答文を生成する処理を終了する。
【0084】
次に、
図8を参照して、本実施形態による情報処理装置1が生成した回答文の評価結果について説明する。
【0085】
図8は、本実施形態における方式と、従来技術との比較を示す図である。
図8において、「Seq2seq」は、比較のために、センテンスバイセンテンスモデルである文単位学習モデルM12のよる式(4)による損失関数Lsのみを使用した場合の評価結果を示している。また、「C−LSTM」は、上述したC−LSTMモデルによる式(1)による損失関数Lを使用した場合の評価結果である。
【0086】
また、「本実施形態の方式」は、上述した本実施形態の学習処理部132による式(5)による損失関数Lsを使用した場合の方式である。
また、評価結果の「ROUGE−1」(uni-gram)、「ROUGE−2」(bigram)、及び「ROUGE−L」(Longest common subsequence)は、ROUGE(Recall-Oriented Understudy for Gisting Evaluation)シリーズの評価指標である。「ROUGE−1」、「ROUGE−2」、及び「ROUGE−L」は、いずれも“0”〜“1.0”の範囲で示され、値が大きい程、評価が高いことを意味している。なお、ROUGEの詳細については、例えば、技術文献(Chin-Yew Lin,“ROUGE: A Package for Automatic Evaluation of Summaries”,In Text Summarization Branches Out: Proceedings of the ACL-04 Workshop, pages 74-81,2004.)に記載されている。
【0087】
また、評価の際に使用した学習情報は、Q&Aサービス「教えてgoo」において、「恋愛相談」、「旅行」、「医療」などを含む16個のカテゴリに蓄積された5000組の質問文及び回答文を使用している。また、部分項目は、「結論」及び「補足」の2つの場合である。
【0088】
また、評価のためのテストデータとして、質問文q、結論回答文ac及び補足回答文asの100組を2セット準備し、評価結果は、平均値を示している。また、当該評価において、文字の埋め込み数を“300”とし、式(5)におけるαを“0.5”、繰り返し回数NNを“500”としている。
【0089】
図8に示すように、「本実施形態による方式」の評価結果は、「ROUGE−1」が“0.4546”であり、「ROUGE−2」が“0.2030”であり、「ROUGE−L」が“0.3311”である。「本実施形態による方式」の評価結果は、「ROUGE−1」、「ROUGE−2」、及び「ROUGE−L」のいずれも、従来の「Seq2seq」及び「C−LSTM」よりも高い値である。
【0090】
また、
図9は、本実施形態における情報処理装置1が生成した回答文の一例を説明する図である。
なお、
図9において、「C−LSTMにより生成した回答文」は、比較のために、上述したC−LSTMモデルを使用した場合の回答文を示している。
図9に示すように、「C−LSTMにより生成した回答文」では、質問文に対して“相手のことを思いやれないということは、その人がいると思いますよ。大きさを待ったほうが良いと思います。”というような不自然な回答文となる。
【0091】
これに対して、本実施形態による情報処理装置1が生成した回答文は、“勇気を出して、あなたの気持ちを伝えれば良いと思います。少し優柔不断な様子が伺えますね。”となり、違和感を低減した自然な文面の回答を生成することができる。
【0092】
以上説明したように、本実施形態による情報処理装置1は、質問取得部133と、回答生成部134とを備える。質問取得部133は、入力された入力質問文を取得する。回答生成部134は、質問文と、回答文において、予め定められた文章の筋道により分割される複数の部分項目それぞれに対応する既知の部分回答文との組を複数有する学習情報に基づいて機械学習された学習結果に基づいて、質問取得部133によって取得された入力質問文に対する回答文を生成する。ここで、学習結果は、エンコーダデコーダモデルM11と、文単位学習モデルM12と、を組み合わせて算出される損失関数Lwにより最適化されて学習される。また、エンコーダデコーダモデルM11は、質問文を1単語ずつ順次単語の並び順に基づいてエンコードして文脈ベクトル10を生成し、生成した文脈ベクトル10に基づいて、複数の部分項目ごとの既知の部分回答文をデコードして学習する。
【0093】
また、文単位学習モデルM12は、エンコーダデコーダモデルM11に基づいてデコードされた複数の部分項目ごとの部分回答文と、質問文とを含む組情報を入力情報とする。文単位学習モデルM12は、質問埋め込みベクトルO
q(質問中間ベクトル)と、複数の部分項目それぞれに対応した回答中間ベクトル(正解埋め込みベクトル(O
ac+、O
as+)及び不正解埋め込みベクトル(O
ac−、O
as−))と、の複数の部分項目の組合せに基づいて学習する。ここで、質問埋め込みベクトルO
q(質問中間ベクトル)は、入力情報の質問文を単語ごとに変換された特徴ベクトルを時系列の順方向及び逆方向の双方向の単語の並び順に基づいて生成した双方向ベクトル列24(質問特徴ベクトル群)に基づいて、単語の並びを双方向に学習して生成される。また、回答中間ベクトル(正解埋め込みベクトル(O
ac+、O
as+)及び不正解埋め込みベクトル(O
ac−、O
as−))は、部分回答文を単語ごとに変換された特徴ベクトルを双方向の単語の並び順に基づいて生成した回答特徴ベクトル群(双方向ベクトル列25及び双方向ベクトル列26)に基づいて、単語の並びを双方向に学習して生成される。
【0094】
これにより、本実施形態による情報処理装置1は、エンコーダデコーダモデルM11と文単位学習モデルM12とを組み合わせて一括して学習した学習結果に基づいて、回答文を生成するため、文字(単語)単位で回答文を生成することができるとともに、各部分項目の回答のつながりを最適化して選択された各部分項目の回答文が結合されて、新たな回答文を作成することができる。よって、本実施形態による情報処理装置1は、質問に対して、違和感を低減した自然な文面の回答を生成することができる。すなわち、本実施形態による情報処理装置1は、自然な言葉(単語)や文の順序を持ち、従来のチャットボットによる短文回答などよりも複雑な回答を生成することができる。このように、本実施形態による情報処理装置1は、1文字生成で、且つ、長文、複雑、多様なNon-Factoid型質問に対する回答に適用可能である。
【0095】
また、本実施形態では、文単位学習モデルM12は、エンコーダデコーダモデルM11の途中学習結果及び文脈ベクトル10に基づいて生成した回答文(例えば、「結論」の正解文ac2+、「結論」の不正解文ac2−、「補足」の正解文as2+、及び「補足」の不正解文as2−など)を部分回答文とする。文単位学習モデルM12は、当該部分回答文と質問文とを含む組情報を入力情報として学習する。
これにより、本実施形態による情報処理装置1は、エンコーダデコーダモデルM11の途中学習結果に基づいて再生成したより自然な文面となる回答文を入力情報として学習するため、質問に対して、さらに違和感を低減した自然な文面の回答を生成することができる。
【0096】
また、本実施形態では、エンコーダデコーダモデルM11は、既知の部分回答文における単語ごとに関連するトピック情報に基づいて、既知の部分回答文をデコードして学習する。すなわち、エンコーダデコーダモデルM11は、例えば、C−LSTMにより学習するモデルである。
これにより、本実施形態による情報処理装置1は、トピック情報により、関連の低い文字(単語)が選ばれることを低減することができるため、文字(単語)単位で、さらに違和感を低減した自然な文面の回答を生成することができる。
【0097】
また、本実施形態では、既知の回答文には、質問文に対する正解文と、不正解文とが含まれる。回答生成部134は、質問文と、複数の部分項目それぞれに対応する正解文及び不正解文との組を複数有する学習情報に基づいて機械学習された学習結果に基づいて、回答文を生成する。エンコーダデコーダモデルM11は、文脈ベクトル10に基づいて、複数の部分項目ごとの正解文及び不正解文をデコードして学習する。文単位学習モデルM12は、質問埋め込みベクトルO
q(質問中間ベクトル)と、複数の部分項目それぞれに対応した正解埋め込みベクトル(O
ac+、O
as+)(正解中間ベクトル)と、複数の部分項目それぞれに対応した不正解埋め込みベクトル(O
ac−、O
as−)(不正解中間ベクトル)と、の複数の部分項目の組合せに基づいて学習する。ここで、正解埋め込みベクトル(O
ac+、O
as+)は、正解文を単語ごとに変換された特徴ベクトルを双方向の単語の並び順に基づいて生成した双方向ベクトル列25(正解特徴ベクトル群)に基づいて、単語の並びを双方向に学習して生成される。また、不正解埋め込みベクトル(O
ac−、O
as−)は、不正解文を単語ごとに変換された特徴ベクトルを双方向の単語の並び順に基づいて生成した双方向ベクトル列26(不正解特徴ベクトル群)に基づいて、単語の並びを双方向に学習して生成される。
【0098】
これにより、本実施形態による情報処理装置1は、正解文と不正解文とを用いて学習された学習結果に基づいて、回答文を生成するため、さらに違和感を低減した自然な文面の回答を生成することができる。
【0099】
また、本実施形態では、学習結果は、複数の部分項目のうちの第1の部分項目(例えば、「結論」)に対応する正解埋め込みベクトル(O
ac+、O
as+)及び不正解埋め込みベクトル(O
ac−、O
as−)に基づいて、第1の部分項目と異なる第2の部分項目(例えば、「補足」)に対応する双方向ベクトル列25及び双方向ベクトル列26(不正解特徴ベクトル群)が更新されて学習される。すなわち、学習処理部132は、上述した式(3)を用いたアテンションメカニズムにより、双方向ベクトル列25−2及び双方向ベクトル列26−2の各双方向ベクトル(h(t))を更新させて学習する。
これにより、本実施形態による情報処理装置1は、部分項目の間の関連(例えば、部分項目のつながり)を最適化した学習を行うことができる。そのため、本実施形態による情報処理装置1は、部分項目を組み合わせて、より自然な回答文を生成することができる。
【0100】
また、本実施形態による情報処理装置1は、学習情報に基づいて機械学習し、学習結果を生成する学習処理部132を備える。
これにより、本実施形態による情報処理装置1は、自装置で学習して学習結果を生成することができる。また、本実施形態による情報処理装置1は、例えば、再学習して、質問に対する回答を改善することができる。
【0101】
また、本実施形態では、例えば、上記の式(5)に基づいて、損失関数Lwが算出される。損失関数Lwは、文字(単語)単位での学習と各部分項目の組み合わせとを同時に最適化するため、本実施形態による情報処理装置1は、回答文を生成するのに適切な部分項目を生成することができる。
【0102】
なお、学習処理部132は、所定の条件(例えば、定期的、あるいは、評価値(例えば、ROUGE)が所定の値以下に低下した、など)に基づいて、学習結果を再学習してもよい。
これにより、本実施形態による情報処理装置1は、時間の変化に対応して、質問に対する回答を改善することができる。
【0103】
また、本実施形態による情報処理方法は、質問取得ステップと、回答生成ステップとを含む。質問取得ステップにおいて、質問取得部133が、入力された入力質問文を取得する。回答生成ステップにおいて、回答生成部134が、質問文と、回答文において、予め定められた文章の筋道により分割される複数の部分項目それぞれに対応する正解文及び不正解文との組を複数有する学習情報に基づいて、機械学習された上述した学習結果に基づいて、質問取得ステップによって取得された入力質問文に対する回答文を生成する。
これにより、本実施形態による情報処理方法は、上述した情報処理装置1と同様の効果を奏し、質問に対して、違和感を低減した自然な文面の回答を生成することができる。
【0104】
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の実施形態において、情報処理装置1は、学習処理部132を備える例を説明したが、これに限定されるものではなく、学習結果を取得できる状態であれば、学習処理部132を備えなくてもよい。
【0105】
また、情報処理装置1は、サービス記憶部121と、学習結果記憶部122とを備える例を説明したが、サービス記憶部121と、学習結果記憶部122とのいずれか一方又は両方を、例えば、外部のサーバ装置が備えるようにしてもよい。また、情報処理装置1は、制御部13が備える機能部の一部を外部のサーバ装置が備えるようにしてもよい。
なお、上記の実施形態において、情報処理装置1は、1台のサーバ装置により構成される例を説明したが、複数の装置により構成されてもよい。
【0106】
また、上記の実施形態において、情報処理装置1は、回答文を「結論」及び「補足」の2つの部分項目により構成する場合の一例を説明したが、これに限定されるものではなく、3つ以上の部分項目に対応させてもよい。
また、上記の実施形態の文単位学習モデルM12において、情報処理装置1は、部分項目ごとにQA−LSTM部20を備える手法と、アテンションメカニズムによる手法とを適用する例を説明したが、これに限定されるものではない。情報処理装置1は、文単位学習モデルM12において、例えば、これらの手法の一部を適用しない形態であってもよい。
【0107】
また、上記の実施形態において、文単位学習モデルM12の損失関数Lsが、上述した式(4)により算出される例を説明したが、これに限定されるものではなく、以下の式(6)により算出されてもよい。
【0109】
また、上記の実施形態の学習処理において、エンコーダデコーダモデルM11の途中学習結果及び文脈ベクトル10に基づいて再生成した回答文(例えば、結論回答文ac2、補足回答文as2など)を文単位学習モデルM12の入力情報とする例を説明したが、これに限定されるものではない。学習処理部132は、デコードの学習に利用した再生成する前の回答文を、文単位学習モデルM12の入力情報とするようにしてもよい。
【0110】
なお、上述した情報処理装置1が備える各構成は、内部に、コンピュータシステムを有している。そして、上述した情報処理装置1が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理装置1が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。
【0111】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に情報処理装置1が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0112】
また、上述した機能の一部又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。