【文献】
市田 良夫,ユーザーの興味推移モデルに基づいた作品推薦システム,電気学会研究会資料,日本,社団法人電気学会,1998年11月 5日,45−50ページ
【文献】
中西 崇文,楽曲メディアデータと画像メディアデータ間における連想検索方式,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2004年 7月 6日,Vol.104 No.176,127−132ページ
(58)【調査した分野】(Int.Cl.,DB名)
複数の第1項目にそれぞれ関連づけられた値が要素である第1特徴ベクトルと、複数の第2項目にそれぞれ関連づけられた値が要素である第2特徴ベクトルとの組を含む教師データを複数取得する教師データ取得部と、
前記教師データ取得部が取得した複数の前記第1特徴ベクトル内の同一の前記第1項目に関連づけられた要素と、複数の前記第2特徴ベクトル内の同一の前記第2項目に関連づけられた要素とに基づいて、前記第1特徴ベクトルと前記第2特徴ベクトルとの相関関係にかかる相関モデル行列の各要素を算出する算出部と、
第1特徴ベクトルを含む入力情報を取得する入力情報取得部と、
前記算出部が算出した相関モデル行列と前記入力情報取得部が取得した前記第1特徴ベクトルとに基づいて算出した第2特徴ベクトルを出力する出力部と
を備える情報処理装置。
複数の第1項目にそれぞれ関連づけられた値が要素である第1特徴ベクトルと、複数の第2項目にそれぞれ関連づけられた値が要素である第2特徴ベクトルとの組を含む教師データを複数取得する教師データ取得部と、
前記第1特徴ベクトルの要素を複数の組に分割する分割部と、
前記分割部が分割した組ごとに、前記第1特徴ベクトルの要素を正規化する正規化部と
正規化を行なった複数の前記第1特徴ベクトル内の同一の前記第1項目に関連づけられた要素と、複数の前記第2特徴ベクトル内の同一の前記第2項目に関連づけられた要素とに基づいて、前記第1特徴ベクトルと前記第2特徴ベクトルとの相関関係にかかる相関モデル行列の各要素を算出する算出部と
を備える情報処理装置。
複数の第1項目にそれぞれ関連づけられた値が要素である複数の副第1特徴ベクトルを含む第1特徴ベクトルと、複数の第2項目にそれぞれ関連づけられた値が要素である第2特徴ベクトルとの組を含む教師データを複数取得する教師データ取得部と、
前記教師データ取得部が取得した複数の前記副第1特徴ベクトル内の同一の前記第1項目に関連づけられた要素と、複数の前記第2特徴ベクトル内の同一の前記第2項目に関連づけられた要素とに基づいて、前記副第1特徴ベクトルと前記第2特徴ベクトルとの相関関係にかかる前記副相関モデル行列の各要素を算出する算出部と
を備える請求項7または請求項8に記載の情報処理装置。
複数の第1項目にそれぞれ関連づけられた値が要素である第1特徴ベクトルと、複数の第2項目にそれぞれ関連づけられた値が要素である第2特徴ベクトルとの組を含む教師データを複数取得し、
取得した複数の前記第1特徴ベクトル内の同一の前記第1項目に関連づけられた要素と、複数の前記第2特徴ベクトル内の同一の前記第2項目に関連づけられた要素とに基づいて、前記第1特徴ベクトルと前記第2特徴ベクトルとの相関関係にかかる相関モデル行列の各要素を(1)式に基づいて算出する
処理をコンピュータに実行させるプログラム。
複数の第1項目にそれぞれ関連づけられた値が要素である第1特徴ベクトルと、複数の第2項目にそれぞれ関連づけられた値が要素である第2特徴ベクトルとの組を含む教師データを複数取得し、
取得した複数の前記第1特徴ベクトル内の同一の前記第1項目に関連づけられた要素と、複数の前記第2特徴ベクトル内の同一の前記第2項目に関連づけられた要素とに基づいて、前記第1特徴ベクトルと前記第2特徴ベクトルとの相関関係にかかる相関モデル行列の各要素を(1)式に基づいて算出する
処理をコンピュータに実行させる情報処理方法。
【発明を実施するための形態】
【0010】
[実施の形態1]
図1は、情報処理システム10の概要を示す説明図である。
図1の上側は、相関モデルの作成段階を示す。多数のクライアント30からサーバ20に対して、第1情報と第2情報とを含む教師データが送られる。
【0011】
第1情報は、比較的取得しやすいデータである。本実施の形態においては、第1情報は各クライアント30を使用するユーザによるWEB(World Wide Web)の閲覧履歴である。第2情報は、第1情報に比べて取得しにくいデータである。本実施の形態においては、第2情報は各クライアント30を使用するユーザのネットショッピングによる購入履歴である。
【0012】
第1情報および第2情報は、それぞれ1次元配列である特徴ベクトルで表現される。多数の教師データに基づいて、第1情報の特徴ベクトルと第2情報の特徴ベクトルとの相関を示す相関モデルが作成される。相関モデルは2次元マトリクス構造である。特徴ベクトルおよび相関モデルの詳細については後述する。
【0013】
図1の下側は、作成した相関モデルを用いて第2情報の傾向を推定する段階を示す。相関モデルの作成後、第Rクライアント30Rからサーバ20に対して第1情報が送られる。第1情報は、第Rクライアント30RのユーザのWEBの閲覧履歴を示す。相関モデルと第1情報の特徴ベクトルとの積により、第2情報の特徴ベクトルが算出される。算出された特徴ベクトルは、第1情報に対応する第2情報の傾向、すなわち、第Rクライアント30Rのユーザの、商品の購入傾向の推定を示す。
【0014】
この推定に基づいて、たとえば、第Rクライアント30Rに「おすすめ商品」の広告等を表示することにより、高い広告効果を得ることができる。また、この推定を、ユーザがWEB検索を行った際の検索結果の表示順位に反映させることにより、ユーザの望む検索結果を表示することができる。
【0015】
なお、本実施の形態の第1情報と第2情報とはそれぞれ例示である。特徴ベクトルにより表現可能な任意の情報を、第1情報および第2情報に使用することが可能である。
【0016】
図2は、相関モデル作成の概要を示す説明図である。
図2の右側は、N組の教師データを示す。1組の教師データは、L個の要素を有する第1特徴ベクトルxと、M個の要素を有する第2特徴ベクトルyとを含む。なお、第1特徴ベクトルxおよび第2特徴ベクトルyは、それぞれ正規化されている。正規化の方法については、後述する。
【0017】
N個の第1特徴ベクトルxにより、L行N列の二次元マトリクス型の第1特徴行列Xが構成される。第1特徴行列Xの要素x
PQは、Q番目の第1特徴ベクトルxのP番目の要素である。第1特徴ベクトルxと同じ順番に配置したN個の第2特徴ベクトルyにより、M行N列の二次元マトリクス型の第2特徴行列Yが構成される。第2特徴行列Yの要素y
PQ は、Q番目の第2特徴ベクトルyのP番目の要素である。
【0018】
第1特徴行列Xと第2特徴行列Yとに基づいて、M行L列の二次元マトリクス型のデータ構造を有する相関モデル行列Tが算出される。相関モデル行列TのJ行I列の要素t
JIは、第1特徴行列XのI番目の行と第2特徴行列YのJ番目の行とに基づいて、(1)式により算出される。
【0020】
ここで中間行列SのJ行I列の要素S
JIは、第1特徴行列XのI番目の行と第2特徴行列YのJ番目の行とに基づいて、(2)式により算出される。
【0022】
すなわち、相関モデル行列Tの要素t
JIおよび中間行列Sの要素S
JIは、N個の第1特徴ベクトルxのI番目の要素と、N個の第2特徴ベクトルyのJ番目の要素とに基づいて、算出される。定数α、定数βおよび定数qについては後述する。
【0023】
相関モデル行列Tに、新たに取得した第1特徴ベクトルxを右から掛けることにより、第1特徴ベクトルxに対応する第2特徴ベクトルyを算出することができる。ここで、第2特徴ベクトルyのP番目の要素y
Pは、(3)式により示すことができる。
【0025】
(3)式より、x
kとy
Pとの間に正の相関がある場合、すなわち、x
kが大きい場合にy
Pも大きい傾向がある場合には、t
Pkは大きい値である。x
kとy
Pとの間に負の相関がある場合、すなわち、x
kが大きい場合にy
Pが小さい傾向がある場合には、t
Pkは小さい値である。x
kとy
Pとの間の相関が小さい場合、すなわち、xkの大小がy
Pにほとんど影響しない場合には、t
Pkはゼロに近い値である。
【0026】
以上のように、相関モデル行列Tを使用することにより、比較的取得しやすい第1情報に基づいて、第2情報の傾向を算出することが可能である。相関モデル行列Tは、回帰分析等に比べて少ない計算量により算出できる。
【0027】
特徴ベクトルの正規化の必要性について、第1特徴ベクトルxを例にして説明する。前述のとおり、本実施の形態における第1特徴ベクトルxはWEBの閲覧履歴の特徴、すなわち、どのような特徴を有するWEBサイトを閲覧したかを示す。
【0028】
WEBサイトの閲覧頻度が高いユーザと、WEBサイトの閲覧頻度が低いユーザとの第1特徴ベクトルxをそのまま使用して相関モデル行列Tを算出する場合には、閲覧頻度が高いユーザによる影響が大きくなる。ユーザごとに第1特徴ベクトルxを正規化してから相関モデル行列Tを算出することにより、閲覧頻度の低いユーザの情報も相関モデル行列に反映させることが可能である。
【0029】
以下の説明では、正規化前の特徴ベクトルを特徴ベクトルVで示す。(4)式により、特徴ベクトルVを正規化した特徴ベクトルWのi番目の要素w
iを得ることができる。
【0031】
pノルムは、1ノルムが最適である場合が多い。しかし、2ノルム、最大値ノルムなどの任意のノルムを使用することも可能である。
【0032】
v
iの値域が定まっている場合には、(4)式の代わりに(5)式を使用することが可能である。
【0034】
(5)式を使用する場合、たとえば第1特徴行列Xを構成するそれぞれの特徴ベクトルxを、共通の定数Cにより正規化できる。
【0035】
たとえば、重要顧客の影響を相関行列Tに強く反映させたい場合には、(4)式の代わりに(6)式を使用することが可能である。
【0037】
たとえば、一般顧客の特徴ベクトルを正規化する場合にはDに1を使用し、重要顧客の特徴ベクトルを正規化する場合にはDに2を使用することにより、重要顧客の影響を一般顧客の2倍に重み付けすることができる。
【0038】
(2)式の定数qは、2を使用することが望ましい。正規化した第1特徴ベクトルxおよび第2特徴ベクトルyの各要素の大小関係が明確である場合には、定数qに1を使用できる。累乗および累乗根の計算を行わないので、計算量を削減できる。
【0039】
(1)式および(2)式の定数αは、第1特徴ベクトルxの要素の基準値である。(1)式および(2)式の定数βは、第2特徴ベクトルyの基準値である。基準値があらかじめ定まっている場合には、その基準値を定数αおよび定数βに使用することができる。
【0040】
定数αには、第1特徴行列Xの要素の平均値、中央値、再頻値、またはこれらの値を適宜丸めた基準値を使用することが可能である。第1特徴行列Xの要素の値域が定まっている場合には、値域の中央値を定数αに使用しても良い。同様に、定数βには、第2特徴行列Yの要素の平均値、中央値、再頻値等を使用することが可能である。定数αおよび定数βはゼロでも良い。定数αと定数βとは、同一の方法で定めても、異なる方法で定めても良い。なお、(1)式と(2)式とでは共通の定数αおよび定数βを使用する。
【0041】
第1特徴行列Xの行ごとに、要素の値の分布が大きく異なる場合には、行ごとに定数αを定めることが望ましい。同様に、第2特徴行列Yの行ごとに、要素の値の分布が大きく異なる場合には、行ごとに定数βを定めることが望ましい。定数αおよび定数βの双方を行ごとに定める場合には、相関モデル行列TのJ行I列の要素t
JIは、(7)式および(8)式により算出される。
【0043】
α
Iには、第1特徴行列Xの第I行の要素の平均値、中央値、再頻値、またはこれらの値を適宜丸めた基準値を使用することが可能である。β
Jには、第2特徴行列Yの第J行の要素の平均値、中央値、再頻値、またはこれらの値を適宜丸めた基準値を使用することが可能である。
【0044】
図3は、情報処理システム10の構成を示す説明図である。本実施の形態の情報処理システム10は、ネットワークを介して接続されたサーバ20と複数のクライアント30とを備える。
【0045】
サーバ20は、サーバCPU(Central Processing Unit)21、主記憶装置22、補助記憶装置23、通信部24、およびバスを備える。サーバCPU21は、本実施の形態のプログラムを実行する演算制御装置である。サーバCPU21には、一または複数のCPUまたはマルチコアCPU等が使用される。サーバCPU21は、バスを介してサーバ20を構成するハードウェア各部と接続されている。
【0046】
主記憶装置22は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置22には、サーバCPU21が行う処理の途中で必要な情報およびサーバCPU21で実行中のプログラムが一時的に保存される。
【0047】
補助記憶装置23は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置23には、サーバCPU21に実行させるプログラム、第1特徴量DB(Database)41、第2特徴量DB42およびプログラムの実行に必要な各種データが保存される。なお、第1特徴量DB41および第2特徴量DB42は、サーバ20に接続された外部の大容量記憶装置等に保存されていても良い。
【0048】
通信部24は、サーバ20とネットワークとの間の通信を行うインターフェイスである。
【0049】
本実施の形態のサーバ20は、汎用のパーソナルコンピュータまたは大型計算機等の情報処理装置である。サーバ20は、大型計算機上で動作する仮想マシンでも良い。
【0050】
クライアント30は、クライアントCPU31、主記憶装置32、補助記憶装置33、通信部34、表示部35、入力部36およびバスを備える。クライアントCPU31は、本実施の形態のプログラムを実行する演算制御装置である。クライアントCPU31には、一または複数のCPUまたはマルチコアCPU等が使用される。クライアントCPU31は、バスを介してクライアント30を構成するハードウェア各部と接続されている。
【0051】
主記憶装置32は、SRAM、DRAM、フラッシュメモリ等の記憶装置である。主記憶装置32には、クライアントCPU31が行う処理の途中で必要な情報およびクライアントCPU31で実行中のプログラムが一時的に保存される。
【0052】
補助記憶装置33は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置33には、第1情報DB46、第2情報DB47、クライアントCPU31に実行させるプログラム、およびプログラムの実行に必要な各種データが保存される。なお、第1情報DB46および第2情報DB47は、クライアント30に接続された外部の大容量記憶装置等に保存されていても良い。
【0053】
通信部34は、クライアント30とネットワークとの間の通信を行うインターフェイスである。
【0054】
入力部36は、たとえばキーボードおよびマウス等である。表示部35は、たとえば液晶表示パネル等である。入力部36と表示部35とは、一体となっていわゆるタッチパネルを構成しても良い。
【0055】
本実施の形態のクライアント30は、汎用のパーソナルコンピュータ、大型計算機、タブレットまたはスマートフォン等の情報処理装置である。クライアント30は、大型計算機上で動作する仮想マシンでも良い。
【0056】
図4は、第1特徴量DB41のレコードレイアウトを示す説明図である。第1特徴量DB41は、第1情報と特徴量ベクトルとを関連づけて記録するDBである。本実施の形態においては、第1情報はユーザがアクセスしたWEBサイトのURL(Uniform ResourceLocator)である。
【0057】
第1特徴量DB41は、情報フィールド、および、特徴量ベクトルフィールドを有する。特徴量ベクトルフィールドは、所定の第1項目に対応するフィールドを有する。本実施の形態においては、第1項目は「春物」、「靴」、「パーティ」、「ハイキング」、「雪」等の単語である。特徴ベクトルフィールドは、春物フィールド、靴フィールド、パーティフィールド、ハイキングフィールドおよび雪フィールド等、第1項目に対応するサブフィールドを有する。
【0058】
情報フィールドには、第1情報、すなわちWEBサイトのURLが記録されている。特徴量ベクトルフィールドの各サブフィールドには、WEBサイト内での、「春物」、「靴」等の各キーワードの登場回数が記録されている。たとえば、春物ファッションに関するWEBサイトであれば、春物フィールドおよび靴フィールド等に大きな数値が記録される。一方、スキーに関するWEBサイトであれば、雪フィールド等に大きな数値が記録される。
【0059】
すなわち、特徴量ベクトルフィールドには、情報フィールドに記録されたWEBサイトの特徴を、登場する単語の頻度に基づいて示す特徴量ベクトルが記録される。第1特徴量DB41は、一つのURLについて一つのレコードを有する。
【0060】
なお、
図4に示す第1特徴量DB41は例示である。第1特徴量DB41は、第1特徴ベクトルxに対応する構成を有する。
【0061】
図5は、第2特徴量DB42のレコードレイアウトを示す説明図である。第2特徴量DB42は、第2情報と特徴量ベクトルとを関連づけて記録するDBである。本実施の形態においては、第2情報はユーザがネットショッピングで購入した商品である。
【0062】
第2特徴量DB42は、情報フィールドおよび特徴量ベクトルフィールドを有する。特徴量ベクトルフィールドは、所定の第2項目に対応するフィールドを有する。本実施の形態においては、第2項目は「食物」、「飲み物」、「酒」、「衣料」、「本」等の商品に関するキーワードである。特徴量ベクトルフィールドは、食物フィールド、飲み物フィールド、酒フィールド、衣料フィールドおよび本フィールド等、第2項目に対応するサブフィールドを有する。
【0063】
情報フィールドには、第2情報、すなわち商品が記録されている。特徴量ベクトルフィールドの各サブフィールドには、各商品に関連するキーワードに該当するか否かが記録されている。たとえば、書籍Aがレシピ本である場合には、食物フィールドおよび本フィールドに、該当することを示す「1」が、酒フィールド等には非該当であることを示す「0」が記録される。
【0064】
すなわち、特徴量ベクトルフィールドには、情報フィールドに記録された商品の特徴を、キーワードへの該非に基づいて示す特徴量ベクトルが記録される。第2特徴量DB42は、一つの商品について一つのレコードを有する。
【0065】
なお、
図5に示す第2特徴量DB42は例示である。第2特徴量DB42は、第2特徴ベクトルyに対応する構成を有する。
【0066】
図6は、第1情報DB46のレコードレイアウトを示す説明図である。第1情報DB46は、第1情報を記録するDBである。第1情報DB46は、情報フィールドを有する。情報フィールドには、第1情報、すなわちユーザがアクセスしたWEBサイトのURLが記録される。第1情報DBは、一つの第1情報について、一つのレコードを有する。
【0067】
図7は、第2情報DB47のレコードレイアウトを示す説明図である。第2情報DB47は、第2情報を記録するDBである。第2情報DB47は、情報フィールドを有する。情報フィールドには、第2情報、すなわちユーザが購入した商品が記録される。第2情報DB47は、一つの第2情報について、一つのレコードを有する。
【0068】
図8は、プログラムの処理の流れを示すフローチャートである。
図8に示すプログラムは、
図1の上側に示す相関モデルの作成処理を行う。サーバCPU21は、カウンタNを初期値1に設定する(ステップS501)。サーバCPU21は、N番目のクライアント30のクライアントCPU31に対して、第1情報および第2情報の送信を要求する(ステップS502)。
【0069】
クライアントCPU31は、要求を受信する(ステップS601)。クライアントCPU31は、第1情報DB46に記録された第1情報および第2情報DB47に記録された第2情報を送信する(ステップS602)。
【0070】
サーバCPU21は、第1情報および第2情報を受信して、主記憶装置22または補助記憶装置23に一時的に記録する(ステップS504)。サーバCPU21は、ステップS504で記録した情報から、第1情報を抽出する(ステップS505)。
【0071】
サーバCPU21は、抽出した第1情報を引数に使用して、特徴ベクトル作成のサブルーチンを起動する(ステップS506)。特徴ベクトル作成のサブルーチンは、入力された引数の特徴を表す特徴ベクトルを作成するサブルーチンである。特徴ベクトル作成のサブルーチンの処理の流れは後述する。
【0072】
サーバCPU21は、ステップS504で記録した情報から、第2情報を抽出する(ステップS507)。サーバCPU21は、抽出した第2情報を引数に使用して、特徴ベクトル作成のサブルーチンを起動する(ステップS508)。ステップS508で起動する特徴ベクトル作成のサブルーチンは、ステップS506で起動したサブルーチンと同一のサブルーチンである。
【0073】
サーバCPU21は、所定のクライアント30の処理を終了したか否かを判定する(ステップS509)。終了していないと判定した場合(ステップS509でNO)、サーバCPU21はカウンタNに1を加算する(ステップS510)。サーバCPU21は、ステップS502に戻る。
【0074】
終了したと判定した場合(ステップS509でYES)、サーバCPU21は、相関モデル行列作成のサブルーチンを起動する(ステップS511)。相関モデル行列作成のサブルーチンは、複数のペアの特徴ベクトルに基づいて、相関モデル行列を作成するサブルーチンである。相関モデル行列作成のサブルーチンの処理の流れは後述する。
【0075】
図9は、特徴ベクトル作成のサブルーチンの処理の流れを示すフローチャートである。特徴ベクトル作成のサブルーチンは、入力された引数の特徴を表す特徴ベクトルを作成するサブルーチンである。以下の説明では第1情報DB46に記録された第1情報が引数である場合を例にして説明を行う。
【0076】
サーバCPU21は、ベクトルVを各要素がゼロのゼロベクトルに初期化する(ステップS520)。サーバCPU21は、カウンタKを初期値1に設定する(ステップS521)。
【0077】
サーバCPU21は、K番目の第1情報をキーとして対応する特徴量DBである第1特徴量DB41の情報フィールドを検索してレコードを抽出し、特徴量ベクトルフィールドに記録された特徴量ベクトルF(K)を取得する(ステップS522)。
【0078】
サーバCPU21は、ベクトルVにステップS522で取得した特徴量ベクトルF(K)を加算する(ステップS523)。なお、ベクトルの加算は、各要素同士の加算により行う。サーバCPU21は、すべての引数の処理を終了したか否かを判定する(ステップS524)。終了していないと判定した場合(ステップS524でNO)、サーバCPU21はカウンタKに1を加算する(ステップS525)。サーバCPU21は、ステップS522に戻る。
【0079】
終了したと判定した場合(ステップS524でYES)、サーバCPU21は正規化のサブルーチンを起動する(ステップS526)。正規化のサブルーチンは、特徴ベクトルを正規化するサブルーチンである。正規化のサブルーチンの処理の流れは後述する。
【0080】
図10は、正規化のサブルーチンの処理の流れを示すフローチャートである。サーバCPU21は、カウンタIを初期値1に設定する(ステップS551)。サーバCPU21はベクトルVのpノルム||V||
pを算出する(ステップS552)。
【0081】
サーバCPU21は、前述の(4)式に基づいて正規化後のベクトルWのI番目の要素w
Iを算出する(ステップS553)。サーバCPU21は、ベクトルVの要素の処理を終了したか否かを判定する(ステップS554)。終了していないと判定した場合(ステップS554でNO)、サーバCPU21はカウンタIに1を加算する(ステップS555)。サーバCPU21はステップS553に戻る。終了したと判定した場合(ステップS554でYES)、サーバCPU21は処理を終了する。
【0082】
図11は、相関モデル行列作成のサブルーチンの処理の流れを示すフローチャートである。相関モデル行列作成のサブルーチンは、複数のペアの特徴ベクトルに基づいて、相関モデル行列を作成するサブルーチンである。
【0083】
サーバCPU21は、カウンタIを初期値1に設定する(ステップS531)。サーバCPU21は、カウンタJを初期値1に設定する(ステップS532)。サーバCPU21は、第1特徴ベクトルxの基準値である定数αの値を決定する(ステップS533)。サーバCPU21は、第2特徴ベクトルyの基準値である定数βの値を決定する(ステップS534)。
【0084】
なお、あらかじめ定められた基準値が補助記憶装置23に記憶されている場合には、サーバCPU21はステップS533およびステップS534において補助記憶装置23から定数αおよび定数βを取得する。第1特徴行列Xの要素から所定の方法により算出した基準値を定数αに使用する場合には、サーバCPU21はステップS533で定数αを算出する。第2特徴行列Yの要素から所定の方法により算出した基準値を定数βに使用する場合には、サーバCPU21はステップS534で定数βを算出する。
【0085】
サーバCPU21は、前述の(2)式に基づいて中間行列SのJ行I列の要素s
JIを算出する(ステップS535)。サーバCPU21は、前述の(1)式に基づいて相関モデル行列TのJ行I列の要素t
JIを算出する(ステップS536)。
【0086】
サーバCPU21は、第2特徴行列Yの最終行の処理を終了したか否かを判定する(ステップS537)。終了していないと判定した場合(ステップS537でNO)、サーバCPU21はカウンタJに1を加算する(ステップS538)。サーバCPU21はステップS533に戻る。
【0087】
終了したと判定した場合(ステップS537でYES)、サーバCPU21は、第1特徴行列Xの最終行の処理を終了したか否かを判定する(ステップS539)。終了していないと判定した場合(ステップS539でNO)、サーバCPU21はカウンタIに1を加算する(ステップS540)。サーバCPU21はステップS532に戻る。終了したと判定した場合(ステップS539でYES)、サーバCPU21は処理を終了する。
【0088】
なお、定数αを第1特徴行列Xの行ごとに定め、定数βを第2特徴行列Yの行ごとに定める場合には、サーバCPU21はステップS535において前述の(8)式を使用し、ステップS536において前述の(7)式を使用する。
【0089】
図12は、プログラムの処理の流れを示すフローチャートである。
図12に示すプログラムは、
図1の下側に示す第2情報の傾向を推定する処理を行う。
【0090】
第Rクライアント30RのクライアントCPU31Rは、サーバCPU21に対して第1情報を送信する(ステップS611)。サーバCPU21は、第1情報を受信する(ステップS561)。サーバCPU21は、
図9を使用して説明した特徴ベクトル作成のサブルーチンを起動する(ステップS562)。サーバCPU21は、
図8を使用して説明したプログラムにより作成した相関モデル行列TにステップS562で作成した第1特徴ベクトルxを右から掛けることにより、第2特徴ベクトルyを算出する(ステップS563)。本実施の形態においては、第2特徴ベクトルyは第Rクライアント30Rのユーザの商品の購入傾向の推定を示す。
【0091】
サーバCPU21は、算出した第2特徴ベクトルyに基づいて出力を作成する(ステップS564)。サーバCPU21は、おすすめ商品の広告等を表示する出力を作成する。サーバCPU21は、作成した出力を第Rクライアント30Rに送信する(ステップS565)。
【0092】
第Rクライアント30RのクライアントCPU31Rは、出力を受信して、表示する(ステップS612)。その後、クライアントCPU31Rは処理を終了する。
【0093】
なお、サーバCPU21は、ステップS563で算出した第2特徴ベクトルyを蓄積して、統計的に解析する等の処理を行っても良い。
【0094】
本実施の形態によると、少ない計算量で傾向の推定を行える情報処理システム10を提供できる。本実施の形態によると、比較的取得しやすい第1情報に基づいて、第2情報の傾向を出力する情報処理システム10を提供できる。
【0095】
本実施の形態によると、第1特徴量DB41および第2特徴量DB42を適宜変更することにより、様々な情報の傾向の推定を行える、汎用性の高い情報処理システム10を提供できる。
【0096】
[実施の形態2]
本実施の形態は、クライアント30で第1特徴ベクトルxと第2特徴ベクトルyを作成する情報処理システム10に関する。実施の形態1と共通する部分については、説明を省略する。なお、本実施の形態においては、個々のクライアント30の補助記憶装置33、または、クライアントCPU31が随時アクセス可能な記憶装置に、第1特徴量DB41および第2特徴量DB42の複製が記憶されている。以後の説明では、第1特徴量DB41および第2特徴量DB42の複製も第1特徴量DB41および第2特徴量DB42と記載する。
【0097】
図13は、実施の形態2のクライアント30が実行するプログラムの処理の流れを示すフローチャートである。クライアントCPU31は、第1特徴ベクトルxを各要素がゼロのゼロベクトルに初期化する(ステップS621)。クライアントCPU31は、第2特徴ベクトルyを各要素がゼロのゼロベクトルに初期化する(ステップS622)。
【0098】
クライアントCPU31は、第1情報を取得したか否かを判定する(ステップS623)。第1情報は、たとえばクライアント30のユーザがアクセスしたWEBサイトのURLである。第1情報を取得したと判定した場合(ステップS623でYES)、クライアントCPU31は取得した第1情報をキーとして第1特徴量DB41を検索して、特徴量ベクトルを取得する(ステップS624)。
【0099】
クライアントCPU31は、第1特徴ベクトルxにステップS624で取得した特徴量ベクトルを加算する(ステップS625)。なお、ベクトルの加算は対応する要素同士の加算により行う。
【0100】
ステップS625の終了後、または、第1情報を取得していないと判定した場合(ステップS623でNO)、クライアントCPU31は、第2情報を取得したか否かを判定する(ステップS626)。第2情報は、たとえばクライアント30のユーザがネットショッピングにより購入した商品に関する情報である。
【0101】
第2情報を取得したと判定した場合(ステップS626でYES)、クライアントCPU31は取得した第2情報をキーとして第2特徴量DB42を検索して、特徴量ベクトルを取得する(ステップS627)。クライアントCPU31は、第2特徴ベクトルyにステップS627で取得した特徴量ベクトルを加算する(ステップS628)。
【0102】
第2情報を取得していないと判定した場合(ステップS626でNO)、または、ステップS628の終了後、クライアントCPU31は、第1情報および第2情報の取得を終了するか否かを判定する(ステップS629)。たとえば、所定の期間が経過した場合、所定の数の第1情報および第2情報を取得した場合、ユーザから終了の指示を受け付けた場合、またはサーバCPU21からの情報の要求を受け付けた場合等に、クライアントCPU31は取得を終了すると判定する。
【0103】
終了しないと判定した場合(ステップS629でNO)、クライアントCPU31はステップS623に戻る。終了すると判定した場合(ステップS629でYES)、クライアントCPU31は第1特徴ベクトルxを引数にして正規化のサブルーチンを起動する(ステップS630)。正規化のサブルーチンは、
図10を使用して説明したサブルーチンと同一のサブルーチンである。クライアントCPU31は、正規化後の第1特徴ベクトルxを補助記憶装置33に記録する。
【0104】
クライアントCPU31は第2特徴ベクトルyを引数にして正規化のサブルーチンを起動する(ステップS631)。正規化のサブルーチンは、
図10を使用して説明したサブルーチンと同一のサブルーチンである。クライアントCPU31は、正規化後の第2特徴ベクトルyを補助記憶装置33に記録する。クライアントCPU31は、その後処理を終了する。
【0105】
図14は、実施の形態2のプログラムの処理の流れを示すフローチャートである。
図14に示すプログラムは、
図1の上側に示す相関モデルの作成処理を行う。サーバCPU21は、カウンタNを初期値1に設定する(ステップS571)。サーバCPU21は、N番目のクライアント30のクライアントCPU31に対して、第1特徴ベクトルxおよび第2特徴ベクトルyの送信を要求する(ステップS572)。
【0106】
クライアントCPU31は、要求を受信する(ステップS641)。クライアントCPU31は、補助記憶装置33に記録された第1特徴ベクトルxおよび第2特徴ベクトルyを送信する(ステップS642)。サーバCPU21は、第1特徴ベクトルxおよび第2特徴ベクトルyを受信して、主記憶装置22または補助記憶装置23に一時的に記録する(ステップS574)。
【0107】
サーバCPU21は、所定のクライアント30の処理を終了したか否かを判定する(ステップS575)。終了していないと判定した場合(ステップS575でNO)、サーバCPU21はカウンタNに1を加算する(ステップS576)。サーバCPU21は、ステップS572に戻る。
【0108】
終了したと判定した場合(ステップS575でYES)、サーバCPU21は、相関モデル行列作成のサブルーチンを起動する(ステップS577)。相関モデル行列作成のサブルーチンは、
図11を使用して説明したサブルーチンと同一のサブルーチンである。その後、サーバCPU21は処理を終了する。
【0109】
本実施の形態によると、クライアントCPU31は正規化した第1特徴ベクトルxおよび第2特徴ベクトルyを出力するので、ネットワークの負荷がおよびサーバCPU21の負荷が少ない情報処理システム10を提供できる。本実施の形態によると、第1情報および第2情報に個人情報等の秘匿性が高い情報が含まれる場合であっても、漏洩を防止できる情報処理システム10を提供できる。
【0110】
[実施の形態3]
本実施の形態は、第1情報または第2情報を複数のブロックに分けて、重み付けを行う情報処理システム10に関する。実施の形態1と共通する部分については、説明を省略する。
【0111】
図15は、特徴量ベクトルの項目例を示す説明図である。
図15に示す項目例は、第1特徴量DB41または第2特徴量DB42のサブフィールドの項目名の一例である。
図15を使用して、重み付けの必要性について説明する。
【0112】
項目は、属性ブロック、嗜好ブロックおよび閲覧履歴ブロックの3つのブロックに分かれている。属性ブロックには、性別、年齢、職業等の属性を示す項目が含まれる。たとえば、性別は男性が1、女性が2で示される。年齢は、10代が1、20代が2、30代が3等で示される。職業は、会社員が1、自営業が2等で示される。
【0113】
嗜好ブロックには、グルメ、スポーツ等の嗜好を示す項目が含まれる。嗜好は、たとえばアンケート調査等により収集される。各項目は、「興味あり」が0、「興味なし」が1で示される。閲覧履歴ブロックは、
図4を説明した実施の形態1の特徴量ベクトルの各項目と同様に、WEBサイト中のキーワードを示す項目を含む。
【0114】
特徴量ベクトルは、
図15に示すように、それぞれ所定のルールで数値化した様々な首里の項目を一つのベクトルにまとめて表現することができる。しかしながら、項目のデータの値域は大きく異なる場合がある。そのような場合に、たとえば
図10を使用して説明した正規化のサブルーチンにより正規化を行うと、値域の広い項目の影響が強くなり、値域の狭い項目の影響が十分に反映されないおそれがある。
【0115】
一方、特定の項目の影響を重視したい場合もある。本実施の形態においては、ブロックごとに項目に重み付けを行うことにより、それぞれの項目の影響を適切に反映した相関モデル行列Tを作成する。
【0116】
図16は、重みDBのレコードレイアウトを示す説明図である。重みDBは、ブロック名と重みとを関連づけて記録するDBである。重みDBは、ブロックフィールドと重みフィールドとを有する。ブロックフィールドには、
図15を使用して説明したブロックの名前が記録されている。重みフィールドには、ブロックごとの重み付け係数が記録されている。
【0117】
図17は、実施の形態3の正規化のサブルーチンの処理の流れを示すフローチャートである。
図17に示すサブルーチンは、
図10を使用して説明したサブルーチンの代わりに使用するサブルーチンである。以下の説明では、サーバCPU21が実行する場合を例にして正規化のサブルーチンの処理の流れを説明するが、実施の形態2のステップS630のようにクライアントCPU31が本サブルーチンを実行しても良い。
【0118】
サーバCPU21は、カウンタJを初期値1に設定する(ステップS701)。カウンタIを初期値1に設定する(ステップS702)。サーバCPU21はベクトルVのI番目のグループのノルムを算出する(ステップS703)。サーバCPU21は、ブロック名をキーとして重みDBを検索し、重みを取得する(ステップS704)。
【0119】
サーバCPU21は、特徴ベクトルのJ番目の要素の値を、ステップS703で算出したノルムで除して正規化後のJ番目の要素を算出する(ステップS705)。サーバCPU21は、算出した要素にステップS704で取得した重みを積算する(ステップS706)。サーバCPU21は、I番目のブロックの処理を終了したか否かを判定する(ステップS707)。
【0120】
終了していないと判定した場合(ステップS707でNO)、サーバCPU21はカウンタJに1を加算する(ステップS708)。サーバCPU21は、ステップS705に戻る。終了したと判定した場合(ステップS707でYES)、サーバCPU21は特徴ベクトルのすべての要素の処理を終了したか否かを判定する(ステップS709)。
【0121】
終了していないと判定した場合(ステップS709でNO)、サーバCPU21はカウンタIに1を加算する(ステップS710)。サーバCPU21は、ステップS703に戻る。終了したと判定した場合(ステップS709でYES)、サーバCPU21は処理を終了する。
【0122】
本実施の形態によると、特徴ベクトルの各要素の影響度合いを適宜調整可能な情報処理システム10を提供できる。
【0123】
相関モデル行列Tを作成する場合に、
図17を使用して説明した正規化のサブルーチンを使用し、相関モデル行列Tを用いて第2特徴ベクトルyの傾向を算出する際には
図10を使用して説明した正規化のサブルーチンを使用しても良い。相関モデル行列Tを作成する場合に、
図10を使用して説明した正規化のサブルーチンを使用し、相関モデル行列Tを用いて第2特徴ベクトルyの傾向を算出する際には
図17を使用して説明した正規化のサブルーチンを使用しても良い。
【0124】
[実施の形態4]
本実施の形態は、追加で取得した第1特徴ベクトルxおよび第2特徴ベクトルyの組を、既存の相関モデル行列Tに反映させる情報処理システム10に関する。実施の形態2と共通する部分については、説明を省略する。
【0125】
図18は、実施の形態4のプログラムの処理の流れを示すフローチャートである。
図18に示すプログラムは、N組の教師データに基づいて相関モデル行列Tを作成した後に、N+1番目の教師データを追加するプログラムである。
図18に示すプログラムが起動する前に、N組の教師データに基づいて作成された相関モデル行列T、中間行列S、第1特徴号列X、第2特徴行列Y、定数αおよび定数βがサーバ20の補助記憶装置23に記録されている。
【0126】
なお、以下の説明ではN組の教師データに基づいて作成された相関モデル行列TのJ行I列の要素をt
IJoldと記載する。同様に、N組の教師データに基づいて作成された中間行列SのJ行I列の要素をs
IJoldと記載する。
【0127】
サーバCPU21は、相関モデル行列Tを取得する(ステップS721)。サーバCPU21は、中間行列Sを取得する(ステップS722)。サーバCPU21は、N+1番目のクライアント30のクライアントCPU31に対して、追加する第1特徴ベクトルxおよび第2特徴ベクトルyの送信を要求する(ステップS723)。
【0128】
クライアントCPU31は、要求を受信する(ステップS651)。クライアントCPU31は、補助記憶装置33に記録された第1特徴ベクトルxおよび第2特徴ベクトルyを送信する(ステップS652)。サーバCPU21は、第1特徴ベクトルxおよび第2特徴ベクトルyを受信して、第1特徴行列Xおよび第2特徴行列YのN+1番目の列に記録する(ステップS724)。
【0129】
サーバCPU21は、カウンタIを初期値1に設定する(ステップS725)。カウンタJを初期値1に設定する(ステップS726)。サーバCPU21はカウンタIおよびカウンタJに対応する定数αおよび定数βを取得する(ステップS727)。サーバCPU21は、(9)式に基づいて新たな相関モデル行列TのJ行I列の要素t
JINEWを算出する(ステップS728)。
【0131】
サーバCPU21は、第2特徴行列Yの最終行の処理を終了したか否かを判定する(ステップS729)。終了していないと判定した場合(ステップS729でNO)、サーバCPU21はカウンタJに1を加算する(ステップS730)。サーバCPU21はステップS727に戻る。
【0132】
終了したと判定した場合(ステップS729でYES)、サーバCPU21は、第1特徴行列Xの最終行の処理を終了したか否かを判定する(ステップS731)。終了していないと判定した場合(ステップS731でNO)、サーバCPU21はカウンタIに1を加算する(ステップS732)。サーバCPU21はステップS726に戻る。
【0133】
終了したと判定した場合(ステップS731でYES)、サーバCPU21中間行列修正のサブルーチンを起動する(ステップS733)。中間行列修正のサブルーチンは、N+1個の教師データに基づいて新たな中間行列Sを作製するサブルーチンである。
【0134】
図19は、中間行列作成のサブルーチンの処理の流れを示すフローチャートである。サーバCPU21は、カウンタIを初期値1に設定する(ステップS741)。サーバCPU21は、カウンタJを初期値1に設定する(ステップS742)。サーバCPU21は、第1特徴ベクトルxの基準値である定数αの値を決定する(ステップS743)。サーバCPU21は、第2特徴ベクトルyの基準値である定数βの値を決定する(ステップS744)。
【0135】
サーバCPU21は、(10)式に基づいて中間行列SのJ行I列の要素s
JINEWを算出する(ステップS745)。
【0137】
サーバCPU21は、第2特徴行列Yの最終行の処理を終了したか否かを判定する(ステップS746)。終了していないと判定した場合(ステップS746でNO)、サーバCPU21はカウンタJに1を加算する(ステップS747)。サーバCPU21はステップS743に戻る。
【0138】
終了したと判定した場合(ステップS746でYES)、サーバCPU21は、第1特徴行列Xの最終行の処理を終了したか否かを判定する(ステップS748)。終了していないと判定した場合(ステップS748でNO)、サーバCPU21はカウンタIに1を加算する(ステップS749)。サーバCPU21はステップS742に戻る。終了したと判定した場合(ステップS748でYES)、サーバCPU21は処理を終了する。
【0139】
本実施の形態によると、追加で取得した教師データに基づいて相関モデル行列Tを修正可能な情報処理システム10を提供できる。少ない教師データで運用を開始し、運用しながら教師データを追加して相関モデル行列Tの精度を高めることが可能である。
【0140】
本実施の形態によると、修正した相関モデル行列Tを使用ながら、サーバCPU21の負荷の少ない時間に中間行列作成のサブルーチンを実行して、中間行列Sを更新する情報処理システム10を提供できる。
【0141】
[実施の形態5]
本実施の形態は、教師データの一部を削除して、相関モデル行列Tを修正する情報処理システム10に関する。実施の形態2と共通する部分については、説明を省略する。
図20は、実施の形態5の処理の概要を説明する説明図である。実施の形態5の処理の概要を説明する説明図である。
【0142】
図20は、3番目の教師データを削除する場合を示す。第1特徴行列Xおよび第2特徴行列Yから、3列目の要素を削除する。4列目以降の要素の添え字が、一つずつ繰り上がる。第1特徴行列XはL行(N−1)列の行列に、第2特徴行列YはM行(N−1)列の行列になる。相関モデル行列Tおよび中間行列Sは、(N−1)組の教師行列に基づいて算出される。
【0143】
図21は、実施の形態5のプログラムの処理の流れを示すフローチャートである。
図21に示すプログラムは、N組の教師データに基づいて相関モデル行列Tを作成した後に、一組の教師データを追加するプログラムである。
図21に示すプログラムが起動する前に、N組の教師データに基づいて作成された相関モデル行列T、中間行列S、第1特徴号列X、第2特徴行列Y、定数αおよび定数βがサーバ20の補助記憶装置23に記録されている。
【0144】
なお、以下の説明ではN組の教師データに基づいて作成された相関モデル行列TのJ行I列の要素をt
IJoldと記載する。同様に、N組の教師データに基づいて作成された中間行列SのJ行I列の要素とs
IJoldと記載する。
【0145】
サーバCPU21は、相関モデル行列Tを取得する(ステップS761)。サーバCPU21は、中間行列Sを取得する(ステップS762)。サーバCPU21は、削除する教師データの番号を取得する(ステップS763)。以下の説明では、ステップS763で取得した番号をhで示す。
【0146】
サーバCPU21は、カウンタIを初期値1に設定する(ステップS764)。カウンタJを初期値1に設定する(ステップS765)。サーバCPU21はカウンタIおよびカウンタJに対応する定数αを決定する(ステップS766)。サーバCPU21はカウンタIおよびカウンタJに対応する定数βを取得する(ステップS767)。
【0147】
定数αおよび定数βは、教師データを削除する前の値を使用しても良いし、削除後の教師データに基づいて新たに算出しても良い。なお、定数αおよび定数βを新たに算出する場合には、サーバCPU21は計算した定数αおよび定数βを補助記憶装置23に記憶する。
【0148】
サーバCPU21は、(11)式に基づいて新たな相関モデル行列TのJ行I列の要素t
JINEWを算出する(ステップS768)。
【0150】
サーバCPU21は、第2特徴行列Yの最終行の処理を終了したか否かを判定する(ステップS769)。終了していないと判定した場合(ステップS769でNO)、サーバCPU21はカウンタJに1を加算する(ステップS770)。サーバCPU21はステップS766に戻る。
【0151】
終了したと判定した場合(ステップS769でYES)、サーバCPU21は、第1特徴行列Xの最終行の処理を終了したか否かを判定する(ステップS771)。終了していないと判定した場合(ステップS771でNO)、サーバCPU21はカウンタIに1を加算する(ステップS772)。サーバCPU21はステップS765に戻る。
【0152】
終了したと判定した場合(ステップS771でYES)、サーバCPU21はデータ修正のサブルーチンを起動する(ステップS773)。データ修正のサブルーチンは、中間行列S、第1特徴号列Xおよび第2特徴行列Yを修正するサブルーチンである。データ修正のサブルーチンの処理の流れは後述する。サーバCPU21は処理を終了する。
【0153】
図22は、データ修正のサブルーチンの処理の流れを示すフローチャートである。サーバCPU21は、第1特徴行列Xから第h列のデータを削除する(ステップS781)。サーバCPU21は、第2特徴行列Yから第h列のデータを削除する(ステップS782)。
【0154】
サーバCPU21は、カウンタIを初期値1に設定する(ステップS783)。カウンタJを初期値1に設定する(ステップS784)。サーバCPU21はカウンタIおよびカウンタJに対応する定数αおよび定数βを取得する(ステップS785)。サーバCPU21は、(12)式に基づいて新たな中間行列SのJ行I列の要素S
JIを算出する(ステップS786)。
【0156】
サーバCPU21は、第2特徴行列Yの最終行の処理を終了したか否かを判定する(ステップS787)。終了していないと判定した場合(ステップS787でNO)、サーバCPU21はカウンタJに1を加算する(ステップS788)。サーバCPU21はステップS785に戻る。
【0157】
終了したと判定した場合(ステップS787でYES)、サーバCPU21は、第1特徴行列Xの最終行の処理を終了したか否かを判定する(ステップS789)。終了していないと判定した場合(ステップS789でNO)、サーバCPU21はカウンタIに1を加算する(ステップS790)。サーバCPU21はステップS784に戻る。終了したと判定した場合(ステップS789でYES)、サーバCPU21は処理を終了する。
【0158】
本実施の形態によると、修正した相関モデル行列Tを使用ながら、サーバCPU21の負荷の少ない時間に中間行列作成のサブルーチンを実行して、中間行列Sを更新する情報処理システム10を提供できる。
【0159】
本実施の形態と、実施の形態4とを組み合わせることにより、古い教師データの削除と新しい教師データの追加とを行い、相関モデル行列Tを逐次更新する情報処理システム10を提供できる。
【0160】
本実施の形態によると、一部の教師データを削除可能な情報処理システム10を提供できる。なんらかの事情で不適切であることが判明した教師データを削除することにより、推定の精度を高めることができる情報処理システム10を提供できる。
【0161】
本実施の形態によると、修正した相関モデル行列Tを使用ながら、サーバCPU21の負荷の少ない時間にデータ修正のサブルーチンを実行して、中間行列S等を更新する情報処理システム10を提供できる。
【0162】
[実施の形態6]
図23は、実施の形態6のサーバ20の機能ブロック図である。本実施の形態のサーバ20は、サーバCPU21がプログラムを実行することで、教師データ取得部81と、算出部82とを備える情報処理装置として機能する。
【0163】
教師データ取得部81は、第1特徴ベクトルxと第2特徴ベクトルyとの組を含む教師データを複数個取得する。算出部82は、教師データ取得部81が取得した複数の第1特徴ベクトルx内の同一番号の要素と、複数の第2特徴ベクトルy内の同一番号の要素とに基づいて、第1特徴ベクトルxと第2特徴ベクトルyとの相関関係にかかる相関モデル行列Tの各要素を算出する。
【0164】
[実施の形態7]
本実施の形態は、汎用のサーバコンピュータ94と、クライアントコンピュータ95と、プログラム92とを組み合わせて動作させることにより、本実施の形態の情報処理システム10を実現する形態に関する。
図24は、実施の形態7の情報処理システム10の構成を示す説明図である。
図24を使用して、本実施の形態の構成を説明する。なお、実施の形態1と共通する部分の説明は省略する。
【0165】
サーバコンピュータ94は、サーバCPU21、主記憶装置22、補助記憶装置23、通信部24、読取部27およびバスを備える。サーバコンピュータ94は、汎用のパーソナルコンピュータ、または、大型計算機等である。
【0166】
読取部27は、可搬型記録媒体91を読み取る装置であり、具体的にはたとえばSD(Secure Digital)カードスロット、光学ディスクドライブまたはUSB(Universal Serial Bus)ポート等である。
【0167】
プログラム92は、可搬型記録媒体91に記録されている。サーバCPU21は、読取部27を介してプログラム92を読み込み、補助記憶装置23に保存する。またサーバCPU21は、サーバコンピュータ94内に実装されたフラッシュメモリ等の半導体メモリ93に記憶されたプログラム92を読出しても良い。さらに、サーバCPU21は、図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム92をダウンロードして補助記憶装置23に保存しても良い。
【0168】
プログラム92は、サーバコンピュータ94の制御プログラムとしてインストールされ、主記憶装置22にロードして実行される。これにより、サーバコンピュータ94は上述したサーバ20として機能する。
【0169】
サーバCPU21は、プログラム92のうちクライアントコンピュータ95により実行される部分を、ネットワークを介してクライアントコンピュータ95に送信する。クライアントCPU31は、ネットワークを介してプログラム92を読み込み、補助記憶装置33に保存する。
【0170】
プログラム92は、クライアントコンピュータ95の制御プログラムとしてインストールされ、主記憶装置32にロードして実行される。これにより、クライアントコンピュータ95は上述したクライアント30として機能する。
【0171】
[実施の形態8]
本実施の形態は、第1特徴ベクトルを複数の副第1特徴ベクトルに分けて、それぞれの副第1特徴ベクトルと、第2特徴ベクトルとに基づいて作成した副相関モデル行列を使用する情報処理システム10に関する。実施の形態1と共通する部分については、説明を省略する。
【0172】
本実施の形態においては、
図1を使用して説明した第1情報は、ネットショッピングWEBサイトにかかる情報であり、第2情報はそれぞれのWEBサイトの販売実績である。第Rクライアント30Rは、WEBサイトのデザインを行うデザイナが使用する情報処理装置である。WEBサイトには、説明文等の文字情報と、商品写真等の画像情報と、動画情報とが適宜レイアウトされる。第1情報は、文字情報にかかる部分、画像情報にかかる部分、および、動画情報にかかる部分に分けられ、それぞれの部分について相関モデル行列が算出される。
【0173】
第RクライアントCPU31Rは、デザイン中のWEBサイトにかかる情報または、WEBサイトの特徴量を、サーバCPU21に第1情報を送信する。サーバCPU21は、文字情報にかかる相関モデル行列と文字情報にかかる第1情報との積、画像情報にかかる相関モデル行列と画像情報にかかる第1情報との積、および、動画情報にかかる相関モデル行列と動画情報にかかる第1情報との積をそれぞれ算出し、線形結合して、第2情報の傾向の推定結果を算出する。サーバCPU21は、第RクライアントCPU31Rに推定結果を送信する。
【0174】
推定結果は、第Rクライアントの表示部35に表示される。デザイナは、推定結果を見て、デザインの修正等を行うことにより、販促効果の高いWEBサイトをデザインできる。
【0175】
図25は、実施の形態8の第1特徴量DB41のレコードレイアウトを示す説明図である。第1特徴量DB41は、第1情報と特徴量ベクトルとを関連づけて記録するDBである。本実施の形態においては、第1情報は第Rクライアント30Rを使用するユーザがデザイン中のWEBサイトのURLまたはソースファイル名である。
【0176】
第1特徴量DB41は、情報フィールド、および、特徴量ベクトルフィールドを有する。特徴量ベクトルフィールドは、文字特徴量ベクトルフィールド、画像特徴量ベクトルフィールドおよび動画特徴量ベクトルフィールドを有する。
【0177】
文字特徴量ベクトルフィールド、画像特徴量ベクトルフィールドおよび動画特徴量ベクトルフィールドは、それぞれ所定の第1項目に対応するフィールドを有する。本実施の形態においては、文字特徴量ベクトルフィールドの第1項目は「春物」、「靴」等の単語である。画像特徴量ベクトルフィールドの第1項目は「マフラー」、「ゆきだるま」等の、画像中に表示される事物を表す単語である。動画特徴量ベクトルフィールドの第1項目は「花吹雪」、「走る猫」等の、動画中に表示される事物を表す単語である。
【0178】
なお、画像特徴量ベクトルフィールドおよび動画特徴量ベクトルフィールドの第1項目は、HOG(Histograms of Oriented Gradients)特徴量、および、SIFT(Scaled Invariance Feature Transform)特徴量等の、画像または動画像を構成する各画素の輝度に基づいて算出した特徴量を示しても良い。動画特徴量ベクトルフィールドの第1項目は、動画とともに再生される音声の特徴量を示しても良い。音声の特徴量は、たとえば周波数解析を用いて定めることができる。
【0179】
本実施の形態の第2特徴量DB42、第1情報DB46および第2情報DB47は、
図5から
図7を使用して説明した実施の形態1の第2特徴量DB42、第1情報DB46および第2情報DB47と同様であるため、説明を省略する。
【0180】
図26は、実施の形態8の相関モデル作成の概要を示す説明図である。
図26の右側は、N組の教師データを示す。1組の教師データは、第1特徴ベクトルxと、M個の要素を有する第2特徴ベクトルyとを含む。第1特徴ベクトルxは、A個の要素を有する第1A副特徴ベクトルx
Aと、B個の要素を有する第1B副特徴ベクトルx
Bと、C個の要素を有する第1C副特徴ベクトルx
Cとを含む。第1A副特徴ベクトルx
A、第1B副特徴ベクトルx
B、第1C副特徴ベクトルx
Cおよび第2特徴ベクトルyは、それぞれ正規化されている。
【0181】
N個の第1特徴ベクトルxにより、(A+B+C)行N列の二次元マトリクス型の第1特徴行列Xが構成される。同様に、N個の第1A副特徴ベクトルx
Aにより、A行N列の二次元マトリクス型の第1A副特徴行列X
Aが構成される。N個の第1B副特徴ベクトルx
Bにより、B行N列の二次元マトリクス型の第1B副特徴行列X
Bが構成される。N個の第1C副特徴ベクトルx
Cにより、C行N列の二次元マトリクス型の第1C副特徴行列X
Cが構成される。
【0182】
第1特徴行列X、第1A副特徴行列X
A、第1B副特徴行列X
Bまたは第1C副特徴行列X
Cの要素x
PQは、Q番目の第1特徴ベクトルx、第1A副特徴ベクトルx
A、第1B副特徴ベクトルx
Bまたは、第1C副特徴ベクトルx
Cの、P番目の要素である。
【0183】
第1特徴ベクトルxと同じ順番に配置したN個の第2特徴ベクトルyにより、M行N列の二次元マトリクス型の第2特徴行列Yが構成される。第2特徴行列Yの要素y
PQは、Q番目の第2特徴ベクトルyのP番目の要素である。
【0184】
第1A副特徴行列X
Aと第2特徴行列Yとに基づいて、M行A列の二次元マトリクス型のデータ構造を有する第1副相関モデル行列T
Aが算出される。第1B副特徴行列X
Bと第2特徴行列Yとに基づいて、M行B列の二次元マトリクス型のデータ構造を有する第2副相関モデル行列T
Bが算出される。第1C副特徴行列X
Cと第2特徴行列Yとに基づいて、M行C列の二次元マトリクス型のデータ構造を有する第3副相関モデル行列T
Cが算出される。第1副相関モデル行列T
Aの要素ta
JI、第2副相関モデル行列T
Bの要素tb
JIおよび第3副相関モデル行列T
Cの要素tc
JIの算出式は、(1)式と同様である。
【0185】
なお、第1特徴ベクトルxは、2個または4個以上の副特徴ベクトルを有しても良い。第1特徴ベクトルが有する副特徴ベクトルと同じ数の副特徴行列および副相関モデル行列が形成される。以下の説明においては、n番目の副特徴ベクトルをx
n、n番目の副特徴行列をX
n、n番目の副相関モデル行列をT
nとそれぞれ記載する。
【0186】
(13)式に示すように、n番目の副相関モデル行列T
nに、新たに取得したn番目の第1副特徴ベクトルx
nを右から掛けて算出した副第2特徴ベクトルを線形加算することにより、第2特徴ベクトルyを算出できる。(14)式に示すように、線形加算の係数G
kの合計は1である。
【0188】
第2特徴ベクトルyのP番目の要素である副第2特徴ベクトルy
Pは、(15)式により算出される。
【0190】
ユーザは、G
nを適宜選択することにより、第1副特徴ベクトルx
n同士の重み付けを適宜選択できる。
【0191】
図27は、実施の形態8のクライアントに表示する画面の例を示す説明図である。
図27に示す画面は、対象入力欄51、係数入力欄52、結果欄54および終了ボタン55を有する。係数入力欄52には、スライダ53が表示されている。
【0192】
ユーザは、評価対象のWEBサイトのURLまたはソースファイル名を対象入力欄51に入力する。ユーザは、マウス操作等により係数入力欄52上の任意の位置にスライダ53を移動させることができる。クライアントCPU31は、係数入力欄52がスライダ53により分割された長さに基づいて、文字情報にかかる係数G
1、画像情報にかかる係数G
2、および、動画情報にかかる係数G
3を決定する。係数入力欄52全体の長さを1に設定することにより、(14)式を満たす係数G
nが決定される。
【0193】
なお、係数入力欄52は、係数G
nの入力を数値入力により受け付ける形式であっても良い。係数入力欄52は、任意の形式のユーザインターフェイスであっても良い。係数入力欄52は、本実施の形態の係数取得部の機能を果たす。
【0194】
クライアントCPU31は、評価対象のWEBサイトにかかる情報および係数G
nをサーバCPU21に送信する。サーバCPU21は、評価対象のWEBサイトを解析して、第1特徴ベクトルXを算出する。サーバCPU21は、(13)式および(15)式に基づいて第2特徴ベクトルyを算出する。
【0195】
サーバCPU21は、第2特徴ベクトルyを要素が大きい順にソートして、結果欄54にグラフ表示する。ユーザは、評価対象のWEBサイトを閲覧した顧客がどの商品を購入するかの予測結果を得ることができる。
【0196】
図28は、実施の形態8のプログラムの処理の流れを示すフローチャートである。
図28に示すプログラムは、
図26を使用して説明した副相関モデル行列の作成処理を行う。ステップS506およびステップS508で起動する特徴ベクトル作成のサブルーチンから起動する正規化のサブルーチンについては、後述する。本実施の形態の正規化のサブルーチンは、複数の副特徴ベクトルを含む特徴ベクトルを正規化するサブルーチンである。
【0197】
ステップS509まで、および、ステップS509でNOと判定した場合の処理は、正規化のサブルーチンを除いて
図8を使用して説明した実施の形態1のプログラムと同一であるため、説明を省略する。
【0198】
所定のクライアント30の処理を終了したと判定した場合(ステップS509でYES)、サーバCPU21は第1特徴行列Xから1つの第1副特徴行列を抽出する(ステップS751)。サーバCPU21は、相関モデル行列作成のサブルーチンを起動する(ステップS752)。相関モデル行列作成のサブルーチンは、
図11を使用して説明したサブルーチンと同一のサブルーチンである。
【0199】
サーバCPU21は、第1特徴行列に含まれる全第1副特徴行列の処理を終了したか否かを判定する(ステップS753)。終了していないと判定した場合(ステップS753でNO)、サーバCPU21はステップS751に戻る。終了したと判定した場合(ステップS753でYES)、サーバCPU21は処理を終了する。
【0200】
図29は、実施の形態8の正規化のサブルーチンの処理の流れを示すフローチャートである。本実施の形態の正規化のサブルーチンは、複数の副ベクトルV
nを含む正規化前の特徴ベクトルVを正規化するサブルーチンである。
【0201】
サーバCPU21は、カウンタIを初期値1に設定する(ステップS801)。サーバCPU21は、カウンタJを初期値1に設定する(ステップS802)。サーバCPU21はベクトルVに含まれるJ番目の副ベクトルV
Jのpノルム||V
J||
pを算出する(ステップS803)。
【0202】
サーバCPU21は、算出したノルムがゼロであるか否かを判定する。なお、ノルムがゼロである場合とは、正規化前の特徴ベクトルVのJ番目の副ベクトルV
Jのすべての要素がゼロである場合である。
図25を使用して説明した第1特徴量DB41の項目を例にして説明する。たとえば第1情報DB46に動画を含むWEBサイトの閲覧履歴が含まれない場合、動画特徴量にかかる3番目の副ベクトルV
3のpノルム||V
3||
pはゼロである。
【0203】
ノルムがゼロであると判定した場合(ステップS804でYES)、サーバCPU21は正規化後のベクトルWのI番目の要素w
Iはゼロであると記録する(ステップS805)。サーバCPU21は、J番目の副ベクトルV
Jの要素の処理を終了したか否かを判定する(ステップS806)。終了していないと判定した場合(ステップS806でNO)、サーバCPU21はカウンタIに1を加算する(ステップS807)。サーバCPU21はステップS805に戻る。
【0204】
ノルムがゼロではないと判定した場合(ステップS804でNO)、サーバCPU21は、前述の(4)式に基づいて正規化後のベクトルWのI番目の要素w
Iを算出する(ステップS811)。サーバCPU21は、ベクトルV
Jの要素の処理を終了したか否かを判定する(ステップS812)。終了していないと判定した場合(ステップS812でNO)、サーバCPU21はカウンタIに1を加算する(ステップS813)。サーバCPU21はステップS811に戻る。
【0205】
ベクトルV
Jの要素の処理を終了したと判定した場合(ステップS806でYES、または、ステップS812でYES)、サーバCPU21は処理を終了するか否かを判定する(ステップS821)。ここでサーバCPU21は、正規化前の特徴ベクトルVの全要素の処理を終了した場合に、処理を終了すると判定する。
【0206】
処理を終了しないと判定した場合(ステップS821でNO)、サーバCPU21はカウンタIに1を加算する(ステップS822)。サーバCPU21はカウンタJに1を加算する(ステップS823)。サーバCPU21はステップS803に戻る。処理を終了すると判定した場合(ステップS821でYES)、サーバCPU21は処理を終了する。
【0207】
なお、正規化前の特徴ベクトルVが副ベクトルを含まない場合、カウンタJが1である場合にステップS803においてサーバCPU21は正規化前の特徴ベクトルV全体のノルムを算出する。サーバCPUは、最初のステップS821で処理を終了すると判定する。
【0208】
図30は、実施の形態8のプログラムの処理の流れを示すフローチャートである。
図30に示すプログラムは、第1情報に基づいて第2情報の傾向を推定する処理を行う。
【0209】
第Rクライアント30RのクライアントCPU31Rは、サーバCPU21に対して第1情報を送信する(ステップS891)。クライアントCPU31Rは、係数Gの入力を受け付けて、サーバCPU21に対して送信する(ステップS892)。
【0210】
サーバCPU21は、第1情報を受信する(ステップS831)。サーバCPU21は、受信した第1情報を解析して、特徴量を算出する(ステップS832)。サーバCPU21は、正規化のサブルーチンを起動する(ステップS833)。正規化のサブルーチンは、
図29を使用して説明したサブルーチンと同一のサブルーチンである。以上の処理により、サーバCPU21は、受信した第1情報にかかる第1特徴ベクトルxの算出を完了する。
【0211】
サーバCPU21は、カウンタIを初期値1に設定する(ステップS834)。サーバCPU21は、第1特徴ベクトルからJ番目の副第1特徴ベクトルx
Jを抽出する(ステップS835)。サーバCPU21は、
図28を使用して説明したプログラムにより作成したJ番目の副相関モデル行列T
JにステップS585で抽出したJ番目の副第1特徴ベクトルx
Jを右から掛けることにより、J番目の副第2特徴ベクトルy
Jを算出する(ステップS836)。
【0212】
サーバCPU21は、処理を終了するか否かを判定する(ステップS837)。処理を終了しないと判定した場合(ステップS837でNO)、サーバCPU21はカウンタJに1を加算する(ステップS838)。サーバCPU21は、ステップS835に戻る。
【0213】
処理を終了すると判定した場合(ステップS837でYES)、サーバCPU21は係数Gを受信する(ステップS839)。サーバCPU21は、(13)に基づいてy
Jを線形加算することにより、第2特徴ベクトルyを算出する(ステップS840)。
【0214】
サーバCPU21は、算出した第2特徴ベクトルyに基づいて出力を作成する(ステップS842)。具体的にはサーバCPU21は、たとえば
図27を使用して説明した結果欄54を表示する出力を作成する。サーバCPU21は、作成した出力を第Rクライアント30Rに送信する(ステップS843)。
【0215】
第Rクライアント30RのクライアントCPU31Rは、出力を受信して、表示する(ステップS893)。クライアントCPU31Rは、処理を終了するか否かを判定する(ステップS894)。たとえば、クライアントCPU31Rは終了ボタン55の選択を受け付けた場合に、処理を終了すると判定する。
【0216】
処理を終了しないと判定した場合(ステップS894でNO)、クライアントCPU31RはステップS892に戻る。処理を終了すると判定した場合(ステップS894でYES)、クライアントCPU31Rは処理を終了する。
【0217】
本実施の形態によると、第1特徴ベクトルを構成する副第1情報ベクトルごとの重み付けを適宜変更できる情報処理システム10を提供できる。たとえば、ユーザは、文字特徴量ベクトルと、画像特徴量ベクトルと、動画特徴量ベクトルの重み付けを変えることにより、WEBサイトのどの構成要素を重点的に修正するかを検討できる。
【0218】
なお、クライアントCPU31Rが第1情報を解析して算出した特徴量を、ステップS891においてサーバCPU21に送信しても良い。このようにする場合、サーバCPU21はステップS832を省略する。クライアントCPU31Rで特徴量を算出し、第1情報自体をネットワークに送信しないことにより、情報流出にかかるセキュリティリスクを低減できる。
【0219】
[実施の形態9]
本実施の形態は、第1情報と係数Gとを適宜変更して、第2情報の算出を繰り返す情報処理システム10に関する。実施の形態8と共通する部分については、説明を省略する。
図31は、実施の形態9のプログラムの処理の流れを示すフローチャートである。
【0220】
第Rクライアント30RのクライアントCPU31Rは、サーバCPU21に対して第1情報および係数Gを送信する(ステップS491)。サーバCPU21は、第1情報を受信する(ステップS431)。サーバCPU21は、カウンタIを初期値1に設定する(ステップS432)。サーバCPU21は、ステップS431で受信した第1情報の第Jブロックに変更があるか否かを判定する(ステップS433)。
【0221】
具体例を挙げて説明する。本実施の形態においては、
図1を使用して説明した第1情報は、ネットショッピングWEBサイトにかかる情報である。WEBサイトには、説明文等の文字情報と、商品写真等の画像情報と、動画情報とが適宜レイアウトされる。たとえば、動画情報にかかる部分のみが変更された場合、クライアントCPU31Rは、第1ブロックおよび第2ブロックには変更がなく、第3ブロックに変更があると判定する。
【0222】
変更があると判定した場合(ステップS433でYES)、サーバCPU21は、受信した第1情報の第Jブロックを解析して、特徴量を算出する(ステップS434)。サーバCPU21は、正規化のサブルーチンを起動する(ステップS435)。正規化のサブルーチンは、
図10を使用して説明したサブルーチンと同一のサブルーチンである。
【0223】
サーバCPU21は、J番目の副相関モデル行列T
JにステップS435で正規化したJ番目の副第1特徴ベクトルx
Jを右から掛けることにより、J番目の副第2特徴ベクトルy
Jを算出する(ステップS436)。サーバCPU21は、算出した副第2特徴ベクトルy
Jを主記憶装置32または補助記憶装置33に保存する(ステップS437)。
【0224】
サーバCPU21は、処理を終了するか否かを判定する(ステップS438)。処理を終了しないと判定した場合(ステップS438でNO)、サーバCPU21はカウンタJに1を加算する(ステップS439)。サーバCPU21は、ステップS433に戻る。
【0225】
変更がないと判定した場合(ステップS433でNO)、または、処理を終了すると判定した場合(ステップS438でYES)、サーバCPU21は、(13)に基づいてy
Jを線形加算することにより、第2特徴ベクトルyを算出する(ステップS440)。
【0226】
サーバCPU21は、算出した第2特徴ベクトルyに基づいて出力を作成する(ステップS441)。具体的にはサーバCPU21は、たとえば
図27を使用して説明した結果欄54を表示する出力を作成する。サーバCPU21は、作成した出力を第Rクライアント30Rに送信する(ステップS442)。
【0227】
第Rクライアント30RのクライアントCPU31Rは、出力を受信して、表示する(ステップS492)。クライアントCPU31Rは、処理を終了するか否かを判定する(ステップS493)。たとえば、クライアントCPU31Rは終了ボタン55の選択を受け付けた場合に、処理を終了すると判定する。
【0228】
処理を終了しないと判定した場合(ステップS493でNO)、クライアントCPU31RはステップS491に戻る。処理を終了すると判定した場合(ステップS493でYES)、クライアントCPU31Rは処理を終了する。
【0229】
本実施の形態によると、第1情報および重み付けを適宜変更した場合に、短時間で結果を出力する情報処理システム10を提供できる。たとえば、ユーザは、WEBサイトのデザイン、および文字特徴量ベクトルと、画像特徴量ベクトルと、動画特徴量ベクトルの重み付けを変えることにより、効果的なWEBサイトのデザインを行える。
【0230】
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。