(57)【特許請求の範囲】
【請求項１】
コンピュータ実行可能命令とともに構成される１つ以上のプロセッサによって行われる、製品情報を伝送する方法であって、前記方法は、
１人以上のユーザによって与えられる製品評価レコードを検索することであって、前記製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）と、製品の識別情報（製品ＩＤ）と、評価情報とを含む、検索することと、
前記ユーザＩＤおよび前記製品ＩＤを一次キーとして使用することと、
前記一次キーの区間に従って、前記製品評価レコードを複数のレコードのサブセットに分割することと、
前記複数のレコードのサブセットを複数の計算ノードに割り当てることと、
前記複数の計算ノードから、前記割り当てられた複数のレコードのサブセットの特異値分解（ＳＶＤ）の計算結果を得ることと、
前記ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送ることと、
を含む、方法。
【請求項２】
前記割り当てることは、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する評価情報を、１つのレコードのサブセットに割り当てることを含む、請求項１に記載の方法。
【請求項３】
前記複数の計算ノードは、サーバである、請求項１に記載の方法。
【請求項４】
前記ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含む、請求項１に記載の方法。
【請求項５】
前記ＳＶＤの計算結果に基づいて、前記推薦製品情報を前記クライアント端末に前記送ることは、
前記ユーザ嗜好情報に基づいて、前記クライアント端末にログインするユーザに合致する、１人以上のユーザを決定することと、
前記決定されたユーザによって評価された製品の製品情報を、前記クライアント端末に送ることと、
を含む、請求項４に記載の方法。
【請求項６】
前記ＳＶＤの計算結果に基づいて、前記推薦製品情報を前記クライアント端末に前記送ることは、
前記製品人気情報に基づいて、前記クライアント端末にログインするユーザによって評価された１つ以上の製品に合致する、１つ以上の製品を決定することと、
前記決定された製品の製品情報を前記クライアント端末に送ることと、
を含む、請求項４に記載の方法。
【請求項７】
前記ＳＶＤの計算結果に基づいて、前記推薦製品情報を前記クライアント端末に前記送ることは、
前記ユーザ嗜好情報および前記製品人気情報の双方に基づいて、前記クライアント端末にログインするユーザと、前記ログインしたユーザによって評価された１つ以上の製品との組み合わせに合致する、ユーザと製品との１つ以上の組み合わせを決定することと、
前記決定された組み合わせにおける製品の製品情報を前記クライアント端末に送ることと、
を含む、請求項４に記載の方法。
【請求項８】
前記製品評価レコードを検索した後に、前記製品評価レコードのフォーマットを変換することをさらに含む、請求項１に記載の方法。
【請求項９】
前記製品評価レコードを複数のレコードのサブセットに前記分割することは、フォーマット変換後に、前記製品評価レコードを分割することをさらに備える、請求項８に記載の方法。
【請求項１０】
前記変換することは、
各ユーザＩＤおよび／または製品ＩＤに対応する前記評価情報のランキング順序を調整すること、および／または
所定の条件を満たす、１つ以上のユーザＩＤおよび／または製品ＩＤに対応する評価情報を削除すること、
を含む、請求項８に記載の方法。
【請求項１１】
前記調整することは、前記製品評価レコードに対応する行列に対して、列交換および／または線形交換を行うことを含み、
前記削除することは、前記製品評価レコードに対応する前記行列から、所定の条件を満たす行および／または列を削除することを含む、請求項１０に記載の方法。
【請求項１２】
前記一次キーの前記区間のそれぞれは、１つ以上のユーザＩＤと、１つ以上の製品ＩＤとを含み、
前記一次キーの異なる区間には、いかなる前記ユーザＩＤおよび製品ＩＤの重複もない、請求項１に記載の方法。
【請求項１３】
製品情報を伝送するためのデバイスであって、
プロセッサと、メモリとを備え、前記メモリは、前記プロセッサによって実行可能である以下のモジュール、すなわち、
検索モジュールであって、１人以上のユーザによって与えられる製品評価レコードを検索し、前記製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）と、製品の識別情報（製品ＩＤ）と、評価情報とを含む、検索モジュールと、
割り当てモジュールであって、前記ユーザＩＤおよび前記製品ＩＤを一次キーとして使用し、前記一次キーの区間に従って、前記製品評価レコードを複数のレコードのサブセットに分割し、そして、前記複数のレコードのサブセットを複数の計算ノードに割り当てる、割り当てモジュールと、
伝送モジュールであって、前記複数の計算ノードから、前記割り当てられた複数のレコードのサブセットの特異値分解（ＳＶＤ）の計算結果を得て、前記ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送る、伝送モジュールと、
を格納する、デバイス。
【請求項１４】
前記割り当てモジュールはさらに、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する評価情報を、１つのレコードのサブセットに割り当てる、請求項１３に記載のデバイス。
【請求項１５】
前記ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含み、
前記伝送モジュールはさらに、以下のオペレーション、すなわち、
前記ユーザ嗜好情報に基づいて、前記クライアント端末にログインするユーザに合致する、１人以上のユーザを決定することと、前記決定されたユーザによって評価された製品の製品情報を、前記クライアント端末に送ることと、
前記製品人気情報に基づいて、前記クライアント端末にログインするユーザによって評価された１つ以上の製品に合致する、１つ以上の製品を決定することと、前記決定された製品の製品情報を前記クライアント端末に送ることと、
前記ユーザ嗜好情報および前記製品人気情報の双方に基づいて、前記クライアント端末にログインするユーザと、前記ログインしたユーザによって評価された１つ以上の製品との組み合わせに合致する、ユーザと製品との１つ以上の組み合わせを決定することと、前記決定された組み合わせにおける製品の製品情報を前記クライアント端末に送ることと、のうちの１つ以上を行う、請求項１３に記載のデバイス。
【請求項１６】
前記製品評価レコードのフォーマットを変換する、変換モジュールをさらに備える、請求項１３に記載のデバイス。
【請求項１７】
前記割り当てモジュールはさらに、フォーマット変換後に、前記製品評価レコードをさらに分割する、請求項１６に記載のデバイス。
【請求項１８】
前記変換モジュールはさらに、各ユーザＩＤおよび／または製品ＩＤに対応する前記評価情報のランキング順序を調整し、および／または所定の条件を満たす、１つ以上のユーザＩＤおよび／または製品ＩＤに対応する評価情報を削除する、請求項１６に記載のデバイス。
【請求項１９】
前記変換モジュールはさらに、前記製品評価レコードに対応する行列に対して、列交換および／または線形交換をさらに行い、および／または前記製品評価レコードに対応する前記行列から、所定の条件を満たす行および／または列を削除する、請求項１８に記載のデバイス。
【請求項２０】
１つ以上のプロセッサによって実行可能なコンピュータ実行可能命令を含む、１つ以上のコンピュータ可読媒体であって、該コンピュータ実行可能命令は、前記１つ以上のプロセッサによって実行されたときに、前記１つ以上のプロセッサに、
１人以上のユーザによって与えられる製品評価レコードを検索することであって、前記製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）、製品の識別情報（製品ＩＤ）、および評価情報を含む、検索することと、
前記ユーザＩＤおよび前記製品ＩＤを一次キーとして使用することと、
前記一次キーの区間に従って、前記製品評価レコードを複数のレコードのサブセットに分割することと、
前記複数のレコードのサブセットを複数の計算ノードに割り当てることとであって、前記割り当てることは、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する評価情報を１つのレコードのサブセットに割り当てることを含む、複数の計算ノードに割り当てることと、
前記複数の計算ノードから、前記割り当てられた複数のレコードのサブセットの特異値分解（ＳＶＤ）の計算結果を得ることであって、前記ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含む、計算結果を得ることと、
前記ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送ることと、を含むオペレーションを行わせる、１つ以上のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信技術の分野に関し、より具体的には、製品情報を伝送するための方法およびデバイスに関する。
【背景技術】
【０００２】
（関連特許出願の相互参照）
本出願は、参照によりその全体が本明細書に組み込まれる、２０１０年１１月１７日に出願された中国特許出願第２０１０１０５４７２１８．０号、標題「ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ  ＦＯＲ  ＴＲＡＮＳＭＩＴＴＩＮＧ  ＰＲＯＤＵＣＴ  ＩＮＦＯＲＭＡＴＩＯＮ」の外国優先権を主張するものである。
【０００３】
インターネットがますます普及し、広まるにつれて、また、インターネットシステムがますます多くのオプションをユーザに提供するにつれて、ウェブサイトのコンテンツはより複雑になる。電子商取引用ウェブサイトを一例として取り上げると、ユーザは、しばしば、電子商取引用ウェブサイトによって提供される様々な製品情報の中に迷い込んでしまい、ユーザが必要とする製品をなかなか見つけ出せない。この問題を解決するために、インターネットシステムは、しばしば、ユーザの製品評価情報に基づいて、推薦アルゴリズムを行ってユーザが必要とする製品を決定し、次いで、そのような製品情報をユーザに送る。これは、ユーザが必要とする製品を見つけ出すことを補助し、購入プロセスを完成させる。
【０００４】
インターネットで使用される推薦アルゴリズムの中で、特異値分解（ＳＶＤ）は、比較的正確なアルゴリズムであり、これは、行列を使用して主変数を分解し、分析して、次元削減を得て、潜在性変数を見つけ出す。具体的には、次数ｍ×ｎの実行列Ａは、ｍ次の直交行列Ｕと、ｎ次の直交行列Ｖと、対角行列の積Ｓとに分解され得る。ＳＶＤアルゴリズムを通して、ユーザ嗜好情報および評価した製品情報が、ユーザの製品評価情報から導き出され得る。製品は、ユーザ嗜好情報および評価した製品情報に基づいて、ユーザに推薦され得る。
【０００５】
しかしながら、現在のインターネットシステムが、製品をユーザに推薦するためにＳＶＤアルゴリズムを使用するときに、該システムは、計算を行う為のユーザ情報、製品情報、およびユーザの製品評価情報を複数の計算ノードに分配ができない。それどころか、該システムは、単一の計算ノードに対して計算を行うことしかできない。これは、大量のデータを処理しなければならない、計算プロセスが複雑である、および消費時間が長くなる等の問題につながる。加えて、１つの計算ノードを使用することは、拡張能力を制限する。ユーザ情報および製品情報が増加するにつれて、この処理モデルは、性能要件を満たすことができなくなる。
【発明の概要】
【０００６】
本開示は、推薦製品情報をクライアント端末に伝送するための方法およびデバイスを提供する。
【０００７】
一実施例において、本開示は、製品情報を伝送するための方法を提供する。システムは、１人以上のユーザによって与えられる製品評価レコードを検索する。製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）と、製品の識別情報（製品ＩＤ）と、評価情報とを含む。
【０００８】
システムは、ユーザＩＤおよび製品ＩＤを一次キーとして使用し、次いで、一次キーの区間に基づいて、製品評価レコードを複数のレコードのサブセットに分割し、そして、これらのレコードのサブセットを複数の計算ノードに割り当てる。同じユーザＩＤまたは同じ製品ＩＤに関連する、評価レコードの中の全ての評価情報は、１つのレコードのサブセットに分類される。
【０００９】
複数の計算ノードは、前記割り当てられたレコードのサブセットに基づいて、ＳＶＤの計算結果を得る。システムは、そのようなＳＶＤの計算結果を検索する。ＳＶＤの計算結果に基づいて、推薦製品情報がクライアント端末に送られる。
【００１０】
別の実施例において、本開示は、製品情報を伝送するデバイスを提供する。デバイスは、検索モジュールと、割り当てモジュールと、送信モジュールとを含む。
【００１１】
検索モジュールは、１人以上のユーザから製品評価レコードを検索する。製品評価レコードは、ユーザＩＤと、製品ＩＤと、評価情報とを含む。
【００１２】
割り当てモジュールは、ユーザＩＤおよび製品ＩＤを一次キーとして使用し、次いで、一次キーの範囲に基づいて、製品評価レコードを複数のレコードのサブセットに分割し、そして、これらのレコードのサブセットを複数の計算ノードに割り当てる。同じユーザＩＤまたは同じ製品ＩＤに関連する、評価レコードの中の全ての評価情報は、１つのレコードのサブセットに分類される。
【００１３】
伝送モジュールは、割り当てられたレコードのサブセットに基づいて、複数の計算ノードによって得られたＳＶＤの計算結果を検索し、ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送る。
【００１４】
本開示の例示的な実施形態は、少なくとも以下の利点を含む。製品評価レコードは、ユーザＩＤおよび製品ＩＤを一次キーとして使用することによって分割される。分割されたレコードのサブセットは、複数の計算ノードに割り当てられ、同じユーザＩＤまたは同じ製品ＩＤに関連する、評価レコードの中の評価情報は、１つのレコードのサブセットに分類される。これは、論理的かつ簡単に、評価レコードを複数の計算ノードに割り当てるという目的を達成する。さらに、並列計算のために、製品評価情報が複数の計算ノードに割り当てられ、ＳＶＤの計算結果に基づいて、推薦製品情報がクライアント端末に送られるので、当該手法は、複数の計算ノードによって処理されるデータ量および計算の複雑さを軽減する。製品評価レコードを割り当てる際にユーザＩＤおよび製品ＩＤを一次キーとして使用することはまた、計算ノードによって処理されるデータの完成度も確保し、それによって、計算の精度が向上する。本開示の全ての実施形態が、全ての利点を同時に達成する必要がないことを認識されたい。
【図面の簡単な説明】
【００１５】
本開示の実施形態または現行技術の手法をよりよく例示するために、実施形態の説明において使用される図の簡単な紹介を以下に示す。以下の図は、本開示のいくつかの実施形態に関連しているに過ぎないことは明白である。当業者は、創造的な努力をせずに、本開示の図に従って他の実施形態を得ることができる。
【図１】製品情報を伝送するための例示的な方法のフロー図である。
【図２】例示的な製品評価レコードの連結図である。
【図３】フォーマット変換後の、例示的な製品評価レコードの連結図である。
【図４】例示的なレコードのサブセットの連結図である。
【図５】製品情報を伝送するための例示的なデバイスのブロック図である。
【発明を実施するための形態】
【００１６】
一実施形態において、システムは、１人以上のユーザから製品評価レコードを検索する。製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）と、製品の識別情報（製品ＩＤ）と、評価情報とを含む。
【００１７】
システムは、ユーザＩＤおよび製品ＩＤを一次キーとして使用し、次いで、一次キーの範囲に基づいて、製品評価レコードを複数のレコードのサブセットに分割し、そして、これらのレコードのサブセットを複数の計算ノードに割り当てる。同じユーザＩＤまたは同じ製品ＩＤに関連する、評価レコードの中の全ての評価情報は、１つのレコードのサブセットに分類される。複数の計算ノードは、ある計算機能を伴うコンピューティングデバイスである。計算ノードの例として、パーソナルコンピュータ、サーバコンピュータ、手持ち式デバイスまたは携帯デバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットアップボックス、プログラム可能な顧客電子デバイス、ネットワークＰＣ、小型コンピュータ、大型コンピュータ、および上記のいずれかのシステムまたはデバイスを含む分散コンピューティング環境が挙げられる。
【００１８】
複数の計算ノードは、前記割り当てられたレコードのサブセットに基づいて、ＳＶＤの計算結果を得る。システムは、そのようなＳＶＤの計算結果を検索する。ＳＶＤの計算結果に基づいて、推薦製品情報がクライアント端末に送られる。
【００１９】
本開示は、図を参照することによって、下記のように本手法を説明する。本明細書で説明される例示的な実施形態は、本開示の実施形態の全てではなく、実施形態の一部分である。開示された例示的な実施形態に基づいて、創造的な努力をせずに当業者によって策定される全ての他の実施形態は、本開示の保護下にある。
【００２０】
図１は、製品情報を伝送するための例示的な方法のフロー図を示す。
【００２１】
１０１で、１人以上のユーザから製品評価レコードが検索される。
【００２２】
ユーザが製品を電子商取引用ウェブサイトから購入した後に、電子商取引用ウェブサイトは、通常、ユーザが購入した製品または購買プロセスを評価する機会を提供し、これらの評価は、評価レコードの形態で電子商取引用ウェブサイトに格納される。評価レコードは、テキストの形態でデータベースに格納することができる。評価レコードのそれぞれは、ユーザＩＤと、製品ＩＤと、評価情報とを含み得る。評価情報は、ユーザの製品の評価または製品に対するユーザの嗜好とすることができる。
【００２３】
例えば、評価情報は、１〜５の任意の数とすることができる。１は、ユーザが製品に関して全く満足していないことを意味し、２は、ユーザが製品に関してあまり満足していないことを意味し、３は、ユーザがどちらともいえないことを意味し、４は、ユーザが製品に関してやや満足していることを意味し、５は、ユーザが製品に関して非常に満足していることを意味する。表１で示されるように、ユーザが製品を評価していない場合は、対応する評価レコードの評価情報に０の値が設定され得る。
【００２４】
【表１】
0005922667.tif 000002
【００２５】
上記の評価レコードはまた、行列によっても表され得る。行列の要素は、評価情報であり、行番号は、ユーザＩＤまたは製品ＩＤのいずれかに対応し、列番号は、ユーザＩＤまたは製品ＩＤのいずれかに対応する。例えば、表１の評価レコードは、行列によって以下のように表すことができる。
【００２６】
0005922667.tif 000003
【００２７】
上記の行列において、行番号は、製品ＩＤに対応し、その一方で、列番号は、ユーザＩＤに対応する。
【００２８】
１０２で、製品評価レコードにフォーマット変換を施す。
【００２９】
例えば、製品評価レコードの中の各ユーザＩＤおよび／または製品ＩＤの対応する評価情報の順序が調整され得る。加えて、１つ以上のユーザＩＤおよび／または製品ＩＤに対応する評価情報が削除され得る。そのような削除された評価情報は、１つの製品だけしか評価しなかったユーザ等の、評価した製品の数が最小の所定の閾値を下回る、ユーザの評価情報であり得る。そのような削除された評価情報はまた、評価した製品の数が最大の所定の閾値を超える、ユーザの評価情報であり得る。そのような評価情報は、インターネットにおいて悪意のあるソフトウェアによって生成される可能性がある。そのような評価情報を削除することは、製品評価レコードにおけるノイズの影響を除去するのを補助する。
【００３０】
行列を使用して製品評価レコードを表したときに、上述のフォーマット変換プロセスは、以下の通りであり得る。最初に、行列に対して列交換および行交換を行う。いくつかの列および行を削除する。次いで、行列を、複数の交差していないサブ行列に変換する。ユーザおよび製品の数が急激に増加した場合、およびユーザによって評価された製品の数が制限された場合、多くの製品は、製品レコードを有しない場合がある。したがって、評価レコードの対応する行列は、疎行列であり、非ゼロ要素が、要素の総数のわずかな割合を占める。上記のプロセスに基づいて、疎行列の中の非ゼロ要素は、複数の交差していないサブ行列の中へ収集することができる。例えば、製品評価レコードは、下記の疎行列１によって表すことができる。
【００３１】
0005922667.tif 000004
【００３２】
疎行列１に関して、行２および３は、交換することができる。交換の後に、行１、２、６、および１０、ならびに列１、９、および１０のような、非ゼロ要素を１つだけしか有しない行および列、ならびに、列５のような、全てゼロ要素である行および列が削除される。よって、下記のように行列２が得られる。
【００３３】
0005922667.tif 000005
【００３４】
上述の評価レコードはまた、図２で示されるように、連結グラフを使用して表され得る。ユーザおよび製品は、ノードである。線は、製品のユーザの評価を表す。上述の評価レコードのフォーマット変換は、以下のように実行することができる。連結グラフに対して線除去オペレーションを行う。換言すれば、１本だけの線によって他のノードにリンクされているノードに関して、そのような線を除去し、連結グラフを複数の連結サブグラフに変換する。複数の連結サブグラフを、１本以上の線によってともにリンクする。一例として図２を使用すると、製品１とユーザ１、製品１０とユーザ２、製品６とユーザ９、および製品３とユーザ１０とをリンクする線を除去することによって、図３で示されるように、２本の線によってリンクされる２つの連結サブグラフが得られる。
【００３５】
１０３で、ユーザＩＤおよび製品ＩＤを一次キーとして使用することによって、製品評価レコードが複数のレコードのサブセットに分割され、そして、該複数のレコードのサブセットが複数の計算ノードに割り当てられる。
【００３６】
一次キーは、製品評価レコードの評価情報の各部分を一意的に識別するために使用される。システムは、一次キーを複数の区間に分割するために、計算ノードの数、製品評価レコードの情報量、および非ゼロ要素の分布特性を基準として使用し得る。各一次キーの区間は、１つ以上のユーザＩＤと、１つ以上の製品ＩＤとを含む。各区間のユーザＩＤと製品ＩＤとの間にはいかなる重複もない。一実施形態において、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する、製品評価レコードの中の全ての評価情報は、１つのレコードのサブセットに割り当てられる。
【００３７】
さらに、製品評価レコードは、一次キーの区間に従って分割され得る。一次キーのそれぞれの区間に含まれるユーザＩＤおよび製品ＩＤに関連する評価情報は、それぞれの区間に対応するそれぞれのレコードのサブセットとして全て処理される。したがって、分解に起因するレコードのサブセットは、評価レコードのサブセットであり、各レコードのサブセットは、１つの一次キー区間に対応し、異なるレコードのサブセットは、異なるユーザＩＤおよび製品ＩＤに対応する。加えて、同じユーザＩＤまたは製品ＩＤに関連する、評価レコードの中の全ての評価情報は、同じレコードのサブセットに含まれ、同じ計算ノードに割り当てられる。レコードのサブセットは、分散クラスタで位置付けられる計算ノードに割り当てられ、これらは、並列コンピューティングを行うことができる。
【００３８】
行列２に対応する製品評価レコードを一例として取り上げる。評価レコードは、製品２、４、５、および７〜９に関するユーザ２〜４および６〜８の評価情報を含む。一次キーは、２つの区間に分割することができ、区間１は、ユーザ６〜８ならびに製品２、４、および５を含み、区間２は、ユーザ２〜４および製品７〜９を含む。ユーザＩＤおよび製品ＩＤに関して、区間１と区間２との間にはいかなる重複もない。製品評価レコードを区間１および区間２に従って分割したときに、区間１に含まれるユーザ６〜８ならびに製品２、４、および５に関連する評価情報は、レコードのサブセット１として指定することができ、区間２に含まれるユーザ２〜４および製品７〜９に関連する評価情報は、レコードのサブセット２として指定することができる。同様に、行列２は、２つの交差していない疎行列に分解することができる。レコードのサブセット１に対応するサブマトリックスは、以下の通りである：
【００３９】
0005922667.tif 000006
【００４０】
レコードのサブセット２に対応するサブマトリックスは、以下の通りである：
【００４１】
0005922667.tif 000007
【００４２】
製品評価レコードを連結グラフによって表したときに、製品評価レコードに対応する連結グラフは、一次キーの区間に基づいて、複数の連結サブグラフに分割することができる。図４で示されるように、各連結サブグラフは、レコードのサブセットに対応する。各計算ノードに割り当てられる連結サブグラフの完全性を確保するために、２つの連結サブグラフが、２つの並列計算ノードに割り当てられ得る。
【００４３】
製品評価レコードを分割する際に、ユーザＩＤまたは製品ＩＤを一次キーとして使用するときに、１つのユーザＩＤまたは製品ＩＤに関連する製品評価情報が、複数のレコードのサブセットに含まれ得る。行列２に対応する製品評価レコードを一例として取り上げる。ユーザ６〜８によって作成された全ての製品の評価情報が１つのレコードのサブセットにグループ化され、かつユーザ２〜４によって作成された全ての製品の評価情報が別のレコードのサブセットにグループ化される場合、製品５に関連する評価情報が２つのレコードのサブセットに含まれ、製品７に関連する評価情報が２つのレコードのサブセットに含まれる。
【００４４】
ＳＶＤアルゴリズムは、１つの製品またはユーザに関連する評価情報を１つの計算ノードで計算することを必要とするので、上記の分割されたレコードのサブセットは、ＳＶＤ要件を満たさない場合がある。したがって、本開示の例示的な実施形態は、製品評価レコードを分割する際に、ユーザＩＤまたは製品ＩＤのいずれかを一次キーとして使用する代わりに、ユーザＩＤおよび製品ＩＤの双方を一次キーとして使用する。
【００４５】
１０４で、複数の計算ノードが、割り当てられたレコードのサブセットに対してＳＶＤの計算を行って、ユーザ嗜好情報および製品人気情報を検索する。
【００４６】
例えば、ＳＶＤの計算結果を得るために、各計算ノードがその対応するレコードのサブセットを受け取った後に、ＳＶＤの計算を使用して、そのレコードのサブセットに対して並列コンピューティングを行ってもよい。ＳＶＤの計算のための入力として、レコードのサブセットは、ユーザの製品嗜好情報およびユーザの製品人気情報を含む、ユーザの評価情報を含む。
【００４７】
ＳＶＤの計算は、レコードのサブセットから上述した２種類の情報を分解し、ＳＶＤの計算結果を得ることができる。ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含む。ユーザ嗜好情報は、製品に対するユーザの嗜好のレベルを表し、複数のユーザベクトルを含み得る。各ユーザベクトルは、製品のためのそれぞれのユーザの嗜好を表す。製品人気情報は、製品の人気のレベルを表し、複数の製品ベクトルを含み得る。各製品ベクトルは、それぞれの製品の人気のレベルを表す。ユーザベクトルおよび製品ベクトルは、配列を使用して表すことができる。
【００４８】
例えば、計算ノードに割り当てられるレコードのサブセットは、ｍ×ｎの行列Ａとして表され得、ｍは、ユーザＩＤの数であり、ｎは、製品ＩＤの数である。行列Ａは、製品の数ｎに関するユーザの数ｍの評価レコードを表す。計算ノードは、ＳＶＤの計算を使用して、行列Ａを、ｍ個のレベルを伴う直交行列Ｕ、およびｎ個のレベルを伴う直交行列Ｖ、ならびに対角行列の積Ｓに分割し得る。ｍ個のレベルを伴う直交行列Ｕおよびｎ個のレベルを伴う直交行列Ｖは、それぞれ、ユーザ嗜好情報および製品人気情報に対応する。直交行列Ｕの行または列に対応するｍ個の配列は、各ユーザの属性に対応する、ｍ人のユーザに対応するユーザベクトルである。直交行列Ｖの行または列に対応するｎ個の配列は、各製品の属性に対応する、ｎ個の製品に対応する製品ベクトルである。
【００４９】
１０５で、割り当てられたレコードのサブセットの複数の計算ノードによって計算されたＳＶＤの計算結果が検索される。ＳＶＤの計算結果に基づいて、推薦製品情報がクライアント端末に送られる。
【００５０】
例えば、推薦製品情報は、複数の計算ノードからのＳＶＤの計算結果の組み合わせ、およびＳＶＤの計算結果の中のユーザ嗜好情報および製品人気情報の比較を通して得てもよい。次いで、推薦製品情報を、クライアント端末に送る。
【００５１】
ユーザベクトル間の類似性に基づいて製品が推薦されるシナリオ、すなわち、ユーザ−ユーザ推薦シナリオの場合において、ユーザ間の類似性は、計算されたユーザ嗜好情報に従って、異なるユーザに対応するユーザベクトル間の一対比較に基づいて得られ得る。ユーザ間の類似性は、対応するユーザベクトル間の差によって計算され得る。ユーザベクトル間の差が小さいほど、ユーザ間の類似性が高くなる。
【００５２】
クライアント端末にログインしたユーザに関して、ログインしたユーザと他のユーザとの間の類似性に基づいて、他のユーザがランク付けされ得る。類似性のレベルが所定の閾値よりも高いユーザ、または所定のランキング基準を満たすユーザ（例えば、上位Ｎ位にランク付けされ、Ｎは、任意の整数とすることができる）は、ログインしたユーザに相当するユーザとみなされる。決定された相当するユーザの製品評価情報は、クライアント端末に送られ得る。例えば、上記の製品に関する相当するユーザの評価情報は、所定の評価閾値よりも大きい。
【００５３】
製品ベクトル間の類似性に基づいて製品が推薦されるシナリオ、すなわち、製品−製品推薦シナリオの場合において、製品間の類似性は、計算された製品人気情報に従って、異なるユーザに対応する製品ベクトル間の一対比較に基づいて得られ得る。製品間の類似性は、対応する製品ベクトル間の差によって計算され得る。製品ベクトル間の差が小さいほど、ユーザ間の類似性が高くなる。
【００５４】
クライアント端末にログインしたユーザに関して、ログインしたユーザが評価した製品（例えば、ログインしたユーザによって評価された評価情報が、閾値よりも大きい製品）と、他の製品との間の類似性に基づいて、製品がランク付けされ得る。類似性のレベルが所定の閾値よりも高い製品、または所定のランキング基準を満たす製品（例えば、上位Ｎ位にランク付けされ、Ｎは、任意の整数とすることができる）は、ログインしたユーザによって評価された製品に相当する製品とみなされる。決定された相当する製品情報は、クライアント端末に送られ得る。
【００５５】
ユーザベクトルと製品ベクトルとの組み合わせ間の類似性に基づいて製品が推薦されるシナリオ、すなわち、ユーザ−製品推薦シナリオの場合において、ユーザと製品との種々の組み合わせ間の類似性は、ユーザ嗜好情報および製品人気情報に従って、ユーザベクトルと製品ベクトルとの組み合わせ間の一対比較に基づいて得られ得る。ユーザと製品との種々の組み合わせ間の類似性は、ユーザベクトルと製品ベクトルとの対応する組み合わせ間の差によって計算され得る。ユーザベクトルと製品ベクトルとの組み合わせ間の差が小さいほど、ユーザベクトルと製品ベクトルとのそのような組み合わせ間の類似性が高くなる。
【００５６】
クライアント端末にログインしたユーザと該ユーザによって評価された製品との組み合わせに関して、ユーザと製品との組み合わせは、ランク付けされ得、類似性のレベルが所定の閾値よりも高い、または所定のランキング基準を満たす組み合わせ（例えば、上位Ｎ位にランク付けされる）は、上記の組み合わせに合致するユーザと製品との組み合わせとみなされる。決定された組み合わせにおける製品情報は、クライアント端末に送られ得る。
【００５７】
一実施形態において、組み合わせにおける製品に対する該組み合わせにおけるユーザの評価は、所定の評価閾値よりも高い。代替として、または並行して、ログインしたユーザと該ユーザの評価した製品との組み合わせについて、ログインしたユーザの製品の評価は、所定の評価閾値よりも高い。
【００５８】
本開示の例示的な実施形態は、少なくとも以下の利点を含む。製品評価レコードは、ユーザＩＤおよび製品ＩＤを一次キーとして使用することによって分割される。分割されたレコードのサブセットは、複数の計算ノードに割り当てられ、同じユーザＩＤまたは同じ製品ＩＤに関連する、評価レコードの中の評価情報は、１つのレコードのサブセットに分類される。これは、論理的かつ簡単に、評価レコードを複数の計算ノードに割り当てるという目的を達成する。さらに、並列計算のために、製品評価情報が複数の計算ノードに割り当てられ、ＳＶＤの計算結果に基づいて、推薦製品情報がクライアント端末に送られるので、当該手法は、複数の計算ノードによって処理されるデータ量および計算の複雑さを軽減する。製品評価レコードを割り当てる際にユーザＩＤおよび製品ＩＤを一次キーとして使用することはまた、計算ノードによって処理されるデータの完成度も確保し、それによって、計算の精度が向上する。本開示の全ての実施形態が、全ての利点を同時に達成する必要がないことを認識されたい。
【００５９】
上で論じたように製品情報を伝送するための例示的な方法に基づいて、本開示はまた、製品情報を伝送するための方法を使用する、デバイスも提供する。
【００６０】
図５は、製品情報を伝送するための例示的なデバイス５００の構造ブロック図である。一実施形態において、デバイス５００は、これらに限定されないが、１つ以上のプロセッサ５０２およびメモリ５０４を含んでもよい。メモリ５０４は、ランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリおよび／またはリードオンリーメモリ（ＲＯＭ）もしくはフラッシュＲＡＭ等の不揮発性メモリの形態でコンピュータ可読媒体を含んでもよい。メモリ５０４は、コンピュータ可読媒体の一例である。
【００６１】
コンピュータ可読媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、または他のデータ等の情報の格納のための任意の方法または技術において実装される、揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体の例として、限定されないが、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他の種類のランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去・プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、デジタル多目的ディスク（ＤＶＤ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、またはコンピュータデバイスによるアクセスのために情報を格納するために使用することができる任意の他の非伝送媒体が挙げられる。本明細書で定義される場合、コンピュータ可読媒体は、変調データ信号および搬送波等の一過性媒体を含まない。
【００６２】
メモリ５０４は、その中にプログラム単位またはモジュールおよびプログラムデータを格納することができる。一実施形態において、モジュールは、検索モジュール５１０と、割り当てモジュール５２０と、伝送モジュール５３０とを含んでもよい。一実施形態において、モジュールは、変換モジュール５４０をさらに含んでもよい。
【００６３】
これらのモジュールは、したがって、１つ以上のプロセッサ５０２によって実行することができるソフトウェア内に実装されてもよい。他の実装において、モジュールは、ファームウェア、ハードウェア、ソフトウェア、またはそれらの組み合わせの中に実装されてもよい。
【００６４】
検索モジュール５１０は、１人以上のユーザによって与えられる製品評価レコードを検索する。例えば、製品評価レコードは、ユーザＩＤと、製品ＩＤと、評価情報とを含み得る。
【００６５】
割り当てモジュール５２０は、ユーザＩＤおよび製品ＩＤを一次キーとして使用し、次いで、一次キーの区間に従って、製品評価レコードを複数のレコードのサブセットに分割し、そして、該複数のレコードのサブセットを複数の計算ノードに割り当てる。一実施形態において、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する、製品評価レコードの中の全ての評価情報は、１つのレコードのサブセットに割り当てられる。
【００６６】
伝送モジュール５３０は、割り当てられた複数の計算ノードによって計算された、割り当てられたレコードのサブセットのＳＶＤの計算結果を検索し、ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送る。
【００６７】
例えば、ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含んでもよい。
【００６８】
伝送モジュール５２０は、ユーザ嗜好情報に基づいて、クライアント端末にログインするユーザに合致するユーザを決定し、決定されたユーザによって評価された製品の製品情報を、クライアント端末に送り得る。代替として、伝送モジュール５２０は、製品人気情報に基づいて、クライアント端末にログインするユーザによって評価された製品に合致する製品を決定し、決定された製品の製品情報をクライアント端末に送り得る。代替として、伝送モジュール５２０は、ユーザ嗜好情報および製品人気情報の双方に基づいて、クライアント端末にログインするユーザと、ログインしたユーザによって評価された製品との組み合わせに合致する、ユーザと製品との組み合わせを決定し、決定された組み合わせにおける製品情報をクライアント端末に送る。
【００６９】
一実施形態において、デバイス５００は、変換モジュール５４０をさらに含んでもよい。変換モジュール５４０は、製品評価レコードのフォーマットを変換する。
【００７０】
それに応じて、変換モジュール５４０が製品評価レコードを変換した後に、割り当てモジュール５２０は、変換された製品評価レコードを複数のレコードのサブセットに分割する。
【００７１】
例えば、変換モジュール５４０は、各ユーザＩＤおよび／または製品ＩＤに対応する評価情報のランキング順序を調整してもよく、および／または１つ以上の所定の条件を満たす、１つ以上のユーザＩＤおよび／または製品ＩＤに対応する評価情報を削除してもよい。
【００７２】
変換モジュール５４０は、製品評価レコードに対応する行列に対して、列交換および／または線形交換を行ってもよく、および／または製品評価レコードに対応する行列から、１つ以上の所定の条件を満たす１つ以上の行および／または列を削除してもよい。
【００７３】
本開示の例示的な実施形態は、少なくとも以下の利点を含む。製品評価レコードは、ユーザＩＤおよび製品ＩＤを一次キーとして使用することによって分割される。分割されたレコードのサブセットは、複数の計算ノードに割り当てられ、同じユーザＩＤまたは同じ製品ＩＤに関連する、評価レコードの中の評価情報は、１つのレコードのサブセットに分類される。これは、論理的かつ簡単に、評価レコードを複数の計算ノードに割り当てるという目的を達成する。さらに、並列計算のために、製品評価情報が複数の計算ノードに割り当てられ、ＳＶＤの計算結果に基づいて、推薦製品情報がクライアント端末に送られるので、当該手法は、複数の計算ノードによって処理されるデータ量および計算の複雑さを軽減する。製品評価レコードを割り当てる際にユーザＩＤおよび製品ＩＤを一次キーとして使用することはまた、計算ノードによって処理されるデータの完成度も確保し、それによって、計算の精度が向上する。本開示の全ての実施形態が、全ての利点を同時に達成する必要がないことを認識されたい。
【００７４】
上で説明した例示的な実施形態から、当業者は、開示された方法およびシステムが、ソフトウェアおよび普遍的ハードウェアプラットフォームを使用して実装され得ることを明らかに理解することができる。この理解に基づいて、本開示の技術的スキームまたは既存の技術に寄与する部分は、ＲＯＭ／ＲＡＭ、ハードドライブ、および光ディスク等の記憶媒体に格納されるソフトウェア製品の形態で実装されてもよい。ソフトウェアは、コンピューティングデバイス（例えば、パーソナルコンピュータ、サーバ、またはネットワークデバイス）が本開示の例示的な実施形態で説明される方法を実行するための、コンピュータ実行可能命令を含む。
【００７５】
種々の例示的な実施形態は、本開示において段階的に説明される。例示的な実施形態の同じかまたは同様の部分は、相互に参照することができる。各例示的な実施形態は、他の例示的な実施形態とは異なる焦点を有する。具体的には、例示的なシステムの実施形態は、その例示的な方法の実施形態との基本的一致のために、比較的単純な様式で記載されている。その詳細は、例示的な方法の関連する部分を参照して見出すことができる。上記の例示的なデバイスの説明は、例示目的のためだけであることを意味する。その中で別々の構成要素として説明されるユニットまたはモジュールは、物理的に分離される場合もあり、されない場合もある。実施形態において説明されるモジュールは、１つのモジュールに統合されてもよく、または複数のサブモジュールにさらに分割されてもよい。ユニットまたはモジュールに関して示される構成要素は、物理ユニットである場合もあり、またはそうでない場合もあり、例えば、１つの場所に位置してもよく、または複数のネットワークユニットに分散させてもよい。実際の必要性に応じて、例示的な実施形態の目的は、モジュールの一部または全部を選択することによって達成され得る。当業者は、いかなる革新的な効果も伴わずに、開示されるシステムを理解し、実装することができる。
【００７６】
開示される方法およびシステムは、ソフトウェアを伴う普遍的コンピュータシステムまたは特化型コンピュータシステムの環境または構成において使用されてもよい。その例として、パーソナルコンピュータ、サーバコンピュータ、手持ち式デバイスまたは携帯デバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットアップボックス、プログラム可能な顧客電子デバイス、ネットワークＰＣ、小型コンピュータ、大型コンピュータ、および上記のいずれかのシステムまたはデバイスを含む分散コンピューティング環境が挙げられる。
【００７７】
本開示は、プログラムモジュール等の、コンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈において説明することができる。一般的に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するためのルーチン、プログラム、オブジェクト、モジュール、データ構造、コンピュータ実行可能命令等を含む。開示される方法およびデバイスは、分散コンピューティング環境内に実装されてもよい。分散コンピューティング環境において、通信ネットワークを通して接続されるリモート処理デバイスによってタスクが実行される。分散コンピューティング環境において、プログラムモジュールは、ローカルおよび／またはリモートコンピュータの記憶媒体（記憶デバイスを含む）内に位置してもよい。
【００７８】
上記は、本開示の例示的な実施形態である。しかしながら、本開示は、本明細書に限定
されない。当業者は、本開示の趣旨および範囲から逸脱することなく、数多くの方法で本
開示を変更または修正できることを認識されたい。したがって、これらの修正および変形
は、本開示の特許請求の範囲およびそれらの均等物の範囲に含まれるとみなされるべきで
ある。
適用例１：コンピュータ実行可能命令とともに構成される１つ以上のプロセッサによって行われる、製品情報を伝送する方法であって、前記方法は、
１人以上のユーザによって与えられる製品評価レコードを検索することであって、前記製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）と、製品の識別情報（製品ＩＤ）と、評価情報とを含む、検索することと、
前記ユーザＩＤおよび前記製品ＩＤを一次キーとして使用することと、
前記一次キーの区間に従って、前記製品評価レコードを複数のレコードのサブセットに分割することと、
前記複数のレコードのサブセットを複数の計算ノードに割り当てることと、
前記複数の計算ノードから、前記割り当てられた複数のレコードのサブセットの特異値分解（ＳＶＤ）の計算結果を得ることと、
前記ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送ることと、
を含む、方法。
適用例２：前記割り当てることは、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する評価情報を、１つのレコードのサブセットに割り当てることを含む、適用例１に記載の方法。
適用例３：前記複数の計算ノードは、サーバである、適用例１に記載の方法。
適用例４：前記ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含む、適用例１に記載の方法。
適用例５：前記ＳＶＤの計算結果に基づいて、前記推薦製品情報を前記クライアント端末に前記送ることは、
前記ユーザ嗜好情報に基づいて、前記クライアント端末にログインするユーザに合致する、１人以上のユーザを決定することと、
前記決定されたユーザによって評価された製品の製品情報を、前記クライアント端末に送ることと、
を含む、適用例４に記載の方法。
適用例６：前記ＳＶＤの計算結果に基づいて、前記推薦製品情報を前記クライアント端末に前記送ることは、
前記製品人気情報に基づいて、前記クライアント端末にログインするユーザによって評価された１つ以上の製品に合致する、１つ以上の製品を決定することと、
前記決定された製品の製品情報を前記クライアント端末に送ることと、
を含む、適用例４に記載の方法。
適用例７：前記ＳＶＤの計算結果に基づいて、前記推薦製品情報を前記クライアント端末に前記送ることは、
前記ユーザ嗜好情報および前記製品人気情報の双方に基づいて、前記クライアント端末にログインするユーザと、前記ログインしたユーザによって評価された１つ以上の製品との組み合わせに合致する、ユーザと製品との１つ以上の組み合わせを決定することと、
前記決定された組み合わせにおける製品の製品情報を前記クライアント端末に送ることと、
を含む、適用例４に記載の方法。
適用例８：前記製品評価レコードを検索した後に、前記製品評価レコードのフォーマットを変換することをさらに含む、適用例１に記載の方法。
適用例９：前記製品評価レコードを複数のレコードのサブセットに前記分割することは、フォーマット変換後に、前記製品評価レコードを分割することをさらに備える、適用例８に記載の方法。
適用例１０：前記変換することは、
各ユーザＩＤおよび／または製品ＩＤに対応する前記評価情報のランキング順序を調整すること、および／または
所定の条件を満たす、１つ以上のユーザＩＤおよび／または製品ＩＤに対応する評価情報を削除すること、
を含む、適用例８に記載の方法。
適用例１１：前記調整することは、前記製品評価レコードに対応する行列に対して、列交換および／または線形交換を行うことを含み、
前記削除することは、前記製品評価レコードに対応する前記行列から、所定の条件を満たす行および／または列を削除することを含む、適用例１０に記載の方法。
適用例１２：前記一次キーの前記区間のそれぞれは、１つ以上のユーザＩＤと、１つ以上の製品ＩＤとを含み、
前記一次キーの異なる区間には、いかなる前記ユーザＩＤおよび製品ＩＤの重複もない、適用例１に記載の方法。
適用例１３：製品情報を伝送するためのデバイスであって、
プロセッサと、メモリとを備え、前記メモリは、前記プロセッサによって実行可能である以下のモジュール、すなわち、
検索モジュールであって、１人以上のユーザによって与えられる製品評価レコードを検索し、前記製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）と、製品の識別情報（製品ＩＤ）と、評価情報とを含む、検索モジュールと、
割り当てモジュールであって、前記ユーザＩＤおよび前記製品ＩＤを一次キーとして使用し、前記一次キーの区間に従って、前記製品評価レコードを複数のレコードのサブセットに分割し、そして、前記複数のレコードのサブセットを複数の計算ノードに割り当てる、割り当てモジュールと、
伝送モジュールであって、前記複数の計算ノードから、前記割り当てられた複数のレコードのサブセットの特異値分解（ＳＶＤ）の計算結果を得て、前記ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送る、伝送モジュールと、
を格納する、デバイス。
適用例１４：前記割り当てモジュールはさらに、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する評価情報を、１つのレコードのサブセットに割り当てる、適用例１３に記載のデバイス。
適用例１５：前記ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含み、
前記伝送モジュールはさらに、以下のオペレーション、すなわち、
前記ユーザ嗜好情報に基づいて、前記クライアント端末にログインするユーザに合致する、１人以上のユーザを決定することと、前記決定されたユーザによって評価された製品の製品情報を、前記クライアント端末に送ることと、
前記製品人気情報に基づいて、前記クライアント端末にログインするユーザによって評価された１つ以上の製品に合致する、１つ以上の製品を決定することと、前記決定された製品の製品情報を前記クライアント端末に送ることと、
前記ユーザ嗜好情報および前記製品人気情報の双方に基づいて、前記クライアント端末にログインするユーザと、前記ログインしたユーザによって評価された１つ以上の製品との組み合わせに合致する、ユーザと製品との１つ以上の組み合わせを決定することと、前記決定された組み合わせにおける製品の製品情報を前記クライアント端末に送ることと、のうちの１つ以上を行う、適用例１３に記載のデバイス。
適用例１６：前記製品評価レコードのフォーマットを変換する、変換モジュールをさらに備える、適用例１３に記載のデバイス。
適用例１７：前記割り当てモジュールはさらに、フォーマット変換後に、前記製品評価レコードをさらに分割する、適用例１６に記載のデバイス。
適用例１８：前記変換モジュールはさらに、各ユーザＩＤおよび／または製品ＩＤに対応する前記評価情報のランキング順序を調整し、および／または所定の条件を満たす、１つ以上のユーザＩＤおよび／または製品ＩＤに対応する評価情報を削除する、適用例１６に記載のデバイス。
適用例１９：前記変換モジュールはさらに、前記製品評価レコードに対応する行列に対して、列交換および／または線形交換をさらに行い、および／または前記製品評価レコードに対応する前記行列から、所定の条件を満たす行および／または列を削除する、適用例１８に記載のデバイス。
適用例２０：１つ以上のプロセッサによって実行可能なコンピュータ実行可能命令を含む、１つ以上のコンピュータ可読媒体であって、該コンピュータ実行可能命令は、前記１つ以上のプロセッサによって実行されたときに、前記１つ以上のプロセッサに、
１人以上のユーザによって与えられる製品評価レコードを検索することであって、前記製品評価レコードのそれぞれは、ユーザの識別情報（ユーザＩＤ）、製品の識別情報（製品ＩＤ）、および評価情報を含む、検索することと、
前記ユーザＩＤおよび前記製品ＩＤを一次キーとして使用することと、
前記一次キーの区間に従って、前記製品評価レコードを複数のレコードのサブセットに分割することと、
前記複数のレコードのサブセットを複数の計算ノードに割り当てることとであって、前記割り当てることは、１つのユーザＩＤおよび／または１つの製品ＩＤに関連する評価情報を１つのレコードのサブセットに割り当てることを含む、複数の計算ノードに割り当てることと、
前記複数の計算ノードから、前記割り当てられた複数のレコードのサブセットの特異値分解（ＳＶＤ）の計算結果を得ることであって、前記ＳＶＤの計算結果は、ユーザ嗜好情報および製品人気情報を含む、計算結果を得ることと、
前記ＳＶＤの計算結果に基づいて、推薦製品情報をクライアント端末に送ることと、を含むオペレーションを行わせる、１つ以上のコンピュータ可読媒体。
【図１】
0005922667.tif 000008
【図２】
0005922667.tif 000009
【図３】
0005922667.tif 000010
【図４】
0005922667.tif 000011
【図５】
0005922667.tif 000012