以下では、具体的な実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
初めに、本明細書で使用される用語の定義について説明する。本明細書における“アイテム”との用語は、ユーザによって利用(例えば、購入、閲覧、視聴、評価、選択、又は検索)される様々な対象を意味する。言い換えると、アイテムとの用語は、有体物か無体物かを問わず、物品、情報、及びサービスを含む包括的な概念を意味する。アイテムは、例えば、以下の(a)〜(d)の少なくとも1つを含む。
(a)無体物としてのデジタルコンテンツ(例えば、テキストデータ、音声データ、音楽データ、写真データ、動画データ、コンピュータプログラム、Webページ)、又はこれらに関する情報(例えば、商品情報、広告)
(b)有体物又は無体物としての非電子的な商品(例えば、物品、金融商品)、又はこれらに関する情報(例えば、商品情報、広告)
(c)サービス(例えば、スポーツ興行、コンサート興行、映画興行、テレビ放送、ネットワークサービス)に関する情報(例えば、チケットの販売情報、予約情報、テレビ番組情報)
(d)検索キーワード、検索結果
本明細書における“カテゴリ”という用語は、アイテムを分類するための項目を意味する。カテゴリは、グループ又はクラスと呼ぶこともできる。アイテムとカテゴリの対応関係(例えば、アイテムが属しているカテゴリ)は、アイテムに付与されたメタデータ、又は対応テーブル等によって明示的に指定されてもよい。また、アイテムとカテゴリの対応関係は、アイテムとカテゴリの関連性、類似性、又は相関性を評価することにより決定されてもよい。
また、本明細書における“利用主体”という用語は、アイテムを利用するユーザ、またはユーザがアイテムを利用する際に使用する端末装置を意味する。また、“利用主体識別子”という用語は、アイテムを利用するユーザを識別するためのユーザ識別子、またはユーザがアイテムを利用する際に使用する端末装置を識別するための端末識別子を意味する。
本明細書における“関連度”という用語は、要素間(例えば、利用主体とアイテム間、利用主体とカテゴリ間、又はアイテムとカテゴリ間)の関連性、類似性、嗜好性又は相関性の強さを示す尺度を意味する。
<第1の実施形態>
本実施形態は、情報選択装置10を含む。図1は、本実施形態に係る情報選択装置10を含むシステム1の構成例を示すブロック図である。情報選択装置10は、アイテム提供サーバ20又は少なくとも1台の端末装置30と結合して使用され、ユーザに推薦する推薦カテゴリを選択するよう動作する。情報選択装置10は、ユーザに推薦される推薦アイテムをさらに決定してもよい。これにより、推薦カテゴリ、又は推薦カテゴリ及び推薦アイテムを示す推薦情報が端末装置30を介してユーザに提供される。
情報選択装置10は、少なくとも1つのプロセッサ(例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、CPU(Central
Processing Unit))を有するコンピュータシステムを用いて構成されてもよい。コンピュータシステムは、後述される推薦カテゴリの選択に関するアルゴリズムを行うための命令群を含む1又は複数のコンピュータプログラムを実行することによって、情報選択装置10として機能することができる。
このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible
storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、光ディスク(例えば、CD−ROM(Read
Only Memory)、CD−R、CD−R/W、DVD−ROM、DVD−R)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable
PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory
computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
情報選択装置10は、複数台のコンピュータを用いて構成されてもよい。例えば、負荷分散のために、情報選択装置10の同じ処理ブロックを各々が担当する複数台のコンピュータを用いてもよい。また、あるコンピュータが情報選択装置10の一部の処理ブロックを担当し、別のコンピュータが他の一部の処理ブロックを担当してもよい。
アイテム提供サーバ20は、アイテム(例えば、デジタルコンテンツ、コンピュータプログラム)又はアイテムに関する情報(例えば、電子的又は非電子的な商品・サービスに関する情報)をネットワーク40を介して端末装置30に送信する。アイテム提供サーバ20の具体例は、デジタルコンテンツ提供サーバ、デジタルコンテンツ共有サーバ、検索サーバ、EC(Electronic
Commerce)システム、テレビ放送の放送局を含む。
端末装置30は、ユーザによって使用される。端末装置30の具体例は、携帯電話端末、スマートフォン、デジタルオーディオプレーヤー、タブレットコンピュータ、ノートPC(Personal
Computer)、デスクトップPC、テレビ放送受信機、テレビ番組録画機を含む。
端末装置30は、アイテム提供サーバ20から送信されるアイテム又はアイテムに関する情報を受信し、アイテム又はアイテムに関する情報を示す画像若しくは音声又はこれらの組み合わせを出力デバイス(例えば、ディスプレイ、スピーカ)から出力するよう動作する。また、端末装置30は、推薦カテゴリ及び推薦アイテムを含む推薦情報を情報選択装置10又はアイテム提供サーバ20から受信し、推薦カテゴリ及び推薦アイテムを示す画像若しくは音声又はこれらの組み合わせを出力デバイス(例えば、ディスプレイ、スピーカ)から出力するよう動作する。
ネットワーク40は、通信ネットワーク、又は通信ネットワークと放送ネットワークの組み合わせである。ネットワーク40は、有線ネットワークでもよいし、無線ネットワークでもよいし、これらの組み合わせであってもよい。
なお、図1の構成例は、情報選択装置10の利用形態に関する一例に過ぎない。例えば、情報選択装置10を含むシステム1は、図2のように構成されてもよい。図2の例では、情報選択装置10は、ネットワーク40とは異なるネットワーク42を介してアイテム提供サーバ20と通信する。ネットワーク42は、例えばLAN(Local
Area Network)とされてもよく、セキュリティ確保の観点から、端末装置30から情報選択装置10への直接的なアクセスが制限されてもよい。
また、図1及び図2の例では、情報選択装置10は、アイテム提供サーバ20及び端末装置30から物理的に離間して配置されている。しかしながら、情報選択装置10は、これらいずれかと物理的に一体的に配置されてもよい。すなわち、情報選択装置10は、アイテム提供サーバ20と物理的に同一の装置(例えば、コンピュータシステム)として構成されてもよい。また、情報選択装置10は、端末装置30と物理的に同一の装置(例えば、コンピュータシステム)として構成されてもよい。
続いて以下では、情報選択装置10の構成例、及び情報選択装置10による推薦カテゴリ及び推薦アイテムの選択動作の一例について説明する。図3は、情報選択装置10の構成例を示すブロック図である。情報選択装置10は、情報選択部107を含む。情報選択部107は、ユーザに推薦される推薦カテゴリを決定する。情報選択部107は、さらに推薦アイテムを決定してもよい。図3の例では、情報選択部107は、推薦カテゴリを選択するカテゴリ選択部1071、推薦アイテムを選択するアイテム選択部1072、及びアイテムを推薦した場合の有用性を判定し、有用性があると判定されたアイテムの集合である推薦候補アイテム集合を作成する推薦有用性判定部1073を含む。しかしながら、情報選択装置10によって決定された推薦カテゴリに対応する推薦アイテムの選択は、情報選択装置10とは異なる他の装置、例えばアイテム提供サーバ20又は端末装置30、によって行われてもよい。
推薦有用性判定部(有用アイテム判定部)1073は、各々のアイテムを対象にして、そのアイテムを推薦アイテムとした場合の有用性を判定し、有用性があると判定されたアイテムの集合である推薦候補アイテム集合を作成する。例えば、ユーザが既に頻繁に利用しているアイテムは、ユーザがそのアイテムの存在を十分認識していると推測できるので、改めて推薦してみても従来以上の利用につながる可能性は低い。このため、ユーザの利用頻度が非常に高いアイテムは、有用性がない(有用性が低い)と判定する。また、ユーザが同じアイテムを1回のみ利用(例えば、購入、閲覧)することが多いアイテム提供サービスにおいては、ユーザが過去に利用したアイテムは、推薦有用性がないと判定する。また、過去においてユーザに提供していたが、今後はユーザに提供することが難しいアイテム、例えば、生産/販売が中止になったアイテムや在庫のないアイテムは、推薦有用性がないと判定する。また、アイテム提供サーバ20から期間限定で提供されるアイテムに関して、ユーザに推薦情報を提供する時点や期間と、アイテムを提供可能な期間とを勘案し、推薦有用性を判定する。
例えば、提供期間が終了したアイテムや、提供期間がかなり先の将来であるアイテムについては、有用性がないと判定する。そして、推薦有用性があると判定されたアイテム(推薦有用性がないと判定されたアイテム以外のアイテム)を推薦候補アイテム集合に入れる。
なお、有用性の有無や程度を表わす際に、「ある/ない」等の二値の表現を用いてもよいし、3種類以上の多値で表現してもよいし、数値で表現してもよい。例えば、アイテムの有用性を数値(有用度)で表現し、その値が所定値以上であるアイテムを推薦候補アイテム集合に入れるようにしてもよい。あるいは、有用度が高い順に所定数のアイテムを選択したり、有用度が高い順に所定割合(全アイテム数に対する割合)のアイテムを選択し、その選択したアイテムを推薦候補アイテム集合に入れてもよい。
カテゴリ選択部1071は、複数の候補カテゴリのそれぞれについて算出されたカテゴリ優先度に基づいて、利用主体識別子に対する推薦カテゴリを複数の候補カテゴリの中から選択するよう動作する。ここで、複数のカテゴリ優先度の各々は、推薦候補アイテム集合に属し、かつ各候補カテゴリに属するアイテムと利用主体との関連性の強さを示すアイテム関連度を用いて算出される。すなわち、カテゴリ優先度は、推薦カテゴリや推薦カテゴリの順位を決定するための尺度として用いられる。カテゴリ選択部1071は、カテゴリ優先度を計算する際に、カテゴリに属するアイテムと利用主体とのアイテム関連度を考慮する。
カテゴリ選択部1071は、カテゴリ優先度の大きさを考慮して、複数の候補カテゴリの中から推薦カテゴリを決定する。例えば、カテゴリ選択部1071は、カテゴリ優先度が高いものを推薦カテゴリとして優先的に選択してもよい。例えば、カテゴリ選択部1071は、カテゴリ優先度が高いものから順に所定数のカテゴリを推薦カテゴリとして選択してもよい。また、カテゴリ選択部1071は、複数の候補カテゴリのうちカテゴリ優先度が所定値以上のものを推薦カテゴリとしてもよい。
続いて以下では、カテゴリ優先度の計算に必要な各種パラメータ及び情報の求め方、及びカテゴリ優先度の計算例について説明する。カテゴリ優先度の計算に必要なアイテム関連度は、情報選択装置10によって導出されてもよいし、外部から情報選択装置10に供給されてもよい。例えば、管理者又はオペレータによって決定されたアイテム関連度を情報選択装置10に供給すればよい。アイテム関連度は、例えば、利用主体識別子と、アイテム識別子と、その両者の関連度を示すアイテム関連度とを対応付けたテーブル(すなわち、アイテム関連度テーブル)として外部の装置から情報選択装置10に供給されてもよい。
アイテム関連度を導出するためには、情報選択装置10又は外部の装置は、利用主体とアイテムとの関連性、類似性、嗜好性、又は相関性を分析すればよい。具体的には、情報選択装置10又は外部の装置は、複数の利用主体(ユーザ)の履歴(例えば、利用履歴、購入履歴、閲覧履歴、視聴履歴、評価履歴、又は検索履歴)を用いて、アイテム関連度を算出してもよい。例えば、情報選択装置10又は外部の装置は、ある利用主体xと他の利用主体x2が共に利用したことのあるアイテムの数を算出し、この数が多いほどユーザ間の類似度が高くなるようにユーザ間類似度を算出する。次に、利用主体xに関して、ユーザ間類似度が高い他の利用主体の集合である類似ユーザ集合を作成する。そして、類似ユーザ集合に属する利用主体により利用されたアイテムyを抽出し、類似ユーザ集合に属する利用主体がアイテムyを利用した利用回数D1を算出する。そして、この利用回数D1を利用主体xとアイテムyとのアイテム関連度W[x][y]とする。
類似ユーザ集合に属する利用主体により利用されていないアイテムに関しては、関連度を「0」とすればよい。なお、情報選択装置10又は外部の装置は、利用主体xと他の利用主体x2とのユーザ間類似度を、統計学の分野において用いられる共起性(co-occurrence)の尺度を用いて算出してもよい。例えば、利用主体xの利用したアイテムの集合と、利用主体x2が利用したアイテムの集合の2つの集合に対して、Jaccard係数、Simpson係数、コサイン尺度(コサイン距離)、又はピアソン積率相関係数などの共起性尺度を算出し、それを用いてユーザ間類似度を算出することができる。
また、類似ユーザ集合に属する利用主体がいずれかのアイテムを利用した回数の合計値D2を算出し、類似ユーザ集合に属する利用主体がアイテムyを利用した利用回数D1を算出し、D1をD2で割った値(D1÷D2)をアイテム関連度W[x][y]としてもよい。また、利用主体を類似ユーザ集合に限定せずに、いずれかの利用主体がアイテムyを利用した利用回数D3を算出し、D1をD3で割った値(D1÷D3)をアイテム関連度W[x][y]としてもよい。また、類似ユーザ集合に属する利用主体の中で、アイテムyを利用した利用主体の個数(ユーザの人数)を用いてアイテム関連度W[x][y]を算出してもよい。なお、全てのアイテムを対象にしてアイテム関連度を算出してもよいが、推薦候補アイテム集合に属するアイテムに限定してアイテム関連度を算出する方が効率よく処理ができる。
各候補カテゴリとアイテムとの対応関係(以下、アイテム−カテゴリ対応関係)は、情報選択装置10によって導出されてもよいし、外部から情報選択装置10に供給されてもよい。アイテム−カテゴリ対応関係は、例えば、アイテム識別子とカテゴリ識別子を対応付けたテーブル(すなわち、アイテム−カテゴリ対応テーブル)として予め定義されてもよい。また、アイテム−カテゴリ対応関係は、アイテム情報を示すテーブル又はデータベースにおいて、アイテムが属するカテゴリをアイテム属性の1つとして規定することによって定義されてもよい。1つのアイテムは1つのカテゴリだけに対応する(属する)という制約を設けてもよいし、そのような制約を設けずに、1つのアイテムを複数のカテゴリに対応させてもよい。
また、情報選択装置10又は外部の装置は、各アイテムがいずれのカテゴリと類似するかを分析し、アイテム−カテゴリ対応関係を導出してもよい。例えば、各アイテムと各カテゴリとの関係性の強さを示す異種関連度を用いて、アイテム−カテゴリ対応関係を導出してもよい。具体的には、アイテム毎に異種関連度が所定値以上のカテゴリを選択し、その選択されたカテゴリにアイテムが属していると判定する。ただし、所定値以上のカテゴリが存在しない場合は、異種関連度が最大のカテゴリにアイテムが属していると判定する。これにより、1つのアイテムは少なくとも1つのカテゴリに属することになる。別の方法として、アイテム毎に異種関連度が大きい順に所定数のカテゴリを選択し、その選択されたカテゴリにアイテムが属していると判定し、それ以外のカテゴリには属していないと判定してもよい。なお、この所定数を1として、異種関連度の最も高いカテゴリとアイテムとの対応関係を導出するようにしてもよい。この場合は、1つのアイテムがただ1つのカテゴリに対応することになる。
利用主体に対する推薦カテゴリを決定するために用いるカテゴリ優先度は、推薦候補アイテム集合に属し、かつ各候補カテゴリに属するアイテムと利用主体との関連性の強さを示すアイテム関連度の大きさを反映していればよい。したがって、複数のカテゴリ優先度の各々は、アイテム関連度の関数として算出されてもよい。例えば、複数のカテゴリ優先度の各々は、推薦候補アイテム集合に属し、かつ各候補カテゴリに属する複数のアイテムそれぞれと利用主体とのアイテム関連度を加算した値に応じた値であってもよい。また、複数のカテゴリ優先度の各々は、推薦候補アイテム集合に属し、かつ各候補カテゴリに属する複数のアイテムのうち、利用主体とのアイテム関連度が所定の閾値を上回るアイテムの数に応じた値であってもよい。また、推薦候補アイテム集合に属し、かつ各候補カテゴリに属するアイテムに関するアイテム関連度の最大値を用いてもよい。なお、複数のカテゴリ優先度も、情報選択装置10(すなわち、カテゴリ選択部1071)によって算出されてもよいし、外部から情報選択装置10に供給されてもよい。
図4は、カテゴリ選択部1071による推薦カテゴリの選択手順の一例を示すフローチャートである。なお、図4は、カテゴリ選択部1071がカテゴリ優先度を計算する例を示している。ステップS10では、カテゴリ選択部1071は、推薦情報を提供する対象である、処理対象の利用主体を選択する。第3の実施形態において詳述するが、情報選択装置10は端末装置30から推薦情報リクエストを受信し、それに含まれる利用主体識別子を抽出すればよい。また、推薦情報リクエストの受信とは非同期のタイミングで処理を行う場合には、ユーザがアイテム提供サービスを利用開始するにあたり登録されたユーザまたは端末装置の情報を格納するデータベース(ユーザ管理データベース)の中から、1つ以上の利用主体識別子を選択してもよい。また、ユーザの履歴(例えば、利用履歴、購入履歴、閲覧履歴、視聴履歴、評価履歴、又は検索履歴)に含まれる利用主体識別子の中から、1つ以上の利用主体識別子を選択してもよい。
ステップS11では、カテゴリ選択部1071は、ステップS10で選択された利用主体に関する推薦候補アイテム集合を取得する。
ステップS12では、カテゴリ選択部1071は、ステップS10で選択された利用主体とアイテムとのアイテム関連度であり、かつステップS11で取得した推薦候補アイテム集合に対応するアイテムのアイテム関連度を取得する。既に述べたように、アイテム関連度は、情報選択装置10によって動的に算出されてもよいし、オペレータ等によって静的に設定されてもよい。
ステップS13では、カテゴリ選択部1071は、各候補カテゴリについて、ステップS12で取得したアイテム関連度を用いてカテゴリ優先度を算出する。ステップS14では、カテゴリ選択部1071は、カテゴリ優先度の大きさを考慮して、ステップS10で選択された利用主体に対して、複数のカテゴリの中から推薦カテゴリを決定する。なお、ステップS10において、複数の利用主体を処理対象として選択し、ステップS11〜S14の各ステップにおいて、その選択された複数の利用主体全てに対する処理を行ってもよい。また、ステップS10において、1つの利用主体を選択し、ステップS11〜S14の各ステップにおいて、その1つの利用主体に対して処理を行い、ステップS14実行後に、必要に応じてステップS10に戻るループ処理を追加して、複数の利用主体に対する処理を行ってもよい。
上述したように、本実施形態では、推薦カテゴリを決定するための尺度であるカテゴリ優先度は、各候補カテゴリに属するアイテムのそれぞれと利用主体とのアイテム関連度の大きさを反映している。したがって、カテゴリ優先度に基づいて決定された推薦カテゴリは、利用主体との関連性、類似性、嗜好性、又は相関性を有するアイテムと対応付けられている可能性が高い。したがって、本実施形態で説明した情報選択装置10、及びこれによる推薦カテゴリの決定手法によれば、利用主体との間に高い関連性を有する推薦アイテムが存在する可能性が高い推薦カテゴリを決定することができる。
続いて図3のアイテム選択部1072について説明する。アイテム選択部1072は、推薦有用性判定部1073により決定された推薦候補アイテム集合に属し、かつカテゴリ選択部1071により決定された推薦カテゴリに属するアイテムの中から推薦アイテムを選択するよう動作する。アイテム選択部1072は、アイテム関連度に基づいて推薦アイテムを選択するとよい。これにより、利用主体との間に高い関連性を有するアイテムを推薦アイテムとして選択できる可能性が向上する。
具体的には、アイテム選択部1072は、推薦候補アイテム集合に属し、かつ推薦カテゴリに属するアイテムのうち、利用主体とのアイテム関連度が高いものを推薦アイテムとして優先的に選択してもよい。例えば、アイテム選択部1072は、推薦候補アイテム集合に属し、かつ推薦カテゴリに属するアイテムのうち、利用主体とのアイテム関連度が高いものから順に所定数のアイテムを推薦アイテムとして選択してもよい。また、アイテム選択部1072は、推薦候補アイテム集合に属し、かつ推薦カテゴリに属するアイテムのうち、利用主体とのアイテム関連度が所定値以上のものを推薦アイテムとしてもよい。
しかしながら、アイテム選択部1072は、複数の推薦アイテムのなかにアイテム関連度の低いアイテムを適度に含めてもよい。これにより、アイテム選択部1072は、推薦カテゴリに属する他のアイテムに比べて利用主体とのアイテム関連度が相対的に低いアイテムを推薦アイテムとして選択できるため、意外性の高いアイテムをユーザに推薦できる場合がある。これは、アイテムの新たな利用機会(例えば、購買機会、視聴機会)を創出できる可能性がある。
<第2の実施形態>
本実施形態では、第1の実施形態で説明した情報選択装置10による推薦カテゴリの決定手順の変形例について説明する。第1の実施形態では、候補カテゴリに属する各アイテムと利用主体とのアイテム関連度を用いて、各候補カテゴリのカテゴリ優先度を求める例について説明した。これに対して本実施形態に係る情報選択装置10は、各候補カテゴリのカテゴリ優先度を求めるために、アイテム関連度だけでなく、利用主体と候補カテゴリとの関連性の強さを示すカテゴリ関連度をさらに用いる。
カテゴリ関連度は、情報選択装置10によって導出されてもよいし、外部から情報選択装置10に供給されてもよい。アイテム関連度の導出と同様に、カテゴリ関連度を導出するためには、情報選択装置10又は外部の装置は、利用主体とカテゴリとの関連性、類似性、嗜好性、又は相関性を分析すればよい。例えば、カテゴリ関連度は、アンケート調査等により収集されたユーザの各カテゴリに対する興味の度合いを示すデータを基に算出されてもよい。また、情報選択装置10又は外部の装置は、複数の利用主体(ユーザ)の履歴(例えば、利用履歴、購入履歴、閲覧履歴、視聴履歴、評価履歴、又は検索履歴)を用いて、カテゴリ関連度を算出してもよい。例えば、情報選択装置10又は外部の装置は、ある利用主体xと他の利用主体x2が共に利用したことのあるアイテムの数またはカテゴリの数を算出し、この数が多いほどユーザ間の類似度が高くなるようにユーザ間類似度を算出する。
次に、利用主体xに関して、ユーザ間類似度が高い他の利用主体の集合である類似ユーザ集合を作成する。そして、アイテム−カテゴリ対応テーブルを参照しながら、類似ユーザ集合に属する利用主体により利用されたアイテムに対応するカテゴリpを特定し、類似ユーザ集合に属する利用主体がカテゴリpに対応するアイテムを利用した利用回数D5算出する。そして、この利用回数D5を利用主体xとカテゴリpとのカテゴリ関連度H[x][p]としてもよい。類似ユーザ集合に属する利用主体により利用されていないカテゴリに関しては、カテゴリ関連度を「0」とすればよい。
また、類似ユーザ集合に属する利用主体がいずれかのアイテムを利用した回数の合計値D2を算出し、類似ユーザ集合に属する利用主体がカテゴリpに対応するアイテムを利用した利用回数D5を算出し、D5をD2で割った値(D5÷D2)をカテゴリ関連度H[x][p]としてもよい。また、利用主体を類似ユーザ集合に限定せずに、いずれかの利用主体がカテゴリpに対応するアイテムを利用した利用回数D6を算出し、D5をD3で割った値(D5÷D6)をカテゴリ関連度H[x][p]としてもよい。また、類似ユーザ集合に属する利用主体の中で、カテゴリpに対応するアイテムを利用した利用主体の個数(ユーザの人数)を用いてカテゴリ関連度を算出してもよい。
なお、カテゴリ関連度を算出する際に、保存されている全ての履歴を用いてもよいし、履歴に利用日時が記録されている場合には、比較的新しい履歴のみを用いてもよい。全ての履歴を用いた方が、ユーザの長期的な嗜好がカテゴリ関連度に反映され易い。一方、ユーザの履歴の数が多い場合は、比較的新しい履歴のみに限定した方が、ユーザの最近の嗜好がカテゴリ関連度に反映されるので、好ましい場合がある。また、ユーザが利用したアイテムを除外せずに推薦候補アイテム集合が作成された場合(提供中止となったアイテム等を除外した場合)には、履歴に含まれていて、かつ推薦候補アイテム集合に属するアイテムに限定してアイテム情報を用い、カテゴリ関連度を算出してもよい。
上述の履歴を用いたカテゴリ関連度算出方法は、アイテム提供サーバ20によって提供されるアイテムの情報を用いた方法であるといえるが、アイテム提供サーバ20によって提供されるアイテム以外の情報に基づいてカテゴリ関連度を算出してもよい。例えば、アンケート調査により、各カテゴリに対するユーザの関心度合いを「大変興味がある」、「やや興味がある」、「どちらとも言えない」「あまり興味がない」、「全く興味がない」等の選択肢から選んで回答してもらい、その回答を数値化してカテゴリ関連度としてもよい。なお、アンケートの際には、アイテム提供サーバ20における実際のアイテムの品揃え(各カテゴリに対応してどんなアイテムが提供されているか等)をユーザにあまり意識させずに回答してもらった方が、ユーザのカテゴリに対する本来の関心度合いを精度よくアンケートデータに反映できる。更に、アイテム情報選択装置10およびアイテム提供サーバ20で使用するカテゴリの体系(例えば、音楽ジャンルとして「ロック」、「ジャズ」、「クラシック」、「フォーク」を用いる等)と同一のカテゴリ体系が使用されているのであれば、ユーザが他のサービスで回答したアンケートデータ等を用いてカテゴリ関連度を算出してもよい。同様に、情報選択装置10およびアイテム提供サーバ20で使用するカテゴリ体系と同一のカテゴリ体系を持ち、かつ情報選択装置10で扱う利用主体識別子と共通する利用主体識別子を使用している他のサービスが存在するのであれば、そのサービスにおけるユーザ履歴を用いて、カテゴリ関連度を算出してもよい。その場合、他のサービスがアイテム提供サーバ20によって提供されるアイテム以外のアイテム(非提供アイテム)を含めてアイテムを提供していれば、非提供アイテムの情報もカテゴリ関連度に反映されることになる。
カテゴリ優先度は、例えば以下のように求めることができる。利用主体xと、カテゴリpに対応するアイテムyとのアイテム関連度をW[x][y]とし、利用主体xと候補カテゴリpとのカテゴリ関連度をH[x][p]とする。そして、W[x][y]とH[x][p]の積(W[x][y]×H[x][p])を候補カテゴリpに対応し、かつ利用主体xの推薦候補アイテム集合に属するアイテムyについて加算した値V[x][p]を算出し、V[x][p]を候補カテゴリpのカテゴリ優先度とすればよい。また、候補カテゴリpに対応し、かつ推薦候補アイテム集合に属するアイテムの中から、W[x][y]が大きい順に所定数のアイテム、またはW[x][y]が所定値以上のアイテムを抽出し、その抽出したアイテムを対象にして、(W[x][y]×H[x][p])を加算した値V[x][p]を算出し、その値を候補カテゴリpのカテゴリ優先度としてもよい。また、W[x][y]を候補カテゴリpに対応し、かつ推薦候補アイテム集合に属する全てのアイテムについて加算した値WAを算出し、WAとH[x][p]との重み付き加算値をカテゴリ優先度としてもよい。
さらに、候補カテゴリpと推薦候補アイテム集合に属する任意のアイテムy’との異種関連度S[y’][p]が利用できる場合には、候補カテゴリpに対応するアイテムに限定せず、推薦候補アイテム集合に属する全てのアイテムを対象にしてカテゴリ優先度算出処理を行ってもよい。例えば、W[x][y’]とH[x][p]とS[y’][p]との積(W[x][y’]×H[x][p]×S[y’][p])を推薦候補アイテム集合に属する全てのアイテムy’について加算した値V’[x][p]を算出し、V’[x][p]を候補カテゴリpのカテゴリ優先度としてもよい。また、W[x][y’]とS[y’][p]との積(W[x][y’]×S[y’][p])を推薦候補アイテム集合に属する全てのアイテムy’について加算した値V’[x][p]を算出し、V’[x][p]を候補カテゴリpのカテゴリ優先度としてもよい。更に、第1の実施形態で説明したように、カテゴリ関連度を用いずにカテゴリ優先度を算出する場合には、W[x][y’]とS[y’][p]との積(W[x][y’]×S[y’][p])を推薦候補アイテム集合に属する全てのアイテムy’について加算した値V’[x][p]を算出し、V’[x][p]を候補カテゴリpのカテゴリ優先度としてもよい。
このような算出方法では、アイテムy’が候補カテゴリpに対応するか(属する)か否かといった二値的な判定をしておらず、異種関連度S[y’][p]をアイテムy’と候補カテゴリpとの対応情報として利用している。すなわち、利用主体xとアイテムy’とのアイテム関連度W[x][y’]、及びアイテムy’と候補カテゴリpとの対応情報である異種関連度S[y’][p]を用いて、カテゴリ優先度を算出している。なお、S[y’][p]が0より大きい場合に、アイテムy’と候補カテゴリpが属するとし、S[y’][p]が0である場合に、属さないと判定してもよい。また、S[y’][p]が所定値以上である場合に、アイテムy’が候補カテゴリに属すると判定し、所定値未満である場合に属さないと判定してもよい。すなわち、アイテムがカテゴリに属しているか否かの情報は、対応情報の内の1つである、ともいえる。
本実施形態に係る情報選択装置10の構成例は、第1の実施形態に示した構成例(図3)と同様である。図5は、本実施形態に係る情報選択装置10(すなわち、カテゴリ選択部1071)による推薦カテゴリの選択手順の一例を示すフローチャートである。図5のステップS20〜S22における処理は、図4のステップS10〜S12における処理と、それぞれ同様である。図5のステップS23では、利用主体と各候補カテゴリとのカテゴリ関連度を取得する。上述したように、このカテゴリ関連度は、情報選択装置10によって動的に算出されてもよいし、オペレータ等によって静的に設定されてもよい。ステップS24では、カテゴリ選択部1071は、各候補カテゴリについてカテゴリ優先度を算出する。ステップS25では、カテゴリ選択部1071は、カテゴリ優先度の大きさを考慮して、複数の候補カテゴリの中から推薦カテゴリを決定する。
上述したように、本実施形態で用いるカテゴリ優先度は、第1の実施形態のそれと同様に、各候補カテゴリに対応するアイテムのそれぞれと利用主体とのアイテム関連度の大きさを反映している。このため、本実施形態は、利用主体との間に高い関連性を有するアイテムが推薦カテゴリの中に存在しない可能性を減らすことができる。
さらに、本実施形態では、利用主体と候補カテゴリとのカテゴリ関連度の関数としてカテゴリ優先度を求める例を示した。これにより利用主体との関連性、類似性、嗜好性、又は相関性が強く、且つ利用主体との間に高い関連性を有するアイテムと十分に対応付けられている可能性の高い推薦カテゴリを決定することができる。
なお、候補カテゴリのカテゴリ優先度は、利用主体と候補カテゴリとのカテゴリ関連度が大きいほど高くなるように定めればよい。これにより、利用主体との関連性、類似性、嗜好性、又は相関性が強い候補カテゴリのカテゴリ優先度を大きくすることができる。しかしながら、候補カテゴリのカテゴリ優先度とカテゴリ関連度との関係は、利用主体とのカテゴリ関連度が非常に大きな候補カテゴリよりも、カテゴリ関連度が小さい候補カテゴリ、または中程度の候補カテゴリのカテゴリ優先度が高くなるように定められてもよい。これにより、意外性の高い推薦情報をユーザに提供できる可能性がある。例えば、カテゴリ関連度がそれ程高くなく、かつアイテム関連度の高いアイテムが多く対応しているカテゴリを推薦すると、ユーザが推薦情報に意外性を感じる可能性が高い。候補カテゴリのカテゴリ優先度は、利用主体とのカテゴリ関連度を所定の変換規則に入力して得られる拡張関連度の関数として算出されてもよい。拡張関連度の具体例は、以下の述べる第3の実施形態において詳細に説明される。
<第3の実施形態>
本実施形態では、第2の実施形態で説明した情報選択装置10による推薦カテゴリの決定手順の具体例について説明する。また、本実施形態では、推薦カテゴリの決定に必要なカテゴリ優先度およびアイテム関連度の計算の具体例についても説明する。さらに、本実施形態では、カテゴリ優先度の計算手法に関するいくつかのバリエーションを説明する。
<システム全体構成>
本実施形態に係る情報選択装置10を含むシステム1の構成例は、第1の実施形態で述べた例(例えば、図1及び図2)と同様である。以下では、図1に示した構成例を例にとって説明する。
<情報選択装置>
図6は、第3の実施形態における情報選択装置10の構成例を示すブロック図である。情報選択装置10は、第1の実施形態で説明した通り、情報選択部107を有する。さらに図6の構成例では、情報選択装置10は、メタデータ格納部101、利用履歴格納部102、カテゴリ関連度格納部103、関連度算出部104、アイテム関連度格納部105、表示制御情報作成部106、推薦情報格納部108、送受信部109、及び制御部110を有する。また、図6の情報選択装置10には、情報選択装置10の管理者向けに必要な情報を表示するための表示装置120(例えば、LCD(Liquid
Crystal Display)、OELD(Organic Electroluminescent Display)、CRT(Cathode Ray Tube)ディスプレイ)と、管理者が操作を行なうための入力装置130(例えば、キーボード、マウス、タッチパネル)が接続されている。
情報選択装置10は、既に述べた通り、一般的なコンピュータシステムを用いて構成されてもよい。例えば、情報選択装置10は、CPU、RAM、ROM、不揮発性記憶デバイス(例えば、HDD(Hard
Disc Drive)、フラッシュメモリ)、ネットワークインタフェース等を備える一般的なコンピュータを用いて構成することができる。すなわち、一般的なコンピュータは、以下で説明するような推薦カテゴリおよび推薦アイテムの選択に関する処理・アルゴリズムを行なうためのコンピュータプログラムを実行することにより、本実施形態に係る情報選択装置10として機能することができるようになる。
メタデータ格納部101は、アイテム情報、カテゴリ情報、及びアイテムとカテゴリの対応関係を示す情報を格納する。アイテム情報は、アイテム識別子、及びアイテム属性(例えば、アイテム名、アイテム説明、属するカテゴリ)を含む。カテゴリ情報は、カテゴリ識別子、及びカテゴリ属性(カテゴリ名、カテゴリ種別、カテゴリ説明)を含む。アイテムとカテゴリの対応関係は、第1の実施形態で説明した通り、アイテム−カテゴリ対応テーブルとして規定されてもよい。また、アイテムとカテゴリの対応関係は、アイテム情報において、アイテムが属するカテゴリをアイテム属性の1つとして規定することによって定義されてもよい。
図7(a)は、アイテム情報を記録するアイテム情報テーブル101Aの一例(101A−1)を示している。本図に示すように、アイテム情報テーブル101Aは、アイテム識別子(アイテムID)とアイテム属性情報を対応付けるテーブルである。図7(a)の例では、アイテム属性情報は、アイテムの「タイトル(アイテム名)」、「説明」、及び「アイテム時期」を含む。アイテム属性情報の「説明」は、アイテムのあらすじや要約、制作された背景説明などを示す。
「アイテム時期」は、アイテムの作成時期(時点)、アイテムの提供開始時期(時点)、アイテムの提供終了時期(時点)の3つの項目から構成されている。アイテムの作成時期の情報が存在しない場合には、代わりにアイテム提供サーバ20にアイテムが登録された時期を格納してもよいし、データなしを示す「NULL」を登録してもよい。アイテムの提供開始時期は、アイテム提供サーバ20からそのアイテムの提供が開始される時点である。また、アイテムの提供終了時期は、アイテム提供サーバ20からそのアイテムの提供が終了する時点である。提供終了時期が未定の場合は、「9999/12/31」のように、遠い未来の日付を格納すればよい。なお、図7(a)の例では、時期(時点)の表現形式として「2010年1月1日」などの日付を用いているが、他の表現形式を用いてもよい。例えば、「2010年1月1日 10時15分20秒」などの秒単位までの日時でもよいし、ミリ秒単位までの日時でもよい。あるいは、「2010年1月」などの月単位の表現形式でも、「2010年 1Q」などの四半期単位の表現形式でも、「2010年」などの年単位の表現形式でも、「2000年代」などの年単位より大まかな年代の表現形式でもよい。提供開始時期および提供終了時期の情報を格納することで、期間限定で提供されるアイテムであっても、その情報を適切に推薦情報に入れることができる。
図7(b)は、アイテム情報テーブル101Aの別の一例(101A−2)を示している。テーブル101A−2と101A−1との違いは、アイテム属性情報の1つとしてカテゴリ情報(例えば、カテゴリ名、カテゴリ識別子)を格納する点である。図7(b)に示す例では、1つのアイテムに対して最大2つのカテゴリが対応付けられる。もちろん、1つのアイテムに対して3つ以上のカテゴリを対応させてもよいし、1つのアイテムに1つのカテゴリのみ対応させるようにしてもよい。図7(b)におけるアイテム識別子「ItemID−2」のカテゴリ2は、該当するデータが存在しないことを意味する「NULL」に対応付けられている。本実施形態の以下の説明においては、アイテム情報テーブル101A−1を用いることとするが、これに代えてアイテム情報テーブル101A−2を用いる場合は、後述するアイテム−カテゴリ対応テーブル101Cを省略することができる。なお、図7(b)の「アイテム時期」も図7(a)と同様に、アイテムの作成時期(時点)、アイテムの提供開始時期(時点)、アイテムの提供終了時期(時点)の3つの項目から構成されているが、本図では詳細を省略している。
図7(c)は、カテゴリ情報を記録するカテゴリ情報テーブル101Bの一例を示している。本図に示すように、カテゴリ情報テーブル101Bは、カテゴリ識別子(カテゴリID)とカテゴリ属性情報を対応付けるテーブルである。カテゴリは、既に述べた通り、アイテムを分類するためのインデックスを意味する。1つのアイテムについて少なくとも1つのカテゴリが設定される。言い換えると、1つのアイテムは、少なくとも1つのカテゴリに対応付けられる。
図7(c)の例では、カテゴリ属性情報は、「カテゴリ種別」、「カテゴリ名」、及び「カテゴリ説明」を含む。カテゴリ種別(カテゴリタイプ)は、カテゴリの種類(大分類)を表わす。例えば、アイテムの「クリエイター(作成者)」をカテゴリ種別とすることができる。なおカテゴリ種別=「クリエイター」に属するカテゴリは、アイテムの制作者、監督、プロデューサー、執筆者、作曲者、作詞者、演奏者、出演者などを含む。すなわち、監督およびプロデューサーなどの人名が「カテゴリ名」に相当する。
また、カテゴリ種別として「ジャンル」を用いてもよい。例えば、アイテムが音楽コンテンツの場合、カテゴリ種別=「ジャンル」に属するカテゴリ(カテゴリ名)は、ロック、ジャズ、クラシック、フォーク、ブルース等を含む。アイテムが映画コンテンツの場合、カテゴリ種別=「ジャンル」に属するカテゴリ(カテゴリ名)は、SF、アクション、コメディ、アニメ、サスペンスなどを含む。
また、カテゴリ種別として「地域」を用いてもよい。例えば、カテゴリ種別=「地域」に属するカテゴリ名は、日本、アメリカ、イギリス、フランス、東京などの国又は地域名を含む。
また、カテゴリ種別として、アイテムの持つ雰囲気やアイテムを使用するのに適した雰囲気を表わす「ムード」を用いてもよい。この場合、カテゴリ種別=「ムード」に属するカテゴリ(カテゴリ名)は、癒し系、エキサイティング、ドラマティック、素朴、及び渋いといった用語であってもよい。
また、アイテムを使用するのに適した状況を示す「シチュエーション」をカテゴリ種別としてもよい。例えば、カテゴリ種別=「シチュエーション」に属するカテゴリ(カテゴリ名)は、就寝前、ジョギング、電車、ドライブ、勉強中などを含む。なお、アイテムが音楽コンテンツであり、「ムード」や「シチュエーション」などをカテゴリ種別として用いる場合には、情報選択装置10または他の装置は、特開2007−322598(JP
2007-322598 A)に開示されている技術を用いて楽曲をカテゴリに分類してもよい。
また、アイテムの価格帯や割引率に関するカテゴリ群を1つのカテゴリ種別に分類してもよい。例えば、当該カテゴリ種別に属するカテゴリ(カテゴリ名)は、高額品、ミドルレンジ価格帯、お買い得品、20%OFF、50%OFFなどを含む。また、アイテムのサイズや色に関するカテゴリ群を1つのカテゴリ種別に分類してもよい。もちろん、ここで挙げたアイテム属性情報とカテゴリ属性情報は、あくまでも例示であり、これらの例に限定される訳ではない。例えば、アイテム属性は、アイテムの価格情報を含んでもよい。
図7(d)は、アイテム−カテゴリ対応テーブル101Cの一例を示している。アイテム−カテゴリ対応テーブル101Cは、アイテム識別子とカテゴリ識別子を対応付けるテーブルであり、1つのアイテム識別子に対して任意の数のカテゴリ識別子を対応付けることができる。また、アイテム−カテゴリ対応テーブル101Cは、1つのカテゴリ識別子に対して任意の数のアイテム識別子を対応付けることができる。図7(d)に示す例では、「ItemID−1」に3つ、「ItemID−2」に1つ、「ItemID−3」に2つのカテゴリ識別子が対応している。また、1つのアイテムに複数のカテゴリが対応する場合、それらのカテゴリ種別は同じであってもよいし、異なっていてもよい。また、図7(d)には示していないが、アイテム識別子とカテゴリ識別子に加えて、更にアイテムとカテゴリ間の関連度である異種関連度をアイテム−カテゴリ対応テーブル101Cに格納してもよい。
異種関連度は、アイテム識別子とカテゴリ識別子と異種関連度を対応付けたテーブル(すなわち、異種関連度テーブル)として外部の装置から情報選択装置10に供給されてもよい。また、異種関連度を導出するために、特許文献1に記載されているようなカテゴリ毎のキーワードを記載したカテゴリ辞書を用いて導出してもよい。例えば、各アイテムに含まれるキーワード(例えば、商品名、商品説明、番組名、出演者名)のカテゴリ毎の出現回数を各アイテムに含まれるキーワードの全出現回数で割った値(カテゴリ毎のキーワードの相対出現率)を異種関連度としてもよい。
また別の方法として、異種関連度は、利用主体(ユーザ)と利用主体によって利用されたアイテムとを対応させた利用履歴と、各利用主体(ユーザ)と各カテゴリに対する興味の度合い(カテゴリ関連度)をアンケート調査等により収集したカテゴリ興味データとを用いて計算されてもよい。具体的には、あるアイテム(アイテムA)を利用したユーザ(ユーザ群B)を対象にして、カテゴリ毎にユーザ群Bのカテゴリ関連度の合計(カテゴリ別合計)を算出し、そのカテゴリ別合計をユーザ群Bでのカテゴリ関連度の総合計で割った値を異種関連度としてもよい。例えば、アイテムAを3人のユーザ(U1,U2、U3)が利用しており、U1のカテゴリ1に対する関連度が「1.0」、カテゴリ2に対する関連度が「0.5」、U2のカテゴリ1に対する関連度が「0.8」、カテゴリ2に対する関連度が「0.3」、U3のカテゴリ1に対する関連度が「0.0」、カテゴリ2に対する関連度が「0.4」である場合、カテゴリ1の関連度の合計は「1.0+0.8+0.0=1.8」、カテゴリ2の関連度の合計は「0.5+0.3+0.4=1.2」となる。また、3人のユーザの関連度の総合計は「1.0+0.5+0.8+0.3+0.0+0.4=3.0」なので、アイテムAとカテゴリ1との異種関連度は「1.8÷3.0=0.6」、アイテムAとカテゴリ2との異種関連度は「1.2÷3.0=0.4」となる。
なお、カテゴリ関連度の合計値を算出するのではなく、カテゴリ関連度が所定値(例えば「0.5」)以上のユーザの数(支持ユーザ数)をカテゴリ毎にカウントし、その支持ユーザ数をアイテムAを利用した全ユーザ数で割った値を、アイテムAと各カテゴリとの異種関連度としてもよい。例えば、上記の例で関連度が0.5以上のユーザ数をカウントすると、カテゴリ1の支持ユーザ数は「2人」、カテゴリ2の支持ユーザ数は「1人」になるので、アイテムAとカテゴリ1との異種関連度は「2÷3=0.667」、アイテムAとカテゴリ2との異種関連度は「1÷3=0.333」となる。さらにユーザがアイテムを利用した回数を用いて異種関連度を算出してもよい。
異種関連度を省略した場合は、アイテム−カテゴリ対応テーブル101Cに格納されているアイテムとカテゴリの組合せは、全て異種関連度が一定値(例えば、「1」)であることに相当する。
なお、第1の実施形態で述べたように、情報選択装置10は、外部の装置から必要に応じてアイテム又はカテゴリに関する情報(すなわち、メタデータ)を取得してもよい。この場合、メタデータ格納部101は省略されてもよい。例えば、情報選択装置10は、アイテム提供サーバ20(e.g.後述するアイテム格納部202)からメタデータを取得してもよい。
送受信部109は、ネットワーク40(図2の構成例の場合は、さらにネットワーク42)を介して、アイテム提供サーバ20または端末装置30との間でデータを送受信する。
制御部110は、情報選択装置10の全体の制御を行なうための種々の処理を行なう。例えば、後述するように、制御部110は、アイテム提供サーバ20または端末装置30から送信される利用リクエストを送受信部109を介して受信し、利用リクエストに含まれるユーザ識別子とアイテム識別子を対応付ける利用履歴情報を利用履歴格納部102に格納する。
利用履歴格納部102は、ユーザによるアイテム利用履歴を示す情報を格納する。アイテム利用履歴は、例えば、テーブル形式(アイテム利用履歴テーブル102と呼ぶ)で格納されてもよい。本実施形態では、アイテム利用は、ユーザからの利用リクエストに対してアイテム提供サーバ20がアイテムを提供することにより実行される。なお、本実施形態では、利用主体識別子としてユーザ識別子(ユーザID)を用いてユーザが識別される例を主に説明するが、例えば端末装置30として携帯電話が用いられる場合、端末識別子(端末ID)がユーザ識別子の代わりに用いられてもよい。端末識別子は、例えば、情報選択装置10又はアイテム提供サーバ20と端末装置30との接続時に取得することができる。また、例えば端末装置30としてパーソナルコンピュータ等を用いる場合には、ユーザ識別子の代わりにCookie又はこれに類似する識別情報を用いて、Webブラウザ又は端末装置30を識別してもよい。上述したように、ユーザまたはユーザの利用する端末装置を「利用主体」と称し、ユーザ識別子と端末識別子とを合わせて、「利用主体識別子」と称する。
アイテム利用履歴テーブル102Aは、利用履歴情報の格納のために種々の格納形態を採用することができる。例えば、図8(a)のアイテム利用履歴テーブル102A−1に示すように、利用主体識別子とアイテム識別子とを関連付けて格納することができる。本例では、1つの利用リクエストが、テーブル102A−1の1行に対応している。テーブルの1行目と4行目がともに「UserID−1」と「ItemID−3」の組み合わせであることから分かるように、利用主体識別子とアイテム識別子の組み合わせが同じであっても、利用リクエスト毎にテーブル行のデータが追加される。このため、他の処理部(例えば、関連度算出部104)は、アイテム識別子が示すアイテム毎の利用回数、およびアイテム毎の利用ユーザ数を容易にカウントできる。なお、1つの利用リクエストに複数のアイテム識別子が含まれている場合は、アイテム識別子の数だけのテーブル行を割り当てて格納すればよい。
図8(b)に示すアイテム利用履歴テーブル102A−2は、利用主体識別子、アイテム識別子、及びアイテム利用時期を関連付けて格納する例である。図8(a)に示したアイテム利用履歴テーブル102A−1と同様に、1つの利用リクエストがテーブル102A−2の1行に対応している。利用リクエストがアイテム利用時期を示す場合、制御部110は、利用リクエストから取り出されたアイテム利用時期情報をテーブル102A−2に格納させる。利用リクエストにアイテム利用時期情報が含まれていない場合、制御部110は、例えば情報選択装置10に内蔵されている時計を用いて、情報選択装置10が利用リクエストを受信した時期(時点)を利用時期情報として用いればよい。
図8(b)の例は、アイテム利用時期の表現形式として、「2010年1月1日 10時15分20秒」などの秒単位までの日時を用いている。しかしながら、アイテム利用時期は、ミリ秒単位までの日時、日単位までの日付、月単位、年単位などの任意の形式で表されてもよい。なお、利用リクエストは、ユーザによるアイテムに対する評価値(例えば、好き=3、どちらでもない=2、嫌い=1、などの好き嫌いの度合いを示す数値)を含んでもよい。この場合、アイテム利用履歴テーブル102A−2は、利用主体識別子、アイテム識別子、アイテム利用時期、及び当該アイテム評価値を関連付けて格納してもよい。
図8(c)に示すアイテム利用履歴テーブル102A−3は、利用主体識別子、アイテム識別子、及びアイテム利用回数を関連付けて格納する例である。後述するように、関連度算出部104がアイテム利用時期を用いない場合は、アイテム利用履歴テーブル102A−3を用いることで利用履歴格納部102の記憶容量を削減することができる。また、ユーザによるアイテムに対する評価値(アイテム評価値)が利用リクエストに含まれる場合は、アイテム利用履歴テーブル102A−3は、利用主体識別子、アイテム識別子、アイテム利用回数、及び最新のアイテム評価値を関連付けて格納してもよい。
カテゴリ関連度格納部103は、利用主体識別子とカテゴリ識別子の組み合わせについてのカテゴリ関連度を格納する。カテゴリ関連度は、例えば、テーブル形式(カテゴリ関連度テーブル103Aと呼ぶ)で格納されてもよい。図9(a)は、カテゴリ関連度テーブル103の一例であるテーブル103A−1を示している。テーブル103A−1は、利用主体識別子とカテゴリ識別子とこれらのカテゴリ関連度を対応付ける。カテゴリ関連度は、例えば、0以上1以下の数値によって表すことができる。ここでは、カテゴリ関連度の値が1であるときに利用主体(ユーザ)とカテゴリとの関連性、類似性、嗜好性、又は相関性が最も高いことを表し、0であるときに最も低いことを表わす。例えば、図9(a)は、「UserID−1」と「CategoryID−2」とのカテゴリ関連度が「0.85」であることを示している。
また、図9(b)は、カテゴリ関連度テーブル103Aの他の例であるテーブル103A−2を示している。テーブル103A−2は、マトリクス形式のテーブルである。このマトリクスの行および列の一方が利用主体識別子に対応しており、他方がカテゴリ識別子に対応している。また、カテゴリ関連度テーブル103Aは、他の方法で作成されてもよい。本実施形態では、後述するように、関連度算出部104が、利用履歴格納部102に格納されたデータを用いてカテゴリ関連度を算出し、カテゴリ関連度テーブル103Aを作成する。しかしながら、カテゴリ関連度は他の方法を用いて算出されてもよい。
推薦情報格納部108は、情報選択部107で選択された推薦カテゴリ及び推薦アイテムを含む推薦情報を記録する。推薦情報は、例えば、テーブル形式(推薦情報テーブル108Aと呼ぶ)で格納されてもよい。推薦情報テーブル108Aは、ユーザ識別子(利用主体識別子)、推薦カテゴリ識別子、及び推薦アイテム識別子を対応付ける。また、テーブル108Aは、これらの識別子に加えて、推薦カテゴリの推薦順位及び推薦アイテムの推薦順位の少なくとも一方を記録してもよい。
図10は、推薦情報テーブル108Aの一例を示している。利用主体識別子は、推薦情報を出力するトリガーとなる推薦リクエストに含まれるアイテム識別子に対応するものである。推薦リクエストについては後述する。推薦カテゴリ識別子は、利用主体識別子に対応して推薦されるカテゴリの識別子である。推薦アイテム識別子は、推薦カテゴリに属するアイテム群の中で利用主体との関連度が高いアイテムの識別子である。すなわち、推薦情報テーブル108Aにて関連付けられた推薦カテゴリ識別子と推薦アイテム識別子は、アイテム−カテゴリ対応テーブル101Cにおいても関連付けられている。
図10の例に示すように、利用主体識別子毎に推薦カテゴリ識別子(推薦カテゴリ)の個数が異なっていてもよい。また、推薦カテゴリ識別子(推薦カテゴリ)毎に、それに対応する推薦アイテム識別子(推薦アイテム)の個数が異なっていてもよい。ある利用主体識別子に対応する推薦カテゴリ識別子が1つのみであってもよい。ただし、本実施形態では、推薦情報テーブル108Aは、複数の推薦カテゴリ識別子を持つ利用主体識別子を1つ以上含むことが望ましい。
図10におけるカテゴリ順位は、利用主体識別子毎に推薦カテゴリの推薦順位を示している。図10の例では、カテゴリ順位の番号が小さいカテゴリほど優先順位が高く、優先的にユーザに提示される。また、アイテム順位は、利用主体識別子と推薦カテゴリ識別子の組み合わせ毎に推薦アイテムの推薦順位を示している。図10の例では、アイテム順位の番号が小さいアイテムほど優先順位が高く、優先的にユーザに提示されるものとする。図10では、各々の利用主体識別子に対して、カテゴリ順位の高い順に推薦カテゴリ識別子を格納している。しかしながら、カテゴリ順位と対応付けて推薦カテゴリ識別子を格納する場合、推薦カテゴリは適当な順序で格納されてもよい。推薦アイテム識別子の格納順序についても同様である。
なお、カテゴリ順位およびアイテム順位の代わりに、数値が大きいほど優先順位が高いことを示す推薦度が用いられてもよい。すなわち、推薦度の値が大きいカテゴリ又はアイテムほど優先的にユーザに提示される。また、推薦情報テーブル108Aは、利用主体識別子毎に推薦順位の高い順(または推薦順位の低い順)に推薦カテゴリ識別子を格納する規則に従って作成されてもよい。これにより、テーブル108Aへのカテゴリ推薦順位の格納を省略することができる。また、これと同様の規則を推薦アイテム識別子に適用することによって、アイテム推薦順位を省略してもよい。あるいは、テーブル108Aに記録された全ての推薦カテゴリ識別子(又は全ての推薦アイテム識別子)は同じ推薦順位として扱われてもよいし、テーブル108Aから読み出された推薦カテゴリ(又は推薦アイテム)に対してランダムに推薦順位が付与されてもよい。
関連度算出部104は、利用履歴格納部102に格納されたデータを用いて、利用主体とアイテムとの組み合わせについてアイテム関連度を算出し、これらをアイテム関連度格納部105に格納させる。なお、第1の実施形態で述べたように、アイテム関連度は管理者又はオペレータによって予め定義されてもよいし、外部の装置から情報選択装置10に供給されてもよい。この場合、関連度算出部104は、省略されてもよい。
また、関連度算出部104は、ユーザとカテゴリの組み合わせに対するカテゴリ関連度を算出し、算出したカテゴリ関連度をカテゴリ関連度格納部103に格納させてもよい。
アイテム関連度格納部105は、関連度算出部104により算出された、利用主体とアイテムとの組み合わせについてのアイテム関連度を格納する。アイテム関連度は、例えば、テーブル形式(アイテム関連度テーブル105Aと呼ぶ)で格納されてもよい。図11は、アイテム関連度テーブル105Aの一例を示している。本図の例では、利用主体識別子「UserID−1」に対応する関連アイテム識別子をL1個、利用主体識別子「UserID−2」に対応する関連アイテム識別子をL2個格納している。ここで、L1とL2は同数であってもよいし、異なっていてもよい。
すなわち、テーブル105Aは、すべての利用主体識別子に対して同じ数の関連アイテム識別子を格納してもよいし、利用主体識別子毎に任意の数の関連アイテム識別子を格納してもよい。また、テーブル105Aは、関連度算出部104によって算出された利用主体とアイテムの全ての組み合わせに関するアイテム関連度を格納してもよいし、ある利用主体識別子とのアイテム関連度が相対的に高い関連アイテム識別子のみを関連アイテム集合として格納してもよい。一部のみを格納することにより、アイテム関連度格納部105の記憶容量を削減することができる。また、図11に示すように、テーブル105Aは、利用主体識別子毎に、アイテム関連度の大きい順に関連アイテム識別子を格納してもよい。
1つの利用主体識別子に対応する関連アイテム識別子の個数は、基本的には複数であるが1であってもよい。ただし、少なくとも1つの利用主体識別子において、関連アイテム識別子が2以上であることが望ましい。なお、情報選択装置10以外の他の装置で算出されたアイテム関連度をアイテム関連度テーブル105Aに記録してもよく、その場合に関連度算出部104は省略されてもよい。
情報選択部107は、カテゴリ関連度格納部103およびアイテム関連度格納部105に格納されたデータを用いて、ユーザに提示されるべき推薦カテゴリ及び推薦アイテムを選択する。そして、情報選択部107は、推薦カテゴリ及び推薦アイテムを含む推薦情報を作成し、推薦情報格納部108(例えば、推薦情報テーブル108A)に格納する。
<アイテム提供サーバ>
アイテム提供サーバ20は、端末装置30からの要求に応じて、アイテム又はアイテムに関する情報を提供する。図12は、アイテム提供サーバ20の構成例を示すブロック図である。図12の例では、アイテム提供サーバ20は、ユーザ管理部201、アイテム格納部202、データ格納部203、送受信部204、及び制御部205を有する。
アイテム提供サーバ20は、一般的なコンピュータシステムを用いて構成されてもよい。例えば、アイテム提供サーバ20は、CPU、RAM、ROM、不揮発性記憶デバイス(例えば、HDD(Hard
Disc Drive)、フラッシュメモリ)、ネットワークインタフェース等を備える一般的なコンピュータを用いて構成することができる。すなわち、一般的なコンピュータは、以下で説明するようなアイテム又はアイテム情報の提供に関する処理・アルゴリズムを行なうためのプログラムを実行することにより、アイテム提供サーバ20として機能することができるようになる。
送受信部204は、ネットワーク40(図2の構成の場合は、さらにネットワーク42)を介して情報選択装置10および端末装置30との間でデータを送受信する。制御部205は、アイテム提供サーバ20の全体の制御を行なう。
ユーザ管理部201は、端末装置30を利用するユーザを識別するためのユーザ識別子、または端末装置30を識別するための端末識別子、つまり利用主体識別子を格納する。アイテム提供サーバ20は、例えば、ユーザにアイテム利用を開始させる前に入会処理等を行い、入会処理の終了したユーザに関する利用主体識別子を記憶部(不図示)に格納させる。また、アイテム提供サーバ20は、ログイン名、パスワード、氏名、生年月日、連絡先、決済方法等のユーザ属性情報を利用主体識別子に関連付けてユーザ管理部201に格納させるようにしてもよい。
アイテム格納部202は、アイテム提供サーバ20が提供するアイテムに関する情報を格納する。アイテム格納部202は、情報選択装置10のメタデータ格納部101と同様な情報を格納する。ただし、アイテムがデジタルコンテンツであって、ネットワーク40を介した端末装置30へのアイテム提供(すなわち、コンテンツ配信)が可能である場合には、アイテム格納部202は、メタデータ格納部101のデータに加えて、アイテム識別子と、アイテム本体(デジタルコンテンツ等のデータ)とを対応付けて格納する。
なお、制御部205は、アイテム格納部202が更新されたことに応じて、または所定のスケジュールに従って、アイテム格納部202のデータを、送受信部204を介して情報選択装置10に送信し、メタデータ格納部101に格納させるようにしてもよい。反対に、制御部205は、メタデータ格納部101のデータを情報選択装置10から受信し、アイテム格納部202に格納させるようにしてもよい。あるいは、情報選択装置10は、アイテム属性情報を要求するメッセージをアイテム提供サーバ20に送信してもよい。そして、制御部205は、要求メッセージに応じたデータをアイテム格納部202から読み出して、送受信部204を介して情報選択装置10に送信してもよい。
データ格納部203は、様々なデータを格納することができる。例えば、情報選択装置10の推薦情報格納部108に格納されたデータをコピーしてデータ格納部203に格納することができる。この場合、端末装置30は、アイテム提供サーバ20から推薦情報を受信することができるので、情報選択装置10の処理負荷を低減することができる。また、データ格納部203は、情報選択装置10の利用履歴格納部102と同様なデータを格納してもよい。この場合、情報選択装置10からデータ格納部203を参照できるようにして、情報選択装置10の利用履歴格納部102を省略することも可能である。
<端末装置>
端末装置30は、ユーザが使用する装置である。図13は、端末装置30の構成例を示すブロック図である。図13の例では、端末装置30は、制御部301、送受信部302、ブラウザ部303、及びアプリケーション部304を有する。端末装置30は、CPU、RAM、ROM、不揮発性記憶デバイス(例えば、HDD(Hard
Disc Drive)、フラッシュメモリ)、ネットワークインタフェース等を備える一般的なコンピュータを用いて構成することができる。すなわち、一般的なコンピュータは、以下で説明するようなアルゴリズム・処理を行なうためのプログラムを実行することにより、端末装置30として機能することができるようになる。また、コンピュータシステムとしての端末装置30は、Webブラウザ機能を備えた携帯電話、スマートフォン、タブレットコンピュータ等でもよい。
制御部301は、端末装置30の全体の制御を行う。送受信部302は、ネットワーク40(図2の構成の場合は、さらにネットワーク42)を介して端末装置30又は情報選択装置10との間でデータを送受信する。
ブラウザ部303は、HTTP(Hypertext Transfer Protocol)プロトコル、HTTPS(HTTP over Secure Socket
Layer)プロトコル等を用いて、サーバ(例えば、WWW(World Wide Web)サーバ)からHTML(Hypertext Markup
Language)文書、画像等を含むWebページを取得し、Webページに基づく情報を表示装置320に出力するよう動作する。ブラウザ部303は、更に、スクリプト言語等で記述されたプログラムを解釈し、実行する機能を持っていてもよい。例えば、ブラウザ部303の機能は、コンピュータシステムとしての端末装置30がWebブラウザ・プログラムを実行することによって実現できる。
アプリケーション部304は、端末装置30の用途又はユーザの指示に応じて、アプリケーションレイヤにおける種々の処理を行う。アプリケーション部304の機能は、コンピュータシステムとしての端末装置30が種々のアプリケーションプログラムを実行することによって実現できる。
端末装置30が例えばパーソナルコンピュータである場合には、表示装置320(例えば、LCD、OELD、CRTディスプレイ)、およびユーザからの操作指示を受け付けるための入力装置330(例えば、キーボード、マウス、タッチパネル、トラックボール、リモコン)が接続されてもよい。端末装置30が携帯電話端末、スマートフォン、タブレットコンピュータ等である場合、一般的に、表示装置および入力装置は端末装置30に一体的に配置される。以下では、便宜的に表示装置320および入力装置330が端末装置30に接続されているものとして説明する。
<システム動作>
<システム全体の動作>
図14のフローチャートを参照して、情報選択装置10、アイテム提供サーバ20、及び端末装置30を含むシステム1全体の動作の一例を説明する。まず、ステップS100において、端末装置30は、ブラウザ部303を用いて、アイテム提供サーバ20のURL(Uniform
Resource Locator)にアクセスする。具体的には、アイテム提供サーバ20の提供する所定のWebページへのリクエスト(利用開始リクエスト)をアイテム提供サーバ20に送信する。
端末装置30が例えばパーソナルコンピュータである場合、端末装置30は、ユーザによるログイン名(ユーザID)及びパスワードの入力を受け付け、これらを含む利用開始リクエストを送信してもよい。この場合は、ステップS100の前に、ログイン名及びパスワードの入力を受け付けるためのHTML(Hyper
Text Markup Language)データ等をアイテム提供サーバ20から端末装置30に送信しておけばよい。あるいは、端末装置30は、ログイン名及びパスワードの送信を省略するために、Cookie又はこれと同様の技術を用いて、端末装置30を利用するユーザまたはブラウザを識別可能なデータを含む利用開始リクエストを送信してもよい。また、端末装置30が携帯電話端末、スマートフォン、タブレットコンピュータ等である場合、ログイン名及びパスワードの送信を省略するために、端末識別子を含む利用開始リクエストを送信してもよい。
ステップS110において、アイテム提供サーバ20の制御部205は、端末装置30からの利用開始リクエストを送受信部204を介して受信し、ユーザ管理部201を参照することによって登録済のユーザか否かを判定する。具体的には、利用開始リクエストがログイン名およびパスワードを含む場合は、制御部205は、それらをユーザ管理部201に格納されているログイン名およびパスワードと照合すればよい。また、利用開始リクエストが端末識別子を含む場合は、制御部205は、それがユーザ管理部201に格納されている利用主体識別子と一致するか判定すればよい。登録済のユーザ又は端末である場合(S110でYes)はステップS130に進み、そうでない場合(S110でNo)はステップS120に進む。
ステップS120において、アイテム提供サーバ20の制御部205は、入会処理のためのWebページ(HTML)を送受信部204を介して端末装置30に送信する。本図には示していないが、端末装置30を利用するユーザは、入力装置330を利用して入会処理のWebページに必要な情報を入力し、アイテム提供サーバに送信する操作を行う。これにより、アイテム提供サーバ20は、その情報をユーザ管理部201に格納することを含む入会処理を行う。端末装置30は、入会処理完了後に、改めて利用開始リクエストを送信してもよい。ステップS130以降の各ステップにおいて、情報選択装置10およびアイテム提供サーバ20は必要に応じて、端末装置30を使用しているユーザのユーザ識別子または端末装置30の端末識別子である利用主体識別子を取得することができる。
ステップS130において、アイテム提供サーバ20の制御部205は、アイテム格納部202を参照しながら、利用開始リクエストに対応するWebページの応答データを作成し、受信部204を介して端末装置30に送信する。この応答データは、カテゴリ及びアイテムの少なくとも一方を紹介する情報を含んでいる。応答データは、HTMLデータ、画像データ、映像データ、音声データなどで構成されており、複数回に分けて端末装置30に送信されてもよい。また応答データは、Cookie等の技術を用いてユーザ又は端末装置30を識別するための情報を含んでもよい。
ステップS140において、端末装置30は、アイテム提供サーバ20から応答データを受信し、表示装置320にその情報を表示する。表示画面の例を図15に示す。本図の例は、アイテム提供サーバ20が最近提供を開始した「新着アイテム」を紹介する表示画面である。本図に示すようなアイテムを紹介する情報は、種々のタイミングでアイテム提供サーバ20から端末装置30に送信することができる。なお、ステップS130で送信される応答データは、もちろん「新着アイテム」を紹介するページに限らず、種々のページであってよい。一般的なインターネットサイトのトップページに相当するページであってもよい。
図15において「アイテムABC」は1番目のアイテムのタイトルであり、「SF」は1番目のアイテムが属するカテゴリ名であり、「このアイテムは、2001年に制作された映画で…」という表示は1番目のアイテムに関する説明(アイテム説明)である。図15の例は、端末装置30を使用中のユーザに対して、推薦情報を提供するためのボタン又はリンク等(以下では、推薦リンクと称する)を示す表示要素1401を含む。また、1番目のアイテムを利用するためのボタン又はリンク等(以下では、利用リンクと称する)を示す表示要素1402を含む。
ユーザは、入力装置330を使用したクリック等の操作により、推薦リンク(表示要素1401)または利用リンク(表示要素1402)を選択することができる。なお表示画面には表示されないが、応答データには、利用主体識別子が含まれており、推薦リンクには利用主体識別子が対応付けられている。また応答データには、各々のアイテムのアイテム識別子が含まれており、各々の利用リンクには、選択対象となるアイテムのアイテム識別子および利用主体識別子が対応付けられている。
図14のフローチャートに戻って説明を続ける。ステップS150において、端末装置30は、推薦リンクがユーザから入力装置330を介して選択されたか否かを判定する。推薦リンクが指定された場合(Yes)はステップS160に進み、指定されていない場合(No)はステップS190に進む。
ステップS160において、端末装置30は、推薦リンクに対応するURLにリクエスト(推薦リクエスト)を送信する。本実施形態では、推薦リンクが情報選択装置10の所定のURLに対応する場合を説明するが、推薦リンクをアイテム提供サーバ20の所定のURLに対応させてもよい。推薦リクエストは、推薦リンクに対応付けられた利用主体識別子を含む。この推薦リクエストに含まれる利用主体識別子を以下では、「リクエスト識別子」と称する。また、推薦リクエストは、必要な推薦情報の個数(例えば、推薦カテゴリの個数、各推薦カテゴリの推薦アイテムの個数など)に関する情報を含んでもよい。
ステップS170において、情報選択装置10の制御部110は、送受信部109を介して、推薦リクエストを受信し、それに含まれるリクエスト識別子に対応する表示用推薦データ(すなわち、表示制御情報)を表示制御情報作成部106に作成させる。そして、制御部110は、作成された表示用推薦データを端末装置30に送信する。
表示制御情報作成部106は、図10に示した推薦情報格納部108の推薦情報テーブル108Aを参照しながら、リクエスト識別子に一致する利用主体識別子を特定し、それに対応する推薦カテゴリ識別子とカテゴリ順位とを読み出す。また、表示制御情報作成部106は、推薦カテゴリ識別子毎に、対応する推薦アイテム識別子とアイテム順位を読み出す。さらに、表示制御情報作成部106は、読み出した推薦カテゴリ識別子に対応するカテゴリ属性情報(例えば、カテゴリ種別、カテゴリ名、カテゴリ説明)をカテゴリ情報テーブル101Bから読み出す。さらにまた、表示制御情報作成部106は、読み出した推薦アイテム識別子に対応するアイテム属性情報(例えば、タイトル、アイテム説明、アイテム時期)をメタデータ格納部101のアイテム情報テーブル101Aから読み出す。そして、表示制御情報作成部106は、それら読み出したデータを用いて表示用推薦データを作成する。
表示用推薦データ(すなわち、表示制御情報)は、端末装置30のブラウザ部303が解釈可能なHTML(Hyper Text Markup Language)などで記述されたデータである。表示制御情報作成部106は、端末装置30に接続された表示装置320において、推薦カテゴリのカテゴリ属性情報の表示位置がカテゴリ順位に応じて変わるように、表示用推薦データを作成してもよい。カテゴリ順位はカテゴリ優先度によって決まるため、カテゴリ優先度に応じてカテゴリ属性情報の表示位置を決めているといえる。また、表示制御情報作成部106は、推薦アイテムのアイテム属性情報の表示位置がアイテム順位に応じて変わるように、表示用推薦データを作成してもよい。また、表示用推薦データは、リクエスト識別子を含んでもよい。
参考として図10に示した例を用いて説明する。リクエスト識別子が「UserID−10」である場合を考える。表示制御情報作成部106は、リクエスト識別子(UserID−10)と同じ利用主体識別子に対応付けられた3つの推薦カテゴリ識別子「CategoryID−100」、「CategoryID−102」、及び「CategoryID−110」と、これらのカテゴリ順位「1」、「2」、及び「3」を読み出す。さらに、表示制御情報作成部106は、「CategoryID−100」に対応付けられた3つの推薦アイテム識別子「ItemID−20」、「ItemID−25」、「ItemID−11」と、これらのアイテム順位「1」、「2」、「3」を読み出す。他の推薦カテゴリ識別子についても同様である。ただし、表示制御情報作成部106は、特定した利用主体識別子に対応する推薦カテゴリ識別子および推薦アイテム識別子をすべて読み出してもよいし、カテゴリ順位およびアイテム順位の高い順に所定数を読み出してもよい。また推薦リクエストが推薦情報の個数を指定している場合、表示制御情報作成部106は、推薦順位の高い順にその個数だけ推薦カテゴリ識別子又は推薦アイテム識別子を読み出してもよい。
ステップS170において、推薦情報テーブル108Aから読み出した推薦アイテムの有用性を改めて判定し、有用性のないアイテムが存在する場合は、それを表示用推薦データに含めない処理を行うことが望ましい。後述するように、推薦情報選択処理において、推薦アイテム候補集合(有用性のあるアイテム集合)の中から推薦アイテムを決定し、推薦情報テーブル108Aに格納するが、推薦情報選択処理が実行された時点からステップS170が実行される時点までの間に時間差があるのが一般的であるため、この期間にアイテムの有用性が変化する可能性がある。このため、ステップS170において、改めてアイテムの有用性を判定することが望ましい。例えば、推薦情報選択処理が実行された時点では、提供中であったが、ステップS170実行時点では、提供中止となったアイテムが存在する可能性がある。また、サービスの特性に応じて、利用主体が所定回数以上利用したアイテムは有用でないと判定する場合、上記期間に利用回数が変化している可能性がある。例えば、ユーザが1回以上利用したアイテムは有用性がないと判定する場合には、表示制御情報作成部106は、利用履歴格納部102のアイテム利用履歴テーブル102Aを参照し、リクエスト識別子に該当する利用主体が過去に利用したアイテム識別子(利用済みアイテム識別子)を特定し、利用済みアイテム識別子(利用済みアイテム)をユーザに提供する推薦情報から除外すればよい。このような処理を行なうことで、ユーザが同じアイテムを1回のみ利用(例えば、購入、閲覧)することが多いアイテム提供サービスにおいて、精度の高い推薦が可能になる。例えば、一度購入したデジタルコンテンツは、端末装置30で繰り返し利用(再生)できるサービスに適している。
図14のフローチャートに戻って説明を続ける。ステップS180において、端末装置30は、表示用推薦データを情報選択装置10から受信する。ブラウザ部303は、表示用推薦データを解釈し、例えば、図16に示す形式で表示装置320に推薦リストを表示する。図に示すように、「あなただけにお薦めする特選情報」といった表現を用いることにより、全てのユーザに一律に提供する情報ではなく、ユーザごとに異なるパーソナル化された情報であることを明確にすると、ユーザの興味・関心を高める上で効果的である。また、「あなたが過去に利用したアイテムの傾向をシステムが分析して見つけた掘り出し物です」等の推薦情報が作成された背景等の簡単な説明を加えてもよい。図16における「1)」、「2)」、「3)」を含む番号は、カテゴリ順位(すなわち、推薦順位)を示している。図16における「サスペンス」、「SF」、「いやし系」を含むテキスト表示は、推薦カテゴリのカテゴリ名を示している。図16における推薦カテゴリの表示順序(又は表示位置)は、カテゴリ順位に従って決められている。具体的には、カテゴリ順位が上位のカテゴリほど、ユーザの目に留まりやすい位置に表示されるとよい。例えば、図16に示すように上下方向に複数のカテゴリの情報を配置する場合は、カテゴリ順位が上位のカテゴリを表示画面の上側に表示するとよい。また、左右方向に複数のカテゴリの情報を配置する場合は、カテゴリ順位が上位のカテゴリを表示画面の左側に表示するとよい。図16における「ジャンル」、「ムード」を含むテキスト表示は、カテゴリ種別の名称を示している。図16の例に示すように、表示用推薦データに基づく表示画面は、複数のカテゴリ種別が混在してもよい。
推薦アイテムの情報は、推薦カテゴリとの対応が分かるように表示されるとよい。図16の例では、推薦カテゴリ「サスペンス」に対応する推薦アイテムとして、3つのアイテムの情報が表示されている。図16における丸で囲まれた1〜3の番号表示は、アイテム順位(すなわち、推薦順位)を示す。「アイテムOPQ」とのテキスト表示は、推薦順位が1番目のアイテムのタイトルを示す。「このアイテムは、目が離せない…」というテキスト表示は、1番目のアイテムの説明を示す。また、図16の例では、図15の例と同様に、各々のアイテムに対して、利用リンクに対応付けられた「アイテム利用」ボタンが表示される。各アイテムの属性情報の表示順序(表示位置)は、アイテム順位に応じて決まる。アイテム順位は、アイテム関連度の強さに応じて決まっているので、アイテム属性情報の表示順序は、アイテム関連度に応じて決まるといえる。
また図16には示していないが、推薦カテゴリ毎に更に多くの推薦アイテム(関連アイテム)を表示させるための表示要素(例えば、ボタン)を配置してもよい。例えば、図16の「サスペンス(ジャンル)好きなら」という表示の近くに「このジャンル(カテゴリ)の推薦アイテムをもっとたくさん見る」といったテキストを含む表示要素を配置してもよい。そして、ユーザがその表示要素を操作した場合に、リクエスト識別子に対応する「サスペンス」の推薦アイテムをより多く表示するようにしてもよい。すなわち、ユーザが指定したカテゴリの推薦アイテムを表示するようにしてもよい。最初の推薦リストとして表示された「サスペンス」の推薦アイテムを除外して2回目の推薦リストを表示してもよいし、それらを除外せずに新たに追加する形式で表示してもよい。
また、カテゴリ間の関係性の強さを示す関連度に関する情報をあらかじめ制御部110内部の記憶部に格納しておき、推薦カテゴリと関連度の高いカテゴリのアイテムを表示させるための表示要素を表示してもよい。例えば、「サスペンス」カテゴリと「ホラー」カテゴリの関連度が高い場合、図16の「サスペンス(ジャンル)好きなら」という表示の近くに、「ホラーの推薦アイテムを見る」や「サスペンス好きならホラーも是非チェックして」といったテキストを含む表示要素を配置してもよい。
そして、ユーザがその表示要素を操作した場合に、リクエスト識別子に対応する「ホラー」の推薦アイテムを表示するようにしてもよい。
図14のフローチャートに戻って説明を続ける。ステップS190において、端末装置30は、入力装置330を利用してユーザにより利用リンクが選択されたか否かを判定する。この利用リンクは、代表的には、アイテムの購入要求とすることができるが、アイテムの再生、アイテムのプレビュー、アイテムの詳細情報の表示、又はアイテムに対する評価情報(評価値)の登録などの種々の要求であってもよい。利用リンクが選択された場合(Yes)はステップS200に進み、そうでない場合(No)はステップS250に進む。
ステップS200において、端末装置30は、利用リンクに対応するURLにリクエスト(利用リクエスト)を送信する。本実施形態では、利用リンクがアイテム提供サーバ20の所定のURLに対応する場合を説明する。なお端末装置30は、アイテム提供サーバ20に加えて情報選択装置10に利用リクエストを直接送信してもよい。
利用リクエストは、ユーザが選択したアイテムのアイテム識別子と、そのユーザまたは端末装置30を識別する利用主体識別子とを含む。なお、ユーザが一度に複数のアイテムを利用する場合、端末装置30は、複数のアイテムのアイテム識別子を含む1つの利用リクエストを送信してもよいし、各々が1つのアイテム識別子を含む複数の利用リクエストを送信してもよい。
ステップS210において、アイテム提供サーバ20の送受信部204は、端末装置30から受信した利用リクエストを情報選択装置10に中継(転送)する。このとき、アイテム提供サーバ20の制御部205は、アイテム識別子や利用主体識別子などの情報を利用リクエストから取り出し、これらを利用情報としてデータ格納部203に格納させるようにしてもよい。
ステップS220において、情報選択装置10の制御部110は、送受信部109を介して利用リクエストを受信し、アイテム識別子や利用主体識別子などの情報を利用リクエストから取り出し、これらの利用履歴として利用履歴格納部102に格納させる。そして、制御部110は、送受信部109を介して、利用履歴情報の格納を終了したことを示すメッセージをアイテム提供サーバ20に送信する。
ステップS230において、アイテム提供サーバ20の制御部205は、情報選択装置10からの格納終了メッセージを受信した後、端末装置30にアイテムを提供する処理を行なう。例えば、提供対象のアイテムがデジタルコンテンツである場合、制御部205は、利用リクエストに示されたアイテム識別子に対応するアイテム本体をアイテム格納部202から読み出し、送受信部204を介して端末装置30に送信する。また、アイテムが有体物としての物品である場合には、配送事業者のシステムに配送依頼の情報を送ることを含む配送処理などを行なう。このとき、制御部205は、課金処理を行なってもよい。また、アイテムの詳細情報が要求された場合には、制御部205は、アイテム格納部202から「アイテム説明」などの追加情報を読み出し、これを端末装置30に送信する。
ステップS240において、端末装置30は、アイテム提供サーバ20から提供されたアイテムの利用に係る処理を行なう。例えば、アイテムがデジタルコンテンツである場合には、アイテムの再生、表示などを行なう。また、アイテムが物品である場合には、配送処理を受付した旨のメッセージ等を画面に表示する。
ステップS250において、端末装置30は、ユーザがブラウザを終了する等の操作終了指示があるか否かを判定する。操作終了指示がある場合(Yes)は端末装置30の処理を終了し、操作終了指示がない場合(No)はステップS150に戻って処理を継続する。
以上がシステム全体の動作の説明である。なお、図14のステップS160では、端末装置30は推薦リクエストを情報選択装置10に送信しているが、これ以外の方法を用いてもよい。例えば、端末装置30は推薦リクエストをアイテム提供サーバ20に送信し、アイテム提供サーバ20が推薦リクエストを情報選択装置10に中継(転送)してもよい。また、周期的又は非周期的なタイミングにおいて、情報選択装置10の制御部110は、送受信部109を介して、推薦情報格納部108に格納されたデータをアイテム提供サーバ20に送信してもよい。そして、アイテム提供サーバ20の制御部205は、送受信部204を介してそのデータを受信し、データ格納部203に予め格納しおいてもよい。そして、アイテム提供サーバ20の制御部205は、推薦リクエストに応答するためのステップS170に相当する処理として、データ格納部203から推薦データを読み出し、表示用推薦データを作成して、端末装置30に送信するようにしてもよい。この場合は、表示用推薦データ作成とその送信に伴う情報選択装置10の処理負荷を減らすことができる。
また、図14のステップS210では、アイテム提供サーバ20は端末装置30からの利用リクエストを情報選択装置10に中継しているが、これ以外の方法を用いてもよい。例えば、ステップS200の利用リクエストの送信と同時、あるいは適当なタイミングで、端末装置30から情報選択装置10に利用リクエストを直接的に送信してもよい。
また、図14のステップS220において、情報選択装置10は、利用履歴情報を格納することに加えて、利用リクエストに含まれる利用主体識別子に対応する表示用推薦データをステップS170と同様な方法で作成し、表示用推薦データをアイテム提供サーバ20に送信してもよい。そして、ステップS230において、アイテム提供サーバ20が、アイテム提供処理を行うことに加えて、表示用推薦データを端末装置30に送信してもよい。すなわちこの場合、端末装置30は、利用リクエストを送信する毎に、利用リクエストに含まれるアイテム識別子に対応する推薦情報を受信することができる。例えば、ユーザが1つのアイテムを購入した直後に、更に別のアイテムを推薦したい場合などに適している。
また、携帯電話端末等の端末識別子を利用することができるために特別なユーザ登録処理が不要なアイテム提供サービスにおいて、ステップS200で送信される利用リクエストは、利用主体識別子としての端末識別子を含んでもよい。これにより、ステップS110の登録済ユーザ確認処理と、ステップS120の入会処理に必要なデータの送信とを省略することも可能である。
<情報選択装置の動作>
第3の実施形態における情報選択装置10の処理動作の具体例について説明する。まず、推薦情報の作成動作の具体例について図17のフローチャートを参照して説明する。
情報選択装置10の制御部110は、所定のタイミングで情報選択装置10の各処理部に指示を出し、推薦情報を作成する処理を開始する。推薦情報作成のタイミングは、周期的でもよいし、非周期的でもよい。推薦情報作成のタイミングとして、例えば、次の3種類のうち少なくとも1つを用いることができる。
推薦情報作成の第1のタイミングは、所定の日時または所定の時間間隔である。例えば、「毎日午前6時と午後6時」、「毎週月曜の午前10時30分」、「12時間ごと」、「24時間ごと」などである。このとき、「平日は午前6時、土日は午前6時と午後6時」、「平日は3時間ごと、土曜日は6時間ごと、日曜日は12時間ごと」などのように時間間隔が変動してもよい。また、夏は時間間隔を短くして、冬は時間間隔を長くするなど、季節に応じて時間間隔を変えてもよい。この第1のタイミングを用いると、他のタイミングを用いた場合より情報選択装置10の処理負荷を減らすことができる。特に、推薦リクエスト数が少ない時間帯に推薦情報を作成するように設定すれば、情報選択装置10の処理負荷の低減に効果的である。
推薦情報作成の第2のタイミングは、端末装置30の推薦リクエスト送信処理(図14ステップS160)に基づく推薦リクエストを所定回数受信するごとである。この場合は、情報選択装置10は、まず推薦情報を作成し、その後に、表示用推薦データ作成・送信処理(ステップS170)を行なうようにするとよい。この所定回数(すなわち、推薦情報を更新するまでの推薦リクエストの受信回数)を調整することにより、情報選択装置10の処理負荷の大きさと、推薦情報の新しさとのバランスを調整することができる。例えば、所定回数を1回として、推薦リクエストを受信する毎に推薦情報を作成すると、情報選択装置10の処理負荷は大きくなるが、最新の推薦情報を提供することができる。以下では、説明を簡単にするために、第2のタイミングを用いる場合には、推薦リクエストを1回受信するごとに(所定回数を1として)、推薦情報を作成するものとする。
推薦情報作成の第3のタイミングは、端末装置30の利用リクエスト送信(ステップ200)に基づく利用リクエストを所定回数受信するごとである。推薦リクエストの発生頻度に比べて利用リクエストの発生頻度が少ない場合には、第2のタイミングよりも第3のタイミングの使用が適している。この所定回数を調整することにより、情報選択装置10の処理負荷の大きさと、推薦情報の新しさとのバランスを調整することができる。所定回数を1回として、利用リクエストを受信する毎に推薦情報を作成するようにすれば、情報選択装置10の処理負荷は大きくなるが、最新の推薦情報を提供することができる。以下では、説明を簡単にするために、第3タイミングを用いる場合には、利用リクエストを1回受信するごとに(所定回数を1として)、推薦情報を作成するものとする。
以下の説明において、推薦情報を作成する対象となる利用主体識別子の集合を「推薦ターゲット集合」と称する。第1のタイミングで推薦情報を作成する場合は基本的に、推薦ターゲット集合の要素数(利用主体数)が多数となる。第2および第3のタイミングで推薦情報を作成する場合、上述した所定回数が1であれば、推薦ターゲット集合の要素数は1つである。
まず、ステップS400において、制御部110の指示を受けた関連度算出部104が、推薦ターゲット集合の各要素と各アイテムとのアイテム関連度を算出し、利用主体とアイテムと算出したアイテム関連度とを対応させて、アイテム関連度格納部105に格納させる。
ステップS410において、制御部110の指示を受けた関連度算出部104が、推薦ターゲット集合の各要素と各カテゴリとの関連度を算出し、利用主体とカテゴリと算出したカテゴリ関連度とを対応させて、カテゴリ関連度格納部103に格納させる。
ステップS420において、制御部110の指示を受けた情報選択部107が、推薦情報を作成する。具体的には、情報選択部107は、カテゴリ関連度格納部103およびアイテム関連度格納部105を参照しながら、推薦ターゲット集合に属する利用主体ごとに、推薦カテゴリと推薦アイテムを選択し、これらの情報を含む推薦情報を推薦情報格納部108に格納させる。そして、推薦情報作成動作が終了した旨を制御部110に通知する。
<アイテム関連度算出(ステップS400)>
次に、アイテム関連度算出処理(ステップS400)の具体例について図18のフローチャートを参照して説明する。
ステップS500において、関連度算出部104は、複数のユーザによるアイテム利用履歴を利用履歴格納部102のアイテム利用履歴テーブル102Aから読み出す。ここでは、すべてのアイテム利用履歴を読み出してもよいし、所定の条件を満たす利用履歴を読み出してもよい。例えば、関連度算出部104は、図8(b)の例のようにアイテム利用時期情報を含む利用履歴テーブル102Aに基づいて、「アイテム利用時期が所定範囲内にある」という条件を満たす利用履歴を読み出してもよい。アイテム利用時期に関する条件は、例えば、「利用時期が過去4ヶ月以内」、又は「利用時期と現在との差が3日以上かつ30日未満」などと指定できる。
また、関連度算出部104は、利用主体毎に利用時期が新しい順に所定個数以内の利用履歴を読み出してもよい。例えば、所定個数を20個とした場合、利用回数が20回以上のアイテムに対しては、利用時期が新しい順に20個ずつの利用履歴を読み出し、利用回数が20回未満の利用主体に対しては、その利用主体に関するすべての利用履歴を読み出すようにする。このようにすれば、利用回数が少なく、最近アイテムを利用していないような利用主体に対しても効率よく関連アイテム集合を作成することができる。また、第2のタイミングで推薦情報を作成する場合には、推薦リクエストに含まれるリクエスト識別子に対応する利用履歴が含まれるように利用履歴を読み出すようにする。また、第3のタイミングで推薦情報を作成する場合には、利用リクエストに含まれる利用主体識別子に対応する利用履歴が含まれるように利用履歴を読み出すようにする。
そして、このステップS500で読み出した利用履歴に含まれる利用主体(すなわち、利用主体識別子)の集合σを作成する。以下では、集合σに含まれる利用主体(利用主体識別子)の数をUsとする。
ステップS510において、関連度算出部104は、推薦ターゲット集合K1を作成する。上述したように、第2のタイミングで推薦情報を作成する場合には、リクエスト識別子(推薦リクエストに含まれている利用主体識別子)を推薦ターゲット集合K1に入れればよい。
第3のタイミングで推薦情報を作成する場合には、関連度算出部104は、利用リクエストに含まれる利用主体識別子を推薦ターゲット集合K1に入れればよい。
第1のタイミングで推薦情報を作成する場合は、ステップS500で作成した利用主体の集合σを推薦ターゲット集合K1とすればよい。この場合は、集合σに含まれる利用主体識別子それぞれに対して関連アイテム集合が作成されることになる。なお、ここで作成された推薦ターゲット集合K1は、情報選択部107、制御部110などの他の処理部から参照されてもよい。
ステップS520において、関連度算出部104は、ステップS510で作成された推薦ターゲット集合K1の中から未処理の利用主体を1つ選択する。この処理対象となる利用主体を利用主体xとする。
ステップS530において、関連度算出部104は、ステップS500で読み出された利用履歴を用いて、利用主体xと、利用主体集合σに属する他の利用主体x2(x2∈σ、x≠x2)との類似度を算出する。
具体的には、利用主体xと他の利用主体x2とが共に利用したことのあるアイテムの数|I[x]∩I[x2]|を算出し、これを利用主体x及び利用主体x2のユーザ間類似度Su[x][x2]としてもよい。また、(1)式に示すジャカード(Jaccard)係数を用いて算出してもよい。(1)式において、I[x]は利用主体xが利用したアイテムの集合を示し、I[x2]は利用主体x2が利用したアイテムの集合を示し、|I[x]∩I[x2]|は、利用主体xと利用主体x2が共に利用したアイテムの数を示し、|I[x]∪I[x2]|は、利用主体xと利用主体x2の少なくとも一方が利用したアイテムの数を示す。
また、アイテム利用履歴からアイテム利用回数に関する情報、又はユーザがアイテムに対して行なった評価の情報(評価値)などの追加情報を含む場合、ユーザ間類似度はコサイン尺度やピアソン積率相関係数を用いて算出されてもよい。例えば、ユーザ間類似度Su[x][x2]は、(2)式に示すように、コサイン尺度を用いて算出されてもよい。ここで、E[x][y]は利用主体(ユーザ)xによるアイテムyの利用回数または評価値を示し、E[x2][y]は利用主体(ユーザ)x2によるアイテムyの利用回数または評価値を示す。また、Msは、ステップS500で読み出されたアイテム利用履歴に含まれるアイテムの種類数(アイテム識別子の種類数)である。
また、ユーザ間類似度Su[x][x2]は、(3)式に示すように、ピアソン積率相関係数を用いて算出されてもよい。ここで、Ic[x][x2]は、利用主体x及びx2が共に利用または評価したアイテムの集合である。Ea[x]は、Ic[x][x2]に属するアイテムを利用主体xが利用した回数の平均値、または評価した評価値の平均値である。Ea[x2]は、Ic[x][x2]に属するアイテムを利用主体x2が利用した回数の平均値または評価値の平均値である。
また、E[x][y]とE[x2][y]とのユークリッド距離あるいはその他の距離を用いて、ユーザ間類似度Su[x][x2]を算出してもよい。
また、利用履歴格納部102にアイテム利用時期情報が格納されている場合は、E[x][y]などを算出する際に、利用時期が古い利用履歴より、新しい利用履歴の重みを大きくして算出してもよい。具体的にはまず、アイテム関連度算出処理を実行する時点(日時など)とアイテム利用時期との差を計算する。新しいアイテム利用履歴ではこの差が小さな値となり、古い利用履歴ではこの差が大きな値となる。そして、この差を単調減少関数に入力したときの出力値を重み係数とし、E[x][y]およびE[x2][y]に重み係数を乗じた値を用いて、(2)式または(3)式に従ってユーザ間類似度Su[x][x2]を算出すればよい。すなわち、利用主体xがアイテムyを利用した利用時期が新しいほど、E[x][y]の値を大きくする。
また、アイテム情報テーブル101A(例えば、101A−1または101A−2)に格納されているアイテム作成時期またはアイテム提供開始時期の情報を用いて、アイテムyのアイテム時期情報(作成または提供開始の時期)が新しいほど大きな値となる重みを用いて、ユーザ間類似度Su[x][x2]を算出してもよい。具体的にはまず、アイテム関連度算出処理を実行する時点(日時など)とアイテム時期情報との差を計算する。アイテムyの制作または登録が新しい場合にこの差が小さな値となり、古い場合にこの差が大きな値となる。そして、この差を単調減少関数に入力したときの出力値を重み係数とし、E[x][y]およびE[x2][y]に重み係数を乗じた値を用いて、(2)式または(3)式に従ってユーザ間類似度Su[x][x2]を算出すればよい。
さらに、利用主体xのアイテムyに対する利用回数または評価値であるE[x][y](x=1〜Us,y=1〜Ms)を行列要素とする行列に対して、主成分分析や数量化3類などの多変量解析を適用して、ユーザ間類似度を算出してもよい。多変量解析を適用することにより、行列を構成する各利用主体に対応し、かつ次元数を削減したベクトルを生成できるので、任意の2つの利用主体に対応する2つのベクトルのベクトル空間におけるコサイン尺度やユークリッド距離などを用いてユーザ間類似度Su[x][x2]を算出すればよい。また、上記以外にも、2つの利用主体間の類似性を表わす指標であれば、どのような方法を用いてもよい。
ステップS532において、関連度算出部104は、ステップS530で算出されたユーザ間類似度に基づいて、利用主体xに対応する類似ユーザ集合Λ[x]を作成する。類似ユーザ集合Λ[x]には、利用主体x以外の利用主体(利用主体識別子)が含まれている。
類似ユーザ集合作成の第1の方法は、ユーザ間類似度Su[x][x2]が所定値以上の利用主体x2(x2∈σ、x≠x2)を類似ユーザ集合に入れる方法である。
類似ユーザ集合作成の第2の方法は、ユーザ間類似度Su[x][x2]が大きい順に所定数を超えない数だけ利用主体x2を選び、それを類似ユーザ集合に入れる方法である。ユーザ間類似度Su[x][x2]が算出された利用主体x2の数が所定数より多い場合には、ユーザ間類似度が大きい順に所定数の利用主体を選べばよい。そうでない場合には、ユーザ間類似度が算出された利用主体x2を全て類似ユーザ集合に入れればよい。
類似ユーザ集合作成の第3の方法は、ユーザ間類似度Su[x][x2]が算出された利用主体x2を全て類似ユーザ集合に入れる方法である。この第3の方法は、処理量は最も多くなるが、後述するアイテム関連度算出の第3の方法と組み合わせることにより、関連アイテム集合に含まれるアイテムの種類(バリエーション)を増やすことができる。
ステップS534において、関連度算出部104は、ステップS532で作成された類似ユーザ集合Λ[x]を用いて、利用主体xとアイテムyとのアイテム関連度W[x][y]を算出する。アイテム関連度算出の第1の方法は、アイテムyの利用回数を用いる方法である。具体的には、ステップS500で読み出した利用履歴データの中から、利用主体が類似ユーザ集合に該当するデータを抽出し、その抽出したデータを対象にして、アイテム毎の利用回数(利用履歴の登録数)をカウントする。そして、類似ユーザ集合により利用されたアイテムyに関して、その利用回数をアイテム関連度W[x][y]とする。類似ユーザ集合により利用されていないアイテムyに関しては、アイテム関連度を「0」とすればよい。
アイテム関連度算出の第2の方法は、アイテムyを利用した利用主体の数(ユーザの人数)を用いる方法である。具体的には、ステップS500で読み出した利用履歴データの中から、利用主体識別子が類似ユーザ集合に該当するデータを抽出し、その抽出したデータを対象にして、アイテム毎に利用主体識別子の種類数(利用主体のユニークな個数)をカウントする。そして、類似ユーザ集合により利用されたアイテム(アイテムy)に関して、その利用主体識別子の種類数をアイテム関連度W[x][y]とする。類似ユーザ集合により利用されていないアイテムyに関しては、アイテム関連度を「0」とすればよい。具体例を説明すると、類似ユーザ集合の中で、1人のユーザ(ユーザB)だけが、あるアイテム(アイテムy)を利用しており、ユーザBがアイテムyを3回利用している場合、第1の方法によるアイテム関連度は「3」になり、第2の方法によるアイテム関連度は「1」になる。
アイテム関連度算出の第3の方法は、ユーザ間類似度を用いる方法である。具体的には、(4)式に基づいてアイテム関連度W[x][y]を算出する。ここで、Su[x][r]は、利用主体xと類似ユーザ集合Λ[x]に含まれる利用主体rとのユーザ間類似度であり、E[r][y]は、ステップS500で読み出した利用履歴データにおいて、利用主体rがアイテムyを利用した利用回数である。類似ユーザ集合により利用されていないアイテムyに関しては、アイテム関連度を「0」とすればよい。また、類似ユーザ集合作成の第3の方法を用いた場合は、アイテム関連度算出の第3の方法を用いるのがよい。
なお、上述の第1の方法〜第3の方法において、アイテム情報テーブル101Aに格納されているアイテム作成時期またはアイテム提供開始時期の情報(時期情報)を用いてアイテム関連度を算出してもよい。例えば、上述の方法で得られるアイテム関連度W[x][y]に、アイテムyの時期情報が新しいほど大きな値となる重み係数を乗算した値を算出し、それをアイテム関連度W[x][y]として、以下の処理で用いてもよい。
ステップS540において、関連度算出部104は、ステップS534で算出されたアイテム関連度に基づいて、利用主体xに関する関連アイテム集合Ω[x]を作成し、アイテム関連度格納部105に格納させる。関連アイテム集合Ω[x]は、利用主体xと関連性の強いアイテム群のアイテム識別子を含む集合である。
関連アイテム集合作成の第1の方法は、ステップS534において利用主体xとの関連度を算出したすべてのアイテムを関連アイテム集合Ω[x]に入れる方法である。この方法は、後述するカテゴリ優先度算出に係わる処理量が多くなるが、カテゴリ優先度算出に用いるアイテムの数が多くなるため、推薦情報に含まれるアイテムの多様性や推薦精度を重視したい場合に適している。
関連アイテム集合作成の第2の方法は、利用主体xとの関連度W[x][y]が相対的に高いアイテムを選出して関連アイテム集合Ω[x]に入れる方法である。具体的には、利用主体xとの関連度W[x][y]が所定の閾値以上であるアイテムを選出する。また、利用主体xとの関連度W[x][y]が大きい順に所定値を超えない範囲でアイテムを選出してもよい。例えば、利用主体xとの関連度W[x][y]が算出されたアイテムの数が所定数に満たない場合は、関連度W[x][y]が算出されたすべてのアイテムを選出し、そうでない場合は、関連度W[x][y]が大きい順に所定数のアイテムを選出すればよい。この第2の方法によれば、アイテム関連度格納部105に必要な記憶容量を削減できる。また、後述するカテゴリ優先度算出に係わる処理量を比較的少なくすることができる。
そして、関連度算出部104は、利用主体xの利用主体識別子と、関連アイテム集合Ω[x]に含まれる各アイテム識別子と、そのアイテム関連度W[x][y]とを対応させて、アイテム関連度格納部105のアイテム関連度テーブル105Aに記録する。具体的には、利用主体xのアイテム識別子が、図11に示したアイテム関連度テーブル105Aの利用主体識別子(利用主体ID、ユーザID)に相当する。また、関連アイテム集合Ω[x]に含まれる各アイテム識別子は、アイテム関連度テーブル105Aの関連アイテム識別子(アイテムID)に相当する。なお、推薦ターゲット集合K1に含まれるいずれかの識別子と合致する利用主体識別子がアイテム関連度テーブル105Aに既に格納されている場合、関連度算出部104は、それらを更新(上書き)すればよい。一方、推薦ターゲット集合K1に含まれるいずれの識別子とも合致しない利用主体識別子が関連度テーブル105に格納されている場合、関連度算出部104は、それらを変更しないようにする。
ステップS550において、関連度算出部104は、他の利用主体を選択可能か判定する。関連度算出部104は、ステップS510で作成された推薦ターゲット集合K1の中に未処理の利用主体が存在する場合に「Yes」と判定し、未処理のアイテムが存在しない場合にNo」と判定する。関連度算出部104は、「Yes」と判定した場合にステップS520に戻って処理を繰り返し、「No」と判定した場合にアイテム関連度算出処理を終了する。以上説明したアイテム関連度算出処理においては、アイテムとカテゴリとの関係を示す情報を用いずにアイテム関連度を算出している。
なお、ステップS400において(ステップS520の実行後、ステップS530実行前などの適当なタイミングで)、後述するステップS730と同様な処理を更に行って、利用主体xに対するアイテムの有用性を判定し、推薦候補アイテム集合を作成してもよい。そして、ステップS534で、推薦候補アイテム集合に属するアイテムのみを対象にして、アイテム関連度を算出してもよい。また、ステップS534では推薦候補アイテム集合に属するアイテムに限定せず、ステップS540において、推薦候補アイテム集合に属するアイテムを対象に関連アイテム集合を作成してもよい。更に、ユーザが利用したアイテムを除外せずに推薦候補アイテム集合を作成した場合(提供中止となったアイテム等を除外した場合)には、ステップS530において、推薦候補アイテム集合に属するアイテムに限定した情報を用いて、ユーザ間類似度を算出してもよい。このように、アイテム関連度算出処理において推薦候補アイテム集合を考慮することにより、推薦情報作成に必要な計算量や記憶容量を削減することができる。
<カテゴリ関連度算出(ステップS410)>
次に、カテゴリ関連度算出処理(ステップS410)の第1の方法について図19のフローチャートを参照して説明する。
ステップS600〜S620は、アイテム関連度算出におけるステップS500〜S520とそれぞれ同様な処理である。ステップS600において利用履歴を読み出す条件は、ステップS500において利用履歴を読み出す条件と同じであってもよいが、ステップS500で読み出す利用履歴よりも長期間の利用履歴を読み出すと更によい。ユーザのアイテムに対する嗜好は比較的短期間で変化するのに対し、ユーザのカテゴリに対する嗜好は短期間ではあまり変化しない傾向がある。アイテム関連度およびカテゴリ関連度を精度よく算出するためには、ある程度以上の利用履歴が必要であるが、アイテム関連度を算出する際に、あまり長期間の利用履歴を用いると、過去の流行したアイテムの関連度が高くなり過ぎる場合がある。一方、カテゴリ関連度は、このような問題が比較的少ないので、比較的長期間の利用履歴を用いたほうがよい。なお、アイテム−カテゴリ対応テーブル101Cを参照することにより、ステップS600で読み出された利用履歴に含まれるアイテム識別子をカテゴリ識別子に対応させることができる。ステップS600で読み出された利用履歴に対応するカテゴリ識別子の種類数をCsとする。
ステップS630において、関連度算出部104は、ステップS600で読み出された利用履歴を用いて、利用主体xと、利用主体集合σに属する他の利用主体x2(x2∈σ、x≠x2)とのユーザ間類似度Su[x][x2]を算出する。ユーザ間類似度算出の第1の方法として、ステップS530と同様な方法を用いることができる。
ユーザ間類似度算出の第2の方法として、利用主体のカテゴリに関する利用回数を用いることができる。具体的にはまず、ステップS600で読み出された利用履歴と、アイテム−カテゴリ対応テーブル101Cとをアイテム識別子をキーにして結合し、利用主体xの利用したカテゴリを特定し、カテゴリ毎の利用回数を算出する。利用主体x2についても、カテゴリ毎の利用回数を算出する。具体的には、利用主体xがカテゴリpに対応するアイテムを利用した利用回数をG[x][p]、利用主体x2がカテゴリpに対応するアイテムを利用した利用回数をG[x2][p]、ステップS600で読み出された利用履歴に対応するカテゴリ識別子の種類数をCsとして、(5)式に示すコサイン尺度を用いてユーザ間類似度Su[x][x2]を算出する。あるいは(6)式に示すピアソン積率相関係数を用いて算出してもよい。ただし、Gc[x][x2]は、利用主体x及びx2が共に利用したカテゴリの集合であり、Ga[x]は、Gc[x][x2]に属するカテゴリを利用主体xが利用した回数の平均値、。Ga[x2]は、Gc[x][x2]に属するカテゴリを利用主体x2が利用した回数の平均値である。
ステップS632において、関連度算出部104は、ステップS532と同様な方法で、利用主体xに対応する類似ユーザ集合Λ[x]を作成する。
ステップS634において、関連度算出部104は、ステップS632で作成された類似ユーザ集合Λ[x]を用いて、利用主体xとカテゴリpとのカテゴリ関連度H[x][p]を算出する。カテゴリ関連度算出の第1の方法は、カテゴリpに対応するアイテムが利用された利用回数を用いる方法である。具体的には、ステップS600で読み出した利用履歴データの中から、利用主体識別子が類似ユーザ集合に該当するデータを抽出し、その抽出したデータを対象にして、アイテム−カテゴリ対応テーブル101Cを参照しながら、カテゴリ毎のアイテム利用回数(利用履歴の登録数)をカウントする。そして、類似ユーザ集合により利用された、カテゴリpに対応するアイテムの利用回数をカテゴリ関連度H[x][p]とする。類似ユーザ集合により利用されていないカテゴリpに関しては、カテゴリ関連度を「0」とすればよい。
カテゴリ関連度算出の第2の方法は、カテゴリpに対応するアイテムを利用した利用主体の数(ユーザの人数)を用いる方法である。具体的には、ステップS600で読み出した利用履歴データの中から、利用主体識別子が類似ユーザ集合に該当するデータを抽出し、その抽出したデータを対象にして、アイテム−カテゴリ対応テーブル101Cを参照しな がら、カテゴリ毎に利用主体識別子の種類数(利用主体のユニークな個数)をカウントする。そして、カテゴリpに対応するいずれかのアイテムを利用した利用主体識別子の種類数をカテゴリ関連度H[x][p]とする。類似ユーザ集合により利用されていないカテゴリpに関しては、カテゴリ関連度を「0」とすればよい。具体例を説明すると、類似ユーザ集合の中で、あるユーザU1がアイテムI1を3回利用し、別のユーザU2がアイテムI2を2回利用しており、アイテムI1とアイテムI2は共にカテゴリpに対応しているとする。この場合、第1の方法によるカテゴリ関連度は「3+2=5」になり、第2の方法によるカテゴリ関連度は、U1とU2の2人のユーザが利用しているので「2」になる。
カテゴリ関連度算出の第3の方法は、ユーザ間類似度を用いる方法である。具体的には、(7)式に基づいてカテゴリ関連度H[x][p]を算出する。
ここで、Su[x][r]は、利用主体xと類似ユーザ集合Λ[x]に含まれる利用主体rとのユーザ間類似度であり、G[r][p]は、ステップS600で読み出した利用履歴データにおいて、利用主体rがカテゴリpを利用した利用回数である。類似ユーザ集合により利用されていないカテゴリpに関しては、アイテム関連度を「0」とすればよい。また、類似ユーザ集合作成の第3の方法を用いた場合は、カテゴリ関連度算出の第3の方法を用いるのがよい。
ステップS640において、関連度算出部104は、利用主体xに関する関連カテゴリ集合Π[x]を作成し、カテゴリ関連度格納部103に格納させる。図9に示したカテゴリ関連度テーブル103Aの利用主体識別子のカラムを利用主体xの利用主体識別子とし、関連カテゴリ集合Π[x]に含まれる各カテゴリ識別子はテーブル103Aのカテゴリ識別子に対応させればよい。関連カテゴリ集合Π[x]を作成するために、関連度算出部104は、ステップS540におけるアイテムをカテゴリに置き換えて同様の処理を行えばよい。具体的には、関連度算出部104は、ステップS540で説明した第1または第2の方法を用いて、関連カテゴリ集合Π[x]を作成すればよい。
ステップS650において、関連度算出部104は、未処理の利用主体を選択可能か判定する。関連度算出部104は、ステップS610で作成された推薦ターゲット集合K1の中に未処理の利用主体が存在する場合に「Yes」と判定し、未処理の利用主体が存在しない場合に「No」と判定する。関連度算出部104は、「Yes」と判定した場合にステップ620に戻って処理を繰り返し、「No」と判定した場合にカテゴリ関連度算出処理を終了する。以上がカテゴリ関連度算出処理の第1の方法の説明である。
カテゴリ関連度算出処理の第2の方法は、カテゴリ関連度を算出する際に、利用主体xの利用履歴のみを用いる。カテゴリ関連度算出処理の第2の方法において、上述したS600〜S620の処理を実行後、ステップS630およびS632を省略し、ステップS634の代わりに、ステップS636(図示せず)の処理を実行する。
ステップS636において、関連度算出部104は、ステップS600で読み出された利用履歴の中から、利用主体xに対応する利用履歴を抽出し、それを用いて、利用主体xとカテゴリpとのカテゴリ関連度H[x][p]を算出する。具体的には、利用主体xに対応する利用履歴と、アイテム−カテゴリ対応テーブル101Cとをアイテム識別子をキーにして結合し、カテゴリ毎のアイテム利用回数J[p]をカウントし、J[p]をカテゴリ関連度H[x][p]とすればよい(H[x][p]=J[p])。また、利用主体xに対応する利用履歴の数をJ2として、J[p]をJ2で割った値をカテゴリ関連度としてもよい(H[x][p]=J[p]/J2)。すなわち、利用主体xがカテゴリpに対応するアイテムを利用した利用回数(カテゴリ利用回数)の相対割合をカテゴリ関連度としてもよい。なお、利用主体xが利用していないカテゴリに関しては、カテゴリ関連度を所定の小さな値(例えば「0」)とすればよい。ステップS636の処理を実行した後、第1の方法と同様に、ステップS640〜S650を実行する。以上がカテゴリ関連度算出処理の第2の方法の説明である。
なお、ステップS410において(ステップS620の実行後、ステップS630実行前などの適当なタイミングで)、後述するステップS730と同様な処理を更に行って、利用主体xに対するアイテムの有用性を判定し、推薦候補アイテム集合を作成してもよい。そして、ステップS634でカテゴリ関連度を算出する際に、推薦候補アイテム集合に属するアイテムに限定して、アイテムの利用回数やアイテムを利用したユーザ数などを計数してもよい。更に、ユーザが利用したアイテムを除外せずに推薦候補アイテム集合を作成した場合(提供中止となったアイテム等を除外した場合)には、ステップS630において、推薦候補アイテム集合に属するアイテムに限定した情報を用いて、ユーザ間類似度を算出してもよい。このように、カテゴリ関連度算出処理において推薦候補アイテム集合を考慮することにより、推薦情報作成に必要な計算量や記憶容量を削減することができる。
なお、上述したアイテム関連度の算出工程において、アイテム関連度の最大値や合計値が所定値になるように、正規化処理を行なってもよい。例えば、アイテム関連度の最大値が「1」、最小値が「0」になるように正規化処理を行なってもよい。カテゴリ関連度についても同様である。
<推薦情報作成(ステップS420)>
続いて以下では、推薦情報作成(ステップS420)に含まれる推薦情報の選択処理の詳細について説明する。図20は、推薦情報選択処理の第1の方法を示すフローチャートである。
ステップS710において、情報選択部107は、ステップS510で作成された推薦ターゲット集合K1の中から未処理の利用主体を1つ選択する。この処理対象となるアイテムを利用主体xとする。
ステップS720において、情報選択部107は、カテゴリ優先度を算出するためのバッファBを初期化する。カテゴリ優先度とは、利用主体xに対応する推薦カテゴリを決定するための指標である。具体的には、情報選択部107は、カテゴリ関連度テーブル103Aを参照し、そこに格納されているカテゴリの種類の総数Ncを特定する。そして、カテゴリk(カテゴリ識別子k)に対応するNc個のバッファB[k]を用意し、それらの値を「0」に初期化する。
ステップS730において、情報選択部107は、利用主体xに対する推薦候補アイテム集合を作成する。本実施例では、推薦候補アイテム集合の補集合である、利用主体xに対する非推薦アイテム集合η[x]を作成する。具体的には、まずアイテム利用履歴テーブル102Aを参照しながら、利用主体xが所定回数η1以上利用したアイテムを抽出する。なお、所定期間(例えば、最近1ヶ月間)に所定回数η1以上利用したアイテムを抽出してもよい。そして、抽出したアイテムのアイテム識別子を非推薦アイテム集合η[x]に入れる。この所定回数η1は、アイテムの種類やサービスの特性に応じて決めればよい。
具体的には、ユーザが同じアイテムを繰り返し頻繁に利用(購入)するような性質のアイテム(例えば、食料品、消耗品、プリンタ用紙等)では、η1を大きな値に設定する。また、そのような性質のアイテムに対して、利用回数を集計する所定期間を相対的に短く設定してもよい(例えば、通常のアイテムの所定期間が1ヶ月である場合に、1週間にする等)。一方、ユーザが同じアイテムを頻繁に利用(購入)しない性質のアイテム(例えば、自動車、コンピュータ、家電製品など)では、η1を小さな値に設定する。また、そのような性質のアイテムに対して、利用回数を集計する所定期間を相対的に長く設定してもよい(例えば、通常のアイテムの所定期間が1ヶ月である場合に、1年間にする等)。また原則的に、ユーザが同じアイテムを1回のみ利用(例えば、購入、閲覧)する性質のアイテム(例えば、購入後に端末装置30で繰り返し再生可能なデジタルコンテンツ)は、η1=1とする。なお、アイテムの種類やサービスに特性によっては、η1を非常に大きな値に設定することにより、利用回数の多いアイテムでも非推薦アイテム集合η[x]に入れない(推薦候補アイテム集合に入れる)ようにしてもよい。
更に、アイテムの提供期間の情報を用いて、非推薦アイテム集合η[x]にアイテムを追加する。まず、アイテム情報テーブル101Aを参照しながら、現在日時に所定の時間η2(例えば、1時間、24時間など)を加算して得られる日時と、アイテム提供終了時期(日時)を比較し、アイテム提供終了時期の方が早い場合には、そのアイテムを非推薦アイテム集合に入れる。そのようなアイテムは、既に提供期間が終了しているか、まもなく終了するアイテムなので、推薦アイテムとして適さないと判定する。次に、現在日時に所定の時間η3(例えば、1週間、1ヶ月)を加算して得られる日時と、アイテム提供開始時期(日時)を比較し、アイテム提供開始時期の方が遅い場合には、そのアイテムを非推薦アイテム集合に入れる。なお、通常はη2<η3である。そのようなアイテムは、提供開始がかなり将来なので、現時点の推薦アイテムとして適さないと判定する。
また、ユーザ自身の操作により、お気に入りアイテムや欲しいものリスト(Wishリスト)などを登録できるようなサービスにおいては、ユーザがそのアイテムの存在を十分に認識していると判断できる。そのようなアイテムを改めてユーザに推薦しても、推薦情報がアイテム利用行動につながる可能性が低いので、そのようなアイテムを非推薦アイテム集合に入れるとよい。また、テレビ番組やネット番組(所定日時に試聴可能な番組)の録画予約または視聴予約サービスにおいて、ユーザが録画/視聴予約を行っている番組(アイテム)は、同様に、ユーザがそのアイテムの存在を十分に認識していると判断できる。従って、録画/視聴予約を行っている番組(アイテム)非推薦アイテム集合に入れるとよい。
更に非推薦アイテム集合η[x]を作成する別の方法として、アイテムの利用回数、アイテム提供期間との整合性、ユーザがアイテムを既に認知している可能性などをそれぞれ数値化し、それらの数値を用いて総合的な非有用度(あるいは有用度)を算出し、非有用度を用いて非推薦アイテム集合を作成することができる。例えば、まずユーザxがアイテムyを利用した回数E[x][y]を計数し、それを上述のη1で割った値Da[x][y](Da[x][y]÷η1)を算出する。次に、現在日時T0に所定の時間η2を加算して得られる日時からアイテムyのアイテム提供終了時期(日時)Teを引いた値T1を算出する。T1=(T0+η2)−Teである。そして、T1を関数Z(t)に入力したときの出力値Db[y]=Z(T1)を算出する。
ここで、関数Z(t)は、0以上の値を出力する単調増加関数であり、入力tがマイナスの区間では出力が小さく、入力tがプラスの区間では出力が大きくなる特性を持っている。例えば、シグモイド関数を用いて関数Z(t)を得ることができる。次に、アイテムyのアイテム提供開始時期(日時)Tsから現在日時T0に所定の時間η3を加算して得られる日時を引いた値T2を算出する。T2=Ts−(T0+η3)である。そして、T2を上述の関数Z(t)に入力したときの出力値Dc[y]=Z(T2)を算出する。次にユーザxがアイテムyを認知している可能性を示す数値Dd[x][y]を算出する。例えば、ユーザxがアイテムyをお気に入りアイテムや欲しいものリストに登録している場合には、Dd[x][y]=1、そうでない場合にはDd[x][y]=0とすればよい。
そして、Da[x][y]、Db[y]、Dc[y]、Dd[x][y]の重み付き加算値を用いて、非有用度Dz[x][y]を算出する。それぞれの重み係数をWa、Wb、Wc、Wdとすると、Dz[x][y]=Wa×Da[x][y]+Wb×Db[y]+Wc×Dc[y]+Wd×Dd[x][y]である。このDz[x][y]は、アイテムyのユーザxに対する有用性が低いほど大きな値になるので、非有用性を数値化した非有用度であるといる。そして、非有用度Dz[x][y]が所定のしきい値θz以上である場合に、アイテムyを非推薦アイテム集合η[x]を入れればよい。あるいは、重み付き加算値ではなく、Da[x][y]、Db[y]、Dc[y]、Dd[x][y]の積を用いて、非有用度Dz[x][y]を算出してもよい。すなわち、Dz[x][y]=Da[x][y]×Db[y]×Dc[y]×Dd[x][y]としてもよい。
また、Da[x][y]を基数とし所定値γaを指数とする累乗値、Db[y]を基数とし所定値γbを指数とする累乗値、Dc[y]を基数とし所定値γcを指数とする累乗値、Dd[x]を基数とし所定値γdを指数とする累乗値を算出し、それぞれの累乗値の積をDz[x][y]としてもよい。上述した方法と同様な方法で、アイテムyのユーザxに対する有用度を算出し、有用度が所定値以上のアイテムを推薦候補アイテム集合に入れても、もちろんよい。なお、本実施形態では、情報選択部107が非推薦アイテム集合を作成するので、情報選択部107が実施形態1の推薦有用性判定部1073の機能を持つといえる。また、独立した推薦有用性判定部を設けて、推薦有用性判定部が推薦候補アイテム集合または非推薦アイテム集合を作成するように情報選択装置1を構成してもよい。
ステップS740において、情報選択部107は、アイテム関連度テーブル105Aを参照しながら、利用主体xに対応する関連アイテムであり、かつ非推薦アイテム集合η[x]に登録されていないアイテムの中から、未処理の関連アイテムyを選択し、そのアイテム関連度W[x][y]を取得する。
ステップS750において、情報選択部107は、アイテム−カテゴリ対応テーブル101Cを参照しながら、関連アイテムyに対応するカテゴリである候補カテゴリ(候補カテゴリ識別子)を取得する。候補カテゴリ識別子が複数存在する場合は、情報選択部107は、その全てを取得すればよい。この取得した候補カテゴリ識別子の集合を候補カテゴリ集合βとし、集合βの要素数をNβとする。
ステップS760において、情報選択部107は、候補カテゴリ集合βの要素を指定するための制御変数jを「1」に初期化する。以下では、βのj番目の要素であるカテゴリをβ[j]と表記する。β[j]としてカテゴリ識別子を用いてもよいし、カテゴリを識別可能な番号(例えば、「1」「2」「3」等の番号)を用いてもよい。
ステップS770において、情報選択部107は、カテゴリβ[j]に対応するカテゴリ優先度B[β[j]]を更新する。具体的には、以下に示す第1〜第4の方法のいずれかを用いればよい。
カテゴリ優先度更新の第1の方法は、(8)式を用いる方法である。γ1およびγ2は、それぞれ正の定数である。また(8)式には示していないが、H[x][β[j]]に定数を乗じた値や定数を加算した値などをH[x][β[j]]の代わりに用いてもよい。また、W[x][y]に定数を乗じた値や定数を加算した値などをW[x][y]の代わりに用いてもよい。この第1の方法は、利用主体xと候補カテゴリβ[j]とのカテゴリ関連度H[x][β[j]]を用いた値を基数とし第1の所定値γ1を指数とする累乗値と、アイテム関連度W[x][y]を用いた値を基数とし第2の所定値γ2を指数とする累乗値との乗算値を用いて、カテゴリ優先度を算出しているといえる。γ1およびγ2の値を変えることにより、カテゴリ優先度算出におけるアイテム関連度とカテゴリ関連度のバランスを変えることができる。
カテゴリ優先度更新の第2の方法は、(9)式を用いる方法である。ここで、ω1、ω2は、それぞれ正の定数である。(9)式から明らかであるように、ω1は、利用主体xと候補カテゴリβ[j]とのカテゴリ関連度H[x][β[j]]に基づく値に対する重み係数である。また、ω2は、アイテム関連度W[x][y]に対する重み係数である。なお更に、H[x][β[j]]およびW[x][y]にそれぞれ所定値を加算又は減算した値を用いて、重み付き加算を行ってもよい。すなわち、第2の方法は、カテゴリ関連度を用いた値とアイテム関連度を用いた値との重み付き加算値を用いて、カテゴリ優先度を算出しているといえる。ω1およびω2の値を変えることにより、カテゴリ優先度算出におけるアイテム関連度とカテゴリ関連度のバランスを変えることができる。
カテゴリ優先度更新の第3の方法は、(10)式を用いる方法である。第1の方法との違いは、関数F(X)を用いて、カテゴリ関連度を拡張関連度に変換して用いる点である。カテゴリ関連度を関数F(X)に入力した場合の出力が拡張関連度である。この関数F(X)の特性の一例を図22(a)及び(b)に示す。図22(a)に示す例では、関数F(X)がS字カーブ状の非線形特性を持つため、カテゴリ関連度が高い領域において、拡張関連度の大きさは、ほぼ同じ値となる。このような特性の関数は、カテゴリ関連度がやや高いカテゴリと、非常に高いカテゴリがあったときに、カテゴリ優先度に与えるカテゴリ関連度の影響力を両者で同じ程度にしたい場合に適している。図22(b)に示す例では、入力Xが0からX1の区間では、入力に対して出力Yが増加するが、入力XがX1の時に出力Yが最大値Y1となり、入力XがX1より大きい区間では出力Yが減少し、入力Xが最大値X2のときに出力値はY2になる。すなわち、X1<X2かつY1>Y2である。図22(b)に示すような特性の関数を用いると、カテゴリ関連度が非常に大きい場合に、拡張関連度を下げることができる。
ユーザxとの関連度が非常に高いカテゴリをユーザxに推薦することが有効な場合もあるが、関連度が非常に高いカテゴリは、ユーザxが慣れ親しんでいるカテゴリであるため、ユーザxが意外性を感じる確率は低い。アイテムやサービスの性質によっては、ユーザが推薦情報に対して意外性を感じないため、アイテム利用が促進されない等の問題が生じる場合もある。これに対して、図22(b)に示すような変換関数F(x)に基づく拡張関連度を用いてカテゴリ優先度を算出することにより、ユーザxにとって自明なカテゴリが推薦され難くなるため、このような問題を解決することができる。例えば、カテゴリ関連度が中程度で、かつアイテム関連度の高いアイテムが多く存在するカテゴリを推薦すると、「日頃あまり意識していないカテゴリの中にも、面白そうなアイテムが結構ある」といった感想(ユーザの新たな発見)につながり易いため、アイテム利用が促進され易い。
なお、X=0のときにY=0になるようにしてもよいが、図22(a)及び(b)に示すように、X=0のときの出力値Y0を比較的小さな正の値にしてもよい。このようにすることで、ユーザxとの関連度が非常に低いカテゴリも推薦情報の中にある程度入れ易くなる。もちろん図22(a)及び(b)に示す関数F(X)の特性は、あくまでも一例であり、アイテムやサービスの性質の応じて種々の特性の関数を用いることができる。また、変換関数F(x)として原点を通る単調増加の線形関数を用いれば、第1の方法と同じ結果を得ることができる。
カテゴリ優先度更新の第4の方法は、(11)式を用いる方法である。第2の方法との違いは、第3の方法で説明した関数F(X)を用いて、カテゴリ関連度を拡張関連度に変換して用いる点である。この第4の方法を使っても、第3の方法で説明した効果と同様な効果が得られる。
なお、カテゴリ関連度の値の範囲と、アイテム関連度の値の範囲が大きく違うような場合には、対数関数などを用いて、カテゴリ関連度若しくはアイテム関連度又はこれら両方の値の範囲を調整した後に、(8)式〜(11)式を適用してもよい。
ステップS780において、情報選択部107は、制御変数jの値がNβより小さいか否か判定する。小さい場合はステップS790に進み、そうでない場合はステップS800に進む。ステップS790において、情報選択部107は、制御変数jの値を「1」増やして更新する。そしてステップS770に戻る。
ステップS800において、情報選択部107は、アイテム関連度テーブル105Aを参照しながら、利用主体xに対応する関連アイテムであり、かつ非推薦アイテム集合η[x]に登録されていないアイテムの中から、他の未処理の関連アイテムを選択可能か判定する。選択可能である場合はステップS740に戻り、そうでない場合はステップS810に進む。
ステップS810において、情報選択部107は、カテゴリ優先度(カテゴリ優先度バッファB)の値に基づいて、利用主体に対する推薦カテゴリを決定する。具体的には、情報選択部107は、カテゴリ優先度の高い順に所定数を超えない数のカテゴリを選択し、それを推薦カテゴリとすればよい。例えば、カテゴリ優先度が算出されたカテゴリの数が所定数以下の場合は、情報選択部107は、カテゴリ優先度が算出されたカテゴリを全て推薦カテゴリとすればよい。一方、所定数より多い場合は、情報選択部107は、カテゴリ優先度の高い順に所定数を選択し、これらを推薦カテゴリとすればよい。また、情報選択部107は、カテゴリ優先度が所定値以上のカテゴリを選択し、これらを推薦カテゴリとしてもよい。また、情報選択部107は、カテゴリ優先度が所定値以上のカテゴリの中から、カテゴリ優先度の高い順に所定数を超えない数のカテゴリを選択してもよい。
さらに、情報選択部107は、推薦カテゴリそれぞれに対して、カテゴリ優先度の高い順にカテゴリ順位を付与する。そして、情報選択部107は、利用主体識別子、カテゴリ順位、及び推薦カテゴリ識別子を対応させて、推薦情報テーブル108Aに格納する。ステップS810の1回の処理で、1つの利用主体に対応する推薦カテゴリ識別子およびこれらのカテゴリ順位が推薦情報テーブル108Aに格納される。
ステップS820において、情報選択部107は、ステップS810で決定された推薦カテゴリ毎に推薦アイテムを決定する。具体的には、情報選択部107は、アイテム関連度テーブル105Aの関連アイテム識別子とアイテム−カテゴリ対応テーブル101Cのアイテム識別子を対応させることで当該2つのテーブルを結合すればよい。そして、情報選択部107は、結合されたテーブルにおいて「利用主体識別子」カラム(項目)が利用主体xに一致する行を対象に選び、推薦カテゴリのカテゴリ識別子の各々に対して、アイテム関連度の高い順に、非推薦アイテム集合η[x]に登録されていないアイテムを所定数を超えない数だけ選択し、それを推薦アイテムとすればよい。
例えば、推薦カテゴリに対応し、かつ非推薦アイテム集合η[x]に登録されていないアイテムの数が所定数以下の場合は、それらのアイテム全てを推薦アイテムとすればよい。一方、アイテムが所定数より多い場合は、アイテム関連度の高い順に所定数を選択して、これらを推薦アイテムとすればよい。なお、カテゴリ優先度の大きさに応じて、この所定数(すなわち、推薦カテゴリの上限数)を設定してもよい。例えば、カテゴリ優先度が高いカテゴリでは、この所定数を大きくし、多くのアイテムが推薦アイテムとして選択されるようにしてもよい。これに対して、カテゴリ優先度が低いカテゴリでは、この所定数を小さくし、少数のアイテムが推薦アイテムとして選択されるようにしてもよい。
また、情報選択部107は、推薦カテゴリのカテゴリ識別子の各々に対して、アイテム関連度が所定値以上であり、かつ非推薦アイテム集合η[x]に登録されていないアイテムを選択し、それらを推薦アイテムとしてもよい。この場合も、カテゴリ優先度の大きさに応じて、この所定値を設定してもよい。例えば、カテゴリ優先度が高いカテゴリでは、この所定値を小さくし、多くのアイテムが推薦アイテムとして選択されるようにしてもよい。これに対して、カテゴリ優先度が低いカテゴリでは、この所定数を大きく、少数のアイテムが推薦アイテムとして選択されるようにしてもよい。
また、情報選択部107は、推薦カテゴリのカテゴリ識別子の各々に対して、アイテム関連度が所定値以上のアイテムの中からアイテム関連度の高い順に所定数を超えない数のアイテムを選択してもよい。
そして、情報選択部107は、推薦カテゴリと推薦アイテムの組合せそれぞれに対して、アイテム関連度の高い順にアイテム順位を付与する。そして、情報選択部107は、利用主体識別子、アイテム順位、及び推薦アイテム識別子を対応させて、推薦情報テーブル108Aに格納する。ステップS820の1回の処理で、1つの利用主体に対応する推薦アイテム識別子およびこれらのアイテム順位が推薦情報テーブル108Aに格納される。
ステップS820の処理の具体例を図23を用いて説明する。図23は、アイテム関連度テーブル105Aの関連アイテム識別子とアイテム−カテゴリ対応テーブル101Cのアイテム識別子とを対応させることで当該2つのテーブルを結合した上で、非推薦アイテムを除外した状態(内部テーブル)を模式的に示している。例えば、関連アイテム「ItemID−52」に対応する行が合計3行あることからも分かるように、1つの関連アイテムに複数のカテゴリが対応する場合は、対応するカテゴリの個数だけ内部テーブルの行が作成される。本図の例において、アイテムは音楽コンテンツであり、カテゴリ種別として「ジャンル」と「ムード」とを用いており、ステップS810において、「ロック(ジャンル)」、「ジャズ(ジャンル)」、及び「渋い(ムード)」の3つのカテゴリが推薦カテゴリとして決定されたものとする。また、利用主体xが「UserID−10」であり、各推薦カテゴリについてアイテム関連度の高い順に2つのアイテムを選択するという選択条件を用いる。
推薦カテゴリ「ロック」に対応するアイテムは、「ItemID−50」、「ItemID−52」、及び「ItemID−54」の3つであり、これらが推薦候補アイテムとなる。アイテム関連度はそれぞれ「0.90」、「0.80」、及び「0.60」である。このため、「ItemID−50」がアイテム順位1位、「ItemID−52」がアイテム順位2位として選択される。
推薦カテゴリ「ジャズ」に対応するアイテムは、「ItemID−58」の1つのみなので、これがアイテム順位1位として選択される。
推薦カテゴリ「渋い」に対応するカテゴリは、「ItemID−52」、「ItemID−55」、及び「ItemID−25」の3つであり、アイテム関連度はそれぞれ「0.80」、「0.72」、及び「0.40」である。このため、「ItemID−52」がアイテム順位1位、「ItemID−55」がアイテム順位2位として選択される。
なお、この例の場合、「ItemID−52」が「ロック」と「渋い」の2つのカテゴリで重複して選択されることになる。このように、複数のカテゴリ間で重複して同じアイテムを選択してもよい。あるいは、複数のカテゴリ間で重複しないようにアイテムを選択してもよい。例えば、「渋い」に対応するアイテムを選択する際に、「ItemID−52」が既に「ロック」で選択されていることをチェックし、これを除外して、「ItemID−55」をアイテム順位1位とし、「ItemID−25」をアイテム順位2位として選択してもよい。また、ある推薦候補アイテムが複数の推薦カテゴリに対応する場合、カテゴリ優先度またはカテゴリ関連度に応じて、最終的に対応させる推薦カテゴリを決定してもよい。例えば、図23に示した例において、「ロック」のカテゴリ優先度が「0.9」、「渋い」のカテゴリ優先度が「0.7」である場合、「ItemID−52」を相対的にカテゴリ優先度の高い「ロック」に対応させ、相対的にカテゴリ優先度の低い「渋い」には対応させない等の処理をしてもよい。また、2つのカテゴリのカテゴリ優先度が同程度であるような場合に、カテゴリ関連度の低いカテゴリを優先させて推薦カテゴリにしてもよい。このような処理により、意外性のある推薦情報をユーザに提供できる。
ステップS830において、情報選択部107は、アイテム関連度テーブル105Aを参照しながら、他の未処理の利用主体を選択可能か判定する。選択可能である場合はステップS710に戻り、そうでない場合は推薦情報選択処理を終了する。
次に、ステップS420における推薦情報選択処理の第2の方法について、図21のフローチャートを参照して説明する。
ステップS910において、情報選択部107は、ステップS510で作成された推薦ターゲット集合K1の中から未処理の利用主体を1つ選択する。この処理対象となる利用主体を利用主体xとする。
ステップS920において、情報選択部107は、ステップS730と同様な方法で、非推薦アイテム集合η[x]を作成する。
ステップS930において、情報選択部107は、利用主体xに対応する関連アイテムをカテゴリ毎にまとめるとともに、アイテム関連度の高い順にソートした一時テーブルを作成する。なお、非推薦アイテム集合η[x]に登録されているアイテムは、この一時テーブルに登録しないようにする。x以外の別の利用主体に対応する一時テーブルが既に存在する場合、情報選択部107は、それを消去してから新たな一時テーブルを作成すればよい。具体的には、ステップS820の説明と同様に、アイテム関連度テーブル105Aの関連アイテム識別子とアイテム−カテゴリ対応テーブル101Cのアイテム識別子とを対応させることで当該2つのテーブルを結合した上で、非推薦アイテムを除外すればよい。そして、情報選択部107は、結合されたテーブルにおいて「利用主体識別子」カラム(項目)が利用主体xに一致する行を対象に選び、カテゴリ毎に利用主体とのアイテム関連度の高い順にテーブルの行をソートする。非推薦アイテム集合を除外して一時テーブルを作成することにより、推薦候補アイテム集合(非推薦アイテム集合の補集合)の属するアイテムのアイテム関連度を用いてカテゴリ優先度を算出できる。
この一時テーブルの一例を図24に示す。本図に示すように、一時テーブルでは、「ロック」、「ジャズ」、「ブルース」、「渋い」等のカテゴリ別に、アイテム関連度の高い順に、関連アイテムがソートされており、さらにアイテム順位が付与されている。なお、アイテム識別子の格納位置でアイテム順位が分かるため、アイテム順位のカラムを省略してもよい。また、アイテム順位のカラムを設ける場合は、テーブルの行を必ずしもソートしなくてよい。本図に示す例では、「ItemID−101」が「ロック」、「ブルース」、及び「渋い」の合計3つのカテゴリに登録されており、「ItemID−110」が「ロック」および「ブルース」の合計2つのカテゴリに登録されている。このことから分かるように、複数のカテゴリに対応するアイテムは、カテゴリ別に複数のテーブル行に登録されている。図24では、「ロック」、「ジャズ」、「ブルース」、及び「渋い」に対応するアイテムがそれぞれ「C1」、「C2」、「C3」、及び「C4」個登録されている。
なお、一時テーブルを作成する際に、アイテム関連度テーブル105Aに登録されている関連アイテム全てを一時テーブルに入れるのではなく、各カテゴリの関連アイテム数が同じになるように登録したり、各カテゴリの関連アイテムの登録数に上限を設けてもよい。例えば、1つのカテゴリについて、関連アイテム数が最大20件となるように設定してもよい。また、アイテム関連度が所定値以上の関連アイテムのみを一時テーブルに登録してもよい。
ステップS940において、情報選択部107は、ステップS930で作成された一時テーブルを用いて、カテゴリ優先度を算出する。以下では、利用主体xに対応する、一時テーブルに登録されているカテゴリkのカテゴリ優先度をP[x][k]で表わす。
カテゴリ優先度算出の第1の方法は、(12)式を用いる方法である。ここで、H[x][k]は、利用主体xとカテゴリkとのカテゴリ関連度である。当該カテゴリ関連度は、カテゴリ関連度テーブル103Aを参照することで得られる。γ3およびγ4は、それぞれ正の定数である。スコアQ[x][k]は、一時テーブルに登録された関連アイテムに関するカテゴリkに関する値であり、利用主体xとのアイテム関連度を反映している。スコアQ[x][k]の算出方法の具体例については後述する。また(12)式には示していないが、H[x][k]に定数を乗じた値や定数を加算した値などをH[x][k]の代わりに用いてもよい。また、Q[k]に定数を乗じた値や定数を加算した値などをQ[x][k]の代わりに用いてもよい。この第1の方法は、カテゴリ関連度H[x][k]を用いた値を基数とし第3の所定値γ3を指数とする累乗値と、アイテム関連度を用いた値(Q[x][k])を基数とし第4の所定値γ4を指数とする累乗値とを乗算した値を用いて、カテゴリ優先度を算出しているといえる。
カテゴリ優先度算出の第2の方法は、(13)式を用いる方法である。ここで、ω3、ω4は、それぞれ正の定数である。なお、H[x][k]およびQ[x][k]にそれぞれ所定値を加算又は減算した値を用いて、重み付き加算を行ってもよい。第2の方法は、カテゴリ関連度H[x][k]を用いた値と、アイテム関連度を用いた値(Q[x][k])とを重み付き加算した値を用いて、カテゴリ優先度を算出しているといえる。
カテゴリ優先度算出の第3の方法は、(14)式を用いる方法である。第1の方法との違いは、ステップS770の説明と同様に、関数F(X)を使った拡張関連度を用いる点である。例えば、ユーザx(利用主体x)とカテゴリkとの関連度が非常に高い場合に、そのカテゴリは、ユーザxにとって、慣れ親しんだカテゴリである一方、新鮮味に欠ける可能性が高い。そのため関数F(X)を用いて、関連度が非常に高いカテゴリのカテゴリ優先度をあえて下げることにより、ユーザxに対して、意外性のあるカテゴリを推薦することができる。
カテゴリ優先度算出の第4の方法は、(15)式を用いる方法である。第2の方法との違いは、ステップS770の説明と同様に、関数F(X)を使った拡張関連度を用いる点である。
ここで、スコアQ[x][k]の算出方法について説明する。スコアQ[x][k]算出の第1の方法は、カテゴリkに対応する一時テーブルのアイテムのうち、利用主体xとのアイテム関連度が所定値以上のアイテムの個数を用いる方法である。例えば、一時テーブルにおいて、アイテム関連度が「0.5」以上の関連アイテムの個数をカテゴリ毎にカウントすればよい。また、ステップS540において関連アイテム集合作成の第2の方法を用いて、利用主体xとのアイテム関連度が閾値以上のアイテムを関連アイテム集合に入れた場合は、一時テーブルに登録されている、カテゴリ毎のアイテム数「C1」、「C2」、「C3]、「C4]などを各カテゴリのスコアQ[x][k]とすることができる。
スコアQ[x][k]算出の第2の方法は、カテゴリkに対応する一時テーブルのアイテムから、利用主体xとのアイテム関連度が高い順に所定数(NQ個)選択したとき、またはアイテム関連度が所定値以上のアイテムを選択したときのアイテム関連度の総和、またはアイテム関連度の代表値を用いる方法である。代表値としては、平均値、中央値、又は最頻値などを用いることができる。図24に示す例において、NQ=3とし、平均値を用いる場合、カテゴリ「ロック」に対応するスコアQ[x][k]は、「(0.95+0.92+0.86)÷3=0.91」と算出される。
スコアQ[x][k]算出の第3の方法は、カテゴリkに対応する一時テーブルのアイテムを対象にして、アイテム関連度の最大値を算出する方法である。例えば、図24に示す例において、カテゴリ「ロック」に対応するスコアQ[x][k]は「0.95」、カテゴリ「ジャズ」に対応するスコアQ[x][k]は「0.78」になる。この方法は、第2の方法において、NQ=1とした場合に相当する。
上述の第1〜第3のいずれの方法を用いた場合でも、スコアQ[x][k]は、カテゴリkに対応する関連アイテムの利用主体xとのアイテム関連度を用いて算出された値といえる。なお、スコアQ[x][k]算出の各方法において、最大値を「1」にする等の正規化処理を行なってもよい。また、上述の第1および第2の方法を組合せてスコアQ[x][k]を算出してもよい。例えば、第1の方法によって得られる値をQ1[x][k]とし、第2の方法によって得られる値をQ2[x][k]とした場合、Q1[x][k]とQ2[x][k]との積Qa[x][k]、またはQ1[x][k]とQ2[x][k]との重み付き加算値Qb[x][k]を算出し、(12)式〜(15)式のQ[x][k]にQa[x][k]またはQb[x][k]を代入してカテゴリ優先度を算出してもよい。
ステップS950において、情報選択部107は、ステップS810と同様な方法で、推薦カテゴリを決定し、推薦カテゴリとカテゴリ順位とを推薦情報テーブル108Aに格納する。ステップS810におけるカテゴリ優先度バッファBの代わりに、カテゴリ優先度Pを用いて同様の処理を行なえばよい。
ステップS960において、情報選択部107は、利用主体xに対する推薦アイテムを決定する。具体的には、ステップS930で作成された一時テーブルを用いて、ステップS950で決定された推薦カテゴリ毎に、利用主体xとのアイテム関連度の高い順に所定数を超えない数のアイテムを選択し、それを推薦アイテムとすればよい。なお、ここで用いる所定数をステップS940のスコアQ算出の第2の方法で用いた所定数NQと同じにしてもよい。また、利用主体xとのアイテム関連度が所定値以上のアイテムを選択し、推薦アイテムとしてもよい。さらに、利用主体xとのアイテム関連度が所定値以上のアイテムの中から、利用主体xとのアイテム関連度の高い順に所定数を超えない数のアイテムを選択してもよい。一時テーブルからアイテムを選択しているため、非推薦アイテムを除外して、すなわち推薦候補アイテム集合の中から推薦アイテムを選択していることになる。
ステップS970において、情報選択部107は、アイテム関連度テーブル105Aを参照しながら、他の未処理の利用主体を選択可能か判定する。選択可能である場合はステップS910に戻り、そうでない場合は推薦情報選択処理を終了する。以上が推薦情報作成処理(ステップS420)に含まれる推薦情報選択処理の具体例に関する説明である。なお、本実施形態においては、情報選択部107が推薦情報選択処理を行うものとしたが、情報選択部107が更に、推薦有用性判定部、カテゴリ優先度算出部、カテゴリ選択部、アイテム選択部などを含むように情報選択装置10を構成してもよい。例えば、推薦有用性判定部がステップS730およびステップS920の処理を行い、カテゴリ優先度算出部がステップS770およびステップS940の処理を行い、カテゴリ選択部がステップS810およびステップS950の処理を行うようにしてもよい。
既に述べたように、特許文献1に開示された技術は、推薦カテゴリを決定するために、ユーザによるテレビ番組の録画予約履歴に含まれる番組を用いて計算された番組カテゴリ毎のユーザ嗜好度を使用する。しかしながら、特許文献1に開示された技術は、推薦カテゴリを決定する際に、各番組カテゴリに属するテレビ番組(すなわち、本実施の形態のアイテムに相当)の情報を十分に考慮していない。例えば、ユーザ嗜好度の算出に、録画予約履歴を用いているが、録画予約された番組は、その存在を既にユーザが十分に認識しているため、それを推薦番組から除外することが十分考えられる。また、推薦カテゴリを決定するために用いられた番組には、既に放送が終了したものも含まれている可能性があるが、そのような番組は、今後放送される番組を対象にした推薦番組には入らない。すなわち、推薦カテゴリを決定するために用いられた番組と、推薦番組との間の違い(ギャップ)が大きい。このため、特許文献1に開示された技術では、推薦カテゴリに関連付けられた推薦番組(すなわち、本実施形態の推薦アイテムに相当)が十分に存在するとは限らない。したがって、特許文献1に開示された技術は、ユーザによるテレビ番組の録画予約履歴に含まれる番組に基づいて推薦カテゴリを提示できても、そのカテゴリに対応し、かつ今後放送される推薦番組(すなわち、本実施形態の推薦アイテムに相当)を十分に提示できない可能性がある。
情報推薦の主要な目的は、ユーザが興味を持つようなアイテムに関する情報をユーザに提示することで、ユーザによるアイテムの利用を増やすことにある。推薦カテゴリに分けて推薦アイテムの情報を提示することにより、推薦情報の分かり易さが向上し、ユーザの興味の度合いを高めることが期待できる。しかしながら、ユーザとの間に高い関連性を有するアイテムを含んでいない推薦カテゴリが推薦情報に混在していると、推薦情報に対するユーザの満足度や興味の度合いが低下し、むしろ逆効果となる。例えば、あるカテゴリを推薦したものの、そのカテゴリに対応する推薦アイテムが少ない場合、アイテム提供サービスの品揃えが十分でない印象をユーザに与える可能性がある。
また、推薦カテゴリに対応する推薦アイテム数を増やすために、アイテム関連度の低いアイテムを多く含めて推薦すると、情報推薦機能に対するユーザの信頼を損なうおそれがある。特に、推薦カテゴリを決定した後、それに対応する推薦アイテムを選択する際に、ユーザがアイテムの存在を十分認識していると推定できるものを除外したり、提供期間が終了しているアイテムを除外する処理を行うと、推薦カテゴリに対応する推薦アイテムを十分確保できない可能性が増える。一方、ユーザに対して有用性のないアイテムを推薦アイテムから除外する処理を行わないと、情報推薦機能に対するユーザの信頼が得られない。また、ユーザにとって有益でない推薦カテゴリを表示するために表示スペース又は表示ページが増えたり、推薦情報を閲覧するための操作が増える結果を招く。特に、表示画面が小さく一度に表示できる情報が限られ、ボタン等の操作部が小さいなど操作性に制限のある携帯電話端末やスマートフォン等のデバイスでは、なるべく少ない表示ページや表示領域でコンパクトに推薦情報を提示することが必要であるため、このような問題が顕在化し易い。
これに対して、本実施形態の推薦情報選択の第1の方法では、ステップS730において、ユーザにとって有用性がないと判定できるアイテムの集合である非推薦アイテム集合を作成し、ステップS770において、非推薦アイテム集合以外のアイテム(推薦候補アイテム)のアイテム関連度を用いてカテゴリ優先度を算出(更新)し、ステップS810において、このカテゴリ優先度に基づいて推薦カテゴリを決定している。また、推薦情報選択の第2の方法では、ステップS940において、アイテム関連度を用いてカテゴリ優先度を算出し、ステップS950において、このカテゴリ優先度に基づいて推薦カテゴリを決定している。
すなわち、本実施形態で用いるカテゴリ優先度は、第1の実施形態のそれと同様に、各候補カテゴリに属するアイテムのそれぞれと利用主体とのアイテム関連度の大きさを反映している。特に、推薦アイテムになる可能性の高いアイテム(推薦候補アイテム)のアイテム関連度を用い推薦カテゴリを決定しているため、推薦カテゴリを決定するのに用いたアイテムと、推薦アイテムとの違い(ギャップ)が小さい。このため、本実施形態は、利用主体との間に高い関連性を有するアイテムが推薦カテゴリの中に存在しない可能性を減らすことができる。ひいては、推薦情報の表示に必要なスペースやページ、推薦情報の閲覧に必要な操作が不必要に増えることを防止できる。このため、本実施形態は、ユーザが使い易く、かつ分かり易い推薦情報を作成し、ユーザに提示することができる。
さらに、本実施形態では、(8)式〜(15)式のように、カテゴリ関連度とアイテム関連度の両方を用いてカテゴリ優先度を算出する例を示した。これにより利用主体との関連性、類似性、嗜好性又は相関性が強く、且つ利用主体との間に高い関連性を有するアイテムと十分に対応付けられている可能性の高い推薦カテゴリを決定することができる。
<第4の実施形態>
本実施形態では、第3の実施形態のステップS180で表示される推薦リストの変形例について説明する。図25は、本実施形態に係る推薦リスト表示の変形例を示している。図16に示した例との違いは、画面の右上に「拡張関連度の調整」ボタンおよび「お薦め情報を再取得」ボタンを表示している点である。ユーザは、「拡張関連度の調整」ボタンを押して、拡張関連度を算出する変換関数F(x)の特性を調整した後、「お薦め情報を再取得」ボタンを押すことにより、新しい関数特性を用いて作成された推薦情報を得ることができる。なお、図15に示した新着アイテム紹介画面など他の画面に「拡張関連度の調整」ボタンを表示してもよい。ユーザが「拡張関連度の調整」ボタンを押さない場合は、標準の関数特性または直前に設定された関数特性を用いて、拡張関連度が算出される。
端末装置30は、ユーザが「拡張関連度の調整」ボタンを押したことに応じて、図26(a)又は(b)に示すような拡張関連度の調整画面が表示するとよい。この調整画面は、情報選択装置10又はアイテム提供サーバ20から送信された表示制御情報に従って端末装置30により生成される。例えば、情報選択装置10の表示制御情報作成部106は、変換関数F(x)の特性の調整を受け付ける画面(例えば、図26(a)又は(b))を出力するための表示制御情報を生成し、これを端末装置30に送信すればよい。
図26(a)は、ユーザが所定の選択肢から1つを選んで、関数F(x)の特性を設定するための設定画面の一例である。図26(a)の例における各選択肢に対応する関数F(x)の一例を図27に示す。図26(a)の選択肢1)〜5)がそれぞれ図27の1)〜5)の特性に対応している。また、図26(b)に示すように、関数F(x)の特性をユーザが直接指定するようにしてもよい。本図に示す例では、ユーザは、入力装置330(例えば、マウス、トラックボール、タッチパネル)を用いて、関数のカーブを直接入力したり、あらかじめ用意されている関数カーブを修正することができる。
なお、図26(a)及び(b)、並びに図27に示した例は、あくまでも一例であり、他の方法を使ってユーザに関数F(X)の特性を調整させてもよい。例えば、図26(a)に示した例と同様に、関連度の低いカテゴリに関する選択肢や、関連度が中程度のカテゴリに関する選択肢を用意し、ユーザに選ばせてもよい。また、ユーザに提示した推薦リストで用いた変換関数の特性を基準にして、それとの相対的な変化(例えば、「関連度の高いカテゴリをもっと上げる」、「関連度の低いカテゴリをもっと優先させる」など)をユーザに指定させて、新たな変換関数の特性を設定してもよい。ユーザにより設定された関数F(X)の特性に関する情報は、端末装置30から情報選択装置10に送信され、情報選択部107内部の記憶領域に格納される。
ユーザが「お薦め情報を再取得」ボタンを押すと、ステップS160と同様に、端末装置30から推薦リクエストが情報選択装置10に推薦リクエストが送信される。なお本実施例では、推薦リクエストに関数F(X)の特性に関する情報を含めてもよい。情報選択装置10は、推薦リクエストを受信したタイミングで推薦情報を作成し(上述した推薦情報作成の第2のタイミングに相当)、指定された関数の特性に応じた推薦情報を端末装置30に提供する。なお、情報選択部107は、利用主体ごとに拡張関連度算出に用いる関数の特性情報を格納してもよい。推薦情報作成時には、処理対象の利用主体により最も最近指定された関数の特性を用いるようにする。このようにすると、ユーザが自分の好みの関数の特性を頻繁に指定する必要がないので、ユーザの利便性が向上する。また、上述した第1のタイミングで推薦情報を作成する場合にも、各ユーザの好みに合った拡張関連度の特性に基づいて推薦情報を作成することができる。
本実施形態は、ユーザに関数F(X)の特性を調整させた後に、それを使って推薦情報を作成することができるため、ユーザが自分の好みに合った推薦情報を容易に得ることができる。また、関数の特性を適宜変更することにより、変化に富んだ推薦情報を得ることができる。
<第5の実施形態>
本実施形態では、第3の実施形態のステップS180で表示される推薦リストの他の変形例について説明する。図28(a)〜(c)は、本実施形態に係る推薦リスト表示の変形例を示している。図28(a)〜(c)に示された表示画面は、複数の推薦カテゴリのそれぞれに対応する複数の図形オブジェクトを含む。さらに、表示画面内における各図形オブジェクトの配置は、各図形オブジェクトが表している推薦カテゴリのカテゴリ優先度の高さに応じて決定される。
より具体的には、図28(a)〜(c)は、推薦カテゴリを円形オブジェクトとして表示している。そして、各円形オブジェクトの画面の上下方向の座標位置は、各円形オブジェクトが表す推薦カテゴリのカテゴリ優先度に基づいて決定されている。例えば、図28(a)では、画面内の上方の位置ほどカテゴリ優先度が高いことに対応する。すなわち、画面の上から「カテゴリA」、「カテゴリC」、「カテゴリB」の順で並んでいるため、「カテゴリA」のカテゴリ優先度が最も高く、「カテゴリB」のカテゴリ優先度が最も低いことになる。このように、推薦カテゴリに対応付けられた図形オブジェクトを用いると共に、その表示位置をカテゴリ優先度に応じて定めることで、ユーザは推薦カテゴリのカテゴリ優先度を直感的に把握することができる。
図28(a)〜(c)の円形オブジェクト内に示された数字は、その推薦カテゴリに対応する推薦アイテムの個数である。図28(b)では、円形オブジェクトの大きさを推薦アイテムの個数に応じて設定している。「カテゴリC」の推薦アイテムが「20個」で最も多いので、円の直径が最も大きくなっている。このような表示をすることで、ユーザは推薦カテゴリに対応する推薦アイテムの個数を直感的に把握することができる。
図28(c)は、カテゴリ毎に表示色や表示パターン(模様)を変えて表示する例を示している。例えば、カテゴリ種別が「ムード」である場合、「癒し系」等のカテゴリに対してはパステルカラーなどの彩度の低い色を用いるとよく、「激しい」等のカテゴリに対しては原色系の彩度の高い色を用いるとよい。「ジャンル」、「ムード」、及び「シチュエーション」などの各カテゴリ種別に適合する色、模様、アイコンなどを色彩心理学などの知見を用いて設定してもよい。
図28(a)〜(c)に示す表示方法は、あくまでも一例であり、他の表示方法を用いてもよい。例えば、円形以外のオブジェクト形状を用いてもよいし、オブジェクトの形状をカテゴリ毎に変えて表示してもよいし、オブジェクトの形状、大きさ、色などの組合せをカテゴリ毎に変えてもよい。また、図28(a)〜(c)に示す2次元グラフにおいて、水平方向の座標値を何らかの指標に基づいて決定してもよい。例えば、ユーザの利用頻度の高いカテゴリほど画面の左側に表示されるようにしたり、アイテムの作成時期またはアイテムの提供開始時期が新しいアイテムが多いカテゴリほど左側に表示されるようにしたり、カテゴリ毎のアイテム価格の代表値や合計値などに基づいて、水平方向の座標値を決定してもよい。また、ユーザが自分の好みに応じて、推薦カテゴリに対応付けられた図形オブジェクトの表示位置、形状、大きさ、色などの表示特性を指定できるようにしてもよい。
具体的には、端末装置30の制御部301が、入力装置330を用いてユーザに希望の表示特性を入力させ、カテゴリ(カテゴリID、カテゴリ名)と表示特性とを対応させたデータを送受信部302を介して情報選択装置10に送信する。情報選択装置10の制御部110は、送受信部109を介してそのデータを受信し、利用主体識別子と対応させて表示制御情報作成部106の内部メモリに記憶させる。表示制御情報作成部106は、内部メモリに記憶されている利用主体識別子に対しては、それに対応する表示特性に従って表示制御情報を作成すればよい。
図28(a)〜(c)に示すカテゴリの中からユーザが入力装置330を用いて所望のカテゴリを選択すると、図29に示すように、選択されたカテゴリに対応する推薦アイテムを表示するようにしてもよい。本図では、推薦アイテムの名称(タイトル)のみが表示されているが、もちろん適当なアイテム属性情報を合わせて表示してもよい。ユーザは所望のアイテムを選択することで、そのアイテムを利用することができる。
情報選択装置10は、図28及び図29に示された表示画面を端末装置30の表示装置320に表示するために以下のように動作すればよい。情報選択装置10の表示制御情報作成部106は、図14のステップS170において、図28および図29に示された表示画面を表示装置320に表示させることを可能にする表示制御情報を作成し、端末装置30に送信する。表示制御情報には、ユーザの対話的な操作を効率的に実現するために、端末装置30のブラウザ部303で実行可能なスクリプト言語等で記述されたプログラムが含まれていてもよい。表示制御情報作成部106は、複数の推薦カテゴリそれぞれに図形オブジェクトを対応させ、各推薦カテゴリに係わる情報、及び各推薦カテゴリに対応する推薦アイテムの情報に基づき、図形オブジェクトの位置、大きさ、形状、色などの表示特性を決定して表示制御情報を作成する。
なお、表示制御情報作成部106は、必ずしも表示制御情報を作成しなくてもよい。例えば、表示制御情報作成部106は、図14のステップS170において、表示制御情報の元情報である各推薦カテゴリに係わる情報(カテゴリ優先度など)、及び各推薦カテゴリに対応する推薦アイテムの情報を表示制御情報の代わりに端末装置30に送信してもよい。そして、端末装置30は、これらの情報に基づいて、図形オブジェクトの表示位置、形状、大きさ、色などの表示特性を決定してもよい。更に必要であれば、アイテム時期情報やアイテム価格情報などのデータを情報選択装置10から端末装置30に送信した上で、端末装置30がそれらの情報を用いて表示特性を決定してもよい。すなわち、推薦リストの表示に係わる処理を情報選択装置10と端末装置30にどのように分担させるかは任意である。
なお、以上の説明では、推薦カテゴリに対応する図形オブジェクトの配置をカテゴリ優先度の高さに応じて決定する例を示した。しかしながら、推薦カテゴリに対応する図形オブジェクトのその他の表示形態(例えば、色、大きさ、又は形状)をカテゴリ優先度に応じて決定してもよい。さらに、推薦カテゴリをテキスト表示することも考えられる。この場合、推薦カテゴリを示すテキストの色、フォントサイズ、又はフォント種別をカテゴリ優先度に応じて決定してもよい。すなわち、推薦カテゴリに対応する表示オブジェクト(例えば、図形若しくはテキスト、又はこれらの組み合わせ)の表示形態(例えば、配置、色、大きさ、形状、フォント、又はフォント種別)をカテゴリ優先度に応じて決定してもよい。これらの変形例においても、ユーザは推薦カテゴリのカテゴリ優先度を直感的に把握することができる。
<その他の実施形態>
上述した第3〜第5の実施形態では、情報選択装置10が、ステップS420(図17)の推薦情報作成処理を行なったが、この処理を端末装置30側で行なうようにしてもよい。この場合、端末装置30のアプリケーション部304に、情報選択部107に相当する動作を行なわせればよい。例えば、ステップS160(図14)に先立つ適当なタイミングで、アプリケーション部304が、アイテム提供サーバ20を経由して、あるいは直接情報選択装置10から、アイテム情報テーブル101A、カテゴリ情報テーブル101B、アイテム−カテゴリ対応テーブル101C、カテゴリ関連度テーブル103A、及びアイテム関連度テーブル105Aのデータを取得する。このとき、各々のテーブルの全部のデータを取得してもよいし、ステップS420で1つのリクエスト識別子に対して推薦情報を作成する際に必要なデータのみを取得するようにしてもよい。カテゴリ関連度テーブル103A及びアイテム関連度テーブル105Aについては、処理を行う端末装置30を使用するユーザのユーザ識別子またはその端末装置の端末識別子に該当するデータのみ取得すればよい。そして、ステップS160において、推薦リクエストを送信する代わりに、ステップS420に相当する処理をアプリケーション部304が実行すればよい。この場合、アプリケーション部304が情報選択部107の機能を担うことになる。
また、第3〜第5の実施形態で説明した変換関数F(x)を用いてカテゴリ関連度を拡張関連度に変換する技術思想は、推薦カテゴリを決定するためのカテゴリ優先度の計算にアイテム関連度を使用しない場合にも適用することができる。言い換えると、拡張関連度に関する技術思想は、第1〜第5の実施形態で説明した“カテゴリ優先度の計算にアイテム関連度を使用する技術思想”とは独立して実施可能である。拡張関連度に関する技術思想は、推薦カテゴリの決定にカテゴリ関連度を用いる場合に広く適用することができる。特に、図22(b)に示されているように、入力値の増加に応じて出力値が減少する区間を有する変換関数F(x)を用いることによって、ユーザにとって自明なカテゴリが推薦され難くなり、ユーザにとって意外性のある推薦カテゴリを提供できる。
さらに、上述した実施形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施形態のみに限定されるものではなく、種々の変更が可能であることは勿論である。