以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
選択肢を提示された人および動物等の対象が、嗜好等に基づいて当該選択肢の中からいずれかを選択する行動において、当該選択行動の選択結果は、与えられた選択肢に応じて変化することが知られている。本実施形態において、このような選択行動の一例として、消費者が複数の商品から1つの商品を選択する場合を説明する。
消費者が複数の商品から1つの商品を選択する場合、当該消費者の選択行動には種々の認知バイアスが加わる。例えば、第1の商品と第2の商品を含む複数の商品を選択肢として消費者に提示した場合、当該消費者が第1の商品と第2の商品をそれぞれ選択する確率の比は、提示した選択肢に含まれる他の商品に応じて異なることがある。この場合、提示した選択肢に含まれる他の商品の存在が、消費者の選択行動に認知バイアスを加えたことになる。
図1は、本実施形態に係る認知バイアスの第1例を示す。図1は、本実施形態の認知バイアスであるシミラリティ効果(Similarity Effect)を説明する図である。図1において、商品A、B、およびSは、消費者に提示する選択肢である。図1のグラフは、商品の特徴の一例として、横軸に価格、縦軸に品質として商品A、B、およびSを示す。即ち、商品Aは、商品Bに比較して、価格は高いが、品質が高い商品である。また、商品Sは、商品Bに比較して、価格が高く品質の高い商品Aに類似した商品である。
ここでまず、市場(マーケット)に商品AおよびBの選択肢がある場合、消費者が商品AおよびBを選択するそれぞれの確率に応じて、商品AおよびBのシェアが定まる。そして、当該市場に商品Sを加えると、商品Sは商品Aと類似することから、商品Aのシェアを減少させて、商品AおよびBのシェアの比率に変化を与えることがある。即ち、この場合、商品AおよびBの選択肢に対して、商品Aに類似した商品Sの存在が、類似している商品同士でシェアを分け合うように、消費者の選択行動に認知バイアスを加える。このような認知バイアスの効果を、シミラリティ効果と呼ぶ。
図2は、本実施形態に係る認知バイアスの第2例を示す。図2は、本実施形態の認知バイアスであるコンプロマイズ効果(Compromise Effect)を説明する図である。図2において、商品A、B、およびCは、消費者に提示する選択肢である。図2のグラフは、図1と同様に、商品の特徴の一例として、横軸に価格、縦軸に品質として商品A、B、およびCを示す。即ち、商品Aは、商品Bに比較して、価格は高いが、品質が高い商品である。また、商品Cは、商品Bに比較して、価格が安く、品質も低い商品である。
ここでまず、市場に商品AおよびBの選択肢がある場合、消費者が商品AおよびBを選択するそれぞれの確率に応じて、商品AおよびBのシェアが定まる。そして、当該市場に商品Cを加えると、商品A、B、およびCは、この順に価格と品質の程度が並ぶことになり、価格も品質も高い商品Aのシェアを減少させて、商品AおよびBのシェアの比率に変化を与えることがある。
例えば、商品AおよびBの選択肢に対して、価格も品質も商品Bに劣る商品Cの存在が、商品の価格および品質のバランスの順位を形成させ、価格も品質も高い商品Aとシェアを分け合い、結果として価格も品質も中間の商品Bのシェアが向上する。このような、商品Cによって消費者の選択行動に認知バイアスを加える効果を、コンプロマイズ効果と呼ぶ。
図3は、本実施形態に係る認知バイアスの第3例を示す。図3は、本実施形態の認知バイアスであるアトラクション効果(Attraction Effect)を説明する図である。図3において、商品A、B、およびDは、消費者に提示する選択肢である。図3のグラフは、図1と同様に、商品の特徴の一例として、横軸に価格、縦軸に品質として商品A、B、およびDを示す。即ち、商品Aは、商品Bに比較して、価格は高いが、品質が高い商品である。また、商品Dは、商品Bに比較して、価格が少し高く、品質が少し低い商品である。
ここでまず、市場に商品AおよびBの選択肢がある場合、消費者が商品AおよびBを選択するそれぞれの確率に応じて、商品AおよびBのシェアが定まる。そして、当該市場に商品Dを加えると、商品Bが相対的に商品Dより価格が安く品質も高いため、商品Bのシェアを増加させて、商品AおよびBのシェアの比率に変化を与えることがある。
即ち、この場合、商品AおよびBの選択肢に対して、価格も品質も商品Bに比べて少し劣る商品Cの存在が、商品Bの価格と品質に好ましい印象を与えるように、消費者の選択行動に認知バイアスを加える。このような認知バイアスの効果を、アトラクション効果と呼ぶ。
以上の3つの例のように、市場における消費者の選択行動には、種々の認知バイアスが加わり、その結果として、商品のシェア等が定まる。したがって、消費者の消費行動を分析する場合、および消費者に商品を推薦する場合等、当該認知バイアスを考慮したモデルを用いることが望ましいが、従来の学習モデルで表現することは困難であった。また、認知バイアスをモデル化しても、複雑なモデルとなってしまい、当該モデルを学習させることができなかった。
そこで、本実施形態の処理装置100は、消費者等に与えられた選択肢を示す入力ベクトルから選択された選択項目を示す出力ベクトルへの写像を学習する問題として定式化することにより、認知バイアスが加わった消費者の選択行動を、学習可能なモデルで表現する。即ち、処理装置100は、与えられた選択肢に対する対象の選択行動をモデル化した選択モデルを生成する。
図4は、本実施形態に係る処理装置100の構成例を示す。処理装置100は、取得部110と、記憶部120と、入力ベクトル生成部130と、出力ベクトル生成部140と、学習処理部150と、確率算出部160とを備える。
取得部110は、対象に与えられた選択肢を入力選択肢とし、入力選択肢の中から選択された選択肢を出力選択肢とする学習用の選択行動を少なくとも1つ含む学習データを取得する。取得部110は、例えば、複数の商品のうち、消費者に与えられる入力選択肢のデータと、当該消費者が選択した商品のデータとを、学習データとして取得する。取得部110は、ユーザの入力によって学習データを取得してよく、これに代えて、予め定められた形式で記憶されたデータを読み出して取得してもよい。
また、取得部110は、ネットワーク等に接続され、処理装置100の本体とは異なる位置で学習データを取得し、当該ネットワークを介して本体部に取得した学習データを供給してもよい。例えば、取得部110は、サーバ等にアクセスして、当該サーバに記憶された学習データを取得する。また、取得部110は、商品またはサービス等をウェブサイトで販売するEC(電子商取引)サイト等から、消費者に与えた商品の選択肢と、消費者が購入またはカート等に入れた経歴等の情報を学習データとして取得してよい。
また、取得部110は、別の装置によって実現され、処理装置100の本体の前処理として学習データを取得してもよい。取得部110は、一例として、取得した学習データを記憶部120に供給する。
記憶部120は、取得部110に接続され、当該取得部110から受け取った学習データを記憶する。また、記憶部120は、処理装置100が生成する選択モデルを記憶する。また、記憶部120は、当該選択モデルを生成する過程において処理するデータ等を記憶してよい。また、記憶部120は、処理装置100内の各部の要求に応じて、記憶したデータを要求元に供給してよい。
入力ベクトル生成部130は、複数種類の選択肢のそれぞれが入力選択肢に含まれるか否かを示す入力ベクトルを生成する。入力ベクトル生成部130は、記憶部120に接続され、取得した学習データから入力ベクトルを生成する。入力ベクトル生成部130は、生成したベクトルを学習処理部150に供給する。
出力ベクトル生成部140は、複数種類の選択肢のそれぞれが学習用の出力選択肢に含まれたか否かを示す出力ベクトルを生成する。出力ベクトル生成部140は、記憶部120に接続され、取得した学習データから出力ベクトルを生成する。出力ベクトル生成部140は、生成した出力ベクトルを記憶部120を学習処理部150に供給する。
学習処理部150は、入力ベクトル生成部130および出力ベクトル生成部140に接続され、受け取った学習用の入力ベクトルおよび出力ベクトルを用いて、選択モデルを学習する。学習処理部150は、対象の認知バイアスに応じた選択行動を含む選択モデルを学習する。即ち、学習処理部150は、消費者に与えられた選択肢に応じて値が定まるバイアスパラメータを含むパラメータを用いて、選択モデルを学習する。学習処理部150は、記憶部120に接続され、学習した選択モデルおよび定まったパラメータ等を当該記憶部120に記憶する。
確率算出部160は、学習された選択モデルおよび定まったパラメータ等に基づき、入力選択肢に応じてそれぞれの選択肢が選択される確率を算出する。確率算出部160は、記憶部120に接続され、学習した選択モデルおよび定まったパラメータ等を当該記憶部120から読み出す。また、確率算出部160は、入力ベクトル生成部130に接続され、当該入力ベクトル生成部130が生成した入力ベクトルを受け取る。
確率算出部160は、入力ベクトルに応じた選択肢が選択される確率を算出する。この場合、取得部110は、確率を算出すべき選択肢の情報をユーザから取得し、入力ベクトル生成部130を介して当該情報を確率算出部160に供給してよい。ここで、処理装置100が選択モデルの学習処理用に用いる学習装置の場合、予測に用いられる確率算出部160は設けられなくてもよい。
以上の本実施形態の処理装置100は、バイアスパラメータを含むパラメータを用いて入力ベクトルから出力ベクトルへの写像を学習し、与えられた選択肢に対する消費者の選択行動をモデル化した選択モデルを生成する。処理装置100の具体的な動作について、次に説明する。
図5は、本実施形態に係る処理装置100の動作フローを示す。本実施形態の処理装置100は、図5に示された動作フローを実行して、選択モデルを学習し、学習結果に応じた確率を算出する。
まず、取得部110は、学習データを取得する(S200)。取得部110は、消費者に提示される可能性のあるJ個の商品、提示した選択肢(即ち、J個の商品のうちから選別された複数の商品)、および消費者が選択肢の中から選択した商品等の情報を取得する。本実施形態において、取得部110は、5つの商品(A,B,C,D,S)を、消費者に提示される可能性のある商品として取得した例を説明する。
図6は、本実施形態に係る学習データの一例を示す。図6の横軸は、消費者に提示される可能性のある商品を、縦軸は、消費者が商品を選択した確率を示す。図6は、消費者に4通りの選択肢を提示した場合の選択結果を示す。
例えば、図6において、斜線で示すR1に対応する棒グラフは、商品AおよびBに存在し、商品Aの棒グラフは、0.6を示し、商品Bの棒グラフは、0.4を示す。ここで、商品Aは、商品Bに比較して、価格は高いが、品質が高い商品とする。
即ち、R1は、消費者に商品AおよびBを提示する選択肢であり、消費者が商品Aを選択した確率が60%、商品Bを選択した確率が40%の結果が得られたことを示す。そして、市場における商品AおよびBのシェアは、消費者が選択した確率と略同一のパーセンテージになるとする。本実施形態において、このような選択肢R1と当該選択肢R1を提示した結果は、消費者に最初に商品を選択させる「初期状態」の学習データである。
図6において、波線で示すR2に対応する棒グラフは、商品A、B、およびSに存在し、商品Aの棒グラフは0.3、商品Bの棒グラフは0.4、商品Sの棒グラフは0.3を示す。これより、R2は、消費者に商品A、B、およびSを提示する選択肢であり、消費者が商品Aを選択した確率が30%、商品Bを選択した確率が40%、商品Sを選択した確率が30%の結果が得られたことを示す。
ここで、選択肢R2の商品Sは、商品Aと性能、価格、および品質等が類似の商品とする。そして、消費者に選択肢R1(商品AおよびB)を提示して、商品AおよびBのシェアが定まった後、選択肢R2を提示した(商品Sを加える)場合、選択肢R1を提示した結果である商品Aのシェア60%が、類似している商品AおよびSで当該シェアを分け合うように変化する(本例では、商品Aが30%、商品Sが30%)ことになる。即ち、本実施形態において、選択肢R2と当該選択肢R2を提示した結果は、「シミラリティ効果」を示す学習データである。
図6において、無地で示すR3に対応する棒グラフは、商品A、B、およびCに存在し、商品Aの棒グラフは0.3、商品Bの棒グラフは0.5、商品Cの棒グラフは0.2を示す。これより、R3は、消費者に商品A、B、およびCを提示する選択肢であり、消費者が商品Aを選択した確率が30%、商品Bを選択した確率が50%、商品Cを選択した確率が20%の結果が得られたことを示す。
ここで、選択肢R3の商品Cは、商品Bに比較して、価格が安く、品質も低い商品とする。そして、消費者に選択肢R1(商品AおよびB)を提示して、商品AおよびBのシェアが定まった後、選択肢R3を提示した(商品Cを加える)場合、選択肢R1を提示した結果である商品Aのシェア60%を減少させ、結果として、価格も品質も中間の商品Bのシェアが向上する(本例では、商品Aが30%、商品Bが50%)ことになる。即ち、本実施形態において、選択肢R3と当該選択肢R3を提示した結果は、「コンプロマイズ効果」を示す学習データである。
図6において、R4に対応する棒グラフは、商品A、B、およびDに存在し、商品Aの棒グラフは0.4、商品Bの棒グラフは0.5、商品Cの棒グラフは0.1を示す。これより、R4は、消費者に商品A、B、およびDを提示する選択肢であり、消費者が商品Aを選択した確率が40%、商品Bを選択した確率が50%、商品Cを選択した確率が10%の結果が得られたことを示す。
ここで、選択肢R4の商品Dは、商品Bに比較して、価格が少し安く、品質も少し低い商品とする。そして、消費者に選択肢R1(商品AおよびB)を提示して、商品AおよびBのシェアが定まった後、選択肢R4を提示した(商品Dを加える)場合、商品Bが相対的に商品Dより価格が安く品質も高いため、商品Bのシェアを増加させる(本例では、商品Bのシェアが40%から50%に増加する)ことになる。即ち、本実施形態において、選択肢R4と当該選択肢R4を提示した結果は、「アトラクション効果」を示す学習データである。
取得部110は、以上のような学習データを取得して、記憶部120に記憶する。これに代えて、または、これに加えて、取得部110は、取得した学習データを入力ベクトル生成部130および出力ベクトル生成部140に供給してもよい。
次に、入力ベクトル生成部130は、入力ベクトルを生成する(S210)。入力ベクトル生成部130は、例えば、複数の選択肢(商品)をxJとした要素を含み、当該複数の選択肢xJのうち消費者に与えられた選択肢xiを非零の値(例えば1)に、消費者に与えられなかった選択肢を0にしたベクトルを入力ベクトルxとする(Jはとりうる選択肢の総数であり、2以上の自然数である)。即ち、入力ベクトル生成部130は、次式に示す要素xiを有する入力ベクトルxを生成する。
(数1)
xi∈{0,1}, i∈{1,...,J}
入力ベクトル生成部130は、一例として、図6の学習データに応じて、5つの商品(A,B,C,D,S)に対応する入力ベクトルx=(x1,x2,x3,x4,x5)を生成する。ここで、x1は商品Aに、x2は商品Bに、x3は商品Cに、x4は商品Dに、x5は商品Sに、それぞれ対応する。入力ベクトル生成部130は、初期状態の学習データの選択肢R1が商品AおよびBを提示する選択肢なので、xR1=(1,1,0,0,0)とする。入力ベクトル生成部130は、同様にして、各選択肢R1からR4に対応する入力ベクトルを次式のように生成する。なお、左辺の「x」はベクトル表記を省略する。
(数2)
xR1=(1,1,0,0,0)
xR2=(1,1,0,0,1)
xR3=(1,1,1,0,0)
xR4=(1,1,0,1,0)
次に、出力ベクトル生成部140は、出力ベクトルを生成する(S220)。出力ベクトル生成部140は、例えば、複数の選択肢(商品)をyJとした要素を含み、当該複数の選択肢yJのうち消費者が選択した選択肢yiを非零の値(例えば1)に、他の要素を0にしたベクトルを出力ベクトルyとする。即ち、出力ベクトル生成部140は、次式に示す要素yiを有する出力ベクトルyを生成する。
(数3)
yj∈{0,1}, j∈{1,...,J}
出力ベクトル生成部140は、一例として、図6の学習データに応じて、5つの商品(A,B,C,D,S)に対応する出力ベクトルy=(y1,y2,y3,y4,y5)を生成する。ここで、y1は商品Aに、y2は商品Bに、y3は商品Cに、y4は商品Dに、y5は商品Sに、それぞれ対応する。出力ベクトル生成部140は、初期状態の学習データの選択肢R1に対して消費者が商品Aを選択した場合に応じて、出力ベクトルをyR1A=(1,0,0,0,0)とする。
同様に、出力ベクトル生成部140は、商品Bを選択した場合に応じて、出力ベクトルをyR1B=(0,1,0,0,0)とする。出力ベクトル生成部140は、各選択肢R1からR4に対応して、次式に示す出力ベクトルを生成する。
(数4)
yR1A=(1,0,0,0,0)
yR1B=(0,1,0,0,0)
yR2A=(1,0,0,0,0)
yR2B=(0,1,0,0,0)
yR2S=(0,0,0,0,1)
yR3A=(1,0,0,0,0)
yR3B=(0,1,0,0,0)
yR3C=(0,0,1,0,0)
yR4A=(1,0,0,0,0)
yR4B=(0,1,0,0,0)
yR4D=(0,0,0,1,0)
次に、学習処理部150は、学習用の入力ベクトルおよび出力ベクトルを用いて、選択モデルの学習を実行する(S230)。本実施形態の学習データにおいて、例えば、初期状態の商品Aと商品Bの選択確率の比(0.6/0.4)は、シミラリティ効果の結果によって、異なる比(0.3/0.4)となる。同様に、当該比は、コンプロマイズ効果の結果による当該比(0.3/0.5)、およびアトラクション効果の結果による当該比(0.4/0.5)のように、選択肢に応じてそれぞれ異なる比となる。
従来、このような消費者に提示する選択肢に応じて、当該選択肢に含まれる商品の選択確率の比が変化する選択行動は、モデル化することが困難であった。そこで、本実施形態の学習処理部150は、消費者の選択行動を、入力ベクトルから出力ベクトルへの写像を学習する問題として定式化して、入力選択肢に含まれる選択肢同士の選択確率の比が入力選択肢に含まれる他の選択肢の組合せに応じて異なりうる選択モデルを学習する。
図7は、本実施形態に係る選択モデル10の一例を示す。選択モデル10は、入力層12と、出力層14と、中間層16とを有する。入力層12は、複数種類の選択肢のそれぞれを入力ノードとする。即ち、入力ノードは、入力ベクトルの要素に対応し、各ノードの値が入力ベクトルの要素の値と略同一となる。例えば、入力層12は、入力ベクトルx=(x1,x2,x3,x4,x5)に対応して、x1,x2,x3,x4,x5を入力ノードとする。
出力層14は、複数種類の選択肢のそれぞれを出力ノードとする。即ち、出力ノードは、出力ベクトルの要素に対応し、各ノードの値が出力ベクトルの要素の値と略同一となる。例えば、出力層14は、出力ベクトルy=(y1,y2,y3,y4,y5)に対応して、y1,y2,y3,y4,y5を出力ノードとする。
中間層16は、複数の中間ノードを含む。ここで、中間ノードhkの数Kは、1以上の自然数であり、入力ノードの数(出力ノードの数)Jと同一の数でもよい。また、中間ノードhkの値は、一例として、非零の値(例えば1)または0とする。ここで、中間層16は、選択モデルの入出力特性を表現すべく用いた隠れ層である。当該中間層16が有する中間ノードhkの値は、結果として1または0の値が一意に求まらなくてもよく、1または0の値となる確率の分布等が得られてもよい。中間ノードhkの値は、次式で示される。
(数5)
hk∈{0,1}, k∈{1,...,K}
選択モデル10が表現できる入出力特性は、中間ノードの数Kに応じて複雑さを増減できるので、より表現したい特性を増加させるには中間ノードの数Kを増加させることが好ましい。その一方で、選択モデル10の学習に必要な計算量は、中間ノードの数Kの増加に応じて増加するので、学習をより高速に実行させるには中間ノードの数Kを減少させることが好ましい。これらを考慮し、処理装置100の使用者等は、予め中間ノードの数Kを適度な値に設定してよい。本実施形態において、中間ノードhkの数Kが、入力ノードの数J(=5)と同一の値である例を説明する。
また、選択モデル10は、各入力ノードxiおよび各中間ノードhkの間に各第1ウェイト値Wikが設定される。即ち、各入力ノードxiおよび各中間ノードhkは、それぞれ接続され、当該接続によるデータの流れに第1ウェイトWikがそれぞれ付加される。また、選択モデル10は、各中間ノードhkおよび各出力ノードyjの間に各第2ウェイト値Ujkが設定される。即ち、各中間ノードhkおよび各出力ノードyjは、それぞれ接続され、当該接続によるデータの流れに第2ウェイトUikがそれぞれ付加される。
第1ウェイト値Wikおよび第2ウェイト値Ujkは、データの流れの方向によらず一定のウェイトを当該流れに付加する対称ウェイトである。ここで、各層内のノード同士は、接続されない。また、各入力ノードxiおよび各出力ノードyjは、それぞれ接続してもしなくてもよい。本実施形態においては、各入力ノードxiおよび各出力ノードyjを接続しない例を説明する。
また、選択モデル10は、入力層12、中間層16、および出力層14に含まれる各ノードに対して入力バイアス、中間バイアス、および出力バイアスが更に設定される。即ち、入力層12の各入力ノードxiには、入力バイアスbi xがそれぞれ設定される。同様に、出力層14の各出力ノードyjには出力バイアスbj yが、中間層16の各中間ノードhkには中間バイアスbk hが、それぞれ設定される。
学習処理部150は、各入力ノードxiおよび各中間ノードhkの間の各第1ウェイト値Wikと、各中間ノードhkおよび各出力ノードyjの間の各第2ウェイト値Ujkとを学習する。また、学習処理部150は、入力層12の各入力バイアスbi x、中間層16の各中間バイアスbk h、および出力層14の各出力バイアスbj yを更に学習する。即ち、学習処理部150は、第1ウェイト値Wik、第2ウェイト値Ujk、入力バイアスbi x、中間バイアスbk h、および出力バイアスbj yをパラメータとして学習する。学習処理部150は、一例として、当該パラメータをベクトルθの要素とし、当該パラメータベクトルθ(Wik,Ujk,bi x,bk h,bj y)を用いて学習する。
学習処理部150は、例えば、制約付ボルツマンマシン(Restricted Bolzmann Machine)に基づく選択モデルを学習する。ボルツマンマシンは、確率的に動作する確率的素子によって構成され、入力を固定して動作させても確率に応じて様々な値を出力し、当該出力の観測系列(例えば時間系列)から各出力の出現確率(出現頻度)を得るシステムである。ここで、確率的素子のそれぞれが確率的平衡状態に落ち着いている場合、即ち、確率的素子のそれぞれの状態の出現確率が略一定となる場合、状態αの出現確率はボルツマン分布(exp{−E(α)/T})に比例する。
即ち、ボルツマンマシンの出力そのものは時間的に変動するが、出現確率は入力から一意に定まり、時間的に略一定となる。なお、ボルツマンマシンは、初期値に応じて、出現確率が時間的に変動する過渡期を生じさせる場合があるが、当該初期値の影響が低減するまで十分に長い時間動作させることにより、出現確率は時間的に略一定の値に収束する。本実施形態においては、このようなボルツマンマシンのシステムに基づいて、選択モデルを学習する例を説明する。
学習処理部150は、入力ベクトルおよび出力ベクトルの要素を含む入出力サンプルベクトルslm=(xl,ym)(または入出力サンプル列、入出力サンプル配列等)を生成する。ここで、学習処理部150は、消費者の選択結果である選択確率に応じた数の入出力サンプルベクトルを生成してよい。
例えば、学習処理部150は、初期状態の選択肢R1の提示に対して消費者が商品Aを選択した結果が60%であることに応じて、対応する入出力サンプルベクトルsR1Aを6つ生成する。この場合、学習処理部150は、選択肢R1の提示に対して商品Bを選択した結果が40%であることに応じて、対応する入出力サンプルベクトルsR1Bを4つ生成する。学習処理部150は、一例として、入出力サンプルベクトルslmを次式のように生成する。なお、次式には、学習処理部150が各ベクトルを生成する数も示す。
(数6)
sR1A=(1,1,0,0,0,1,0,0,0,0):6つ
sR1B=(1,1,0,0,0,0,1,0,0,0):4つ
sR2A=(1,1,0,0,1,1,0,0,0,0):3つ
sR2B=(1,1,0,0,1,0,1,0,0,0):4つ
sR2S=(1,1,0,0,1,0,0,0,0,1):3つ
sR3A=(1,1,1,0,0,1,0,0,0,0):3つ
sR3B=(1,1,1,0,0,0,1,0,0,0):5つ
sR3C=(1,1,1,0,0,0,0,1,0,0):2つ
sR4A=(1,1,0,1,0,1,0,0,0,0):4つ
sR4B=(1,1,0,1,0,0,1,0,0,0):5つ
sR4D=(1,1,0,1,0,0,0,0,1,0):1つ
学習処理部150は、(数6)式で示した合計40の入出力サンプルベクトルを学習用サンプルとして選択モデル10を学習する。ここで、学習処理部150は、合計40の入出力サンプルベクトルをランダムにシャッフルしたデータセットを学習用サンプルとして用いてよい。
そして、学習処理部150は、入出力サンプルベクトル毎に、p(y,x)およびp(y|x)の少なくともいずれか一方が高くなるように、パラメータベクトルθを更新する。ここで、p(y,x)は、入力ベクトルがxで、かつ、出力ベクトルがyとなる同時確率を示す。また、p(y|x)は、入力ベクトルがxとなった場合における、出力ベクトルがyとなる条件付き確率を示す。なお、p(y,x)およびp(y|x)は、p(y|x)=p(y,x)/p(x)と関係づけられる。
学習処理部150は、例えば、学習用の選択行動を示す入出力サンプルベクトルのそれぞれについて、入力選択肢および出力選択肢の同時確率p(y,x)を高めるように、パラメータを更新する。この場合、学習処理部150は、同時確率p(y,x)を確率的に大きくする勾配方向にパラメータベクトルθの各要素を更新する。即ち、学習処理部150は、図7に示された選択モデル10に基づく同時確率p(y,x)のパラメータベクトルθに対する勾配を求め、当該同時確率p(y,x)が大きくなる方向にパラメータベクトルθの要素をそれぞれ増減させて更新する。
また、学習処理部150は、例えば、学習用の選択行動のそれぞれについて、入力選択肢に応じて出力選択肢が選択される確率(即ち、条件付き確率p(y|x))を高めるように、パラメータを更新する。この場合、学習処理部150は、条件付き確率p(y|x)を確率的に大きくする勾配方向にパラメータを更新する。即ち、学習処理部150は、図7に示された選択モデル10に基づく条件付き確率p(y|x)のパラメータベクトルθに対する勾配を求め、当該条件付き確率p(y|x)が大きくなる方向にパラメータベクトルθの要素をそれぞれ増減させて更新する。
ここで、図7に示された選択モデル10に基づく同時確率p(y,x)および条件付き確率p(y|x)は、次式で示すエネルギー関数E(x,y,h;θ)および自由エネルギーF(x,y;θ)、F(x;θ)、およびF(θ)を用いて示すことができる。ここで、パラメータθを有する x の確率分布を、p(x;θ)と表記した。
(数7)および(数8)式より、同時確率p(y,x)および条件付き確率p(y|x)は、次式で示される。このように、選択モデル10に基づき、ボルツマンマシンのエネルギー関数および自由エネルギーを用いて同時確率p(y,x)および条件付き確率p(y|x)を算出する具体的な方法は既知である。
学習処理部150は、同時確率p(y,x)のパラメータベクトルθに対する勾配を、(数7)から(数9)式より算出される次式から算出する。
ここで、(数11)式におけるC(x)は、入力ベクトルxで1となる要素を、one−hot コーデイング(1つの要素を1とし、他の要素は全て0としたベクトルによって表現するコーディング方法)で表現したベクトルを含むセットである。(数11)式において、ウェイトを工夫して式変形することで、次式を得る。即ち、アイテムセットに含まれていないアイテムに対しても期待値を取ってもよい。
学習処理部150は、パラメータベクトルθを、(数11)または(数12)式を用いて、予め定められた初期値から入出力サンプルベクトル毎に更新する。学習処理部150は、一例として、初期値を代入した(数11)式の勾配の増加(プラス)方向に、予め定められた値(ΔW,ΔU,Δbx,Δbh,Δby)だけ、初期値のパラメータベクトルθの各要素を増加させる。そして、学習処理部150は、例えば、同時確率p(y,x)の増減が予め定められた範囲内に収束するまで当該更新を繰り返す。これに代えて、学習処理部150は、予め定められた回数の更新を繰り返してもよい。
また、学習処理部150は、複数の初期値からパラメータベクトルθの更新をそれぞれ繰り返してよい。この場合、学習処理部150は、一例として、パラメータベクトルθの要素のそれぞれが、予め定められた範囲内に収束するまで当該更新を繰り返す。これによって、学習処理部150は、より確度の高いパラメータベクトルθを定めることができる。
ここで、学習処理部150は、同時確率p(y,x)の増減が収束しない場合、パラメータベクトルθの要素の一部または全部が収束しない場合等は、初期値を変更してもよい。このように、同時確率p(y,x)を大きくするように、同時確率p(y,x)の勾配を算出し、勾配方向にパラメータを更新する具体的な方法は、「Gradient for generative training」として既知である。
同様に、学習処理部150は、条件付き確率p(y|x)のパラメータベクトルθに対する勾配を、(数7)、(数8)、および(数10)式より算出される次式から算出する。
(数13)式においても、(数11)式と同様に、ウェイトを工夫して式変形することで、次式を得る。
学習処理部150は、同時確率p(y,x)の場合と同様に、(数13)または(数14)式を用いて予め定められた初期値から入出力サンプルベクトル毎に更新し、パラメータベクトルθを定める。このように、条件付き確率p(y|x)を大きくするように、条件付き確率p(y|x)の勾配を算出し、勾配方向にパラメータを更新する具体的な方法は、「Gradient for discriminative training」として既知である。
以上の本実施形態の学習処理部150は、同時確率p(y,x)または条件付き確率p(y|x)の勾配を算出し、勾配方向にパラメータを更新することを説明した。これに代えて、学習処理部150は、p(y,x)および条件付き確率p(y|x)の勾配をそれぞれ算出し、算出した2つの勾配に基づいてパラメータを更新してもよい。即ち、学習処理部150は、一例として、(数11)式および(数12)式から、p(y,x)および条件付き確率p(y|x)の勾配をそれぞれ算出した後、当該2つの勾配を組み合わせた(ハイブリッド:hybrid)勾配を次式のように更に算出する。
学習処理部150は、同時確率p(y,x)等の場合と同様に、パラメータベクトルθを、(数13)式を用いて、予め定められた初期値から入出力サンプルベクトル毎に更新し、パラメータベクトルθを定める。このように、同時確率p(y,x)および条件付き確率p(y|x)を大きくするように、同時確率p(y,x)および条件付き確率p(y|x)の勾配の組み合わせを算出し、組み合わせの勾配方向にパラメータを更新する具体的な方法は、「Gradient for hybrid training」として既知である。
以上のように、本実施形態の学習処理部150は、認知バイアスがかかった消費者の選択行動をモデル化した選択モデル10を、制約付ボルツマンマシンに基づいて学習することができる。また、学習処理部150は、複雑で特殊なアルゴリズムを用いることなく、既知の学習アルゴリズムによって、選択モデル10を学習することができる。学習処理部150は、学習した選択モデル10のパラメータベクトルθを記憶部120に記憶する。
次に、確率算出部160は、入力選択肢に応じてそれぞれの選択肢が選択される確率を、各第1ウェイト値、各第2ウェイト値、各入力バイアス、各中間バイアス、および各出力バイアスを含むパラメータに基づき算出する(S240)。確率算出部160は、記憶部120から学習した選択モデル10のパラメータベクトルθを読み出し、各選択肢が選択される確率を算出してよい。ここで、確率算出部160は、(数9)および(数10)式を用いて各選択肢が選択される確率を算出してよい。
図8は、本実施形態に係る確率算出部160が算出した各選択肢が選択される確率の一例を示す。図8は、図6に示した学習データをターゲットとして、選択モデル10を学習した結果の一例である。即ち、図8の横軸、縦軸、および各棒グラフがそれぞれ示す内容は、図6と略同一である。
図8と図6を比較することにより、本実施形態の処理装置100は、ターゲットである学習データと略同一の傾向の確率を算出することができることがわかる。また、初期状態の商品Aと商品Bの選択確率の比が、消費者に提示する選択肢に応じて変化することも再現できることがわかる。これより、処理装置100は、選択モデル10を用いてシミラリティ効果、コンプロマイズ効果、およびアトラクション効果等の認知バイアスが加わった消費者の消費行動を表現でき、また、当該選択モデル10を既知の学習アルゴリズムで学習できることを確認できた。
以上の本実施形態の処理装置100において、学習処理部150が制約付ボルツマンマシンに基づいて条件付き確率p(y|x)等を解析的に算出し、選択モデル10を学習することを説明した。これに代えて、学習処理部150は、ギブスサンプリング等を用いて条件付き確率p(y|x)を推定し、選択モデル10を学習してもよい。
この場合、学習処理部150は、L個の商品が提示されたことに応じて、入力層12の入力ベクトルを固定したまま、出力層14の出力ベクトルおよび中間層16の中間ノードに対してギブスサンプリングを実行することで、それぞれの商品が消費者に選択される確率を推定することができる。この場合、学習処理部150は、一例として、推定する条件付き確率p(y|x)が最大となるようにパラメータベクトルθを勾配法等で決定し、選択モデル10を学習することができる。
以上のように、本実施形態の処理装置100は、選択モデル10を学習して認知バイアスが加わった消費者の消費行動を表現することができる。これにより、例えば、取得部110が、ユーザに与えられた商品またはサービスの選択肢に対してユーザが選択した選択肢を学習用の選択行動として含む学習データを取得することで、学習処理部150が、商品またはサービスの選択肢に応じたユーザの選択行動をモデル化した選択モデル10を学習することができる。この場合、対象はユーザであり、選択肢は当該ユーザに与えられる商品またはサービスの選択肢である。これによって、処理装置100は、ユーザの購買行動を学習することができる。
図9は、本実施形態に係る処理装置100の第1の変形例を示す。本変形例の処理装置100において、図4に示された本実施形態に係る処理装置100の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例の処理装置100の取得部110は、指定入力部112と、選択部114とを有する。また、本変形例の処理装置100は、特定部170を更に備える。
指定入力部112は、複数種類の商品またはサービスのうち、販売を促進する商品またはサービスの指定を入力する。指定入力部112は、一例として、ユーザから売りたい商品またはサービス等の指定を受け取る。
選択部114は、複数種類の商品またはサービスに対応する複数種類の選択肢の中から、販売を促進する商品またはサービスを選択肢として含む複数の入力選択肢を選択する。例えば、ユーザが販売を促進する商品として、商品Bの指定を指定入力部112に入力した場合、選択部114は、商品Bを含む複数の選択肢(A,B)、(A,B,C)、・・・等を選択する。選択部114は、このように選択した複数の選択肢の情報を入力ベクトル生成部130に供給する。
入力ベクトル生成部130は、既に説明したように、受け取った複数の選択肢に応じた複数の入力ベクトルを生成して確率算出部160に供給する。確率算出部160は、既に説明したように、学習済の選択モデル10のパラメータベクトルθを読み出し、各選択肢が選択される確率を算出する。
特定部170は、複数の入力選択肢のうち、販売を促進する商品またはサービスに応じた選択肢が選択される確率がより高くなる入力選択肢を特定する。特定部170は、一例として、図8の結果より、選択肢R4(商品A,B,D)を、商品Bが選択される確率がより高くなる選択肢として特定する。このように、本変形例の処理装置100は、販売を促進したい商品等に応じて、消費者に提示すべき選択肢を適切に特定することができる。
以上の本実施形態の処理装置100において、取得部110は、ウェブサイト上で提示された選択肢の中からユーザが選択した選択肢を含む学習データを取得してもよい。即ち、本例において、対象はユーザであり、選択肢はウェブサイト上で当該ユーザに提示される。これによって、処理装置100は、例えば、インターネットを介してショッピングをする消費者の選択行動をモデル化することができる。また、処理装置100は、当該消費者の購買行動を学習することができ、また、販売促進する商品等を含めた適切な選択肢を当該消費者にウェブサイトを介して提示することができる。
また、本実施形態の処理装置100は、消費者に提示する選択肢に応じて、当該選択肢に含まれるそれぞれの商品が選択される確率を算出することができる。そこで、処理装置100は、食堂およびレストラン等の飲食店が消費者に提示するメニューに応じて、当該メニューに含まれるメニューアイテムが選択される確率を算出することもできる。これによって、処理装置100は、飲食店等が提示するメニューに応じて準備すべきメニューアイテムの数および材料等を予測することもできる。
以上の本実施形態の処理装置100において、学習処理部150は、1つの選択モデル10を生成して学習することを説明した。これに代えて、学習処理部150は、複数の選択モデル10を生成し、別個独立にそれぞれ学習してもよい。学習処理部150は、例えば、複数の消費者グループに対応付けて、複数の選択モデル10を生成し、それぞれの消費者グループ毎に選択モデル10を学習する。ここで、消費者グループは一人以上の消費者を含むグループである。これによって、消費者の選択行動を、消費者毎により細かく分析することができる。
以上の本実施形態の処理装置100は、認知バイアスが加わった消費者の消費行動を表現できる選択モデル10を学習できるが、学習済みの選択モデル10を用いて商品の選択確率を算出すると、選択肢に含まれない商品に対しても選択確率が0ではない値を算出することがある。例えば、図8の確率算出部160が算出した各選択肢が選択される確率において、選択肢R2に対応する商品A、B、およびSには、それぞれ0ではない選択確率が算出される。しかしながら、確率算出部160は、選択肢R2に含まれない商品Dに対しても、0ではない選択確率を算出結果として出力する。
同様に、確率算出部160は、選択肢R3に対応する商品A、B、およびCに、それぞれ0ではない選択確率が算出すると共に、選択肢R3に含まれない商品Sに対しても、0ではない選択確率を算出結果として出力する。このように、消費者に提示しない商品に対して算出される選択確率は、全て誤差となってしまう。
そこで、本実施形態において、このような誤差を低減すべく、図7で説明した選択モデル10を変形した例を説明する。図10は、本実施形態に係る選択モデル10の変形例を示す。本変形例の選択モデル10において、図7に示された本実施形態に係る選択モデル10の動作と略同一のものには同一の符号を付け、説明を省略する。
本変形例の選択モデル10は、各入力ノードxiおよび各中間ノードhkの間に対称ウェイトの各第1ウェイト値Wikが設定される。そして、選択モデル10は、各入力ノードxj、各中間ノードhk、および各出力ノードyjの間に各第2ウェイト値Ujjkが設定される。即ち、第2ウェイト値Ujjkは、入力ノードxj、中間ノードhkおよび各出力ノードyjの各値に応じてウェイト値が定まる三方向ウェイトである。
ここで、第2ウェイト値U
jjkは、入力ノードx
jの値が1となる場合(消費者に提示された商品の場合)に、対応する出力ノードy
jのウェイト値を図7で説明した第2ウェイト値U
jkとし、また、対応する出力ノードy
j以外のノードのウェイト値を1未満の値にする。第2ウェイト値U
jjkは、一例として、対応する出力ノードy
j以外のノードのウェイト値を0にする。この場合、第2ウェイト値U
jjkは、次式のように示される。
ここで、δijは、iとjが等しい場合(i=j)に1となり、iとjが異なる場合(i≠j)に0となるクロネッカーのデルタとして既知の関数である。このように、本変形例の選択モデル10は、消費者に提示されていない、選択肢としては存在しない商品の選択確率を低減させるように、第2ウェイト値にゲーティング機能を付加する。
そして、このような本変形例の選択モデル10の各第1ウェイト値Wikおよび各第2ウェイト値Ujjkを学習すべく、図4で説明した処理装置100を変形した例を説明する。図11は、本実施形態に係る処理装置100の第2の変形例を示す。本変形例の処理装置100において、図4に示された本実施形態に係る処理装置100の動作と略同一のものには同一の符号を付け、説明を省略する。
即ち、本変形例の処理装置100は、図10に示された複数の入力ノードを含む入力層12、複数の出力ノードを含む出力層14、および複数の中間ノードを含む中間層16を備える選択モデル10を処理する。本変形例の処理装置100は、算出部210を備える。
取得部110は、複数の入力ノードxiに対する複数の入力値を取得する。また、取得部110は、複数の入力値と複数の入力値に対応して複数の出力ノードに出力すべき複数の出力値とを含む学習データを取得してよい。
入力ベクトル生成部130は、複数種類の選択肢のそれぞれが入力選択肢に含まれるか否かを示す入力ベクトルxを生成し、出力ベクトル生成部140は、複数種類の選択肢のそれぞれが学習用の出力選択肢に含まれるか否かを示す出力ベクトルyを生成する。
算出部210は、入力ベクトル生成部130および出力ベクトル生成部140に接続され、入力ベクトルおよび出力ベクトルの情報を受け取る。算出部210は、入力値が0である入力ノードに対応する出力ノードと中間ノードとの間に設定された第2ウェイト値の影響を低減させた選択モデル10を用いて、複数の入力値に対応する複数の出力ノードからの複数の出力値を算出する。
算出部210は、複数の入力値に対応する複数の出力ノードからの複数の出力値の算出において、入力値が0の入力ノードに対応する出力ノードの出力値に1未満の係数を乗じて第2ウェイト値の影響を低減させてよい。算出部210は、一例として、複数の入力値に対応する複数の出力ノードからの複数の出力値の算出において、入力値が0の入力ノードに対応する出力ノードの出力値に係数0を乗じて0とする。
また、算出部210は、例えば、入力値が1である入力ノードxjに対応する出力ノードyjと、中間ノードhkとの間に設定された第2ウェイト値Ujjkの大きさを変えずに、入力値が1である当該入力ノードxjに対応しない出力ノードyi(i≠j)と、中間ノードhkとの間に設定された第2ウェイト値Uijkの大きさを低減させる。算出部210は、当該第2ウェイト値Uijkの大きさを1未満の値にしてよい。
算出部210は、一例として、入力値が1である入力ノードx
jに対応しない出力ノードy
iと、中間ノードh
kとの間に設定された第2ウェイト値U
ijkの大きさを0にする。そして、算出部210は、低減後の第2ウェイト値に基づいて、複数の入力値に対応する複数の出力ノードからの複数の出力値を算出する。算出部210は、一例として、出力ノードy
jの出力値y
j outを次式のように算出する。
ここで、算出部210は、入力ベクトル、出力ベクトル、各第1ウェイト値、および各第2ウェイト値等の情報を、学習処理部150に供給する。また、算出部210は、記憶部120に接続されてよく、この場合、設定した各第1ウェイト値と各第2ウェイト値とを記憶部120に供給する。この場合、記憶部120は、入力層12と中間層16との間の各ノード間に設定された各第1ウェイト値と、中間層16と出力層14との間の各ノード間に設定された各第2ウェイト値とを記憶する。
学習処理部150は、算出部210に接続され、学習用の複数の入力値および複数の出力値に基づいて、本変形例の選択モデル10を学習する。即ち、学習処理部150は、対象の認知バイアスに応じた選択行動を含む本変形例の選択モデル10を学習する。学習処理部150は、一例として、(数2)、(数4)式で示される複数の入力ベクトルxおよび複数の出力ベクトルyに基づき、既に説明した学習方法により本変形例の選択モデル10を学習する。
即ち、学習処理部150は、学習用の入力値が0である入力ノードに対応する出力ノードと中間ノードとの間に設定された第2ウェイト値を0として本変形例の選択モデル10を学習する。この場合、学習処理部150は、(数7)式のエネルギー関数に代えて、一例として、図10の選択モデル10を反映させた次式を用いてよい。
ここで、添え字yを次式のように定義することにより、(数18)式は、(数20)式のように表すことができる。
このような(数20)式のエネルギー関数と、(数8)式の自由エネルギーF(x,y;θ)およびF(x;θ)を用いることにより、条件付き確率p(y|x)は、(数10)式のように算出することができる。そこで、学習処理部150は、(数20)式のエネルギー関数に基づく条件付き確率p(y|x)において、パラメータベクトルθに対する勾配を(数13)式から算出し、条件付き確率p(y|x)を確率的に大きくする勾配方向にパラメータを更新する。
以上のように、本変形例の学習処理部150は、図7の選択モデル10の学習で説明したように、図10の選択モデル10を学習することができる。なお、図10の選択モデル10においては、ベクトルhを与えてもベクトルxおよびyを同時に定めることができないので、同時確率p(y,x)の「Gradient for generative training」を実行することはできない。
以上のように、本変形例の学習処理部150は、認知バイアスがかかった消費者の選択行動をモデル化した図10の選択モデル10を、制約付ボルツマンマシンに基づいて学習することができる。また、本変形例に係る確率算出部160は、学習した選択モデル10に基づき、各選択肢が選択される確率を算出することができる。
図12は、本変形例に係る確率算出部160が算出した各選択肢が選択される確率の一例を示す。図12は、図8と同様、図6に示した学習データをターゲットとして、図10の選択モデル10を学習した結果の一例である。即ち、図12の横軸、縦軸、および各棒グラフがそれぞれ示す内容は、図6および図8と略同一である。
図12と図6を比較することにより、本変形例の処理装置100は、ターゲットである学習データと略同一の傾向の確率を算出することができることがわかる。また、初期状態の商品Aと商品Bの選択確率の比が、消費者に提示する選択肢に応じて変化することも再現できることがわかる。これにより、本変形例の学習処理部150は、入力選択肢に含まれる選択肢同士の選択確率の比が入力選択肢に含まれる他の選択肢の組合せに応じて異なりうる本変形例の選択モデル10を学習することができることがわかる。
また、図12と図8を比較することにより、本変形例の処理装置100は、選択肢に含まれない商品に対して選択確率が略0を算出していることがわかる。例えば、図12の各選択肢が選択される確率において、選択肢R2に対応する商品A、B、およびSには、それぞれ0ではない選択確率が算出されると共に、選択肢R2に含まれない商品Dに対しては、略0の選択確率を算出結果が得られている。
同様に、選択肢R3に対応する商品A、B、およびCに、それぞれ0ではない選択確率が算出すると共に、選択肢R3に含まれない商品Sに対しては、略0の選択確率が算出結果として得られている。このように、本変形例の処理装置100は、消費者に提示しない商品に対して算出される選択確率を略0にして、選択確率の誤差を低減させることができる。
以上の本変形例の処理装置100は、入力値が0である入力ノードに対応する出力ノードと中間ノードとの間に設定された第2ウェイト値の影響を低減させた選択モデル10を用いて、選択確率の誤差を低減させることを説明した。ここで、処理装置100は、選択モデル10の入力ノードxiが0であることに代えて、入力ノードが予め定められた閾値以下の値であることに応じて、第2ウェイト値の影響を低減させるモデルを用いてもよい。この場合、処理装置100は、複数の入力値に対応する複数の出力ノードからの複数の出力値を当該閾値以下に算出してよい。
また、以上の本実施形態の処理装置100は、与えられた選択肢に対する対象の選択行動をモデル化した選択モデル10を用いることを説明したが、これに限られず、確率分布を予測する予測モデルを用いてもよい。例えば、処理装置100は、サイズNの母集団A(離散集合A)から、任意のm個のサブセットBを選択し、当該サブセットBに定義される確率分布を予測する制約付きボルツマンマシンに基づく予測モデルに適用することができる。即ち、処理装置100は、当該予測モデルを学習してサブセットBに定義される確率分布を算出した場合、サブセットBに含まれない母集団Aの確率分布を略0にすることができるので、当該確率分布を効率よく学習して正確に算出することができる。
図13は、本実施形態に係る処理装置100として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、および表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、およびDVDドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、および入出力チップ2070を有するレガシー入出力部と、を備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000およびグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010およびRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、DVDドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラムおよびデータを格納する。DVDドライブ2060は、DVD−ROM2095からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、および入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、および/または、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、DVD−ROM2095、またはICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
プログラムは、コンピュータ1900にインストールされ、コンピュータ1900を取得部110、記憶部120、入力ベクトル生成部130、出力ベクトル生成部140、学習処理部150、確率算出部160、特定部170、および算出部210等として機能させる。
プログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部110、記憶部120、入力ベクトル生成部130、出力ベクトル生成部140、学習処理部150、確率算出部160、特定部170、および算出部210等として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の処理装置100が構築される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、またはDVD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置または通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、DVDドライブ2060(DVD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、および/または記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(または不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、DVD−ROM2095の他に、DVD、Blu−ray(登録商標)、またはCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。