(57)【要約】【課題】方法およびシステムは消費者に製品およびサービスのような商品を推奨する。【解決手段】商品に関する格付けは消費者から逐次的なデータのストリームとして受信される。その格付けを受信しながら、格付けされる度に、薄い特異値分解が更新される。特定の消費者の場合の特定の商品の推奨の予測は、格付けを受信し、特異値分解を更新しながら、更新された特異値分解に基づいて行われる。その格付けは、基礎選好行列のサイズ、構造および内容が分からなくなるように更新後に破棄される。【特許請求の範囲】
【請求項１】
消費者から商品に関する格付けのストリームを受信するステップと、
前記格付けを受信しながら、格付けされる度に、特異値分解を逐次的に更新するステップと、
前記格付けを受信し、かつ前記特異値分解を更新しながら、更新された特異値分解に基づいて、ある特定の消費者のための特定の商品の推奨を予測するステップと
を含むリコメンダシステムにおいて消費者に商品を推奨する方法。
【請求項２】
前記格付けのストリームをランダムな順序で非同期に受信するステップをさらに含む
請求項１記載の方法。
【請求項３】
前記更新するステップは、
前記特異値分解から前記格付けを追加し、変更し、取り消すステップをさらに含む
請求項１記載の方法。
【請求項４】
基礎選好行列のサイズ、構造および内容が分からなくなるように更新の後に前記格付けを破棄するステップをさらに含む
請求項１記載の方法。
【請求項５】
前記更新するステップは、薄いＳＶＤを生成するための前記特異値分解の逐次的なランク１更新である
請求項１記載の方法。
【請求項６】
前記特異値分解は行列Ｘを２つの直交行列ＵおよびＶと対角行列
【数１】
2006518075.tif 000031
とに因数分解し、ＵＳＶＴ＝ＸおよびＵＴＸＶ＝Ｓが成り立つようにし、ただし、ＴはＳＶＤ変換を表しており、ｓの要素は特異値であり、ＵおよびＶの列はそれぞれ左および右特異ベクトルであり、
Ｓの対角線上の負でない要素を降順に配列するステップをさらに含み、
Ｕの各列内の第１の０以外の要素は、前記薄いＳＶＤが固有になるように正である
請求項５記載の方法。
【請求項７】
所定の数のｒ個の最も大きな特異値および対応する特異ベクトル以外の全てを破棄するステップをさらに含み、
結果として生成された薄い行列の積
【数２】
2006518075.tif 000032
が最小二乗の意味でＸの最良のランクｒ近似になるようにし、行列Ｕ’ＴＸ＝Ｓ’Ｖ’Ｔである
請求項６記載の方法。
【請求項８】
Ｕ’の列によって規定される、ｒ個の直交軸へのＸの射影が、前記格付けの次元数を減らした表現である
請求項７記載の方法。
【請求項９】
Ｘは前記格付けの表形式化を表し、Ｕ’の列方向に延びる部分空間がｒ次元の消費者嗜好空間と解釈される
請求項８記載の方法。
【請求項１０】
個々の消費者が、各自の格付けの類似度に従って前記嗜好空間内に配置され、特定の消費者の前記格付け間の関係が列ベクトルｃとして表され、対応する嗜好−空間位置ｐが、ｃ＝Ｕ’ｐおよびｐ＝Ｕ’Ｔｃである
請求項９記載の方法。
【請求項１１】
積嗜好空間がベクトルＶ’であり、前記嗜好空間は前記消費者に応じて配列された商品を含む
請求項９記載の方法。
【請求項１２】
前記格付けを平行移動し、前記格付けを前記特異値分解の原点にセンタリングするステップをさらに含む
請求項１記載の方法。
【請求項１３】
特異値分解を、前記消費者の前記格付け間の相関を表す、前記格付けのガウス共分散モデルとして解釈するステップをさらに含む
請求項１２記載の方法。
【請求項１４】
列ベクトルａおよびｂ、ならびに薄いＳＶＤ  ＵＳＶＴ＝Ｘの場合に、前記更新するステップはＸ＋ａｂＴの特異値分解を求め、ただし列ｂはどの列が更新されるかを指示する二値ベクトルであり、列ａは前記格付けから導出される
請求項７記載の方法。
【請求項１５】
全ての打ち切られた特異値が小さな所定の閾値εを有する
請求項１記載の方法。
【請求項１６】
前記受信するステップおよび前記更新するステップの最中に推奨をリアルタイムに表示するステップをさらに含む
請求項１記載の方法。
【請求項１７】
前記受信するステップ、前記更新するステップおよび前記予測するステップはクライアントコンピュータにおいて実行される
請求項１記載の方法。
【請求項１８】
分散され、中央化されないリコメンダシステムを可能にするためにネットワークを介して接続される複数のクライアントコンピュータにおいて前記受信するステップ、前記更新するステップおよび前記予測するステップを実行するステップをさらに含む
請求項１７記載の方法。
【請求項１９】
前記受信するステップ、前記更新するステップおよび前記予測するステップは全てオンラインでリアルタイムに実行される
請求項１記載の方法。
【請求項２０】
リコメンダシステムにおいて消費者に商品を推奨するためのシステムであって、
消費者から商品に関する格付けのストリームを受信する手段と、
前記格付けを受信しながら、格付けされる度に、特異値分解を逐次的に更新する手段と、
前記格付けを受信し、かつ前記特異値分解を更新しながら、更新された特異値分解に基づいて、ある特定の消費者のための特定の商品の推奨を予測する手段と
を備えるリコメンダシステムにおいて消費者に商品を推奨するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は包括的には消費者リコメンダシステムに関し、より詳細にはそのようなシステムにおいて選好を修正することに関する。
【背景技術】
【０００２】
図１に示されるように、他のものよりも好ましいかもしれない特定の商品、たとえば製品およびサービスを見つけるために、消費者はリコメンダシステム１００を利用する。予測関数によって、リコメンダシステムは一般的に、他の消費者によってなされた商品に関する選好の格付け１０１を用いて、より大量の１組の商品の中から推奨１０２、すなわち好き嫌いを予測する（１２０）。このデータ処理アプリケーションは協調フィルタリングとしても知られている。
【０００３】
その予測関数は表形式のデータベース、すなわち記憶された（１１０）顧客スコア１０１の選好行列１０３を用いて、推奨を行う。たとえば、消費者が映画および書籍のような商品を採点する。テーブル１０３内のエントリは莫大な数になることも珍しくなく、たとえば１０３の商品の行および１０７の顧客の列にもなる。一般的に、テーブル１０３内の大部分のエントリ１０４は空であり、未知のスコア、すなわち格付けされていない商品である。それゆえ、そのテーブルは「スパース」である。
【０００４】
動作中のリコメンダシステムでは、テーブル１０３内のエントリは修正される必要があり、顧客が自分の選好を指示するのに応じて、行、列あるいは個々のスコアが絶えず追加されるか、編集されるか、あるいは取り消される。これらの修正は、多くの分散した発信源から高速かつ非同期に到達することができる。たとえば、映画の格付けは、極めて短い時間に、おそらく新作の映画が封切られてから１日の間に急速に進展する。
【０００５】
選好テーブルに格納し、選好テーブルを更新し、選好テーブルにアクセスするための効率的な方法が絶えず求められている。適度に効率的で、コンパクトで、正確な予測関数を推定することはさらに難しい問題であり、データマイニングおよび機械学習の分野においてかなりの注目を集めている。
【０００６】
生データとの照合を効率的に実施する最近隣探索法は、探索コストが高く、予測が限定されているにもかかわらず普及している。さらに複雑な予測方法は多くの場合に、データの次元数が非常に高いこと、モデルフィッティングの計算コストが高いこと、新規データあるいは取り消されるデータに適応できないことによって挫折する。さらに、極端にスパースなテーブルの場合、それらの方法の正確なパラメータ推定に確証を与えるには、多くの場合にデータが不十分である。
【０００７】
通常は、フォーカスグループの反応を用いて、そのテーブルの高密度のサブセットが構成され、それらの反応から予測関数が外挿される。非常に次元数が高くなる問題は、データの圧縮された表現として、および線形回帰による予測の基礎として、特異値分解（ＳＶＤ）のような多重線形モデルの外挿にある程度の動機を与えてきた。線形回帰モデルは一般的に、非線形モデルよりもパラメータ当たりのサンプルの複雑度が小さく、それゆえ、より良好に一般化を実現するものと期待されることができる。
【０００８】
ＳＶＤおよび関連する固有値分解（ＥＶＤ）は数多くのデータ解析方法において極めて重要である。それらは、次元数の削減、雑音の抑圧、クラスタリング、因数分解およびモデルフィッティングのために用いられる。いくつかの既知のリコメンダシステムはＳＶＤに基づく。
【０００９】
残念なことに、非常に大きな行列のＳＶＤを求めることは信頼性の低い作業である。選好テーブル１０３およびＳＶＤがバッチプロセス１３０によって更新されるとき、大部分の従来技術のリコメンダシステムは、図１に示されるように、オフラインにされる必要がある。分解は、行列１０３のサイズに関して、二乗の実行時間を有する。それゆえ、これは通常は夜間に行われる。結果として、選好が日中に急速に進展しているときでも、翌日になるまで正確な予測を入手することができない場合がある。
【００１０】
さらに、大部分のリコメンダシステムにおいてそうであるように、従来のＳＶＤは、欠測値１０４があるとき、一意に定義された結果を生成しない。列および行が完成しているという条件では、列あるいは行全体を如何にして追加したり、取り消したりするかはよく知られているが、新規の、あるいは取り消されたデータに適応することも１つの問題である。これは、データが行および列の断片で到達するときには当てはまらない。
【００１１】
ＳＶＤを更新すること（３０）は一般的に、ランチョス法、対称固有値摂動、あるいはたとえばＳＶＤと、修正グラム・シュミット法によって計算されるようなＱＲ分解との間の関係に基づく。最後のカテゴリは、いくつかの非常に高速な方法を含むが、直交性の喪失に弱い。
【００１２】
たとえば、左特異ベクトルがＯ（ｐｑｒ２）時間に求めることができる。ｐ、ｑ、ｒが予め知られており、ｐ≫ｑ≫ｒである場合には、予想される複雑度はＯ（ｐｑｒ）になる。しかしながら、直交性の精度は保持されず、満足のいく結果は、数百列を有する行列の場合にしか実証されていない。それは実用的なアプリケーションの場合にはあまりにも小さすぎる。
【００１３】
従来技術は、欠測値１０４が０値として処理される場合を除いて、それらの値を考慮しない。バッチ−ＳＶＤ更新の状況では、欠測値は通常、計算にコストがかかる期待値最大化法を用いて、部分空間インピューテーションによって処理される。
【００１４】
最初に、全ての完全な列のＳＶＤが実行される。次に、不完全な列がＳＶＤに対して回帰され、欠測値が推定される。その後、完成したデータは、固定点に達するまで、再因数分解され、さらに再びインピュートされる。
【００１５】
これは、二乗の時間で動作し、欠測値がほとんどないときにのみうまくいく極端に遅いプロセスである。それはさらに、インピューテーションが有効なランクを最小にしないという短所を有する。他の発見的方法は単に、欠測値を行あるいは列の平均値で埋めるだけである。
【００１６】
選好行列が概ね埋められている特別な事例では、空白を埋めることにより、その正規化された散乱行列は完全に埋め尽くすことができる。１つの発見的方法は、散乱行列の固有ベクトルを、散乱行列の右特異ベクトルと解釈する。これは厳密には間違いである。欠測値のインピューテーションが全く散乱行列の固有ベクトルと一致しない場合もある。本発明によって検討されるような、かなりスパースな問題の場合、この異論は、散乱行列も不完全であり、その固有ベクトルが定義されないという事実によって実際的な意味が失われる。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
それゆえ、不完全なデータを有するリコメンダシステムにおいて選好をオンラインで修正するための方法を提供する必要がある。
【課題を解決するための手段】
【００１８】
本発明は、データ生成プロセスが非定常性を示すとき、たとえば市場が徐々に変動する、あるいは消費者の嗜好が変化するときに、「薄い」ＳＶＤにデータを追加し、既にＳＶＤに取り込まれているデータを修正あるいは削除し、ＳＶＤを調整するための、ある種の逐次的な更新規則を提供する。
【００１９】
本発明による方法は消費者−商品格付けのデータストリームを処理し、そのデータストリームのスコアを含む断片はランダムに到達し、個々のスコアはいつでも恣意的に追加され、修正され、あるいは取り消される。
【００２０】
これらの純粋にオンラインの規則は時間複雑度が非常に小さく、１人の消費者の格付けしかキャッシュする必要がない。かなり大きなデータセットの場合でも、全ての動作がＣＰＵのオンボードメモリキャッシュに容易に適合する。特異値と、データ共分散を有する値とを特定することにより、本発明は、不完全なデータの最も確からしい完成値を選択する、インピューテーションによる更新を達成し、従来技術と比較して優れた予測能力を有する低ランクのＳＶＤに導く。
【００２１】
推奨、すなわち欠測値のインピューテーションは極めて高速である。そのシステムは、消費者が小さな任意の１組の調査映画の格付けを変更するのに応じて、何千もの映画タイトルの格付けをリアルタイムに予測し、表示する、完全にインタラクティブな映画リコメンダアプリケーションにおいて用いられることができる。従来技術の場合のように、ある大きく、さらにスパースな基礎（underlying）選好行列１０３ではなく、本発明によれば、本発明の薄いＳＶＤそのものが消費者選好モデルである。
【００２２】
そのシステムは、消費者の格付けに基づいてＳＶＤを修正することにより、システムが用いられるのに応じて「学習する」。消費者は非同期に参加し、格付けを追加し、映画を追加し、格付けを修正し、推奨を取得し、そのモデルから自らを取り消すことができる。
【発明を実施するための最良の形態】
【００２３】
システム概要
図２は、本発明による消費者選好を修正するためのオンラインシステムおよび方法２００の全体構成を示す。そのシステムは、当該技術分野において協調フィルタリングとして知られているものを実行する。
【００２４】
決められた順序ではなく、おそらくランダムに、選好スコアが格付け２０１の断片として非同期に受信される。格付けはそれぞれ、以下に記載されるように、任意の他の格付けとは無関係に１つずつ処理される。
【００２５】
格付けの断片を用いて、「薄い」ＳＶＤ２０４が任意の順序で更新（２１０）、すなわち追加され、変更されるか、または取り消される。各格付けがＳＶＤに取り込まれた後に、それは破棄されることができ、結果として、基礎選好行列の最終的なサイズ、構造および内容は分からなくなる。実際には、本発明は、従来技術において行われるように、基礎行列を計算あるいは格納する必要はない。
【００２６】
本発明の課題は、実際に格付け２０１の断片あるいは行列そのものを全く格納あるいはキャッシュすることなく、基礎データ行列のランクｒＳＶＤ２０４の最良の推定値を動作中に求めること、および格付けを受信し、ＳＶＤを更新しながら、要求に応じて、薄いＳＶＤ２０４だけから、個々の消費者のための個々の商品の推奨（２０３）を予測する（２２０）ことである。最初に、ＳＶＤ２０４は空きにすることができ、すなわちヌルＳＶＤにすることができる。ＳＶＤを「ブートストラップ」するための任意選択のステップが以下に記載される。
【００２７】
この目的を果たすために、本発明は、ＳＶＤ１０４のための１組のランク１の逐次的な更新規則を提供する。更新規則は、ＳＶＤ１０４を線形の時間で構成するだけの十分に速い、非常に高速な追加、取り消し、および要素単位の編集を提供する。その更新は正確であるが、多くのエントリが未知であるので、ＳＶＤ１０４は推定値である。言い換えると、基礎行列は極めてスパースである。
【００２８】
さらに、真の選好行列はｒよりも大きなランクを有することができる。この事例では、ガウス−マーク定理がランクｒの近似のための最小二乗最適化の保証を与える。
【００２９】
欠測値に直面するとき、本発明は、正確に一般化できる確率を最大にするインピューテーションによる更新を用いる。本発明の方法は、従来技術のオフラインバッチＳＶＤ法よりもはるかに高速であり、少なくとも同程度の予測をする。
【００３０】
ランク１更新は、図５に示されるようなグラフィカルコンシューマインターフェースを有するフルスケールのムービーリコメンディングシステムにおいて用いられることができる。そのシステムでは、消費者はスライダを動かして映画を格付けし、ミリ秒の応答時間で全ての他の映画が格付けし直され、ランク付けされるのを確認する。システム２００は再び、消費者の問い合わせによる格付けからリアルタイムに「学習し」、オフラインバッチプロセスに全く頼る必要はない。
【００３１】
薄いＳＶＤ
一般的に、特異値分解は行列Ｘを２つの直交行列ＵおよびＶと、対角行列
【００３２】
【数１】
2006518075.tif 000002
【００３３】
とに因数分解し、ＵＳＶＴ＝ＸおよびＵＴＸＶ＝Ｓが成り立つようにする。ただし、Ｔは行列の転置を表す。Ｓの対角線上の要素は特異値と呼ばれ、ＵおよびＶの列はそれぞれ左特異ベクトルおよび右特異ベクトルと呼ばれる。
【００３４】
これらの行列が符号を付され、Ｓの対角線上の要素ｓが負ではないように、降順に配列され、Ｕの各列内の最初の０以外の要素も正であるように配列される場合には、ＳＶＤは固有であり、任意の０の特異値は無視される。
【００３５】
ＳＶＤは最適な打切り特性を有する。所定の数のｒ個の最も大きな特異値および対応する特異ベクトル以外の全てが破棄される場合には、結果として生成される薄い行列の積
【００３６】
【数２】
2006518075.tif 000003
【００３７】
は最小二乗の意味においてＸの最良のランクｒの近似である。これが薄いＳＶＤ２０４である。そのため、行列Ｕ’ＴＸ＝Ｓ’Ｖ’Ｔすなわち、Ｕ’の列によって特定されるｒ個の直交軸上へのＸの射影は、入力される格付け２０１の優れた、次元数を削減した表現である。
【００３８】
消費者嗜好空間
Ｘが消費者−商品格付け２０１の表形式化である場合には、Ｕ’の列方向に延びる部分空間はｒ次元の消費者嗜好空間と解釈される。個々の消費者の格付けは、それらの格付けの類似度に従ってテスト空間内に配置される。列ベクトルｃとして表される、ある消費者の格付け間の関係、および対応する嗜好−空間位置ｐは、ｃ＝Ｕ’ｐおよびｐ＝Ｕ’Ｔｃである。
【００３９】
列ベクトルｃが不完全である場合には、以下に記載される種々のインピューテーション法が、ｐを推定し、それゆえベクトルｃを完成させることができる。これは、本発明の薄いＳＶＤに基づくリコメンダシステム２００の基礎である。本発明は、嗜好空間内の位置ｐへのユークリッド距離によって類似の嗜好を有する消費者を特定することもできる。
【００４０】
商品嗜好空間
同様に、商品嗜好空間Ｖ’はその商品を好む消費者に応じて配列された商品を含む。多くの場合に、これらの空間は、クラスタリング、視覚化、市場細分化および新商品の価格設定などの後の分析のために有用である。
【００４１】
薄いＳＶＤ２０４は、データの断片２０１が最初に平行移動されて、薄いＳＶＤ２０４の原点を中心にして配置されるようにするときに最も多くの情報を提供する。この場合、薄いＳＶＤ２０４は、消費者の嗜好間の相関を表す格付け、すなわち格付け２０１のガウス共分散モデルと解釈されることができる。そのようにセンタリングすることにより、典型性および欠測値についての適当なベイズの推定、および統計的なテストが、それらのガウス性を実証できるようになる。
【００４２】
センタリングは別にして、薄いＳＶＤ２０４を用いるための主な実用上の障害は薄いＳＶＤを求めるコストである。最新の方法は通常、ランチョスあるいはリッツ・レイリー反復法に基づく。実行時間は、データ内の０以外の要素の数に関して線形にすることができる。しかしながら、それらの方法は、バッチプロセスにおいて収束させるためにデータセット全体を通過する多数のパスを必要とし、本発明のオンラインシステム２００には適していない。
【００４３】
本発明による逐次的なＳＶＤ更新は、データＸの既知のＳＶＤを変更して、追加された列（［Ｘ，ｃ］）を有する、そのデータの新たなＳＶＤを得ることに焦点を当てる。厳密な閉じた形の更新規則は、行列全体の場合に線形の時間（Ｏ（ｐｑｒ）時間）内に逐次的な更新による低ランクのｐ×ｑ行列のランクｒのＳＶＤを構築し、その行列の列を通過する単一のパスを形成する。これは、データが格納される必要がないことを意味する。
【００４４】
ｐ×ｑの行列Ｘおよび最小ランクｒの所望のＳＶＤの場合、本発明の方法は、Ｏ（ｐｑｒ）時間内に全ＳＶＤを更新し、それは入力および出力のサイズに関して線形であり、一方、従来技術の更新方法は出力のサイズに関して２乗であるか、あるいはデータを通過する多数のパスを形成しなければならないか、あるいは収束するまで繰り返さなければならない。
【００４５】
本発明による方法２００は、ある特定の事例としてこれを含み、その非常に都合のよい性能を受け継ぐ。ここで、それらの規則は、ダウンデートすること、すなわち行および列を除去すること、修正すること、すなわちある行あるいは列内の選択された値を変更すること、およびセンタリングし直すことを含む、真のオンラインシステム２００のために必要とされる残りの操作を提供するように一般化される。
【００４６】
オンラインシステム２００では、ＳＶＤ２０４をセンタリングされた状態にしておくことは重大な問題である。なぜなら、部分的にはサンプル変動に起因して、さらに重要なのは、時間とともに消費者の中の嗜好を変化させるなどの統計的に有意な現象に起因して、データの平均値が絶えず変動していくためである。
【００４７】
ＳＶＤの更新
更新、ダウンデート、修正およびリセンタリング２１０は全てランク１更新の事例である。列ベクトルａおよびｂならびに既知のＳＶＤ  ＵＳＶＴ＝Ｘ  ２０４を与えると、その更新は、Ｘ＋ａｂＴのＳＶＤを求める。通常、ｂは、どの列が変更されたかを示す二値ベクトルであり、ａは、全ての列から減算される、更新あるいはダウンデート値（ｃ）、修正値（ｄ）あるいは平均値（ｍ）から導出される。これらの操作は表Ａに要約される。
【００４８】
【表１】
2006518075.tif 000004
【００４９】
Ｕ’Ｓ’Ｖ’Ｔ＝Ｘ＋ａｂＴのＳＶＤを与えるために、全てのデータベース操作は薄いＳＶＤ２０４、ＵＳＶＴ＝Ｘのランク１変更として表される。
【００５０】
付録Ａは、任意のそのような低ランクの変更が既知のＳＶＤ２０４によって規定される低次元の部分空間内の操作によって如何に解かれることができるかを記載する。基本的な方策は、薄いＳＶＤ２０４が、古い部分空間と、左および右回転によって再び対角行列にされることができる、対角行列でない核行列との積として表されることである。これらは小行列の操作であり、それゆえ高速である。
【００５１】
古い部分空間に反対の回転を適用することにより、ＳＶＤ２０４が更新される。このステップでも、大きな部分空間行列に小さな回転を適用する代わりに、多くの更新にわたって小さな回転を蓄積することにより高速に行われることができる。したがって、本発明のランクｒの薄いＳＶＤ２０４の場合、支配的な計算はｒに比例し、それは通常データのサイズに対して非常に小さい。
【００５２】
図３に示されるように、ランク１規則の特別な事例では、ＳＶＤ更新２１０は高速かつ簡単になる。図３は、逐次的なＳＶＤ更新３０１と従来技術のバッチランチョス３０２との実行時間を、ランダムな行列から計算される特異値の数の関数として示す。各データ点は１００回の試行の平均値を表す。本発明の更新２１０は明らかな一次のスケーリング３０１を示す。
【００５３】
その計算を注意深く管理することにより、更新規則は、ランクがサイズに対して小さいときに、純粋に線形の時間Ｏ（ｐｑｒ）内にｐ×ｑのランクｒの行列の正確なＳＶＤを構築することができる。これが図３に示されており、本発明の方法３０１の実施態様が従来の商用のランチョスの実施態様３０２と比較される。
【００５４】
基礎行列の真のランクがｒよりも大きいとき、本発明の薄いＳＶＤ２０４は必然的にある近似を与える。各更新は、所定の上限に達するまで、ＳＶＤのランクを１だけ増加させる。この時点で、最適な固定されたランクの近似を与える、最後の特異値は捨てられなければならないので、その更新は正確でなくなる。通常、この特異値は非常に小さな値を有し、近似誤差は多くの更新にわたって相殺する。実際には、本発明の方法は、従来技術のランチョス法に匹敵する計算精度を有することができる。
【００５５】
本発明の方法は非常に高速であるので、常にランク２ｒのモデルを構築し、ランクｒのサブモデルを用いることができ、それは通常は機械精度に達するほど正確である。消費者格付けのような、導出された応答を分析するとき、消費者が示す再現性は低く、格付けは日毎にスケールの４０％まで変動するので、それらの値そのものは周知のごとく信頼性がない。それゆえ、本発明のシステムによって可能になるような、データの良好な低ランクの近似は、データを完全に再構成する中間ランクの従来技術のモデルよりも正確に一般化される確率が高くなる。
【００５６】
更新だけでなく、本明細書に記載される全ての操作は、計算の複雑度が低く、純粋なストリーミングデータの断片２０１において機能し、従来技術において必要とされるように、基礎選好行列を格納しない。更新は、現在のＳＶＤ２０４、現在の消費者あるいは商品の索引、および新たな格付けを含むベクトル２０１しか必要としない。何千もの行および列を有する基礎行列の場合でも、更新はＣＰＵのオンボードメモリキャッシュ内に全てのデータを保持することができ、非常に高速の動作に寄与する。
【００５７】
インピューテーションおよび予測
上記のように、格付けテーブルは通常不完全である。大部分のエントリは未知である。分解が一意に定義されないので、行列の因数分解に基づく従来技術のプロセスの場合、欠測値は深刻な問題を提起する。１つの値が不足している場合であっても、残りの既知のエントリと一致する固有のＳＶＤの連続した軌道が存在する。インピューテーションの問題、すなわち、欠測値を如何に予測するか（２２０）は、ＳＶＤ２０４を求め、推奨２０３を行う際に重要な役割を果たす。
【００５８】
大部分の従来技術のＳＶＤは、第１に、密度の高い部分行列の小さなＳＶＤを実行し、第２に、ＳＶＤに対して回帰を行い、部分行列のある隣接する部分において欠測値をインピュートし、第３に、密度が高く、インピュートされた値のより大きなＳＶＤを実行し、第４に、全ての欠測値が埋められるまで繰り返す。
【００５９】
それらの方法は二次の複雑度を有し、その結果は回帰方法の選択およびインピューテーションの順序に非常に影響されやすい。他の方法は、期待値最大化プロセスに基づいており、類似の複雑度を有し、初期条件に影響されやすい。近似理論は、限られたメモリを用いるオンラインの状況において学習するとき、データ順序化にある程度の影響を受けるのは避けられないことを教示する。
【００６０】
本発明の逐次的な更新中にこのように影響されやすいのを最小限に抑えるための方策は、正確に一般化する確率を最も高くする更新を、一般的にはデータの確率を最大にしながらＳＶＤの複雑度を制御することによって選択することである。
【００６１】
本発明のシステムは、特異値および左特異ベクトルがデータの共分散行列のＥＶＤを含むという事実を利用する。データが正規分布で、かつ異方性の分布を有するというかなり弱い仮定の下では、ＳＶＤ２０４はデータ密度の１つのモデルと解釈されることができ、ＳＶＤ更新は、その密度の逐次的な更新である。
【００６２】
完全なベクトルを追加することは、１つの点を用いて密度を更新することと等価である。不完全なベクトル２０１を追加することは、その軸がベクトルの未知の要素に対応する部分空間を用いて密度を更新することと等価である。ＳＶＤが薄い場合には、予測される値は、データと欠測値部分空間とが交わる場所内に存在するようにさらに制約を加えられることができる。
【００６３】
線形回帰のような単純なインピューテーション方式は、基本的にいくつかの未知数が０値であるものと仮定して、欠測値部分空間あるいは交わり部分空間内の原点に最も近い点を選択する。そのようなインピューテーションは真である可能性は少なく、一般的には、ＳＶＤに取り込まれるときに、それらのモデルの予測性を低下させる。
【００６４】
明らかに、インピューテーションはいくつかの事前の、あるいは学習された知識を必要とする。付録Ｂでは、格付けベクトルｃの中の値が未知であるが、ある既知の範囲内に存在するものと仮定されるときに用いるための高速インピューテーション更新が記載される。これは格付けデータにおいて普通である。
【００６５】
本発明は、インピューテーションに、以前に処理されたデータの密度を提供する。均一な事前確率を有するデータ密度に対して、その尤度に従って交わり部分空間内の全ての点が考慮される場合には、事後確率は、欠測値の推定値が原点から最も小さな標準偏差に位置する点を選択することによって与えられることを意味する。
【００６６】
付録Ｃは、この確率的なインピューテーションが如何に決定されるかを記載する。ＳＶＤ更新の場合、欠測値要素のフルインピューテーションは不要である。インピュートされた点の部分空間座標で十分である。本発明のインピューテーションはＳＶＤのランクの成長を貪欲に最小限に抑え、それによりモデルの複雑度を低減する。このインピューテーションは、リコメンダシステム２００のようなタスクにおいて非常に良好な結果を与える。
【００６７】
インピュートされた縦座標は基本的には、ある消費者が全ての商品を如何にランク付けするかの予測であり、全ての他の消費者の格付けの一次の混合として決定され、それらの格付けと現在の消費者の少ない既知の格付けとの間の相関によって重み付けされる。
【００６８】
しかしながら、密度に基づくインピューテーションには問題が生じる可能性がある。非常に稀な事例では、交わり空間が原点から非常に離れているとき、大きいが、ありそうにもないベクトルがＳＶＤ２０４に追加されるようになる。そのようなベクトルが起こり得ないこと、すなわち、それらの値がある小さな範囲に限定されることが先験的にわかっている場合には、そのような制約は多くの場合に、最小二乗法によってなされる、ガウス事前確率および最大事後確率インピューテーションとして表されることができる。
【００６９】
薄いＳＶＤ２０４の事例では、これは打ち切られた特異値の全てが、０値ではなく、非常に小さな所定の値εを有するものと仮定することに等価である。これは、主成分分析のベイズ的な公式化に等価である。結果として、インピュートされたベクトルはさらに小さいが、嗜好空間のわずかに外側に存在するようになる。本発明は、正確なランク増加更新、あるいは近似的な固定ランク更新のいずれかによってこれに対応することができる。
【００７０】
ＳＶＤのブートストラップ
特異値の「量」が多くなると、インピューテーションが以前の入力によってさらに制約を受けるようになり、それゆえ推定されるＳＶＤがさらに良好になる。これは、数少ない消費者が少ない商品を格付けしただけであるので、本発明の薄いＳＶＤ２０４がほとんどスコアを持たないときの開始時に問題を提起する。
【００７１】
実用上のアプリケーションでは、消費者は通常全ての商品の１％未満を格付けするので、そのシステムが暫く使用されるまで、任意の商品が２人以上の消費者によって格付けされる機会はほとんどない。
【００７２】
この問題に対処するための任意選択の方法は、一時的な行列内に最初の数百の提出された格付け２０１を格納し、その後、その行列の１つの角においてそれらの格付けが高密度になるように、その格付けを並べ替えることである。このように格付けを並べ替えることができる。ＳＶＤ２０４は、行および列２０１の断片で逐次的に更新する（２１０）ことにより、この角から「成長」することができる。
【００７３】
最終的に値を予測することが必要になるとき、すなわちその方法が完全な行および列をそれ以上持たないとき、これらのインピューテーションには適度に制約が加えられる。本発明の方式は、インピューテーションが以前に取り込まれたデータによって適度に制約を加えられることができるまで、インピューテーションを延期する。また、著しくスパースな嗜好行列の因数分解も可能になる。
【００７４】
結果
消費者−商品スコアの極端にスパースな配列を協調フィルタリングする場合の結果と、欠側するスコアの予測を決定する場合の結果とがここで比較される。
【００７５】
Sarwar等が９４３人の消費者による１〜５段階の１６５０本の映画の格付けを含む９３．７％空行列を収集した。「Application of dimensionality reduction in recommender system - a case study」（ACM WebKDD 2000 Web Mining for Ecommerce Workshop. ACM Press, 2000）を参照されたい。これらのスコアはトレーニングセットおよびテストセットに８０％−２０％で分割された。彼らは、トレーニング行列内の欠測している要素を映画毎の平均格付けで満たし、その行列をセンタリングし、その後、一連の薄く、スパースなランチョスＳＶＤを計算した。彼らは、ランク１４の基底が平均絶対誤差（ＭＡＥ）および平均二乗誤差によって測定されるようなテストセットを最もよく予測することを見いだした。
【００７６】
図４に示されるように、Ｓａｒｗａｒ行列がランチョスＳＶＤと同じようにして再処理されたとき、ランク１５の基底がより良好な結果を与えており（４０１）、０．７９１４のＭＡＥとある標準偏差（ＳＤ）とを有する。その差は、トレーニングセットとテストセットの異なる分割に起因しているであろう。
【００７７】
その後、本発明による増分インピューテーションＳＶＤが生のトレーニングデータセットに適用された。本発明による方法は、０．７９１０ＭＡＥ、１．０８１１ＳＤのさらに良好な予測精度４０２を有する５次元の部分空間を見いだした。５個の互いに素なトレーニング／テスト分割それぞれにおいて、増分法はコンパクトな４あるいは５次元の基底を生成し、その基底は、最良であるが、はるかに大きなランチョス導出の基底と少なくとも同程度の予測をした。
【００７８】
本発明のスコアは、同じデータセットにおける最近隣法によるシステムの性能に関して発表されている報告に匹敵する。しかしながら、本発明の方法の記憶装置ははるかに小さく、高速の更新および予測を提供する。驚くべきことに、本発明による増分ＳＶＤは、５個の最も大きな特異値がデータ内の分散のほとんどを占めることを示す。
【００７９】
全ての試行において、結果として生成された予測子は、その時間の８０％以上において真値の１格付け点内にあり、その時間の９９％以上において２格付け点内にある。消費者は、同じ映画を違う日に格付けするように求められるときに、多くの場合に日によって１〜２点の不一致を示すので、これはおそらく十分過ぎるほど正確である。また本発明の増分法は、より高速であるという実用上の利点も有し、ランチョスバッチ法の場合の１．８ギガフロップに対して０．５ギガフロップしか必要としない。
【００８０】
本発明によれば、行列に新たな映画あるいは視聴者が追加されるときに、ＳＶＤをオンラインで更新できるようになる。従来技術の協調フィルタリングシステムは典型的には、新たなデータを取り込むために、大きな夜間のバッチ処理を必要とする。
【００８１】
瞬時リコメンダ
ＳＶＤ基底は小さく、計算負荷が軽いので、図５に示されるように、実用的なリアルタイムの協調フィルタリングシステムがＪａｖａ（登録商標）を用いて構成されることができる。日本語バージョンが示される。
【００８２】
そのシステムに問い合わせるために、消費者は、少数の映画を、そのタイトル５０１を格付けパネル５０２内に「ドラッグ」することにより選択し、各映画が、スライディングスケールに沿ってスライダ５０３を動かすことにより格付けされることができる。全ての他の映画の予測される格付けおよび並べ替えられた推奨のリストがリアルタイムに更新され、表示される。スライダ５０３が動くのに応じて、全ての他の映画タイトルに隣接するスライダ５０４が動く。全ての映画を格付けし直すのに要する平均時間は６ミリ秒であるので、フィードバックはリアルタイムである。
【００８３】
瞬時の視覚的なフィードバックの１つの利点は、任意の映画の予測される格付けが、現在その消費者によって変更されている映画の格付けに如何に強い相関があるか、あるいは相関がないかを消費者が確認することができることである。
【００８４】
第２に、そのシステムが消費者と異なる予測を行う場合には、消費者が、その映画を格付けパネル内にドラッグし、そのシステムを補正することができる。何回かそのように繰り返した後に、本発明のシステムは、嗜好空間内の消費者の位置の過度に制約を加えられた推定値を迅速に生成し、改善された推奨と、ＳＶＤに取り込まれることになる、より多くの情報を提供する格付けベクトルとに導く。
【００８５】
消費者が終了したとき、その現在の格付けを用いて、ＳＶＤ基底が更新される。また消費者は、自分がいつでも格付けに立ち返るか、格付けを修正するか、あるいは格付けを除去することができるように、永続的な識別子を獲得することもできる。
【００８６】
分散型協調フィルタリング
１つの実施態様では、システム２００は、スタンドアローンのＪａｖａ（登録商標）アプリケーションにおいて、更新とリコメンディングとを組み合わせることができる。更新は５０ミリ秒の平均時間を要する。リアルタイムで、インタラクティブなアプリケーションとして、本発明による方法は、基底が絶えず更新されながら、従来技術のような中央に配置されたサーバ上ではなく、分散したクライアントコンピュータ上で実行することができる。新たな映画および消費者を追加することにより、基底が成長する。
【００８７】
図６に示されるように、リコメンダシステム２００は、Ｊａｖａ（登録商標）スクリプトウエブページ６０１として、ネットワーク６２０、たとえばインターネットに接続されるウエブ機能のあるクライアント６１０にダウンロードされることができる。従来技術の場合のように中央サーバを用いて基底を更新する代わりに、格付け６３０は他のクライアントコンピュータに分散され、各クライアントが独立した更新を実行することができる。したがって、本発明は、全体として分散化された真の協調フィルタリングシステム７００を可能にする。
【００８８】
発明の効果
本発明は、「薄い」ＳＶＤが、事情が異なれば消費者−商品スコアの基礎行列上で行われるはずのデータベース操作を効率的に「模倣」できるようにする一群のランク１ＳＶＤの修正規則を提供する。これらの操作は、行、列およびその断片を追加し、取り消し、修正すること含む。
【００８９】
さらに、そのＳＶＤは、データストリーム変動の平均値としてセンタリングされ直すことができる。解釈される操作は高速であり、その記憶要件は最小である。その方法は、スタンドアローンあるいは分散型システムにおいて、共同使用する嗜好モデルとのリアルタイムのグラフィカルインタラクションとして実行するほど十分に高速である。
【００９０】
本発明は好ましい実施形態を例として記載されてきたが、本発明の精神および範囲内で種々の他の改変あるいは変更がなされることができることを理解されたい。それゆえ、添付の請求の範囲の目的は、本発明の真の精神および範囲内に入るような全てのそのような変形あるいは変更を網羅することである。
【００９１】
付録Ａ
【００９２】
Ａ  低ランクの変更
ＵＴＵ＝ＶＴＶ＝Ｉの場合のＵｄｉａｇ（ｓ）
【００９３】
【数３】
2006518075.tif 000005
【００９４】
を行列
【００９５】
【数４】
2006518075.tif 000006
【００９６】
のランクｒの薄い特異値分解（ＳＶＤ）とする。この付録は、Ｘ＋ＡＢＴのＳＶＤに対してＵ、ｓ、Ｖを如何に更新するかを示す。ただし、Ａ、Ｂはｃ列を有する。元の行列Ｘは必要とされない。効率的なランクＩ更新によって、Ｘの１つの列（あるいは行）が、Ｖ（それぞれＵ）行列全体を用いることなく修正あるいは削除されるようになる。
【００９７】
ＰをＱＲ分解
【００９８】
【数５】
2006518075.tif 000007
【００９９】
から得られるような、（Ｉ−ＵＵＴ）Ａ＝Ａ−ＵＵＴＡの直交基底、すなわちＵに直交するＡの成分とする。ただし、（１．１）は修正グラム−シュミット法（ＭＧＳ）［９、§５．２．８］を用いて計算されることができる。ＲＡは上三角行列である。同様に、ＱをＢ−ＶＶＴＢの直交基底とする。そのとき、以下の式が成り立つ。
【０１００】
【数６】
2006518075.tif 000008
【０１０１】
目標は、式（１．４）を対角行列にし直すことである。Ｕ’ｄｉａｇ（ｓ’）Ｖ’Ｔを式（１．４）の右辺（ＲＨＳ）のランク（ｒ＋ｃ）ＳＶＤとする。そのとき、ランクｒＳＶＤのランクｒ＋ｃ更新は以下のようになる。
【０１０２】
【数７】
2006518075.tif 000009
【０１０３】
元のデータ行列Ｘは決して必要とされないことに留意されたい。
【０１０４】
Ａ．Ｉ  ランク１変更
ランク１更新は特別な効率を提供する。Ｘ＋ａｂＴの更新されたＳＶＤの場合、式（１．１）のＭＧＳを拡張して、
【０１０５】
【数８】
2006518075.tif 000010
【０１０６】
と、同様に
【０１０７】
【数９】
2006518075.tif 000011
が得られる。その際、式（１．４）の最も右側の項は以下のベクトル外積である。
【０１０８】
【数１０】
2006518075.tif 000012
【０１０９】
たとえば、ｘの第１の列をｙに変更したかった場合には、ｂ＝［１，０，０．．．］Ｔである。ｎＴはＶの第１の行である。ａ＝ｙ−Ｕｄｉａｇ（ｓ）ｎはｙからＸの第１の列を引いたものである。
【０１１０】
【数１１】
2006518075.tif 000013
【０１１１】
等となる。列ｙをＳＶＤに付加するために、Ｖに０の行を付加することにより元のＳＶＤに０の列を付加し、その後、その列をｙに更新する。この事例では、ｎ＝０およびｑ＝Ｉであるので、式１．４は破線矢印の行列（broken-arrow matrix）
【０１１２】
【数１２】
2006518075.tif 000014
【０１１３】
を対角行列にし直すことのみを求める。ただし、それは、Ｏ（ｒ２）時間［１０］内になされることができる。
【０１１４】
付録Ａ続き
【０１１５】
ｙ＝０を設定することは、ｂによって選択される列を０にすることによりＳＶＤを効率的にダウンデートする。この事例では、ＲＨＳ式（１．４）は
【０１１６】
【数１３】
2006518075.tif 000015
【０１１７】
に簡略化される。Ｐは使用されず、
【０１１８】
【数１４】
2006518075.tif 000016
【０１１９】
はＶを更新する場合にのみ用いられる。ｉ番目の列をダウンデートするために必要なのは、Ｖのｉ番目の行を知ることだけであることに留意されたい。
【０１２０】
ＲＨＳ式（１．４〜１．１０）の特殊な構造および概ね対角行列であることによって、さらに計算を効率化することができる。たとえば、ＪがＲＨＳ式（１．１０）に等しいものとする。そのとき、ＪＪＴ＝ｄｉａｇ（ｓ）２−（ｄｉａｇ（ｓ）ｎ）（ｄｉａｇ（ｓ）ｎ）Ｔは対称な対角＋ランク１行列である。そのような行列の場合に、固有ベクトル
【０１２１】
【数１５】
2006518075.tif 000017
【０１２２】
が（ｄｉａｇ（ｓ）２−Ｓ’ｉ２Ｉ）−１ｎに比例するとき、固有値ｄｉａｇ（ｓ’）２が
【０１２３】
【数１６】
2006518075.tif 000018
【０１２４】
の解を得るためのニュートン反復によって迅速に求められることができることが知られている［１８、９、セクション８．５．３］。式（１．７）は対角＋ランク２の対称固有値問題に繋がり、より複雑な解法を必要とする。
【０１２５】
Ａ．２  制御の複雑度
単純になされる場合には、式１．１にはＯ（ｐ（ｒ＋ｃ）２）の時間を要し、対角行列にし直すのにＯ（（ｒ＋ｃ）３）の時間を要し、式１．６の部分空間の更新にはＯ（（ｐ＋ｑ）（ｃ＋ｒ）２）の時間を要する。固定されたランクＳＶＤのランク１更新の状況では、これらの時間は、ＭＧＳを拡張し、スパースな対角化を実行し、以下のトリックを用いることにより、それぞれＯ（ｐｒ）、Ｏ（ｒ２）およびＯ（ｒ３）に短縮されることができる。式１．６によって規定される大きな乗算Ｕ”＝［Ｕ，ｐ］Ｕ’、Ｖ”＝［Ｖ，ｑ］Ｖ’を実行する代わりに、ＳＶＤを５個の行列
【０１２６】
【数１７】
2006518075.tif 000019
【０１２７】
に分解されたままにしておき、より小さな内部行列Ｕ’、Ｖ’のみを更新する。ａがＵの部分空間に含まれ、同様に
【０１２８】
【数１８】
2006518075.tif 000020
【０１２９】
である事例では、ｐおよびｑは無視されることができ、その更新は正確である。そうでなければ、ｐおよびｑ内の情報は、ＵおよびＶに付加されるように表されることができるか［３、付録］、あるいは固定ランクの近似の下で破棄されることができる。先に述べられたように、低ランクの行列
【０１３０】
【数１９】
2006518075.tif 000021
【０１３１】
の場合、全ＳＶＤが、全部でＯ（ｐｑｒ）の時間になる一連の更新において計算されることができることが明らかである［３］。
【０１３２】
付録Ｂ
【０１３３】
相対する角ｙおよびｚによって規定される実現可能な更新の０でない長方形の大きさｖについて考えてみる。ｚｉをｚのｉ番目の要素とする。この空間において均一な測度を仮定すると、その大きさの第２のモーメントは、
【０１３４】
【数２０】
2006518075.tif 000022
【０１３５】
である。ただし正規化係数は
【０１３６】
【数２１】
2006518075.tif 000023
【０１３７】
である。ここで、原点はデータ平均値になるように選択されるので、式（２．１２）は共分散として解釈される。ｙｉ−ｚｉの任意の次元は捨てられることができる（ｙから要素ｙｉを捨て、ｚｉの場合も同様）。対称な境界は情報を提供しないので、その次元のインピュートされた値は強制的に０にされる。同様に、ｙｉ＝ｚｉの次元も捨てられる。インピューテーションは必要とされない。その積分を展開すると、Σｖの対角要素は（ｙｉ２＋ｙｉｚｉ＋ｚｉ２）／３であり、対角以外の要素は（ｙｉ＋ｚｉ）（ｙｊ＋ｚｊ）／４であり、すなわち
【０１３８】
【数２２】
2006518075.tif 000024
【０１３９】
であることがわかる。ただし、
【０１４０】
【数２３】
2006518075.tif 000025
【０１４１】
である。これは、ｋ×ｋの対角＋ランク１行列であり、ただしｋはｙｉ≠±ｚｉである次元の数である。ΣｖはＥＶＤ  ＷＡＷＴ＝Σｖを有し、それは先に記載されたニュートン法を用いて、Ｏ（ｋ２）の時間内にベクトルｙ＋ｚ、ｙ−ｚから直に計算されることができる。ＳＶＤ  ＵＳＶＴ＝Ｗを、その欠測値がＷＡ１／２の列に設定されるｋ個のベクトルで更新することは、ＸＵｖの２次の統計量を２倍にし、それゆえインピューテーションによる更新を完成させる。たとえば、それは、ｎ→∞として√ｎによってそれぞれスケーリングされる、ｖからのｎｉ．ｉ．ｄサンプルでＳＶＤを更新することに等価である。最も大きなノルムを有するＷＡ１／２の列だけを用いる１回の更新は、インピューテーションの最良の１ベクトル近似を与えるであろう。
【０１４２】
この手法は、式（２．１２）内の均一な測度ｄｘの代わりに、より多くの情報を提供する測度、たとえば以下に記載されるデータ密度ｄＮ（ｘ｜０，Σ．）の実行中推定値を用いるときに、さらに強力になる。その積分は閉じた形で解くことができる。Σが高密度（非対角）の共分散である場合には、対称な境界であっても情報を提供するようになる。
【０１４３】
付録Ｃ
【０１４４】
確率的インピューテーション
ベクトルｃに欠測値を追加することについて考える。ｃをｃ●およびｃ○、すなわち、それぞれｃの既知の値および未知の値のベクトルに分割し、Ｕ●およびＵ○をＵの対応する行とする。正規方程式
【０１４５】
【数２４】
2006518075.tif 000026
【０１４６】
による欠測値のインピューテーションは、ガウス密度Ｎ（ｘ｜０，Σ）によってモデル化されるような、（センタリングされた）データの密度から最も低い標準偏差に位置する完成されたベクトル
【０１４７】
【数２５】
2006518075.tif 000027
【０１４８】
を生成する。ただし、
【０１４９】
【数２６】
2006518075.tif 000028
【０１５０】
は、これまで見てきたデータの共分散の低ランクの近似である（Ｘ＋はムーア・ペンローズ擬似逆行列を示す）。式１．８に式２．１４を代入することにより、
【０１５１】
【数２７】
2006518075.tif 000029
【０１５２】
が生成される。ただし、
【０１５３】
【数２８】
2006518075.tif 000030
【０１５４】
はインピュートされたベクトルの左特異ベクトル上への射影であり、ｐはその部分空間へのベクトルの距離である。予想することができるように、欠測データの場合、ｐ＞０は稀にしか起こらない。
【図面の簡単な説明】
【０１５５】
【図１】従来技術のリコメンダシステムのブロック図である。
【図２】本発明によるリコメンダシステムのブロック図である。
【図３】従来技術のバッチシステムおよび図２のリコメンダシステムのための更新時間を比較するグラフである。
【図４】従来技術のバッチシステムのための予測誤差を図２のリコメンダシステムのための予測誤差と比較するグラフである。
【図５】図２のリコメンダシステムのためのグラフィカルコンシューマインターフェースのブロック図である。
【図６】オンラインの分散化されたリコメンダシステムのブロック図である。
【図１】
2006518075.tif 000033
【図２】
2006518075.tif 000034
【図３】
2006518075.tif 000035
【図４】
2006518075.tif 000036
【図５】
2006518075.tif 000037
【図６】
2006518075.tif 000038