(57)【要約】【課題】精度を落とさずにマトリクスファクトライゼーションの分散処理を実行する。【解決手段】処理対象となる行列データを行および／もしくは列を基準に分割し、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、複数の情報処理装置に処理依頼を行う手段と、処理依頼を受けた情報処理装置において、分割された行列データに対応する予測値行列を潜在変数を含む２つの分解行列の積で表現した上で、収束演算を行って、分割された行列データに予測値行列が近似する分解行列を算出するとともに、特徴ベクトルを分解行列の行もしくは列の成分からなるベクトルに近似させる係数行列を算出する１次処理を行う手段と、処理依頼を行った情報処理装置において、分割された行列データ毎の分解行列および係数行列に基づいて行列データを補完した予測値行列を算出する２次処理を行う手段とを備える。【選択図】図４
2015001954.tif 000002
【特許請求の範囲】
【請求項１】
処理対象となる行列データを行および／もしくは列を基準に分割し、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、複数の情報処理装置に処理依頼を行う手段と、
処理依頼を受けた情報処理装置において、分割された行列データに対応する予測値行列を潜在変数を含む２つの分解行列の積で表現した上で、収束演算を行って、分割された行列データに予測値行列が近似する分解行列を算出するとともに、特徴ベクトルを分解行列の行もしくは列の成分からなるベクトルに近似させる係数行列を算出する１次処理を行う手段と、
処理依頼を行った情報処理装置において、分割された行列データ毎の分解行列および係数行列に基づいて行列データを補完した予測値行列を算出する２次処理を行う手段と
を備えたことを特徴とする情報処理システム。
【請求項２】
処理対象となる行列データを行および／もしくは列を基準に分割し、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、複数の情報処理装置に処理依頼を行う手段と、
処理依頼を受けた情報処理装置において、分割された行列データに対応する予測値行列を潜在変数を含む２つの分解行列の積で表現した上で、収束演算を行って、分割された行列データに予測値行列が近似する分解行列を算出するとともに、特徴ベクトルを分解行列の行もしくは列の成分からなるベクトルに近似させる係数行列を算出する１次処理を行う手段と、
処理依頼を受けた情報処理装置において、自装置に割り当てられた分割された行列データの分解行列および各装置で算出された係数行列に基づいて自装置に割り当てられた分割された行列データを補完した予測値行列を算出する２次処理を行う手段と
を備えたことを特徴とする情報処理システム。
【請求項３】
処理対象となる行列データを行および／もしくは列を基準に分割し、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、複数の情報処理装置に処理依頼を行う工程と、
処理依頼を受けた情報処理装置において、分割された行列データに対応する予測値行列を潜在変数を含む２つの分解行列の積で表現した上で、収束演算を行って、分割された行列データに予測値行列が近似する分解行列を算出するとともに、特徴ベクトルを分解行列の行もしくは列の成分からなるベクトルに近似させる係数行列を算出する１次処理を行う工程と、
処理依頼を行った情報処理装置において、分割された行列データ毎の分解行列および係数行列に基づいて行列データを補完した予測値行列を算出する２次処理を行う工程と
を備えたことを特徴とする情報処理方法。
【請求項４】
処理対象となる行列データを行および／もしくは列を基準に分割し、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、複数の情報処理装置に処理依頼を行う工程と、
処理依頼を受けた情報処理装置において、分割された行列データに対応する予測値行列を潜在変数を含む２つの分解行列の積で表現した上で、収束演算を行って、分割された行列データに予測値行列が近似する分解行列を算出するとともに、特徴ベクトルを分解行列の行もしくは列の成分からなるベクトルに近似させる係数行列を算出する１次処理を行う工程と、
処理依頼を受けた情報処理装置において、自装置に割り当てられた分割された行列データの分解行列および各装置で算出された係数行列に基づいて自装置に割り当てられた分割された行列データを補完した予測値行列を算出する２次処理を行う工程と
を備えたことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、欠落のある不完全なデータを補完する技術に関する。
【背景技術】
【０００２】
インターネット上の広告提供を例にとると、ユーザとコンテンツ（広告内容）の組み合わせに対して広告のクリックしやすさを示すＣＴＲ（Click Through Rate）を対応付けた行列データに基づき、特定のユーザに提供するコンテンツ（最もＣＴＲの高いコンテンツ）を選択する技術が知られている（例えば、特許文献１等を参照。）。ＣＴＲは、ユーザの過去の行動実績に基づいて設定される。
【０００３】
図１はユーザ×コンテンツ行列の例を示す図であり、各行が各ユーザに対応しており、各列がコンテンツに対応している。行列の要素にはユーザの過去の行動実績に基づくＣＴＲが設定されている。広告を提供するユーザが特定された場合、そのユーザに対応する行の要素であるＣＴＲを参照し、最もＣＴＲの高いコンテンツを提供対象として決定する。
【０００４】
図１において、黒い四角の記号で示した部分は、そのユーザについて行動実績が存在しないためにＣＴＲが欠落した要素であり、その欠落した要素に対応するコンテンツを選択することはできない。従って、行列の全ての要素が適切に埋められていることが望まれる。
【０００５】
行列の欠落した要素を補完する手法として、マトリクスファクトライゼーション（ＭＦ：Matrix Factorization）が知られている。
【０００６】
図２はマトリクスファクトライゼーションの例を示す図である。図１に示した行列を「実績値ユーザ×コンテンツ行列」とすると、図２のように、同じ要素配列の「予測値ユーザ×コンテンツ行列」を用意し、それを「ユーザ×潜在変数行列」と「潜在変数×コンテンツ行列」の積で表わす。そして、「予測値ユーザ×コンテンツ行列」の各要素が「実績値ユーザ×コンテンツ行列」の各要素（欠落している要素を除く）に限りなく近づくように「ユーザ×潜在変数行列」と「潜在変数×コンテンツ行列」の要素の値を変化させて収束演算を行うことで、要素に欠落のない「予測値ユーザ×コンテンツ行列」を得ることができる。元の「実績値ユーザ×コンテンツ行列」における欠落した要素は、他のユーザやコンテンツの対応関係から妥当な値が埋められることになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１８５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
広告提供等の分野では、近年、精度の高いデータ補完が行えることから、上述したマトリクスファクトライゼーションの利用が増えてきている。しかし、実際に扱うユーザ数やコンテンツ数は膨大なものとなり、このような膨大な行列データについて単一の情報処理装置で収束演算を実行するのは困難である。
【０００９】
膨大な演算処理を実行する手法として、複数の情報処理装置による分散処理が知られている。図３は分散処理の例を示す図であり、（イ）に示すような元の「予測値ユーザ×コンテンツ行列」＝「ユーザ×潜在変数行列」×「潜在変数×コンテンツ行列」について、（ロ）では所定数のユーザ数（図示の例では簡略のために５人）毎にデータを分割し、分割した部分を別の情報処理装置で処理するものとしている。分散処理にて得られた「予測値ユーザ×コンテンツ行列」を合体することで、全体の「予測値ユーザ×コンテンツ行列」が得られる。なお、ユーザを基準にデータを分割した例について説明したが、コンテンツを基準にして分割してもよいし、ユーザおよびコンテンツを同時に分割してもよい。
【００１０】
ここで問題となるのは、分割せずに収束演算を行う場合と比べて、分割して収束演算を行う場合は精度が低下することである。これは、マトリクスファクトライゼーションでは潜在変数がグローバルに影響することで欠落した要素を適切に埋めていくものであるが、分割したデータ内では潜在変数が限られたユーザとコンテンツについてしか影響しないためである。
【００１１】
なお、ＣＴＲを要素にもつ「ユーザ×コンテンツ行列」について説明したが、対象はこれに限られない。
【００１２】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、精度を落とさずにマトリクスファクトライゼーションの分散処理を実行することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明にあっては、処理対象となる行列データを行および／もしくは列を基準に分割し、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、複数の情報処理装置に処理依頼を行う手段と、処理依頼を受けた情報処理装置において、分割された行列データに対応する予測値行列を潜在変数を含む２つの分解行列の積で表現した上で、収束演算を行って、分割された行列データに予測値行列が近似する分解行列を算出するとともに、特徴ベクトルを分解行列の行もしくは列の成分からなるベクトルに近似させる係数行列を算出する１次処理を行う手段と、処理依頼を行った情報処理装置において、分割された行列データ毎の分解行列および係数行列に基づいて行列データを補完した予測値行列を算出する２次処理を行う手段とを備えるようにしている。
【発明の効果】
【００１４】
本発明にあっては、精度を落とさずにマトリクスファクトライゼーションの分散処理を実行することができる。
【図面の簡単な説明】
【００１５】
【図１】ユーザ×コンテンツ行列の例を示す図である。
【図２】マトリクスファクトライゼーションの例を示す図である。
【図３】分散処理の例を示す図である。
【図４】本発明の一実施形態にかかるシステムの構成例を示す図（その１）である。
【図５】本発明の一実施形態にかかるシステムの構成例を示す図（その２）である。
【図６】データの例を示す図である。
【図７】実施形態の処理例を示すシーケンス図（その１）である。
【図８】実施形態の処理例を示すシーケンス図（その２）である。
【図９】データの分割のパターンを示す図である。
【図１０】１次処理の例を示す図である。
【図１１】各装置に配置されるデータの例を示す図（その１）である。
【図１２】各装置に配置されるデータの例を示す図（その２）である。
【図１３】各装置に配置されるデータの例を示す図（その３）である。
【図１４】依頼元の装置で行う２次処理の例を示す図である。
【図１５】各装置で行う２次処理の例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の好適な実施形態につき説明する。なお、処理対象となる行列データとしてＣＴＲを要素にもつ「ユーザ×コンテンツ行列」を例にして説明するが、対象はこれに限られないことは言うまでもない。
【００１７】
＜構成＞
図４は本発明の一実施形態にかかるシステムの構成例を示す図であり、主たる情報処理装置１から処理依頼を複数の情報処理装置３（３Ａ、３Ｂ、・・）に行って、収束演算にかかる１次処理を各情報処理装置３において行ない、１次処理の結果に基づく２次処理を情報処理装置１において行うようにしたものである。なお、情報処理装置３のいずれかの装置の機能を情報処理装置１が兼用してもよい。
【００１８】
図４において、主たる情報処理装置１と分散処理を行う複数の情報処理装置３はインターネット等のネットワーク２を介して接続されている。
【００１９】
情報処理装置１は、機能部として、データ管理部１１とデータ分割部１３と分割データ処理依頼部１４と１次処理結果取得部１５と２次処理部１６とを備えている。これらの機能部は、情報処理装置１を構成するコンピュータのＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。
【００２０】
また、情報処理装置１は、処理の過程で参照・更新するデータを保持するデータ保持部１２を備えている。データ保持部１２は、情報処理装置１内のＨＤＤ（Hard Disk Drive）等の記憶媒体上の記憶領域に所定のデータを体系的に保持するものである。
【００２１】
一方、情報処理装置３は、機能部として、依頼受付部３１と１次処理部３３と１次処理結果返送部３４とを備えている。これらの機能部は、情報処理装置３を構成するコンピュータのＣＰＵ、ＲＯＭ、ＲＡＭ等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。
【００２２】
また、情報処理装置３は、処理の過程で参照・更新するデータを保持するデータ保持部３２を備えている。データ保持部３２は、情報処理装置３内のＨＤＤ等の記憶媒体上の記憶領域に所定のデータを体系的に保持するものである。
【００２３】
情報処理装置１のデータ管理部１１は、処理に用いるデータをデータ保持部１２に保持して管理する機能を有している。
【００２４】
データ分割部１３は、処理対象となる行列データを分散処理のために分割する機能を有している。本実施形態による分散処理には、行列データの行および／もしくは列に対応する項目の特徴ベクトルも用いるので、これらの分割も併せて行う。
【００２５】
分割データ処理依頼部１４は、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目（個々のユーザおよび／もしくは個々のコンテンツ）の特徴ベクトルとを伴って、複数の情報処理装置３に処理依頼を行う機能を有している。
【００２６】
１次処理結果取得部１５は、各情報処理装置３において行われた１次処理の結果を各情報処理装置３から取得する機能を有している。１次処理とは、分割された行列データに対応する予測値行列を潜在変数を含む２つの分解行列（ユーザ×潜在変数行列、潜在変数×コンテンツ行列）の積で表現した上で、収束演算を行って、行列データ（実績値ユーザ×コンテンツ行列）に予測値行列（予測値ユーザ×コンテンツ行列）が近似する分解行列を算出するとともに、特徴ベクトルを分解行列の行もしくは列の成分からなるベクトルに近似させる係数行列を算出する処理である。
【００２７】
２次処理部１６は、各情報処理装置３において行われた１次処理の結果に基づいて２次処理を行う機能を有している。２次処理とは、分割された行列データ毎の分解行列および係数行列に基づいて行列データを補完した予測値行列を算出する処理である。
【００２８】
情報処理装置３の依頼受付部３１は、主たる情報処理装置１から処理依頼を受け付け、処理依頼に伴われたデータをデータ保持部３２に格納する機能を有している。
【００２９】
１次処理部３３は、自装置に割り当てられた分割された行列データに基づいて１次処理を行う機能を有している。
【００３０】
１次処理結果返送部３４は、１次処理の結果を依頼元の情報処理装置１に送信する機能を有している。
【００３１】
図５は他のシステム構成例を示したものであり、主たる情報処理装置１から処理依頼を複数の情報処理装置３（３Ａ、３Ｂ、・・）に行って、収束演算にかかる１次処理を各情報処理装置３において行なうとともに、収束演算の過程で得られる係数行列に基づく２次処理の一部を各情報処理装置３において行うようにしたものである。なお、情報処理装置３のいずれかの装置の機能を情報処理装置１が兼用してもよい。
【００３２】
図５において、情報処理装置１は、図４の１次処理結果取得部１５と２次処理部１６とに代えて、係数行列交換部１７と２次処理結果取得部１８とが設けられている。
【００３３】
情報処理装置３は、図４の１次処理結果返送部３４に代えて、係数行列交換部３５と２次処理部３６と２次処理結果返送部３７とが設けられている。
【００３４】
情報処理装置１の係数行列交換部１７は、各情報処理装置３で算出された係数行列を取得し、各情報処理装置３に送信する機能を有している。なお、情報処理装置１を通さずに、各情報処理装置３の間で係数行列の交換を行ってもよい。
【００３５】
２次処理結果取得部１８は、各情報処理装置３で算出された２次処理の結果を取得し、とりまとめ（行列データの合体等）を行う機能を有している。
【００３６】
情報処理装置３の係数行列交換部３５は、自装置で算出された係数行列を他装置に与えるとともに、他装置で算出された係数行列を取得する機能を有している。
【００３７】
２次処理部３６は、自装置において行われた１次処理の結果と他装置から取得した係数行列とに基づいて２次処理を行う機能を有している。ここでの２次処理は、分割された行列データについての処理に限られている。
【００３８】
２次処理結果返送部３７は、自装置の２次処理の結果を情報処理装置１に送信する機能を有している。
【００３９】
図６は情報処理装置１のデータ保持部１２に保持されるデータの例を示す図であり、「実績値ユーザ×コンテンツ行列」「ユーザ特徴ベクトル群」「コンテンツ特徴ベクトル群」「１次処理結果」「係数行列」「予測値ユーザ×コンテンツ行列」を示している。
【００４０】
「実績値ユーザ×コンテンツ行列」は、図１で説明したのと同様に、各行が各ユーザに対応し、各列がコンテンツに対応しており、行列の要素にはユーザの過去の行動実績に基づくＣＴＲが設定されている。
【００４１】
「ユーザ特徴ベクトル群」は、「実績値ユーザ×コンテンツ行列」の各ユーザについてのユーザ特徴ベクトルの集合である。ユーザ特徴ベクトルは、性別、年齢帯、居住地域等を数値化した要素からなるものである。
【００４２】
「コンテンツ特徴ベクトル群」は、「実績値ユーザ×コンテンツ行列」の各コンテンツについてのコンテンツ特徴ベクトルの集合である。コンテンツ特徴ベクトルは、コンテンツの内容を種々の側面から数値化した要素からなるものである。
【００４３】
「１次処理結果」は、図４に示した構成の場合に、各情報処理装置３から取得した１次処理の結果を保持するものである。１次処理の結果には、分割されたデータ毎の、分解行列と係数行列とが含まれる。
【００４４】
「係数行列」は、図５に示した構成の場合に、各情報処理装置３から取得した係数行列を保持するものである。
【００４５】
「予測値ユーザ×コンテンツ行列」は、最終的に補完を行った後の「ユーザ×コンテンツ行列」を保持するものである。
【００４６】
＜動作＞
図７は上記の実施形態の処理例を示すシーケンス図であり、図４のシステム構成に対応したものである。
【００４７】
図７において、情報処理装置１のデータ分割部１３は、処理対象となる行列データを分散処理のために分割する（ステップＳ１０１）。行列データの分割の詳細は後述する。本実施形態による分散処理には、行列データの行および／もしくは列に対応する項目の特徴ベクトルも用いるので、これらの分割も併せて行う。
【００４８】
次いで、情報処理装置１の分割データ処理依頼部１４は、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、所定の複数の情報処理装置３に処理依頼を行う（ステップＳ１０２、Ｓ１０３）。
【００４９】
情報処理装置３の依頼受付部３１は、処理依頼を受け付けてデータをデータ保持部３２に格納する（ステップＳ１０４、Ｓ１０５）。
【００５０】
次いで、情報処理装置３の１次処理部３３は、自装置に割り当てられた分割された行列データに基づいて１次処理を行う（ステップＳ１０６、Ｓ１０７）。１次処理の詳細については後述する。
【００５１】
次いで、情報処理装置３の１次処理結果返送部３４は、１次処理の結果を依頼元の情報処理装置１に送信する（ステップＳ１０８、Ｓ１０９）。
【００５２】
情報処理装置１の１次処理結果取得部１５が各情報処理装置３において行われた１次処理の結果を各情報処理装置３から取得すると、２次処理部１６は、各情報処理装置３において行われた１次処理の結果に基づいて２次処理を行う（ステップＳ１１０）。２次処理の詳細については後述する。
【００５３】
図８は上記の実施形態の処理例を示すシーケンス図であり、図５のシステム構成に対応したものである。
【００５４】
図８において、情報処理装置１のデータ分割部１３は、処理対象となる行列データを分散処理のために分割する（ステップＳ１１１）。行列データの分割の詳細は後述する。本実施形態による分散処理には、行列データの行および／もしくは列に対応する項目の特徴ベクトルも用いるので、これらの分割も併せて行う。
【００５５】
次いで、情報処理装置１の分割データ処理依頼部１４は、分割された行列データと、当該行列データの分割された行および／もしくは列に対応する項目の特徴ベクトルとを伴って、所定の複数の情報処理装置３に処理依頼を行う（ステップＳ１１２、Ｓ１１３）。
【００５６】
情報処理装置３の依頼受付部３１は、処理依頼を受け付けてデータをデータ保持部３２に格納する（ステップＳ１１４、Ｓ１１５）。
【００５７】
次いで、情報処理装置３の１次処理部３３は、自装置に割り当てられた分割された行列データに基づいて１次処理を行う（ステップＳ１１６、Ｓ１１７）。１次処理の詳細については後述する。
【００５８】
次いで、情報処理装置３の係数行列交換部３５は、自装置で算出された係数行列を情報処理装置１に送信し（ステップＳ１１８、Ｓ１１９）、情報処理装置１から他装置で算出された係数行列を取得する（ステップＳ１２０、Ｓ１２１）。前述したように、情報処理装置１を通さずに、各情報処理装置３の間で係数行列の交換を行ってもよい。
【００５９】
次いで、情報処理装置３の２次処理部３６は、自装置において行われた１次処理の結果と他装置から取得した係数行列とに基づいて２次処理を行う（ステップＳ１２２、Ｓ１２３）。
【００６０】
次いで、情報処理装置３の２次処理結果返送部３７は、自装置の２次処理の結果を情報処理装置１に送信し（ステップＳ１２４、Ｓ１２５）、情報処理装置１の２次処理結果取得部１８はそれらのデータを受け取る。必要に応じ、受け取った行列データを合体させ、補完された行列データを得る。
【００６１】
図９はデータの分割（図７のステップＳ１０１、図８のステップＳ１１１）のパターンを示す図である。（i）は、ユーザ×コンテンツ行列のユーザを基準に分割（簡略のために２分割）した場合を示している。（ii）は、ユーザ×コンテンツ行列のコンテンツを基準に分割（簡略のために２分割）した場合を示している。（iii）は、ユーザ×コンテンツ行列のユーザとコンテンツを基準に分割（簡略のためにユーザとコンテンツをそれぞれ２分割し、合計４分割）した場合を示している。どのパターンで分割を行うのかは、対象となる行列データに応じて決定する。
【００６２】
図１０は１次処理（図７のステップＳ１０６、Ｓ１０７、図８のステップＳ１１６、Ｓ１１７）の例を示す図である。
【００６３】
図１０において、１次処理に必要なデータを入力する（ステップＳ１２１）。入力するデータとしては、
・分割された実績値ユーザ×コンテンツ行列Ｆblock
・該当するユーザのユーザ特徴ベクトル群
・該当するコンテンツのコンテンツ特徴ベクトル群
である。サフィックスの「block」は分割されたブロックａ、ｂ、・・、ｎ（ｎ分割）を示している。なお、ユーザ特徴ベクトル群は、ユーザを分割せずにコンテンツのみを分割する場合は不要である。ユーザを分割しない場合は、各装置における１次処理で全ユーザの特徴が考慮されているため、後の２次処理において補正を行う必要がないからである。同様に、コンテンツ特徴ベクトル群は、コンテンツを分割せずにユーザのみを分割する場合は不要である。
【００６４】
次いで、処理のためのデータ領域を確保する（ステップＳ１２２）。確保するデータ領域としては、
・予測値ユーザ×コンテンツ行列Ｙblock
・ユーザ×潜在変数行列Φblock
・潜在変数×コンテンツ行列Ψblock
である。予測値ユーザ×コンテンツ行列Ｙblockは、ユーザ×潜在変数行列Φblockと潜在変数×コンテンツ行列Ψblockの積の形の表現で止める場合には不要となる。潜在変数の項目数はユーザ特徴ベクトルおよびコンテンツ特徴ベクトルの要素数と合わせる。ステップＳ１２１で入力したデータについても、参照可能にデータ領域が割り当てられる。
【００６５】
図１１〜図１３は各装置に配置されるデータの例を示す図である。
【００６６】
図１１（イ）は分割前の実績値ユーザ×コンテンツ行列Ｆと、そのまま分割せずに処理するとした場合の予測値ユーザ×コンテンツ行列Ｙ、ユーザ×潜在変数行列Φ、潜在変数×コンテンツ行列Ψを示している。
【００６７】
（ロ）は、ユーザを基準に分割した場合を示しており、１つの情報処理装置３は実績値ユーザ×コンテンツ行列Ｆａと、予測値ユーザ×コンテンツ行列Ｙａ、ユーザ×潜在変数行列Φａ、潜在変数×コンテンツ行列Ψａを受け持つ。ユーザ特徴ベクトルとコンテンツ特徴ベクトルも図示は省略してあるが、処理に用いられる。
【００６８】
図１２はコンテンツを基準に分割した場合を示している。
【００６９】
図１３はユーザおよびコンテンツを基準に分割した場合を示している。
【００７０】
図１０に戻り、各記号を、
Ａblock：係数行列（コンテンツのみを分割する場合は不要）
Ｂblock：係数行列（ユーザのみを分割する場合は不要）
ｘi：i番目のユーザのユーザ特徴ベクトル
ｗj：j番目のコンテンツのコンテンツ特徴ベクトル
ｆij：実績値ユーザ×コンテンツ行列Ｆblockのi行j列の要素
φi：ユーザ×潜在変数行列Φblockのi行の要素からなるベクトル
ψi：潜在変数×コンテンツ行列Ψblockのj列の要素からなるベクトル
として、図示の「min」で始まる式を最小にするように収束演算を行う（ステップＳ１２３）。
【００７１】
この式は、最後の項が、実績値ユーザ×コンテンツ行列Ｆblockと予測値ユーザ×コンテンツ行列Ｙblockが最も近似した値となるように収束演算を行うことを示している。１番目の項は、ユーザ特徴ベクトルに係数行列Ａblockをかけたものがユーザ×潜在変数行列Φblockの各行のベクトルに近似した値となるように収束演算を行うことを示している。２番目の項は、コンテンツ特徴ベクトルに係数行列Ｂblockをかけたものが潜在変数×コンテンツ行列Ψblockの各行のベクトルに近似した値となるように収束演算を行うことを示している。
【００７２】
次いで、ここまでの処理で算出された、
・ユーザ×潜在変数行列Φblock
・潜在変数×コンテンツ行列Ψblock
・係数行列Ａblock（コンテンツのみを分割する場合は不要）
・係数行列Ｂblock（ユーザのみを分割する場合は不要）
を出力し（ステップＳ１２４）、１次処理を終了する。
【００７３】
図１４は依頼元の装置で行う２次処理（図７のステップＳ１１０）の例を示す図である。
【００７４】
図１４において、２次処理に必要なデータを入力する（ステップＳ１３１）。入力するデータとしては、
・各装置で算出したユーザ×潜在変数行列Φblock
・各装置で算出した潜在変数×コンテンツ行列Ψblock
・各装置で算出した係数行列Ａａ、Ａｂ、Ａｃ、・・（コンテンツのみを分割する場合は不要）
・各装置で算出した係数行列Ｂａ、Ｂｂ、Ｂｃ、・・（ユーザのみを分割する場合は不要）
・分割数ｎ
である。
【００７５】
次いで、分割したデータ毎に、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の中から統計値によりｙijを算出する（ステップＳ１３２）。なお、Ｂblockが存在しない場合、Ｂblock×ｗｊはψj、Ａblockが存在しない場合、Ａblock×ｘiはφiとする。
【００７６】
より具体的には、平均値の場合、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の合計を分割数ｎで割って得た平均値をｙijとする。
【００７７】
中央値の場合、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の中央値をｙijとする。
【００７８】
最頻値の場合、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の最頻値をｙijとする。
【００７９】
すなわち、ユーザ×潜在変数行列Φblockの各行は実質的にユーザ特徴ベクトルを示し、潜在変数×コンテンツ行列Ψblockの各列は実質的にコンテンツ特徴ベクトルを示している。そして、係数行列Ａblockは、分割された各ブロックにおけるユーザ×潜在変数行列Φblockの各行が実質的に示すユーザ特徴ベクトルと実際のユーザ特徴ベクトルとの差異を反映したものであり、各ブロックのユーザの傾向を含んでいる。同様に、係数行列Ｂblockは、分割された各ブロックにおける潜在変数×コンテンツ行列Ψblockの各列が実質的に示すコンテンツ特徴ベクトルと実際のコンテンツ特徴ベクトルとの差異を反映したものであり、各ブロックのコンテンツの傾向を含んでいる。従って、これらを各ブロックにおける計算で考慮し、統計値により予測値ユーザ×コンテンツ行列Ｙblockの要素を決定することで、分散処理による精度低下を防止し、分散処理せずに収束演算を行った場合と同等の精度で収束演算を行うことができる。
【００８０】
次いで、算出された予測値ユーザ×コンテンツ行列Ｙを出力し、２次処理を終了する（ステップＳ１３３）。
【００８１】
図１５は各装置で行う２次処理（図８のステップＳ１２２、Ｓ１２３）の例を示す図である。なお、一例として、ブロックａのデータが割り当てられた情報処理装置３における処理として示してある。
【００８２】
図１５において、２次処理に必要なデータを入力する（ステップＳ１４１）。入力するデータとしては、
・自装置で算出したユーザ×潜在変数行列Φa
・自装置で算出した潜在変数×コンテンツ行列Ψa
・自装置で算出した係数行列Ａａ（省略可）
・自装置で算出した係数行列Ｂａ（省略可）
・他装置で算出した係数行列Ａｂ、Ａｃ、・・（コンテンツのみを分割する場合は不要）
・他装置で算出した係数行列Ｂｂ、Ｂｃ、・・（ユーザのみを分割する場合は不要）
・分割数ｎ
である。
【００８３】
次いで、自装置に割り当てられたデータにつき、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の中から統計値によりｙijを算出する（ステップＳ１４２）。なお、Ｂblockが存在しない場合、Ｂblock×ｗｊはψj、Ａblockが存在しない場合、Ａblock×ｘiはφiとする。
【００８４】
より具体的には、平均値の場合、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の合計を分割数ｎで割って得た平均値をｙijとする。
【００８５】
中央値の場合、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の中央値をｙijとする。
【００８６】
最頻値の場合、Ａaｘi×Ｂawj、Ａbｘi×Ｂbwi、Ａcｘi×Ｂcwi、・・・の最頻値をｙijとする。
【００８７】
次いで、算出された予測値ユーザ×コンテンツ行列Ｙaを出力し、２次処理を終了する（ステップＳ１４３）。
【００８８】
＜総括＞
以上説明したように、本実施形態によれば、精度を落とさずにマトリクスファクトライゼーションの分散処理を実行することができる。
【００８９】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００９０】
１                  情報処理装置
１１                データ管理部
１２                データ保持部
１３                データ分割部
１４                分割データ処理依頼部
１５                １次処理結果取得部
１６                ２次処理部
１７                係数行列交換部
１８                ２次処理結果取得部
２                  ネットワーク
３、３Ａ、３Ｂ      情報処理装置
３１                依頼受付部
３２                データ保持部
３３                １次処理部
３４                １次処理結果返送部
３５                係数行列交換部
３６                ２次処理部
３７                ２次処理結果返送部
【図１】
2015001954.tif 000003
【図２】
2015001954.tif 000004
【図３】
2015001954.tif 000005
【図４】
2015001954.tif 000006
【図５】
2015001954.tif 000007
【図６】
2015001954.tif 000008
【図７】
2015001954.tif 000009
【図８】
2015001954.tif 000010
【図９】
2015001954.tif 000011
【図１０】
2015001954.tif 000012
【図１１】
2015001954.tif 000013
【図１２】
2015001954.tif 000014
【図１３】
2015001954.tif 000015
【図１４】
2015001954.tif 000016
【図１５】
2015001954.tif 000017