(58)【調査した分野】(Int.Cl.,DB名)
前記処理部は、前記読出部により読み出されたデータに関連づけられた属性を走査し、前記試行錯誤に必要なパラメータを確定した後に前記試行錯誤を行う請求項2に記載の情報処理装置。
【発明を実施するための形態】
【0011】
本発明を実施するための形態について図面を参照しながら説明を行う。なお、本発明は、以下の説明に限定されることはなく、種々の変形を行って実施することが可能である。
【0012】
図1(a)は、本発明の一実施形態に係る情報処理装置の機能ブロック図を示す。情報処理装置100は、記憶部101と、読出部102と、処理記憶部103と、処理部104とを有する。
【0013】
記憶部101は、データ記憶部105と、属性記憶部106と、を有し、データとその属性とを記憶する。データ記憶部105は、データを記憶する。データは、文字、符号や数値などのまとまりにより表現を行う。具体的には、データは、現実の世界において存在している概念、もの、人を表わす。より具体的には、データは、商品、契約や社員などを表現する。商品は、無体物および有体物に分類される。無体物の商品としては、金融商品などを挙げることができる。契約には、ローン契約など、将来のキャッシュフローを発生させる契約を挙げることができる。属性記憶部106は、データ記憶部105に記憶されるデータの属性を記憶する。属性は、データに関連づけられる情報としてのデータである。具体的には、属性は、現実の世界において存在している概念、もの、人に関連づけられている情報である。より具体的には、データの属性は、データが表わす商品や社員などに関連づけられていれる情報である。例えば、商品がローン契約であれば、データの属性は、ローン契約に関連づけられている金利、期間を表わす情報などにより構成される。
【0014】
一つのデータに対して、複数の属性が存在し得る。例えば、データに対して、複数の履歴それぞれをデータの属性とすることができる。具体的な例としては、データが金融商品を表わしている場合には、履歴として、そのローン契約などの金利の変更の履歴、期間の変更履歴などの契約の内容の変更などの履歴を挙げることができる。
【0015】
図2(a)は、一つのデータに対して、複数のデータの属性が関連づけられている例を示す。すなわち、データ1(201)に対して、複数の属性として、属性1−1(202)、属性1−2(203)および属性1−3(204)が存在しており、関連づけを表わ
すために、データ1(201)を表わすノードと、属性1−1(202)、属性1−2(203)および属性1−3(204)を表わすノードそれぞれとがエッジにより結ばれている。また、データ2(211)に対して、複数のデータの属性として、属性2−1(212)および属性2−2(213)が存在しており、関連づけを表わすために、データ2(211)を表わすノードと、属性2−1(212)および属性2−2(213)を表わすノードそれぞれとがエッジにより結ばれている。
【0016】
図2(a)に示されるデータと属性との関連付けは、
図2(b)に示すように、少なくとも二つのテーブルを用いることにより、情報処理の対象となる情報の形式にて表現することができる。すなわち、まず、テーブルRとして、それぞれのデータであるデータ1(201)およびデータ2(211)に対応する行データを格納するテーブルを用意する。例えば、主キー列の値として1を有する行をデータ1(201)に対応させ、データ1そのものが有する情報をその行のA列からZ列に格納する。例えば、ローン契約の元本情報や期間情報などを列に格納する。また、主キー列の値として2を有する行をデータ2(211)に対応させ、データ2そのものが有する情報をその行のA列からZ列に格納する。なお、主キー列に格納される値には重複はないとし、主キー列に格納される値により、一意に行が特定されるとする。
【0017】
次に、テーブルSとして、それぞれの属性である属性1−1(202)、属性1−2(203)、属性1−3(204)、属性2−1(212)および属性2−2(213)に対応する行データを格納するテーブルを用意する。例えば、外部キー列の値として1を有する行を属性1−1(202)に対応させ、属性1−1(202)そのものが有する情報をその行のa列からz列に格納する。ここに、外部キー列の値として1を格納しているのは、属性1−1(202)がデータ1(201)に関連づけられているため、テーブルRにおいて、データ1(201)が対応する行の主キー列の値1を格納しているためである。これにより、データ1(201)と属性1−1(202)との関連付けが表わされる。
【0018】
同様に、別の行として、外部キー列の値として1を有する行を属性1−2(203)に対応させ、属性1−2(203)の有する情報をその行のa列からz列に格納し、別の行として、外部キー列の値として1を有する行を属性1−3(204)に対応させ、属性1−3(204)の有する情報をその行のa列からz列に格納する。また、別の行として、外部キー列の値として2を有する行を属性2−1(212)に対応させ、属性2−1(212)の有する情報をその行のa列からz列に格納し、別の行として、外部キー列の値として2を有する行を属性2−2(213)に対応させ、属性2−2(213)の有する情報をその行のa列からz列に格納する。
【0019】
したがって、テーブルRは、データ記憶部105に対応し、テーブルSは、属性記憶部106に対応することとなる。
【0020】
なお、属性に、その属性を、さらに関連づけることもできる。すなわち、属性をデータとみなして属性を関連づけることができる。例えば、
図3(a)に示すように、データ1(301)に対して、属性1−1(302)および属性1−2(303)が関連づけられているとする。このとき、属性1−1(302)をデータとみなして、その属性として、属性1−1−1(304)および属性1−1−2(305)を関連づけることができる。同様に属性1−2(303)の属性として、属性1−2−1(306)を関連づけることができる。
【0021】
図3(a)に示すデータとその属性の関連付け、さらに、属性とその属性の関連付けは、
図3(b)に示すように、すくなくとも3つのテーブルを用いることにより、情報処理の対象となる情報として表現することができる。
図3(b)のテーブルRおよびテーブル
Sのそれぞれは、
図2(b)のテーブルRおよびテーブルSのそれぞれに対応する。ただし、テーブルSの行を一意に特定するために、テーブルSに主キー列が追加されている。
【0022】
また、テーブルTは、テーブルSに格納されるそれぞれの行が表わす属性に関連づけられる属性を表わす行を格納する。すなわち、
図2(b)におけるテーブルSのテーブルRに対する関係が、
図3(b)におけるテーブルTのテーブルSに対する関係となっている。すなわち、テーブルTの外部キー列に、テーブルSの主キー列の値が格納されることにより、属性とその属性との関連付けが表現されている。例えば、属性1−1(302)に属性1−1−1(304)および属性1−1−2(305)が関連づけられていることが、テーブルTの外部キー列の値として、11が格納されている行が2行あることにより表現されている。ここに、11は、テーブルSにおいて、属性1−1(302)に対応する行の主キー列の値である。
【0023】
この場合、
図1(b)の情報処理装置110の機能ブロック図に示されるように、情報処理装置110は、記憶部111を有し、記憶部111が、データ記憶部115と、第1属性記憶部116と、第2属性記憶部117とを備える構成となる。この場合、データ記憶部115がデータを記憶し、第1属性記憶部116がデータの属性を記憶し、第2属性記憶部117が属性の属性を記憶する。したがって、テーブルRは、データ記憶部115に対応し、テーブルSは、第1属性記憶部116に対応し、テーブルTは、第2属性記憶部117に対応する。なお、情報処理装置110は、記憶部111のほかに、読出部112と、処理記憶部113と、処理部114とを有する。読出部112と、処理記憶部113と、処理部114とのそれぞれは、情報処理装置100の読出部102と、処理記憶部103と、処理部104とに対応する。
【0024】
読出部102、112は、記憶部101、111に記憶されているデータおよびそのデータの属性を順次読み出す。読出部102、112は、データとそのデータに関連付けられている属性とをひとまとまりとなるように読み出しを行い、処理記憶部103、113に記憶する。いいかえると、処理部104、114が、一つのデータとそのデータに関連づけられている属性とを読み出す。読み出したデータと属性とは処理記憶部103、113に記憶される。
【0025】
このとき、一つのデータとそのデータに関連付けられる属性とは関連付けが維持されて処理記憶部103、113に記憶される。これにより、処理部104、114は、一つのデータとそのデータに関連付けられる属性とを処理単位として処理できるようになる。読出部102、112は、データを記憶部101、111のデータ記憶部105、115より一つのデータを読み出すごとに、そのデータに関連付けられているデータの属性を記憶部101、111の属性記憶部106、第1属性記憶部116より読み出し、処理記憶部113に記憶することができる。このとき、読み出されたデータとそのデータの属性とは、処理記憶部113にアドレスが連続あるいは近接するように記憶するのが好ましい。例えば、一つのデータとそのデータに関連付けられる属性とを同じファイルに格納してもよい。このように記憶することにより、処理記憶領域に対するアクセスを局所化することができ、効率よく処理を行うことが可能となる。
【0026】
なお、一つのファイルに複数のデータとその複数のデータそれぞれに関連付けられる属性とを格納してもよい。また、複数のファイルに、複数のデータとその複数のデータそれぞれに関連付けられる属性とを格納してもよい。この場合であっても、ある一つのデータとそれに関連付けられる属性とが異なるファイルに記憶されない。処理記憶部103、113は、関連付けを維持して記憶を行うからである。
【0027】
図5は、
図2(a)などに示すデータとその属性を読出部102が読み出し、処理記憶
部103に記憶させた状態の一例を示す。読出部102は、データ1(201)を記憶部101のデータ記憶部105より読み出し、領域502に、データ1(201)の情報を記憶する。データ1(201)の情報は、例えば、
図2(b)に示すテーブルRの主キー列の値として1を有する行の、A列、B列、…、Z列の値である。なお、領域502には、テーブルRの行の全ての列の値が記憶される必要はなく、処理部104、114による処理に必要な列の値が記憶されればよい。このため、読出部102、112は、データとその属性との有する情報の一部を読み出したり、処理記憶部103、113は、データとその属性との有する情報の一部を記憶するようになっていてもよい。
【0028】
次に、読出部102は、データ1に関連づけられている属性1−1(202)、属性1−2(203)、属性1−3(204)の情報を記憶部101の属性記憶部106より読み出し、領域502に隣接する領域である領域503、領域504、領域505に記憶する。具体的には、領域503、領域504、領域505には、
図2(b)のテーブルSに格納されている行のうち、外部キー列の値として1を有する行それぞれのa列、b列、…z列の値が記憶される。
【0029】
以上により、データ1(201)とそれに関連付けられた属性との情報が領域501に格納される。
図5に示すように領域501は連続したアドレスの領域とすることができる。
【0030】
同様に、領域512にデータ2(211)の情報が記憶され、領域513、領域514に属性2−1(212)、属性2−2(213)の情報が記憶される。これにより、データ2(211)とそれに関連付けられた属性との情報が領域511に格納される。
図5に示すように領域511も連続したアドレスの領域とすることができる。
【0031】
なお、領域501と領域511とを連続した領域として配置することもできるが、処理記憶部103、113の制約によって、領域501と領域511とを記憶するのに必要な記憶容量が所定の大きさを超える場合などには、領域501の領域の終わりのアドレスと領域511の領域の始めのアドレスとが連続せず、領域501と領域511とを分離して記憶してもよい。これは、読出部102、112が、一つのデータとその一つのデータに関連づけられる属性と一群の情報として読み出すようにするためである。このため、領域501、領域511のそれぞれはアドレスが連続した領域であるのが好ましいが、領域501と領域511とが連続した領域を形成している必要はない。
【0032】
また、
図3(a)などに示されるようにデータの属性にさらに属性が関連付けられている場合には、読出部112は、データの属性を記憶部111の第1属性記憶部116より読み出した後に、そのデータの属性に関連づけられる属性を記憶部111の第2属性記憶部117より読み出し、データの属性とそれに関連づけられた属性とをひとまりとなるようにする。
【0033】
なお、一つのデータに関連づけられているデータの属性が複数存在する場合には、データの属性の有する情報により、データの属性をソートしてもよい。例えば、データの属性が履歴を表わす場合には、列a、列bなどの値を用いてソートを行ってもよい。例えば、日付や時間などを用いて時間順になるようにソートを行ってもよい。これにより、処理記憶部103、113により記憶された領域をアドレス順に走査する処理により、時間系列に沿った処理を効率的に行うことができる。
【0034】
処理記憶部103、113は、読出部102により読み出されたデータとそのデータの属性などを記憶する。情報処理装置100、110がコンピュータにより実現される場合には、主メモリや二次記憶装置を用いて処理記憶部103、113が構成される。
【0035】
図4は、本実施形態に係る情報処理装置100、110の読出部102、112および処理記憶部103、113による動作を説明するフローチャートである。ステップS401の処理として、変数nに1を代入する。変数nは、データ記憶部105に記憶されたデータの番号を示す。例えば、変数nは、
図2の(b)テーブルRの行番号を示す。ステップS402の処理として、読出部102が、データ記憶部105より第n番目のデータの情報を読み出し、処理記憶部103、113に記憶する処理が行われる。
【0036】
ステップS403の処理として、読出部102、112が第n番目のデータに関連づけられた属性を読み出し、処理記憶部103、113に記憶する処理が行われる。具体例としては、
図2(b)のテーブルRの第n行の外部キー列の値を読み出し、読み出された主キー列の値を、
図2(b)のテーブルSの主キー列の値として有する行を検索して属性の情報を読み出し、処理記憶部103、113に記憶する。
【0037】
ステップS404の処理として変数nの値を1増やす。ステップS405の処理として、第n番目のデータが存在するかどうかを判断し、第n番目のデータが存在すれば、ステップS402に戻り、第n番目のデータが存在しなければ、フローチャートの処理を終了させる。
【0038】
なお、属性にさらに属性が関連づけられている場合には、ステップS403において、第n番目のデータに関連づけられた属性を第1属性記憶部116から読み出すごとに、その属性に関連づけられた属性を第2属性記憶部117より読み出すことを行い、処理記憶部113に記憶する。
【0039】
処理部104、114は、処理記憶部103に記憶されたデータとそのデータの属性などに対する処理を行う。すなわち、読出部102、112が、一群の情報として読み出したデータとそのデータの属性などを処理の単位として処理を行う。処理の単位として処理を行うとは、処理部104、114は、読出部102、112が一つのデータとそれに関連づけられた属性を読み出すごとに、読み出された一つのデータとそれに関連づけられた属性について処理を行うことである。処理部104が行う処理の内容には任意のものを用いることができる。例えば、データの属性として、時系列的に測定された数値が含まれる場合には、その数値の移動平均を算出する処理を挙げることができる。
【0040】
また、処理部104は、処理の単位ごとに、並列処理を行ってもよい。すなわち、処理記憶部103、113により、一群の情報としての一つのデータとそれに関連づけられた属性とが記憶された領域ごとに処理を行うスレッドなどを割り当てて、スレッドなどを並列に動作させてもよい。これにより、処理を効率的に行うことが可能となる。
【0041】
一つのデータとそのデータに関連づけられている属性とが、ひとまとまりとなるように記憶部101、111から読み出されて処理記憶部103、113に記憶されている。このため、処理部104、114は、そのようにひとまとまりとなるように記憶されているデータとそのデータに関連づけられている属性とを処理単位として処理を行うことができる。これにより、効率的な処理が可能となる。
【0042】
特に、データに関連づけられている複数の属性を処理部104、114が走査し、処理に必要なパラメータを確定することが可能であるので、無駄な処理を行う必要がなくなる。
【0043】
処理部104、114により行われた処理の結果は、情報処理装置100、110の外部に出力することができる。また、処理部104、114により行われた処理の結果は、
記憶部101、111に記憶されるようになっていてもよい。例えば、領域503、領域504、領域505に記憶された属性1−1(202)、属性1−2(203)、属性1−3(204)の情報を処理して得られる結果を用いて、データ記憶部105に記憶されているデータ1(201)の情報を更新、追加してもよい。具体例としては、
図2(b)に示すテーブルRのA列、B列などに格納されている値を変更する。
【0044】
上述したように、情報処理装置100、110はコンピュータを用いて実現することができる。コンピュータは、CPU、主記憶装置、二次記憶装置、入出力インターフェースを備えている。そこで、記憶部101、111を主記憶装置や二次記憶装置を用いて構成し、読出部102、112を、CPUが実行することにより動作するプログラムやモジュールにより実現し、処理記憶部103、113を主記憶装置や二次記憶装置を用いて構成し、処理部104、114をCPUが実行することにより動作するプログラムやモジュールにより実現することができる。
【0045】
図6は、本発明の一実施形態による実施例を説明する。
図6は、ローン契約を表わすデータと、ローン契約についての時系列的な変更履歴を表わす属性を用いる例を示す。
【0046】
すなわち、
図6(a)において、データ601は、一つのローン契約を表わしており、契約を特定する識別情報としての「契約データ1」と、ローンの元本を表わす情報として「元本情報1」と、約定金利を表わす情報として「約定金利情報1」と、ローンの期間を表わす情報として「期間情報1」と、実効金利を表わす情報として「実効金利情報1」と、償却原価を表わす情報として「償却原価情報1」とを含む。
【0047】
データ601のようなデータをテーブルに格納して表現するためには、「契約データ1」を主キー列の値とし、「元本情報1」、「約定金利情報1」、「実効金利情報1」、「償却原価情報1」を他の列の値とすればよい。
【0048】
なお、データおよびそのデータの属性は複数あってもよいが、説明を簡単にするために、
図6では、データとして1つを示し、データの属性として2つを示している。
【0049】
また、データ601の属性として、属性602と属性603とがデータ601に関連づけられている。属性602と属性603とはデータ601のローン契約についての約定を表わす情報となっている。属性602は、識別情報として「約定データ1−1」と、日付情報として「日付1−1」と、日付1−1の示す日に行われた金利変更を表わす情報として「金利変更情報1−1」とを含む。また、属性603は、識別情報として「約定データ1−2」と、日付情報として「日付1−2」と、日付1−2の示す日に行われた「金利変更情報1−2」とを含む。
【0050】
属性602、603のような属性をテーブルに格納して表現するためには、「契約データ1」を外部キー列の値とし、「日付1−1」、「金利変更情報1−1」を他の列の値とし、また、「日付1−2」、「金利変更情報1−2」を別の行の列の値とする。
【0051】
したがって、データ記憶部105には、ローン契約を表わすデータが記憶され、属性記憶部106には、ローン契約それぞれに対する約定情報が記憶される。具体的には、主キー列の値としてローン契約の識別情報を用いたテーブルを用いてデータ記憶部105が構成され、外部キー列の値としてローン契約の識別情報を用いたテーブルを用いて属性記憶部106が構成される。
【0052】
情報処理装置100は、データ記憶部105からデータ601を読み出し、処理記憶部113に記憶する。具体的には、
図6(b)に示す領域611に、データ601の情報を
記憶し、領域611に続く領域612に属性603の情報を記憶し、領域612に続く領域613に属性602の情報を記憶する。なお、ここでは、読出部112は、日付を表わす情報により属性をソートして処理記憶部113に記憶するとし、「日付1−2」が「日付1−1」の表わす日付よりも前の日付であるとする。
【0053】
図6(b)に示されるように処理記憶部113により記憶された情報に対して、処理部114は任意の処理を行うことができる。例えば、償却原価および実効金利を求める処理を行うことができる。ここに、償却原価は、ローン契約の残存期間にわたって予測されるキャッシュフローを実効金利により割り引いて得られる現在価値として算出される。したがって、償却原価を算出するためには、予測されるキャッシュフローと実効金利を算出する必要がある。
【0054】
予測されるキャッシュフローは、例えば、元本に対する約定金利の割合で毎期利子が得られ、ローンの期間経過後に元本額が得られるとすることができる。また、実効金利は、予測されるキャッシュフローを現在の償却原価まで割り引く利率として定義される。したがって、実効金利は、残存期間の長さがn期間であるとすると、
現在の償却原価=第1期利子/(1+r)+第2期利子/(1+r)2+第3期利子/(1+r)3+・・・+第n期利子/(1+r)n+元本/(1+r)n
という方程式を解くことにより計算される。しかしながら、このような方程式に一般的な解の公式は存在せず、数値的にしか解くことができない。このため、rを任意に定めて、右辺の値を求め、左辺と右辺との値を比較して、右辺の値が大きければrの値を大きくし、右辺の値が小さければrの値を小さくし、左辺と右辺との値が同じになるまで繰り返すこととなる。すなわち、実効金利の計算には試行錯誤が伴う。このため、金利が変更となる都度、実効金利を求め、償却原価を求めることを行うと、計算量が多くなってしまう。
【0055】
一方、本発明の一実施形態では、
図6(b)に示すような構造のデータを処理するので、金利が複数回変更となっていても、領域612および領域613を順に走査し、最終的に変更された金利を確定してから、実効金利を求めることができるので、計算量を少なくすることができる。
【0056】
なお、属性602の日付1−1の示す日付と属性603の日付1−02の示す日付とが、異なる期に属する場合には、処理部104、114は、領域612に格納された金利変更情報1−2を用いて属性603の日付1−02の示す日付が属する期の期末における償却原価を計算し、その計算された償却原価を引き継いで、属性602の日付1−1の示す日付の属する期の実効金利を計算し、償却原価を計算するようにすることもできる。
【0057】
以上の例では、金利の変更のみを扱ったが、金利の変更以外にも、ローン契約の期間や元本の変更が複数ある場合にも適用が可能であり、一つのローン契約に関連づけられている約定を順に走査し、最終的な元本情報、約定金利情報を決定した後に、一度だけ実効金利を求めればよいこととなる。したがって、本発明の一実施形態は、大量のローン契約についてのバッチ処理を行うことに適している。