特許第6366031号(P6366031)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許6366031情報処理装置、情報処理方法、及びプログラム
<>
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000027
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000028
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000029
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000030
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000031
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000032
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000033
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000034
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000035
  • 特許6366031-情報処理装置、情報処理方法、及びプログラム 図000036
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6366031
(24)【登録日】2018年7月13日
(45)【発行日】2018年8月1日
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20180723BHJP
【FI】
   G06F17/30 340B
   G06F17/30 350C
【請求項の数】16
【全頁数】23
(21)【出願番号】特願2013-232780(P2013-232780)
(22)【出願日】2013年11月11日
(65)【公開番号】特開2015-95009(P2015-95009A)
(43)【公開日】2015年5月18日
【審査請求日】2016年11月1日
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】恐神 貴行
【審査官】 岡北 有平
(56)【参考文献】
【文献】 国際公開第2012/142751(WO,A1)
【文献】 米国特許出願公開第2012/0016642(US,A1)
【文献】 特開2003−150835(JP,A)
【文献】 特開2010−061601(JP,A)
【文献】 特開2012−141724(JP,A)
【文献】 特開2010−224873(JP,A)
【文献】 特開2010−073195(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置であって、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択部と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力部と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得部と、
を備え、
前記選択部は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出し、
一のアイテムと他のアイテムとの間の前記類似度を前記一のアイテムに対応する行及び前記他のアイテムに対応する列の成分とする行列Sを生成し、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから下記数式(1)及び(2)に基づいて行列Lを生成し、
前記行列Lの固有ベクトル及び固有値を算出し、
前記行列Lの固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成し、
前記集合Vに基づいて、前記n個のアイテムの中から前記アイテムの組として前記k個の前記アイテムを選択する、
【数1】
…数式(1)
【数2】
…数式(2)
(ただし、nは3以上の自然数、kは2以上n未満の自然数であり、1≦i、j≦nを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Lij及びSijは、それぞれ行列L及び行列Sの(i,j)成分を示す)
情報処理装置。
【請求項2】
前記ユーザが過去にアイテムを選択した履歴に基づいて各アイテムのスコアを算出するスコア算出部を更に備える、
請求項1に記載の情報処理装置。
【請求項3】
前記スコア算出部は、Upper Confidence Boundに基づいて前記スコアを算出する、
請求項2に記載の情報処理装置。
【請求項4】
前記スコア算出部は、アイテムの提示したことに応じて当該アイテムが選択された割合に基づいて前記スコアを算出する、
請求項2に記載の情報処理装置。
【請求項5】
前記選択部は、
前記n個のアイテム中のi番目のアイテムに対して数式(3)に示す優先度Pに対応する確率を割り当てて、当該割り当てた確率に基づいて1個のj番目のアイテムを選択する選択処理と、
前記集合Vから任意の1つのベクトルを削除し、残りのベクトルのそれぞれを、第j成分が1の単位ベクトルeに直交する空間に射影して新しい集合Vとする集合生成処理と、
前記集合Vに含まれるベクトルを正規直交化する正規化処理と、
を前記集合Vが空集合になるまで繰り返すことにより前記k個のアイテムを選択する、
請求項1からのいずれか1項に記載の情報処理装置。
【数3】
…数式(3)
ただし、iは1≦i≦nの自然数であり、|V|は前記集合Vに含まれるベクトルの数を示し、vは前記集合Vに含まれるm番目のベクトルを示し、eは、第i成分が1の単位ベクトルを示す。
【請求項6】
複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置であって、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択部と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力部と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得部と、
を備え、
前記選択部は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出し、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから数式(4)に基づいて行列Cを生成し、
前記行列Cの固有ベクトル及び固有値を算出し、
前記行列Cの固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成し、
前記集合Vに基づいて、前記n個のアイテムの中から前記アイテムの組として前記k個の前記アイテムを選択する、
情報処理装置。
【数4】
…数式(4)
ただし、行列Cはd×dの正方行列であり、dは前記特徴ベクトルの成分数であり、nは3以上の自然数であり、kは2以上n未満の自然数であり、1≦i、j≦dを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Cijはそれぞれ行列Cの(i,j)成分を示し、Φmi及びΦmjはそれぞれ特徴ベクトルΦのi番目及びj番目の成分を示す。
【請求項7】
前記選択部は、
前記n個のアイテムに対して数式(5)に示す優先度Pに対応する確率を割り当てて、当該割り当てた確率に基づいて1個のj番目のアイテムを選択する選択処理と、
前記集合Vから任意の1つのベクトルwを削除し、残りのベクトルvのそれぞれを数式(6)に基づいてv'に更新して新しい集合Vとする集合生成処理と、
前記集合Vに含まれるベクトルを正規直交化する正規化処理と、
を前記集合Vが空集合になるまで繰り返すことにより前記k個のアイテムを選択する、
請求項に記載の情報処理装置。
【数5】
…数式(5)
【数6】
…数式(6)
ただし、iは1≦i≦nの自然数であり、|V|は前記集合Vに含まれるベクトルの数を示し、vは前記集合Vに含まれるn番目のベクトルを示す。
【請求項8】
複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置であって、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択部と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力部と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得部と、
を備え、
前記選択部は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出し、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから数式(7)及び数式(8)に基づいて行列Mを生成し、
前記行列Mに基づいて、前記n個の前記アイテムの中から前記アイテムの組としてk個の前記アイテムを選択する、
情報処理装置。
【数7】
…数式(7)
【数8】
…数式(8)
ただし、nは3以上の自然数であり、kは2以上n未満の自然数であり、1≦i、j≦nを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Mij及びSijはそれぞれ行列M及び行列Sの(i,j)成分を示し、行列S[a,b;c,d]は行列Sのa及びb行目とc及びd列目を抽出した部分行列を示す。
【請求項9】
前記選択部は、
行列Mの成分Mijの大きさに応じて、i番目及びj番目のアイテムをアイテムの組として選択する、
請求項に記載の情報処理装置。
【請求項10】
前記出力部は、前記アイテムの組に含まれる前記アイテムのうち前記スコアの大きいものを他のアイテムに優先して出力する、
請求項1からのいずれか1項に記載の情報処理装置。
【請求項11】
コンピュータにより複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理方法であって、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択段階と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力段階と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得段階と、
を備え、
前記選択段階は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出する段階、
一のアイテムと他のアイテムとの間の前記類似度を前記一のアイテムに対応する行及び前記他のアイテムに対応する列の成分とする行列Sを生成する段階、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから下記数式(1)及び(2)に基づいて行列Lを生成する段階、
前記行列Lの固有ベクトル及び固有値を算出する段階、
前記行列Lの固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成する段階、及び、
前記集合Vに基づいて、前記n個のアイテムの中から前記アイテムの組として前記k個の前記アイテムを選択する段階、
【数9】
…数式(1)
【数10】
…数式(2)
(ただし、nは3以上の自然数、kは2以上n未満の自然数であり、1≦i、j≦nを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Lij及びSijは、それぞれ行列L及び行列Sの(i,j)成分を示す)
を有する情報処理方法。
【請求項12】
コンピュータにより複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理方法であって、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択段階と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力段階と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得段階と、
を備え、
前記選択段階は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出する段階、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから数式(4)に基づいて行列Cを生成する段階、
前記行列Cの固有ベクトル及び固有値を算出する段階、
前記行列Cの固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成する段階、及び、
前記集合Vに基づいて、前記n個のアイテムの中から前記アイテムの組として前記k個の前記アイテムを選択する段階、
を有する情報処理方法。
【数11】
…数式(4)
ただし、行列Cはd×dの正方行列であり、dは前記特徴ベクトルの成分数であり、nは3以上の自然数であり、kは2以上n未満の自然数であり、1≦i、j≦dを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Cijはそれぞれ行列Cの(i,j)成分を示し、Φmi及びΦmjはそれぞれ特徴ベクトルΦのi番目及びj番目の成分を示す。
【請求項13】
コンピュータにより複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理方法であって、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択段階と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力段階と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得段階と、
を備え、
前記選択段階は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出する段階、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから数式(7)及び数式(8)に基づいて行列Mを生成する段階、及び
前記行列Mに基づいて、前記n個の前記アイテムの中から前記アイテムの組としてk個の前記アイテムを選択する段階、
を有する情報処理方法。
【数12】
…数式(7)
【数13】
…数式(8)
ただし、nは3以上の自然数であり、kは2以上n未満の自然数であり、1≦i、j≦nを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Mij及びSijはそれぞれ行列M及び行列Sの(i,j)成分を示し、行列S[a,b;c,d]は行列Sのa及びb行目とc及びd列目を抽出した部分行列を示す。
【請求項14】
コンピュータを複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置として機能させるプログラムであって、
当該プログラムは、前記コンピュータを、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択部と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力部と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得部と、
して機能させ、
前記選択部は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出し、
一のアイテムと他のアイテムとの間の前記類似度を前記一のアイテムに対応する行及び前記他のアイテムに対応する列の成分とする行列Sを生成し、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから下記数式(1)及び(2)に基づいて行列Lを生成し、
前記行列Lの固有ベクトル及び固有値を算出し、
前記行列Lの固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成し、
前記集合Vに基づいて、前記n個のアイテムの中から前記アイテムの組として前記k個の前記アイテムを選択する、
【数14】
…数式(1)
【数15】
…数式(2)
(ただし、nは3以上の自然数、kは2以上n未満の自然数であり、1≦i、j≦nを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Lij及びSijは、それぞれ行列L及び行列Sの(i,j)成分を示す)
プログラム。
【請求項15】
コンピュータを複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置として機能させるプログラムであって、
当該プログラムは、前記コンピュータを、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択部と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力部と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得部と、
して機能させ、
前記選択部は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出し、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから数式(4)に基づいて行列Cを生成し、
前記行列Cの固有ベクトル及び固有値を算出し、
前記行列Cの固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成し、
前記集合Vに基づいて、前記n個のアイテムの中から前記アイテムの組として前記k個の前記アイテムを選択する、
プログラム。
【数16】
…数式(4)
ただし、行列Cはd×dの正方行列であり、dは前記特徴ベクトルの成分数であり、nは3以上の自然数であり、kは2以上n未満の自然数であり、1≦i、j≦dを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Cijはそれぞれ行列Cの(i,j)成分を示し、Φmi及びΦmjはそれぞれ特徴ベクトルΦのi番目及びj番目の成分を示す。
【請求項16】
コンピュータを複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置として機能させるプログラムであって、
当該プログラムは、前記コンピュータを、
前記複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、前記優先度に基づいて、前記複数のアイテムの中から前記アイテムの組を選択する選択部と、
選択した前記アイテムの組に含まれる各アイテムを、前記ユーザに提示すべきアイテムとして出力する出力部と、
前記複数のアイテムのそれぞれについて、前記アイテムの特徴を表す特徴ベクトルを取得する特徴ベクトル取得部と、
して機能させ、
前記選択部は、
2以上のアイテムのそれぞれの前記特徴ベクトルに基づいて、2以上のアイテムの類似度を算出し、
n個の前記アイテムの前記スコア及び前記特徴ベクトルから数式(7)及び数式(8)に基づいて行列Mを生成し、
前記行列Mに基づいて、前記n個の前記アイテムの中から前記アイテムの組としてk個の前記アイテムを選択する、
プログラム。
【数17】
…数式(7)
【数18】
…数式(8)
ただし、nは3以上の自然数であり、kは2以上n未満の自然数であり、1≦i、j≦nを満たし、qはi番目のアイテムのスコアを示し、Φはi番目のアイテムの特徴ベクトルを示し、Mij及びSijはそれぞれ行列M及び行列Sの(i,j)成分を示し、行列S[a,b;c,d]は行列Sのa及びb行目とc及びd列目を抽出した部分行列を示す。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
ユーザの嗜好に合致したアイテムを推奨する方法が知られている(例えば、特許文献1参照)。
[特許文献1] 特開2011−95814号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来の方法は、ユーザの嗜好に応じてアイテムのスコアを計算し、スコアが大きさに応じてアイテムを推奨する。このため、従来の方法によると、スコアが近い類似するアイテム(例えば、色違い製品等)をユーザに対して多数推奨することとなり、有用かつ多様性のある選択肢をユーザに提示することができなかった。
【課題を解決するための手段】
【0004】
本発明の第1の態様においては、複数のアイテムの中からユーザに推奨するアイテムの組を選択する情報処理装置であって、複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、優先度に基づいて、複数のアイテムの中からアイテムの組を選択する選択部と、選択したアイテムの組に含まれる各アイテムを、ユーザに提示すべきアイテムとして出力する出力部と、を備える情報処理装置、当該情報処理装置を用いた情報処理方法、及び、当該情報処理装置に用いるプログラムを提供する。
【0005】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0006】
図1】本実施形態の情報処理装置10の構成を示す。
図2】本実施形態の情報処理装置10の処理フローを示す。
図3】本実施形態におけるアイテムのスコアの一例を示す。
図4】本実施形態におけるアイテムの特徴ベクトルの一例を示す。
図5】本実施形態の選択部106が生成する行列Sの一例を示す。
図6】本実施形態の選択部106が生成する行列Lの一例を示す。
図7】本実施形態の第1変形例における処理フローを示す。
図8】本実施形態の第2変形例における処理フローを示す。
図9】本変形例の選択部106が生成する行列Mの一例を示す。
図10】コンピュータ1900のハードウェア構成の一例を示す。
【発明を実施するための形態】
【0007】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0008】
図1は、本実施形態の情報処理装置10の構成を示す。情報処理装置10は、複数のアイテムの中から、ユーザが選択する可能性が高いアイテムであって互いに類似性が低い複数のアイテムを優先して選択し、選択した複数のアイテムをユーザに推奨するアイテムの組として出力する。
【0009】
情報処理装置10は、例えば、サーバコンピュータであってよく、アイテムとして商品又はサービスの情報をデータベース等から取得し、当該商品等の情報を購入又は表示対象として選択可能なアイテムとしてユーザの端末に供給する。情報処理装置10は、スコア算出部102と、特徴ベクトル取得部104と、選択部106と、出力部108とを備える。
【0010】
スコア算出部102は、ユーザが過去にアイテムを選択した履歴に基づいて各アイテムのスコアを算出する。例えば、スコア算出部102は、過去にアイテムの提示したことに応じて当該アイテムが選択された割合に基づいてアイテムのスコアを算出する。スコア算出部102は、算出したアイテムのスコアを選択部106に供給する。
【0011】
特徴ベクトル取得部104は、複数のアイテムのそれぞれについて、アイテムの特徴を表す特徴ベクトルを取得する。例えば、特徴ベクトル取得部104は、商品又はサービスのカテゴリー等を表す特徴ベクトルを取得する。特徴ベクトル取得部104は、取得した複数のアイテムの特徴ベクトルを選択部106に供給する。
【0012】
選択部106は、アイテムのスコア及び特徴ベクトルに基づいて、複数のアイテムのそれぞれについて、アイテム自体のスコアが高い場合に高く、他に選択されるアイテムに対する類似度が高い場合に低くなる優先度を算出し、当該優先度に基づいて複数のアイテムの中からアイテムの組を選択する。例えば、選択部106は、Determinantial Point Process(DPP)を用いて優先度を算出して、アイテムの組を選択してよい。選択部106は、選択したアイテムの組を出力部108に供給する。
【0013】
出力部108は、選択したアイテムの組に含まれる各アイテムを、ユーザに提示すべきアイテムとして出力する。例えば、出力部108は、ユーザに提示すべきアイテムの情報をユーザの端末に供給する。
【0014】
このように情報処理装置10は、複数のアイテムの中からユーザに選択される可能性が高いだけでなく、互いに類似しない複数のアイテムをユーザに推奨するアイテムの組として選択して出力する。これにより、情報処理装置10によれば、多様性のあるアイテムの組をユーザに提示することができる。
【0015】
図2は、本実施形態の情報処理装置10による処理フローを示す。本実施形態では、情報処理装置10は、S110〜S200までの処理を実行することにより、DPPを使用してユーザに提示するアイテムの組を出力する。本実施形態において、情報処理装置10は、ユーザの端末に対してアイテムの組の情報を出力するサーバコンピュータである。
【0016】
S110において、スコア算出部102は、複数のアイテムについてアイテムのスコアを算出する。例えば、まず、スコア算出部102は、情報処理装置10の内部又は外部のデータベースから、情報処理装置10が提示の対象とするn個の対象アイテムの中から、ユーザに過去に選択肢として提示されたアイテム、及び、提示に応じてユーザに選択されたアイテムの履歴を取得する。nは3以上の自然数であってよい。
【0017】
一例として、スコア算出部102は、ユーザに選択されたアイテムの履歴として、ユーザが過去に購入したアイテム、又は、ユーザが過去に情報を表示したアイテムを取得してよい。
【0018】
次に、スコア算出部102は、n個のアイテムのうちi番目のアイテムiがユーザに提示された数を、提示の後にアイテムiがユーザに選択された数で除することにより、当該アイテムiが選択される割合を算出する。スコア算出部102は、算出した割合を当該アイテムのスコアqとしてよい。例えば、n個のアイテムのうち3番目のアイテム3がユーザに4回提示され、うち2回選択されていた場合、スコア算出部102はスコアqとして0.5を算出してよい。
【0019】
これにより、スコア算出部102は、アイテムが過去に選択された実績をアイテムのスコアに反映させることができる。なお、「アイテムがユーザに提示された数」及び「提示の後にユーザに選択された数」における「ユーザ」は、情報処理装置10を操作するユーザのみであってよく、または、他のユーザを含む複数のユーザを含んでもよい。
【0020】
更に、スコア算出部102は、Upper Confidence Boundに基づくアイテムのスコアq(UCB)iを算出してよい。例えば、スコア算出部102は、
(UCB)i=q+(2logm/m1/2
により、スコアq(UCB)iを算出する。なお、mは当該アイテムを提示した回数を示し、mを全アイテムの提示回数の合計を示す。これにより、スコア算出部102は、提示された実績が少ないアイテムに対して高いスコアを与えることが可能となるので、アイテムが過去に選択された実績に加えて、アイテムが選択される将来の可能性をアイテムのスコアに反映させることができる。
【0021】
ここで、あるアイテムiについて選択された履歴が存在しない場合、スコア算出部102は、スコアqを予め定められた値、例えば非常に大きな数(一例として、スコア算出部102をJava(登録商標)により実装する場合はDouble.MAX_VALUEを用いてよく、Pythonにより実装する場合はnumpy.infを用いてよい)としてよい。スコア算出部102は、q又はq(UCB)iのいずれかを選択部106に供給する。
【0022】
次に、S120において、特徴ベクトル取得部104は、n個のアイテムの特徴ベクトルを取得する。例えば、特徴ベクトル取得部104は、1≦i≦nとなるn個のアイテムiについて、商品又はサービスのカテゴリー、種類、生産者、生産地域、販売開始日、売れ行き、重さ、大きさ、価格、及び、色等の商品及びサービスの特徴をベクトルで表した特徴ベクトルΦを取得する。特徴ベクトル取得部104は、取得したn個の特徴ベクトルを選択部106に供給する。
【0023】
次に、S130において、選択部106は、一のアイテムと他のアイテムとの間の類似度を一のアイテムに対応する行及び他のアイテムに対応する列の成分とし、複数のアイテム間の類似度を示す行列Sを生成する。
【0024】
例えば、まず、選択部106は、2以上のアイテムのそれぞれの特徴ベクトルに基づいて、2以上のアイテムの類似度を算出する。一例として、選択部106は、アイテムiの特徴ベクトルΦとアイテムjの特徴ベクトルΦから、数式(1)によりアイテムiとアイテムjの類似度Sijを算出する。なお、i及びjは、1≦i、j≦nを満たす自然数である。
【数1】
…数式(1)
次に、選択部106は、類似度Sijをi行目j列目の成分とするn×nの正方行列Sを生成する。
【0025】
次に、S140において、選択部106は、n個のアイテムのスコアq及び特徴ベクトルΦから行列Lを生成する。例えば、選択部106は、一のアイテムと他のアイテムに対応する行列Sの成分、一のアイテムのスコア、及び、他のアイテムのスコアを乗じた得た値に基づいて、一のアイテムに対応する行及び他のアイテムに対応する列の成分を有する行列Lを生成する。具体的には、選択部106は、i番目及びj番目のアイテムのスコアq、qj、及び行列Sのi行目j列目の成分Sijから、i行目j列目の成分Lijを数式(2)により算出してn×nの正方行列Lを生成する。
【数2】
…数式(2)
【0026】
次に、S150において、選択部106は、行列Lから固有ベクトルの集合Vを生成する。例えば、選択部106は、行列Lの固有ベクトル及び固有値をn個算出し、n個の固有ベクトルのうちk個の固有ベクトルを選択する。一例として、選択部106は、n個の固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成する。ここで、kは2以上n未満の自然数であり、情報処理装置10がユーザに提示するアイテムの数と対応する。
【0027】
次に、S160において、選択部106は、集合Vに基づいてn個のアイテムの中から1つのアイテムを選択する。例えば、選択部106は、n個のアイテム中のi番目のアイテムに対して数式(3)に示す優先度Pに対応する確率を割り当てて、当該割り当てた確率に基づいて1個のアイテムを選択する。ここで、選択部106は、1≦j≦nを満たすj番目のアイテムを選択したものとする。
【数3】
…数式(3)
なお、|V|は集合Vに含まれる固有ベクトルの数を示し、vは集合Vに含まれるm番目の固有ベクトルを示し、iは1≦i≦nの自然数であり、eは第i成分が1の単位ベクトルを示す。
【0028】
次に、S170において、選択部106は、集合Vから1つの任意のベクトルを削除する。更に、選択部106は、残りのベクトルのそれぞれを、第j成分が1の単位ベクトルeに直交する空間に射影して新しい集合Vとする。
【0029】
例えば、選択部106は、削除されなかった残りの全てのベクトルvに対して、v'=v−(v/w)wを算出して新しいベクトルv'を取得し、複数の新しいベクトルからなる集合Vを形成する。なお、wは削除したベクトルであり、vはベクトルvのj番目の成分であり、wは削除したベクトルwのj番目の成分である。なお、S170において、ベクトルを削除した後に集合Vが空集合になった場合は、新しい集合Vを生成する処理を省略する。
【0030】
次に、S180において、選択部106は、集合Vが空集合であるか否かを判断する。集合Vが空集合であると判断した場合は、選択部106は処理をS200に進め、そうでない場合は処理をS190に進める。
【0031】
S190において、選択部106は、新しい集合Vに含まれるベクトルを正規直交化する正規化処理を実行する。例えば、選択部106は、グラム・シュミット法等を用いて集合Vに含まれるベクトルを正規直交化し、正規直交化されたベクトルの組を新しい集合Vとする。その後、選択部106は処理をS160に進める。
【0032】
このように、選択部106は、S160〜S190の処理を集合Vが空集合になるまで繰り返すことにより、集合Vに基づいてn個のアイテムの中からk個のアイテムをアイテムの組として選択する。
【0033】
S200において、情報処理装置10は、ユーザに対して選択したアイテムを提示する。例えば、選択部106は、選択したアイテムの組を出力部108に供給し、出力部108は選択したアイテムの組に含まれる各アイテムを、ユーザに提示すべきアイテムとして出力する。一例として、出力部108は、ユーザの端末にアイテムの組に含まれるアイテムの情報を供給してよい。
【0034】
ここで、出力部108は、アイテムの組に含まれるアイテムのうちスコアの大きいものを他のアイテムに優先して出力してよい。例えば、出力部108は、ユーザの端末に対して、選択したアイテムのうちスコアの大きい一部のアイテムをユーザの端末に供給してよい。
【0035】
また、例えば、出力部108は、選択したアイテムにアイテムのスコアの情報を対応づけてユーザの端末に供給してよい。これに応じて、ユーザの端末は、スコアの大きいアイテムを他のアイテムよりも前面に表示し、又は、スコアの大きいアイテムを他のアイテムよりも大きく表示してよい。
【0036】
このように情報処理装置10によれば、複数のアイテムのスコア及び類似度に基づいて行列Lを生成し、行列Lに基づいて、アイテムの組を選択する。これにより、情報処理装置10は、スコアが高く互いに類似しない複数のアイテムを他のアイテムよりも高い確率で選択し、これをユーザに推奨するアイテムの組として出力する。これにより、情報処理装置10によれば、アイテムの選択にランダム性を持たせて同一のアイテムが毎回選択されることを防ぎつつ、多様性がありユーザが嗜好するアイテムの組をユーザに提示することができる。
【0037】
ここで、情報処理装置10は、S200の後に、S200で提示したアイテムからユーザが選択した結果を取得し、当該選択したアイテムに係る処理を実行してもよい。例えば、情報処理装置10は、ユーザの端末からユーザが選択したアイテムを取得し、ユーザが選択したアイテムをユーザが購入する処理を実行してよい。また、情報処理装置10は、ユーザに提示したアイテム及びユーザが選択したアイテムを記憶し、次回のS110の処理においてアイテムのスコアが更新されるようにしてもよい。
【0038】
図3は、本実施形態におけるアイテムのスコアの一例を示す。図示するように、スコア算出部102は、S110において6個のアイテム1〜6についてのスコアq〜qを算出する。
【0039】
図4は、本実施形態におけるアイテムの特徴ベクトルの一例を示す。図示するように、特徴ベクトル取得部104は6個のアイテム1〜6についての特徴ベクトルを取得する。例えば、特徴ベクトル取得部104は、アイテムの価格、及び、重さを0〜1の実数値に正規化し、アイテムの色におけるRGBの各成分をb〜1の実数値に正規化する。
【0040】
この結果、特徴ベクトル取得部104は、アイテム1に対して特徴ベクトルΦ=(1,0,1,b,b)を取得し、アイテム2に対して特徴ベクトルΦ=(1,0,b,1,b)を取得し、アイテム3に対して特徴ベクトルΦ=(1,0,b,b,1)を取得し、アイテム4に対して特徴ベクトルΦ=(0,1,1,b,b)を取得し、アイテム5に対して特徴ベクトルΦ=(0,1,b,1,b)を取得し、アイテム6に対して特徴ベクトルΦ=(0,1,b,b,1)を取得する。
【0041】
なお、特徴ベクトルの各成分には重みづけがされていてもよく、情報処理装置10は、重みづけ係数をユーザからのフィードバックの結果により決定してよい。例えば、情報処理装置10は、複数のアイテムをユーザに提示し、ユーザから複数のアイテム間の類似する度合を受け取り、当該類似する度合に応じて重みづけを決定してよい。一例として、情報処理装置は、ユーザから類似する度合が大きく/小さいと判断されたアイテム同士のS130の処理により計算される類似度が大きく/小さくなるように特徴ベクトルの重みづけを決定してよい。
【0042】
また、情報処理装置10は、重みづけ係数を、複数回処理を実行させた結果を参照して決定及び調整してよい。例えば、情報処理装置10は、複数の異なるパターンの重みづけ係数でアイテムの特徴ベクトルを取得し、ユーザに提示した結果ユーザが提示されたアイテムを選択する可能性が高かったパターンの重みづけ係数を信頼性の高い値として最終的に採用してよい。
【0043】
図5は、本実施形態の選択部106がS130において6個のアイテム1〜6に対して生成する行列Sの一例を示す。選択部106は、行列Sの各成分の値を、図4に示すアイテム1〜6の特徴ベクトルに基づいて算出する。例えば、選択部106は、b=0.5として、アイテム1の特徴ベクトルΦ(1,0,1,0.5,0.5)とアイテム5の特徴ベクトルΦ(0,1,1,0.5,1,0.5)からΦΦ/|Φ||Φ|を計算した1.25/2.5=0.5を、行列Sの1行目5列目の成分S15として得る。
【0044】
行列Sは、各アイテム間の類似度を示す。例えば、行列Sの1行目3列目の成分S13は0.9であり、行列Sの1行目5列目の成分S15は0.5である。これは、アイテム1の色違い製品であるアイテム3は、他のアイテム5よりもアイテム1に類似していることを示す。
【0045】
図6は、本実施形態の選択部106がS140において6個のアイテム1〜6に対して生成する行列Lの一例を示す。選択部106は、行列Sの各成分に対して成分に対応する2個のアイテムのスコアを乗じて行列Lを得る。例えば、選択部106は、アイテム1のスコアq=0.9、アイテム5のスコアq=0.8、及び、図5に示す行列Sの成分S15=0.5を乗じて、0.36を行列Lの1行目5列目の成分L15の値として得る。
【0046】
図7は、本実施形態の第1変形例における情報処理装置10の処理フローを示す。本変形例においては、情報処理装置10は、S210〜S290の処理を実行し、行列Lの代わりに行列Cを用いてアイテムの組を選択する。本変形例では図2に示す方法とは異なる態様でDPPを用いる。
【0047】
情報処理装置10は、S210及びS220の処理をS110及びS120と同様に実行してよい。
【0048】
S230において、選択部106は、1≦m≦nを満たすn個のアイテムのスコアq及び特徴ベクトルΦから数式(4)に基づいて、i行目j列目の(i,j)成分としてCijを有するd×dの正方行列Cを生成する。
【数4】
…数式(4)
ここで、dは特徴ベクトルΦの次元、すなわち特徴の数とする。図4に示す形態においてd=5となる。1≦i、j≦dを満たし、Φmi及びΦmjはそれぞれ特徴ベクトルΦのi番目及びj番目の成分を示す。
【0049】
次に、S240において、選択部106は、行列Cから固有ベクトルの集合Vを生成する。例えば、選択部106は、行列Cの固有ベクトル及び固有値をn個算出し、n個の固有ベクトルのうちk個の固有ベクトルを選択する。一例として、選択部106は、n個の固有ベクトルのうち対応する固有値が大きい固有ベクトルを優先的にk個選択することにより固有ベクトルの集合Vを生成する。ここで、kは、情報処理装置10が提示するアイテムの数に対応する2以上n未満の自然数である。
【0050】
次に、S250において、選択部106は、集合Vに基づいてn個のアイテムの中から1つのアイテムを選択する。例えば、選択部106は、n個のアイテム中のi番目のアイテムに対して数式(5)に示す優先度Pに対応する確率を割り当てて、当該割り当てた確率に基づいて1個のアイテムを選択する。ここで、選択部106は、1≦j≦nを満たすj番目のアイテムを選択したものとする。
【0051】
【数5】
…数式(5)
なお、iは1≦i≦nの自然数であり、|V|は集合Vに含まれる固有ベクトルの数を示し、vは集合Vに含まれるn番目の固有ベクトルを示す。
【0052】
次に、S260において、選択部106は、集合Vから任意の1つのベクトルwを削除する。更に、選択部106は、残りのベクトルvのそれぞれを数式(6)に基づいてベクトルv'に更新して新しい集合Vとする。なお、ベクトルを削除した後に集合Vが空集合になった場合は、新しい集合Vを生成する処理を省略する。
【数6】
…数式(6)
【0053】
次に、S270において、選択部106は、集合Vが空集合であるか否かを判断する。集合Vが空集合であると判断した場合は、選択部106は処理をS290に進め、そうでない場合は処理をS280に進める。
【0054】
S280において、選択部106は、新しい集合Vに含まれるベクトルを正規直交化する正規化処理を実行する。例えば、選択部106は、グラム・シュミット法等を用いて集合Vに含まれるベクトルを正規直交化し、正規直交化されたベクトルの組を新しい集合Vとする。ここで、選択部106は、グラム・シュミット法による正規直交化を実行するときに、集合Vから選択された任意の要素のベクトルv,wがvv=1及びvw=0を満たすように集合Vの要素のベクトルを変換する代わりに、集合Vの要素のベクトルv,wがvCv=1及びvCw=0を満たすように集合Vの要素のベクトルを変換する。例えば、選択部106は、通常のグラム・シュミット法でvwを計算する部分を全てvCwに置き換えることにより、当該処理を実行してよい。その後、選択部106は処理をS250に進める。
【0055】
このように、選択部106は、S250〜S280の処理を集合Vが空集合になるまで繰り返すことにより、集合Vに基づいてn個のアイテムの中からk個のアイテムをアイテムの組として選択する。
【0056】
S290において、情報処理装置10は、S200と同様の処理を実行する。
【0057】
このように情報処理装置10によれば、複数のアイテムのスコア及び特徴ベクトルに基づいて行列Cを生成し、行列Cに基づいてアイテムの組を選択する。これにより、情報処理装置10によれば、アイテムの選択にランダム性を持たせて同一のアイテムが毎回選択されることを防ぎつつ、多様性がありユーザが嗜好するアイテムの組をユーザに提示することができる。
【0058】
図8は、本実施形態の第1変形例における情報処理装置10の処理フローを示す。本変形例においては、情報処理装置10は、S310〜S350の処理を実行してn個のアイテムの集合から2個のアイテムを含むアイテムの組を選択する。
【0059】
情報処理装置10は、S310及びS320の処理をS110及びS120と同様に実行してよい。
【0060】
S330において、選択部106は、n個のアイテムのスコアq及び特徴ベクトルΦから行列Mを生成する。
【0061】
まず、選択部106は、S130と同様にn個のアイテムのスコアq及び特徴ベクトルΦから行列Sを生成する。次に、選択部106は、n個のアイテムのスコアq及び行列Sのi行目j列目の成分Sijから、i行目j列目の成分Mijを数式(7)により算出してn×nの正方行列Mを生成する。
【数7】
…数式(7)
ここで、nは3以上の自然数であり、1≦i、j≦nを満たし、行列S[a,b;c,d]は行列Sのa及びb行目とc及びd列目を抽出した部分行列を示し、det(S)は行列Sの行列式を示す。
【0062】
次に、S340において、選択部106は、行列Mのうち成分Mijが大きさに応じてi番目及びj番目のアイテムをアイテムの組のとして選択する。例えば、選択部106は、行列Mの最も大きい成分である成分Mijからi番目及びj番目のアイテムを選択してよい。また、例えば、選択部106は、成分Mijの大きさに応じた確率でi番目及びj番目のアイテムを選択してよい。
【0063】
S350において、情報処理装置10は、S200と同様の処理を実行する。
【0064】
このように情報処理装置10によれば、複数のアイテムのスコア及び特徴ベクトルに基づいて行列Mを生成し、行列Mに基づいてアイテムの組を選択する。これにより、情報処理装置10によれば、アイテムの選択にランダム性を持たせて同一のアイテムが毎回選択されることを防ぎつつ、多様性がありユーザが嗜好するアイテムの組をユーザに提示することができる。
【0065】
図9は、S330において本実施形態の選択部106が6個のアイテム1〜6に対して生成する行列Mの一例を示す。選択部106は、行列Sの部分行列の行列式の成分に対して、各成分に対応する2個のアイテムのスコアを乗じて行列Mを得る。例えば、選択部106は、図5に示す行列Sのうちアイテム2とアイテム3に対応する部分行列S[2,3;2,3]の行列式を1×1−0.9×0.9=0.19と算出する。次に、選択部106は、算出した値0.19に、アイテム2のスコア0.7の2乗及びアイテム3のスコア0.9の2乗を乗じて0.075を算出し、これを行列Mの2行目3列目の成分M2_3とする。
【0066】
本実施形態及び変形例では、情報処理装置10がユーザ端末に選択したアイテムの情報を供給するサーバコンピュータである場合について説明した。これに代えて、情報処理装置10は、ラップトップコンピュータ、デスクトップコンピュータ、携帯情報端末、又は、携帯電話端末等から選択されるユーザ端末であってよい。この場合、情報処理装置10の出力部108は、表示画面等に選択したアイテムの組に関する情報を表示してよい。
【0067】
図10は、情報処理装置10として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
【0068】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。
【0069】
グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを表示部114から取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0070】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。
【0071】
また、通信インターフェイスは、情報処理装置10における通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0072】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。
【0073】
フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0074】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0075】
コンピュータ1900にインストールされ、コンピュータ1900を情報処理装置10として機能させるプログラムは、スコア算出モジュールと、特徴ベクトル取得モジュールと、選択モジュールと、出力モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、スコア算出部102と、特徴ベクトル取得部104と、選択部106と、出力部108としてそれぞれ機能させてよい。
【0076】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるスコア算出部102と、特徴ベクトル取得部104と、選択部106と、出力部108として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置10が構築される。
【0077】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。
【0078】
通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。
【0079】
このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0080】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。
【0081】
そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【0082】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0083】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0084】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0085】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0086】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0087】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0088】
10 情報処理装置、102 スコア算出部、104 特徴ベクトル取得部、106 選択部、108 出力部、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD−ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD−ROM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10