本発明の一実施の形態であるネットワークシステムについて図面を参照して説明する。以下では、まずシステム全体構成を説明し、その後、第1実施例〜第3実施例の順番で各構成の具体例および具体的動作例について説明する。
<システム全体構成>
図1は、本実施形態に係るネットワークシステム全体の構成を示すブロック図である。本図に示すように、ネットワークシステムは、アイテム等の情報を選択する情報選択装置10と、アイテム提供サーバ20と、1台以上の端末装置30(図中では30A〜30N、本実施形態では「端末装置30」と総称する)がネットワーク40を介して接続されて構成される。ここで、情報選択装置10とアイテム提供サーバ20により、端末装置30を使用するユーザに対してアイテム提供等のサービスを行なうアイテム提供システム1を構成している。ネットワーク40は、インターネットに代表される広域ネットワークとすることができる。また、端末装置30とネットワーク40との接続形態は、有線・無線を問わない。
ネットワークシステムは、図2に示すような構成としてもよい。すなわち、ネットワーク40にアイテム提供サーバ20と1台以上の端末装置30(30A〜30N)が接続され、情報選択装置10がネットワーク40とは別のネットワーク42を介してアイテム提供サーバ20と接続している構成である。この場合、ネットワーク42を介して接続された情報選択装置10とアイテム提供サーバ20により、アイテム提供システム2を構成する。ネットワーク42は、例えば、LAN(Local
Area Network)等とすることができ、セキュリティ確保の観点から、端末装置30から情報選択装置10への直接的なアクセスは制限することが望ましい。
ただし、ネットワークシステムは、上記の例に限られず、種々の構成を用いることができる。例えば、情報選択装置10とアイテム提供サーバ20とを同一の装置で構成してもよいし、それぞれを複数台の装置で構成するようにしてもよい。以下では、図1に示した構成でネットワークシステムを実現した場合を例に説明する。
本実施形態におけるアイテムは、ユーザに対して提供対象となるものであり、テキスト、音声、音楽、画像、映像、プログラム等のデジタルコンテンツ、様々な物品、金融商品、不動産、人物情報、ネットワークサービス等を含めることができ、有形か無形かを問わない。また、本実施形態では、各アイテムには、アイテムを分類するための情報であるカテゴリが1つ以上定められているものとするが、カテゴリを用いないで動作することも可能である。
本実施形態に係るアイテム提供サービスにおいて、アイテムは基本的に有料であるが、無料のアイテムが存在してもよい。また、アイテム提供の都度、ユーザに対する課金を行ってもよいが、所定の期間ごとに所定金額を課金してもよい。例えば、毎月1日または入会日に月会費として1000円を徴収し、その月に合計1000円(1000ポイント)相当のアイテムを自由に組合せて利用できるようにしてもよい。ユーザがその月に1000円を超えてアイテムを利用したい場合は、追加ポイント(例えば、500円、1000円、2000円など)を購入して、追加ポイントに相当する金額までのアイテムを利用できるようにすればよい。また追加ポイントをユーザに購入させることなく、月会費を越えた分のアイテムに関して、個別に課金を行ってもよい。また、月会費の徴収は、ユーザが会員である限り、自動的に継続するようにしてもよい。また、月会費に相当するポイントをその月に使い切らなかった場合、翌月には繰り越せない(翌月には失効する)ようにしてもよいし、余ったポイントを翌月以降に繰り越して使えるようにしてもよい。また、繰り越しを認める場合、最大6ヶ月後まで繰り越し可などのように、期限を設けてもよい。また、月会費制だけではなく、週単位、年単位、3ヶ月毎など、任意の期間(任意の周期)ごとに会費を徴収し、その対価として一定金額までのアイテムを利用させるようにしてもよい。
以下、上記構成のネットワークシステムについての実施例を説明する。各実施例について同じブロックについては同じ符号を付すものとし、同じブロックで動作が異なる場合は、第2実施例について「b」、第3実施例について「c」を符号の末尾に付加して説明する。
(実施例1)
<情報選択装置>
図3は、第1実施例における情報選択装置10の構成を示すブロック図である。本図に示すように情報選択装置10は、アイテム属性格納部101と、利用履歴格納部102と、価格情報格納部103と、関連度算出部104と、関連集合格納部105と、価格影響度算出部106と、情報選択部107と、推薦情報格納部108と、送受信部109と、制御部110とを備えて構成されている。また、情報選択装置10には、情報選択装置10の管理者向けに必要な情報を表示するための表示装置120と、管理者が操作を行なうためのキーボード、マウス等の入力装置130とが接続されている。
情報選択装置10は、CPU、RAM、ROM、HDD(ハードディスクドライブ)、ネットワークインタフェース等を備える一般的なコンピュータを用いて構成することができる。すなわち、一般的なコンピュータは、以下で説明するような処理を行なうためのコンピュータプログラムを実行することにより、情報選択装置10として機能することができるようになる。
また、上述のように、情報選択装置10を複数台のコンピュータを用いて構成してもよい。例えば、負荷分散をするために、情報選択装置10のある処理ブロックに相当するコンピュータを複数台用いて、すなわち、同じ処理ブロックを備える複数台のコンピュータを用いて分散処理を行なうようにしてもよい。また、情報選択装置10の一部の処理ブロックをあるコンピュータで実施し、他の処理ブロックを別のコンピュータで実施する形態で分散処理を行なってもよい。また、図3に示す処理ブロックを全て備えるコンピュータを複数台用いて分散処理を行ってもよい。
アイテム属性格納部101は、アイテムに関する情報が記録されたアイテム情報テーブル101Aと、カテゴリに関する情報が記録されたカテゴリ情報テーブル101Bとを格納している。
図4(a)は、アイテム情報テーブル101Aの一例を示している。本図に示すように、アイテム情報テーブル101Aは、アイテム識別子(アイテムID)と、アイテム属性情報とを対応させたテーブルである。アイテム属性情報は、アイテムの「タイトル(名称)」「カテゴリ識別子」「説明情報」「アイテム時期情報」などで構成されている。
図4(b)は、カテゴリ情報テーブル101Bの一例を示している。本図に示すように、カテゴリ情報テーブル101Bは、カテゴリ識別子(カテゴリID)とカテゴリ属性情報とを対応させたテーブルである。カテゴリ属性情報は、「カテゴリ名」「カテゴリ説明」などで構成されている。2つのテーブルに存在する「カテゴリ識別子」を介して、アイテム情報テーブル101Aのアイテム情報とカテゴリ情報テーブル101Bのカテゴリ情報とを関連付けることができる。
ここで、カテゴリとは、アイテムを所定の基準で分類した情報であり、1つのアイテムについて1個以上設定される。カテゴリは、例えば、アイテムの「クリエイター(作成者)」とすることができる。なお「クリエイター」は、アイテムの制作者、監督、プロデューサー、執筆者、作曲者、作詞者、演奏者、出演者等である。
また、アイテムが音楽コンテンツの場合、「ロック」「ジャズ」「クラシック」「フォーク」等のジャンル情報をカテゴリとすることができ、アイテムが映画の場合、「SF」「アクション」「コメディ」「アニメ」「サスペンス」等のジャンル情報をカテゴリとすることができる。さらには、「日本」「アメリカ」「イギリス」など作成者の国や地域を用いた分類情報や、「癒し系」「エキサイティング」「ドラマティック」といったアイテムの雰囲気やムードを示す情報をカテゴリとして用いてもよい。
アイテム属性情報の「説明情報」は、アイテムのあらすじや要約、制作された背景説明などの情報である。「アイテム時期情報」は、アイテムの作成された時期(時点)を示す情報である。ただし、アイテム提供サーバ20にアイテムが登録された時期や、アイテムが提供開始された時期を用いてもよい。本実施形態では、時期(時点)の表現形式として、「2010年1月1日」などの日付を用いるが、他の表現形式を用いてもよい。例えば、「2010年1月1日 10時15分20秒」などの秒単位までの日時でもよいし、ミリ秒単位までの日時でもよい。あるいは、「2010年1月」などの月単位の表現形式でも、「2010年 1Q」などの四半期単位の表現形式でも、「2010年」などの年単位の表現形式でも、「2000年代」などの年単位より大まかな年代の表現形式でもよい。
アイテム情報テーブル101Aのアイテム属性情報においては、1つのアイテムに同じ種類の属性項目が複数存在していてもよい。例えば、1つのアイテムに、「クリエイター1」「クリエイター2」「クリエイター3」「ジャンル1」「ジャンル2」の合計5つのカテゴリが設定されていてもよい。もちろん、ここで挙げたアイテム属性情報とカテゴリ属性情報は、あくまでも例示であり、上記に限定される訳ではない。例えば、アイテム属性情報に「サイズ」や「色」などの属性項目を用いてもよい。
なお、情報選択装置10が、必要に応じてアイテム提供サーバ20の後述するアイテム格納部202からアイテム情報およびカテゴリ情報を取得できるようにして、アイテム属性格納部101を省略することも可能である。
送受信部109は、ネットワーク40(図2の構成の場合は、さらにネットワーク42)を介して、アイテム提供サーバ20または端末装置30との間でデータを送受信する処理を行なう。
制御部110は、情報選択装置10の全体の制御を行なうための種々の処理を行なう。例えば、後述するように、アイテム提供サーバ20または端末装置30から送信される利用リクエストを、送受信部109を介して受信し、利用リクエストに含まれるユーザ識別子とアイテム識別子とを対応させて、利用履歴情報として利用履歴格納部102に格納させる。
利用履歴格納部102は、ユーザのアイテム利用履歴情報を記録するアイテム利用履歴テーブル102Aを格納している。アイテム利用は、ユーザからの利用リクエストに対してアイテム提供サーバ20がアイテムを提供することにより実行される。ただし、アイテム利用は、購入を伴う提供に限られず、アイテムに関する情報の閲覧、視聴等を含めるようにしてもよい。
アイテム利用履歴テーブル102Aは、利用履歴情報の格納形態として、種々の格納形態を採用することができる。例えば、図5(a)のアイテム利用履歴テーブル102A−1に示すように、利用主体識別子とアイテム識別子とを関連付けて格納することができる。ここで、「利用主体識別子」は、端末装置30を利用するユーザを一意に識別するユーザ識別子、または端末装置30を一意に識別するための端末識別子であり、ユーザ識別子と端末識別子とを合わせた概念である。本実施形態では、ユーザ識別子を用いてユーザを識別するものとするが、端末装置30として携帯電話を用いた場合等には、端末装置30との接続時に取得可能な端末識別子を用いるようにしてもよい。
本例では、1つの利用リクエストが、テーブルの1行に対応している。テーブルの1行目と4行目がともに「UserID−1」と「ItemID−3」の組み合わせであることから分かるように、利用主体識別子とアイテム識別子の組み合わせが同じであっても、利用リクエストごとにテーブル行のデータを追加して格納している。このため、アイテム識別子が示すアイテムごとの利用回数、およびアイテムごとの利用ユーザ数を他の処理部が容易にカウントすることができる。なお、1つの利用リクエストに複数のアイテム識別子が含まれている場合は、アイテム識別子の数だけのテーブル行を割り当てて格納する。
図5(b)に示すアイテム利用履歴テーブル102A−2は、利用主体識別子とアイテム識別子と利用時期情報とを関連付けて格納する格納形態例である。図5(a)に示したアイテム利用履歴テーブル102A−1と同様に、1つの利用リクエストが、テーブルの1行に対応している。利用リクエストに利用時期情報が含まれている場合は、その情報を取り出して利用時期情報として格納する。利用リクエストに利用時期情報が含まれていない場合は、制御部110に内蔵等されている時計を用いて、情報選択装置10が利用リクエストを受信した時期(時点)を利用時期情報として格納する。
本実施形態では、利用時期情報の表現形式として、「2010年1月1日 10時15分20秒」などの秒単位までの日時を用いるが、それ以外にも、ミリ秒単位までの日時、日単位までの日付、月単位、年単位など種々の形式を用いることができる。なお、利用リクエストの中に、ユーザのアイテムに対する評価値(好き=3、どちらでもない=2、嫌い=1、などの好き嫌いの度合いを示す数値)を含ませた上で、ユーザ識別子とアイテム識別子と利用時期情報と評価値とを関連付けてアイテム利用履歴テーブル102A−2に格納するようにしてもよい。
なお、図5(a)および(b)には示していないが、利用リクエストが発行された際にユーザが閲覧していたページ情報(閲覧ページ情報)を、利用主体識別子およびアイテム識別子と関連付けて格納してもよい。例えば、ユーザが推薦ページを閲覧して利用リクエストを発行したのか、あるいは新着アイテムを紹介するページを閲覧して利用リクエストを発行したのかを区別できる情報を格納する。このような閲覧ページ情報は、推薦情報を提供した効果を詳細に測定するために用いることができる。
図5(c)に示すアイテム利用履歴テーブル102A−3は、利用時期情報を省略し、ユーザ識別子とアイテム識別子と利用回数とを関連付けた格納形態例である。後述するように、関連度算出部104において、利用時期情報を用いない場合は、アイテム利用履歴テーブル102A−3を用いることで利用履歴格納部102の記憶容量を削減することができる。また、利用リクエストの中に、ユーザのアイテムに対する評価値が含まれる場合は、ユーザ識別子とアイテム識別子と利用回数と最新の評価値とを関連付けてアイテム利用履歴テーブル102A−3に格納するようにしてもよい。
なお、図5(c)に示すアイテム利用履歴テーブル102A−3では、利用時期情報を格納していないが、あるユーザがあるアイテムを利用した最新の利用時期情報を格納してもよい。すなわち、ユーザ識別子とアイテム識別子と利用回数と最新の利用時期情報とを関連付けて格納してもよい。あるいは、ユーザ識別子とアイテム識別子と利用回数と最初の(最も古い)利用時期情報とを関連付けて格納してもよい。
また、利用履歴格納部102には、アイテム利用履歴テーブル102Aに加え、図5(d)に示すようなカテゴリ利用履歴テーブル102Bを格納するようにしてもよい。カテゴリ利用履歴テーブル102Bは、ユーザ識別子とカテゴリ識別子と利用時期情報とを関連付けたテーブルである。この場合、制御部110は、ユーザからの利用リクエストに際し、アイテム属性格納部101のアイテム情報テーブル101Aを参照して、利用リクエストのアイテム識別子に対応するカテゴリ識別子を特定し、カテゴリ利用履歴テーブル102Bに格納する。後述するように、カテゴリ推薦形式に対応する関連集合を作成する際(図14のステップS400)に、カテゴリ利用履歴テーブル102Bを格納しておくと、効率よく処理が行なえる場合がある。
価格情報格納部103は、アイテムの価格情報を記録したアイテム価格情報テーブル103Aと、カテゴリの価格情報を記録したカテゴリ価格情報テーブル103Bとを格納している。図6(a)は、アイテム価格情報テーブル103Aの一例を示している。本図に示すように、アイテム価格情報テーブル103Aは、アイテム識別子と、価格情報とを対応付けて格納する。アイテムの価格情報は、そのアイテムの価格である。ただし、必ずしも円、ドル、ユーロといった実際の通貨に基づく価格である必要はない。例えば、本実施形態に係るアイテム提供サービスや、提携している関連サービスで使用できる独自のポイントの値であってもよい。なお、本図の例から分かるように、価格情報(価格)が「0円」である無料のアイテムが存在してもよい。また本図に示すように、価格の安い順にアイテムを格納してもよいし、高い順に格納してもよい。もちろんアイテム識別子の順番に格納してもよい。
図6(b)は、カテゴリ価格情報テーブル103Bの一例を示している。本図に示すように、カテゴリ価格情報テーブル103Bは、カテゴリ識別子と、価格情報とを対応付けて格納する。カテゴリの価格情報は、そのカテゴリに属する各アイテムの価格の合計値または代表値とすることができる。価格の代表値は、例えば、そのカテゴリに属するアイテムの価格の平均値、中央値、最頻値、四分位値、最大値、最小値などである。
図6(b)に示したカテゴリ価格情報テーブル103Bでは、そのカテゴリに属するアイテムの価格の合計値をカテゴリの価格情報としている。なお本図から分かるように、価格が「0円」であるカテゴリ(そのカテゴリに属するアイテムがすべて無料)が存在してもよい。またカテゴリ識別子を格納する場合も、価格の安い順または高い順にアイテムを格納してもよい。
推薦情報格納部108は、情報選択部107で選択された推薦情報を記録する推薦情報テーブルを格納する。推薦情報は、利用主体識別子と、それに関連する識別子(以下「関連識別子」と称する)とを対応させた情報である。ここで、関連識別子としては、アイテム識別子またはカテゴリ識別子を用いることができる。すなわち、推薦情報格納部108は、図7(a)、図7(b)に示すような2種類の推薦情報テーブルを格納する。
図7(a)は、関連識別子をアイテム識別子(関連アイテム識別子)とし、利用主体識別子と関連アイテム識別子と推薦順位とを対応させて格納したアイテム推薦情報テーブル108Aの例を示している。関連アイテム識別子は、利用主体識別子と関連するアイテムの識別子である。以下では、利用主体識別子に対して関連アイテム識別子に対応するアイテムを推薦する形式を「アイテム推薦形式」と称する。
アイテム推薦情報テーブル108Aでは、1つの利用主体識別子に、1つ以上の関連アイテム識別子が対応付けられている。「UserID−1」に対応する関連アイテムはN1個格納されており、「UserID−2」に対応する関連アイテムはN2個格納されている。ここで、N1とN2は同じであっても、異なっていてもよい。すなわち、利用主体識別子ごとの関連識別子の個数がすべて同じであってもよいし、利用主体識別子ごとに関連識別子の個数が異なっていてもよい。
推薦順位は、利用主体識別子ごとに関連アイテムを推薦する順位を示しており、ここでは番号が小さいほど優先順位が高く、優先的にユーザに提示されるものとする。本図では、各々の利用主体識別子に対して、推薦順位の高い順に関連識別子(関連アイテム識別子)を格納しているが、推薦順位と対応付けて関連識別子を格納する場合は、適当な順序で格納してもよい。
なお、推薦順位の代わりに、数値が大きいほど優先順位が高く、優先的にユーザに提示されるような推薦度を格納するようにしてもよい。また、各推薦情報テーブルにおいて推薦順位を省略してもよい。この場合は、各推薦情報テーブルにおいて、利用主体識別子ごとに推薦順位の高い順、または推薦順位の低い順に関連識別子を格納すればよい。すなわち、ある利用主体識別子に対する関連識別子の推薦順位の情報を、関連識別子の格納順序(格納位置)に持たせてもよい。あるいは、記録された関連識別子をすべて同じ順位として扱ったり、各推薦情報テーブルを読み出す際に、ランダムに推薦順位を付与してもよい。
図7(b)は、関連識別子をカテゴリ識別子(関連カテゴリ識別子)とし、利用主体識別子と関連カテゴリ識別子と推薦順位とを対応させて格納したカテゴリ推薦情報テーブル108Bの例を示している。関連カテゴリ識別子は、利用主体識別子と関連するカテゴリの識別子である。以下では、利用主体識別子に対して関連カテゴリ識別子に対応するカテゴリを推薦する形式を「カテゴリ推薦形式」と称する。カテゴリ推薦形式は、例えば、ユーザにクリエイター(アイテムの作成者)やジャンルに関する推薦情報を提供する場合に用いることができる。
推薦順位は、アイテム推薦情報テーブル108Aと同様な意味であり、同様に推薦順位の格納を省略することも可能である。
以下では、アイテム推薦情報テーブル108Aを用いた情報提供(アイテム推薦形式)とカテゴリ推薦情報テーブル108Bを用いた情報提供(カテゴリ推薦形式)とを両方実施する場合を例にして説明するが、これらのうちの一方のみを実施するようにしてもよい。その場合、必要な種類の推薦情報テーブルのみ格納すればよい。
関連度算出部104は、利用履歴格納部102に格納されたデータを用いて、上述した「アイテム推薦形式」「カテゴリ推薦形式」に対応する2種類の関連度を算出して関連集合を作成し、関連集合格納部105に格納させる。
関連集合格納部105は、利用主体識別子と、関連識別子と、関連度とを対応させた関連度テーブル105A/105Bを格納する。関連度とは、利用主体識別子と関連識別子との関連性の高さを示す数値であり、利用主体識別子に係るユーザが関連識別子に係るアイテムまたはカテゴリを好む程度を予測した数値である。
図8は、関連度テーブル105A/105Bの一例を示している。関連度テーブル105A、105Bに格納されている、ある1つの利用主体識別子に対応する関連識別子の集合をその利用主体識別子の関連集合と称する。
上述したように、関連識別子は、アイテム識別子またはカテゴリ識別子であり、それぞれに応じて、2種類の格納形式があるが、本図では簡略化して示している。以下では、利用主体識別子と関連アイテム識別子との関連度を関連度テーブル105Aに記録し、利用主体識別子と関連カテゴリ識別子との関連度を関連度テーブル105Bに記録するものとする。
本図の例では、利用主体識別子「UserID−1」に対応する関連識別子をL1個、利用主体識別子「UserID−2」に対応する関連識別子をL2個格納している。ここで、L1とL2は同じであっても、異なっていてもよい。すなわち、すべての利用主体識別子に対して同じ数の関連識別子を格納してもよいし、利用主体識別子ごとに異なる数の関連識別子を格納してもよい。また、関連度算出部104で関連度が算出された利用主体識別子と関連識別子の組み合わせをすべて格納してもよいし、利用主体識別子との関連度の高い関連識別子のみを関連集合として格納してもよい。一部のみを格納することにより、関連集合格納部105の記憶容量を削減することができる。また、本図に示すように、利用主体識別子ごとに、関連度の大きい順に関連識別子を格納してもよい。
1つの関連集合の要素数(関連識別子の数)は、基本的には複数であるが、要素数が「1」の関連集合が存在していてもよい。ただし、少なくとも1つ以上の関連集合の要素数は「2」以上である必要がある。なお、情報選択装置10以外の他の装置で算出された関連集合および関連度を関連度テーブル105A、105Bに記録してもよく、その場合は関連度算出部104を省略することができる。
価格影響度算出部106は、価格情報格納部103および関連集合格納部105を参照しながら、関連集合の各々の関連識別子について、その価格情報(価格)が推薦結果に与える影響度である価格影響度を算出する。
情報選択部107は、価格影響度算出部106で算出された価格影響度と、関連集合格納部105の関連度テーブル105A、105Bに格納された関連度とを用いて選択指標を算出し、その選択指標に基づいて、関連集合格納部105の関連度テーブル105A、105Bに格納された利用主体識別子ごとに関連識別子を選択し、その選択された関連識別子と利用主体識別子との組み合わせを推薦情報として、推薦情報格納部108の各推薦情報テーブル108A、108Bに格納する。
<アイテム提供サーバ>
アイテム提供サーバ20は、端末装置30からの要求に応じて、アイテムおよびアイテムに関する情報を提供する装置である。図9は、アイテム提供サーバ20の構成を示すブロック図である。本図に示すように、アイテム提供サーバ20は、ユーザ管理部201と、アイテム格納部202と、データ格納部203と、送受信部204と、制御部205とを備えて構成されている。
アイテム提供サーバ20は、CPU、RAM、ROM、HDD(ハードディスクドライブ)、ネットワークインタフェース等を備える一般的なコンピュータを用いて構成することができる。すなわち、一般的なコンピュータは、以下で説明するような処理を行なうためのプログラムを実行することにより、アイテム提供サーバ20として機能することができるようになる。
送受信部204は、ネットワーク40(図2の構成の場合は、さらにネットワーク42)を介して情報選択装置10および端末装置30との間でデータを送受信する処理を行なう。制御部205は、アイテム提供サーバ20の全体の制御を行なう。
ユーザ管理部201は、端末装置30を利用するユーザを一意に識別するユーザ識別子、または端末装置30を一意に識別するための端末識別子である利用主体識別子を少なくとも格納している。アイテム提供サーバ20は、例えば、ユーザにアイテム利用を開始させるに先立ち、入会処理等を行なって、入会処理の終了した利用主体識別子をユーザ管理部201に格納する。また、必要に応じて、利用主体識別子に対応させて、ログイン名、パスワード、氏名、生年月日、連絡先、決済方法等のユーザ属性情報をユーザ管理部201に格納するようにしてもよい。
アイテム格納部202は、アイテム提供サーバ20が提供するアイテムに関する情報を格納する。アイテム格納部202は、情報選択装置10のアイテム属性格納部101と同様な情報を格納する。ただし、アイテムが有体の物品ではなく、デジタルコンテンツ等であって、ネットワーク40を介して端末装置30に配信可能である場合には、アイテム属性格納部101のデータに加えて、アイテム識別子と、アイテム本体(デジタルコンテンツ等のデータ)とを対応させて格納する。
なお、制御部205は、アイテム格納部202が更新されるごと、または所定のスケジュールに基づいて、アイテム格納部202のデータを、送受信部204を介して情報選択装置10に送信し、アイテム属性格納部101に格納させるようにしてもよい。また逆に制御部205は、情報選択装置10から送信されるアイテム属性格納部101のデータを受信し、アイテム格納部202に格納させるようにしてもよい。あるいは、情報選択装置10からアイテム提供サーバ20にアイテム属性情報を要求するメッセージを送信するようにし、制御部205が、それに応じたデータをアイテム格納部202から読み出して、送受信部204を介して情報選択装置10に送信するようにしてもよい。
データ格納部203は、様々なデータを格納することができる。例えば、情報選択装置10の推薦情報格納部108に格納されたデータをコピーしてデータ格納部203に格納することができる。この場合、端末装置30は、アイテム提供サーバ20から推薦情報を受信することができるので、情報選択装置10の処理負荷を低減することができる。また、情報選択装置10の利用履歴格納部102と同様なデータを格納してもよい。この場合、情報選択装置10からデータ格納部203を参照できるようにして、情報選択装置10の利用履歴格納部102を省略することも可能である。
<端末装置>
端末装置30は、ユーザが使用する装置である。図10は、端末装置30の構成を示すブロック図である。本図に示すように、端末装置30は、制御部301と、送受信部302と、ブラウザ部303と、アプリケーション部304とを備えて構成されている。端末装置30は、CPU、RAM、ROM、HDD(ハードディスクドライブ)、ネットワークインタフェース等を備える一般的なコンピュータ等を用いることができる。すなわち、一般的なコンピュータは、以下で説明するような処理を行なうためのプログラムを実行することにより、端末装置30として機能することができるようになる。また、端末装置30は、Webブラウザ機能等を備えた携帯電話や、携帯端末装置等を用いて構成することもできる。
端末装置30には、Webブラウザに代表されるWebページにアクセスしてその情報を表示するプログラムがインストールされており、ブラウザ部303を構成している。また、種々のアプリケーションプログラムを実行することにより、アプリケーション部304が構成される。
端末装置30としてコンピュータを用いた場合には、ディスプレイ等の表示装置320や、キーボード、マウス、トラックボール、リモコン等のユーザからの操作指示を受け付けるための入力装置330が接続される。端末装置30として携帯電話や、携帯端末装置等を用いた場合は、表示装置、入力装置は内蔵されているが、以下では、便宜的に表示装置320、入力装置330が接続されているものとして説明する。
<システム動作>
<システム全体の動作>
図11のフローチャートを参照して、ネットワークシステム全体の基本的な動作を説明する。この基本的な動作は、多少の変更はあるがすべての実施例で共通である。まず、ステップS100において、端末装置30は、ブラウザ部303を用いて、アイテム提供サーバ20のURL(Uniform
Resource Locator)にアクセスする。具体的には、アイテム提供サーバ20の提供する所定のWebページへのリクエスト(利用開始リクエスト)をアイテム提供サーバ20に送信する。
端末装置30としてパーソナルコンピュータ等を用いる場合は、端末装置30を利用するユーザに、事前に設定させたログイン名(ユーザID)とパスワードとを入力させ、これらを利用開始リクエストに含めて送信する。あるいは、Cookie等の技術を用いて、端末装置30を利用するユーザを識別可能なデータを利用開始リクエストに含めて送信すれば、ログイン名とパスワードの送信を省略できる。ログイン名とパスワードを利用開始リクエストに含めて送信する場合は、ステップS100の前に、アイテム提供サーバ20から端末装置30に、ログイン名とパスワードの入力を受け付けるためのHTML(Hyper
Text Markup Language)データ等を送信しておけばよい。
また、端末装置30として携帯電話等を用いる場合は、端末固有の端末識別子を利用開始リクエストに含めて送信すればよい。この場合は、ログイン名とパスワードの送信を省略することができる。
ステップS110において、アイテム提供サーバ20の制御部205は、送受信部204を介して端末装置30からの利用開始リクエストを受信し、ユーザ管理部201を参照しながら、登録済のユーザか否かを判定する。具体的には、利用開始リクエストにログイン名とパスワードが含まれている場合は、それらをユーザ管理部201に格納されているログインおよびパスワードと照合する。また、利用開始リクエストに端末識別子が含まれる場合は、それがユーザ管理部201に格納されている利用主体識別子と一致するか判定する。登録済のユーザである場合(Yes)は、ステップS130に進み、そうでない場合(No)は、ステップS120に進む。
ステップS120において、アイテム提供サーバ20の制御部205は、送受信部204を介して、端末装置30に入会処理を行なうためのWebページ(HTML)を送信する。本図には示していないが、端末装置30を利用するユーザは、入力装置330を利用して入会処理のWebページに必要な情報を入力し、アイテム提供サーバに送信する等の操作を行い、アイテム提供サーバ20は、その情報をユーザ管理部201に格納する等の入会処理が行われる。端末装置30は、入会処理完了後に、改めて利用開始リクエストを送信することができる。
ステップS130において、アイテム提供サーバ20の制御部205は、アイテム格納部202を参照しながら、利用開始リクエストに対応するWebページの応答データであり、アイテムまたは/およびカテゴリを紹介する情報を含む応答データを作成し、送受信部204を介して端末装置30に送信する。応答データは、HTMLデータ、画像データ、映像データ、音声データなどで構成されており、複数回に分けて端末装置30に送信される場合がある。また、応答データには、あるアイテム(またはカテゴリ)に関連する関連アイテム(または関連カテゴリ)をユーザに表示するための情報と、ユーザにアイテムを利用させるための情報とが含まれている。またCookie等の技術を用いて、応答データにユーザや端末装置30を識別するための情報を含めてもよい。
ステップS140において、端末装置30は、アイテム提供サーバ20から応答データを受信し、表示装置320にその情報を表示する。表示画面の例を図12に示す。図12は、応答データにアイテムを紹介する情報が含まれる場合の表示例である。本図の例は、アイテム提供サーバ20が最近提供を開始した「新着アイテム」を紹介する表示画面である。ただし、本図に示すようなアイテムを紹介する情報は、種々のタイミングで端末装置30に送信することができる。なお、情報選択装置1の表示制御情報作成部(図示せず)が、このような応答データを作成し、端末装置30に送信するようにしてもよい。
本図において「アイテムABC」は1番目のアイテムのタイトルであり、「SF」は1番目のアイテムのカテゴリ名であり、「このアイテムは、2001年に制作された映画で…」という表示は1番目のアイテムの説明情報である。また、各々のアイテムごとに、そのアイテムを利用するためのボタンやリンク等(利用リンク)が表示される。2番目以降のアイテムについても同様な表示がされる。
また図12に示すように、「あなたへお薦めのアイテム」等のボタン、リンク等を表示してもよい。これは、端末装置30を利用するユーザに対して、そのユーザとの関連度の高い(そのユーザの嗜好や興味に合う可能性の高い)アイテム情報を表示するためのボタンやリンク等(関連アイテムリンク)である。また、「あなたへお薦めのカテゴリ」等のボタン、リンク等を表示してもよい。これは、そのユーザとの関連度の高いカテゴリ情報を表示するためのボタンやリンク等(関連カテゴリリンク)である。以下では、関連アイテムリンクと関連カテゴリリンクを合わせて、関連リンクと称する。
図12の関連アイテムリンクは、上述したアイテム推薦形式の推薦情報を表示させるためのリンクである。図12の関連カテゴリリンクは、カテゴリ推薦形式の推薦情報を表示させるためのリンクである。ユーザは、入力装置330を使用したクリック等の操作により、関連リンクまたは利用リンクを選択することができる。なお表示画面には表示されないが、応答データには、各々のアイテムのアイテム識別子、および端末装置30を利用するユーザに係る利用主体識別子が含まれている。なお、本図には示していないが、新着アイテム等を紹介する表示画面において、アイテムごとにその価格情報を表示してもよい。
図11のフローチャートの説明に戻って、ステップS150において、端末装置30は、関連リンク(関連アイテムリンクまたは関連カテゴリリンク)がユーザから入力装置330を介して選択されたか否かを判定する。関連リンクが指定された場合(Yes)は、ステップS160に進み、指定されていない場合(No)は、ステップS190に進む。
ステップS160において、端末装置30は、関連リンクに対応するURLにリクエスト(推薦リクエスト)を送信する。本実施形態では、関連リンクが情報選択装置10の所定のURLに対応する場合を説明するが、関連リンクをアイテム提供サーバ20の所定のURLに対応させてもよい。推薦リクエストには、利用主体識別子(端末装置30を利用するユーザのユーザ識別子または端末装置30の端末識別子)と、関連アイテムリンクであるか関連カテゴリリンクであるかを示すリンク種別情報とが含まれている。以下では、この推薦リクエストに含まれる利用主体識別子を「リクエスト利用主体識別子」(情報選択に係る利用主体識別子)と称する。
ステップS170において、情報選択装置10の制御部110は、送受信部109を介して、推薦リクエストを受信し、それに含まれるリクエスト利用主体識別子に対応する表示用推薦データを作成して端末装置30に送信する。このとき、制御部110は、以下に説明する「アイテム推薦形式」と「カテゴリ推薦形式」とに対応する2種類の処理を行なう。
<アイテム推薦形式>
図7(a)に示した推薦情報格納部108のアイテム推薦情報テーブル108Aを参照しながら、リクエスト利用主体識別子に一致する利用主体識別子を特定し、それに対応する関連アイテム識別子と推薦順位とを読み出す。さらに、その関連アイテム識別子に対応するアイテム属性情報をアイテム属性格納部101のアイテム情報テーブル101Aから読み出す。そして、関連アイテム識別子と、推薦順位と、アイテム属性情報とを対応させた表示用推薦データを作成する。
例えば、図7(a)に示した例において、リクエスト利用主体識別子が「UserID−1」である場合は、それと同じ利用主体識別子に対応した関連アイテム識別子である「ItemID−1000」「ItemID−1020」…「ItemID−1035」と、その推薦順位「1」「2」…「N1」を読み出す。ただし、特定した利用主体識別子に対応する関連アイテム識別子をすべて読み出してもよいし、推薦順位の高い順に所定個数読み出してもよい。また推薦リクエストの中に、読み出す推薦情報の個数が含まれている場合は、推薦順位の高い順にその個数だけを読み出す。
このとき、利用履歴格納部102のアイテム利用履歴テーブル102Aを参照しながら、リクエスト利用主体識別子に係るユーザが過去に利用したアイテム識別子(利用済みアイテム識別子)を特定し、利用済みアイテム識別子(利用済みアイテム)を推薦情報に含めない処理を行なってもよい。このような処理を行なうことで、ユーザが1回しか同じアイテムを購入しない性質を持つようなアイテム提供サービスにおいて、精度の高い推薦が可能になる。例えば、1度購入したデジタルコンテンツは、端末装置30で繰り返し利用(再生)できる、といったサービスに適している。
また、過去の利用回数が所定数以上のアイテムを推薦情報に含めない処理や、最近3ヶ月以内等の所定期間内に利用したアイテムを推薦情報に含めない処理を行なってもよい。このような処理を行なうことで、ユーザが利用しない可能性の高いアイテムが推薦情報に入り難くなるので、推薦情報に対するユーザの信頼感や興味の度合いを高めることができる。
そして制御部110は、アイテム属性格納部101を参照しながら、読み出した関連アイテム識別子に対応する「タイトル」「説明情報」などのアイテム属性情報と、「カテゴリ名」などのカテゴリ属性情報とを読み出し、関連アイテム識別子と2つの属性情報と推薦順位とを合わせて表示用推薦データを作成する。また、価格情報格納部103を参照しながら、読み出した関連アイテム識別子に対応する価格情報を読み出し、表示用推薦データに含めてもよい。
<カテゴリ推薦形式>
図7(b)に示した推薦情報格納部108のカテゴリ推薦情報テーブル108Bを参照しながら、リクエスト利用主体識別子に一致する利用主体識別子を特定し、それに対応する関連カテゴリ識別子と推薦順位とを読み出す。ここで、特定した利用主体識別子に対応する関連カテゴリ識別子をすべて読み出してもよいし、推薦順位の高い順に所定個数読み出してもよい。さらに、その関連カテゴリ識別子に対応するカテゴリ属性情報(カテゴリ名およびカテゴリ説明情報)をアイテム属性格納部101から読み出す。そして、関連カテゴリ識別子と、推薦順位と、カテゴリ属性情報とを対応させた表示用推薦データを作成する。また、価格情報格納部103を参照しながら、関連カテゴリ識別子に対応する価格情報を読み出し、表示用推薦データに含めてもよい。
このとき、ユーザが過去に利用したカテゴリを除外して表示用推薦データを作成してもよい。具体的には、利用履歴格納部102のアイテム利用履歴テーブル102Aとアイテム情報テーブル101Aとを参照しながら、リクエスト利用主体識別子に係るユーザが、過去に利用したアイテムについてのカテゴリ識別子(利用済みカテゴリ識別子)を特定する。なお、カテゴリ利用履歴テーブル102Bを用いている場合は、カテゴリ利用履歴テーブル102Bを参照すればよい。
そして、カテゴリ推薦情報テーブル108Bから関連カテゴリ識別子を読み出す際に、利用済みカテゴリ識別子を除外する処理を行なう。このような処理を行なうことで、ユーザが1回しか同じカテゴリのアイテムを購入しない性質を持つようなアイテム提供サービスにおいて、精度の高い推薦が可能になる。また、過去の利用回数が所定数以上のカテゴリを推薦情報に含めない処理や、最近3ヶ月以内等の所定期間内に利用したカテゴリを推薦情報に含めない処理を行なってもよい。このような処理を行なうことで、ユーザが利用しない可能性の高いカテゴリが推薦情報に入り難くなるので、推薦情報に対するユーザの信頼感や興味の度合いを高めることができる。
なお、アイテム提供サーバ20のユーザ管理部201に、ユーザの氏名やログイン名などのユーザ属性情報が格納されている場合には、上述した「アイテム推薦形式」、「カテゴリ推薦形式」の表示用推薦データを作成する際にこれらを読み出して、表示用推薦データの中に、リクエスト利用主体識別子と、リクエスト利用主体識別子に対応するユーザ属性情報とを含めてもよい。
また、推薦リクエストの種別に対応する推薦情報テーブルにおいて、推薦順位が格納されておらず、関連識別子の格納順序が推薦順位の情報を持っている場合は、その格納順序に従って、表示用推薦データにおける関連識別子の順序を決めればよい。例えば、格納順序が1番目の関連アイテム識別子を表示用推薦データの1番目にし、格納順序が2番目の関連アイテム識別子を表示用推薦データの2番目にすればよい。また、表示用推薦データを作成する際に、ランダムな推薦順位を生成して付与したり、表示用推薦データにおける関連識別子の順序をランダムに決定してもよい。
図11のフローチャートの説明に戻って、ステップS180において、端末装置30は、ステップS170で情報選択装置10から送信された表示用推薦データを受信し、例えば、図13に示す形式で表示装置120に推薦リストとして表示する。図13(a)は、「アイテム推薦形式」に対応する処理が行われた場合に、推薦リクエストを発行したユーザとの関連度が高いアイテムを「○○○さんへのおすすめアイテム」として表示する画面の一例である。
「○○○」には、リクエスト利用主体識別子に対応するユーザの氏名やログイン名が表示される。このような表示を行なうことにより、他のユーザに対する推薦情報と共通のものではなく、そのユーザ専用に作成された推薦情報であることをユーザに明確に伝えることができるので、推薦情報に対するユーザの信頼感や興味の度合いを高めることができる。なお、氏名やログイン名を表示しなくても、「あなただけにお知らせする、とっておきアイテムです」など、そのユーザ専用に作成された推薦情報であることが分かる表示を行なうことで、同様の効果を得ることができる。
アイテムの表示順序は、推薦順位に従って決められており、推薦順位が上位のアイテムほど、ユーザの目に留まりやすい位置に表示される。例えば、本図に示すように上下方向に各々のアイテムの情報を配置する場合は、推薦順位が上位のアイテムの表示画面の上側に表示するとよい。また、左右方向に各々のアイテムの情報を配置する場合は、表示画面の左側に表示するとよい。「アイテムOPQ」は1番目のアイテム(推薦順位が「1」のアイテム)のタイトルであり、「サスペンス」は1番目のアイテムのカテゴリ名であり、「このアイテムは、目が離せない…」という表示は、1番目のアイテムの説明情報である。図12に示した表示例と同様に、各々のアイテムに対して、利用リンクに対応付けられた「アイテム利用」ボタンが表示される。2番目以降のアイテムについても同様な表示がされる。なお、本図には示していないが、表示用推薦データに価格情報が含まれている場合は、アイテムごとにその価格情報を表示してもよい。
図13(b)は、表示用推薦データ作成・送信処理(ステップS170)で「カテゴリ推薦形式」に対応する処理が行われた場合に、推薦リクエストを発行したユーザとの関連度が高いカテゴリを「○○○さんへのおすすめカテゴリ」として表示する画面の一例である。
カテゴリの表示順序は、推薦順位に従って決められている。「カテゴリRST」は1番目のカテゴリ(推薦順位が「1」のカテゴリ)のカテゴリ名であり、「このカテゴリは、最近非常に注目され…」という表示は、1番目のカテゴリの説明情報である。各々のカテゴリに対して、「アイテム一覧表示」ボタンが表示される。ユーザが「アイテム一覧表示」ボタンを押すと、この画面あるいは別の画面に、そのカテゴリに属するアイテムの一覧と、それを利用するための利用ボタン(利用リンク)が表示される。なお、図13(b)に示す画面に、各々のカテゴリに属する代表的なアイテムのタイトル等をあらかじめ表示してもよい。2番目以降のアイテムについても同様な表示がされる。なお、本図には示していないが、表示用推薦データに価格情報が含まれている場合は、カテゴリごとにその価格情報(カテゴリに属するアイテムの価格の代表値など)を表示してもよい。
図11のフローチャートの説明に戻って、ステップS190において、端末装置30は、利用リンクがユーザから入力装置330を利用して選択されたか否かを判定する。この利用リンクは、代表的には、アイテムの購入要求とすることができるが、アイテムの再生、アイテムのプレビュー、アイテムの詳細情報の表示、アイテムに対する評価情報(評価値)の登録などの種々の要求を含めることができる。利用リンクが選択された場合(Yes)は、ステップS200に進み、そうでない場合(No)はステップS250に進む。
ステップS200において、端末装置30は、利用リンクに対応するURLにリクエスト(利用リクエスト)を送信する。本実施形態では、利用リンクがアイテム提供サーバ20の所定のURLに対応する場合を説明する。なお端末装置30は、利用リクエストをアイテム提供サーバ20に加えて、情報選択装置10に直接送信してもよい。
各々の利用リンクには、選択対象となるアイテムのアイテム識別子が付与されており、利用リクエストには、ユーザが選択したアイテムのアイテム識別子と、そのユーザまたは端末装置30を識別する利用主体識別子とが含まれている。なお、ユーザが一度に複数のアイテムを利用する場合は、1つの利用リクエストに複数のアイテムのアイテム識別子を含めてもよいし、複数の利用リクエストを送信してもよい。
ステップS210において、アイテム提供サーバ20の送受信部204は、端末装置30から受信した利用リクエストを情報選択装置10に送信し中継する。このとき、アイテム提供サーバ20の制御部205が、利用リクエストからアイテム識別子や利用主体識別子などの情報を取り出し、利用情報として、データ格納部203に格納させるようにしてもよい。
ステップS220において、情報選択装置10の制御部110が、送受信部109を介して、利用リクエストを受信し、利用履歴情報として利用履歴格納部102に格納させる。そして、制御部110は、送受信部109を介して、利用履歴情報の格納を終了したことを示すメッセージをアイテム提供サーバ20に送信する。
ステップS230において、アイテム提供サーバ20の制御部205が、送受信部204を介して情報選択装置10からの格納終了メッセージを受信した後、端末装置30にアイテムを提供する処理を行なう。例えば、提供対象のアイテムがデジタルコンテンツである場合には、アイテム格納部202から、利用リクエストに含まれるアイテム識別子に対応するアイテム本体を読み出して、送受信部204を介して端末装置30に送信する。また、アイテムが物品である場合には、配送事業者のシステムに配送依頼の情報を送る配送処理などを行なう。このとき必要に応じて、課金処理などを行なう。また、アイテムの詳細情報が要求された場合には、アイテム格納部202から「説明情報」などを読み出して、端末装置30に送信する。
ステップS240において、端末装置30は、アイテム提供サーバ20から提供されたアイテムの利用に係る処理を行なう。例えば、アイテムがデジタルコンテンツである場合には、アイテムの再生、表示などを行なう。また、アイテムが物品である場合には、配送処理を受付した旨のメッセージ等を画面に表示する。
ステップS250において、端末装置30は、ユーザがブラウザを終了する等の操作終了指示があるか否かを判定する。操作終了指示がある場合(Yes)は、端末装置30の処理を終了し、操作終了指示がない場合(No)は、ステップS150に戻って処理を継続する。
以上がシステム全体の動作の説明である。なお、本実施形態においては、ステップS160で、端末装置30から情報選択装置10に推薦リクエストを送信しているが、これ以外の方法を用いてもよい。例えば、端末装置30からアイテム提供サーバ20に推薦リクエストを送信し、アイテム提供サーバ20が情報選択装置10に推薦リクエストを中継してもよい。また、適当なタイミングで、情報選択装置10の制御部110が、送受信部109を介して、推薦情報格納部108に格納されたデータをアイテム提供サーバ20に送信すると共に、アイテム提供サーバ20の制御部205が、送受信部204を介して、そのデータを受信し、データ格納部203に格納させておいてもよい。そして、ステップS160において、端末装置30からアイテム提供サーバ20に推薦リクエストを送信し、ステップS170に相当する処理として、アイテム提供サーバ20の制御部205が、データ格納部203から推薦データを読み出し、表示用推薦データを作成して、端末装置30に送信するようにしてもよい。この場合は、表示用推薦データ作成とその送信に伴う情報選択装置10の処理負荷を減らすことができる。
また、本実施形態においては、ステップS210で、アイテム提供サーバ20が端末装置30からの利用リクエストを情報選択装置10に中継しているが、これ以外の方法を用いてもよい。例えば、ステップS200の利用リクエストの送信と同時、あるいは適当なタイミングで、端末装置30から情報選択装置10に直接、利用リクエストを送信してもよい。
また、ステップS220において、情報選択装置10は、利用履歴情報の格納に加えて、利用リクエストに含まれる利用主体識別子に対応する表示用推薦データをステップS170と同様な方法で作成し、表示用推薦データをアイテム提供サーバ20に送信してもよい。そして、ステップS230において、アイテム提供サーバ20が、アイテム提供処理に加えて、表示用推薦データを端末装置30に送信してもよい。すなわちこの場合、端末装置30は、利用リクエストを送信するごとに、利用リクエストに含まれる利用主体識別子に対応する推薦情報を受信することができる。
また、携帯電話等の端末識別子を利用することができ、特別なユーザ登録処理が不要なアイテム提供サービスにおいて、ステップS200で送信される利用リクエストに、利用主体識別子を含めることができる場合であれば、ステップS110の登録済ユーザ確認処理と、ステップS120の入会処理に必要なデータの送信とを省略することも可能である。
<情報選択装置の動作>
<推薦情報作成動作>
第1実施例における情報選択装置10の処理動作について説明する。まず、情報選択装置10が推薦情報を作成する動作について図14のフローチャートを参照して説明する。
情報選択装置10の制御部110は、所定のタイミングで情報選択装置10の各処理部に指示を出し、推薦情報を作成する処理を開始する。推薦情報作成のタイミングとして、次の3種類を用いることができる。
推薦情報作成の第1のタイミングは、所定の日時または所定の時間間隔である。例えば、「毎日午前6時と午後6時」「毎週月曜の午前10時30分」「12時間ごと」「24時間ごと」などである。このとき、「平日は午前6時、土日は午前6時と午後6時」「平日は3時間ごと、土曜日は6時間ごと、日曜日は12時間ごと」などのように時間間隔が変動してもよい。また、夏は時間間隔を短くして、冬は時間間隔を長くするなど、季節に応じて時間間隔を変えてもよい。この第1のタイミングを用いると、他のタイミングを用いた場合より情報選択装置10の処理負荷を減らすことができる。特に、推薦リクエスト数が少ない時間帯に推薦情報を作成するように設定すれば、情報選択装置10の処理負荷の低減に効果的である。
推薦情報作成の第2のタイミングは、端末装置30の推薦リクエスト送信処理(図11ステップS160)による端末装置30からの推薦リクエストを所定回数受信するごとである。この場合は、基本的には所定回数を1として、推薦リクエストを受信するごとに推薦情報を作成するのがよい。以下の説明では、所定回数を1とするが、所定回数を2以上にすることも可能である。所定回数を1とする場合は、まず推薦リクエストに含まれる利用主体識別子(リクエスト利用主体識別子)に対する推薦情報を作成し、その後に表示用推薦データ作成・送信処理(ステップS170)を行なう。このようにすれば、リクエスト利用主体識別子に対して、常に最新の推薦情報を提供することができる。
推薦情報作成の第3のタイミングは、アイテム提供サーバ20を中継して送られる(ステップS210)、端末装置30の利用リクエスト送信(ステップS200)による利用リクエストを所定回数受信するごとである。この所定回数を調整することにより、情報選択装置10の処理負荷の大きさと、推薦情報の新しさとのバランスを調整することができる。
通常は、所定回数をある程度大きな値として、情報選択装置10の処理負荷があまり大きくならないようにするのがよい。一般的には、ある程度の数の利用履歴が追加されないと、新たな推薦情報を作成しても前回の推薦情報と似た内容になることが多いので、所定数を適切な値に設定すれば、情報選択装置10の処理負荷を抑えながら、比較的新しい利用状況を反映させた推薦情報を提供することができる。特に、利用リクエストの数が季節、曜日、時間帯などにより大きく変動する場合や、利用リクエスト数の増減パターンを事前に予測するのが難しい場合には、第1のタイミングで推薦情報を作成するよりも、情報選択装置10の処理負荷の軽減と、比較的新しい利用状況を推薦情報に反映させることとを両立させやすい。
以下の説明において、推薦情報を作成する対象となる利用主体識別子(情報選択に係る利用主体識別子)の集合を「推薦基準集合」と称する。第1のタイミングおよび第3のタイミングで推薦情報を作成する場合は基本的に、推薦基準集合の要素数が多数となる。第2のタイミングで推薦情報を作成する場合は、推薦基準集合の要素数は基本的に1つであるが、複数の場合もある。
まず、ステップS400において、制御部110の指示を受けた関連度算出部104が、「アイテム推薦形式」および「カテゴリ推薦形式」に対応する2種類の関連度を算出し、これに基づき関連集合を作成し、関連集合を関連集合格納部105に格納させる。ステップS410において、制御部110の指示を受けた価格影響度算出部106が、価格情報格納部103を参照しながら、アイテムおよびカテゴリの価格が推薦結果に与える影響の度合いを示す価格影響度を算出する。
ステップS420において、制御部110の指示を受けた情報選択部107が、ステップS400で算出された関連度、およびステップS410で算出された価格影響度を用いて、選択指標を算出する。
ステップS430において、情報選択部107が、選択指標に基づいて、アイテムまたはカテゴリを選択して、推薦情報格納部108に格納させる。そして、推薦情報作成動作が終了した旨を制御部110に通知する。
「アイテム推薦形式」および「カテゴリ推薦形式」に対応する関連集合作成処理(ステップS400)について図15のフローチャートを参照して説明する。
ステップS500において、関連度算出部104は、利用履歴格納部102のアイテム利用履歴テーブル102Aに記録されている利用履歴を読み出す。ここでは、すべての利用履歴を読み出してもよいし、所定の条件を満たす利用履歴を読み出してもよい。例えば、図6(b)に示したアイテム利用履歴テーブル102A−2のように利用時期情報を記録した上で、「利用時期が過去4ヶ月以内」「利用時期と現在との差が3日以上かつ30日未満」などのように、「利用履歴の利用時期情報が所定の範囲にある」という条件を満たす利用履歴を読み出してもよい。
また、ユーザ(利用主体識別子)ごとに利用時期が新しい順に所定個数以内の利用履歴を読み出してもよい。例えば、所定個数を20個とした場合、利用回数が20回以上のユーザに対しては、利用時期が新しい順に20個ずつの利用履歴を読み出し、利用回数が20回未満のユーザに対しては、そのユーザに関するすべての利用履歴を読み出すようにする。このようにすれば、利用頻度が少なく、最近アイテムを利用していないようなユーザに対しても効率よく関連集合を作成することができる。
そして、このステップS500で読み出した利用履歴に含まれるユーザ(利用主体識別子)の集合σを作成する。以下では、このステップで読み出した利用履歴に含まれるアイテムの数(アイテム識別子の種類数)をMs、ユーザの数(利用主体識別子の種類数)をUsとする。
ステップS510において、関連度算出部104は、推薦基準集合K1を作成する。上述したように、第2タイミングで推薦情報を作成する場合には、リクエスト利用主体識別子を推薦基準集合K1に入れる。
第1および第3のタイミングで推薦情報を作成する場合は、ステップS500で作成したアイテムの集合σを推薦基準集合K1とする。この場合は、所定条件を満たす利用履歴に含まれる利用主体識別子識別子それぞれに対して関連アイテム集合が作成されることになる。なお、ここで作成された推薦基準集合K1は、情報選択部107、制御部110などの他の処理部から参照することができる。
ステップS520において、関連度算出部104は、ステップS510で作成された推薦基準集合K1の中から未処理のユーザを1つ選択する。この処理対象となるユーザを基準ユーザxとする。
ステップS530において、関連度算出部104は、ステップS500で読み出された利用履歴を用いて、基準ユーザxと、ユーザ集合σに属する他ユーザy(y∈σ、x≠y)との類似度を算出する。
具体的には、基準ユーザxと他のユーザyとが共に利用したことのあるアイテムの数|I[x]∩I[y]|を算出し、これを類似度とすることができる。また、ユーザxが利用したアイテムの集合をI[x]、ユーザyが利用したアイテムの集合をI[y]、ユーザxとユーザyとが共に利用したことのあるアイテムの数を|I[x]∩I[y]|、ユーザxとユーザyの少なくとも一方が利用したことのあるアイテムの数を|I[x]∪I[y]|としたとき、[数1]に示すように、ジャカード(Jaccard)係数を用いてユーザxとユーザyとの類似度D[x][y]を算出することができる。
また、ステップS500で読み出された利用履歴から、利用回数に関する情報やユーザがアイテムに対して行なった評価の情報(評価値)が得られる場合は、コサイン尺度やピアソン積率相関係数を用いて類似度を算出してもよい。例えば、ユーザxのアイテムzに対する利用回数または評価値をE[x][z](ただし、E[x][z]≧0)、ユーザyのアイテムzに対する利用回数または評価値をE[y][z](ただし、E[y][z]≧0)としたとき、[数2]を用いて、ユーザxとユーザyとの類似度D[x][y]を算出することができる。ここで、γは0より大きい定数であり、γ=1に設定すると、[数2]はコサイン尺度になる。γ>1に設定すると、通常のコサイン尺度に比べ、利用回数または評価値が大きいデータの影響力を大きくして類似度を算出できる。また、Msは、ステップS500で読み出された利用履歴に含まれるアイテムの数である。
また、[数3]に示すように、ピアソン積率相関係数を用いて、類似度D[x][y]を算出してもよい。
ここで、Ic[x][y]は、ユーザxとユーザyとが共に利用または評価したアイテムの集合であり、Ea[x]は、Ic[x][y]に属するアイテムをユーザxが利用した回数の平均値、または評価した評価値の平均値である。Ea[y]は、Ic[x][y]に属するアイテムをユーザyが利用した回数の平均値または評価値の平均値である。また、E[x][z]とE[y][z]とのユークリッド距離あるいはその他の距離を用いて、類似度D[x][y]を算出してもよい。
また、利用履歴格納部102に利用時期情報が格納されている場合は、E[x][z]などを算出する際に、利用時期が古い利用履歴より、新しい利用履歴の重みを大きくして算出してもよい。
さらに、ユーザxのアイテムzに対する利用回数または評価値であるE[x][z](x=1〜Us、z=1〜Ms)を行列要素とする行列に対して、主成分分析や数量化3類などの多変量解析を適用し、次元数を削減したベクトルを生成し、コサイン尺度やユークリッド距離などを用いてユーザ間の類似度を算出してもよい。また、上記以外にも、ユーザ間の類似性を表わす指標であれば、どのような方法を用いてもよい。
このようにして算出されたユーザxと、ユーザy(y∈σ、x≠y)との類似度は、関連度算出部104内部のメモリ(図示せず)に格納される。なお、ステップS520〜S570のループ(繰り返し)処理において、ユーザxと、ユーザyとの類似度が既に算出され、関連度算出部104内部のメモリに格納されている場合は、新たな算出を行なわずに格納されている値を利用してもよい。
ステップS540において、関連度算出部104は、基準ユーザxとアイテムzとの関連度W[x][z]を算出する。
関連度算出の第1の方法は、ステップS530で算出された類似度D[x][y]が高い「類似ユーザ」を特定し、類似ユーザに多く利用されたアイテムほど関連度が高くなるように算出する方法である。
具体的にはまず、類似度D[x][y]が所定値以上のユーザ、あるいは類似度D[x][y]が高い順に所定数のユーザを類似ユーザとして特定する。次に、ステップS500で読み出された利用履歴を対象にして、類似ユーザが利用したアイテムを特定し、アイテムごとに利用回数をカウントし、この利用回数を関連度とする。あるいは利用回数の平方根や対数値などを用いて関連度を算出してもよい。第1の方法によれば、類似ユーザに利用されたアイテムの関連度が算出される。類似ユーザに利用されていないアイテムの関連度は「0」とすればよい。
この第1の方法は、ユーザがアイテムを気に入った場合に、そのアイテムを複数回利用(購入)する性質を持つようなアイテム提供サービスに適している。例えば、端末装置30に保存できない形式のデジタルコンテンツや、消耗品の物販などである。
関連度算出の第2の方法は、多くの類似ユーザに利用されたアイテムほど関連度が高くなるように算出する方法である。第1の方法と同様に、類似ユーザを特定した後、ステップS500で読み出された利用履歴を対象にして、類似ユーザが利用したアイテムを特定し、アイテムごとに利用した人数をカウントし、この利用人数を関連度とする。
第2の方法は、ユーザが基本的に同じアイテムを1度しか利用(購入)しない性質のアイテム提供サービスに適している。例えば、アイテムが端末装置30に保存して何回でも再生できる形式のデジタルコンテンツであれば、ユーザが再度購入するのは、ユーザが端末装置30から間違って消去したような例外的なケースが想定され、基本的には同じアイテムを1回しか購入しないので、この第2の方法が有効である。また、第1および第2の方法によれば、類似ユーザの数を適切に設定することにより、少ない計算量で、精度よく関連度を算出することができる。
関連度算出の第3の方法は、ユーザ間の類似度を直接用いて関連度を算出する方法である。具体的にはまず、ステップS500で読み出された利用履歴を対象にして、ユーザy(y∈σ、x≠y)がアイテムzを利用した回数C[y][z]をカウントする。そして、[数4]に示すように、類似度D[x][y]と利用回数C[y][z]との積を加算した値を用いてユーザxとアイテムzとの関連度W[x][z]を算出する。第3の方法では、アイテムzの利用回数が多く、かつ利用したユーザの類似度が高いほど、関連度が高く算出される。
なお[数4]では、類似度D[x][y]が算出されたすべてのユーザの情報を用いて関連度を算出しているが、類似ユーザを対象にして[数4]の計算を行なってもよい。また[数4]において、ユーザyがアイテムzを利用した場合にC[y][z]=1、利用していない場合にC[y][z]=0として計算してもよい。このようにすれば、アイテムzを利用したユーザ数が多く、かつ利用したユーザの類似度が高いほど、関連度が高く算出される。この第3の方法によれば、基準ユーザとアイテムとの関連度をさらに精度よく算出することができる。
さらに関連度算出の第1〜第3の方法において、アイテム属性格納部101のアイテム情報テーブル101Aからアイテム時期情報を読み出し、これを用いて処理を行なってもよい。具体的には、アイテム時期情報が新しいアイテムほど大きな値となる重み係数を算出し、利用回数や利用ユーザ数を算出する際に、この重み係数を乗じる等の演算を行なう。このようにすれば、ユーザにとって一般的に価値の高い「新作」アイテムの関連度を高くして、優先的に推薦情報に入れることができる。
ステップS550において、関連度算出部104は、基準ユーザxに関する関連アイテム集合Ω[x]を作成し、関連集合格納部105に格納させる。関連アイテム集合Ω[x]は、関連識別子がすべてアイテム識別子であるような関連集合である。
関連アイテム集合作成の第1の方法は、ステップS540において基準ユーザxとの関連度を算出したすべてのアイテム(関連度が「0」より大きいすべてのアイテム)を関連アイテム集合Ω[x]に入れる方法である。この方法は、なるべく多くの推薦結果を出力したい場合に適している。
関連アイテム集合作成の第2の方法は、基準ユーザxとの関連度が高いアイテムを選出して関連アイテム集合Ω[x]に入れる方法である。具体的には、ステップS540において関連度を算出したすべてのアイテムの中から、関連度が閾値以上のアイテムを選出する。または、関連度が大きい順に所定値を超えない範囲でアイテムを選出してもよい。例えば、基準ユーザxとの関連度が算出されたアイテムの数が所定数に満たない場合は、関連度が算出されたすべてのアイテムを選出し、そうでない場合は、関連度が大きい順に所定数のアイテムを選出すればよい。
さらに、基準ユーザxとの関連度が所定値以上のアイテムの中から、関連度が大きい順に所定数を超えない範囲でアイテムを選出し、それらを関連アイテム集合Ω[x]としてもよい。また関連アイテム集合Ω[x]の要素が所定数以上得られるように、関連度の閾値を基準ユーザxごとに調整して選出してもよい。この第2の方法によれば、関連集合格納部105に必要な記憶容量を削減でき、さらにステップS410〜S430の処理を効率よく行なうことができる。
そして、関連度算出部104は、基準ユーザxの利用主体識別子と、関連アイテム集合Ω[x]の各アイテム識別子と、その関連度とを対応させて、関連集合格納部105の関連度テーブル105Aに記録する。具体的には、基準ユーザxの利用主体識別子を図8に示した関連度テーブル105Aの利用主体識別子に対応させ、関連アイテム集合Ω[x]の各アイテム識別子を関連度テーブル105Aの関連アイテム識別子に対応させて記録する。
ステップS560において、関連度算出部104は、基準ユーザxに関する関連カテゴリ集合Φ[x]を作成し、関連集合格納部105に格納させる。関連カテゴリ集合Φ[x]は、関連識別子がすべてカテゴリ識別子であるような関連集合である。
関連度算出部104は、図4(a)に示したアイテム情報テーブル101Aを参照しながら、ステップS550で作成された関連アイテム集合Ω[x]を用いて、関連カテゴリ集合Φ[x]を作成する。
関連カテゴリ集合Φ[x]作成の第1の方法では、関連アイテム集合Ω[x]の各要素に対応するカテゴリ識別子を特定し、特定されたカテゴリ識別子ごとの要素数をカウントし、この要素数をユーザxとカテゴリとの関連度とする。そして、この要素数が所定数以上のカテゴリ識別子を関連カテゴリ集合Φ[x]に入れる。なお、この所定数を「1」として、特定されたカテゴリ識別子をすべて関連カテゴリ集合Φ[x]に入れてもよい。
関連カテゴリ集合Φ[x]作成の第2の方法では、関連アイテム集合Ω[x]の各要素に対応するカテゴリ識別子を特定し、特定されたカテゴリ識別子ごとに、関連アイテム集合Ω[x]の各要素に対応する関連度の合計値を算出し、この合計値を関連度とする。そして、この合計値が所定値以上のカテゴリ識別子を選出して、関連カテゴリ集合Φ[x]に入れる。例えば、関連アイテム集合に、A、B、Cの3つの要素(関連アイテム)が存在し、各々の関連度が「1.0」、「0.8」、「0.4」であり、要素Aはカテゴリ1に対応し、要素Bがカテゴリ2に対応し、要素Cもカテゴリ2に対応する場合、基準ユーザとカテゴリ1との関連度を「1.0」、基準ユーザとカテゴリ2との関連度を「0.8+0.4=1.2」とすればよい。
ある要素に対応するカテゴリ識別子が複数存在する場合は、各要素に対応する関連度をそのまま用いて合計値を算出してもよいし、各要素に対応する関連度をカテゴリ識別子の数で割った値を用いて合計値を算出してもよい。例えば、基準ユーザと要素A(関連アイテムA)との関連度が「1.0」であり、要素Aに、カテゴリ1とカテゴリ3の2つのカテゴリが対応する場合、基準ユーザとカテゴリ1との関連度の要素Aに係る部分を「1.0」としてもよいし、「1.0÷2=0.5」としてもよい。
なお、この所定値を十分小さな値にして、特定されたカテゴリ識別子をすべて関連カテゴリ集合Φ[x]に入れてもよい。また、合計値の大きい順に所定数を越えない数のカテゴリ識別子を選出し、関連カテゴリ集合Φ[x]に入れてもよい。
そして、関連度算出部104は、基準ユーザxのアイテム識別子と、関連カテゴリ集合Φ[x]の各カテゴリ識別子と、その関連度とを対応させて、関連集合格納部105の関連度テーブル105Bに記録する。具体的には、基準ユーザxの利用主体識別子を図8に示した関連度テーブル105Bの利用主体識別子に対応させ、関連カテゴリ集合Φ[x]の各カテゴリ識別子を関連度テーブル105Bの関連カテゴリ識別子に対応させて記録する。
なお、上述したユーザとアイテムとの関連度、およびユーザとカテゴリとの関連度、それぞれの算出工程において、関連度の最大値や合計値が所定値(例えば「1」)になるように、正規化処理を行なってもよい。
ステップS570において、関連度算出部104は、他の基準ユーザを選択可能か判定する。ステップS510で作成された推薦基準集合K1の中で、まだ処理を行なっていないユーザが存在する場合に「Yes」と判定し、未処理のユーザが存在しない場合は、「No」と判定する。「Yes」と判定した場合は、ステップS520に戻って処理を繰り返し、「No」と判定した場合は、関連度算出処理を終了する。
この結果、関連集合格納部105の関連度テーブル105A、Bには、ステップS510で作成された推薦基準集合K1の利用主体識別子それぞれに対応し、「アイテム推薦形式」および「カテゴリ推薦形式」に対応する関連集合が格納される。
なお、利用履歴格納部102に、図5(d)に示すようなカテゴリ利用履歴テーブル102Bが格納されている場合には、上述のステップS500〜ステップS550の処理におけるアイテム識別子をカテゴリ識別子に置き換えて同様の処理を行なうことにより、「カテゴリ推薦形式」に対応する関連集合を作成することができる。この方法では、ステップS550に相当する処理により関連カテゴリ集合が作成されるため、ステップS560を実行する必要がない。このため、「アイテム推薦形式」を実施せず、「カテゴリ推薦形式」のみ実施する場合には、効率的に処理を行なうことができる。
<価格影響度算出処理>
ステップS410における価格影響度算出処理を詳細に説明する。制御部110は、ステップS400により関連集合格納部105に格納された関連集合(関連識別子)を読み出し、価格情報格納部103を参照しながら、各関連識別子に対応する価格情報を価格影響度算出部106に入力し、価格影響度を算出させる。
例えば、関連識別子がアイテム識別子「ItemID−3」である場合は、図6(a)に示したアイテム価格情報テーブル103Aを参照し、その価格情報である「300円」を価格影響度算出部106に入力する。また例えば、関連識別子がカテゴリ識別子「CategoryID−3」である場合は、図6(b)に示したカテゴリ価格情報テーブル103Bを参照し、その価格情報である「6000円」を価格影響度算出部106に入力する。
価格影響度算出部106は、価格情報(価格)を入力Xとし、価格情報が推薦結果に与える影響を決める価格影響度を出力Yとする価格影響関数F(X)を内部の記憶領域に記憶している。
そして、価格影響度算出部106は、価格影響度算出部106または制御部110が備えるリアルタイムクロック等の計時機能を用いて、所定の時点と推薦情報の作成に係る時点との時間差、または所定の時点と推薦情報の提供に係る時点との時間差に応じて、価格影響関数の特性を変化させる。すなわち、所定の時点から、推薦情報の作成に係る時点または推薦情報の提供に係る時点までの経過時間に応じて、価格影響関数の特性を設定する。
この所定の時点としては、ユーザのアイテム利用意欲に係る可能性のある種々の時点を用いることができる。例えば、アイテム提供サービスが月額課金などの周期的な課金制度を採用している場合には、課金と引き換えに、ユーザの新たなアイテム利用権(新たなポイント)が発生する時点とすることができる。例えば、毎月1日午前0時に月会費として1000円の課金が発生し、1000円に相当するアイテム利用権(アイテムを利用するためのポイント)が、ユーザに付与されるサービスにおいては、毎月1日午前0時を所定の時点とすればよい。また、アイテム提供サービスが月額課金などの周期的な課金制度を採用していない場合には、一般的に多くの企業で給料が支給される日(例えば、毎月25日)や、ボーナスが支給される日(例えば、12月10日)など、ユーザが収入を得る確率の高い時点を用いればよい。また、株式市場の株価の指標値、企業の決算情報、景気動向指数、GDP(Gross
Domestic Product)等の経済指標など、経済に係る指標値、またはそれらの成長率が所定の条件を満たす時点を用いてもよい。例えば、経済指標が所定値以上になった時点や、経済指標が極大になる時点は、一般的にユーザの購買力が高く、ユーザのアイテム利用意欲も高い傾向にあると推定できる。
本実施形態においては、アイテム提供サービスが月額課金制度を採用しており、毎月1日午前0時に新たなアイテム利用権(アイテムを利用するためのポイント)が、ユーザに付与される場合を例に説明するが、これに限定されるものではない。また本実施形態においては、図14に示す推薦情報作成処理を実行する時点を所定の時点とする場合を例にして説明するが、これに限定されるものではない。例えば、作成した推薦情報をユーザに提供開始する予定日時や、提供開始から提供終了までの期間の中間時点など、推薦情報の提供に係る時点を所定の日時として用いてもよい。また、所定の時点と、推薦情報の作成に係る時点または推薦情報の提供に係る時点との時間差(経過時間)Tpを表現する単位として、秒単位、分単位、時単位、日単位、週単位など種々の単位を用いることができるが、本実施形態では、日単位を用いることとする。なお、本実施形態では、ユーザのアイテム利用意欲が大きくなる(例えば、極大)と推定される時点を所定の時点としているが、これとは逆に、利用意欲が小さくなる(例えば、極小)と推定される時点を所定の時点とすることも可能である。
価格影響度算出部106は、時間差Tpを算出し、その値に応じて、価格影響関数の特性を設定する。以下では、時間差Tpの値が3つの条件のどれに該当するか判定し、それぞれの条件に対応する3種類の関数を使う例を説明する。
Tpが小さい場合(Tp≦μ1である場合)、図16(a)に示すような関数F1(X)を用いる。ここでμ1は、例えば「10日」等の所定の定数である。関数F1(X)は、関数の定義域(0≦X≦Xγ)すべてにおいて、X1<X2である入力に対して、Y1<Y2が常に成立する関数である。すなわち、単調増加関数である。また、Xγは価格情報格納部103に格納されている価格情報の上限である。このように、価格情報格納部103に格納されている価格情報に応じて、関数の入力の上限を設定してもよいし、関数の入力の上限を特に設定しなくてもよい。このような全区間が単調増加の線形関数を用いると、アイテム(またはカテゴリ)の価格が高いほど、価格影響度が大きくなり、そのアイテム(またはカテゴリ)が推薦される確率が高まる。時間差Tpが比較的小さい場合には、ユーザが持つポイントが比較的多い(またはユーザがアイテム利用に使えるお金が比較的多い)可能性が高いので、価格の高いアイテム(またはカテゴリ)を推薦情報の中に多く含めると、アイテム提供サービス全体の売上を増大させる上で効果的である。なお本図の例のように、X=0のときにY=0となる関数を用いると、後述するように、価格が「0」の無料のアイテムおよびカテゴリを推薦結果に含めないことが容易にできる。
図16(a)に示した関数F1(X)は単調増加の線形関数であるが、それに限定される訳ではなく、非線形関数を用いることもできる。非線形関数を用いることにより、価格影響度をよりきめ細かく、高い精度で算出することができる。
時間差Tpが中程度である場合(μ1<Tp≦μ2である場合)には、図16(b)に示すような関数F2(X)またはF2b(X)を用いる。ここで、μ2は、例えば「20日」等のμ1<μ2を満たす所定の定数である。時間差Tpが中程度である場合には、ユーザが持つポイント(あるいはユーザがアイテム利用に使えるお金)が、時間差Tpが小さい場合に比べて、減少している可能性が高い。従って、図16(b)に示すような、高い価格のアイテムの価格影響度があまり大きくならない特性を持つ関数を用いるのがよい。
関数F1(X)では、X2とXγとの間の区間も単調増加であるため、価格が高いアイテムの価格影響度は非常に大きくなる。関数F1(X)では、入力XがX2より大きいXγにおいて、出力YγはY2よりも大きな値となる。一方、関数F2(X)では、X2とXγとの間の区間では、価格影響度が増加せず一定であり、Y2=Yγであるため、価格が高いアイテムの価格影響度も極端には大きくならない。また、関数F2b(X)では、X2とXγとの間の区間では、価格影響度が逆に減少する(Yγ<Y2)。このため、関数F2(X)またはF2b(X)を用いると、関数F1(X)に比べて、推薦情報に価格が高いアイテムが含まれる確率が低下する。また、図16(b)において、0≦X<x1の区間が、単調増加ではなく、一定の出力となる特性の関数を用いてもよい。そのような特性の関数を用いることにより、図16(b)に示す関数F2(X)およびF2b(X)に比べて、価格の安いアイテムも推薦情報に入り易くなる。
時間差Tpが大きい場合(μ2<Tp、またはμ2<Tp≦μ3である場合)には、図16(c)に示す関数F3(X)を用いる。ここでμ3は、例えば「30日」等のμ2<μ3を満たす所定の定数である。アイテム提供サービスが月額課金であり、毎月1日から月末までが1つのまとまった期間として扱われる場合は、μ3が月ごとの月末の日に相当するように調整するとよい。なお本実施形態においては、翌月1日の午前0時の時点で、所定の時点がそれまでの時点よりも1ヶ月後に更新されるため、μ3を使わなくても処理可能である。本図に示すように、関数F3(X)は、X3とX4の2箇所(X3<X4)においてピーク(極大点)を持つ関数である。このように、時間差Tpに応じて、関数のピークの個数を変化させてもよい。X3における出力値Y3と、X4における出力値Y4は、同じであっても異なっていてもよい。
時間差Tpが大きい場合(本実施形態では、毎月の下旬に相当)、ユーザが持つポイント(あるいはユーザがアイテム利用に使えるお金)の額は、ユーザによって大きく異なる傾向にある。一般的には、時間の経過に従って、ユーザが保有するポイント数は減少するが、アイテム提供サービスをあまり利用しないユーザのポイント数は、ほとんど減少しない。このため、月の下旬にユーザが保有するポイント数は、個人差が大きく、少ないポイントしか保有していないユーザ群と、多くのポイントを保有しているユーザ群の2つのグループに分かれる傾向がある。更に、当月分のポイントが月末で無効になる課金制度を採用するアイテム提供サービスにおいては、自分の保有するポイントを月末までに使い切ろうとする心理がユーザに働く、このため、図16(c)に示すような関数F3(X)を用いて、価格の安いアイテムと、価格の高いアイテムの両方とも推薦情報に入り易くすることにより、多くのユーザの購入意欲を高め、サービス全体の売上を増大させることにつながる。
図16に示す関数F1(X)〜F3(X)は、直線で構成される関数であるが、図17に示すような滑らかな非線形関数を用いてもよい。例えば、図16(a)のF1(X)の代わりに図17(a)に示す関数F4(X)を用いてもよい。この関数は、中央部分で最も勾配(微分係数)が大きく、両側に行くほど勾配が小さくなる特性を持つ。例えば、ロジスティック関数を用いればこのような特性が得られる。本図の例のように滑らかな関数を用いると、価格影響度が急激に変化するのを防ぐことができる。
同様に、図16(b)のF2(X)およびF2b(X)の代わりに図17(b)に示す関数F5(X)を、図16(c)のF3(X)の代わりに図17(c)に示す関数F6(X)用いてもよい。更に、図18(a)に示すような離散的な関数(階段状の関数)F7(X)を用いてもよい。本図の線分の端点の黒丸はその値を含み、白丸はその値を含まないことを示している。Y方向の値は2種類以上であればよい。ただし、推薦情報に含めるアイテム(またはカテゴリ)を適切に順位付けるという観点からは、Y方向の値の種類がある程度多い方が望ましく、3種類以上あることが望ましい。本図の例のように離散的な関数を用いると、処理が比較的単純になり、情報選択装置10の処理負荷を低減することができる。
また、図18(b)に示すような関数F8(X)〜F10(X)を用いてもよい。これら3つの関数は、X≦Xαで最小値Yα、X≧Xβで最大値Yβをとる点では共通であるが、その間のカーブの形状(勾配)が異なっている。このため、所定の出力値(例えば、Y=Yc)を得るための入力値が3つの関数で異なっている。時間差Tpに応じて、F8(X)〜F10(X)を使い分けてもよい。これら3つの関数は、単調減少区間を持たないため、価格の高いアイテムほど価格影響度が高くなるが、その度合いが関数によって異なっている。F8(X)では、価格が比較的安い領域(X<Xc)の出力と、最大出力Yβとの差(倍率)が大きいため、価格が比較的安いアイテムの価格影響度に比べて、価格の高いアイテムの価格影響度が非常に大きくなる。すなわち、3つの関数の中で、価格の高いアイテムの優先度合いが最も高い。このため、時間差Tpが小さいときに、ユーザの購買力が最も大きいと判断すれば、3つの関数の中では関数F8(X)を使うとよい。
関数F10(X)は逆に、価格が比較的の出力と、最大出力Yβとの差(倍率)が小さいため、価格が比較的安いアイテムの価格影響度に比べて、価格の高いアイテムの価格影響度はそれほど大きくない。このため、F8(X)に比べると、推薦情報に価格の安いアイテムが入り易い。時間差Tpが大きいときに、ユーザの購買力が最も低いと判断すれば、3つの関数の中では関数F10(X)を使うとよい。関数F9(X)は、F8(X)とF10(X)の中間的な性質である。時間差Tpが中程度であるときに、ユーザの購買力も中程度であると判断すれば、3つの関数の中では関数F9(X)を使うとよい。
上述した関数F1(X)〜F10(X)はあくまでも例示であり、この他に、対数関数や指数関数を用いてもよい。なお、関連識別子がアイテム識別子であるか、カテゴリ識別子であるかに応じて、特性の異なる関数を用いてもよい。
価格影響度算出部106は、価格影響関数F(X)を数式として内部の記憶領域に記憶しておき、入力が与えられるごとに、その数式に従って価格影響度を算出してもよい。この方式によれば、必要なメモリ量を少なくすることができ、価格影響度を精度よく(高い解像度で)算出することができる。
あるいは、関数F(X)に従って、入力Xに対する出力Yをあらかじめ算出しておき、算出結果の(X,Y)の情報を記憶領域に格納しておいてもよい。例えば、記憶領域のXに相当するアドレスにYの値を格納するLUT(Look-Up
Table)方式を用いることができる。この方式によれば、入力が与えられてから出力するまでに、数式を計算する必要がないので、処理量を少なくすることができ、応答時間を短くすることができる。また価格影響度の値が所定の範囲(0以上1以下など)に収まるような正規化を行なってもよいし、行なわなくてもよい。
<選択指標算出処理>
ステップS420における選択指標算出処理を詳細に説明する。制御部110の指示を受けた情報選択部107は、ステップS410で価格影響度が算出された各関連識別子について、その関連度Wと価格影響度Yとを用いて選択指標Sを算出する。この選択指標Sは、関連度Wが大きいほど、かつ価格影響度が大きいほど大きな値となる数値であり、以下の方法で算出する。
選択指標算出の第1の方法は、[数5]を用いる方法である。
すなわち、利用主体識別子iと関連識別子jとの関連度W[i][j]を基数としてγaを指数とする累乗値を算出し、価格影響度Y[j]を基数としてγbを指数とする累乗値を算出し、それらの乗算値を用いて選択指標S[i][j]を算出する方法である。ここで、βc、γbは0より大きな定数である。また、γaも基本的に0より大きな定数であるが、後述するように、関連度を用いずに選択指標を算出することも可能であり、その場合は、γa=0、γb=1とすることに相当する。
この第1の方法では、関連度と価格影響度が両方とも大きい関連識別子が推薦結果に入りやすい。また図16(a)に示したような、価格情報が0のときに価格影響度も0になる特性の関数を用いた場合、価格が0の無料アイテムの選択指標は0になるので、無料アイテムを推薦結果から除外することも簡単にできる。さらにγaおよびγbを調整することにより、推薦結果に入る関連識別子を変えることができる。
例えば、γaを大きくすることにより、関連度W[i][j]が大きい関連識別子がより推薦結果に入りやすくなる。またγbを大きくすることにより、価格影響度Y[j]が大きい関連識別子がより推薦結果に入りやすくなる。なお、βc=γa=γb=1として、関連度と価格影響度との積を選択指標にしてもよい。
選択指標算出の第2の方法は、[数6]を用いる方法である。
すなわち、関連度W[i][j]とβaとの乗算値と、価格影響度Y[j]とβbとの乗算値を算出し、それらの加算値を選択指標S[i][j]とする方法である。ここで、βaおよびβbは重み係数であり、βbは0より大きな定数である。また、βaも基本的には0より大きな定数であるが、後述するように、関連度を用いずに選択指標を算出することも可能であり、その場合は、βa=0、βb=1とすることに相当する。[数6]は、関連度と価格影響度とをそれぞれ重み付けして加算した値といえる。
第2の方法でも、関連度と価格影響度が両方とも大きな関連識別子が最も推薦結果に入りやすいが、第1の方法と比べると、関連度と価格影響度のいずれかが大きい関連識別子も推薦結果に比較的入りやすい。さらにβaおよびβbを調整することにより、推薦結果に入る関連識別子を変えることができる。
例えば、βaを大きくすることにより、関連度W[i][j]が比較的大きい関連識別子がより推薦結果に入りやすくなる。またβbを大きくすることにより、価格影響度Y[j]が比較的大きい関連識別子がより推薦結果に入りやすくなる。なお、βa=βb=1として、関連度と価格影響度との和を選択指標にしてもよい。
選択指標算出の第3の方法は、[数7]を用いる方法である。
すなわち、関連度W[i][j]の対数値とβdとの乗算値と、価格影響度Y[j]の対数値とβeとの乗算値を算出し、それらの加算値を選択指標S[i][j]とする方法である。ここで、βdおよびβeは0より大きな定数であり、重み係数である。[数7]は、関連度の対数値と価格影響度の対数値とをそれぞれ重み付けして加算した値といえる。また、βdおよびβeを調整することにより、推薦結果に入る関連識別子を変えることができる。なお、βd=βe=1として、関連度と価格影響度との和を選択指標にしてもよい。第3の方法は、関連度または価格影響度のダイナミックレンジが広い場合や、両者のダイナミックレンジが大きく異なる場合に適している。
なお、関連度の代わりに、関連度の順位を用いて、順位が高いほど、かつ価格影響度が大きいほど、大きな値となるように選択指標を算出してもよい。例えば、推薦情報格納部108と同様に、関連度が大きいほど高い順位を示す番号(順位番号)を関連集合格納部105に格納しておき、それを用いるようにすればよい。
また、関連度および価格影響度だけでなく、さらに他の情報を用いて選択指標を算出してもよい。例えば、情報選択部107がアイテム属性格納部101のアイテム情報テーブル101Aを参照して、関連識別子jのアイテム時期情報T[j]を読み出し、関連度W[i][j]が大きいほど、かつ価格影響度Y[j]が大きいほど、かつアイテム時期情報T[j]が新しいほど(処理時点とアイテム時期情報との差が小さいほど)、大きな値となるように選択指標を算出してもよい。
<推薦情報選択処理>
ステップS430における推薦情報選択処理を詳細に説明する。ステップS430において、情報選択部107は、ステップS420で算出された選択指標に基づいて、関連集合の中から関連識別子を選択する。
具体的には、選択指標S[i][j]が所定値θ1以上の関連識別子を関連集合から選択する。または、選択指標S[i][j]が大きい順に所定数η1を超えない数の関連識別子を選択してもよい。例えば、関連集合の要素数が所定数η1に満たない場合は、関連集合の要素をすべて選択し、そうでない場合は、選択指標が大きい順に所定数η1の関連識別子を選択すればよい。
さらに、選択指標が所定値θ2以上の関連識別子を対象にして、選択指標が大きい順に所定数η2を超えない範囲で選択してもよい。この場合、選択指標がθ2以上の関連識別子の数がη2に満たない場合は、θ2以上の関連識別子をすべて選択する。また、利用主体識別子iに対して、所定数η3個以上の関連識別子が選択できるように所定値θ3を利用主体識別子ごとに設定し、選択指標がθ3以上の関連識別子を選択してもよい。
なお、利用履歴格納部102を参照しながら、利用主体識別子iに対応するユーザが既に利用したアイテムおよびカテゴリを特定し、それらを除外して(利用済み除外処理を行なって)選択集合を作成してもよい。ユーザが1回しか同じアイテム(カテゴリ)を購入しない性質を持つようなアイテム提供サービスでは、このステップS430において利用済みのものを選択集合から除外しておくと、推薦情報格納部108の記憶容量を節約できる。ステップS430において利用済み除外処理を行なう場合、ステップS170での利用済み除外処理を省略してもよいし、再度行なってもよい。ステップS430を実行した後、ステップS170を実行するまでの間に、新たな利用履歴が格納される可能性がある場合は、両方のステップで利用済み除外処理を行なう方が、推薦精度の向上の面では確実である。
このような方法で選択された関連識別子の選択指標に従って、推薦順位を付与する。すなわち、選択指標が大きいほど、高い推薦順位を付与する。そして、利用主体識別子と、関連識別子と、推薦順位とを対応させて、図7(a)、図7(b)に示す形式で、推薦情報テーブル108A、108Bを推薦情報格納部108に格納させる。以上、推薦情報選択処理を説明した。
第1実施例の最後に、図19を用いて、推薦情報の具体例を説明する。関連集合格納部105には図19(a)に示すような「アイテム推薦形式」のデータが格納されているものとする。本図に示すように、「UserID−1」の関連集合は、「ItemID−3」〜「ItemID−7」の5つのアイテムである。「UserID−2」の関連集合もまったく同じ5つのアイテムであるが、各々の関連度は異なっているものとする。また、図19(b)に示すように価格情報格納部103には、「ItemID−1」〜「ItemID−7」の7つのアイテムの価格情報が格納されている。
説明を簡単にするため、時間差Tpが小さく、価格影響関数として図16(a)に示した関数F1(X)を用いることとし、この関数の傾きが「1」であるとする。情報選択部107では、[数6]を用いて選択指標を算出し、βc=γa=γb=1であるとする。また、情報選択部107は、選択指標の大きい順に3つのアイテムを選択して推薦情報を作成するものとする。
以上の条件において、仮に、価格情報を使わずに関連度だけでアイテムを選択したとすると、図19(a)から明らかなように、「UserID−1」に対応する推薦アイテムは、1位が「ItemID−3」、2位が「ItemID−4」、3位が「ItemID−5」になる。これらの価格は各々「1000円」「200円」「400円」である。
一方、関数F1(X)を用いて選択指標を算出すると、「ItemID−3」については、「1000×1.0=1000」となる。他のアイテムについても同様に算出した結果を図19(c)に示す。本図において選択指標の大きい順に「UserID−1」に対するアイテムを3つ選択すると、1位が「ItemID−6」、2位が「ItemID−3」、3位が「ItemID−5」となる。各々の価格は「1500円」「1000円」「400円」である。このように、関数F1(X)を用いると、関連度だけでアイテムを選択する場合に比べて、価格の高いアイテムを推薦結果に入れることができる。
また、価格情報を使わずに関連度だけでアイテムを選択したとすると、「UserID−2」に対応する推薦アイテムは、1位が「ItemID−4」、2位が「ItemID−5」、3位が「ItemID−7」になる。これらの価格は各々「200円」「400円」「800円」である。
一方、関数F1(X)を用いて選択指標を算出すると、1位が「ItemID−7」、2位が「ItemID−5」、3位が「ItemID−4」となり、各々の価格は「800円」「400円」「200円」である。この場合は3つのアイテムの価格の合計は、関連度のみを用いた場合と同じになるが、価格の高いアイテムが上位の推薦順位となり、ユーザの目に留まりやすくなる。
また、「UserID−1」に対する推薦結果には、価格の高い「ItemID−6」と「ItemID−3」が入るが、「UserID−2」に対する推薦結果には、これらが入らない。このことからも分かるように、価格影響関数として、単調増加関数である関数F1(X)を用い、価格影響度と関連度とを用いて選択指標を算出すると、ユーザと推薦アイテム/カテゴリとの関連度が高い場合、すなわちそのユーザが推薦アイテム/カテゴリを気に入る可能性が高い場合にのみ価格の高いアイテムが推薦されるので、ユーザに不自然な印象を与えるリスクが少ない。このため、時間差Tpが小さい時期(ユーザのアイテム利用意欲が一般的に旺盛な時期)に、そのような推薦情報を提供することにより、アイテム提供サービス全体の売上増大につながると期待できる。
なお、上述の説明では、関数F1(X)を価格影響関数に用いる一例を説明したが、時間差Tpに応じて、これとは特性の異なる関数を用いることにより、図19(c)に示す選択指標と異なる値が算出され、推薦情報に入るアイテムが時間差Tpに応じて変化することは明らかである。例えば、価格の安いアイテムを優先的に推薦情報に入れたり、価格が中程度のアイテムを優先的に推薦情報に入れることが柔軟にできる。
本実施形態は、インターネットサービスで広く採用されている月額課金制度、多くの企業で採用されている月給制度などを鑑み、ユーザがアイテム利用に使えるお金(ポイント等を含む)が時間的、周期的に変化することに着目したものであり、特許文献2に開示された技術のように、厳重な管理が必要となるユーザの金融資産の情報を一切用いていないため、幅広い事業、サービスに応用することが可能である。月額課金制度において新たなアイテム利用権がユーザに付与される時点や、給料日を所定の時点とし、この所定の時点と推薦情報の作成に係る時点との時間差、または所定の時点と推薦情報の提供に係る時点との時間差であるTpに応じて、価格影響関数を設定しているため、推薦情報に入れるアイテムの価格帯を適切なタイミングで調整することができる。このため、推薦情報の提供により、ユーザの購入意欲が増大する可能性を従来技術より大きくすることができ、アイテム提供サービスの売上増大につながる。
また、従来技術では、推薦アイテムの価格が所定の範囲(所定の価格帯)に制限されてしまうため、推薦結果のバリエーション(多様性)が少なかったり、推薦アイテム数が少ない場合があった。しかしながら、図19に示す例で、「UserID−1」の推薦アイテムの価格が、「1500円」「1000円」「400円」となり、これらの間の「800円」が抜けていることからも分かるように、本実施例の方法では、推薦アイテム/カテゴリの価格が所定の範囲に制限されていないため、従来よりも推薦結果のバリエーションが多くなり(多様性があり)、長期間にわたり同じユーザに推薦情報を提供する場合であっても、ユーザが推薦情報に飽きてしまうことが少なく、継続的に推薦情報を利用してもらうことができる。
また、従来技術では、所定の条件を満たすアイテム(所定の価格帯のアイテム等)が無い場合や、少ししか存在していない場合には、十分な数の推薦情報を提供することができなかった。一方、第1実施例の方法によれば、所定の価格帯のアイテムが無い場合や、少ししか存在していない場合であっても、十分な数の推薦情報を精度良く選択して提供することができる。
また逆に、所定の条件を満たすアイテム(所定の価格帯のアイテム等)が多数存在する場合、従来技術では、それらを精度良く絞り込むことができず、推薦情報が多くなり過ぎる場合があった。推薦情報は本来、多くの情報の中からユーザに有用な情報を絞り込んで提供するものであり、端末装置30の表示装置において、推薦情報が表示できる領域にも限りがあることから、推薦情報を必要十分な数にすることは非常に重要である。第1実施例の方法によれば、算出した選択指標に応じて推薦順位を決定することができる。そして、推薦順位の上位のアイテムを優先的にユーザに提供するので、必要十分な数のアイテムを精度良く絞り込んでユーザに提供できる。
アイテム提供サービスを行なう事業者にとって、推薦情報を提供する目的は、推薦情報によってアイテム利用が促進され、アイテム提供サービスの売上を増大させることである。すなわち、売上増大につながる実効性のある推薦情報が要求される。この目的を達成するためには、ある程度の数の推薦情報が必要であり、多過ぎず、少な過ぎでもない適切な数(量)の推薦情報をユーザに提供する必要がある。第1実施例の方法によれば、適切な数(量)の推薦情報を精度良く選択してユーザに提供できるので、アイテム提供サービスの売上を増大させる実効性が期待できる。
なお、第1実施例では、情報選択装置10が、価格影響度を算出し、選択指標を算出して推薦情報を作成するようにしていたが、これらの処理、あるいは、これらの処理の一部を端末装置30側で行なうようにしてもよい。
この場合、端末装置30のアプリケーション部304に、価格影響度算出部106および情報選択部107に相当する動作を行なわせるようにする。例えば、ステップS160に先立つ適当なタイミングで、アプリケーション部304が、アイテム提供サーバ20を経由して、あるいは直接情報選択装置10から、アイテム情報テーブル101A、カテゴリ情報テーブル101B、関連度テーブル105A、105B、およびアイテム価格情報テーブル103A、カテゴリ価格情報テーブル103Bのデータを取得する。このとき、各々のテーブルの全部のデータを取得してもよいし、リクエスト利用主体識別子に関係するデータ等の必要なデータのみを取得するようにしてもよい。そして、ステップS160において、推薦リクエストを送信する代わりに、上述の手順に従って価格影響度を算出し、算出した価格影響度と取得した関連度とを用いて、選択指標を算出することで推薦情報を作成する。具体的には、ステップS410、S420、S430、S170に相当する処理をアプリケーション部304が実行すればよい。この場合、アプリケーション部304に、データ取得部、価格影響度算出部、情報選択部が形成されることになる。以下の実施例においても同様に、情報選択装置10の一部の動作を端末装置30で行なうようにしてもよい。
また、第1実施例では、価格影響度と関連度とを用いて選択指標を算出する例を説明したが、関連度を用いずに、選択指標を算出してもよい。例えば、関連度算出部104および関連集合格納部105を省略し、その代わりに、利用履歴格納部102のデータを用いて、多くのユーザの間で人気の高いアイテムの情報を作成する人気度算出部(図示せず)を設け、この人気度を関連度の代わりに用いて(人気度と価格影響度とを用いて)選択指標を算出してもよい。具体的には、複数のユーザの利用履歴を用いて、アイテムごとの利用数や利用人数を集計し、人気度とすることができる。そして、[数6]または[数7]において、関連度の代わりに人気度を用いて、選択指標を算出すればよい。人気度が高く、かつ価格影響度の高いアイテムの選択指標が大きな値となるため、そのようなアイテムが推薦情報に入り易くなる。人気度を用いる場合、全てのユーザに同じアイテムが推薦されるので、ユーザ個人ごとに異なる関連度を用いる場合に比べて、推薦情報がユーザ個人の嗜好に合致する可能性は低下するが、一般的に人気の高いアイテムなので、推薦効果が期待できる。また、時間差Tpに応じて、価格影響関数の特性が変わるので、関連度を用いる場合と同様に、推薦情報に入れるアイテムの価格帯を適切なタイミングで調整することができる。
また、アイテム提供サービスの提供者(事業者)が、ユーザに対して薦めたいアイテムの集合と、それぞれのアイテムのお薦め度合いを示す推薦度(提供者推薦度)を用意した上で、提供者推薦度と価格影響度とを用いて、選択指標を算出してもよい。この場合も全てのユーザに対して同じ推薦情報が提供されることになるが、アイテムに関する知識の豊富な専門家(事業者)が選んだアイテムなので、推薦効果が期待できる。推薦度が高く、かつ価格影響度の高いアイテムの選択指標が大きな値となるため、そのようなアイテムが推薦情報に入り易くなる。また、人気度と推薦度と価格影響度とを組合せて、人気度が高く、かつ推薦度が高く、かつ価格影響度が高いほど、選択指標が大きな値となるように算出してもよい。また、関連度と人気度と推薦度と価格影響度とを組合せて、関連度が高く、かつ人気度が高く、かつ推薦度が高く、かつ価格影響度が高いほど、選択指標が大きな値となるように算出してもよい。
更に、価格影響度そのものを選択指標としてもよい。例えば、価格情報格納部103に格納されている全てのアイテム(またはカテゴリ)について価格影響度を算出し、価格影響度の大きさに基づいて推薦情報を作成してもよい。この場合、選択指標の算出処理を省略できるので、情報選択装置10の処理量を低減することができる。時間差Tpに応じて、
価格影響関数の特性が変わるので、この場合であっても、従来技術に比べて、入手が困難であり、厳重な管理が必要となる金融資産等の個人情報を用いることなく、推薦情報に入れるアイテムの価格帯を適切なタイミングで調整することができる。価格影響関数を用いているため、どの価格をどの程度優先させるかを非常に柔軟に設定/変更できる。また、図16および図17に示すような連続量を出力する関数を用いた場合、または図18(a)に示す離散関数が3値以上の値を取るようにすれば、時間差Tpがある値となる瞬間(ある瞬間)に限定したとしても、多値の価格影響度を算出しているため、推薦アイテムの順位付けや推薦アイテムの絞り込みを、従来技術よりも適切に行うことができる。
(実施例2)
本実施形態に係るネットワークシステムの第2実施例について説明する。第2実施例では、端末装置30を利用するユーザが、好みに応じて、価格影響度を調整することができるようになっている。第2実施例において、アイテム提供サーバ20および端末装置30は、第1実施例と同様とすることができる。
図20は、第2実施例における情報選択装置10bの構成を示すブロック図である。本図に示すように、情報選択装置10bは、アイテム属性格納部101と、利用履歴格納部102と、価格情報格納部103と、関連度算出部104と、関連集合格納部105と、価格影響度算出部106bと、情報選択部107bと、推薦情報格納部108と、送受信部109と、制御部110bとを備えて構成されている。また、情報選択装置10には、情報選択装置10の管理者向けに必要な情報を表示するための表示装置120と、管理者が操作を行なうためのキーボード、マウス等の入力装置130とが接続されている。
すなわち、第2実施例の情報選択装置10bは、第1実施例の情報選択装置10と比べて、価格影響度算出部106、情報選択部107、制御部110の動作が一部異なる構成となっている。
制御部110bは、第1実施例と同様に、所定のタイミングで推薦情報作成動作を開始する。ただし第2実施例では、図14に示した推薦情報を作成する動作のフローチャートにおいてステップS400が終了した段階で推薦情報作成動作を終了する。ステップS410以降に相当する処理は、後述するステップS170bにおいて、表示用推薦データを作成する際に行なう。
第2実施例におけるシステム全体の動作は、処理ステップ間の関係において図11に示したフローチャートと同様であり、処理ステップの具体的内容において第1実施例と一部異なる。以下では、第1実施例と動作が異なる処理ステップにについて説明する。異なる処理ステップについては符号の末尾に「b」を付加して表記する。
図11のステップS130bにおいて、アイテム提供サーバ20の制御部205は、応答データを端末装置30に送信する。第2実施例における応答データ(画面表示情報)には、ユーザが価格影響度を調整するための操作画面を表示する情報が含まれている。なお、情報選択装置1の表示制御情報作成部(図示せず)が、このような応答データを作成し、端末装置30に送信するようにしてもよい。
ステップS140bにおいて、端末装置30は、アイテム提供サーバ20または情報選択装置1から受信した応答データに基づき、表示装置320にその情報を表示する。表示画面の一例を図21に示す。図12に示した第1実施例の表示画面との違いは、画面右上に「価格影響度の調整操作」ボタンが表示される点である。
「価格影響度の調整操作」ボタンは、価格影響度を調整するために必要なデータ(価格影響度調整データ)をユーザに入力させるためのGUI(Graphical User
Interface)を表示させるためのボタンであり、例えば、図22に例示するような画面を表示させることができる。画面移動ではなく、図22に示す情報を、図21の表示画面に含めるようにしてもよい。
図22(a)に示す例は、推薦結果に入れるアイテムまたはカテゴリの中心的な価格帯を指定するための画面である。複数の期間ごとに、5つの選択肢に対応して、円形のラジオボタンが表示されている。ラジオボタンの横の「1」〜「5」の数字は、ラジオボタンを識別するための番号であり、ユーザに選択されたラジオボタンの番号を端末装置30が読み取れるようになっている。
本図に示す例では、2つの期間が設定されており、それぞれの期間の条件として、月初(毎月1日)からの経過日Tpが表示されている。ユーザは、「10日」、「31日」といった期間の定義(経過日の範囲)を自由に設定、変更できる他、「期間の追加」をボタンを使って、自由に期間を追加できる。例えば、1ヶ月を6つの期間に分ける設定することも可能である。また、期間を選択した状態で、「期間の削除」ボタンを押すと、その期間を削除することができる。ユーザは、期間の設定、およびそれぞれの期間における推薦情報に入れるアイテム(またはカテゴリ)の価格帯に関する希望を設定した後、「決定」ボタンを押すことで、設定完了を端末装置30に伝えることができる。
またユーザは、「キャンセル」ボタンを押すことで、前の設定状態に戻すことができる。本図に示す例では、「非常に高いもの中心に推薦」、「やや高いもの中心に推薦」、「標準」、「やや安いもの中心に推薦」、「非常に安いもの中心に推薦」など、やや抽象的な表現の選択肢が用意されており、推薦情報に優先的に入れる価格帯をユーザが選択できる。選択肢の表現(文言)がやや抽象的であるため、多様なアイテム、カテゴリが提供されている場合でも、同じ操作画面が使えるというメリットがある。
図22(b)に示す例は、図22(a)に示した例と同じく、推薦結果に入れるアイテムまたはカテゴリの価格を指定するための画面であるが、推薦結果に優先的に入れる中心価格を具体的に指定するものである。具体的な数字が表示されるので、ユーザにとって分かり易いメリットがある。また、中心価格を示す数字をユーザが自由に設定できるようにしてもよい。
図22(c)に示す例は、推薦結果に入れる価格パターンを指定するための画面である。「高いものを推薦」、「高いものと安いものを両方推薦」、「中程度の価格のものを推薦」、「特定の価格に偏らずに推薦」、「安いものを推薦」などの選択肢が表示される。
ユーザは、図22に例示した画面で「決定」を選択した後、図21に示す関連リンク(「関連アイテム表示」ボタンまたは「関連カテゴリ表示」ボタン)を選択することで、価格に関する自分の好みが反映された推薦情報を取得することができる。なお、図22に示した価格影響度の調整操作用画面は、あくまでも一例であり、他の方法で、価格影響度の調整を行なってもよい。例えば、図16に示すような価格影響関数のグラフを期間ごとに表示し、ユーザがマウス、タッチパネル等を用いて、グラフの形状を直接指定したり、修正できるようにしてもよい。
図11のステップSl60bにおいて、端末装置30は、関連リンクに対応するURLに推薦リクエストを送信する。この推薦リクエストには、利用主体識別子と、関連アイテムリンクであるか関連カテゴリリンクであるかを示すリンク種別情報とに加えて、図22に示した画面で指定された価格影響度調整データが含まれている。例えば、設定された期間の数、それぞれの期間の定義情報、図22に示すラジオボタンの中でユーザに指定されたラジオボタンを識別するための「1」〜「5」などの番号を価格影響度調整データとすることができる。
ステップS170bにおいて、情報選択装置10bの制御部110bは、送受信部109を介して、推薦リクエストを受信し、それに含まれるリクエスト利用主体識別子に対応する表示用推薦データを作成して端末装置30に送信する。以下では、このステップS170bの処理を詳細に説明する。
ステップSl70bでは、第1実施例の推薦情報作成動作の一部である、図14に示したステップS410〜S430に相当する処理(ステップS410b〜S430b)を行なった後に、図示しないステップS450で表示用推薦データを作成する。なお、第2のタイミングで推薦情報を作成する場合は、関連集合を作成した後(ステップS400の後)に、ステップS410b〜440bを実行すればよい。
ステップS410bにおける価格影響度算出処理を詳細に説明する。制御部110bは、関連集合格納部105の中から、推薦リクエスト(リクエスト利用主体識別子)に一致する利用主体識別子を特定し、その利用主体識別子に対応する関連集合(関連識別子)を読み出す。以下では、ここで読み出された関連集合を集合Ψとする。
そして価格情報格納部103を参照しながら、集合Ψの各関連識別子に対応する価格情報を取得し、その価格情報と、受信した価格影響度調整データとを価格影響度算出部106bに入力する。
第2実施例において、価格影響度算出部106bは、ユーザによって入力された価格影響度調整データに応じて、価格情報を入力Xとし価格影響度を出力Yとする価格影響関数F(X)の特性を変化させる。本実施形態においては、所定の時点を毎月1日午前0時とし、時間差Tpは、ステップS410bを実行する時点の毎月1日からの経過日数(経過時間)とする。価格影響度算出部106bは、時間差Tpを算出し、ユーザによって入力された価格影響度調整データの中のどの期間に該当するか判定する。そして、その期間に対応する関数を用いて、価格影響度を算出する。例えば、Tpが15日であり、期間1が10日以下、期間2が10日より大きく31日以下である場合、期間2の関数を用いる。この関数(対応規則)は、第1実施例と同様に、図16〜図18に示したような種々の特性の関数を用いることができる。図23は、価格影響関数F(X)の特性の変化の例を示す図である。
図23(a)は、図22(a)の5つの選択肢に対応する5つの関数の一例を示す図である。本図の関数Fa1〜Fa5の番号は、それぞれ図22(a)の選択肢1)〜5)に対応している。例えば、Fa1(X)は、選択肢1)に対応する関数である。Fa1(X)は、X≦Xa1においてY=Ya、X=Xc1で最大値Yc、X≧Xb1において、Y=Yaとなる関数である。他のFa2〜Fa5も同様な特性を持つ関数である。それぞれの関数が最大値(この関数の場合は極大値でもある)となるXはXc1<Xc2<Xc3<Xc4<Xc5であることから明らかなように、関数番号の大きな関数ほど、価格の高いアイテム(カテゴリ)の価格影響度が大きくなるため、価格の高いアイテム(カテゴリ)が推薦情報に入り易くなる。
なお、本図の例では、各関数の出力の最小値はすべてYa、最大値はすべてYcとしているが、関数ごとに最小値が異なっていてもよいし、関数ごとに最大値が異なっていてもよい。最小値がある程度大きい(0より大きな値の)関数を用いることで、どのような価格のアイテム(カテゴリ)も推薦情報に入る確率を0より大きな値にできるので、推薦情報に入れるアイテム(カテゴリ)の数を十分確保し易いというメリットが得られる。また本図の例のように、関数同士が一部重なっていてもよいし、重なっていなくてもよい。また、同じ形状の関数ではなく、関数番号ごとに関数の形状が異なっていてもよい。
また、図22(b)に示した価格影響度の調整操作部で指定された価格影響度調整データと、関数Fa1〜Fa5とを対応させることもできる。この場合は、それぞれの関数の最大値をとるXの値Xc1〜Xc5を、図22(b)の中心価格(500円、700円、1000円、1500円、2000円)に対応させればよい。
次に、図22(c)に示す価格影響度の調整操作部の選択肢と、関数との対応付けの一例を説明する。図22(c)に示す選択肢のうち、「1)安いものを推薦」、「3)中程度の価格のものを推薦」、「5)高いものを推薦」は、それぞれ図23(a)のFa1、Fa3、Fa5を用いればよい。また「4)高いものと安いものを両方推薦」は、図23(b)のFa6に対応させればよい。この関数は、X≦Xa6、Xb6≦X≦Xa7、Xb7≦XでY=Ya、X=Xc6およびX=Xc7で最大値(極大値)としてY=Ycを取る関数である。Xc6(安い)とXc7(高い)の2つの価格帯を中心に価格影響度が大きくなる。また、「2)特定の価格に偏らずに推薦」は、図23(b)のFa7に対応させればよい。この関数は、Xの値によらずYが一定値(Yd)となるため、全ての価格に対して価格影響度が一定となる。このように、出力が一定値となる関数を用いてもよい。
また、対応する調整操作部の選択肢は図示していないが、「1)高いものを極わずかに優先」、「2)高いものを少し優先」、「3)高いものを中程度に優先」、「4)高いものをかなり優先」、「5)高いものを大幅に優先」などの選択肢を用意し、図23(c)に示す関数Fb1〜Fb5に対応させてもよい。これらの関数は、全て単調減少区間を持たないため、価格が高いほど価格影響度が高くなり、価格の高いアイテムほど優先されるが、その優先度合いが関数によって異なる。各関数のカットオフ点(出力が最低値から増加に転じる点)に対応する入力値Xαは5つとも同じであるが、そのときの出力値Yα(Yα1〜Yα5)が異なっている。また、飽和点の入力値Xβは5つとも同じであるが、出力Yβ(Yβ1〜Yβ5)が異なっている。このため、各関数の単調増加区間の傾きが異なっており、Fb1の傾きが最も小さく、Fb5の傾きが最も大きい。これらの関数は、添字が大きい関数ほど、所定の区間における出力最大値と出力最小値との差(出力最小値に対する出力最大値の倍率)が大きくなる傾向を有している。このため、添字の小さい関数を用いると、添字の大きな関数に比べて、推薦情報に価格の安いアイテム(カテゴリ)が入りやすくなる。
図23に示した関数はあくまでも例示であり、図18(a)に示したような階段状の離散的特性を持つ関数や、図17に示したような滑らかな関数を用いてもよい。また、ユーザが選択できる価格影響度調整データの種類と、これに対応する関数の種類は、上記の例で示した5種類に限られない。また、期間ごとに選択できる関数は、共通であっても異なっていてもよい。例えば、期間1ではFb1〜Fb5を選択できるようにし、期間2ではFa1〜Fa5を選択できるようにしてもよい。
価格影響度算出部106bは、Fa1〜Fa7、Fb1〜Fb5などの各関数の数式をあらかじめ記憶領域に記憶しておき、入力された価格影響度調整データに応じて該当する数式を選択して、入力Xが与えられるごとに、その数式に従って価格影響度を算出することができる。標準的な関数の数式だけを記憶しておき、入力Xと価格影響度調整データが与えられるごとに、標準関数の数式を基に他の関数の数式を作成した上で、その数式に従って価格影響度を算出してもよい。関数ごとに入力Xに対する出力Yをあらかじめ算出しておき、算出結果の(X,Y)の情報を記憶領域に格納しておいてもよい。以上、第2実施例のステップS410bを説明した。
選択指標算出を行なうステップS420bは、第1実施例のステップS420とほぼ同じである。ただし、制御部110bは、ステップS410bで読み出された集合Ψを対象に選択指標の算出を行なうように情報選択部107bを制御する。
推薦情報を作成するステップS430bにおいて、情報選択部107bは、ステップS420bで算出された選択指標に基づいて、集合Ψの中から関連識別子を選択する。具体的には、第1実施例で説明した方法を用いればよい。また、選択された関連識別子の選択指標に従って、推薦順位を付与する。そして、利用主体識別子と、関連識別子と、推薦順位とを対応させて、推薦情報テーブル108A、108Bを推薦情報格納部108に格納させる。
第2実施例では、ステップS430bに続いて、図14では図示していないステップS450を行なう。第2実施例のステップS450では、第1実施例のステップS170と同様な処理を行なえばよい。すなわち、制御部110bは、アイテム属性格納部101と推薦情報格納部108とを参照しながら、ステップS430bで格納された関連識別子に対応するアイテム属性情報およびカテゴリ属性情報を読み出し、関連アイテム識別子(関連カテゴリ識別子)と、推薦順位と、アイテム属性情報(カテゴリ属性情報)とを対応させた表示用推薦データを作成し、送受信部109を介して端末装置30に送信する。なお、第1実施例で説明したように、推薦順位の高い順に所定個数選択したアイテムのみを表示用推薦データに入れたり、過去の利用回数が所定数以上のアイテムを表示用推薦データに含めない等の処理を行なってもよい。
この表示用推薦データには、ステップS180において端末装置30が推薦リストを表示する際に、図24に示すように、「価格影響度の調整操作」ボタン、「関連アイテム表示」ボタン、「関連カテゴリ表示」ボタンをそれぞれ表示するためのデータを含めてもよい。図24(a)は、「アイテム推薦形式」に対応する処理が行われた場合の画面例であり、図24(b)は、「カテゴリ推薦形式」に対応する処理が行われた場合の画面例である。
この場合、ユーザは、本図の右上部に示す「価格影響度の調整操作」ボタンを指定して、価格影響度の調整操作を再度行なった後に、本図の下部に示す「関連アイテム表示」または「関連カテゴリ」ボタンを指定することにより、再度設定した価格影響度に応じた新たな推薦情報を表示させることができる。このような方法を用いることで、ユーザは簡単な操作で、納得がいくまで価格影響度を繰り返し調整することができるので、推薦情報に対するユーザの満足度や信頼感を高めることができる。
また、本図の「指定された価格影響度…」で示すように、ステップS140bにおける価格影響度の調整操作でユーザによって指定された内容(選択肢など)を画面に表示するためのデータを、表示用推薦データに含めてもよい。このようにすれば、ユーザが価格影響度の調整操作を繰り返し行なって、少しずつ推薦情報を変更したいような場合に、ユーザは前回指定した条件を容易に知ることができるので、同じ条件を再度指定するような間違いが減り、操作性が向上する。
以上が第2実施例におけるシステム動作の説明である。第2実施例によれば、価格の高いアイテムおよびカテゴリを推薦情報に多く入れることが可能である等、第1実施例と同様な効果を得ることができる。さらに第2実施例では、それらの効果に加えて、端末装置30を利用するユーザが自分の好みに応じて、期間別に推薦結果に多く含まれるアイテム(またはカテゴリ)の価格帯を調整することができるので、ユーザが推薦情報を納得して受け入れやすくなる。
例えば、毎月1日に新しいポイント(新たなアイテム利用権)が付与された直後に、予定以上に高額の商品を購入してしまう傾向があると自覚しているユーザ(ユーザA)は、毎月上旬に安いもの中心に推薦されるようにあらかじめ設定しておけば、安心してサービスを利用することができる。また、毎月月末までにポイントを使い切れずに、ポイントを失効させてしまうこケースが多いと自覚しているユーザ(ユーザB)は、毎月下旬に高いもの中心に推薦されるように設定しておけば、安心してサービスを利用することができる。このように、ユーザの利便性や納得感が向上するため、推薦情報に基づくアイテム利用が活発になり、アイテム提供サービスの売上をさらに増大させることが期待できる。
(実施例3)
本実施形態に係るネットワークシステムの第3実施例について説明する。第3実施例では、端末装置30を利用するユーザが過去に利用したアイテムの価格に基づいて、価格影響度を算出する関数の特性をユーザごとに変えることができるようになっている。第3実施例において、アイテム提供サーバ20および端末装置30は、第1実施例と同様とすることができる。
図25は、第3実施例における情報選択装置10cの構成を示すブロック図である。本図に示すように、情報選択装置10cは、アイテム属性格納部101と、利用履歴格納部102と、価格情報格納部103と、関連度算出部104と、関連集合格納部105と、価格影響度算出部106cと、情報選択部107cと、推薦情報格納部108と、送受信部109と、制御部110cと、利用価格情報算出部111と、利用価格情報格納部112とを備えて構成されている。また、情報選択装置10cには、情報選択装置10の管理者向けに必要な情報を表示するための表示装置120と、管理者が操作を行なうためのキーボード、マウス等の入力装置130とが接続されている。
すなわち、第3実施例の情報選択装置10cは、第1実施例の情報選択装置10に利用価格情報算出部111および利用価格情報格納部112を追加し、価格影響度算出部106、情報選択部107、制御部110の動作が一部異なる構成となっている。
制御部110cは、第1実施例と同様に、所定のタイミングで推薦情報作成動作を開始する。ただし本実施形態では、図14のフローチャートにおいてステップS400の後に、図示しないステップS415を実行し、ステップS415が終了した段階で推薦情報作成動作を終了する。価格影響度算出を行なうステップS410以降に相当する処理は、後述するステップS170cにおいて、表示用推薦データを作成する際に行なう。
ステップS415において、制御部110cの指示を受けた利用価格情報算出部111は、利用履歴格納部102を参照しながら、ユーザが利用したアイテムの価格に関する情報である利用価格情報を、所定の時点と推薦情報の作成に係る時点との時間差、または所定の時点と推薦情報の提供に係る時点との時間差Tpに応じた期間ごと、およびユーザごとに算出する。利用価格情報は、ユーザが利用したアイテムの価格に関する統計量である。
本実施形態では、月額課金制度を採用するアイテム利用サービスにおいて、新規のアイテム利用権(新規ポイント)が毎月1日午前0時にユーザに付与されるものとし、毎月1日午前0時を所定の時点とする。そして、推薦情報の作成に係る時点との時間差Tpを、月の上旬(例えば、1日から10日まで)、中旬(例えば、11日から20日まで)、下旬(例えば、21日以降)に対応する3つの期間に分ける例を用いて説明する。また、本実施形態では、利用履歴格納部102には、図5(b)に示すアイテム利用履歴テーブル102A−2が格納されているものとする。すなわち、アイテム利用時期情報(アイテムがユーザに提供された日時などの時点を示す情報)がアイテム利用履歴に含まれている。なお、利用価格情報における利用は、情報閲覧、視聴等を含めずに、実際に購入した場合とすることが望ましい。
利用価格情報算出部111は、期間1(毎月1日から10日まで)、期間2(毎月11日から20日まで)、期間3(毎月21日以降)ごとに、ユーザの利用価格情報を算出する。利用価格情報として、例えば、ユーザが過去に利用したアイテムの価格の高さを指標化した価格水準値と、ユーザの利用したアイテムの価格のばらつき度合いを指標化した価格分散値とを用いることができる。ここでは、利用価格情報算出部111は、以下に示す第1〜第6の利用価格情報のうち、1つ以上の値を算出するものとする。以下では1つの期間(例えば、上旬に該当する期間1)の処理を説明するが、他の期間についても同様である。また、もちろん3つ以外の期間を用いてもよいし、1ヶ月とは異なる周期を用いてもよい。
利用価格情報算出部111は、利用履歴格納部102に格納された利用履歴から、利用時期情報が特定の条件を満たす利用履歴を読み出す。例えば、利用時期情報の日付が1日から10日に該当するデータを上旬用の利用価格情報を算出するためのデータとして読み出す。そして、読み出した利用履歴に含まれる利用主体識別子ごとに、その期間の利用価格情報を算出する。なお、利用価格情報を算出する際に、推薦情報を作成する当月の利用履歴を用いてもよいし、用いなくてもよい。例えば、2012年12月10日に推薦情報を作成する場合、期間1(毎月1日から10日まで)の利用価格情報を算出するために、前月までの期間1に相当する2ヶ月分のデータ、すなわち、アイテム利用時期情報が、「2012年10月1日〜10月10日」および「2012年11月1日〜11月10日」の範囲にある利用履歴を用いてもよい。あるいは、これらに加えて、当月の「2012年12月1日〜12月9日」の利用履歴を用いてもよい。あるいは、前月までのデータを使わずに、当月の「2012年12月1日〜12月9日」である利用履歴のみ用いてもよい。
なお、アイテム利用時期が「2012年10月1日〜10月10日」の範囲にある利用履歴を期間1に対応させる処理は、所定の時点(2012年12月1日)から所定の時間(2ヶ月)遡った時点(2012年10月1日)を起点とし、その起点からアイテム利用時期との時間が所定値(10日)以下である利用履歴を期間1に対応させる処理ともいえる。アイテム利用時期が「2012年11月1日〜11月10日」の範囲にある利用履歴を期間1に対応させる処理は、起点を2012年11月1日にした同様の処理であり、「2012年12月1日〜12月9日」の範囲にある利用履歴を期間1に対応させる処理は、起点を所定の時点(2012年12月1日)にした同様の処理といえる。
第1の利用価格情報である第1の価格水準値は、ユーザの利用したアイテムの価格の合計値(合計額)を価格水準値とするものである。第1の価格水準値を算出する場合、利用価格情報算出部111は、読み出した利用履歴を参照しながら、ある利用主体識別子(あるユーザ)が利用したアイテムを特定する。そして、価格情報格納部103を参照しながら、特定したアイテムの価格の合計値を算出し、その利用主体識別子に対応する第1の価格水準値とする。第1の価格水準値が大きいユーザは、購買能力の高いユーザと推測できる。なお、合計値そのものではなく、合計値に所定の値を乗じた値や、合計値を所定の値で割った値を第1の価格水準値としてもよい。例えば、合計値の桁数が大きくなるような場合に、所定の値で割って扱いやすい桁数の値にしたり、各々の利用価格情報の最大値が「1」になるような正規化を行なってもよい。また、会員期間が異なるユーザの合計値は大きく異なる場合があるので(例えば、会員期間が1ヶ月のユーザと5年間のユーザ)、価格の合計値をそれぞれのユーザの会員期間に応じた長さで割って正規化を行ってもよい。
第2の利用価格情報である第2の価格水準値は、ユーザの利用したアイテム1つあたりの価格の高さを示す値(代表値)を用いたものである。第2の価格水準値を算出する場合、利用価格情報算出部111は、読み出した利用履歴を参照しながら、ある利用主体識別子(あるユーザ)が利用したアイテムを特定する。そして、価格情報格納部103を参照しながら、特定したアイテムの価格の分布を求め、その代表値を算出し、その利用主体識別子に対応する第2の価格水準値とする。代表値としては、平均値、中央値、最頻度、四分位値、最大値、最小値などを用いることができる。また、利用回数の多いアイテムに大きな重みを付ける等、利用回数に応じた重みづけ行なって代表値を算出してもよい。
第2の価格水準値が大きいユーザは、高額アイテムや高級アイテムを好むユーザと推測できる。また、第2の価格水準値は、アイテムの価格が広い範囲に分布している場合に適している。
第3の利用価格情報である第1の価格分散値は、ユーザの利用したアイテム1つあたりの価格のばらつきの大きさ(ばらつき度)を示す値を価格分散値とするものである。第1の価格分散値を算出する場合、利用価格情報算出部111は、読み出した利用履歴を参照しながら、ある利用主体識別子(あるユーザ)が利用したアイテムを特定する。そして、価格情報格納部103を参照しながら、特定したアイテムの価格の分布を求め、そのばらつき度を示す値を算出し、その利用主体識別子に対応する第1の価格分散値とする。具体的には、ばらつき度を示す値として、分散、標準偏差、範囲(最大値−最小値)、四分位範囲(第3四分位値−第1四分位値)などを用いることができる。
第1の価格分散値が大きいユーザは、様々な価格のアイテムを利用するユーザと推測できる。また、第1の価格分散値は、アイテムの価格が広い範囲に分布している場合に適している。
上述した方法では、ある利用主体識別子(あるユーザ)が利用したアイテム(あるユーザの利用履歴)のみを用いて、第1〜第3の利用価格情報を算出するが、あるユーザおよび他のユーザの利用履歴を用いて算出してもよい。すなわち、あるユーザ(ユーザA)以外のユーザが利用したアイテムの価格に基づいて、ユーザAの利用価格情報を算出してもよい。
例えば、利用価格情報算出部111が利用履歴格納部102から読み出した利用履歴に、Nu人の利用主体識別子が含まれているとして、利用主体識別子ごとにアイテム価格の合計値Ps[u](u=1〜Nu)を算出し、Ps[u]の平均値Paと標準偏差Pbとを算出する。そして[数8]に従ってユーザuの標準得点S[u]、または偏差値等を算出し、第4の利用価格情報として用いることができる。
この第4の利用価格情報は、あるユーザ(ユーザu)が利用したアイテム価格の合計値が、ユーザ集団の中でどの位置にあるかを相対的に示す情報である。第2〜第3の利用価格情報についても、同様にユーザ集団の中での相対値を算出することができる。また、上述の利用価格情報それぞれについて、最大値を1、最小値を0にする等の正規化処理を行ってもよい。
また利用価格情報算出部111は、ある利用主体識別子に対して、アイテム区分ごとに利用価格情報を算出してもよい。ここで、アイテム区分とは、アイテムを所定の基準で分類した情報であり、通常はカテゴリよりも上位の概念の分類である。例えば、アイテム提供サービスにおいて、種々のコンテンツを提供する場合、「音楽」「映画」「書籍」といった上位の階層の分類をアイテム区分とし、アイテム区分が「音楽」のアイテムに対しては、「ロック」「ジャズ」「クラシック」「フォーク」等のジャンル情報をカテゴリとすることができる。アイテム区分が「映画」のアイテムに対しては、「SF」「アクション」「コメディ」「アニメ」「サスペンス」等のジャンル情報をカテゴリとすればよい。
この場合は、アイテム属性格納部101に、各アイテムまたは各カテゴリと、各アイテム区分とを対応させたアイテム区分情報を格納しておく。そして、利用価格情報算出部111はアイテム区分情報を参照しながら、ユーザが利用したアイテムのアイテム区分を特定し、アイテム区分ごとに利用価格情報を算出する。上記の例では、「音楽」に対応する利用価格情報と、「映画」に対応する利用価格情報と、「書籍」に対応する利用価格情報とを算出する。ただし、カテゴリをそのままアイテム区分とするようにしてもよい。
利用価格情報算出部111は、算出した利用価格情報を利用価格情報格納部112に格納させる。利用価格情報格納部112は、図26に示すような形式で、利用主体識別子と、利用価格情報とを対応させて、期間(期間1、期間2、期間3)ごとに格納する。図26(a)は、アイテム区分を用いない場合の格納形式である利用価格情報テーブル112Aを示している。複数種類(Np個)の利用価格情報が格納されているが、1種類の利用価格情報を格納するようにしてもよい。本図における「NULL」は、該当するデータが存在しないことを示すものである。例えば、期間3において、「UserID−2」の行は、利用履歴が全く、あるいは十分な量が存在しないため、利用価格情報が存在しない。このように、一部の期間の利用価格情報が欠落している利用主体識別子が存在していてもよい。
利用価格情報が存在しない場合は、その期間のユーザ全体の平均的な利用価格情報を用いてもよいし、その利用主体識別子に関する他の期間の利用価格情報で代用してもよい。また、他のユーザの利用価格情報を用いて、欠落している情報を埋めてもよい。具体的には、「UserID−2」の利用価格情報が存在する期間1と期間2において、「UserID−2」の利用価格情報と類似する利用価格情報を持つ他のユーザを特定し、そのユーザの期間3における利用価格情報を用いて、期間3における「UserID−2」の利用価格情報を算出してもよい。例えば、期間1と期間2において、「UserID−2」と利用価格情報がほぼ同じであるユーザとして、「UserID−5」と「UserID−6」(図示せず)を特定した場合、期間3において、これら2人のユーザの利用価格情報の平均値を「UserID−2」の利用価格情報として算出してもよい。
図26(b)は、アイテム区分を用いる場合の格納形式である利用価格情報テーブル112Bを示している。アイテム区分1に対応するNp1個の利用価格情報と、アイテム区分2に対応するNp2個の利用価格情報を、期間(期間1、期間2、期間3)ごとに格納している。ここで、Np1≠Np2として、アイテム区分ごとに異なる数の利用価格情報を算出して格納するようにしてもよい。以上がステップS415の説明である。
第3実施例におけるシステム全体の動作は、処理ステップ間の関係において図11に示したフローチャートと同様であり、ステップS160とS170の具体的内容において第1実施例と一部異なる。第3実施例におけるこれらの処理ステップは、末尾に「c」を付加して表記する。
ステップSl60cにおいて、端末装置30は、関連リンクに対応するURLに推薦リクエストを送信する。ステップS170cにおいて、情報選択装置10cの制御部110cは、送受信部109を介して、推薦リクエストを受信し、それに含まれるリクエスト利用主体識別子に対応する表示用推薦データを作成して端末装置30に送信する。以下では、このステップS170cの処理を詳細に説明する。
ステップSl70cでは、第1実施例の推薦情報作成動作の一部である、図14に示したステップS410〜S430に相当する処理(ステップS410c、S420c、S430c)を行なった後に、図示しないステップS450で表示用推薦データを作成する。なお、第2のタイミングで推薦情報を作成する場合は、利用価格情報を算出した後(ステップS415の後)にステップS410c〜440cを実行すればよい。このうち、ステップS420c、S430c、S450は、それぞれ第2実施例のステップS420b、S430b、S450と同じであるため説明を省略し、ステップS410cにおける価格影響度算出処理について詳細に説明する。
制御部110cは、関連集合格納部105の中から、推薦リクエスト(リクエスト利用主体識別子)に一致する利用主体識別子を特定し、その利用主体識別子に対応する関連集合(関連識別子)を読み出す。以下では、ここで読み出され関連集合を集合Ψとする。
そして、制御部110cは、価格情報格納部103を参照しながら、集合Ψの各関連識別子に対応する価格情報を取得し、その価格情報と、受信した利用リクエストの利用主体識別子とを価格影響度算出部106cに入力する。利用価格情報格納部112に、図25(b)に示したアイテム区分ごとに利用価格情報が格納されている利用価格情報テーブル112Bを格納している場合には、制御部110cは、アイテム属性格納部101のアイテム情報テーブル101Aを参照しながら、関連識別子に対応するアイテム区分を特定し、そのアイテム区分も加えて価格影響度算出部106cに入力する。
価格影響度算出部106cは、利用価格情報格納部112を参照しながら、入力された利用主体識別子に応じて、価格情報を入力Xとし価格影響度を出力Yとする価格影響関数F(X)の特性を変える。この関数(対応規則)は、第1実施例と同様に、図16〜図18、および図23に示したような種々の特性の関数を用いることができる。
価格影響度算出部106cは、実施例1と同様に、所定の時点と推薦情報の作成に係る時点との時間差、または所定の時点と推薦情報の提供に係る時点との時間差Tpを算出する。本実施形態においては、所定の時点は毎月1日の午前0時であり、そこからの経過日数(経過時間)が時間差Tpとなる。また、月を3つの期間に分けて処理を行うので、算出したTpが3つのうちのどの期間に該当するか判定する。そして価格影響度算出部106cは、入力された利用主体識別子に対応し、かつ時間差Tpに該当する期間に対応する利用価格情報を利用価格情報格納部112から読み出す。利用価格情報格納部112に、図26(b)に示した利用価格情報テーブル112Bを格納している場合には、入力された利用主体識別子に対応し、かつ時間差Tpに該当する期間に対応し、かつ入力されたアイテム区分に対応する利用価格情報を読み出す。
ここでは、利用価格情報格納部112に、ユーザuの価格水準値L[u]が1つ、ユーザuの価格分散値V[u]が1つ格納されており、これらを読み出して利用することとする。ただし、価格水準値と価格分散値のどちらか一方を利用してもよいし、3つ以上の利用価格情報を利用して関数F(X)の特性を決定してもよい。
上述のように、図23(a)は、Fa1(X)〜Fa5(X)(Fa1〜Fa5)の5つの関数を示している。添字番号の大きい関数ほど、出力値が極大となるときの入力値(Xc1、Xc5等)が大きい。また、添字番号の大きい関数ほど、所定の出力値(例えば、最大値Yc、あるいはその半分の値Yc/2)を得るための入力値が大きいともいえる。価格影響度算出部106cは、ユーザuの価格水準値L[u]に応じて、いずれかの関数を選択する。
具体的には、時間差Tpに該当する期間(当該期間)の価格水準値L[u]に関する閾値δ1〜δ4(δ1<δ2<δ3<δ4)を用意しておき、L[u]<δ1であればFa1、δ1≦L[u]<δ2であればFa2、δ2≦L[u]<δ3であればFa3、δ3≦L[u]<δ4であればFa4、δ4≦L[u]であればFa5を選択する。すなわち、価格水準値L[u]に応じて、関数がピーク(極大値)をとる位置(X座標)を変化させているといえる。また、価格水準値L[u]が大きいほど、所定の出力値を得るための入力値が大きくなる傾向で価格影響関数を変化させているともいえる。
この結果、価格水準値の大きいユーザ、すなわち購買能力の高いユーザに対しては、主に価格の高いアイテム(カテゴリ)が推薦され、、価格水準値の小さいユーザに対しては、主に価格の安いアイテム(カテゴリ)が推薦される。なお、価格水準値として、第2の価格水準値(ユーザの利用したアイテム1つあたりの価格の代表値)を用い、閾値δ1〜δ4と、関数Fa1〜Fa5の各ピークのX座標であるXc1〜Xc5とが、所定の関係になるように設定してもよい。例えば、Fa2に対応する閾値δ1およびδ2の平均値δm2{δm2=(δ1+δ2)/2}と、Fa2のピークのX座標であるXc2が、ほぼ同じ値(δm2≒Xc2)となるようにしてもよい。このようにすると、ユーザが日頃よく利用する価格帯のアイテムが推薦され、ユーザに違和感を与えるリスクが少ない。また、δm2よりXc2を大きくしてもよい(δm2<Xc2)。このようにすると、ユーザが日頃よく利用する価格帯よりも高い価格帯のアイテムが推薦されるので、ユーザの平均利用単価の増大が期待できる。また逆に、δm2よりXc2を小さくしてもよい(δm2>Xc2)。このようにすると、ユーザのアイテム利用意欲の増大が期待できる。
別の選択方法を、図23(c)を参照して説明する。本図は、Fb1(X)〜Fb5(X)(Fb1〜Fb5)の5つの関数を示しており、添字番号の大きい関数ほど、最大値Yβと最小値Yαとの差(最小値Yαに対する最大値Yβの倍率)が大きく、添字の小さい関数ほど、その差および倍率が小さくなっている。また、これらの関数は単調減少区間を持たない。
価格水準値L[u]に関する閾値δ1〜δ4(δ1<δ2<δ3<δ4)を用意しておき、L[u]<δ1であればFb1、δ1≦L[u]<δ2であればFb2、δ2≦L[u]<δ3であればFb3、δ3≦L[u]<δ4であればFb4、δ4≦L[u]であればFb5を選択する。すなわち、価格水準値L[u]が大きいほど添字番号の大きい関数を選択することにより、価格水準値が大きいほど、出力最大値と出力最小値との差(出力最小値に対する出力最大値の倍率)が大きくなる傾向で価格影響関数を変化させているといえる。また、価格水準値が大きいほど、入力が最小値であるときの出力値(X=0のときの出力値)が小さくなる傾向で価格影響関数を変化させているともいえる。この結果、価格水準値が大きいユーザでは、価格の高いアイテム(カテゴリ)が非常に推薦情報に入り易くなるのに対し、価格水準値が小さいユーザでは、価格の高いアイテム(カテゴリ)がやや優先的ではあるものの、価格の安いアイテム(カテゴリ)も比較的推薦結果に入りやすいという効果が得られる。
このように、単調減少区間を持たない関数を用いると、全てのユーザに対して、価格の高いアイテムを優先的に推薦情報に入れることができると同時に、ユーザの利用価格情報(すなわちユーザの利用状況)に応じて、その優先度合いを適応的に設定することができる。なお、複数の関数(例えば、Fb1〜Fb5)を用意するのではなく、1つの関数のみを用意し、価格水準値に応じて、その関数を変形して用いるようにしてもよい。例えば、Fb3(X)を用意し、価格水準値L[u]と乗算した関数(値)(Fb3(X)×L[u])を価格影響度としてもよい。また、価格水準値に応じて、用意した関数の最大値および最小値のうちの少なくとも一方を変更してもよい。また、価格水準値L[u]とは別に、価格水準値L[u]が大きいほど大きな値となる係数K[u]を算出し、用意した関数との乗算を行って、価格影響度を算出してもよい。価格水準値L[u]と係数K[u]との関係は、線形でも非線形でもよい。
また、価格水準値L[u]ではなく、ユーザuの価格分散値V[u]を用いて、Fb1〜Fb5を選択してもよい。価格水準値L[u]の場合と同様に、価格分散値V[u]に関する閾値ε1〜ε4(ε1<ε2<ε3<ε4)を用意しておき、価格分散値V[u]が大きいほど添字番号の大きい関数を選択する。すなわち、価格分散値が大きいほど、出力最大値と出力最小値との差(出力最小値に対する出力最大値の倍率)が大きくなる傾向で価格影響関数を変化させてもよい。
一般に、価格分散値が小さなユーザは、限られた価格帯のアイテムを利用する傾向がある。すなわち、自分なりの利用パターンが確立しているユーザであるといえる。このようなユーザでは、価格の高いアイテムだけを推薦した場合に受容されないリスクがより高いため、価格水準値を用いず、価格分散値のみで、単調減少区間を持たない価格影響関数を設定する場合は、関数Fb1などを用いて、価格の高いアイテムと安いアイテムとの価格影響度の差があまり大きくないようにし、価格の安いアイテム(カテゴリ)も比較的推薦結果に入りやすいようにする。
次に、ユーザuの価格水準値L[u]と価格分散値V[u]を両方用いて、関数F(X)の特性を動的に設定する方法を説明する。以下では、時間差Tpに応じて、複数種類のひな型関数を使い分ける例を説明するが、もちろん1種類のひな型関数を用いてもよい。価格影響度算出部106cは、時間差Tpが期間1(月の上旬)に該当する場合に、図27(a)に示す特性のひな型関数Fu(X)を用いる。本実施形態では、毎月1日にユーザに新規のアイテム利用権が付与されるサービスを例に説明しているが、新規のアイテム利用権が付与されてから間もない月の上旬は、一般的にユーザのアイテム利用意欲が高いため、高いアイテムを推薦しても、ユーザのアイテム利用意欲が低下するリスクが小さい考えられる。そこで、図27(a)に示すような単調減少区間を持たないひな型関数を用いて、価格が高いほど価格影響度が大きくなるようにすると、サービス全体の売上増大に効果的である。価格影響度算出部106cは、このようなひな型関数の数式を内部の記憶領域に記憶しており、価格水準値L[u]および価格分散値V[u]に応じて、Fu(X)のパラメータXc、Xω、Yα、Yωを設定し、価格影響度を算出する。ここで、Xcは単調増加区間のX方向(Xα〜Xβ)の中点であり、Xωは単調増加区間のX方向の幅である。また、Yαは単調増加区間の最小出力値であり、Yωは単調増加区間のY方向の幅である。
まず、Xcを価格水準値L[u]が大きいほど大きな値となるように設定する。そして、Xωを価格分散値V[u]が大きいほど大きな値となるように設定する。この結果、単調増加区間の最小入力値Xαと最大入力値Xβとが設定される。
次に、Yαを価格水準値L[u]が小さいほど大きな値となるように設定する。そして、Yωを価格水準値L[u]が大きいほど大きな値となるように設定する。この結果、単調増加区間の最大出力値Yβが設定される。
このようにパラメータが設定された関数Fu(X)の特性について、図27(b)および図27(c)を参照し、ユーザu1〜ユーザu5の5人のユーザを例にして説明する。
ユーザu1は、価格の安いアイテムのみを利用するため、ユーザu1の価格水準値L[u1]が5人のユーザの中で最も小さく、価格分散値V[u1]も小さいものとする。図27(b)に示すように、ユーザu1に対応した関数Fu1(X)は、Xc1、Xα1、Xβ1、Xω1、Yω1が小さく、Yα1が大きい。このため、価格の安いアイテムと価格の高いアイテムとの価格影響度の差(倍率)が小さい等により、5人のユーザの中で価格の安いアイテムが最も推薦結果に入りやすくなる。
ユーザu2は、価格の安いアイテムと高いアイテムの両方を利用するが、安いアイテムをより多く利用するため、価格水準値L[u2]が5人の中で2番目に小さく、価格分散値V[u2]は大きいものとする。図27(b)に示すように、ユーザu2に対応する関数Fu2(X)のパラメータであるXc2、Xω2、Yα2、Yω2は、それぞれXc1<Xc2、Xω1<Xω2、Yα2<Yα1、Yω1<Yω2となる。このため、価格の安いアイテムと価格の高いアイテムとの価格影響度の差(倍率)がFu1より大きくなり、ユーザu1に比べると、価格の安いアイテムが推薦結果に入りにくくなる。また、単調増加区間の幅Xω2が大きく、単調増加区間の勾配が比較的緩やかであるため、幅広い価格帯のアイテムが推薦結果に入り易くなる。ユーザu2は、価格の安いアイテムと高いアイテムの両方を利用するユーザであるため、アイテム価格に関するユーザの日頃の利用傾向を反映した推薦情報が得られるといえる。
ユーザu3は、価格が中程度のアイテムのみ利用するため、価格水準値L[u3]は、ユーザu2の価格水準値L[u2]と同じであり、価格分散値V[u3]は、ユーザu2よりも小さいものとする。図27(b)に示すように、ユーザu3に対応する関数Fu3(X)のパラメータであるXc3、Xω3、Yα3、Yω3は、それぞれXc2=Xc3、Xω3<Xω2、Yα2=Yα3、Yω2=Yω3となる。このため、関数Fu2よりも出力値が大きくなる価格帯(線分P1で示す価格帯)のアイテムが、ユーザu2と比べて推薦結果に入りやすくなる。
また、ユーザu2では、関数Fu3が最大値となり、かつ関数Fu2が単調増加である価格帯(線分P2で示す価格帯)のアイテムは、それより高い価格帯(線分P3で示す価格帯)のアイテムより、推薦結果に入りにくいのに対し、ユーザu3では同程度に入るようになる。
元々利用している価格帯が狭いユーザu3には、高い価格帯P3に偏って推薦するよりも、それより若干安い価格帯P2を含めて推薦した方が、推薦結果が受容される可能性が高いと考えられる。一方で、元々幅広い価格帯のアイテムを利用しているユーザu2は、ユーザu3に比べて、特定の価格帯へのこだわりが少なく、高い価格帯P3を受容する可能性が高いので、価格帯P2よりも価格帯P3をより多く推薦結果に入れた方が、アイテム提供サービスの売上増大という点で効果的である。このように第3実施例では、価格分散値に応じて単調増加区間の幅を設定することにより、価格水準値が同程度のユーザに対しても、推薦情報の内容を適切に変えることができる。
ユーザu4は、価格の安いアイテムと高いアイテムの両方を利用するが、高いアイテムをより多く利用するため、価格水準値L[u4]が5人のユーザの中で2番目に大きく、価格分散値V[u4]は、ユーザu2と同程度に大きいものとする。図27(c)に示すように、ユーザu4に対応する関数Fu4(X)のパラメータであるXc4、Yα4、Xω4、Yω4は、それぞれXc2<Xc4、Xω1<Xω2≒Xω4、Yα4<Yα2、Yω2<Yω4となる。このため、価格の安いアイテムと価格の高いアイテムとの価格影響度の差(倍率)が関数Fu2より大きくなり、ユーザu2に比べると、価格の安いアイテムが推薦結果に入りにくくなる。
ユーザu5は、価格の高いアイテムのみを利用するため、価格水準値L[u5]が5人のユーザの中で最も大きく、価格分散値V[u5]は、ユーザu1と同程度に小さいものとする。図27(c)に示すように、ユーザu5に対応する関数Fu5(X)のパラメータであるXc5、Yα5、Xω5、Yω5は、それぞれXc5<Xc4、Xω1≒Xω5<Xω4、Yα5<Yα4、Yω4<Yω5となる。このため、価格の安いアイテムと価格の高いアイテムとの価格影響度の差(倍率)が非常に大きくなり、価格の安いアイテムが5人のユーザの中で最も推薦結果に入りにくくなる。また、価格水準値の最も小さいユーザu1に対応する関数Fu1(X)と比べると、Xα1<<Xα5、Xβ1<<Xβ5、Yα1>>Yα5、Yβ1<<Yβ5であり、価格水準値の小さいユーザに比べて、価格の高いアイテムが推薦結果に入りやすいことは明らかである。
なお、図27で説明に用いた関数Fu(X)は、あくまでも一例であり、他の特性の関数を用いてもよい。例えば、図28に示す特性の関数Fg(X)を用いて価格影響度を算出してもよい。この場合は、Fu(X)と同様な方法で、関数Fg(X)のパラメータXc、Xω、Yα、Yωを設定する他、価格水準値が小さければ、本図の関数Fg1のように上に凸の度合いが強い特性とし、価格水準値が中程度であれば、本図の関数Fg2のように線形に近い特性とし、価格水準値が大きければ、本図の関数Fg3のように下に凸の度合いが強い特性とする。下にと凸の度合いが強いほど、所定の出力値を得るために大きな入力値が必要といえる。また、価格分散値が大きいほど、下に凸の度合いを強くしてもよい。
次に、時間差Tpが期間2(月の中旬)に該当する場合に、価格影響度算出部106cは、図29に示す特性のひな型関数Fv(X)を用いる。新規のアイテム利用権が付与されてからある程度時間が経過している中旬は、一般的にユーザのアイテム利用意欲が上旬よりも低下している。このため、図29に示すように、ピーク(極大値)を持つ関数を用いて、価格の高いアイテム(カテゴリ)が必ずしも優先的に推薦されないようにする。
まず、価格水準値L[u]が大きいほど、ピーク中心のX座標であるXcが大きな値となるように設定する。そして、価格分散値V[u]が大きいほど、ピークのX方向の幅であるXωが大きくなるように設定する。このように価格影響関数を設定すると、価格水準値が大きいユーザには、主に高いアイテム(カテゴリ)が推薦される一方、価格水準値が小さいユーザには、主に安いアイテム(カテゴリ)が推薦される。また、価格分散値が大きいユーザには、幅広い価格帯のアイテム(カテゴリ)が推薦され易くなるが、価格分散値が小さいユーザには、特定の狭い価格帯のアイテム(カテゴリ)が推薦される。すなわち、それぞれのユーザのアイテム利用パターンとほぼ同じ価格条件のアイテムが推薦される。ユーザが日頃利用しない価格帯のアイテムが推薦され難いため、ユーザのアイテム利用意欲の低下リスクを非常に小さくすることができる。
例えば、上述の5人のユーザのうち、価格水準値が小さく、価格分散値Vも小さいユーザu1では、Xc、Xωが両方とも小さくなるので、価格の安いアイテムのみ推薦される。また、価格水準値が中程度で、価格分散値Vが大きいユーザu2では、Xcが中程度で、Xωが大きくなるので、中程度の価格のアイテムを中心に、幅広い価格帯のアイテムが推薦されることになる。また、価格水準値が中程度で、価格分散値が小さいユーザu3では、Xcが中程度で、Xωが小さくなるので、中程度の価格という条件に限定されたアイテムが推薦される。また、価格水準値が大きく、価格分散値も大きいユーザu4では、Xc、Xωが両方とも大きくなるので、価格の高いアイテムを中心に、幅広い価格帯のアイテムが推薦される。また、価格水準値が大きく、価格分散値が小さいユーザu5では、Xcが大きく、Xωが小さいので、価格の高いアイテムのみ推薦される。
価格水準値L[u]および価格分散値V[u]に基づいて、ひな型関数Fv(X)の特性を変形させる方法は、上述の方法に限らない。例えば、価格分散値V[u]が大きいほど、ピークと底部とのY方向の高さの差Yω(極大値とピーク底部の出力値との差)が小さくなるように設定してもよい。Yωを小さくすると、価格影響度の最大値Yβと、価格影響度の最小値Yαとの差(または倍率)が小さくなるので、推薦情報に入るアイテムの価格帯が広くなる。価格分散値が大きいユーザは、幅広い価格帯のアイテムを利用する傾向にあるので、そのようなユーザに対して、推薦アイテムの価格帯の幅を広く設定することは、購入意欲低下の防止に効果的である。また、価格分散値V[u]が大きいほど、Xωを大きく、Yωを小さくする等、価格分散値V[u]に応じて、XωとYωを両方変化させてもよい。また、上述のFv(X)は、ピークを中心に左右対称の関数であるが、ピークの左右で異なる形状の関数を用いてもよい。
次に、時間差Tpが期間3(月の下旬)に該当する場合に、価格影響度算出部106cは、図30に示す特性のひな型関数Fw(X)を用いる。この関数は、2つのピークを持っており、2つのピークの座標は、それぞれ(Xcs,Ycs)と(Xch,Ych)である。新規のアイテム利用権が付与されてからかなり時間が経過している下旬は、基本的には、安いアイテムの方がユーザに受容され易い。このため、第1のピークである(Xcs,Ycs)を用いて、価格の安いアイテムを推薦情報に入れるようにしている。一方で、翌月までに保有しているアイテム利用権(ポイント)を使い切りたいと考えるユーザも少なからず存在する。そのようなユーザに対しては、比較的高いアイテムを推薦すると、アイテム利用が促進され易い。このため、第2のピークである(Xch,Ych)を用いて、比較的価格の高いアイテムを推薦情報に入れるようにしている。本実施形態では、第1のピークの座標は固定とし、利用価格情報に応じて、この第2のピークの座標を設定する例を説明するが、これに限定する訳ではなく、第1のピークと第2のピークの両方を変化させてもよい。
ケース1)価格水準値L[u]が小さい場合、具体的には所定の閾値δ5未満(L[u]<δ5)の場合、2つのピーク間のX方向の幅Xdを比較的小さな値Xd1に設定し、底部と第2のピークとのY方向の差であるYωも比較的小さな値Yω1に設定する。第2のピークのX方向の幅であるXωは、標準的な値Xω1に設定する。このような関数特性に設定すると、価格の高いアイテムは、ほとんど推薦情報に入らなくなる。
ケース2)価格水準値L[u]が、閾値δ5以上かつδ6未満であり、かつ価格分散値V[u]が閾値ε5未満(δ5≦L[u]<δ6 ∩ V[u]<ε5)の場合、すなわち、価格水準値が中程度であり、かつ価格分散値が比較的小さい場合、Xdを中程度の値Xd2に設定し、Yωを中程度の値Yω2に設定し、Xωを標準よりも小さな値Xω2(Xω2<Xω1)に設定する。このような関数特性に設定すると、価格の安いアイテムの他に、中程度の価格を中心とした比較的狭い価格帯のアイテムが推薦情報に入り易くなる。
ケース3)価格水準値L[u]が、閾値δ5以上かつδ6未満であり、かつ価格分散値V[u]が閾値ε5以上(δ5≦L[u]<δ6 ∩ V[u]≧ε5)の場合、すなわち、価格水準値が中程度であり、かつ価格分散値が比較的大きい場合、Xdを中程度の値Xd2に設定し、Yωを中程度の値Yω2に設定し、Xωを標準よりも大きな値Xω3(Xω3>Xω1)に設定する。このような関数特性に設定すると、価格の安いアイテムの他に、中程度の価格を中心とした比較的広い価格帯のアイテムが推薦情報に入り易くなる。
ケース4)価格水準値L[u]が、δ6以上であり、かつ価格分散値V[u]が閾値ε5以上(L[u]≧δ6 ∩ V[u]≧ε5)の場合、すなわち、価格水準値が比較的大きく、かつ価格分散値が比較的大きい場合、Xdを大きな値Xd3に設定し、Yωを大きな値Yω3(Yω3>Yω2)に設定し、Xωを標準よりも大きな値Xω3(Xω3>Xω1)に設定する。このような関数特性に設定すると、価格の安いアイテムの他に、高い価格を中心とした比較的広い価格帯のアイテムが推薦情報に入り易くなる。なお、第2のピークの高さYchを第1のピークの高さYcsよりも高くしてもよい。
ケース5)価格水準値L[u]が、δ6以上であり、かつ価格分散値V[u]が閾値ε5未満(L[u]≧δ6 ∩ V[u]<ε5)の場合、すなわち、価格水準値が比較的大きく、かつ価格分散値が比較的小さい場合、Xdを大きな値Xd3に設定し、Yωを大きな値Yω3(Yω3>Yω2)に設定し、Xωを標準よりも小さな値Xω2(Xω2<Xω1)に設定する。このような関数特性に設定すると、価格の安いアイテムの他に、高い価格を中心とした比較的狭い価格帯のアイテムが推薦情報に入り易くなる。なお、第2のピークの高さYchを第1のピークの高さYcsよりも高くしてもよい。
このように第3実施例では、利用価格情報に応じて、ユーザごとに関数F(X)の特性を設定することにより、ユーザのアイテム利用状況に応じて、適応的に価格影響関数を設定することができるので、ユーザに受容される可能性の高いアイテムを、より正確に推薦情報に入れることができる。以上がステップS410cの説明である。
なお、上述の説明では、1つの価格水準値と、1つの価格分散値とを使って関数の特性を設定したが、より多くの利用価格情報を用いて関数の特性を設定してもよい。複数の利用価格情報をそれぞれ別々の関数パラメータに対応させてもよい。また、複数の利用価格情報を1つの関数パラメータに対応させてもよい。例えば、第2の利用価格情報である、ユーザの利用したアイテム1つあたりの価格の高さを示す値(代表値)と、第3の利用価格情報である、ユーザの利用したアイテム1つあたりの価格のばらつきの大きさ(ばらつき度)を示す値とを用いて、1つの関数パラメータを決定してもよい。
また、各々の関数パラメータを複数の利用価格情報を用いて決定する場合に、各利用価格情報を各次元に対応させた多次元情報空間を用いてもよい。例えば、多次元情報空間を適当な小領域に分割し、各々の小領域に対して関数パラメータの値を対応させる方法により、関数の特性を設定してもよい。また、各利用価格情報の重み付き平均などを用いて1次元の値を算出し、それに基づいて関数パラメータを決定してもよい。
なお、上述の第3実施例では、ユーザの利用価格情報に基づいて、価格影響関数の特性をユーザごとに変えているが、これとは異なる方法で、価格影響関数の特性をユーザごとに変えてもよい。例えば、ユーザが過去に提供された推薦情報をどの程度受け入れたかに応じて価格影響関数の特性を変更することができる。
この場合、過去のある時点においてユーザに提供された推薦情報に含まれるアイテムのうち、推薦情報提供後にそのユーザによって実際に利用されたアイテムの数を算出し、その数に基づいてユーザの利用度を算出する。利用度を算出する処理を行なうために、利用度算出部を情報選択装置10に設けるようにしてもよい。そして、価格影響度算出部106cは、算出された利用度に応じて価格影響関数F(X)の特性を変えればよい。
具体的には、利用度の高いユーザほど、価格の高いアイテム(カテゴリ)が推薦されやすくなるように処理すればよい。これは、価格水準値が大きいユーザほど、価格の高いアイテム(カテゴリ)が推薦されやすくなるように処理したのと同様である。
利用度の高いユーザは、過去の推薦情報を多く受容しているので、推薦システムに対する信頼感をある程度持っていると考えられる。また、推薦情報が表示された画面から直接利用していない場合であっても、そのユーザの嗜好に合致した推薦アイテムを選択できたと考えられる。このため、このようなユーザに価格の高いアイテム(カテゴリ)をより多く推薦しても、ユーザの購買意欲の低下につながるリスクが小さいと考えられるからである。
一方、利用度の低いユーザに、価格の高いアイテム(カテゴリ)をより多く推薦すると、ユーザの購買意欲の低下につながるリスクが大きいと考えられる。このため、利用度の低いユーザには、価格の安いアイテムもある程度推薦されやすくなる処理を行なうようにする。
このようにユーザの推薦情報に対する利用度に応じて、価格影響関数の特性を変化させることにより、さらにユーザの購買意欲が減少するリスクを減らしつつ、価格の高いアイテム(カテゴリ)を推薦することができる。また、ユーザの推薦情報に対する利用度と、ユーザの利用価格情報を両方用いて、価格影響関数の特性を変えてもよい。
利用度の具体的な算出方法としては、例えば、1日に1回の頻度で推薦情報を作成しており、前回(前日)にユーザAに対して10個の推薦アイテムを提供している場合、次に新たな推薦情報を作成(提供)するまでの期間(約1日間)で、ユーザAが10個の推薦アイテムのうち何個を利用したかを、利用履歴格納部102とを推薦情報格納部108とを参照しながらカウントし、これを利用度とすればよい。
また、ユーザAが1つの推薦アイテムを2回以上利用した場合、その回数を考慮して利用度を算出してもよいし、2回以上利用しても1回だけ利用しても同等に扱って利用度を算出してもよい。あるいは、ユーザAが10個の推薦アイテムのうちの1つ以上利用した場合に、利用度を「1」、1つも利用しない場合に利用度を「0」などとして、ユーザAが推薦情報を1回以上利用したか否かの情報を利用度としてもよい。
ユーザAが推薦アイテムを利用した場合に、図13に示すような推薦画面(推薦ページ)から直接利用したのか、他のページで推薦アイテムを偶然見つけて利用したのかを区別するために、利用リクエストが発行された際にユーザが閲覧していたページ情報(閲覧ページ情報)を利用履歴格納部102に格納した上で、推薦ページから直接利用された分だけを利用度に反映させるようにしてもよいし、推薦アイテムが利用されたページの種類を区別せずに利用度を算出してもよい。
なお、上述の説明では、推薦情報を作成する期間と同じ期間の利用価格情報を用いているが、それに限定される訳ではない。例えば、期間3の推薦情報を作成する際に、期間3の利用価格情報に加えて、期間1および期間2の少なくとも一方の利用価格情報を用いてもよい。あるいは、期間1および期間2の少なくとも一方の利用価格情報を用い、期間3の利用価格情報を用いなくてもよい。例えば、期間1の価格水準値と、期間2の価格水準値の合計値または代表値を算出し、その値を期間3の価格水準値の代わりに用いて、期間3の推薦情報を作成してもよい。また、所定の時点以降の利用履歴から算出される利用価格情報を用いて、推薦情報を作成してもよい。
例えば、所定の時点を2013年1月1日午前0時とし、推薦情報を作成する時点あるいは推薦情報を提供開始する時点を2013年1月25日午前0時とした場合、2013年1月1日から2013年1月24日までの利用履歴を用いて、利用価格情報を算出し、それに基づいて価格影響関数の特性を設定してもよい。このようにすると、当月(2013年1月)にユーザが使った金額(ポイント数)に応じて価格影響関数の特性を設定することができるので、推薦情報に入れるアイテムの価格帯をより適切に設定できる場合がある。例えば、普段は毎月の前半に高額アイテムを多く利用するユーザが、当月(2013年1月1日から2013年1月24日までの期間)に、高額アイテムをあまり利用していない場合、これから当月の月末にかけて価格の高いアイテムを利用する確率が高いと推定し、普段の月よりも価格の高いアイテムが多く推薦情報に入るようにしてもよい。あるいは、ユーザの購買力が何らかの理由で低下したと推定し、普段の月よりも価格の安いアイテムが多く推薦情報に入るようにしてもよい。
また上述の説明では、図26に示すように、利用主体識別子ごとに利用価格情報を算出、格納しているが、利用主体識別子ごとではなく、ユーザ集団の全体的な利用価格情報を算出し、それに応じて価格影響関数を設定してもよい。例えば、ある期間の利用履歴を用いて、複数のユーザ(ユーザ集団)が、その期間に利用したアイテムの価格の合計値を算出し、それに応じて、そのユーザ集団に対して用いる価格影響関数を設定してもよい。また、全ユーザを1つのユーザ集団とみなして、全ユーザに対して共通の利用価格情報を算出してもよい。このようにすると、どのユーザに対しても同じ価格影響関数が適用されるが、利用主体識別子ごとに利用価格情報を算出および格納する必要がないので、情報選択装置1の処理負荷を軽減することができる。また、利用履歴の少ないユーザなどの場合、そのユーザ1人の利用履歴を用いて価格影響関数を設定するよりも、多くのユーザの利用履歴を用いて価格影響関数を設定した方が、適切な特性を設定できる場合がある。
また、上述の第3実施例の変形例として、以下の方法を用いることもできる。まず、利用価格情報算出部111は、利用履歴を用いて、ユーザuが時間差Tpの時点で価格情報Xのアイテムを利用する確率(条件付き確率)の分布(確率関数、確率密度関数)P(X|u,Tp)を、利用価格情報として算出する。例えば、確率関数の関数形として、正規分布や混合正規分布を仮定し、利用履歴を用いて、確率関数のパラメータ(平均値、分散、混合比など)を算出(推定)すればよい。時間差Tpは、期間1、期間2、期間3などのように離散値として扱ってもよいし、連続量として扱ってもよい。このような確率関数の一例を図31(a)に示す。本図は、時間差Tpを5つの離散値として扱い、それぞれのTpに対応する5つの確率関数を示した例である。本図の奥から手前にかけて、時間差TpがTp1であるときの確率関数P(X|u,Tp1)から、時間差TpがTp5であるときのP(X|u,Tp5)が順に並んでいる(Tp1<Tp2<Tp3<Tp4<Tp5)。所定の時点と図14に示す推薦情報作成処理を実行する時点との時間差Tpを算出した後、Tp1〜Tp5の中でTpに最も近いものを特定し、それに対応する確率関数を用いて価格影響関数を設定すればよい。なお、それぞれの確率関数の間を滑らかに補間する等の処理を行ってもよい。
次に、価格影響度算出部106cは、算出された確率関数P(X|u,Tp)を用いて、時間差Tpの時点でユーザuに対して用いる価格影響関数F(X|u,Tp)を算出する。具体的には、確率関数P(X|u,Tp)をそのまま価格影響関数F(X|u,Tp)として用いることができる。あるいは、確率関数P(X|u,Tp)を変形して価格影響関数F(X|u,Tp)としてもよい。確率関数を変形して価格影響関数を作成する一例を図31(b)に示す。本図では、確率関数(確率密度関数)を破線で、価格影響関数を実線で示している。本図に示すように、例えば、確率関数(確率密度関数)をX軸方向に所定値λ1倍し、所定値λ2だけ平行移動させて得られる関数を価格影響関数としてもよい。
この場合、F((X−λ2)/λ1|u,Tp)=P(X|u,Tp)となる。ただし、λ1>0である。ここで、λ1≒1、λ2>0にすると、ユーザuが過去に利用したアイテムよりも価格の高いアイテムが推薦情報に入る確率を高めることができる。λ2を適切な値に設定することにより、ユーザ1人あたりの利用金額が増える可能性が高くなるため、アイテムの提供サービス全体の売上が増える可能性も高くなる。また、λ1>1にすると、ユーザuが過去に利用したアイテムの価格帯よりも幅広い価格帯のアイテムが推薦情報に入る確率を高めることができる。
このように、確率関数を変形させた価格影響関数を用いることにより、ユーザが過去に利用したアイテムの価格情報の分布を基準にできるため、ユーザが受容し易く、かつ価格に関する販売者の方針を反映させた推薦情報を容易に作成することができる。なお、確率関数を変形させた結果、価格影響関数に未定義の区間が生じる場合(Xが0に近い場合など)は、その区間が一定の出力値となるようにしてもよいし、確率関数を使って適当に外挿してもよい。なお、確率関数および価格影響関数において、時間差Tpを複数の期間のいずれかに対応させる等、離散値として扱う場合は、時間差Tpが対応する期間を特定し、その期間に対応する確率関数および価格影響関数を用いればよい。また、確率関数および価格影響関数の条件部にユーザuを含めずに、P(X|Tp)およびF(X|Tp)を算出するようにしてもよい。
この場合は、ユーザ個別に確率関数および価格影響関数を算出するのではなく、全てのユーザに対して共通する確率関数および価格影響関数を算出することになる。アイテム利用数が少ないユーザなどでは、個々のユーザごとに確率関数を算出(推定)するよりも、ユーザ全体の平均的な確率関数を用いた方がよい場合がある。利用価格情報算出部111が、利用価格情報として確率関数を算出し、価格影響度算出部106cが、それに基づいて価格影響関数の特性を設定し、価格影響度を算出した後、情報選択部107は、実施例1で説明した方法を用いて、選択指標を算出すればよい。
また更に別の変形例として、利用価格情報算出部111が、条件付き確率の条件部に、ユーザとアイテムとの関連度Wを加えた確率関数(確率密度関数)P(X|u,Tp,W)を算出してもよい。そして、価格影響度算出部106cは、確率関数P(X|u,Tp,W)に基づいて、価格影響関数F(X|u,Tp,W)を算出する。上述の説明と同様に、確率関数をそのまま用いてもよいし、変形して用いてもよい。なお、関連度Wを連続量として扱ってもよいし、例えば、適当な閾値を用い、大、中、小の3段階等のように離散値として扱ってもよい。
具体的には、制御部110または価格影響度算出部106cは、ステップS400により関連集合格納部105に格納された関連集合(関連識別子)を読み出す際に、各関連度も合わせて読み出し、それぞれの関連度が大、中、小のいずれの段階に該当するか特定し、特定した段階に対応する確率関数を用いて、価格影響関数を設定する。すなわち、時間差Tpがある一定の値である場合でも、各関連識別子の関連度に応じて、異なる価格影響関数を用いて、価格影響度が算出されることになる。確率関数の条件部に関連度を含めた場合は、関連度にも応じた価格影響度が算出されるので、価格影響度そのものを選択指標にしてもよい。また、確率関数および価格影響関数の条件部にユーザuを含めずに、P(X|Tp,W)およびF(X|Tp,W)を算出するようにしてもよい。この場合は、ユーザ個別に確率関数および価格影響関数を算出するのではなく、全てのユーザに対して共通する確率関数および価格影響関数を算出することになる。
第3実施例によれば、ユーザごとに利用価格情報に応じて適切な価格影響度を算出するため、ユーザに特別な操作をさせることなく、ユーザごとに適切なタイミングで、適切な価格のアイテム(カテゴリ)の情報を提供できる。すなわち、ユーザが受容しやすい推薦情報を提供できる。例えば、ある時期に価格の安いアイテムだけを利用する傾向の強いユーザには、その時期に提供する推薦情報の中に、価格の安いアイテムを多く入れることができる。逆に、その時期に価格の高いアイテムを利用する傾向の強いユーザには、その時期に提供する推薦情報の中に、価格の高いアイテムを多く入れることができる。従って、ユーザが推薦情報を納得して受け入れやすくなる。このため推薦情報に基づくアイテム利用が活発になり、アイテム提供サービスの売上をさらに増大させることが期待できる。
また、第2実施例と第3実施例とを組み合わせて、ユーザごとに利用価格情報に応じて自動的に価格影響関数を設定した上で、ユーザの好みに応じてこの特性を変更できるようにしてもよい。このようにすれば、さらに受容性の高い推薦情報を提供することができる。
なお、第1〜第3実施例において、価格情報をアイテム属性格納部101に記録するようにして、価格情報格納部103を省略してもよい。また、価格情報をアイテム提供サーバ20または他の外部の装置に格納するようにした上で、価格影響度算出部106が、その価格情報を取得して利用するようにしてもよい。