(57)【要約】【課題】入力行列に含まれる未知の要素の予測値を含む出力行列を算出するにあたり、入力行列の要素の更新に迅速に対応する。【解決手段】未知の要素を含む入力行列から導出される１対の行列を、入力行列を参照して交互に再計算することによって、未知の要素の予測値を含む出力行列を算出するための１対の特徴行列を生成する予測計算部を有し、予測計算部は、第２の入力行列から導出される１対の行列の代わりに、第１の入力行列から生成された１対の特徴行列を利用することによって、第２の入力行列から１対の特徴行列を生成するときの再計算の回数を第１の入力行列から１対の特徴行列を生成するときよりも少なくする情報処理装置が提供される。【選択図】図３
2014095966.tif 000002
【特許請求の範囲】
【請求項１】
未知の要素を含む入力行列から導出される１対の行列を、前記入力行列を参照して交互に再計算することによって、前記未知の要素の予測値を含む出力行列を算出するための１対の特徴行列を生成する予測計算部を備え、
前記入力行列は、第１の入力行列と、該第１の入力行列の一部の要素が更新された第２の入力行列とを含み、
前記出力行列は、前記第１の入力行列に対応して算出される第１の出力行列と、前記第２の入力行列に対応して算出される第２の出力行列とを含み、
前記予測計算部は、前記第２の入力行列から導出される前記１対の行列の代わりに、前記第１の入力行列から生成された前記１対の特徴行列を利用することによって、前記第２の入力行列から前記１対の特徴行列を生成するときの前記再計算の回数を前記第１の入力行列から前記１対の特徴行列を生成するときよりも少なくする情報処理装置。
【請求項２】
前記予測計算部は、前記第２の入力行列から前記１対の特徴行列を生成するときの前記再計算の対象を、前記更新された要素に対応する行を含む一部の行に限定する、請求項１に記載の情報処理装置。
【請求項３】
前記一部の行は、前記更新された要素に対応する行と、それ以外の少なくとも１つの行とを含む、請求項２に記載の情報処理装置。
【請求項４】
前記一部の行は、前記更新された要素に対応する行と、前記更新された要素との相関性が高い要素に対応する少なくとも１つの行とを含む、請求項３に記載の情報処理装置。
【請求項５】
所定の条件が満たされた場合に、前記第２の入力行列から導出された１対の行列を前記第２の入力行列を参照して交互に再計算することによって前記１対の特徴行列を再生成することを決定する再計算判定部をさらに備える、請求項１に記載の情報処理装置。
【請求項６】
前記第２の入力行列と、前記１対の特徴行列に基づいて算出された前記第２の出力行列との間の誤差を推定する誤差推定部をさらに備え、
前記再計算判定部は、前記誤差が所定の範囲を超えた場合に前記１対の特徴行列を再生成することを決定する、請求項５に記載の情報処理装置。
【請求項７】
前記誤差推定部は、前記第２の入力行列の既知の要素と、前記第２の出力行列における該要素の予測値とを比較することによって前記誤差を算出する、請求項６に記載の情報処理装置。
【請求項８】
前記再計算判定部は、前記第２の入力行列から導出される前記１対の行列の代わりに前記第１の入力行列から生成された前記１対の特徴行列を利用した前記１対の特徴行列の算出が所定の回数実行された場合に前記１対の特徴行列を再生成することを決定する、請求項５に記載の情報処理装置。
【請求項９】
前記再計算判定部は、所定の時間周期ごとに前記１対の特徴行列を再生成することを決定する、請求項５に記載の情報処理装置。
【請求項１０】
前記再計算判定部は、前記入力行列に所定の数の行または列が追加された場合に前記１対の特徴行列を再生成することを決定する、請求項５に記載の情報処理装置。
【請求項１１】
前記入力行列の要素を更新する更新データの入力を、時間的に分散して逐次に受け付ける入力部をさらに備える、請求項１に記載の情報処理装置。
【請求項１２】
ユーザによるアイテムの評価値を要素して前記入力行列を生成し、前記更新データの入力時に前記入力行列の要素を更新する入力行列生成部と、
前記１対の特徴行列に基づいて前記出力行列を算出する出力行列算出部と、
前記出力行列に含まれる前記予測値に基づいて、前記更新データの入力に対応して前記ユーザへの前記アイテムの推薦情報を出力する推薦アイテム出力部と
をさらに備える、請求項１１に記載の情報処理装置。
【請求項１３】
未知の要素を含む第１の入力行列を取得し、前記第１の入力行列から導出される１対の行列を、前記第１の入力行列を参照して交互に再計算することによって１対の特徴行列を生成し、前記１対の特徴行列に基づいて前記未知の要素の予測値を含む第１の出力行列を算出することと、
前記第１の入力行列の一部の要素が更新された第２の入力行列を取得し、前記第１の入力行列から生成された前記１対の特徴行列を、前記第２の入力行列を参照して交互に再計算することによって新たな１対の特徴行列を生成し、該１対の特徴行列に基づいて前記未知の要素の予測値を含む第２の出力行列を算出することと
を含み、
前記第２の出力行列を算出するときの前記再計算の回数が、前記第１の出力行列を算出するときの前記再計算の回数よりも少ない情報処理方法。
【請求項１４】
未知の要素を含む入力行列から導出される１対の行列を、前記入力行列を参照して交互に再計算することによって、前記未知の要素の予測値を含む出力行列を算出するための１対の特徴行列を生成する機能をコンピュータに実現させ、
前記入力行列は、第１の入力行列と、該第１の入力行列の一部の要素が更新された第２の入力行列とを含み、
前記出力行列は、前記第１の入力行列に対応して算出される第１の出力行列と、前記第２の入力行列に対応して算出される第２の出力行列とを含み、
前記機能は、前記第２の入力行列から導出される前記１対の行列の代わりに、前記第１の入力行列から生成された前記１対の特徴行列を利用することによって、前記第２の入力行列から前記１対の特徴行列を生成するときの前記再計算の回数を前記第１の入力行列から前記１対の特徴行列を生成するときよりも少なくするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
さまざまな情報を行列として表現し、処理することは、一般的な技術である。行列は、行および列によって特定される要素から成り立っているが、場合によっては未知の要素が含まれる。その場合に、行列に含まれる既知の要素を利用して未知の要素を予測し、予測値を利用する技術が種々提案されている。
【０００３】
例えば、非特許文献１には、ユーザによるアイテムの評価値を要素とする評価行列を入力として、そこに含まれる未知の要素の予測値を含む予測評価行列を算出する技術が記載されている。予測評価行列は、評価行列から導出されるユーザ特徴行列とアイテム特徴行列とを掛け合わせることによって算出される。
【０００４】
非特許文献１の技術では、特異値分解などを用いて評価行列からユーザ特徴行列とアイテム特徴行列とを導出した後、これらの行列を掛け合わせて得られる行列と評価行列との誤差が小さくなるように、ユーザ特徴行列とアイテム特徴行列を交互に繰り返し更新する。このような技術は、ＡＬＳ（Alternating  Least  Squares）とも呼ばれる。
【０００５】
予測評価行列によって示される、評価行列における未知の要素の予測値は、ユーザがまだ利用していないアイテムを新たに利用したときに、そのアイテムに与えると想定される評価値である。この評価値によってユーザの新たなアイテムに対する興味の程度が予測され、ユーザの興味が高いと予測されるアイテムがユーザに推薦される。このようなアイテムのフィルタリングは、協調フィルタリングとしても知られている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Yunhong  Zhou，  Dennis  Wilkinson，  Robert  Schreiber  and  Rong  Pan，”Large-scale  Parallel  Collaborative  Filtering  for  the  Netflix  Prize”，（米），Proc.  4th  Int’l  Conf.  Algorithmic  Aspects  in  Information  and  Management，LNCS  5034，2008
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、近年、通信技術の進歩、ネットワークを介して提供されるサービスの多様化などによって、協調フィルタリングの対象になるユーザやアイテムは膨大になり、従って評価行列が大規模化している。また、ユーザが新たにアイテムを評価することによって評価行列の要素が頻繁に更新されることも多くなっている。
【０００８】
ところが、非特許文献１に記載された技術では、精度の高い予測結果を算出することが可能ではあるものの、行列が大規模化するほど計算には時間がかかり、また行列の要素の更新に迅速に対応することも困難であるため、リアルタイム性という点でユーザに十分な満足を与えているとは必ずしも言えない。
【０００９】
そこで、本開示では、入力行列に含まれる未知の要素の予測値を含む出力行列を算出するにあたり、入力行列の要素の更新に迅速に対応することが可能な、新規かつ改良された情報処理装置、情報処理方法およびプログラムを提案する。
【課題を解決するための手段】
【００１０】
本開示によれば、未知の要素を含む入力行列から導出される１対の行列を、上記入力行列を参照して交互に再計算することによって、上記未知の要素の予測値を含む出力行列を算出するための１対の特徴行列を生成する予測計算部を有し、上記入力行列は、第１の入力行列と、該第１の入力行列の一部の要素が更新された第２の入力行列とを含み、上記出力行列は、上記第１の入力行列に対応して算出される第１の出力行列と、上記第２の入力行列に対応して算出される第２の出力行列とを含み、上記予測計算部は、上記第２の入力行列から導出される上記１対の行列の代わりに、上記第１の入力行列から生成された上記１対の特徴行列を利用することによって、上記第２の入力行列から上記１対の特徴行列を生成するときの上記再計算の回数を上記第１の入力行列から上記１対の特徴行列を生成するときよりも少なくする情報処理装置が提供される。
【００１１】
また、本開示によれば、未知の要素を含む第１の入力行列を取得し、上記第１の入力行列から導出される１対の行列を、上記第１の入力行列を参照して交互に再計算することによって１対の特徴行列を生成し、上記１対の出力行列に基づいて上記未知の要素の予測値を含む第１の出力行列を算出することと、上記第１の入力行列の一部の要素が更新された第２の入力行列を取得し、上記第１の入力行列から生成された上記１対の特徴行列を、上記第２の入力行列を参照して交互に再計算することによって新たな１対の特徴行列を生成し、該１対の特徴行列に基づいて上記未知の要素の予測値を含む第２の出力行列を算出することとを含み、上記第２の出力行列を算出するときの上記再計算の回数が、上記第１の出力行列を算出するときの上記再計算の回数よりも少ない情報処理方法が提供される。
【００１２】
また、本開示によれば、未知の要素を含む入力行列から導出される１対の行列を、上記入力行列を参照して交互に再計算することによって、上記未知の要素の予測値を含む出力行列を算出するための１対の特徴行列を生成する機能をコンピュータに実現させ、上記入力行列は、第１の入力行列と、該第１の入力行列の一部の要素が更新された第２の入力行列とを含み、上記出力行列は、上記第１の入力行列に対応して算出される第１の出力行列と、上記第２の入力行列に対応して算出される第２の出力行列とを含み、上記機能は、上記第２の入力行列から導出される上記１対の行列の代わりに、上記第１の入力行列から生成された上記１対の特徴行列を利用することによって、上記第２の入力行列から上記１対の特徴行列を生成するときの上記再計算の回数を上記第１の入力行列から上記１対の特徴行列を生成するときよりも少なくするプログラムが提供される。
【発明の効果】
【００１３】
以上説明したように本開示によれば、入力行列に含まれる未知の要素の予測値を含む出力行列を算出するにあたり、入力行列の要素の更新に迅速に対応することができる。
【図面の簡単な説明】
【００１４】
【図１】本開示の第１の実施形態の概略について説明するための図である。
【図２】本開示の第１の実施形態の概略について説明するための図である。
【図３】本開示の第１の実施形態に係るサーバの概略的な機能構成を示すブロック図である。
【図４】本開示の第１の実施形態において生成される評価行列の例を示す図である。
【図５】本開示の第１の実施形態における行列演算の例について説明するための図である。
【図６】本開示の第１の実施形態における行列の繰り返し再計算の例について説明するための図である。
【図７】本開示の第１の実施形態における特徴行列の再利用の例について説明するための図である。
【図８】本開示の第１の実施形態における行列演算の付加的な構成の例について説明するための図である。
【図９】本開示の第２の実施形態に係るサーバの概略的な機能構成を示すブロック図である。
【図１０】本開示の第２の実施形態における誤差の算出について説明するための図である。
【図１１】本開示の第２の実施形態における誤差の算出について説明するための図である。
【図１２】情報処理装置のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１６】
なお、説明は以下の順序で行うものとする。
１．第１の実施形態
１−１．概略
１−２．機能構成
１−３．行列演算の例
１−４．行列演算の付加的な例
２．第２の実施形態
２−１．機能構成
２−２．誤差算出の例
３．ハードウェア構成
４．補足
【００１７】
（１．第１の実施形態）
まず、図１〜図８を参照して、本開示の第１の実施形態について説明する。本実施形態は、入力として受け付けたユーザによるアイテムの評価値を要素とする評価行列を用いた行列演算によって、評価行列における未知の要素の予測値を含む予測評価行列を算出し、この予測値を利用してユーザに対するアイテム推薦情報を出力するサーバに係る。このサーバは、単一の情報処理装置によって実現されてもよく、有線または無線のネットワークで接続された複数の情報処理装置の協働によって実現されてもよい。各情報処理装置を実現するためのハードウェア構成の例については後述する。
【００１８】
（１−１．概略）
図１および図２は、本開示の第１の実施形態の概略について説明するための図である。図１は、本実施形態とは異なる処理形態（バッチ処理）を参考のために示す図であり、図２は、本実施形態の処理形態（リアルタイム処理）を示す図である。
【００１９】
図１に示すバッチ処理では、ユーザによるアイテムの評価値を示すデータである評価データｒが所定の期間にわたって蓄積される。サーバ１０は、蓄積された評価データｒから評価行列Ｒを生成し、例えばＡＬＳのような行列演算によって予測評価行列Ｒ’を算出する。扱われる行列のサイズが大きい場合、ユーザ特徴行列およびアイテム特徴行列の算出に時間がかかり、また計算の過程においてこれらの行列の更新が繰り返されるため、予測評価行列Ｒ’の算出までには時間がかかる。
【００２０】
上記のようなバッチ処理の場合、例えばある評価データｒがユーザによって提供されてから、その評価データｒが反映された予測評価行列Ｒ’の算出の処理が開始されるまでに時間がかかる。また、処理が開始されたとしても、予測評価行列Ｒ’が算出されるまでにはさらに時間がかかる。従って、評価データｒを提供したユーザに対して、その評価データｒを反映したアイテム推薦結果を迅速にフィードバックするといったようなことは難しい。一方、評価データｒを提供したユーザとしては、提供したデータに対するフィードバックが早く得られる方が望ましい場合が多い。
【００２１】
そこで、本実施形態では、図２に示すようなリアルタイム処理を実現する。リアルタイム処理では、ユーザによるアイテムの評価値を示すデータである評価データｒが、ストリーミングデータとしてサーバ１００に逐次入力される。サーバ１００は、逐次入力された評価データｒによって既存の評価行列Ｒを更新し、更新された評価行列Ｒに基づいて予測評価行列Ｒ’を算出する。従って、サーバ１００からは、予測評価行列Ｒ’を利用したアイテム推薦の情報が、新たな評価データｒの入力に対応して逐次出力される。
【００２２】
このようなリアルタイム処理を実現するために、本実施形態では、予測評価行列Ｒ’が一度算出された後に評価行列Ｒが更新された場合に、過去の計算結果を利用してより短い時間で更新後の評価行列Ｒに対応した予測評価行列Ｒ’を算出する。そのためのより詳細な構成について、以下で説明する。
【００２３】
（１−２．機能構成）
図３は、本開示の第１の実施形態に係るサーバの概略的な機能構成を示すブロック図である。サーバ１００は、上述のように、単一の情報処理装置によって実現されてもよく、複数の情報処理装置の協働によって実現されてもよい。後者の場合、以下で説明するサーバ１００の機能構成は、それぞれが単一の情報処理装置によって実現されてもよいし、１つの機能構成が複数の情報処理装置に分割して実現されてもよい。
【００２４】
サーバ１００は、機能構成として、評価データ入力部１１０、評価行列生成部１２０、評価行列記憶部１３０、特徴行列生成部１４０、特徴行列記憶部１５０、予測行列算出部１６０、および推薦アイテム出力部１７０を含む。以下、各機能構成について説明する。
【００２５】
評価データ入力部１１０は、評価データｒの入力を受け付けるインターフェースである。評価データｒは、時間的に分散して逐次に入力されるものでありうる。評価データ入力部１１０は、例えば有線または無線の通信装置であり、他の装置から送信された評価データｒを受信する。あるいは、評価データ入力部１１０は、ユーザが評価データｒを入力するのに用いる端末装置に設けられた入力装置であってもよい。また、評価データ入力部１１０は、情報処理装置のＣＰＵ（Central  Processing  Unit）がプログラムに従って動作することによって実現される部分を含んでもよい。この場合、評価データ入力部１１０は、例えば、評価データｒの入力を受け付けたことをトリガとして、評価行列生成部１２０以降の処理を起動する機能を有してもよい。
【００２６】
評価行列生成部１２０は、評価データｒから評価行列Ｒを生成する。上述のように、評価行列Ｒは、ユーザによるアイテムの評価値を要素とする行列である。また、評価行列生成部１２０は、生成した評価行列Ｒを評価行列記憶部１３０に格納するとともに、評価データ入力部１１０によって新たな評価データｒの入力が受け付けられた場合、評価行列記憶部１３０に格納された評価行列Ｒを当該評価データｒに基づいて更新する。評価行列生成部１２０は、例えば情報処理装置のＣＰＵがプログラムに従って動作することによって実現される。
【００２７】
ここで、評価行列生成部１２０が生成する評価行列の例を、図４に示す。図４は、本開示の第１の実施形態において生成される評価行列の例を示す図である。図示された例の評価行列Ｒでは、行としてユーザ１〜９が、列としてアイテム１〜９がそれぞれ定義され、各ユーザによる各アイテムの評価値が行列の要素になっている。評価行列Ｒによれば、例えばユーザ１によるアイテム１の評価値は１．０であり、ユーザ３によるアイテム４の評価値は２．０である。なお、評価行列Ｒは、実際には図示された例よりもずっと多くの行および列を含みうる。
【００２８】
評価行列Ｒは、未知の要素を含む。例えば、ユーザ１によるアイテム４の評価値や、ユーザ３によるアイテム１の評価値などは、空欄になっている。これは、ユーザがアイテムをまだ評価していないことを示す。サーバ１００では、後述する特徴行列生成部１４０および予測行列算出部１６０が、他の既知の評価値（同じユーザによる他のアイテムの評価値、および他のユーザによる同じアイテムの評価値）を用いて評価行列Ｒの未知の要素、すなわち未入力の評価値を予測し、推薦アイテム出力部１７０が、予測された評価値に基づいてユーザにアイテムを推薦する情報を出力する。
【００２９】
評価行列記憶部１３０は、評価行列生成部１２０が生成した評価行列Ｒを格納する。例えば、上述したバッチ処理の場合、評価行列Ｒは処理の度に新たに生成されるため、格納されずに破棄されることが多い。しかし、本実施形態では、評価行列Ｒが逐次更新されるのに対応してリアルタイム処理を実行するため、一度生成された評価行列Ｒは評価行列記憶部１３０に格納され、評価データ入力部１１０によって新たな評価データｒの入力が受け付けられた場合には当該評価データｒに基づいて更新される。評価行列記憶部１３０は、例えば情報処理装置のストレージ装置によって実現される。
【００３０】
特徴行列生成部１４０は、評価行列Ｒを用いた行列演算によって、予測評価行列Ｒ’を算出するための１対の特徴行列であるユーザ特徴行列Ｆｕおよびアイテム特徴行列Ｆｉを導出する。ここで、以前に導出された特徴行列が特徴行列記憶部１５０に格納されている場合、特徴行列生成部１４０は、この特徴行列を参照して新たな特徴行列を導出することによって、行列演算を簡略化する。なお、この点の詳細については後述する。特徴行列生成部１４０も、例えば情報処理装置のＣＰＵがプログラムに従って動作することによって実現される。
【００３１】
特徴行列記憶部１５０は、特徴行列生成部１４０が導出した特徴行列を格納する。本実施形態において、特徴行列は、ユーザ特徴行列Ｆｕおよびアイテム特徴行列Ｆｉである。例えば、上述したバッチ処理の場合、特徴行列も処理の度に新たに生成されるため、格納されないことが多い。しかし、本実施形態では、評価行列Ｒが逐次更新されるのに合わせてリアルタイムで特徴行列を算出するため、一度導出された特徴行列は特徴行列記憶部１５０に格納され、その後に特徴行列生成部１４０が新たな特徴行列を導出するときに利用される。特徴行列記憶部１５０は、例えば情報処理装置のストレージ装置によって実現される。
【００３２】
予測行列算出部１６０は、特徴行列生成部１４０において得られたユーザ特徴行列Ｆｕとアイテム特徴行列Ｆｉとを掛け合わせて、予測評価行列Ｒ’を算出する。上述のように、予測評価行列Ｒ’は、評価行列Ｒに含まれる未知の要素（評価値）の予測値を含む行列である。予測行列算出部１６０は、算出された予測評価行列Ｒ’そのもの、または予測評価行列Ｒ’に含まれる予測の評価値の情報を、推薦アイテム出力部１７０に提供する。予測行列算出部１６０も、例えば情報処理装置のＣＰＵがプログラムに従って動作することによって実現される。
【００３３】
推薦アイテム出力部１７０は、予測評価行列Ｒ’に基づくアイテム推薦の結果を、例えば評価データｒの入力に対応してリアルタイムで出力するインターフェースである。推薦アイテム出力部１７０は、例えば有線または無線の通信装置であり、他の装置、例えばクライアントの端末装置にアイテム推薦の結果を送信する。あるいは、推薦アイテム出力部１７０は、ユーザにアイテム推薦の結果を提供する端末装置に設けられた出力装置であってもよい。また、推薦アイテム出力部１７０は、情報処理装置のＣＰＵがプログラムに従って動作することによって実現される部分を含んでもよい。この場合、推薦アイテム出力部１７０は、例えばアイテム推薦の結果を利用してユーザに提供する情報（Ｗｅｂページなど）を編集する機能を有してもよい。
【００３４】
（１−３．行列演算の例）
ここで、特徴行列生成部１４０による行列演算の例を、図５に示す。図５は、本開示の第１の実施形態における行列演算の例について説明するための図である。図示されているように、特徴行列生成部１４０では、評価行列Ｒから１対の特徴行列Ｆｕ，Ｆｉを導出し、これらの行列を掛け合わせることによって、評価行列Ｒにおける未知の要素の予測値を含む予測評価行列Ｒ’を算出する（Ｒ’＝ＦｕＴ×Ｆｉ）。
【００３５】
上記の行列演算において、特徴行列Ｆｕ，Ｆｉは、例えば特異値分解（ＳＶＤ：Singular  Value  Decomposition）を利用して評価行列Ｒから導出される。しかし、初めて評価行列Ｒから予測評価行列Ｒ’を算出するような場合、特徴行列Ｆｕ，Ｆｉとして適切な行列を得ることは容易ではない。そこで、特徴行列Ｆｕ，Ｆｉは、例えば図６に示すような繰り返し再計算によって算出される。図６は、本開示の第１の実施形態における行列の繰り返し再計算の例について説明するための図である。なお、図中において、（０），（１），・・・のように示される数字は、その時点での再計算の回数を表している。
【００３６】
図示された例では、まず、評価行列Ｒから特異値分解などによってユーザ特徴行列Ｆｕ（０）が導出される。次に、ユーザ特徴行列Ｆｕ（０）と評価行列Ｒとに基づいてアイテム特徴行列Ｆｉ（１）が導出される。具体的には、ユーザ特徴行列Ｆｕ（０）を固定し、Ｆｕ（０）Ｔ×Ｆｉ（１）＝Ｒ’として算出したときの予測評価行列Ｒ’と評価行列Ｒとの誤差が最小化されるようにアイテム特徴行列Ｆｉ（１）が決定される。次に、アイテム特徴行列Ｆｉ（１）を固定し、Ｆｕ（１）Ｔ×Ｆｉ（１）＝Ｒ’として算出したときの予測評価行列Ｒ’と評価行列Ｒとの誤差が最小化されるようにユーザ特徴行列Ｆｕ（１）が決定される。以下同様にして特徴行列Ｆｕ，Ｆｉの再計算が所定の回数（ｋ回）繰り返された後、予測行列算出部１６０においてＦｕ（ｋ）Ｔ×Ｆｉ（ｋ）＝Ｒ’として予測評価行列Ｒ’が算出される。
【００３７】
ところが、上述のように評価行列Ｒは大規模化する傾向にあるため、上記のような繰り返し再計算の処理量も増大している。それゆえ、評価データｒの入力によって評価行列Ｒが更新される度に上記の繰り返し再計算の手順によって特徴行列Ｆｕ，Ｆｉを求めていたのでは、上記で図２に示したようなリアルタイム処理の実現は困難である。そこで、本実施形態では、特徴行列生成部１４０が、以下で説明するような構成を採用することによって、特徴行列Ｆｕ，Ｆｉの導出のための処理量を抑制する。
【００３８】
図７は、本開示の第１の実施形態における特徴行列の再利用の例について説明するための図である。図示された例では、ある時点（ｎ回目）の行列演算処理において、評価行列Ｒ（ｎ）から特徴行列Ｆｕ（ｎ），Ｆｉ（ｎ）が導出され、予測行列算出部１６０においてＦｕ（ｎ）Ｔ×Ｆｉ（ｎ）＝Ｒ’（ｎ）として予測評価行列Ｒ’（ｎ）が算出されている。
【００３９】
評価データｒの入力によって評価行列Ｒ（ｎ）が更新されて評価行列Ｒ（ｎ＋１）になった場合に実行されるｎ＋１回目の行列演算処理では、評価行列（ｎ＋１）から特徴行列Ｆｕ（ｎ＋１），Ｆｉ（ｎ＋１）が導出され、予測行列算出部１６０においてＦｕ（ｎ＋１）Ｔ×Ｆｉ（ｎ＋１）＝Ｒ’（ｎ＋１）として予測評価行列Ｒ’（ｎ＋１）が算出されている。
【００４０】
ここで、ｎ＋１回目の行列演算処理で導出される特徴行列Ｆｕ（ｎ＋１），Ｆｉ（ｎ＋１）は、ｎ回目の行列演算処理で導出された特徴行列Ｆｕ（ｎ），Ｆｉ（ｎ）を基にした再計算によって求められる。例えば、ｎ＋１回目の処理では、仮のユーザ特徴行列Ｆｕとして前回のユーザ特徴行列Ｆｕ（ｎ）を用い、Ｆｕ（ｎ）Ｔ×Ｆｉ（ｎ＋１）＝Ｒ’として算出したときの予測評価行列Ｒ’と評価行列Ｒ（ｎ＋１）との誤差が最小化されるようにアイテム特徴行列Ｆｉ（ｎ＋１）が決定される。このとき、アイテム特徴行列Ｆｉ（ｎ＋１）は、前回のアイテム特徴行列Ｆｉ（ｎ）を基にして探索されうる。次に、アイテム特徴行列Ｆｉ（ｎ＋１）を固定し、Ｆｕ（ｎ＋１）Ｔ×Ｆｉ（ｎ＋１）＝Ｒ’として算出したときの予測評価行列Ｒ’と評価行列Ｒ（ｎ＋１）との誤差が最小化されるようにユーザ特徴行列Ｆｕ（ｎ＋１）が決定される。
【００４１】
図示された例において、前回の処理で導出された特徴行列Ｆｕ（ｎ），Ｆｉ（ｎ）に基づく再計算によって特徴行列Ｆｕ（ｎ＋１），Ｆｉ（ｎ＋１）を求める場合、特徴行列Ｆｕ（ｎ＋１），Ｆｉ（ｎ＋１）の再計算の回数は、図６に示した例の繰り返し回数（ｋ回）よりも少ない回数、例えば１回であってもよい。つまり、図示された例において、特徴行列生成部１４０は、上記の手順、すなわち１回だけの再計算によって特徴行列Ｆｕ（ｎ＋１），Ｆｉ（ｎ＋１）を導出し、Ｆｕ（ｎ＋１）Ｔ×Ｆｉ（ｎ＋１）＝Ｒ’（ｎ＋１）として予測評価行列Ｒ’（ｎ＋１）を算出することができる。
【００４２】
この例は、評価行列Ｒ（ｎ＋１）が、評価行列Ｒ（ｎ）のうちの限られた要素（例えば１つの要素）だけを、評価データｒに従って更新したものであるために可能になる。つまり、評価行列Ｒ（ｎ＋１）は、評価データｒに係るユーザの行、および評価データｒに係るアイテムの列以外の要素について、評価行列Ｒ（ｎ）と同一である。従って、予測評価行列Ｒ’（ｎ）を算出するための適切な特徴行列Ｆｕ（ｎ），Ｆｉ（ｎ）は、評価行列Ｒ’（ｎ＋１）を算出するための適切な特徴行列Ｆｕ（ｎ＋１），Ｆｉ（ｎ＋１）に近いものである可能性が高い。それゆえ、評価行列Ｒ（ｎ＋１）からＳＶＤなどを利用して導出した行列の代わりに、特徴行列Ｆｕ（ｎ），Ｆｉ（ｎ）を基にして再計算を実行すれば、より少ない回数の再計算で適切な特徴行列Ｆｕ（ｎ＋１），Ｆｉ（ｎ＋１）を導出することができる。
【００４３】
図示された例では、ｎ＋２回目以降、ｎ＋ｍ回目までの行列演算処理についても同様に、前回の行列演算処理で導出された特徴行列に基づく再計算によってユーザ特徴行列Ｆｕ，Ｆｉが求められ、予測行列算出部１６０においてユーザ特徴行列Ｆｕ，Ｆｉから予測評価行列Ｒ’が算出されている。このような構成によって、評価データｒによって評価行列Ｒが更新された場合に、特徴行列生成部１４０が特徴行列Ｆｕ，Ｆｉを導出するときの再計算回数が減少し、処理量を抑制することができる。
【００４４】
（１−４．行列演算の付加的な例）
図８は、本開示の第１の実施形態における行列演算の付加的な構成の例について説明するための図である。図示された例では、更新後の評価行列Ｒから特徴行列Ｆｕ，Ｆｉを導出し、ＦｕＴ×Ｆｉ＝Ｒ’として予測評価行列Ｒ’を算出するときに、再計算の対象になる行を特徴行列Ｆｕ，Ｆｉの一部の行に限定している。
【００４５】
ここで、上述のように、評価行列Ｒは、評価データｒによって更新される。評価データｒは、あるユーザによるあるアイテムの評価値のデータであるため、更新後の評価行列Ｒは、評価データｒに係るユーザの行、および評価データｒに係るアイテムの列以外の要素について、更新前の評価行列Ｒと同一である。従って、評価行列Ｒの更新に伴う特徴行列Ｆｕ，Ｆｉの再計算では、これらの行および列に対応する行以外の部分が、更新前の特徴行列Ｆｕ，Ｆｉと同じ、または近いものである可能性が高い。従って、図示された例では、特徴行列Ｆｕ，Ｆｉを導出するときの再計算の対象になる行を限定し、残りの行については前回の特徴行列Ｆｕ，Ｆｉをそのまま用いることで、さらなる処理量の抑制を図っている。
【００４６】
上記の例において、再計算の対象になる行は、必ずしも更新に係るユーザおよびアイテムに対応する行だけでなくてもよい。実際には、評価行列Ｒの更新の影響は、更新に係るユーザおよびアイテムの行以外にも現れるため、これらの行に加えていくつかの行を再計算の対象に加えることは、予測評価行列Ｒ’の精度の向上のために有益である。例えば、再計算の対象には、更新に係るユーザおよびアイテムに対応する行に加えてランダムに選択された１または複数の行が追加されてもよい。また、再計算の対象には、例えば予め用意されているユーザまたはアイテムの関連性情報に基づいて、更新に係るユーザまたはアイテムと関連性が高いユーザまたはアイテムに対応する１または複数の行が追加されてもよい。
【００４７】
以上で説明したような本開示の第１の実施形態では、ユーザによるアイテムの評価値を要素とする評価行列を用いた行列演算において、予測評価行列を算出するための特徴行列を導出するための処理量が大幅に低減される。従って、例えば予測評価行列を用いた協調フィルタリングによるアイテム推薦を、逐次変化する評価データに追従してリアルタイムで実現することができる。
【００４８】
（２．第２の実施形態）
次に、図９〜図１１を参照して、本開示の第２の実施形態について説明する。本実施形態は、上記の第１の実施形態と同様に、入力として受け付けたユーザによるアイテムの評価値を要素とする評価行列を用いた行列演算によって、評価行列における未知の要素の予測値を含む予測評価行列を算出し、この予測値を利用してユーザに対するアイテム推薦情報を出力するサーバに係る。ただし、本実施形態は、予測評価行列の誤差を推定する誤差推定部と、推定された誤差に基づいて特徴行列の再計算の必要性を判断する再計算判定部とが設けられる点で、第１の実施形態とは異なる。従って、以下の説明では、かかる相違点について主に説明し、それ以外の第１の実施形態と同様の構成については重複した説明を省略する。
【００４９】
（２−１．機能構成）
図９は、本開示の第２の実施形態に係るサーバの概略的な機能構成を示すブロック図である。サーバ２００は、第１の実施形態に係るサーバ１００と同様に、単一の情報処理装置によって実現されてもよく、複数の情報処理装置の協働によって実現されてもよい。後者の場合、以下で説明するサーバ２００の機能構成は、それぞれが単一の情報処理装置によって実現されてもよいし、１つの機能構成が複数の情報処理装置に分割して実現されてもよい。
【００５０】
サーバ２００は、機能構成として、評価データ入力部１１０、評価行列生成部１２０、評価行列記憶部１３０、特徴行列生成部１４０、特徴行列記憶部１５０、予測行列算出部１６０、推薦アイテム出力部１７０、誤差推定部２８０、および再計算判定部２９０を含む。以下、第１の実施形態とは異なる機能構成である誤差推定部２８０および再計算判定部２９０について説明する。
【００５１】
誤差推定部２８０は、予測行列算出部１６０において算出された予測評価行列Ｒ’の誤差を推定する。誤差推定部２８０は、例えば、予測評価行列Ｒ’と、評価行列記憶部１３０に格納された元の評価行列Ｒとの間で平均二乗誤差（ＲＭＳＥ：Root  Mean  Square  Error）を算出することによって誤差を推定する。このとき、誤差推定部２８０は、通常のＲＭＳＥの算出方法ではなく、以下で説明するような簡略化された算出方法を用いうる。誤差推定部２８０は、例えば情報処理装置のＣＰＵがプログラムに従って動作することによって実現される。
【００５２】
再計算判定部２９０は、誤差推定部２８０によって推定された予測評価行列Ｒ’の誤差が所定の範囲を超えた場合には、特徴行列記憶部１５０に格納された過去の特徴行列を用いずに、図６に示した例のような所定の回数（ｋ回）の繰り返し再計算によって、その時点での評価行列Ｒから特徴行列Ｆｕ，Ｆｉを再算出するように特徴行列生成部１４０に依頼する。この場合、再算出された特徴行列Ｆｕ，Ｆｉに基づいて、予測行列算出部１６０が予測評価行列Ｒ’を再算出する。再計算判定部２９０も、例えば情報処理装置のＣＰＵがプログラムに従って動作することによって実現される。
【００５３】
（２−２．誤差算出の例）
ここで、図１０および図１１を参照して、誤差推定部２８０における予測評価行列Ｒ’の誤差の算出の例について説明する。図１０は、本実施形態とは異なる一般的なＲＭＳＥの算出方法を示す図であり、図１１は、本実施形態におけるＲＭＳＥの算出方法の例を示す。
【００５４】
一般的な算出方法では、図１０に示されるように、データ行列（ＤＡＴＡ）をトレーニング部分（ＴＲＡＩＮＩＮＧ）とプローブ部分（ＰＲＯＢＥ）に分け、トレーニング部分を入力行列として行列演算を実行する。行列演算の結果得られる予測行列（ＥＳＴＩＭＡＴＥＤ）は、入力行列で空白になっていた（未知の要素であった）プローブ部分の予測値を含む。この予測値と、実際のプローブ部分の値との間でＲＭＳＥを算出することで、行列演算による要素予測の精度を評価することができる。
【００５５】
一方、本実施形態における算出方法では、図１１に示されるように、評価行列Ｒを入力行列として行列演算を実行して予測評価行列Ｒ’を算出し、評価行列Ｒに含まれる既知の要素と、当該要素に対応する予測評価行列Ｒ’の要素との間でＲＭＳＥを算出する。予測評価行列Ｒ’の算出にあたっては、評価行列Ｒに含まれる未知の要素だけではなく、既知の要素についても計算によって値が算出されるため、算出された値と、本来の評価行列Ｒの要素の値との間の誤差によって、行列演算による要素予測の精度を評価することができる。
【００５６】
上記の２つの算出方法のうち、一般的な算出方法では、数学的に厳密な誤差の算出が可能である。これに対して、本実施形態における算出方法によって算出される誤差は、一般的な算出方法に比べれば厳密ではない。しかし、本実施形態における算出方法では、データを２つの部分に分ける必要がないために、予測値の算出と誤差の算出とを１度の行列演算に含めることができる。
【００５７】
特徴行列生成部１４０における、特徴行列記憶部１５０に格納された過去の特徴行列を利用した特徴行列Ｆｕ，Ｆｉの算出は、効率的に計算を省略することによって処理量を抑制することを可能にするが、それでも計算を省略することによっていくらかの誤差が発生する。この誤差が蓄積すると、予測評価行列Ｒ’における予測値の精度が低下する可能性がある。それゆえ、本実施形態では、誤差推定部２８０が予測評価行列Ｒ’の誤差を算出し、誤差が所定の範囲を超えた場合には、再計算判定部２９０が、繰り返し演算によって評価行列Ｒから特徴行列Ｆｕ，Ｆｉを再算出するように特徴行列生成部１４０に依頼する。
【００５８】
しかし、新たなユーザやアイテムが追加されるにしたがって、評価行列Ｒは大規模化する。また、評価データｒは逐次に入力されるため、特徴行列生成部１４０による行列演算も高い頻度で実行されうる。従って、上記の一般的な算出方法のように、本来の行列演算とは別に誤差評価用の行列演算を実行することは容易ではない。一方、本実施形態における算出方法では、本来の行列演算の結果を利用して誤差の評価が可能であるために、特徴行列生成部１４０での行列演算と並行して誤差推定部２８０で実行することが容易である。
【００５９】
上記の通り、本実施形態における算出方法によって算出される誤差は、数学的な厳密性という点では一般的な算出方法に及ばない。しかしながら、誤差推定部２８０では、絶対的な基準での正確な誤差を算出する必要はなく、誤差が増加しているか否かといった相対的な変化傾向が把握できれば十分である。それゆえ、本実施形態では、誤差推定部２８０が上記のような算出方法によって行列演算の誤差を算出し、その誤差に基づいて再計算判定部２９０が特徴行列Ｆｕ，Ｆｉを再計算するか否かを判定することで、適切なタイミングで特徴行列Ｆｕ，Ｆｉを再計算し、要素予測の精度を維持することを可能にしている。
【００６０】
なお、本実施形態の変形例として、再計算判定部２９０は、誤差推定部２８０が算出する誤差以外の基準を用いて、特徴行列Ｆｕ，Ｆｉを再算出するか否かを判定してもよい。例えば、再計算判定部２９０は、特徴行列記憶部１５０に格納された過去の特徴行列を再利用した予測評価行列Ｒ’の算出が所定の回数以上実行された場合に、特徴行列Ｆｕ，Ｆｉを再算出することを決定してもよい。また、再計算判定部２９０は、評価行列Ｒに、新たなユーザや新たなアイテムが所定の数以上追加された場合に、特徴行列Ｆｕ，Ｆｉを再算出することを決定してもよい。あるいは、再計算判定部２９０は、所定の時間周期ごとに、特徴行列Ｆｕ，Ｆｉを再算出することを決定してもよい。このような場合、誤差推定部２８０は必ずしも設けられなくてもよい。
【００６１】
以上で説明した本開示の第２の実施形態では、第１の実施形態と同様に予測評価行列を算出するための特徴行列を導出するための処理量が大幅に低減されるとともに、所定の条件で予測評価行列が本来の繰り返し再計算によって再算出される。従って、例えば予測評価行列を用いた協調フィルタリングによるアイテム推薦を、逐次変化する評価データに追従してリアルタイムで実現することができるのに加えて、誤差の蓄積によって予測結果の精度が低下することを防ぐことができる。
【００６２】
（３．ハードウェア構成）
次に、図１２を参照して、本開示の実施形態に係る情報処理装置のハードウェア構成について説明する。図１２は、情報処理装置のハードウェア構成を説明するためのブロック図である。図示された情報処理装置９００は、例えば、上記の実施形態におけるサーバを構成する１または複数の情報処理装置を実現しうる。
【００６３】
情報処理装置９００は、ＣＰＵ（Central  Processing  unit）９０１、ＲＯＭ（Read  Only  Memory）９０３、およびＲＡＭ（Random  Access  Memory）９０５を含む。また、情報処理装置９００は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、通信装置９２５を含んでもよい。情報処理装置９００は、ＣＰＵ９０１に代えて、またはこれとともに、ＤＳＰ（Digital  Signal  Processor）などの処理回路を有してもよい。
【００６４】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、情報処理装置９００内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５は、ＣＰＵバスなどの内部バスにより構成されるホストバス９０７により相互に接続されている。さらに、ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Peripheral  Component  Interconnect/Interface）バスなどの外部バス９１１に接続されている。
【００６５】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置９００の操作に対応した携帯電話などの外部接続機器９２９であってもよい。入力装置９１５は、ユーザが入力した情報に基づいて入力信号を生成してＣＰＵ９０１に出力する入力制御回路を含む。ユーザは、この入力装置９１５を操作することによって、情報処理装置９００に対して各種のデータを入力したり処理動作を指示したりする。
【００６６】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、ＬＣＤ（Liquid  Crystal  Display）、ＰＤＰ（Plasma  Display  Panel）、有機ＥＬ（Electro-Luminescence）ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置９１７は、情報処理装置９００の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
【００６７】
ストレージ装置９１９は、情報処理装置９００の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Hard  Disk  Drive）などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【００６８】
ドライブ９２１は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体９２７のためのリーダライタであり、情報処理装置９００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録を書き込む。
【００６９】
接続ポート９２３は、機器を情報処理装置９００に直接接続するためのポートである。接続ポート９２３は、例えば、ＵＳＢ（Universal  Serial  Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small  Computer  System  Interface）ポートなどでありうる。また、接続ポート９２３は、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）ポートなどであってもよい。接続ポート９２３に外部接続機器９２９を接続することで、情報処理装置９００と外部接続機器９２９との間で各種のデータが交換されうる。
【００７０】
通信装置９２５は、例えば、通信ネットワーク９３１に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Local  Area  Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Wireless  USB）用の通信カードなどでありうる。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Asymmetric  Digital  Subscriber  Line）用のルータ、または、各種通信用のモデムなどであってもよい。通信装置９２５は、例えば、インターネットや他の通信機器との間で、ＴＣＰ／ＩＰなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置９２５に接続される通信ネットワーク９３１は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信などである。
【００７１】
以上、情報処理装置９００のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
【００７２】
（４．補足）
本開示の実施形態は、例えば、上記で説明したような情報処理装置、システム、情報処理装置またはシステムで実行される情報処理方法、情報処理装置を機能させるためのプログラム、およびプログラムが記録された一時的でない有形の記録媒体を含みうる。
【００７３】
なお、上記で説明した実施形態では、評価行列を入力とする協調フィルタリングの例について説明したが、本開示の実施形態はこのような例には限られない。本開示に係る技術は、未知の要素を含む入力行列を用いた行列演算によって、当該未知の要素の予測値を含む出力行列を算出する場合であれば、どのような場合にでも適用可能である。従って、入力行列の要素は、例えば特徴量空間におけるデータ間の距離であってもよく、その他の統計量であってもよい。扱われる情報によっては、処理は必ずしもサーバで実行されなくてもよく、例えばユーザが使用するＰＣなどの端末装置で実行されてもよい。あるいは、端末装置とサーバとに分散して処理が実行されてもよい。この場合、入力部および出力部は、端末装置に設けられるキーボードやディスプレイなどの入出力装置によって実現されてもよい。
【００７４】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００７５】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）未知の要素を含む入力行列から導出される１対の行列を、前記入力行列を参照して交互に再計算することによって、前記未知の要素の予測値を含む出力行列を算出するための１対の特徴行列を生成する予測計算部を備え、
前記入力行列は、第１の入力行列と、該第１の入力行列の一部の要素が更新された第２の入力行列とを含み、
前記出力行列は、前記第１の入力行列に対応して算出される第１の出力行列と、前記第２の入力行列に対応して算出される第２の出力行列とを含み、
前記予測計算部は、前記第２の入力行列から導出される前記１対の行列の代わりに、前記第１の入力行列から生成された前記１対の特徴行列を利用することによって、前記第２の入力行列から前記１対の特徴行列を生成するときの前記再計算の回数を前記第１の入力行列から前記１対の特徴行列を生成するときよりも少なくする情報処理装置。
（２）前記予測計算部は、前記第２の入力行列から前記１対の特徴行列を生成するときの前記再計算の対象を、前記更新された要素に対応する行を含む一部の行に限定する、前記（１）に記載の情報処理装置。
（３）前記一部の行は、前記更新された要素に対応する行と、それ以外の少なくとも１つの行とを含む、前記（２）に記載の情報処理装置。
（４）前記一部の行は、前記更新された要素に対応する行と、前記更新された要素との相関性が高い要素に対応する少なくとも１つの行とを含む、前記（３）に記載の情報処理装置。
（５）所定の条件が満たされた場合に、前記第２の入力行列から導出された１対の行列を前記第２の入力行列を参照して交互に再計算することによって前記１対の特徴行列を再生成することを決定する再計算判定部をさらに備える、前記（１）〜（４）のいずれか１項に記載の情報処理装置。
（６）前記第２の入力行列と、前記１対の特徴行列に基づいて算出された前記第２の出力行列との間の誤差を推定する誤差推定部をさらに備え、
前記再計算判定部は、前記誤差が所定の範囲を超えた場合に前記１対の特徴行列を再生成することを決定する、前記（５）に記載の情報処理装置。
（７）前記誤差推定部は、前記第２の入力行列の既知の要素と、前記第２の出力行列における該要素の予測値とを比較することによって前記誤差を算出する、前記（６）に記載の情報処理装置。
（８）前記再計算判定部は、前記第２の入力行列から導出される前記１対の行列の代わりに前記第１の入力行列から生成された前記１対の特徴行列を利用した前記１対の特徴行列の算出が所定の回数実行された場合に前記１対の特徴行列を再生成することを決定する、前記（５）〜（７）のいずれか１項に記載の情報処理装置。
（９）前記再計算判定部は、所定の時間周期ごとに前記１対の特徴行列を再生成することを決定する、前記（５）〜（８）のいずれか１項に記載の情報処理装置。
（１０）前記再計算判定部は、前記入力行列に所定の数の行または列が追加された場合に前記１対の特徴行列を再生成することを決定する、前記（５）〜（９）のいずれか１項に記載の情報処理装置。
（１１）前記入力行列の要素を更新する更新データの入力を、時間的に分散して逐次に受け付ける入力部をさらに備える、前記（１）〜（１０）のいずれか１項に記載の情報処理装置。
（１２）ユーザによるアイテムの評価値を要素して前記入力行列を生成し、前記更新データの入力時に前記入力行列の要素を更新する入力行列生成部と、
前記１対の特徴行列に基づいて前記出力行列を算出する出力行列算出部と、
前記出力行列に含まれる前記予測値に基づいて、前記更新データの入力に対応して前記ユーザへの前記アイテムの推薦情報を出力する推薦アイテム出力部と
をさらに備える、前記（１１）に記載の情報処理装置。
（１３）未知の要素を含む第１の入力行列を取得し、前記第１の入力行列から導出される１対の行列を、前記第１の入力行列を参照して交互に再計算することによって１対の特徴行列を生成し、前記１対の特徴行列に基づいて前記未知の要素の予測値を含む第１の出力行列を算出することと、
前記第１の入力行列の一部の要素が更新された第２の入力行列を取得し、前記第１の入力行列から生成された前記１対の特徴行列を、前記第２の入力行列を参照して交互に再計算することによって新たな１対の特徴行列を生成し、該１対の特徴行列に基づいて前記未知の要素の予測値を含む第２の出力行列を算出することと
を含み、
前記第２の出力行列を算出するときの前記再計算の回数が、前記第１の出力行列を算出するときの前記再計算の回数よりも少ない情報処理方法。
（１４）未知の要素を含む入力行列から導出される１対の行列を、前記入力行列を参照して交互に再計算することによって、前記未知の要素の予測値を含む出力行列を算出するための１対の特徴行列を生成する機能をコンピュータに実現させ、
前記入力行列は、第１の入力行列と、該第１の入力行列の一部の要素が更新された第２の入力行列とを含み、
前記出力行列は、前記第１の入力行列に対応して算出される第１の出力行列と、前記第２の入力行列に対応して算出される第２の出力行列とを含み、
前記機能は、前記第２の入力行列から導出される前記１対の行列の代わりに、前記第１の入力行列から生成された前記１対の特徴行列を利用することによって、前記第２の入力行列から前記１対の特徴行列を生成するときの前記再計算の回数を前記第１の入力行列から前記１対の特徴行列を生成するときよりも少なくするプログラム。
【符号の説明】
【００７６】
１００，２００    サーバ
１１０    評価データ入力部
１２０    評価行列生成部
１３０    評価行列記憶部
１４０    特徴行列生成部
１５０    特徴行列記憶部
１６０    予測行列算出部
１７０    推薦アイテム出力部
２８０    誤差推定部
２９０    再計算判定部
【図１】
2014095966.tif 000003
【図２】
2014095966.tif 000004
【図３】
2014095966.tif 000005
【図４】
2014095966.tif 000006
【図５】
2014095966.tif 000007
【図６】
2014095966.tif 000008
【図７】
2014095966.tif 000009
【図８】
2014095966.tif 000010
【図９】
2014095966.tif 000011
【図１０】
2014095966.tif 000012
【図１１】
2014095966.tif 000013
【図１２】
2014095966.tif 000014