(57)【要約】【課題】利用者の数およびアイテムの数が大きくても、計算量を抑えて、より妥当なアイテムを推薦する。【解決手段】複数の利用者が複数の利用対象のそれぞれを評価した評価値を、利用者および利用対象に対応付けて読み出す推定値読出部と、推定値読出部により読み出された評価値のなかで欠損している評価値を、利用者および利用対象を行および列とした評価値の行列の特異値分解を用いて推定した、推定値を算出する推定値算出部と、推定値算出部により算出された推定値に基づいて、複数の利用対象のうち利用者へ推薦する利用対象を選択して、選択した利用対象を推薦する推薦情報を、ネットワークを介して利用者の端末に提示する推薦情報提示部とを備え、推定値算出部は、行列の特異値単位の縮小推定により推定値を算出する利用対象推薦装置が提供される。【選択図】図２
2010061513.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して利用者の端末から入力された利用対象の評価値に基づいて、前記利用者へ推薦する利用対象に関する推薦情報を、前記端末を介して前記利用者に提示する利用対象推薦装置であって、
複数の利用者が複数の利用対象のそれぞれを評価した評価値を、前記利用者および前記利用対象に対応付けて読み出す推定値読出部と、
前記推定値読出部により読み出された前記評価値のなかで欠損している評価値を、前記利用者および前記利用対象を行および列とした前記評価値の行列の特異値分解を用いて推定した、推定値を算出する推定値算出部と、
前記推定値算出部により算出された前記推定値に基づいて、前記複数の利用対象のうち前記利用者へ推薦する利用対象を選択して、選択した前記利用対象を推薦する推薦情報を、前記ネットワークを介して前記利用者の前記端末に提示する推薦情報提示部と
を備え、
前記推定値算出部は、前記行列の特異値単位の縮小推定により前記推定値を算出する利用対象推薦装置。
【請求項２】
前記推定値算出部は、下記ＥステップとＭステップとを交互に繰り返すことにより前記推定値を算出する請求項１に記載の利用対象推薦装置。
【数１】
2010061513.tif 000010
【数２】
2010061513.tif 000011
ここで、Ｘ，Ｙ、Ｚ、ＷはＬ×Ｍの行列であり、Ｙｌ，ｍはＹの行列要素であって利用者ｌが利用対象ｍを評価した評価値であり、Ｗｌ，ｍはＷの行列要素であってＹｌ，ｍが欠損していれば０で、欠損していなければ１であり、ｔは繰り返し番号であり、×は成分ごとの積、Ｔは行列またはベクトルの転置であり、γｈは行列Ｚ（ｔ）のｈ番目に大きい特異値であり、ωａｈおよびωｂｈは対応する右特異ベクトルおよび左特異ベクトルであり、Ｈはｍｉｎ（Ｌ，Ｍ）であり、ｆ（γｈ）はＪａｍｅｓ−Ｓｔｅｉｎ型推定量である。
【請求項３】
前記推定値算出部は、前記Ｊａｍｅｓ−Ｓｔｅｉｎ型推定量ｆ（γｈ）として下記式を用いる請求項２に記載の利用対象推薦装置。
【数３】
2010061513.tif 000012
ここで、Ｋはｍａｘ（Ｌ，Ｍ）であり、σ＾２は行例Ｙの観測ノイズ分散である。
【請求項４】
前記推定値算出部は、σ＾２を、ｔｒａｃｅ（ＹＴＹ）／（ＬＭ）により求める請求項３に記載の利用対象推薦装置。
【請求項５】
前記推定値算出部は、σ＾２を、行列Ｙのサンプルを用いてクロスバリデーションにより求める請求項３に記載の利用対象推薦装置。
【請求項６】
前記推定値算出部は、行列Ｙの行列要素の個数が閾値より小さい場合に、σ＾２を、行列Ｙのサンプルを用いてクロスバリデーションにより求め、行列Ｙの行列要素の個数が前記閾値以上である場合に、σ＾２を、ｔｒａｃｅ（ＹＴＹ）／（ＬＭ）により求める請求項３に記載の利用対象推薦装置。
【請求項７】
前記推薦情報提示部は、特定の前記利用者について、より大きい前記推定値に対応づけられた前記利用対象をより優先的に提示する請求項１から６のいずれかに記載の利用対象推薦装置。
【請求項８】
前記推薦情報提示部は、前記推定値読出部により前記評価値が読み出された前記利用対象を除外して、他の前記利用対象を提示する請求項７に記載の利用対象推薦装置。
【請求項９】
前記推薦情報提示部は、特定の前記利用対象について、より大きい前記推定値に対応づけられた前記利用者に対してより優先的に前記利用対象を提示する請求項１から６のいずれかに記載の利用対象推薦装置。
【請求項１０】
前記推薦情報提示部は、前記推定値読出部により前記評価値が読み出された前記利用対象を除外して、他の前記利用対象を提示する請求項９に記載の利用対象推薦装置。
【請求項１１】
ネットワークを介して利用者の端末から入力された利用対象の評価値に基づいて、前記利用者へ推薦する利用対象に関する推薦情報を、前記端末を介して前記利用者へ推薦する利用対象推薦方法であって、
複数の利用者が複数の利用対象のそれぞれを評価した評価値を、前記利用者および前記利用対象に対応付けて読み出す推定値読出段階と、
前記推定値読出段階により読み出された前記評価値のなかで欠損している評価値を、前記利用者および前記利用対象を行および列とした前記評価値の行列の特異値分解を用いて推定した、推定値を算出する推定値算出段階と、
前記推定値算出段階により推定された前記推定値に基づいて、前記複数の利用対象のうち前記利用者へ推薦する利用対象を選択して、選択した前記利用対象を推薦する推薦情報を、前記ネットワークを介して前記利用者の前記端末に提示する推薦情報提示段階と
を備え、
前記推定値算出段階は、前記行列の特異値単位の縮小推定により前記推定値を算出する利用対象推薦方法。
【請求項１２】
ネットワークを介して利用者の端末から入力された利用対象の評価値に基づいて、前記利用者へ推薦する利用対象に関する推薦情報を、前記端末を介して前記利用者へ推薦するコンピュータに、
複数の利用者が複数の利用対象のそれぞれを評価した評価値を、前記利用者および前記利用対象に対応付けて読み出す推定値読出機能、
前記推定値読出機能により読み出された前記評価値のなかで欠損している評価値を、前記利用者および前記情報を行および列とした前記評価値の行列の特異値分解を用いて推定した、推定値を算出する推定値算出機能、および、
前記推定値算出機能により推定された前記推定値に基づいて、前記複数の利用対象のうち前記利用者へ推薦する利用対象を選択して、選択した前記利用対象を推薦する推薦情報を、前記ネットワークを介して前記利用者の前記端末に提示する推薦情報提示機能
を実現させ、
前記推定値算出機能は、前記行列の特異値単位の縮小推定により前記推定値を算出するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して利用者の端末から入力された利用対象の評価値に基づいて、利用者へ推薦する利用対象に関する推薦情報を、端末を介して利用者へ推薦する利用対象推薦装置、利用対象推薦方法およびプログラムに関する。
【背景技術】
【０００２】
利用者から、映画、書籍等のアイテムへの評価値の入力を受け付けるとともに、当該評価値に基づいて、当該利用者の未評価のアイテムを推薦する利用対象推薦装置が知られている。この利用対象推薦装置として、利用者の未評価のアイテムの評価値を欠損データととらえて、当該欠損データを推定するものがある（非特許文献１および２を参照）。欠損データの推定方法として、利用者とアイテムとを行及び列とする行列について、重み付け低階数近似（weighted low-rank approximation:WLRA）により推定値を求める方法がある。
【非特許文献１】Srebro, N., &Jaakkola, T. (2003). Weighted Low Rank Approximation. Proc. of ICML.
【非特許文献２】Goldberg, K. Y., Roeder, T., Gupta, D., &Perkins, C. (2001). Eigentaste: A Constant Time Collaborative Filtering Algorithm. Inf. Retr., 4, 133-151.
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記ＷＬＲＡの方法においては、階数を決定するのにクロスバリデーションを用いるので、行列要素の個数が多い行列の推定値を算出するのに計算量が非常に多くなり、従って計算に時間がかかる。さらに、計算量が多いという制約から、クロスバリデーションする階数の設定数が少なく、従って得られる精度に限界がある。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明の第１の態様においては、ネットワークを介して利用者の端末から入力された利用対象の評価値に基づいて、利用者へ推薦する利用対象に関する推薦情報を、端末を介して利用者に提示する利用対象推薦装置であって、複数の利用者が複数の利用対象のそれぞれを評価した評価値を、利用者および利用対象に対応付けて読み出す推定値読出部と、推定値読出部により読み出された評価値のなかで欠損している評価値を、利用者および利用対象を行および列とした評価値の行列の特異値分解を用いて推定した、推定値を算出する推定値算出部と、推定値算出部により算出された推定値に基づいて、複数の利用対象のうち利用者へ推薦する利用対象を選択して、選択された利用対象を推薦する推薦情報を、ネットワークを介して利用者の端末に提示する推薦情報提示部とを備え、推定値算出部は、行列の特異値単位の縮小推定により推定値を算出する利用対象推薦装置が提供される。
【０００５】
また、本発明の第２の態様においては、ネットワークを介して利用者の端末から入力された利用対象の評価値に基づいて、利用者へ推薦する利用対象に関する推薦情報を、端末を介して利用者へ推薦する利用対象推薦方法であって、複数の利用者が複数の利用対象のそれぞれを評価した評価値を、利用者および利用対象に対応付けて読み出す推定値読出段階と、推定値読出段階により読み出された評価値のなかで欠損している評価値を、利用者および利用対象を行および列とした評価値の行列の特異値分解を用いて推定した、推定値を算出する推定値算出段階と、推定値算出段階により推定された推定値に基づいて、複数の利用対象のうち利用者へ推薦する利用対象を選択して、選択した利用対象を推薦する推薦情報を、ネットワークを介して利用者の端末に提示する推薦情報提示段階とを備え、推定値算出段階は、行列の特異値単位の縮小推定により推定値を算出する利用対象推薦方法が提供される。
【０００６】
また、本発明の第３の態様においては、ネットワークを介して利用者の端末から入力された利用対象の評価値に基づいて、利用者へ推薦する利用対象に関する推薦情報を、端末を介して利用者へ推薦するコンピュータに、複数の利用者が複数の利用対象のそれぞれを評価した評価値を、利用者および利用対象に対応付けて読み出す推定値読出機能、推定値読出部により読み出された評価値のなかで欠損している評価値を、利用者および情報を行および列とした評価値の行列の特異値分解を用いて推定した、推定値を算出する推定値算出機能、および、推定値算出部により推定された推定値に基づいて、複数の利用対象のうち利用者へ推薦する利用対象を選択して、選択した利用対象を推薦する推薦情報を、ネットワークを介して利用者の端末に提示する推薦情報提示機能を実現させ、推定値算出機能は、行列の特異値単位の縮小推定により推定値を算出するプログラムが提供される。
【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本発明の一実施形態である利用対象推薦装置１００を含む推薦情報提示システム１０の概略を示す概略図である。図１の推薦情報提示システム１０は、利用対象推薦装置１００、利用者により利用される端末２０、２２、２４、２６、および、それらの間で情報の送受信を可能にするネットワーク４０を含む。利用対象推薦装置１００は、例えば、ネットワーク４０上でアイテムを販売するアイテム提供者により管理される。この利用対象推薦装置１００は、ネットワーク４０を介して利用者の端末２０等から入力されたアイテムの評価値に基づいて、当該利用者へ推薦するアイテムに関する推薦情報を、端末２０等を介して利用者に提示する。ここで、アイテムは利用対象の一例であって、有体の商品、ネットワーク４０を介して配信される無体のコンテンツ等を含む。
【００１０】
図２は、利用対象推薦装置１００の機能ブロックを示す。利用対象推薦装置１００は、評価値入力部１１０と、評価値格納部１２０と、評価値読出部１３０と、推定値算出部１４０と、推定値格納部１５０と、推薦情報提示部１６０とを有する。また、利用対象推薦装置１００は、記憶媒体１０２に格納されたプログラムがインストールされることにより、上記評価値入力部１１０から推薦情報提示部１６０の機能を実現してもよい。
【００１１】
評価値入力部１１０は、ネットワーク４０を介して複数の利用者の端末２０等から入力された複数のアイテムの評価値を受信する。評価値は、例えば、評価が高いほど数値が大きい５段階評価である。他の評価の例として、興味の有無を１と０とで評価する、または、実際に当該アイテムを購買したか否かを１と０とで評価してもよい。評価値入力部１１０は、受信した評価値を利用者を識別する番号およびアイテムを識別する番号に対応付けて評価値格納部１２０に格納する。
【００１２】
また、評価値読出部１３０は、評価値格納部１２０に格納されている評価値を読み出す。さらに、推定値算出部１４０は、評価値読出部１３０により読み出された評価値のなかで欠損している評価値を推定し、当該推定値をアイテムに対応付けて推定値格納部１５０に格納する。なお、推定値算出部１４０の動作の詳細は後述する。また、推薦情報提示部１６０は、推定値格納部１５０を参照して利用者へ推薦する利用対象を選択して、選択したアイテムを推薦する推薦情報を、ネットワークネットワーク４０を介して利用者の端末２０等に提示する。
【００１３】
図３は、評価値格納部１２０に格納される情報の一例を示す。図３の評価値格納部１２０は、利用者番号ｌおよびアイテム番号ｍに対応付けて、１から５までの５段階の評価値を格納している。この場合に、評価値格納部１２０はＬ人の利用者およびＭ個のアイテムについて、Ｌ×Ｍ個の評価値を格納することができるが、すべての利用者がすべてのアイテムについて評価値を入力していることはむしろまれである。図３において、評価値が入力されていない箇所が欠損箇所として「＊」で示されている。
【００１４】
図４は、推定値格納部１５０に格納される情報の一例を示す。図４の推定値格納部１５０には、アイテム番号ｍおよび利用者番号ｌに対応付けて、推定値算出部１４０にて算出された１．０から５．０までの推定値が格納される。この場合に、評価値格納部１２０に格納されているＬ×Ｍ個の評価値（ただし欠損箇所も含む）に対応して、推定値格納部１５０も、Ｌ×Ｍ個の推定値を格納している。図４において、評価値格納部１２０で評価値が入力されていた箇所に対する推定値を、括弧を付して示した。
【００１５】
図５は、利用対象推薦装置１００の動作の一例（Ｓ１０）を示すフローチャートである。図５のフローチャートは、評価値入力部１１０に端末２０から新たに評価値が入力された場合に開始する。
【００１６】
まず、評価値読出部１３０は、評価値格納部１２０から、評価値を利用者番号ｌおよびアイテム番号ｍに対応付けて読み出す（Ｓ１００）。次に、推定値算出部１４０は、評価値読出部１３０から受け取った評価値を規格化する（Ｓ１０２）。この場合に、推定値算出部１４０は、欠陥箇所でない評価値について全体の平均が０となり、分散が１となるように、すなわち、Ｌ×Ｍの行列において欠陥箇所でない評価値の行列全体の平均が０となり、分散が１となるように規格化する。なお、これに代えて、推定値算出部１４０は、欠陥箇所でない評価値について利用者毎の平均が０となり、分散が１となるように、すなわち、Ｌ×Ｍの行列の各行において欠陥箇所でない評価値の平均が０となり、分散が１となるように規格化してもよいし、欠陥箇所でない評価値についてアイテム毎の平均が０となり、分散が１となるように、すなわち、Ｌ×Ｍの行列の各列において欠陥箇所でない評価値の平均が０となり、分散が１となるように規格化してもよい。また、推定値算出部１４０は、評価値読出部１３０から受け取った評価値の個数Ｌ×Ｍが予め設定された正の整数Ｎｅ０より大きいか否かを判断する（Ｓ１１０）。ここでの評価値の個数は欠損箇所も含むので、利用者の数Ｌにアイテムの数Ｍを掛けた個数となる。
【００１７】
ステップＳ１１０において、評価値の個数Ｌ×Ｍが整数Ｎｅ０よりも大きい場合に、推定値算出部１４０は、欠損している評価値を、利用者番号ｌおよびアイテム番号ｍを行および列とした評価値の行列Ｙの特異値分解を用いて推定した、推定値を算出する（Ｓ２００）。当該ステップＳ２００において、推定値算出部１４０は、特異値単位の縮小推定により推定値を算出し、その場合にハイパーパラメータについてクロスバリデーション（ＣＶ）を用いない。当該計算方法については、さらに後述する。
【００１８】
一方、ステップＳ１１０において、評価値の個数Ｌ×Ｍが整数Ｎｅ０以下の場合に、推定値算出部１４０は、欠損している評価値を、利用者番号ｌおよびアイテム番号ｍを行および列とした評価値の行列Ｙの特異値分解を用いて推定した、推定値を算出する（Ｓ３００）。当該ステップＳ３００において、推定値算出部１４０は、特異値単位の縮小推定により推定値を算出し、その場合にハイパーパラメータについてクロスバリデーション（ＣＶ）を用いる。当該計算方法については、さらに後述する。
【００１９】
ここで、上記正の整数Ｎｅ０は、１００，０００から２００，０００のいずれかであることが好ましく、予め設定されて推定値算出部１４０に格納されている。さらに、上記ステップＳ２００、Ｓ３００に続いて、推定値算出部１４０は、算出したＬ×Ｍ個の推定値を変換する（Ｓ１１８）。この変換は、ステップＳ１０２における規格化の逆変換に対応する。さらに、推定値算出部１４０は、変換後の推定値を推定値格納部１５０に格納する（Ｓ１２０）。
【００２０】
推薦情報提示部１６０は、推定値格納部１５０に格納された推定値に基づいて、利用者へ推薦するアイテムを選択する（Ｓ１３０）。ここで、推薦情報提示部１６０は、特定の利用者について、より大きい推定値に対応づけられたアイテムをより優先的に、例えば大きい方から所定個数だけ選択する。これにより、当該特定の利用者にとって関心が高いと推定されるアイテムを選択することができる。
【００２１】
この場合に、推薦情報提示部１６０は、ある利用者の評価値の入力を契機として当該動作（Ｓ１０）が開始した場合には、当該利用者を特定の利用者とすることが好ましい。図３に示す例において、利用者番号３が端末２０を用いてアイテム番号１について評価値を入力したことにより当該動作が開始した場合には、当該利用者番号３について推定値の大きいアイテム、例えば、アイテム番号３を選択する。これにより、評価の対象となっているアイテムに現在関心を持っている利用者に対して、推薦する他のアイテムを選択することができる。
【００２２】
当該ステップＳ１３０において、推薦情報提示部１６０はさらに、評価値読出部１３０により評価値が読み出されたアイテムを除外して、他のアイテムを提示することが好ましい。すなわち、推薦情報提示部１６０は、評価値格納部１２０における欠陥箇所に対応するアイテムのうち、推定値の大きいアイテムを選択することが好ましい。これにより、当該利用者が未だ利用していないアイテムが提示されることにより、利用者が当該アイテムを利用するのをより促進することができる。
【００２３】
また、推定値算出部１４０は、推定値の大きいほうから所定個数だけアイテムを選択することに代えて、所定値以上の推定値に対応するアイテムを選択してもよい。
【００２４】
推薦情報提示部１６０は、ステップＳ１３０で選択したアイテムを推薦する推薦情報を、ネットワーク４０を介して利用者の端末２０に提示する（ステップＳ１４０）。上記の例において、利用者番号３について推薦すべきアイテムを選択した場合には、当該利用者番号３の利用者の端末２０へ、推薦情報を送信する。これにより、利用者がこれまで入力した評価値に基づいて、当該利用者が関心を持つことが推定されるアイテムを推薦する推薦情報を、端末２０等を介して当該利用者に提示することができる。ここで、推薦情報の例として、当該アイテムの名称、当該アイテムを紹介または購買するホームページのＵＲＬまたはリンク等が含まれる。また、利用者番号と端末を識別する識別情報とが対応付けられて、当該利用対象推薦装置１００に格納されていてもよいし、外部のデータベースに格納されていて当該データベースが参照されてもよい。
【００２５】
図６は、図５のステップＳ２００の動作を示すフローチャートである。ステップＳ２００において、推定値算出部１４０は、ＥステップおよびＭステップとして下記数式を用いる。
【数１】
2010061513.tif 000003
【数２】
2010061513.tif 000004
【００２６】
ここで、Ｘ，Ｙ、Ｚ、ＷはＬ×Ｍの行列であり、Ｙｌ，ｍはＹの行列要素であって利用者ｌが利用対象ｍを評価した評価値であり、Ｗｌ，ｍはＷの行列要素であってＹｌ，ｍが欠損していれば０で、欠損していなければ１であり、ｔは繰り返し番号であり、×は成分ごとの積、Ｔは行列またはベクトルの転置であり、γｈは行列Ｚ（ｔ）のｈ番目に大きい特異値であり、ωａｈおよびωｂｈは対応する右特異ベクトルおよび左特異ベクトルであり、Ｈはｍｉｎ（Ｌ，Ｍ）であり、ｆ（γｈ）はＪａｍｅｓ−Ｓｔｅｉｎ型推定量である。
【００２７】
さらに、推定値算出部１４０は、上記Ｊａｍｅｓ−Ｓｔｅｉｎ型推定量ｆ（γｈ）として下記式を用いることが好ましい。
【数３】
2010061513.tif 000005
【００２８】
ここで、Ｋはｍａｘ（Ｌ，Ｍ）であり、σ＾２は行例Ｙの観測ノイズ分散である。この推定量は、positive-part縮小推定量と呼ばれる。
【００２９】
当該動作Ｓ２００において、推定値算出部１４０は、σ＾２を下記数式により求める（Ｓ２１０）。このσ＾２は、ノイズだけでなく、信号成分も含んだ振幅の合計であるが、行列のサイズが大きい場合（このときＳ２００が選択される）には良い近似となっている。
【数４】
2010061513.tif 000006
【００３０】
さらに、推定値算出部１４０は、上記Ｅステップの計算（Ｓ２２０）とＭステップの計算と（Ｓ２３０）とを交互に繰り返す（Ｓ２４０）、いわゆるＥＭアルゴリズムにより推定値を算出する。推定値算出部１４０は、ステップＳ２２０とＳ２３０とを予め定められた回数Ｎｃだけ繰り返す。ただし、回数を予め定めることに代えて、収束を示すパラメータが所定位置以下になるまで計算を繰り返すようにしてもよい。
【００３１】
以上、図６に示すステップＳ２００の動作によれば、行例の特異値分解を用いてＥＭアルゴリズムにより当該行列の要素を推定するにあたり、クロスバリデーションを用いない。よって、行列要素の数、すなわち、評価値の個数Ｌ×Ｍが多くてもクロスバリデーションを用いる場合に比べて計算量を抑えつつ、より妥当な推定値を得ることができる。また、行列の特異値単位の縮小推定を用いているので、サンプルにオーバーエスティメートすることを抑え、より妥当な推定値を得ることができる。
【００３２】
図７は、図５のステップＳ３００の動作を示すフローチャートである。ステップＳ３００においても、推定値算出部１４０は、上記数式１から３を用いるが、σ＾２を、行列Ｙのサンプルを用いてクロスバリデーションにより求める。
【００３３】
ステップＳ３１０において、推定値算出部１４０は、上記数式１から３のハイパーパラメータの初期値を設定する。ここで、ハイパーパラメータとしてσ＾２が含まれる。
【００３４】
さらに、推定値算出部１４０は、行列Ｙのデータセットを設定する（Ｓ３１２）。例えば、行列Ｙのデータセットとして、行列Ｙから複数の計算用の行列および検証用の行列の組が複数個、作成される。なお、上記ステップＳ３１２とＳ３１０の順序は問わない。
【００３５】
ステップＳ３１４からＳ３１８までの動作は、図６のステップＳ２１０からＳ２４０までの動作と同一であり、説明を省略する。ただし、計算には上記計算用の行列が用いられる。ステップＳ３２０において、推定値算出部１４０は、検証用の行列を用いて上記計算結果を検証する。さらに推定値算出部１４０は、これらのステップＳ３１４からＳ３２０まで動作を、上記行列の組について繰り返す（Ｓ３２２）。
【００３６】
さらに、推定値算出部１４０は、ハイパーパラメータの値を変更して（Ｓ３２４）、ステップＳ３１４からＳ３２２までの動作を繰り返す（Ｓ３２６）。ハイパーパラメータは、所定範囲内で等間隔に設定されていてもよいし、適切なパラメータが予想できる場合には予想されるパラメータの値の前後を密に設定してもよい。
【００３７】
ステップＳ３２８において、推定値算出部１４０は、ハイパーパラメータを決定するとともに、そのハイパーパラメータにおける推定値を決定する（Ｓ３２８）。ここで、推定値算出部１４０は例えば、上記ステップＳ３２０の検証の結果をハイパーパラメータ毎に平均して、当該平均に基づいて最適なハイパーパラメータを決定する。
【００３８】
以上、図７に示すステップＳ３００の動作によれば、行例の特異値分解を用いてＥＭアルゴリズムにより当該行列の要素を推定するにあたり、σ＾２についてクロスバリデーションを用いるので、より妥当な推定値を得ることができる。
【００３９】
以上、図１から図７に示す本実施形態によれば、利用者がこれまで入力した評価値に基づいて、当該利用者が関心を持つことが推定されるアイテムを推薦する推薦情報を、端末２０等を介して当該利用者に提示することができる。また、上記実施形態においては、ステップＳ１１０において、評価値の個数Ｌ×Ｍに応じてステップＳ２００とステップＳ３００とを使い分けている。これにより、評価値の個数Ｌ×Ｍすなわち行列Ｙの行列要素の数が少ない場合にはクロスバリデーションを用いてより妥当な推定値を算出するとともに、行列要素の数が多い場合にはクロスバリデーションを用いずに計算量を抑えて妥当な推定値を算出することができる。
【００４０】
ただし、推定値の算出方法は場合分けするものに限られない。これに代えて、評価値の個数に関わらず、ステップＳ２００により推定値を算出してもよい。これにより、行列要素の数が多い場合にはクロスバリデーションを用いずに計算量を抑えて妥当な推定値を算出することができる。
【実施例】
【００４１】
上記実施形態の推定方法を下記の通り評価した。実施例１としてステップＳ２００の計算方法を用い、実施例２としてステップＳ３００の計算方法を用いる。また、比較例として、ステップＳ２００における数式２に代えて、ＷＬＲＡである下記数式５を用いる。ただし、Ｈ´はｍｉｎ（Ｌ，Ｍ）より小さいハイパーパラメータであり、クロスバリデーションにより最適値が決定される。
【数５】
2010061513.tif 000007
【００４２】
行列Ｙのサンプルデータセットとして、ＧｒｏｕｐＬｅｎｓプロジェクトで公開されているＭｏｖｅＬｅｎｓのデータセット、および、Ｎｅｔｆｌｉｘ社から公開されているデータセットを用いた。それらのデータは、１から５までの五段階評価である。これらのデータセットから、利用者数Ｌとアイテム数Ｍの複数の組み合わせを設定したＬ×Ｍ行列をつくり、そのうちで最も欠損箇所の少ない行列を観察行列Ｙとし、当該観察行列Ｙは、利用者毎に、評価値の平均が０および分散が１となるように正規化した。
【００４３】
上記データセットを用いて、推定値の行列Ｘ＾を算出した。算出した推定値と、観察行列Ｙの評価値との絶対誤差ＭＡＥを下記数式６により算出した。ただし、Ｗｔｅｓｔは、観察行列Ｙにおいて評価値がある行列要素を１として評価値が欠損している行列要素を０とした行列である。なお、下記数式から明らかな通り、当該ＭＡＥの値が小さいほど、推定値が妥当であることを示す。
【数６】
2010061513.tif 000008
【００４４】
上記実施例１、２および比較例による計算結果を表１に示す。ここで、欠損率は、観察行列Ｙにおける欠損箇所の割合である。
【表１】
2010061513.tif 000009
【００４５】
上記表１に示された計算結果によれば、比較例よりも実施例１、２の推定値がより妥当であることが分かる。ここで、実施例２は行列要素の数が多いときに計算量が多くなる。表１に示すとおり、実施例１は当該実施例２に匹敵する妥当性を有するので、実施例１の計算方法を用いることにより、計算量を抑えつつ、妥当な推定値を算出することができる。
【００４６】
以上、本実施形態によれば、利用者がこれまで入力した評価値に基づいて、当該利用者が関心を持つことが推定されるアイテムを推薦する推薦情報を、端末２０等を介して当該利用者に提示することができる。この場合に、利用者の数およびアイテムの数が大きくても、計算量を抑えて、より妥当なアイテムを推薦することができる。
【００４７】
なお、図２において、評価値入力部１１０および評価値格納部１２０は利用対象推薦装置１００の一部であるが、これに限られない。他の例として、評価値入力部１１０および評価値格納部１２０が、ネットワーク４０を介して接続された利用対象推薦装置１００とは別のサーバに設けられていてもよい。この場合に、Ｓ１０の動作は、端末２０等から評価値読出部１３０に対して推定値を計算すべき旨の入力、または、推薦情報を提示すべき旨の入力があったことを契機に開始してもよい。さらにまた、Ｓ１０の動作は、予め設定された所定時間毎に実行されてもよい。
【００４８】
また、推薦情報提示部１６０は、評価値入力部１１０または評価値読出部１３０への入力を契機に推薦情報を端末２０等に提示することに代えて、端末２０等からの要求に基づいて推薦情報を提示してもよい。この場合に、例えば、端末２０から要求があった場合には、推薦情報提示部１６０は端末２０に対応する利用者についてアイテムを選択して、当該アイテムの推薦情報を端末２０に出力することが好ましい。
【００４９】
さらに、図５のステップＳ１３０において、特定の利用者について推定値の大きいアイテムを選択することに代えて、特定のアイテムについて推定値の大きい利用者を優先的に選択してもよい。また、利用対象推薦装置１００は、新しいアイテムが評価値格納部１２０に追加され、所定数の利用者の評価値が評価値格納部１２０に格納されたときに、推定値を算出し、当該アイテムについて推定値の大きい利用者を優先的に選択してもよい。上記いずれの場合も、推薦情報提示部１６０は、当該アイテムの評価値が評価値読出部１３０から読み出された利用者を除外して、欠損箇所に対応する利用者のうち、推定の大きい利用者を選択することが好ましい。
【００５０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００５１】
【図１】一実施形態である利用対象推薦装置１００を含む推薦情報提示システム１０の概略を示す概略図である。
【図２】利用対象推薦装置１００の機能ブロックを示す。
【図３】評価値格納部１２０に格納される情報の一例を示す。
【図４】推定値格納部１５０に格納される情報の一例を示す。
【図５】利用対象推薦装置１００の動作の一例（Ｓ１０）を示すフローチャートである。
【図６】図５のステップＳ２００の動作を示すフローチャートである。
【図７】図５のステップＳ３００の動作を示すフローチャートである。
【符号の説明】
【００５２】
１０  推薦情報提示システム、２０  端末、２２  端末、２４  端末、２６  端末、４０  ネットワーク、１００  利用対象推薦装置、１０２  記憶媒体、１１０  評価値入力部、１２０  評価値格納部、１３０  評価値読出部、１４０  推定値算出部、１５０  推定値格納部、１６０  推薦情報提示部
【図１】
2010061513.tif 000013
【図２】
2010061513.tif 000014
【図３】
2010061513.tif 000015
【図４】
2010061513.tif 000016
【図５】
2010061513.tif 000017
【図６】
2010061513.tif 000018
【図７】
2010061513.tif 000019