(57)【特許請求の範囲】
【請求項１】
利用者の特徴を示す情報を含む第１行列と、提案対象の特徴を示す情報を含む第２行列と、前記提案対象に対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得部と、
前記提案対象の提案先となる利用者の特徴を示す情報をクエリとし、前記第４行列と前記第２行列との積の値を前記利用者の特徴に対する各提案対象のスコアとして、当該クエリと当該スコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する検索部と、
前記検索部による検索結果に基づいて、前記利用者に対して提案する提案対象を選択する選択部と
を有することを特徴とする選択装置。
【請求項２】
前記検索部は、ＷＡＮＤアルゴリズムを用いて、前記クエリと前記スコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する
ことを特徴とする請求項１に記載の選択装置。
【請求項３】
前記取得部は、前記利用者に対して提案する提案対象として、電子商取引の対象となる商品または役務の特徴を示す情報を含む第２行列と、前記商品または役務に対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列を取得し、
前記検索部は、前記商品または役務の提案先となる利用者の特徴を示す情報をクエリとし、前記第４行列と前記第２行列との積の値を前記利用者の特徴に対する前記商品または役務のスコアとして、当該クエリと当該スコアとから算出される内積値の値が高い方から所定の数の前記商品または役務を検索し、
前記選択部は、前記検索部による検索結果に基づいて、前記利用者に対して提案する商品または役務を選択する
ことを特徴とする請求項１または２に記載の選択装置。
【請求項４】
利用者の特徴を示す情報を行方向に配置した第１行列と、提案対象の特徴を示す情報を列方向に配置した第２行列と、提案対象に対する利用者の評価を示す情報を行方向に配置した第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得部と、
前記提案対象の提案先となる利用者の特徴を示す情報を含む行と、前記第４行列と、前記第２行列との積から、前記提案対象の提案先となる利用者の各提案対象に対する評価を示す値を算出する算出部と、
前記算出部によって算出された値に基づいて、前記利用者に対して提案する提案対象を選択する選択部と
を有することを特徴とする選択装置。
【請求項５】
前記算出部は、前記第１行列から前記提案対象の提案先となる利用者の特徴を示す情報を含む行を抽出し、抽出した行と、前記第４行列と、前記第２行列との積から、前記提案対象の提案先となる利用者の各提案対象に対する評価を示す値を算出する
ことを特徴とする請求項４に記載の選択装置。
【請求項６】
前記取得部は、前記利用者に対して提案する提案対象として、電子商取引の対象となる商品または役務の特徴を示す情報が列方向に配置された第２行列と、前記商品または役務に対する各利用者の評価を示す情報を行方向に配置した第３行列とから算出される第４行列を取得し、
前記算出部は、前記商品または役務の提案先となる利用者の特徴を示す情報を含む行と、前記第４行列と、前記第２行列との積から、当該利用者の前記商品または役務に対する評価を示す値を算出し、
前記選択部は、前記算出部による算出結果に基づいて、前記利用者に対して提案する商品または役務を選択する
ことを特徴とする請求項４または５に記載の選択装置。
【請求項７】
利用者の特徴を示す情報を含む第１行列と、コンテンツの特徴を示す情報を含む第２行列と、前記コンテンツに対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得部と、
前記コンテンツの提案先となる利用者の特徴を示す情報と、前記第４行列と、前記第２行列とを用いて、前記コンテンツの提案先となる利用者の前記コンテンツに対する評価を推定する推定部と、
前記推定部による推定結果に基づいて、前記利用者に対して提案するコンテンツを選択する選択部と
を有することを特徴とする選択装置。
【請求項８】
前記第１行列と前記第４行列と前記第２行列との積が前記第３行列に近づくように、各成分の値が設定された前記第４行列を生成する生成部
を有することを特徴とする請求項１〜７のうちいずれか１つに記載の選択装置。
【請求項９】
前記生成部は、行数が前記第１行列の列数と同じ第５行列と、列数が前記第２行列の行数と同じ第６行列であって、前記第１行列と当該第５行列と当該第６行列と前記第２行列との積が前記第３行列を再現するように第５行列および第６行列を生成し、生成した第５行列および第６行列の積を前記第４行列とする
ことを特徴とする請求項８に記載の選択装置。
【請求項１０】
選択装置が実行する選択方法であって、
利用者の特徴を示す情報を含む第１行列と、提案対象の特徴を示す情報を含む第２行列と、前記提案対象に対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得工程と、
前記提案対象の提案先となる利用者の特徴を示す情報をクエリとし、前記第４行列と前記第２行列との積の値を前記利用者の特徴に対する各提案対象のスコアとして、当該クエリと当該スコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する検索工程と、
前記検索工程による検索結果に基づいて、前記利用者に対して提案する提案対象を選択する選択工程と
を含むことを特徴とする選択方法。
【請求項１１】
選択装置が実行する選択方法であって、
利用者の特徴を示す情報を行方向に配置した第１行列と、提案対象の特徴を示す情報を列方向に配置した第２行列と、提案対象に対する利用者の評価を示す情報を行方向に配置した第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得工程と、
前記提案対象の提案先となる利用者の特徴を示す情報を含む行と、前記第４行列と、前記第２行列との積から、前記提案対象の提案先となる利用者の各提案対象に対する評価を示す値を算出する算出工程と、
前記算出工程によって算出された値に基づいて、前記利用者に対して提案する提案対象を選択する選択工程と
を含むことを特徴とする選択方法。
【請求項１２】
選択装置が実行する選択方法であって、
利用者の特徴を示す情報を含む第１行列と、コンテンツの特徴を示す情報を含む第２行列と、前記コンテンツに対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得工程と、
前記コンテンツの提案先となる利用者の特徴を示す情報と、前記第４行列と、前記第２行列とを用いて、前記コンテンツの提案先となる利用者の前記コンテンツに対する評価を推定する推定工程と、
前記推定工程による推定結果に基づいて、前記利用者に対して提案するコンテンツを選択する選択工程と
を含むことを特徴とする選択方法。
【請求項１３】
利用者の特徴を示す情報を含む第１行列と、提案対象の特徴を示す情報を含む第２行列と、前記提案対象に対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得手順と、
前記提案対象の提案先となる利用者の特徴を示す情報をクエリとし、前記第４行列と前記第２行列との積の値を前記利用者の特徴に対する各提案対象のスコアとして、当該クエリと当該スコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する検索手順と、
前記検索手順による検索結果に基づいて、前記利用者に対して提案する提案対象を選択する選択手順と
をコンピュータに実行させるための選択プログラム。
【請求項１４】
利用者の特徴を示す情報を行方向に配置した第１行列と、提案対象の特徴を示す情報を列方向に配置した第２行列と、提案対象に対する利用者の評価を示す情報を行方向に配置した第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得手順と、
前記提案対象の提案先となる利用者の特徴を示す情報を含む行と、前記第４行列と、前記第２行列との積から、前記提案対象の提案先となる利用者の各提案対象に対する評価を示す値を算出する算出手順と、
前記算出手順によって算出された値に基づいて、前記利用者に対して提案する提案対象を選択する選択手順と
をコンピュータに実行させるための選択プログラム。
【請求項１５】
利用者の特徴を示す情報を含む第１行列と、コンテンツの特徴を示す情報を含む第２行列と、前記コンテンツに対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得手順と、
前記コンテンツの提案先となる利用者の特徴を示す情報と、前記第４行列と、前記第２行列とを用いて、前記コンテンツの提案先となる利用者の前記コンテンツに対する評価を推定する推定手順と、
前記推定手順による推定結果に基づいて、前記利用者に対して提案するコンテンツを選択する選択手順と
をコンピュータに実行させるための選択プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、選択装置、選択方法および選択プログラムに関する。
【背景技術】
【０００２】
近年、インターネットの飛躍的な普及に伴い、インターネットを介した情報配信が盛んに行われている。このような情報配信の一例として、配信対象となる音声、動画像、ニュース、ブログ等といった各種のコンテンツや、電子商店街等で取引の対象となる商品等の中から、利用者に対して提案する対象（以下、「提案対象」と記載する。）を選択し、選択した提案対象を利用者に対して通知する技術が知られている。
【０００３】
このような提案対象を選択する手法として、ＭＦ（Matrix  Factorization）と呼ばれる手法が知られている。例えば、ＭＦを用いて提案対象を選択するサーバは、一部のコンテンツや商品等に対する利用者の評価を含む評価値行列から、評価値行列を再現する２つの潜在行列を生成する。また、サーバは、生成した２つの潜在行列から、評価値行列を再計算することで、未評価の提案対象に対する利用者の評価を推定する。そして、サーバは、推定結果に基づいて、提案対象を選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２１８４８５号公報
【特許文献２】特開２０１５−０６０３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、利用者の評価を推定する際の計算コストが増大する恐れがある。
【０００６】
例えば、上述した従来技術では、利用者が新たな評価を行った場合や利用者が評価を変更した場合、新たな利用者が追加された場合、若しくは提案対象となるコンテンツや商品が追加された場合等、潜在行列の生成元となる評価値行列が変化する度に、潜在行列を計算しなおすこととなる。この結果、従来技術では、潜在行列の算出に伴う計算コストが増大する。
【０００７】
本願は、上記に鑑みてなされたものであって、利用者の評価を推定する際の計算コストの増大を防ぐことを目的とする。
【課題を解決するための手段】
【０００８】
本願に係る選択装置は、利用者の特徴を示す情報を含む第１行列と、提案対象の特徴を示す情報を含む第２行列と、前記提案対象に対する前記利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、前記第１行列と前記第４行列と前記第２行列との積が前記第３行列となるように成分の値が設定された第４行列を取得する取得部と、前記提案対象の提案先となる利用者の特徴を示す情報をクエリとし、前記第４行列と前記第２行列との積の値を前記利用者の特徴に対する各提案対象のスコアとして、当該クエリと当該スコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する検索部と、前記検索部による検索結果に基づいて、前記利用者に対して提案する提案対象を選択する選択部とを有することを特徴とする。
【発明の効果】
【０００９】
実施形態の一態様によれば、利用者の評価を推定する際の計算コストの増大を防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る選択装置が実行する選択処理の一例を示す図である。
【図２】図２は、実施形態に係る選択装置の構成例を示す図である。
【図３】図３は、実施形態に係る商品データベースに登録される情報の一例を示す図である。
【図４】図４は、実施形態に係る評価値データベースに登録される情報の一例を示す図である。
【図５】図５は、実施形態に係るユーザデータベースに登録される情報の一例を示す図である。
【図６】図６は、実施形態に係る潜在要素データベースに登録される情報の一例を示す図である。
【図７】図７は、実施形態にかかる選択装置が潜在要素行列を算出する処理の一例について説明する図である。
【図８】図８は、新規利用者の追加時に実行する処理の一例を示す図である。
【図９】図９は、商品の追加時に実行する処理の一例を示す図である。
【図１０】図１０は、ＷＡＮＤアルゴリズムを用いて評価値が高い商品を選択する処理の一例を示す第１の図である。
【図１１】図１１は、ＷＡＮＤアルゴリズムを用いて評価値が高い商品を選択する処理の一例を示す第２の図である。
【図１２】図１２は、ＷＡＮＤアルゴリズムを用いて評価値が高い商品を選択する処理の一例を示す第３の図である。
【図１３】図１３は、実施形態に係る選択装置が潜在要素行列を生成する処理の流れの一例を示すフローチャートである。
【図１４】図１４は、実施形態に係る選択装置が実行する選択処理の流れの一例を示すフローチャートである。
【図１５】図１５は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る選択装置、選択方法および選択プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る選択装置、選択方法および選択プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１２】
［実施形態］
〔１．選択装置の一例〕
まず、図１を用いて、選択装置が実行する選択処理の一例について説明する。図１は、実施形態に係る選択装置が実行する選択処理の一例を示す図である。図１では、選択装置１０は、インターネット等の所定のネットワークＮを介して、利用者Ｕ０１が使用する利用者端末１００と通信可能である。
【００１３】
利用者端末１００は、スマートフォンやタブレット等のスマートデバイスであり、３Ｇ（3rd  Generation）やＬＴＥ（Long  Term  Evolution）等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。なお、利用者端末１００は、スマートデバイスのみならず、デスクトップＰＣやノートＰＣ等の情報処理装置であってもよい。
【００１４】
選択装置１０は、利用者端末１００に対して、各種のウェブページを配信する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。より具体的な例を説明すると、選択装置１０は、電子商店街に関する各種のサービスを提供する情報処理装置であり、例えば、電子商取引の対象となる商品や役務（以下、「商品」と総称する。）に関する各種の情報や、商品の購入等を受付けるウェブページの配信を行う。
【００１５】
なお、選択装置１０は、音楽や動画像等といった各種のコンテンツを配信する配信装置であってもよい。すなわち、選択装置１０は、利用者端末１００に対して情報の配信を行う情報配信処理を実行するのであれば、任意の情報の配信を行ってよい。
【００１６】
ここで、選択装置１０は、利用者に対して各種のレコメンドを行う。例えば、選択装置１０は、各商品に対する利用者の評価に基づいて、利用者が気に入ると予測される商品を選択し、選択した商品の購入を提案する情報、すなわち、利用者が気に入ると予測される商品の広告を利用者に対して配信する。
【００１７】
〔１−１．ＭＦについて〕
ここで、利用者に提案する情報を選択する手法として、ＭＦと呼ばれる手法が知られている。以下、ＭＦを用いて利用者に提案する情報を選択するサーバ装置が実行する処理の一例について説明する。なお、以下の説明では、動画像等のコンテンツのうち、利用者に対して提案するコンテンツを選択する処理の一例について説明する。
【００１８】
例えば、サーバ装置は、各コンテンツに対する利用者の評価を示す評価値行列Ｒを取得する。より具体的には、サーバ装置は、各行に各利用者を対応付け、各列に各コンテンツを対応付けた行列であって、各コンテンツに対する各利用者の評価値が格納された評価値行列Ｒを取得する。一般に、全ての利用者が全てのコンテンツに対して評価を行っているわけではないので、このような評価値行列Ｒは、一部の成分のみが入力されたスパースな行列となる。
【００１９】
ここで、サーバ装置は、評価値行列Ｒを２つの潜在行列に分解する。例えば、サーバ装置は、評価値行列ＲがＮｕ×Ｎｊ行列である場合、Ｎｕ×ｋ行列である潜在行列Ｐと、ｋ×Ｎｊ行列である潜在行列Ｑとを設定する。また、サーバ装置は、潜在行列Ｐと潜在行列Ｑとの成分の初期値として、正規分布に従った値をランダムに設定する。そして、サーバ装置は、潜在行列Ｐと潜在行列Ｑとの積と、評価値行列Ｒとの差分に基づくコスト関数の値が最小化するように、潜在行列Ｐと潜在行列Ｑとの成分を更新する。そして、サーバ装置は、コスト関数の値が十分に小さくなった場合は、潜在行列Ｐと潜在行列Ｑとの積を、復元行列Ｒ’として算出する。
【００２０】
このようにして算出された復元行列Ｒ’には、評価値行列Ｒに入力されていた成分のみならず、評価値行列Ｒに入力されていなかった成分が含まれることとなる。すなわち、復元行列Ｒ’には、各コンテンツに対する利用者の評価の予測値が含まれることとなる。そこで、サーバ装置は、復元行列Ｒ’を用いて、各コンテンツに対する利用者の評価を予測し、予測結果に基づいて、利用者に対して提案するコンテンツを選択する。
【００２１】
しかしながら、上述したＭＦの技術では、各コンテンツに対する利用者の評価が変化した場合、すなわち、評価値行列Ｒの成分が変化した場合は、変化後の評価値行列Ｒを再現する潜在行列Ｐと潜在行列Ｑを再度算出する必要がある。また、新たな利用者やコンテンツが追加された場合には、評価値行列Ｒの行数や列数が変化するため、新たな評価値行列Ｒを再現する新たな潜在行列Ｐと潜在行列Ｑを再度算出する必要がある。この結果、上述したＭＦの技術では、計算コストが増大する恐れがある。特に、ニュースのレコメンドや、商品のレコメンド等、コンテンツに対する利用者の評価が瞬時に変化するようなサービスにおいては、映画の配信サービス等、コンテンツに対する利用者の評価があまり変化しないサービスと比較して、潜在行列Ｐと潜在行列Ｑの更新頻度が高くなってしまう。
【００２２】
〔１−２．選択処理について〕
そこで、選択装置１０は、以下の処理を実行する。まず、選択装置１０は、利用者の特徴を示す情報を含む第１行列と、提案対象の特徴を示す情報を含む第２行列と、提案対象に対する利用者の評価を示す情報を含む第３行列とから算出される第４行列であって、第１行列と第４行列と第２行列との積が第３行列となるように成分の値が設定された第４行列を取得する。また、選択装置１０は、提案対象の提案先となる利用者の特徴を示す情報をクエリとし、第４行列と第２行列との積の値を利用者の特徴に対する各提案対象のスコアとして、クエリとスコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する。そして、選択装置１０は、検索部による検索結果に基づいて、利用者に対して提案する提案対象を選択する。
【００２３】
〔１−３．ＩＭＣ（Inductive  Matrix  Completion）について〕
より具体的には、選択装置１０は、ＩＭＣと呼ばれる手法を用いて、評価値行列Ｒを再現する潜在要素行列Ｗを生成する。例えば、選択装置１０は、第１行列として、利用者の特徴を行方向に配置したユーザ特徴行列Ｘを取得し、第２行列として、提案対象である商品の特徴を示す情報を列方向に配置した商品特徴行列Ｙを取得する。また、選択装置１０は、第３行列として、商品に対する利用者の評価を示す情報を行方向に配置した評価値行列Ｒを取得する。
【００２４】
なお、利用者の特徴とは、利用者の性別、年代、利用者が使用する利用者端末１００の種別、収入、住所、趣味趣向等、利用者の属性を示す各種の情報であるものとする。また、商品の特徴とは、商品がどのカテゴリに属するかや、商品の価格帯等といった商品そのものの属性を示す任意の情報を含むものとする。なお、商品の特徴には、セールの対象商品であるか否か、税込価格が表示されるか、送料無料であるか否か等といった商品の販売手法を示す情報等が含まれていてもよい。
【００２５】
そして、選択装置１０は、ユーザ特徴行列Ｘと、潜在要素行列Ｗと、商品特徴行列Ｙとの積が、評価値行列Ｒを再現するように（すなわち、Ｒ≒Ｘ×Ｗ×Ｙとなるように）、潜在要素行列Ｗを第４行列として算出する。すなわち、選択装置１０は、利用者の特徴と商品の特徴とに基づいて、評価値行列Ｒを行列分解する。
【００２６】
より具体的には、選択装置１０は、行数がユーザ特徴行列Ｘの列数と同じ潜在要素行列Ｕと、列数が商品特徴行列Ｙの行数と同じ潜在要素行列Ｖとを設定し、ユーザ特徴行列Ｘと、潜在要素行列Ｕと、潜在要素行列Ｖと、商品特徴行列Ｙとの積が、評価値行列Ｒを再現するように（すなわち、Ｒ≒Ｘ×Ｕ×Ｖ×Ｙとなるように）、潜在要素行列Ｕおよび潜在要素行列ＶをＡＬＳ（Alternating  Least  Squares）等を用いて生成する。そして、選択装置１０は、生成した潜在要素行列Ｕと潜在要素行列Ｖとの積を潜在要素行列Ｗとして算出する。そして、選択装置１０は、ユーザ特徴行列Ｘと、潜在要素行列Ｗと、商品特徴行列Ｙとの積から、復元行列Ｒ’を算出し、算出した復元行列Ｒ’の成分の値に基づいて、利用者に対して提案する商品を選択する。
【００２７】
このようにして算出された潜在要素行列Ｗは、商品に対する利用者の評価を示す情報ではなく、利用者の特徴と商品の特徴との関連性から、商品に対する利用者の評価を推定する潜在要素を示す情報となる。このため、選択装置１０は、新たな利用者が追加された場合や、新たな商品が追加された場合等であっても、新たな利用者や新たな商品の属性を特定することが出来るのであれば、潜在要素行列Ｗを更新せずとも、評価値の算出を行うことが出来る。この結果、選択装置１０は、潜在要素行列Ｗを生成した場合には、利用者のや商品の追加が行われた場合であっても、潜在要素行列Ｗを更新する計算コストの増大を防ぐことが出来る。
【００２８】
〔１−４．復元行列Ｒ’の算出について〕
ここで、選択装置１０は、復元行列Ｒ’を算出する場合には、商品の提案先となる利用者の特徴を配置した行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積を算出する。より具体的には、選択装置１０は、利用者から商品の検索リクエストを受付けた場合や、利用者から商品の提案リクエストを受け付けた場合等、利用者からの各種リクエストを受付けた場合には、その利用者の特徴を配置した行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積を算出する。
【００２９】
例えば、選択装置１０は、ユーザ特徴行列Ｘに提案先となる利用者の特徴が含まれている場合には、ユーザ特徴行列Ｘから提案先となる利用者の特徴を含む行を抽出する。そして、選択装置１０は、抽出した行と潜在要素行列Ｗと商品特徴行列Ｙとを積算することで、復元行列Ｒ’のうち、提案先となる利用者による各商品への評価を含む行を算出する。
【００３０】
一方、選択装置１０は、新たな利用者が提案先となる場合、すなわち、ユーザ特徴行列Ｘに提案先となる利用者の特徴が含まれていない場合は、新たな利用者の特徴を示す行を生成する。かかる行には、取得可能な全ての特徴が含まれている必要はなく、例えば、所定の初期値が成分として含まれていてもよい。そして、選択装置１０は、生成した行と潜在要素行列Ｗと商品特徴行列Ｙとを積算することで、提案先となる利用者による各商品への評価を含む行を算出する。なお、選択装置１０は、新たに生成した行をユーザ特徴行列Ｘに追加し、ユーザ特徴行列Ｘのうち、提案先となる利用者の特徴を示す行を抽出し、抽出した行と潜在要素行列Ｗと商品特徴行列Ｙとを積算することで、復元行列Ｒ’のうち、提案先となる利用者による各商品への評価を含む行を算出してもよい。
【００３１】
また、選択装置１０は、新たな商品が提案対象に追加された場合は、新たな商品の特徴を示す列を商品特徴行列Ｙに追加すればよい。このような追加を行った場合であっても、選択装置１０は、提案先となる利用者の特徴を示す行と潜在要素行列Ｗと商品特徴行列Ｙとを積算することで、復元行列Ｒ’のうち、提案先となる利用者による各商品への評価を含む行を算出することが出来る。
【００３２】
このように、選択装置１０は、提案先となる利用者の特徴を示す行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積として得られる行を、提案先となる利用者による各商品への評価を含む行、すなわち、復元行列Ｒ’のうち提案先となる利用者と対応する行として算出する。このため、選択装置１０は、利用者の追加や商品の追加があった場合にも、潜在要素行列Ｗをそのまま使用することが出来る。このため、選択装置１０は、利用者の評価を推定する際の計算コストの増大を防ぐことが出来る。
【００３３】
〔１−５．ＷＡＮＤについて〕
ここで、利用者が興味を有していると予測される商品の提案を行う場合、選択装置１０は、以下の処理を実行する。まず、選択装置１０は、提案先となる利用者の特徴を示す行と潜在要素行列Ｗと商品特徴行列Ｙとを積算することで、提案先となる利用者による各商品への評価を示す値を算出する。そして、選択装置１０は、算出した値が高い方から所定の数の商品を提案対象として選択し、選択した商品に関する情報を利用者に配信する。しかしながら、電子商取引の対象となる商品の数によっては、迅速に提案対象となる商品を検索できない場合がある。例えば、電子商取引の対象となる商品が億のオーダーで存在する場合等には、提案対象を検索する際の計算コストが増大してしまう。
【００３４】
そこで、選択装置１０は、いわゆるＷＡＮＤアルゴリズムを用いて、提案対象となる商品の検索を行う。具体的には、選択装置１０は、潜在要素行列Ｗと商品特徴行列Ｙとの積である積算行列ＷＹをあらかじめ算出する。そして、選択装置１０は、提供先となる利用者の特徴をクエリとし、積算行列ＷＹの各成分の値をクエリに対する各商品のスコアとして、クエリとスコアとの内積の値が大きい方から順に所定の数の商品を選択する。すなわち、選択装置１０は、提案先となる利用者の特徴をクエリと見做し、積算行列ＷＹをインデックスと見做したＷＡＮＤアルゴリズムを用いて、利用者の興味がより大きいと予測される商品を検索する。
【００３５】
このようなＷＡＮＤアルゴリズムを採用した場合、それまでに算出された内積値のうち、値が大きいものから所定の数の内積値が候補として保持され、クエリの値とスコアの値とに基づいて、候補に届かない内積値の算出をスキップすることが出来る。このため、選択装置１０は、商品に対する利用者の評価値を算出する際の計算コストを削減することができる。なお、選択装置１０は、選択対象のクエリに対するスコアを用いて、クエリとスコアとの内積の値が大きい方から順に所定の数の商品を選択するいわゆるＴｏｐ−ｋ  ｒｅｔｒｉｅｖａｌアルゴリズムであれば、ＷＡＮＤアルゴリズム以外にも、任意のアルゴリズムを採用してよい。
【００３６】
〔１−６．選択処理の適用対象について〕
なお、上述した例では、選択装置１０は、電子商取引の対象となる商品の特徴を示す商品特徴行列Ｙと、電子商取引の対象となる商品に対する各利用者の評価を示す評価値行列Ｒとを用いて、潜在要素行列Ｗを生成し、生成した潜在要素行列Ｗを用いて、提案先となる利用者の各商品に対する評価値を算出した。すなわち、選択装置１０は、電子商取引の対象となる商品を提案対象とした。しかしながら、実施形態は、これに限定されるものではない。
【００３７】
例えば、選択装置１０は、ニュース、動画像、静止画像、音楽、マイクロブログ等の任意のコンテンツを提案対象としてもよい。より具体的には、選択装置１０は、配信対象となる各コンテンツに対する利用者の評価を含む評価値行列Ｒと、ユーザ特徴行列Ｘと、コンテンツの特徴を含む商品特徴行列Ｙとを用いて、潜在要素行列Ｗを生成し、ユーザ特徴行列Ｘと、潜在要素行列Ｗと、商品特徴行列Ｙとを用いて、コンテンツの提案先となる利用者の各コンテンツに対する評価を推定し、推定結果に基づいて、利用者に対して提案するコンテンツを選択してもよい。このように、選択装置１０は、上述した選択処理をコンテンツの選択に適用することで、利用者に対してコンテンツのレコメンドを実現してもよい。
【００３８】
〔１−７．選択処理の一例について〕
次に、図１を用いて、選択装置１０が実行する選択処理の一例について説明する。まず、選択装置１０は、ＩＭＣを用いて、スパースな評価値行列Ｒと、ユーザ特徴行列Ｘと、商品特徴行列Ｙとに基づいて、潜在要素行列Ｗを算出する（ステップＳ１）。
【００３９】
例えば、図１に示す例では、選択装置１０は、評価値行列Ｒとして、利用者１〜５の商品Ａ〜Ｅに対する評価の値が含まれる行列Ｍ１０を取得する。例えば、図１に示す例では、行列Ｍ１０は、「利用者１」の商品Ｂに対する評価が「５」であり、「商品Ｄ」に対する評価が「２」である旨を示す。また、選択装置１０は、ユーザ特徴行列Ｘとして、「利用者１〜５」が有する特徴を示す値が含まれる行列Ｍ２０を取得する。例えば、図１に示す例では、行列Ｍ２０は、各行に「利用者１〜５」が対応付けられ、各列に利用者の特徴が対応付けられており、各利用者が対応付けられた行のうち、その利用者が有する特徴と対応付けられた列に「１」が格納されている。例えば、図１に示す例では、行列Ｍ２０は、「利用者１」が「２０代」の「女性」であり、利用者端末１００として「ＰＣ（Personal  Computer）」を使用している旨を示す。また、図１に示す例では、選択装置１０は、商品特徴行列Ｙとして、各商品Ａ〜Ｅの特徴を列方向に並べた行列Ｍ４０を取得する。例えば、図１に示す例では、行列Ｍ４０は、「商品Ａ」が「カテゴリ１」に属し、「送料無料」である旨を示す。
【００４０】
このような行列Ｍ１０、Ｍ２０、Ｍ４０を取得した場合には、選択装置１０は、行列Ｍ２０と、行列Ｍ３０と、行列Ｍ４０との積が、行列Ｍ１０となるように、行列Ｍ３０の各成分の値を算出する。より具体的には、選択装置１０は、ＡＬＳ等の手法を用いて、行列Ｍ３０の各成分の値を算出する。そして、選択装置１０は、算出した行列Ｍ３０を潜在要素行列Ｗとする。続いて、選択装置１０は、潜在要素行列Ｗと商品特徴行列Ｙとから、積算行列ＷＹとなる行列Ｍ６０をあらかじめ算出する（ステップＳ２）。すなわち、選択装置１０は、潜在要素行列Ｗ（行列Ｍ３０）と、商品特徴行列Ｙ（行列Ｍ４０）との積となる積算行列ＷＹ（行列Ｍ６０）をあらかじめ算出する。なお、選択装置１０は、ユーザ特徴行列Ｘと、このような積算行列ＷＹとの積を算出することで、復元行列Ｒ’を生成することが出来る。
【００４１】
ここで、選択装置１０は、利用者Ｕ０１が使用する利用者端末１００から商品の検索要求を受信したものとする（ステップＳ３）。このような場合、選択装置１０は、ＷＡＮＤアルゴリズムを用いて、利用者Ｕ０１による評価値が高いと推定される商品を特定する（ステップＳ４）。例えば、選択装置１０は、ユーザ特徴行列Ｘの中から、利用者Ｕ０１が対応付けられた行（例えば、「利用者２」の特徴を示す情報を含む行）を抽出する。また、選択装置１０は、ユーザ特徴行列Ｘから抽出した行をクエリとし、積算行列ＷＹを商品のインデックスとする（ステップＳ５）。ここで、ユーザ特徴行列Ｘと積算行列ＷＹとの積が、評価値行列Ｒ（復元行列Ｒ’）となることを考えると、積算行列ＷＹには、利用者の特徴ごとに、その利用者の特徴に対する各商品のスコアが含まれていると見做すことができ、評価値の値は、クエリとスコアとの内積値であると見做すことが出来る。
【００４２】
そこで、選択装置１０は、ＷＡＮＤアルゴリズムを用いて、クエリとスコアとの内積値が大きい方から所定の数の商品を特定する（ステップＳ６）。例えば、選択装置１０は、「商品Ａ」の内積値が「内積値＃１」であり、「商品Ｂ」の内積値が「内積値＃１」よりも大きい「内積値＃２」であり、「商品Ｃ」の内積値が「内積値＃２」よりも大きい「内積値＃３」である場合は、「商品Ｃ」と「商品Ｂ」とを選択する。そして、選択装置１０は、商品の検索結果とともに、評価値が高い商品の広告、すなわち、「商品Ｃ」と「商品Ｂ」との広告を利用者端末１００へと送信し、表示させる（ステップＳ７）。この結果、選択装置１０は、ＩＭＣを用いて利用者Ｕ０１の評価が高いと推定された商品の広告を、利用者Ｕ０１に対して提供することが出来る。
【００４３】
〔２．選択装置の構成〕
以下、上記した選択処理を実現する選択装置１０が有する機能構成の一例について説明する。図２は、実施形態に係る選択装置の構成例を示す図である。図２に示すように、選択装置１０は、通信部２０、記憶部３０、および制御部４０を有する。
【００４４】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部２０は、ネットワークＮと有線または無線で接続され、利用者端末１００との間で情報の送受信を行う。
【００４５】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、商品データベース３１、評価値データベース３２、ユーザデータベース３３、潜在要素データベース３４、およびインデックスデータベース３５（以下、「各データベース３１〜３５」と総称する場合がある。）を記憶する。
【００４６】
以下、図３〜図６を用いて、各データベース３１〜３５に登録される情報の一例について説明する。商品データベース３１には、商品特徴行列Ｙの各成分が登録されている。例えば、図３は、実施形態に係る商品データベースに登録される情報の一例を示す図である。図３に示すように、商品データベース３１には、電子商取引の対象となる商品の特性である「商品属性」が各行に対応付けられており、商品の識別子である「商品ＩＤ（Identifier）」が各列に対応付けられている。そして、商品データベース３１には、各商品が有する特徴と対応するセルに、成分「１」が登録されている。
【００４７】
例えば、図３に示す例では、商品データベース３１には、商品ＩＤ「Ａ」が対応付けられた列のうち、商品属性「セール」、「カテゴリ２」、「税込」が対応付けられたセルに「０」が格納され、商品属性「カテゴリ１」、「送料無料」が対応付けられたセルに「１」が格納されている。かかる情報は、商品ＩＤ「Ａ」が示す商品が、商品属性「カテゴリ１」に属する商品であり、送料が無料である旨を示している。
【００４８】
評価値データベース３２は、評価値行列Ｒの各成分が登録されている。例えば、図４は、実施形態に係る評価値データベースに登録される情報の一例を示す図である。図４に示すように、評価値データベース３２には、各利用者を識別する「利用者ＩＤ」が各行に対応付けられており、「商品ＩＤ」が各列に対応付けられている。そして、評価値データベース３２には、各利用者が各商品に対して行った評価の内容を示す値が対応するセルに登録されている。
【００４９】
例えば、図４に示す例では、評価値データベース３２には、利用者ＩＤ「１」が対応付けられた行のうち、商品ＩＤ「Ｂ」が対応付けられたセルに「５」が登録され、商品ＩＤ「Ｄ」が対応付けられたセルに「２」が登録されている。かかる情報は、利用者ＩＤ「１」が示す利用者が、商品ＩＤ「Ｂ」が示す商品に評価値「５」を付与し、商品ＩＤ「Ｄ」が示す商品に評価値「２」を付与した旨を示す。なお、評価値データベース３２のうち、利用者が評価を行っていない商品と対応するセルには、評価値が登録されていない。
【００５０】
ユーザデータベース３３は、ユーザ特徴行列Ｘの各成分が登録されている。例えば、図５は、実施形態に係るユーザデータベースに登録される情報の一例を示す図である。図５に示すように、ユーザデータベース３３には、各利用者を識別する「利用者ＩＤ」が各行に対応付けられており、「男」や「女」等といった利用者の属性である「利用者属性」が各列に対応付けられている。そして、ユーザデータベース３３には、各利用者が有する特徴と対応するセルに、成分「１」が登録されている。
【００５１】
例えば、図５に示す例では、ユーザデータベース３３には、利用者ＩＤ「１」が対応付けられた行のうち、利用者属性「女」、「２０代」、「ＰＣ」が対応付けられたセルに「１」が登録され、他のセルに「０」が登録されている。係る情報は、利用者ＩＤ「１」が示す利用者が、２０代の女性であり、利用者端末１００としてＰＣを使用している旨を示す。
【００５２】
潜在要素データベース３４は、ユーザ特徴行列Ｘと、商品特徴行列Ｙと、評価値行列Ｒとから生成された潜在要素行列Ｗの各成分の値が登録されている。例えば、図６は、実施形態に係る潜在要素データベースに登録される情報の一例を示す図である。図６に示すように、潜在要素データベース３４には、「利用者属性」が各行に対応付けられており、「商品属性」が各列に対応付けられている。そして、潜在要素データベース３４には、ユーザ特徴行列Ｘと、商品特徴行列Ｙと、評価値行列Ｒとから算出された各成分の値「値＃１」〜「値＃１１」が登録されている。なお、図６に示す例では、「値＃１」〜「値＃１１」といった概念的な値を記載したが、実際には、潜在要素データベース３４には、ユーザ特徴行列Ｘと、商品特徴行列Ｙと、評価値行列Ｒとから算出された数値が登録されることとなる。より具体的には、潜在要素データベース３４には、ユーザ特徴行列Ｘと、潜在要素行列Ｗと、商品特徴行列Ｙとの積の値が、評価値行列Ｒを再現するように求められた値が登録されることとなる。
【００５３】
インデックスデータベース３５には、積算行列ＷＹの各成分の値が登録されている。すなわち、インデックスデータベース３５には、利用者属性ごとに、その利用者属性に対する各商品の関連性を示すスコアの値が登録されることとなる。例えば、インデックスデータベース３５には、「Ｕｓｅｒ  ＦｅａｔｕｒｅＩＤ１：＜ＩｔｅｍＩＤ，Ｓｃｏｒｅ＞，…」といった形式のデータが登録されることとなる。ここで、「Ｕｓｅｒ  ＦｅａｔｕｒｅＩＤ１」とは、利用者属性を示す情報である。また、「ＩｔｅｍＩＤ１」とは、商品の識別子である。また、「Ｓｃｏｒｅ」とは、対応付けられた利用者属性に対し、対応付けられた商品の識別子が示す商品の関連性を示すスコアの値である。
【００５４】
図２に戻り、説明を続ける。制御部４０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、選択装置１０内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部４０は、コントローラ（controller）であり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。
【００５５】
図２に示すように、制御部４０は、要求受付部４１、取得部４２、算出部４３、検索部４４、選択部４５、配信部４６、および生成部４７を有する。
【００５６】
要求受付部４１は、利用者Ｕ０１から商品の検索要求を受付ける。より具体的には、要求受付部４１は、利用者Ｕ０１が所望する商品の検索クエリを受付ける。このような場合、要求受付部４１は、検索クエリと合致する商品を商品データベース３１から検索し、検索結果を示すウェブページを生成する。
【００５７】
取得部４２は、利用者の特徴を示す情報を行方向に配置したユーザ特徴行列Ｘと、電子商取引の対象となる商品の特徴を示す情報を列方向に配置した商品特徴行列Ｙと、商品に対する利用者の評価を示す情報を行方向に配置した評価値行列Ｒとから算出される潜在要素行列Ｗであって、ユーザ特徴行列Ｘと潜在要素行列Ｗと商品特徴行列Ｙとの積が評価値行列Ｒを再現するように、各成分の値が設定された潜在要素行列Ｗを取得する。より具体的には、取得部４２は、後述する生成部４７によって生成された潜在要素行列Ｗを、潜在要素データベース３４から読み出す。
【００５８】
算出部４３は、商品の提案先となる利用者Ｕ０１の特徴を示す情報を含む行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積から、利用者Ｕ０１の各商品に対する評価を示す値を算出する。例えば、算出部４３は、利用者Ｕ０１と対応する行をユーザ特徴行列Ｘから抽出し、抽出した行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積を算出する。すなわち、算出部４３は、商品の提案先となる利用者Ｕ０１の各商品に対する評価を推定する。
【００５９】
ここで、商品の数が多い場合、商品の提案先となる利用者Ｕ０１の特徴を示す情報を含む行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積から、利用者Ｕ０１の各商品に対する評価を示す値を算出するための計算コストが増大してしまう。そこで、算出部４３は、検索部４４と連動して動作することで、各商品に対する評価を示す値を算出するための計算コストを削減する。
【００６０】
例えば、算出部４３は、潜在要素行列Ｗと商品特徴行列Ｙとの積である積算行列ＷＹをあらかじめ算出し、算出した積算行列ＷＹを商品のインデックスとして、インデックスデータベース３５に登録する。一方、検索部４４は、利用者Ｕ０１の特徴を示す情報をクエリとし、潜在要素行列Ｗと商品特徴行列Ｙとの積の値を、利用者Ｕ０１の特徴に対する各商品のスコアとして、クエリとスコアとから算出される内積値の値が高い方から所定の数の商品を検索する。より具体的には、検索部４４は、ＷＡＮＤアルゴリズムを用いて、クエリとスコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する。
【００６１】
後述する説明で明らかとなるように、ＷＡＮＤアルゴリズムを用いて、クエリとスコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する場合、計算対象となるクエリとスコアとの値が、候補として保持した内積値の値よりも少ない場合は、内積値の計算をスキップすることとなる。このため、検索部４４は、ＷＡＮＤアルゴリズムを用いて、クエリとスコアとから算出される内積値の値が、候補として保持した内積値の値よりも大きくなると判断した場合にのみ、算出部４３に内積値の算出を行わせる。この結果、算出部４３、検索部４４は、各商品に対する評価を示す値を算出するための計算コストを削減することができる。
【００６２】
選択部４５は、算出部４３によって算出された値に基づいて、利用者Ｕ０１に対して提案する提案対象を選択する。例えば、選択部４５は、クエリとスコアから算出される内積値の値が高い方から所定の数の商品の通知を検索部４４から受付ける。このような場合、選択部４５は、ターゲティング等の技術を用いて、検索部４４から受付けた商品の中から、利用者Ｕ０１に対して実際に配信する商品を選択する。
【００６３】
配信部４６は、選択された商品を利用者Ｕ０１に対して提案する情報、すなわち、選択された商品の広告を利用者Ｕ０１に対して配信する。例えば、配信部４６は、選択部４５が選択した商品を広告するための広告を取得する。そして、配信部４６は、要求受付部４１が生成したウェブページ中に取得した広告を配置し、広告を配置したウェブページを利用者端末１００へと送信する。この結果、選択装置１０は、利用者Ｕ０１が気に入る可能性が高い商品の広告を利用者Ｕ０１へと提供することが出来る。
【００６４】
生成部４７は、ユーザ特徴行列Ｘと、潜在要素行列Ｗと、商品特徴行列Ｙとの積が、評価値行列Ｒに近づくように、各成分の値が設定された潜在要素行列Ｗを生成する。例えば、生成部４７は、ログサーバ等から、各商品に対する利用者の評価を示す値を取得し、取得した値に基づいて評価値行列Ｒを生成する。そして、生成部４７は、生成した評価値行列Ｒを評価値データベース３２に登録する。また、生成部４７は、図示を省略した管理サーバ等から、利用者の特徴を収集し、収集した特徴に基づいて、ユーザ特徴行列Ｘを生成する。そして、生成部４７は、生成したユーザ特徴行列Ｘをユーザデータベース３３に登録する。また、生成部４７は、電子商取引の対象となる商品を管理する管理サーバ等から、商品の特徴を収集し、収集した特徴に基づいて、商品特徴行列Ｙを生成する。そして、生成部４７は、生成した商品特徴行列Ｙを商品データベース３１に登録する。
【００６５】
また、生成部４７は、ＡＬＳ等のアルゴリズムを用いて、ユーザ特徴行列Ｘと、商品特徴行列Ｙと、評価値行列Ｒとから、潜在要素行列Ｗを生成する。例えば、図７は、実施形態にかかる選択装置が潜在要素行列を算出する処理の一例について説明する図である。例えば、生成部４７は、ＡＬＳ等のアルゴリズムを用いた場合、潜在要素行列Ｗを単体で算出するのが困難となる。そこで、生成部４７は、図７に示すように、潜在要素行列Ｗを、潜在要素行列Ｕと潜在要素行列Ｖとの積であると見做す。
【００６６】
例えば、利用者の特徴の数を「ｄ１」、商品の特徴の数を「ｄ２」と置いた場合、潜在要素行列Ｗは、ｄ１×ｄ２行列となる。そこで、生成部４７は、潜在要素行列Ｗを、ｄ１×ｋ行列である行列Ｍ３１、すなわち潜在要素行列Ｕと、ｋ×ｄ２行列である行列Ｍ３２、すなわち潜在要素行列Ｖとの積であると見做す。ここで、ｋは、任意の整数である。そして、生成部４７は、ＡＬＳ等のアルゴリズムを用いて、ユーザ特徴行列Ｘと、潜在要素行列Ｕと、潜在要素行列Ｖと、商品特徴行列Ｙとの積が、評価値行列Ｒを再現するように、潜在要素行列Ｕと潜在要素行列Ｖとの各成分の値を算出する。そして、生成部４７は潜在要素行列Ｕと潜在要素行列Ｖとの積を、潜在要素行列Ｗとして算出し、算出した潜在要素行列Ｗを潜在要素データベース３４に登録する。
【００６７】
〔３．選択装置が実行する処理の一例〕
次に、図８を用いて、新たな利用者の追加があった場合に、利用者の各商品に対する評価値を推定する処理の一例について説明する。図８は、新規利用者の追加時に実行する処理の一例を示す図である。例えば、図８に示す例では、利用者ＩＤ「６」が示す利用者の追加があった場合、評価値行列Ｒには、利用者ＩＤ「６」が示す利用者と対応する行として、各成分の値が入力されていない行Ｍ１１が追加される。また、ユーザ特徴行列Ｘには、利用者ＩＤ「６」が示す利用者と対応する行として、利用者ＩＤ「６」が示す利用者の属性を示す成分が入力された行Ｍ２１が追加されることとなる。
【００６８】
そして、選択装置１０は、利用者ＩＤ「６」が示す利用者から商品の検索要求を受信した場合には、ユーザ特徴行列Ｘのうち、利用者ＩＤ「６」が示す利用者と対応する行Ｍ２１と、潜在要素行列Ｗと、商品特徴行列Ｙとの積を算出することで、評価値行列Ｒのうち、利用者ＩＤ「６」が示す利用者と対応する行Ｍ１１に入力されることとなる値を算出する。そして、選択装置１０は、算出した値に基づいて、利用者ＩＤ「６」が示す利用者に対して提案する商品を選択し、選択した商品の広告を検索結果とともに配信する。
【００６９】
このように、選択装置１０は、ユーザ特徴行列Ｘの全体ではなく、商品の提案先となる利用者の特徴を示す行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積を算出することで、商品の提案先となる利用者の各商品に対する評価値を推定する。このため、選択装置１０は、新たな利用者による各商品への評価値が得られる前であっても、潜在要素行列Ｗが算出済であり、新たな利用者の属性を特定することが出来るのであれば、商品の提案先となる利用者の各商品に対する評価値を推定することができる。この結果、選択装置１０は、利用者の追加が行われた場合にも、潜在要素行列Ｗの再計算を不要とするので、計算コストの増大を防ぐことができる。
【００７０】
次に、図９を用いて、新たな商品の追加があった場合に、利用者の各商品に対する評価値を推定する処理の一例について説明する。図９は、商品の追加時に実行する処理の一例を示す図である。例えば、図９に示す例では、商品ＩＤ「Ｆ」が示す商品の追加があった場合、商品特徴行列Ｙには、商品ＩＤ「Ｆ」が示す商品の属性を示す成分が入力された列Ｍ４１が追加されることとなる。
【００７１】
ここで、選択装置１０は、利用者ＩＤ「３」が示す利用者から商品の検索要求を受信した場合には、ユーザ特徴行列Ｘのうち、利用者ＩＤ「３」が示す利用者と対応する行Ｍ２２を抽出する。そして、選択装置１０は、抽出した行Ｍ２２と、潜在要素行列Ｗと、列Ｍ４１を追加した商品特徴行列Ｙとの積を算出することで、利用者ＩＤ「３」が示す利用者の各商品に対する評価値を含む行Ｍ１２の各要素の値を推定する。
【００７２】
ここで、潜在要素行列Ｗには、利用者の属性と商品の属性との関連性に基づいて、利用者の各商品に対する評価値を算出するための値が含まれることとなる。このため、選択装置１０は、商品特徴行列Ｙに新たな商品が登録された場合であっても、その商品の属性を特定することが出来るのであれば、利用者の属性と、既存の潜在要素行列Ｗと、商品特徴行列Ｙとから、新たな商品に対する評価値を算出することができる。この結果、選択装置１０は、商品の追加が行われた場合にも、潜在要素行列Ｗの再計算を不要とするので、計算コストの増大を防ぐことができる。
【００７３】
〔４．ＷＡＮＤの一例〕
次に、図１０〜図１２を用いて、ＷＡＮＤアルゴリズムを用いて、商品の中から利用者の評価値が高い所定の数の商品を選択する処理の一例について説明する。図１０は、ＷＡＮＤアルゴリズムを用いて評価値が高い商品を選択する処理の一例を示す第１の図である。図１１は、ＷＡＮＤアルゴリズムを用いて評価値が高い商品を選択する処理の一例を示す第２の図である。図１２は、ＷＡＮＤアルゴリズムを用いて評価値が高い商品を選択する処理の一例を示す第３の図である。なお、図１０〜図１２に示す例では、評価値の値が高い方から２つの商品を選択する処理の一例について記載した。
【００７４】
例えば、選択装置１０は、ユーザ特徴行列Ｘのうち、提案先となる利用者の特徴を示す情報を含む行と、積算行列ＷＹとの積を算出することで、提案先となる利用者の各商品に対する評価値の値を算出することが出来る。ここで、積算行列ＷＹには、利用者の特徴ごとに、その特徴に対する各商品のスコアが登録されているとみなすことができる。このため、ユーザ特徴行列Ｘのうち、提案先となる利用者の特徴を示す情報を含む行をクエリと見做し、積算行列ＷＹを商品のインデックスとみなした場合には、提案先となる利用者の各商品に対する評価値の値は、クエリと、そのクエリに対応する商品のインデックスのスコアとの内積値となる。すると、評価値が高い方から所定の数の商品を選択する処理は、クエリに対応するスコアが高いドキュメントをＯＲ検索する処理に落とし込むことが出来る。
【００７５】
そこで、選択装置１０は、ユーザ特徴行列Ｘのうち、提案先となる利用者の特徴を示す情報を含む行をクエリと見做し、積算行列ＷＹを商品のインデックスとみなして、ＷＡＮＤのアルゴリズムを用いて、評価値が高い方から所定の数の商品を選択する。例えば、提案先となる利用者の特徴に、利用者属性「Ｕ＿ｉｄ＿１」、「Ｕ＿ｉｄ＿２」、「Ｕ＿ｉｄ＿３」が含まれているものとする。このような場合、選択装置１０は、積算行列ＷＹから、利用者属性「Ｕ＿ｉｄ＿１」、「Ｕ＿ｉｄ＿２」、「Ｕ＿ｉｄ＿３」のそれぞれと対応付けられた商品とスコアとの組を抽出する。なお、以下の説明では、商品とスコアとの組を「データ」と記載する場合がある。
【００７６】
例えば、選択装置１０は、積算行列ＷＹから、利用者属性「Ｕ＿ｉｄ＿１」と対応付けられた商品とスコアとの組として、「（１、６）、（５、４）」を抽出する。また、選択装置１０は、積算行列ＷＹから、利用者属性「Ｕ＿ｉｄ＿２」と対応付けられた商品とスコアとの組として、「（２、３）、（３、３）、（５、１）」を抽出する。また、選択装置１０は、積算行列ＷＹから、利用者属性「Ｕ＿ｉｄ＿３」と対応付けられた商品とスコアとの組として、「（１、１）、（２、２）、（４、２）、（５、１）」を抽出する。また、選択装置１０は、商品ＩＤ順にデータを並べておく。
【００７７】
続いて、選択装置１０は、各利用者属性と対応するスコアの最高値（ｍａｘ＿ｓｃｏｒｅ）を特定しておく。例えば、選択装置１０は、利用者属性「Ｕ＿ｉｄ＿１」と対応するスコアの最高値「６」を特定し、利用者属性「Ｕ＿ｉｄ＿２」と対応するスコアの最高値「３」を特定し、利用者属性「Ｕ＿ｉｄ＿３」と対応するスコアの最高値「２」を特定しておく。なお、係る処理は、積算行列ＷＹの算出時に予め実行されていてもよい。
【００７８】
また、選択装置１０は、図１０中（Ａ）〜（Ｃ）に示すように、利用者属性ごとに、先頭のデータにポインタを設定する。そして、選択装置１０は、ポインタが示すデータのうち、同じ商品ＩＤを含むデータを特定し、特定したデータに含まれるスコアの合計を、特定したデータに含まれる商品ＩＤが示す商品のポイントとしてＡｃｃｕｍｕｌａｔｏｒに保持する。例えば、図１０に示す例では、選択装置１０は、商品ＩＤ「１」を含むデータとして、図１０中（Ａ）のポインタが示すデータ「（１、６）」と、図１０中（Ｃ）のポインタが示すデータ「（１、１）」とを特定し、特定したデータに含まれるスコアの合計「７」をポイントとして算出する。そして、選択装置１０は、図１０中（Ｄ）に示すように、商品ＩＤ「１」とポイント「７」とを含むデータ「（１、７）」をＡｃｃｕｍｕｌａｔｏｒに保持する。
【００７９】
次に、選択装置１０は、使用したデータを示すポインタ、すなわち、図１０中（Ａ）、（Ｃ）のポインタを１つ移動させる。この結果、各Ａｃｃｕｍｕｌａｔｏｒとポインタとの状態は、図１１に示す状態に遷移する。そして、選択装置１０は、図１０に示した処理と同様の処理を繰り返す。例えば、図１１に示す例では、選択装置１０は、商品ＩＤ「２」を含むデータとして、図１１中（Ａ）のポインタが示すデータ「（２、３）」と、図１１中（Ｂ）のポインタが示すデータ「（２，２）」とを特定し、特定したデータに含まれるスコアの合計「５」をポイントとして算出する。そして、選択装置１０は、図１１中（Ｃ）に示すように、商品ＩＤ「２」とポイント「５」とを含むデータ「（２、５）」をＡｃｃｕｍｕｌａｔｏｒに保持する。
【００８０】
ここで、Ａｃｃｕｍｕｌａｔｏｒに登録された各データのポイントを参照すると、最低値は、商品ＩＤ「２」のポイント「５」となる。一方で、各利用者属性と対応するスコアの最高値を考慮すると、ある商品のポイントが、商品ＩＤ「２」のポイント「５」の値を超えるには、その商品の商品ＩＤを含むデータが、少なくとも利用者属性「Ｕ＿ｉｄ＿１」と、他の利用者属性とに対応付けられている必要がある。例えば、その商品の商品ＩＤを含むデータが、利用者属性「Ｕ＿ｉｄ＿２」および利用者属性「Ｕ＿ｉｄ＿３」と対応付けられていると仮定すると、ポイントの最大値は、利用者属性「Ｕ＿ｉｄ＿２」と対応するスコアの最高値「３」と利用者属性「Ｕ＿ｉｄ＿２」と対応するスコアの最高値「２」との和「５」となり、Ａｃｃｕｍｕｌａｔｏｒに登録されたポイントの最低値を更新することができない。
【００８１】
そこで、選択装置１０は、図１２中（Ａ）および（Ｂ）に示すように、利用者属性「Ｕ＿ｉｄ＿１」のポインタが示すデータの商品ＩＤ「５」を含むデータまで、利用者属性「Ｕ＿ｉｄ＿２」のポインタ、および、利用者属性「Ｕ＿ｉｄ＿３」のポインタを進めることが出来る。すなわち、選択装置１０は、商品ＩＤ「３」や商品ＩＤ「４」については、ポイントの算出を行わずとも、候補から除外することが出来る。
【００８２】
そして、選択装置１０は、図１２に示す例では、各ポインタが示すデータ、すなわち、商品ＩＤ「５」のスコアの合計「６」をポイントとして算出する。そして、選択装置１０は、図１２中（Ｃ）に示すように、商品ＩＤ「５」とポイント「６」とを含むデータ「（５、６）」をＡｃｃｕｍｕｌａｔｏｒに保持する。この結果、選択装置１０は、内積値が高い方から２つの商品の商品ＩＤとして、商品ＩＤ「１」、商品ＩＤ「５」を特定することが出来る。
【００８３】
〔５．選択処理の流れの一例〕
続いて、図１３を用いて、選択装置１０が潜在要素行列Ｗを生成する処理の流れについて説明する。図１３は、実施形態に係る選択装置が潜在要素行列を生成する処理の流れの一例を示すフローチャートである。例えば、選択装置１０は、商品に対するユーザの評価から、評価値行列Ｒを生成する（ステップＳ１０１）。また、選択装置１０は、ユーザの特徴から、ユーザ特徴行列Ｘを生成する（ステップＳ１０２）。また、選択装置１０は、商品の特徴から、商品特徴行列Ｙを生成する（ステップＳ１０３）。
【００８４】
そして、選択装置１０は、ＡＬＳを用いて、ユーザ特徴行列Ｘと、商品特徴行列Ｙと、評価値行列Ｒとから、潜在要素行列Ｗを生成する（ステップＳ１０４）。その後、選択装置１０は、潜在要素行列Ｗと、商品特徴行列Ｙとの積をインデックスとして、インデックスデータベース３５に保持し（ステップＳ１０５）、処理を終了する。
【００８５】
続いて、図１４を用いて、選択装置１０が利用者に対して提案する処理を選択する選択処理の流れの一例について説明する。図１４は、実施形態に係る選択装置が実行する選択処理の流れの一例を示すフローチャートである。まず、選択装置１０は、利用者から商品の検索要求等といったリクエストを受付けたか否かを判定し（ステップＳ２０１）、受付けていない場合は（ステップＳ２０１：Ｎｏ）、受付けるまで待機する。そして、選択装置１０は、リクエストを受付けた場合は（ステップＳ２０１：Ｙｅｓ）、ユーザ特徴行列Ｘから、リクエスト元のユーザの行を抽出する（ステップＳ２０２）。続いて、選択装置１０は、抽出した行が示す利用者の属性をクエリとし、積算行列ＷＹをインデックスと見做して（ステップＳ２０３）、内積値が大きい方から順に所定の数の商品を、ＷＡＮＤを用いて特定する（ステップＳ２０４）。また、選択装置１０は、特定した商品を利用者に対するレコメンド対象として（ステップＳ２０５）、リクエストに対応する検索結果と共に、レコメンド対象とした商品を利用者に対して提案し（ステップＳ２０６）、処理を終了する。
【００８６】
〔６．変形例〕
上記では、選択装置１０による選択処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、選択装置１０が実行する選択処理のバリエーションについて説明する。
【００８７】
〔６−１．ＷＡＮＤについて〕
上述した選択装置１０は、ＷＡＮＤアルゴリズムを用いて、利用者の評価値の値が高い商品を検索した。しかしながら、実施形態は、これに限定されるものではない。例えば、選択装置１０は、Ｔｏｐ−ｋ  ｒｅｔｒｉｅｖａｌアルゴリズムであれば、ＷＡＮＤアルゴリズム以外にも、任意のアルゴリズムを用いて、利用者の評価値の値が高い商品を検索してもよい。
【００８８】
また、選択装置１０は、単純に、利用者の属性を示す行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積を算出することで、利用者の各商品に対する評価値（すなわち、復元行列Ｒ’の値）を算出し、算出した評価値が高い方から順に所定の数の商品を選択してもよい。また、選択装置１０は、算出した評価値が所定の閾値よりも高い商品を選択してもよく、算出した評価値が所定の範囲内となる商品を選択してもよい。また、選択装置１０は、例えば、利用者が評価を行っていない商品の中から、算出された評価値が高い方から順に所定の数の商品を選択し、選択した商品を提案してもよい。また、選択装置１０は、提案対象が動画像等のコンテンツである場合には、利用者が閲覧していないコンテンツのうち、算出された評価値が高い方から順に所定の数の商品を選択し、選択した商品を提案してもよい。
【００８９】
なお、上述した選択処理のうち、ＷＡＮＤについては、必須の処理ではない。すなわち、選択装置１０は、ＩＭＣを用いて生成された潜在要素行列Ｗを用いて、提案対象に対する利用者の評価値を推定し、推定した評価値に基づいた提案を行うのであれば、上述した処理を任意の処理と組み合わせて実行してもよい。
【００９０】
〔６−２．提案対象について〕
上述した説明では、選択装置１０は、電子商取引の対象となる商品を提案対象とし、潜在要素行列Ｗから算出した利用者の評価値が高い商品を利用者に対して提案した。しかしながら、実施形態は、これに限定されるものではない。例えば、選択装置１０は、電子商取引の対象となる商品のみならず、役務等を提案対象としてもよい。
【００９１】
また、選択装置１０は、動画像や音楽、ニュース、ウェブページ、ウェブ上に公開された利用者の発言等といったコンテンツを提案対象としてもよい。例えば、選択装置１０は、商品特徴行列Ｙと同様に、各コンテンツの特徴を示す情報を含むコンテンツ特徴行列Ｙ’を取得する。また、選択装置１０は、ユーザ特徴行列Ｘと、コンテンツ特徴行列Ｙ’と、各コンテンツに対する利用者の評価を示す評価値行列Ｒとから潜在要素行列Ｗを取得する。そして、選択装置１０は、利用者の特徴を示す情報を含む行と、潜在要素行列Ｗと、コンテンツ特徴行列Ｙ’とから、各コンテンツに対する利用者の評価を推定し、推定結果に基づいて、利用者に提案するコンテンツを選択してもよい。
【００９２】
また、選択装置１０は、利用者に対して配信する広告を選択する際に、上述した選択処理を適用してもよい。例えば、選択装置１０は、商品特徴行列Ｙと同様に、各広告の特徴を示す情報を含む広告特徴行列Ｙ’’を取得する。また、選択装置１０は、ユーザ特徴行列Ｘと、広告特徴行列Ｙ’’と、各広告に対する利用者の評価を示す評価値行列Ｒとから潜在要素行列Ｗを取得する。そして、選択装置１０は、利用者の特徴を示す情報を含む行と、潜在要素行列Ｗと、広告特徴行列Ｙ’’とから、各広告に対する利用者の評価を推定し、推定結果に基づいて、利用者に配信する広告を選択してもよい。
【００９３】
〔６−３．装置構成〕
選択装置１０は、任意の数の利用者端末１００と通信可能に接続されていてもよい。また、選択装置１０は、利用者端末１００と情報のやり取りを行うフロントエンドサーバと、入力項目を選択するバックエンドサーバとにより実現されてもよい。このような場合、フロントエンドサーバには、図２に示す要求受付部４１および配信部４６が配置され、バックエンドサーバには、取得部４２、算出部４３、検索部４４、選択部４５、および生成部４７等が配置されることとなる。また、記憶部３０に格納された各データベース３１〜３５は、選択装置１０の内部ではなく、例えば、外部のストレージサーバ等に格納されていてもよい。
【００９４】
〔６−４．各データベース項目について〕
なお、上述した説明において、ユーザ特徴行列Ｘや商品特徴行列Ｙに含まれる各種の項目は、あくまで一例であり、利用者の特徴を示す項目や、商品の特徴を示す項目であれば、任意の項目が採用可能である。
【００９５】
〔６−５．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【００９６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００９７】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００９８】
〔７．プログラム〕
また、上述してきた実施形態に係る選択装置１０は、例えば図１５に示すような構成のコンピュータ１０００によって実現される。図１５は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【００９９】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ、フラッシュメモリ等により実現される。
【０１００】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０１０１】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０１０２】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０１０３】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０１０４】
例えば、コンピュータ１０００が選択装置１０として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムを実行することにより、制御部４０の機能を実現する。
【０１０５】
〔８．効果〕
上述したように、選択装置１０は、利用者の特徴を示す情報を含むユーザ特徴行列Ｘと、提案対象の特徴を示す情報を含む商品特徴行列Ｙと、提案対象に対する利用者の評価を示す情報を含む評価値行列Ｒとから算出される潜在要素行列Ｗであって、ユーザ特徴行列Ｘと潜在要素行列Ｗと商品特徴行列Ｙとの積が評価値行列Ｒとなるように成分の値が設定された潜在要素行列Ｗを取得する。そして、選択装置１０は、利用者の特徴を示す情報をクエリとし、潜在要素行列Ｗと商品特徴行列Ｙとの積の値を利用者の特徴に対する各提案対象のスコアとして、クエリとスコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する。その後、選択装置１０は、検索結果に基づいて、利用者に対して提案する提案対象を選択する。
【０１０６】
このように、選択装置１０は、ＩＭＣを用いて算出された潜在要素行列Ｗから、提案対象に対する利用者の評価を算出する。このため、選択装置１０は、利用者の追加や商品の追加等が行われた場合や、利用者の評価が更新された場合等における潜在要素行列Ｗの再計算の頻度を少なくすることができるので、計算コストの増大を防ぐことができる。また、選択装置１０は、配信先となる利用者の特徴から、提案対象に対する利用者の評価を容易に算出することができるので、利用者からの要求時に、提案対象の選択をランタイムで行うことができる。
【０１０７】
また、選択装置１０は、Ｔｏｐ−ｋ  ｒｅｔｒｉｅｖａｌアルゴリズム等を用いて、クエリとスコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する。例えば、選択装置１０は、ＷＡＮＤアルゴリズムを用いて、クエリとスコアとから算出される内積値の値が高い方から所定の数の提案対象を検索する。このため、選択装置１０は、例えば、電子商取引の対象となる商品等、提案対象の数が膨大に存在する場合であっても、現実的な時間内で、利用者の評価が高いと推定される提案対象を選択することが出来る。このため、選択装置１０は、提案対象の選択をランタイムで行うことができる。
【０１０８】
また、選択装置１０は、利用者に対して提案する提案対象として、電子商取引の対象となる商品または役務の特徴を示す情報を含む商品特徴行列Ｙと、商品または役務に対する利用者の評価を示す情報を含む評価値行列Ｒとから算出される潜在要素行列Ｗを取得する。また、選択装置１０は、商品または役務の提案先となる利用者の特徴を示す情報をクエリとし、潜在要素行列Ｗと商品特徴行列Ｙとの積の値を利用者の特徴に対する商品または役務のスコアとして、クエリとスコアとから算出される内積値の値が高い方から所定の数の商品または役務を検索する。そして、選択装置１０は、検索結果に基づいて、利用者に対して提案する商品または役務を選択する。このため、選択装置１０は、提案対象となる商品や役務の選択をランタイムで行うことができる。
【０１０９】
また、選択装置１０は、利用者の特徴を示す情報を行方向に配置したユーザ特徴行列Ｘと、提案対象の特徴を示す情報を列方向に配置した商品特徴行列Ｙと、提案対象に対する利用者の評価を示す情報を行方向に配置した評価値行列Ｒとから算出される潜在要素行列Ｗであって、ユーザ特徴行列Ｘと潜在要素行列Ｗと商品特徴行列Ｙとの積が評価値行列Ｒとなるように成分の値が設定された潜在要素行列Ｗを取得する。また、選択装置１０は、提案対象の提案先となる利用者の特徴を示す情報を含む行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積から、提案対象の提案先となる利用者の各提案対象に対する評価を示す値を算出する。そして、選択装置１０は、算出された値に基づいて、利用者に対して提案する提案対象を選択する。
【０１１０】
このように、選択装置１０は、ＩＭＣを用いて算出された潜在要素行列Ｗから、提案対象に対する利用者の評価を算出する。このため、選択装置１０は、提案対象の提案先となる利用者の属性を示す行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積を算出するだけで、提案対象の提案先となる利用者の各提案対象に対する評価を容易に取得することが出来る。
【０１１１】
また、選択装置１０は、ユーザ特徴行列Ｘから提案対象の提案先となる利用者の特徴を示す情報を含む行を抽出し、抽出した行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積から、提案対象の提案先となる利用者の各提案対象に対する評価を示す値を算出する。このため、選択装置１０は、提案対象の提案先となる利用者の各提案対象に対する評価を算出する際の計算コストの増大を防ぐことができる。
【０１１２】
また、選択装置１０は、電子商取引の対象となる商品または役務の特徴を示す情報が列方向に配置された商品特徴行列Ｙと、商品または役務に対する各利用者の評価を示す情報を行方向に配置した評価値行列Ｒとから算出される潜在要素行列Ｗを取得する。また、選択装置１０は、商品または役務の提案先となる利用者の特徴を示す情報を含む行と、潜在要素行列Ｗと、商品特徴行列Ｙとの積から、利用者の商品または役務に対する評価を示す値を算出する。そして、選択装置１０は、算出結果に基づいて、利用者に対して提案する商品または役務を選択する。このため、選択装置１０は、提案対象となる商品や役務の選択をランタイムで行うことができる。
【０１１３】
また、選択装置１０は、利用者の特徴を示す情報を含むユーザ特徴行列Ｘと、コンテンツの特徴を示す情報を含む商品特徴行列Ｙと、コンテンツに対する利用者の評価を示す情報を含む評価値行列Ｒとから算出される潜在要素行列Ｗであって、ユーザ特徴行列Ｘと潜在要素行列Ｗと商品特徴行列Ｙとの積が評価値行列Ｒとなるように成分の値が設定された潜在要素行列Ｗを取得する。また、選択装置１０は、コンテンツの提案先となる利用者の特徴を示す情報と、潜在要素行列Ｗと、商品特徴行列Ｙとを用いて、コンテンツの提案先となる利用者のコンテンツに対する評価を推定する。そして、選択装置１０は、推定結果に基づいて、利用者に対して提案するコンテンツを選択する。
【０１１４】
このように、選択装置１０は、ＩＭＣを用いて算出された潜在要素行列Ｗから、配信対象となるコンテンツに対する利用者の評価を算出し、算出結果に応じて、提案対象となるコンテンツを選択する。このため、選択装置１０は、利用者の追加や商品の追加等が行われた場合や、利用者の評価が更新された場合等における潜在要素行列Ｗの再計算の頻度を少なくすることができるので、計算コストの増大を防ぐことができる。
【０１１５】
また、選択装置１０は、ユーザ特徴行列Ｘと潜在要素行列Ｗと商品特徴行列Ｙとの積が評価値行列Ｒに近づくように、各成分の値が設定された潜在要素行列Ｗを生成する。より具体的には、選択装置１０は、行数がユーザ特徴行列Ｘの列数と同じ潜在要素行列Ｕと、列数が商品特徴行列Ｙの行数と同じ潜在要素行列Ｖであって、ユーザ特徴行列Ｘと潜在要素行列Ｕと潜在要素行列Ｖと商品特徴行列Ｙとの積が評価値行列Ｒを再現するように潜在要素行列Ｕと潜在要素行列Ｖとを生成する。そして、選択装置１０は、生成した潜在要素行列Ｕと潜在要素行列Ｖとの積を潜在要素行列Ｗとする。このため、選択装置１０は、例えば、ＡＬＳ等の手法を用いて、潜在要素行列Ｗを生成することができる。
【０１１６】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１１７】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、配信部は、配信手段や配信回路に読み替えることができる。
【符号の説明】
【０１１８】
１０  選択装置
２０  通信部
３０  記憶部
３１  商品データベース
３２  評価値データベース
３３  ユーザデータベース
３４  潜在要素データベース
３５  インデックスデータベース
４０  制御部
４１  要求受付部
４２  取得部
４３  算出部
４４  検索部
４５  選択部
４６  配信部
４７  生成部
１００  利用者端末
【図１】
0006679415.tif 000002
【図２】
0006679415.tif 000003
【図３】
0006679415.tif 000004
【図４】
0006679415.tif 000005
【図５】
0006679415.tif 000006
【図６】
0006679415.tif 000007
【図７】
0006679415.tif 000008
【図８】
0006679415.tif 000009
【図９】
0006679415.tif 000010
【図１０】
0006679415.tif 000011
【図１１】
0006679415.tif 000012
【図１２】
0006679415.tif 000013
【図１３】
0006679415.tif 000014
【図１４】
0006679415.tif 000015
【図１５】
0006679415.tif 000016