本発明の実施の形態であるネットワークシステムについて図面を参照して、システム構成、システム動作の順で詳細に説明する。
<1.システム構成>
<1.1.全体構成>
図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.2.アイテム提供サーバ>
アイテム提供サーバ20は、端末装置30からの要求に応じて、アイテムおよびアイテムに関する情報を提供する装置である。ここでアイテムとは、テキスト、音声、音楽、映像等のデジタルコンテンツや様々な物品あるいはサービスであり、さらには金融商品、不動産、人物についての情報等であってもよい。すなわち本実施形態におけるアイテムは、有形か無形かを問わず、有料か無料かも問わない。
図3は、アイテム提供サーバ20の構成を示すブロック図である。本図に示すように、アイテム提供サーバ20は、認証部201と、アイテム格納部202と、推薦情報格納部203と、送受信部204と、制御部205とを備えて構成されている。アイテム提供サーバ20は、CPU、RAM、ROM、HDD(ハードディスクドライブ)、ネットワークインタフェース等を備える一般的なコンピュータを用いて構成することができる。すなわち、一般的なコンピュータは、以下で説明するような処理を行なうためのプログラムを実行することにより、アイテム提供サーバ20として機能することができるようになる。
認証部201は、端末装置30または端末装置30を利用するユーザを認証する処理を行なう。認証部201は、端末装置30を利用するユーザを一意に識別するユーザ識別子、または端末装置30を一意に識別するための端末識別子と、パスワードとを関連付けて格納している。これらの情報は、例えば、ユーザの最初の利用時においてユーザ登録処理を行なうことで取得・設定し、認証部201内の記憶領域に格納することができる。
本実施形態では、ユーザ識別子を用いてユーザを識別するものとするが、端末装置30として携帯電話を用いた場合等には、端末装置30との接続時に取得可能な端末識別子を用いるようにしてもよい。なお、ユーザ識別子と端末識別子とを合わせて、利用主体識別子と呼ぶ。ただし、認証部201は省略することも可能である。また、認証部201に利用主体識別子のみを格納し、パスワードの格納と認証処理とを省略することも可能である。例えば、端末装置30の製造時に設定される端末識別子など、容易には変更できない識別子を利用主体識別子として用いる等の場合は、パスワードの格納と認証処理を省略することができる。
アイテム格納部202は、アイテム提供サーバ20が提供するアイテムに関する情報を格納する。アイテム格納部202は、例えば、図4に示すようなテーブル形式でアイテムに関する情報を格納する。
本図に示すように、アイテム格納部202は、アイテムを一意に識別するアイテム識別子(アイテムID)と、アイテムの「タイトル(名称)」、「作成者」、「カテゴリ」、「説明情報」、「アイテム時期情報」などのアイテム属性情報と、アイテム本体とを関連付けて格納している。
「作成者」は、アイテムの種類に応じて幅広い意味を持つ情報であり、例えば、アイテムの制作者、監督者、プロデューサー、執筆者、作曲者、作詞者、演奏者、出演者などである。
「カテゴリ」とは、アイテムを所定の基準で分類した情報であり、例えば、アイテムが音楽の場合、「ロック」、「ジャズ」、「クラシック」、「フォーク」等のジャンル情報とすることができ、アイテムが映画の場合、「SF」、「アクション」、「コメディ」、「アニメ」等のジャンル情報とすることができる。また、「日本」、「アメリカ」、「イギリス」、など作成者の国や地域を用いた分類情報でもよい。また、「癒し系」、「エキサイティング」、「ドラマティック」といったアイテムの雰囲気やムードを示す情報を「カテゴリ」として用いてもよい。「説明情報」は、アイテムのあらすじや要約、制作された背景説明などの情報である。
「アイテム時期情報」は、アイテムの作成された時期(時点)を示す情報であるが、アイテム提供サーバ20にアイテムが登録された時期や、アイテムが提供開始された時期を用いてもよい。本実施形態では、時期(時間)の単位として、「2010年1月1日」などの日付を用いるが、他の単位を用いてもよい。例えば、「2010年1月1日 10時15分20秒」などの秒単位までの日時でもよいし、ミリ秒単位までの日時でもよい。さらに「2010年1月」などの月単位の情報でも、「2010年 1Q」などの四半期単位の情報でも、「2010年」などの年単位の情報でも、「2000年代」などの年単位より大まかな年代の情報でもよい。
アイテム格納部202のアイテム属性情報においては、1つのアイテムに同じ種類の属性項目が複数存在していてもよい。例えば、1つのアイテムに3つのカテゴリが対応していてもよい。もちろん、ここで挙げたアイテム属性情報は、あくまでも例示であり、上記に限定される訳ではない。例えば、「価格」、「サイズ」などの属性項目を用いてもよい。
アイテム本体は、アイテムそのものであるテキストデータやバイナリデータ、またはアイテムの存在位置を示す情報(例えばURL:Uniform Resource Locator)とすることができる。なお、アイテム本体は、アイテムがデジタルコンテンツ等であって、ネットワーク40を介して端末装置30に配信可能なアイテムに関して格納するものであり、アイテムが、物品やサービス等の場合は、アイテム本体の格納を省略することができる。
推薦情報格納部203は、情報選択装置10から受信した推薦情報を格納する。推薦情報は、ユーザ毎に推薦するアイテムを示す情報である。推薦情報格納部203は、例えば、図5に示すような形式で推薦情報を格納することができる。本図に示すように、推薦情報格納部203は、ユーザ識別子とアイテム識別子と推薦順位とを関連付けて格納する。
この推薦順位は、ユーザ識別子ごとにアイテムを推薦する順位を示しており、ここでは数字が小さいほど、優先的にユーザに提示されるものとする。なお、推薦順位の代わりに、数値が大きいほど、優先的にユーザに提示されるような推薦度を格納するようにしてもよい。また、推薦順位の格納を省略して、推薦情報格納部203に格納された推薦情報を同じ順位で扱うようにしてもよい。
送受信部204は、ネットワーク40(図2の構成の場合は、さらにネットワーク42)を介して、情報選択装置10および端末装置30との間でデータを送受信する処理を行なう。制御部205は、アイテム提供サーバ20の全体の制御を行なう。
<1.3.端末装置>
端末装置30は、ユーザが使用する装置であり、CPU、RAM、ROM、HDD(ハードディスクドライブ)、ネットワークインタフェース等を備える一般的なコンピュータ等を用いることができる。端末装置30には、Webブラウザに代表されるアイテム情報をアイテム提供サーバ20から取得するためのプログラムがインストールされている。また、端末装置30は、Webブラウザ機能等を備えた携帯電話や、携帯端末装置等を用いて構成することもできる。
端末装置30としてコンピュータを用いた場合には、図示してないがディスプレイ等の表示装置や、キーボード、マウス、トラックボール、リモコン等のユーザからの操作指示を受け付けるための入力装置が接続される。端末装置30として携帯電話等を用いた場合は、表示装置、入力装置は内蔵されているが、以下では、便宜的に表示装置、入力装置が接続されているものとして説明する。
<1.4.情報選択装置>
図6は、アイテム選択装置として機能する情報選択装置10の構成を示すブロック図である。情報選択装置10は、ユーザ毎に推薦するアイテムを選択する装置である。本図に示すように情報選択装置10は、アイテム属性格納部101と、利用履歴格納部102と、推薦アイテム条件格納部103と、嗜好アイテム集合作成部104と、第1割合計算部105と、第2割合計算部106と、ユーザ特性値計算部107と、アイテム選択部108と、送受信部109と、制御部110と、ユーザ属性格納部111とを備えて構成されている。また、情報選択装置10には、情報選択装置10の管理者向けに必要な情報を表示するための表示装置120と、管理者が操作を行なうためのキーボード、マウス等の入力装置130とが接続されている。
情報選択装置10は、CPU、RAM、ROM、HDD(ハードディスクドライブ)、ネットワークインタフェース等を備える一般的なコンピュータを用いて構成することができる。すなわち、一般的なコンピュータは、以下で説明するような処理を行なうためのプログラムを実行することにより、情報選択装置10として機能することができるようになる。
また、上述のように、情報選択装置10を複数台のコンピュータを用いて構成してもよい。例えば、負荷分散をするために、情報選択装置10のある処理ブロックに相当するコンピュータを複数台用いて、すなわち、同じ処理ブロックを備える複数台のコンピュータを用いて分散処理を行なうようにしてもよい。また、情報選択装置10の一部の処理ブロックをあるコンピュータで実施し、他の処理ブロックを別のコンピュータで実施する形態で分散処理を行なってもよい。
アイテム属性格納部101のデータ格納形式を図7に示す。本図に示すように、アイテム属性格納部101は、アイテム識別子と、アイテム属性情報とを関連付けて格納する。アイテム識別子およびアイテム属性情報は、図4に示したアイテム提供サーバ20のアイテム格納部202と同様であり、アイテム提供サーバ20のアイテム格納部202との違いは、アイテム本体が存在しない点である。情報選択装置10では、アイテム本体を必要としないが、アイテム提供サーバ20のアイテム格納部202のデータをそのまま使用して格納することも可能である。あるいは、情報選択装置10からアイテム提供サーバ20のアイテム格納部202のデータを直接参照できるようにして、アイテム属性格納部101を省略することも可能である。
アイテム属性情報は、上述したように、アイテムの「タイトル」、「作成者」、「カテゴリ」、「説明情報」、「アイテム時期情報」などである。ただし、後述するように、推薦アイテム条件格納部103において、アイテム属性情報に関係しない推薦アイテム条件のみ格納する場合には、アイテム属性格納部101を省略してもよい。
制御部110は、情報選択装置10の全体の制御を行なうための種々の処理を行なう。例えば、制御部110は、図8に示すようなテーブル形式で、アイテム提供サーバ20から送られる後述する利用要求メッセージに含まれるユーザ識別子とユーザが指定したアイテムのアイテム識別子とを対応させた利用履歴を利用履歴格納部102に格納させる。
利用履歴格納部102は、例えば、図8に示すように種々の格納形態を採用することができる。図8(a)は、ユーザ識別子とアイテム識別子とを関連付けて格納する格納形態を示している。本例では、1つの利用要求メッセージが、テーブルの1行に対応している。テーブルの1行目と4行目がともに「UserID−1」と「ItemID−3」の組み合わせであることから分かるように、ユーザ識別子とアイテム識別子の組み合わせが同じであっても、利用要求メッセージごとにテーブル行のデータを追加して格納している。このため、アイテム識別子が示すアイテムごとの利用回数と、アイテムごとの利用ユーザ数すなわち、ユーザ識別子の数を他の処理部が容易にカウントすることができる。なお、1つの利用メッセージに複数のアイテム識別子が含まれている場合は、アイテム識別子の数だけのテーブル行を割り当てて格納する。
図8(b)は、ユーザ識別子とアイテム識別子と利用時期情報とを関連付けて格納する格納形態を示している。図8(a)に示した例と同様に、1つの利用要求メッセージが、テーブルの1行に対応している。アイテムの利用要求メッセージに利用時期情報が含まれている場合は、その情報を取り出して利用時期情報として格納する。利用要求メッセージに利用時期情報が含まれていない場合は、制御部110に内蔵等されている時計を用いて、情報選択装置10が利用要求メッセージを受信した時期(時間)を利用時期情報として格納する。
本実施形態では、利用時期情報の形式として、「2010年1月1日 10時15分20秒」などの秒単位までの日時を用いるが、それ以外にも、ミリ秒単位までの日時、日単位までの日付、月単位、年単位など種々の形式を用いることができる。なお、利用要求メッセージの中に、ユーザのアイテムに対する評価値(好き=3、どちらでもない=2、嫌い=1、などの好き嫌いの度合いを示す数値)を含ませた上で、ユーザ識別子とアイテム識別子と利用時期情報と評価値とを関連付けて利用履歴格納部102に格納するようにしてもよい。
また、利用履歴格納部102は、図8(c)に示すように、利用時期情報を省略し、ユーザ識別子とアイテム識別子と利用回数とを関連付けた格納形式としてもよい。後述するように、嗜好アイテム集合作成部104において、利用時期情報を用いない場合は、図8(c)に示す形式で格納することにより、記憶容量を削減することができる。また、利用要求メッセージの中に、ユーザのアイテムに対する評価値が含まれる場合は、ユーザ識別子とアイテム識別子と利用回数と最新の評価値とを関連付けて利用履歴格納部102に格納するようにしてもよい。
推薦アイテム条件格納部103は、アイテムの販売者がユーザに薦めたいアイテムの条件を示す推薦アイテム条件データを格納する記憶領域である。他の処理ブロックで選択されたアイテムのうち、推薦アイテム条件データとして登録された条件を満たすアイテムが、推薦アイテム条件に合致するアイテムと判定される。
販売者は、アイテムの在庫状況や仕入れ価格、販売方針等に応じて、推薦アイテム条件を自由に設定することができる。推薦アイテム条件データは、アイテム提供サーバ20の運営者が、情報選択装置10の管理者に委託して入力してもらう。あるいは、アイテム提供サーバ20の運営者が推薦アイテム条件データをアイテム提供サーバ20において登録し、それを情報選択装置10に送信してもよい。
推薦アイテム条件格納部103は、例えば、図9(a)に示すようなテーブルで推薦アイテム条件データを格納することができる。本例は最も単純な格納形式であり、入力装置130を使って情報選択装置10の管理者が指定したアイテムのアイテム識別子が格納されている。
推薦アイテム条件格納部103は、図9(b)に示すような対象タイプと対象項目とを対応付けた規則を用いて、図9(c)に示すようなテーブルで推薦アイテム条件データを格納するようにしてもよい。
図9(b)に示すように、対象タイプ「1」は、対象データが「アイテム識別子」であることを示している。対象タイプ「2」は、対象データが「作成者」であることを示しており、対象データには、作成者の名前または作成者識別子が登録さる。対象タイプ「3」は、対象データが「カテゴリ」であることを示しており、対象データには、カテゴリ名またはカテゴリ識別子が登録される。対象タイプ「4」は、対象データが「キーワード」であることを示しており、アイテム属性の中の「タイトル」、「作成者」、「カテゴリ」、「説明情報」などの属性項目に、この「キーワード」が含まれる場合に、推薦アイテム条件に合致すると判定される。対象タイプ「5」は、対象データが「アイテム時期情報」であることを示す。図9(c)に示された例のように「アイテム時期情報」の範囲を格納してもよいし、単一の「アイテム時期情報」を格納してもよい。対象タイプ「6」は、対象データが「価格」であることを示している。図9(c)に示された例のように「価格」の範囲を格納してもよいし、単一の「価格」を格納してもよい。
また、対象タイプ「7」は、アイテムの利用回数の順位または順位の範囲を示す。図9(c)の例では、利用回数が多い方から「1000位〜1999位」に相当するアイテムが対象であることを示している。利用履歴格納部102に格納されている利用履歴に含まれるアイテムが全部で3000種類あるとすると、この例では、人気度が中くらいのアイテムを指定していることになる。対象タイプ「7」のデータが推薦アイテム条件格納部103に格納されると、制御部110は、利用履歴格納部102に格納された利用履歴を読み出し、それに含まれるアイテム識別子ごとに利用回数をカウントし、利用回数の多い順にソートして、指定された順位に該当するアイテム識別子を推薦アイテム条件格納部103内部の記憶領域に記憶させる。なお、この処理において、利用時期情報が所定の範囲に入っている等の所定条件を満たす利用履歴のみを対象に、利用回数をカウントしてもよい。また、利用回数ではなく、アイテム毎に利用したユーザ数(ユーザ識別子の数)をカウントし、利用ユーザ数が多い順にアイテムに順位をつけ、その順位またはその順位の範囲を推薦アイテム条件データとして用いてもよい。
対象タイプ「8」は、アイテムの利用回数を示す。図9(c)の例では、利用回数が「200回〜300回」に相当するアイテムが対象であることを示している。制御部110は、利用履歴格納部102に格納された利用履歴を読み出し、それに含まれるアイテム識別子ごとに利用回数をカウントし、指定された回数に該当するアイテム識別子を推薦アイテム条件格納部103内部の記憶領域に記憶させる。また、対象タイプ「7」と同様に、利用回数に代えて、利用したユーザ数(ユーザ識別子の数)を用いてもよい。すなわち、利用履歴格納部102に格納された利用履歴を対象にして、アイテムごとに利用したユーザの数(ユーザ識別子の数)をカウントし、その利用ユーザ数またはその利用ユーザ数の範囲を推薦アイテム条件データとして用いてもよい。
なお、対象タイプ「2」〜「6」を用いる場合は、アイテム属性格納部101が必要であるが、対象タイプ「1」「7」「8」を用いる場合は、アイテム属性格納部101を省略することも可能である。
図9(c)の形式を用いることにより、多様な推薦アイテム条件データを自由に登録して格納することができる。なおテーブルに複数の行(複数のルール)が登録されている場合、1つ以上の行に該当するアイテムを推薦アイテム条件に合致すると判定すればよい。この場合は、各行を論理和(OR)結合して処理を行なうことに相当する。また、同一の対象タイプの行を論理和(OR)結合し、異なる対象タイプの行を論理積(AND)結合して処理してもよい。
例えば、図9(c)の1〜3行目を取り出すと、(「ItemID−3」∪「ItemID−10」)∩「Creator−2」という条件になる。ここで、「∩」は論理積(AND)を表し、「∪」は論理和(OR)を表わしている。
図9(c)に示した格納方式を用いることにより、多様で自由度の高い推薦アイテム条件を設定することが可能になり、販売者の販売方針が複雑であっても対応することができるようになる。
さらに、図9(d)に示すような格納形式を用いてもよい。この場合、制御部110は、以下のようにこのテーブルを解釈して、最終的な推薦アイテム条件データとする。なお、対象タイプと対象データは、図9(c)と同じ意味である。
まず、結合レベルが小さい順に、同じ結合レベルの行を結合する。その際に、同じ結合レベルで、かつ行番号が連続している区間(ブロック)ごとに分け、行番号の小さいブロックから順に処理を行う。
本図の例では、結合レベルが「1」である行は、(行番号「1」〜「3」)および(行番号「5」〜「6」)であるが、これらの間の行番号「4」が異なる結合レベルなので、2つのブロック分かれる。すなわち、行番号「1」〜「3」のブロック1と、行番号「5」〜「6」のブロック2に分けて、行番号の小さいブロック1から先に処理を行う。行番号「2」および「3」の論理タイプが論理和「∪」であるため、ブロック1の3行を論理和で結合することにより、ブロック1の部分は、(「作者がCreator−3」または「作者がCreator−10」または「カテゴリがCategory−5」)という条件式になる。
ブロック2の2行の結合において、行番号「5」には否定フラグが設定されているため(本図の「○」)、行番号「5」は否定形として解釈される。「〜2010/3/31」という表記は、アイテム時期情報が2010年3月31日以前であることを示しており、否定フラグが「○」に設定されているため、アイテム時期情報が2010年3月31日より後(新しい)という意味に解釈される。行番号「6」の論理タイプは、論理積「∩」であるため、ブロック2は、(「アイテム時期情報が2010年3月31日より後」かつ「利用回数順位が1000位から1999位までの間)という条件式となる。
次に、各ブロックを作成するのに使用した結合レベルより1つ大きな値の結合レベルに該当する論理タイプを用いて、各ブロックを結合する。本図の例では、結合レベルが「2」である行番号「4」の論理タイプである論理積「∩」を使って、ブロック1とブロック2を結合する。そして、((「作者がCreator−3」または「作者がCreator−10」または「カテゴリがCategory−5」)かつ(「アイテム時期情報が2010年3月31日より後」かつ「利用回数順位が1000位から1999位までの間))という条件式が作成され、この条件式を満たすアイテムが推薦アイテム条件を満たすアイテムと判定される。図9(d)に示された格納方式を用いることにより、さらに多様で自由度の高い推薦アイテム条件を設定することが可能になる。
このように、図9(c)または図9(d)に示したような格納方式を用いることにより、推薦アイテム条件を柔軟に設定できるので、販売方針に合致するアイテムが多すぎたり、少なすぎたりすることを防ぐことができる。
ユーザ属性格納部111は、図10に示すような形式で、ユーザ識別子とユーザ属性情報とを格納する。ユーザ属性情報は、氏名、性別、生年月日、居住地域、血液型、入会時期、趣味、好きなカテゴリ、好きなキーワードなどの情報である。趣味、好きなカテゴリ、好きなキーワードなど項目は、1人のユーザについて、それぞれ複数存在していてもよい。これらの情報は、例えば、ユーザ登録を行なう際に、ユーザから取得してユーザ属性格納部111に格納することができる。
第1割合計算部105は、処理対象となっているユーザに対して、そのユーザが好むアイテム(ユーザ嗜好を示すアイテム)の集合である第1の集合を作成し、第1の集合における推薦アイテム条件に合致するアイテムの割合である第1割合を算出し、第1割合計算部105内部の記憶領域に格納する。第1割合計算部105の詳細な処理手順については後述する。
第2割合計算部106は、処理対象となっているユーザに対して、第1の集合のアイテム以外のアイテムを含むアイテム集合である第2の集合を作成し、第2の集合の中で推薦アイテム条件に合致する割合である第2割合をそれぞれ算出し、第2割合計算部106内部の記憶領域に格納する。第2の集合は、推薦対象ユーザの嗜好をあまり強く表さないアイテムの集合といえる。第2割合計算部106の詳細な処理手順については後述する。
なお、第1割合計算部105と第2割合計算部106とは、あるアイテムが推薦アイテム条件に合致するか、合致しないかの2値的な判断ではなく、テーブルの各行の推薦アイテム条件に合致する数を用いて、アイテムと推薦アイテム条件とが適合する度合い(適合度)を多値的(連続量的)に細かく算出してもよい。
例えば、図9(c)に示した例において、あるアイテムAが、「Category−3」と「Category−5」と「エキサイティング」の3つのアイテム属性情報を持っている場合には、適合度を「3」とすることができる。また、別のアイテムBが、「Category−5」と「ドラマティック」の2つのアイテム属性情報を持っている場合には、適合度を「2」とすることができる。この2つのアイテムは、両方とも推薦アイテム条件を満たすが、アイテムAの方が、適合度が高くなる。また、合致する条件数を推薦アイテム条件の総数(推薦アイテム条件を格納するテーブルの行数)で割った値や、合致する条件数を複数のアイテムの合致する条件数の最大値で割った値などを用いて、正規化された適合度を算出してもよい。
ユーザ特性値計算部107は、処理対象となっているユーザに対して、推薦対象ユーザの嗜好と推薦アイテム条件との関連の強さを示すユーザ特性値をそれぞれ算出する。そして、ユーザ識別子とユーザ特性値とを対応させてユーザ特性値計算部107内部の記憶領域に格納する。ユーザ特性値計算部107の詳細な処理手順については後述する。
アイテム選択部108は、ユーザ特性値と嗜好アイテム集合とを用いて、処理対象となっているユーザに適したアイテムを選択し、推薦情報を作成する。アイテム選択部108の詳細な処理手順については後述する。送受信部109は、ネットワーク40、または、ネットワーク42を介して、アイテム提供サーバ20との間でデータを送受信する処理を行なう。
<2.システム動作>
<2.1.システム全体の動作>
図12のフローチャートを参照して、システム全体の動作を説明する。所定の操作により端末装置30からアイテム提供サーバ20にアクセスすると、図13に示すようなアイテム情報を取得するための操作メニューが端末装置30の表示装置に表示される。ユーザは、表示装置の画面を見て、利用したい操作メニューがあれば、入力装置を操作して、その表示箇所をクリックする操作を行なうことにより、操作メニューを選択する。また、操作を終了するための「終了」ボタンが表示されている。操作メニューにおいて、「1)推薦アイテム情報を表示」は、情報選択装置10で作成された推薦情報を表示する選択肢である。「2)アイテム一覧を表示」は、例えばアイテムのタイトルや作成者の「あいうえお順」または「ABC順」に、アイテム提供サーバ20の保有するアイテムの一覧リストを表示するための選択肢である。「3)アイテム検索」は、ユーザにキーワードを入力させ、そのキーワードがアイテムのタイトルや説明情報に含まれるアイテムを表示したり、ユーザに所望のカテゴリを指定させ、それに合致するアイテムを表示するための選択肢である。また、推薦情報を表示させる場合に、ユーザが指定したキーワードやカテゴリに合致する推薦情報のみを表示させるようにしてもよい。なお、ここで示した操作メニューの選択肢は、あくまでも一例であり、他の選択肢を用意してもよい。
まず、ステップ(S101)において、端末装置30が、入力装置を介してユーザからの指示を受け付けると、アイテム情報を要求するメッセージをアイテム提供サーバ20に送信する。このメッセージには、あらかじめ設定されたユーザを識別するユーザ識別子と、パスワードと、上記の操作メニューで選択された選択肢を示す情報(要求情報の種類)とが含まれている。また、表示する推薦情報を絞り込むために、ユーザがキーワードやカテゴリを指定した場合には、それらの情報が含まれている。
次に、ステップ(S102)において、アイテム提供サーバ20の認証部201が、送受信部204を介してアイテム情報要求のメッセージを受信し、認証処理を行なって、認証成功か否かを判定する。
受信したメッセージに含まれるユーザ識別子とパスワードが、あらかじめ認証部201に格納されているものと一致する場合(Yes)は、認証成功として、ステップ(S103)に進む。そうでない場合(No)は、認証失敗として、認証失敗メッセージを、送受信部204を介して端末装置30に通知し、ステップ(S101)から再度処理を行なうように要求する。なお、ステップ(S101)において、アイテム情報要求メッセージにパスワードを含めず、ステップ(S102)において、パスワードを用いた処理を行なわないようにすることも可能である。
次に、ステップ(S103)において、アイテム提供サーバ20の制御部205が、アイテム情報要求のメッセージに含まれる要求情報の種類が、推薦情報要求か否かを判定する。推薦情報が要求された場合(Yes)は、ステップ(S104)に進み、それ以外の情報が要求された場合(No)は、ステップ(S105)に進む。
ステップ(S104)では、アイテム提供サーバ20の制御部205が、推薦情報に基づくアイテム情報のリストを作成し、送受信部204を介して端末装置30に送信する。このリストには、アイテム識別子とアイテム属性情報と、推薦順位の情報が含まれている。具体的には、制御部205が、推薦情報格納部203に格納されたデータから、ステップ(S102)で認証を行ったユーザ識別子と一致するユーザ識別子を持つ推薦情報を抽出し、アイテム格納部202を参照しながら、抽出した推薦情報のアイテム識別子に対応するアイテム属性情報を読み出して、さらに、推薦順位と合わせて推薦アイテムのリストを作成し、これを送信する。
ユーザが特定のカテゴリを指定して、推薦情報を要求した場合には、推薦情報格納部203およびアイテム格納部202を参照して、ステップ(S101)で認証を行ったユーザ識別子と一致するユーザ識別子を持つ推薦情報であり、かつ指定されたカテゴリと一致するカテゴリを持つアイテムに対応する推薦情報を提供する。また、ユーザがキーワードを指定して、推薦情報を要求した場合には、推薦情報格納部203およびアイテム格納部202を参照して、ステップ(S101)で認証を行ったユーザ識別子と一致するユーザ識別子を持つ推薦情報であり、かつ指定されたキーワードが「タイトル」、「作成者」、「説明情報」などのアイテム属性情報の内に存在するアイテムを特定し、それに対応する推薦情報を提供する。
ステップ(S105)では、アイテム提供サーバ20の制御部205が、推薦情報以外の情報に基づいてアイテム情報のリストを作成し、送受信部204を介して端末装置30に送信する。このリストには、アイテム識別子とアイテム属性情報が含まれている。
例えば、図13に示した操作メニューの中で、「2)アイテム一覧を表示」が選択された場合は、アイテム格納部202を参照しながら、アイテムのタイトルや作成者の「あいうえお順」または「ABC順」の一覧リストを作成し、これを送信する。なお、このような一覧リストをあらかじめ作成してアイテム格納部202に格納しておき、ステップ(S105)で、これを読み出して送信してもよい。
また、図13に示した操作メニューの中で、「3)アイテム検索」が選択され、アイテム情報要求のメッセージにキーワード等の検索条件が含まれている場合は、ステップ(S105)において、制御部205が、その検索条件に合致するアイテムのリストを作成して送信する。
ステップ(S106)において、端末装置30は、ステップ(S104)またはステップ(S105)によって送信されたアイテム情報を受信し、その情報を表示装置に表示させる。
図14は、ステップ(S104)において送信された推薦アイテム情報の表示形式の一例を示す図である。図14に示した例では、アイテムは音楽であり、アイテム属性情報として、曲名(タイトル)、アーティスト名(作成者)、ジャンル(カテゴリ)が推薦順位と合わせて表示されている。
ユーザは、表示装置の画面を見て、利用したいアイテムがあれば、入力装置を操作して、その表示箇所をクリックする操作を行なう。例えば、アイテムが音楽の場合、ユーザは再生したい曲をマウス等でクリックして指定する。また、操作を終了するための「終了」ボタンが表示されている。また、図14の画面例では表示していないが、推薦情報以外のアイテム情報を表示させるための「一覧表示」ボタンと、キーワードを指定してそれに該当するアイテムを表示させるための「検索条件指定」ボタンなどを表示させた上で、ユーザからの指示を受け付けて、それに対応した処理を行なってもよい。なお、受信したアイテム情報に含まれるアイテム識別子は、表示装置に表示されていないが、画面に表示した各々のアイテムに対応するアイテム識別子は、端末装置30が記憶管理している。
ステップ(S107)において、端末装置30は、アイテムの利用要求がユーザから入力装置を介して入力されたか否かを判定する。このアイテムの利用要求は、代表的には、アイテムの購入要求とすることができるが、アイテムの再生、アイテムのプレビュー、アイテムの詳細情報の表示、アイテムに対する評価情報(評価値)の登録などの種々の要求を含めることができる。
アイテムの利用要求が入力された場合(Yes)は、ステップ(S109)に進み、そうでない場合(No)はステップ(S108)に進む。ステップ(S108)において、端末装置30は、操作終了の指示が入力装置を介してユーザから入力された否かを判定する。操作終了の指示が入力された場合(Yes)は、処理を終了し、そうでない場合(No)は、ステップ(S107)に戻って処理を繰り返す。
ステップ(S109)において、端末装置30は、アイテムの利用要求を示すメッセージをアイテム提供サーバ20に送信する。このメッセージには、端末装置30を利用しているユーザのユーザ識別子と、ユーザが指定したアイテムのアイテム識別子とが含まれている。さらに、利用要求を送信する日時などを示す利用時期情報をメッセージに含めてもよい。また、利用要求の種類に応じて、必要なパラメータ(評価情報など)がメッセージに含まれている。なお、ユーザが一度に複数のアイテムを利用する場合は、1つの利用要求メッセージに複数のアイテムのアイテム識別子を含めてもよいし、複数の利用要求メッセージを送信してもよい。
ステップ(S110)において、アイテム提供サーバ20の送受信部204が、端末装置30からのアイテムの利用要求メッセージを受信すると、アイテム提供サーバ20の制御部205は、端末装置30を利用するユーザに対して、アイテムを提供する処理を行なう。例えば、提供対象のアイテムがデジタルコンテンツである場合には、アイテム格納部202から、利用要求メッセージに含まれるアイテム識別子に対応するアイテム本体を読み出して、送受信部204を介して端末装置30に送信する。また、アイテムが物品である場合には、配送事業者のシステムに配送依頼の情報を送る配送処理などを行なう。このとき必要に応じて、課金処理などを行なう。また、アイテムの詳細情報が要求された場合には、アイテム格納部202から「説明情報」などを読み出して、端末装置30に送信する。
ステップ(S111)において、アイテム提供サーバ20の送受信部204は、端末装置30から受信したアイテムの利用要求メッセージを情報選択装置10に送信し中継する。
次に、ステップ(S112)において、情報選択装置10の制御部110が、送受信装置109を介して、アイテムの利用要求メッセージを受信し、アイテムの利用情報を利用履歴格納部102に格納する。そして、ステップ(S113)において、情報選択装置10の制御部110は、送受信部109を介して、アイテム利用情報の格納を終了したことを示すメッセージをアイテム提供サーバ20に送信する。
次に、ステップ(S114)において、アイテム提供サーバ20の制御部205は、送受信部204を介してアイテム利用情報の格納終了メッセージを受信し、送受信部204を介して、それを端末装置30に送信する。端末装置30は、そのメッセージを受信するとステップ(S107)からの処理を繰り返す。以上が、ユーザがアイテムを利用する際のシステム全体の動作である。
なお、本実施形態においては、ステップ(S101)で、端末装置30からアイテム提供サーバ20に推薦情報を要求するメッセージを送信し、ステップ(S104)で、アイテム提供サーバ20から端末装置30に推薦情報を送信しているが、これ以外の方法を用いてもよい。例えば、端末装置30から情報選択装置10に直接、またはアイテム提供サーバ20を経由して推薦情報を要求するメッセージを送信し、情報選択装置10から端末装置30に直接、またはアイテム提供サーバ20を経由して推薦情報を送信してもよい。この場合は、アイテム提供サーバ20の推薦情報格納部203を省略することができる。
また、本実施形態においては、ステップ(S111)で、アイテム提供サーバ20がアイテム利用情報(アイテムの利用要求メッセージ)を中継しているが、これ以外の方法を用いてもよい。例えば、適当なタイミングで、端末装置30から情報選択装置10に直接アイテム利用情報を送信してもよい。また、ステップ(S113)において、情報選択装置10がアイテム提供サーバ20または端末装置30に推薦情報を送信するようにしてもよい。例えば、利用要求メッセージに含まれるユーザ(ユーザ識別子)に対応する推薦情報を送信してもよい。
<2.1.情報選択装置の動作>
<2.1.1.推薦情報作成・送信動作>
次に、情報選択装置10の処理動作について説明する。まず、情報選択装置10が推薦情報を作成して送信し、アイテム提供サーバ20がそれを受信する動作について図15のフローチャートを参照して説明する。
情報選択装置10の制御部110が、所定のタイミングで嗜好アイテム集合作成部104に動作開始の指示を与えることにより、本処理が開始される。所定のタイミングとしては、種々の条件を用いることができる。例えば、12時間ごと、24時間ごと等の所定の時間間隔を用いてもよい。このとき、月曜日〜金曜日までは3時間ごと、土曜日は6時間ごと、日曜日は12時間ごと、というように時間間隔が変動してもよい。また、夏は時間間隔を短くして、冬は時間間隔を長くするなど、季節に応じて時間間隔を変えてもよい。
あるいは、所定のタイミングとして、利用要求メッセージ(利用情報)を所定回数受信するごととしてもよい。この場合、所定回数を1回として、利用情報を受信するごとに推薦情報を作成するようにしてもよい。さらには、端末装置30またはアイテム提供サーバ20から、推薦情報を要求されるごとに推薦情報を作成するようにしてもよい。
以下の説明において、推薦情報を作成する対象のユーザの集合を推薦対象ユーザ集合と呼び、推薦対象ユーザ集合に属する1人のユーザを推薦対象ユーザ(対象ユーザ)と呼ぶことにする。所定の時間間隔等のタイミングで推薦情報を作成する場合には、その時点で推薦情報が作成可能な複数のユーザに対して、それぞれの推薦情報を作成する。すなわち、推薦対象ユーザ集合は複数人である。また、利用情報を受信するごとに推薦情報を作成する場合には、推薦対象ユーザ集合に含まれるユーザは、利用情報を要求したユーザ1人であり、このユーザの推薦情報だけ作成するようにすればよい。また、推薦情報を要求されるごとに推薦情報を作成する場合においても、推薦対象ユーザ集合に含まれるユーザは、推薦情報を要求したユーザ1人である。
まずステップ(S21)において、嗜好アイテム集合作成部104が、利用履歴格納部102に格納された利用履歴を用いて、推薦対象ユーザ集合の各ユーザについて、アイテムに対する嗜好度を計算し、嗜好度の大きいアイテム(アイテム識別子)を選択して、推薦対象ユーザ集合の各ユーザに対応する嗜好アイテム集合を作成する。なお、端末装置30がアイテム提供サーバ20からダウンロードしたコンテンツを格納し、格納したコンテンツを繰り返し再生できるサービス(ダウンロード型サービス)など、原則的にユーザが同じアイテムを複数回利用(購入)しない性質のアイテムを扱う場合は、対象ユーザが既に購入済のアイテムは嗜好アイテム集合に含めないようにすることが望ましい。
次にステップ(S22)において、第1割合計算部105が、ステップ(S21)で算出された推薦対象ユーザの嗜好アイテム集合、または利用履歴格納部102に格納された推薦対象ユーザの利用履歴に対応するアイテムの集合である第1の集合を対象にして、推薦アイテム条件格納部103に格納されている推薦アイテム条件に合致する割合である第1割合を計算する。
次に、ステップ(S23)において、第2割合計算部106が、第1の集合のアイテム以外のアイテムを含むアイテム集合である第2の集合を作成し、第2の集合を対象にして、推薦アイテム条件格納部103に格納されている推薦アイテム条件に合致する割合である第2割合を計算する。
次に、ステップ(S24)において、ユーザ特性値計算部107が、推薦対象ユーザの嗜好と推薦アイテム条件との関連の強さを示すユーザ特性値を計算する。
次に、ステップ(S25)において、アイテム選択部108が、ユーザ特性値と嗜好アイテム集合とを用いて、推薦対象ユーザに適したアイテムを選択し、推薦情報を作成する。この推薦情報は、アイテム提供サーバ20の推薦情報格納部203で説明したデータ形式と同様に、ユーザ識別子(推薦対象ユーザのユーザ識別子)と、アイテム識別子と、推薦順位とが対応付けられたものである。
次に、ステップ(S26)において、制御部110が、ステップ(S25)で作成された推薦情報を、送受信部109を介して、アイテム提供サーバ20に送信する。
最後に、ステップ(S27)において、アイテム提供サーバ20の制御部205は、送受信部204を介して推薦情報を受信し、図5に示した形式で推薦情報格納部203に格納させる。アイテム提供サーバ20は、ステップ(S104)において、この格納した推薦情報を用いて、アイテム情報のリスト(表示用の推薦情報)を作成する。なお、既に推薦情報格納部203に推薦情報が格納されている場合は、古い推薦情報を消去した後に格納すればよい。また、格納する日時をバージョン情報として合わせて格納し、複数のバージョンの推薦情報を同時に格納するようにしてもよい。
なお、上述したように、端末装置30から情報選択装置10に直接、またはアイテム提供サーバ20を経由して推薦情報を要求するメッセージを送信し、情報選択装置10から端末装置30に直接、またはアイテム提供サーバ20を経由して推薦情報を送信するようにし、アイテム提供サーバ20の推薦情報格納部203を省略した場合は、ステップ(S26)およびステップ(S27)を省略する。
そして、情報選択装置10から端末装置30に直接、またはアイテム提供サーバ20を経由して推薦情報を送信する際に、情報選択装置10の制御部110が、アイテム属性格納部101とアイテム選択部108とを参照しながら、ステップ(S104)で述べた方法と同様な方法で、アイテム識別子とアイテム属性情報と、推薦順位の情報とが含まれる推薦情報に基づくアイテム情報のリストを作成し、送受信部109を介して端末装置30に直接、またはアイテム提供サーバ20を経由してアイテム情報のリストを送信する。
あるいは、情報選択装置10から端末装置30にアイテム提供サーバ20を経由して推薦情報を送信する場合は、情報選択装置10からアイテム提供サーバ20に推薦情報を送信し、アイテム提供サーバ20において、受信した推薦情報に基づくアイテム情報のリストを作成する処理を行った上で、アイテム提供サーバ20から端末装置30にアイテム情報のリストを送信してもよい。
<2.1.2.嗜好アイテム集合作成処理>
(嗜好アイテム集合作成処理の第1の方法)
情報選択装置10における嗜好アイテム集合の作成処理(S21)について詳細に説明する。まず、嗜好アイテム集合作成処理の第1の方法について図16のフローチャートを参照して説明する。
ステップ(S2111)において、嗜好アイテム集合作成部104は、利用履歴格納部102に格納されている利用履歴を読み出す。ここでは、全ての利用履歴を読み出してもよいし、所定の条件を満たす利用履歴を読み出してもよい。例えば、「利用時期が過去4ヶ月以内」、「利用時期と現在との差が3日以上かつ30日未満」などのように、「利用履歴の利用時期情報が所定の範囲にある」という条件を満たす利用履歴を読み出してもよい。また、ユーザごとに利用時期が新しい順に所定個数以内の利用履歴を読み出してもよい。例えば、所定個数を20個とした場合、利用回数が20回以上のユーザに対しては、利用時期が新しい順に20個ずつの利用履歴を読み出し、利用回数が20回未満のユーザに対しては、そのユーザのすべての利用履歴を読み出すようにする。このようにすれば、利用頻度が少なく、アイテムを最近利用していないようなユーザに対しても嗜好アイテム集合を作成することができる。このステップで読み出した利用履歴に含まれるユーザ(ユーザ識別子)の集合をσ、ユーザの数(ユーザ識別子の異なる種類数)をUs、アイテムの数(アイテムの異なる種類数)をMsとする。
次に、ステップ(S2112)において、嗜好アイテム集合作成部104は、推薦対象ユーザuを選択する。上述したように、他の装置(端末装置30またはアイテム提供サーバ20)から利用情報または推薦情報要求を受信するごとに推薦情報を作成する場合には、利用情報または推薦情報要求に含まれるユーザ(ユーザ識別子)が推薦対象ユーザuとなる。そうでない場合は、ステップ(S2111)で作成したユーザ集合σを推薦対象ユーザ集合として扱う。そして、ユーザ集合σの内から、まだ処理を行なっていないユーザ(未処理のユーザ)を1人選択し、推薦対象ユーザuとする。すなわち、所定条件を満たす利用履歴に含まれるユーザ識別子それぞれに対して嗜好アイテム集合が作成されることになる。
次に、ステップ(S2113)において、嗜好アイテム集合作成部104は、ステップ(S2111)で読み出された利用履歴を用いて、推薦対象ユーザuと、ユーザ集合σに属する他のユーザy(y∈σ、u≠y)との類似度を算出する。
具体的には、ユーザuの利用したことのあるアイテム集合をI[u]、ユーザyの利用したことのあるアイテム集合をI[y]、ユーザuとユーザyが共に利用したことのあるアイテム数を|I[u]∩I[y]|、ユーザuとユーザyの少なくとも一方が利用したことのあるアイテムの種類数を|I[u]∪I[y]|としたとき、[数1]に示すように、ジャカード(Jaccard)係数を用いてユーザuとユーザyの類似度W[u][y]を算出することができる。
また、ステップ(S2111)で読み出された利用履歴から、利用回数に関する情報やユーザがアイテムに対して行なった評価の情報(評価値)が得られる場合は、コサイン尺度やピアソン積率相関係数を用いて類似度を算出してもよい。例えば、ユーザuのアイテムiに対する利用回数または評価値をE[u][i]、ユーザyのアイテムiに対する利用回数または評価値をE[y][i]としたとき、[数2]に示すように、コサイン尺度を用いてユーザuとユーザyの類似度W[u][y]を算出することができる。
また、[数3]に示すように、ピアソン積率相関係数を用いて、類似度W[u][y]を算出してもよい。
ここで、Ic[u][y]は、ユーザuとユーザyが共に利用したアイテムの集合であり、Ea[u]は、Ic[u][y]を対象としたユーザuの利用回数または評価値の平均値、Ea[y]は、Ic[u][y]を対象としたユーザyの利用回数または評価値の平均値である。また、E[u][i]とE[y][i]とのユークリッド距離あるいはその他の距離を用いて、類似度W[u][y]を算出してもよい。
さらに、ユーザuのアイテムiに対する利用回数または評価値であるE[u][i](u=1〜Us、i=1〜Ms)を行列要素とする行列に対して、主成分分析や数量化3類などの多変量解析を適用し、次元数を削減したベクトルを生成し、コサイン尺度やユークリッド距離などを用いて類似度を算出してもよい。また、上記以外にも、2ユーザ間の類似性を表わす指標であれば、どのような方法を用いてもよい。
次に、ステップ(S2114)において、嗜好アイテム集合作成部104は、推薦対象ユーザuとの類似度の高い「類似ユーザ」を選出する。具体的には、推薦対象ユーザuとの類似度がしきい値(所定値)以上の他のユーザをユーザ集合σから選出し、類似ユーザとする。また、推薦対象ユーザuとの類似度が高い順に所定数を超えない範囲で他のユーザを選出し、類似ユーザとしてもよい。
例えば、類似度を0以上の数値として算出した場合、推薦対象ユーザuとの類似度が0より大きい値のユーザの数が所定数に満たない場合は、類似度が算出された全てのユーザを類似ユーザとし、所定数以上のユーザの類似度が算出された場合は、類似度が高い順に所定数のユーザを選出すればよい。
さらに、推薦対象ユーザuとの類似度が所定値以上の他のユーザの中から、類似度が高い順に所定数を超えない範囲でユーザを選出し、それを類似ユーザとしてもよい。また類似ユーザが所定数以上得られるように、類似度のしきい値を推薦対象ユーザuごとに調整して類似ユーザを選出してもよい。
そして、嗜好アイテム集合作成部104は、図11に示すような形式で、推薦対象ユーザuのユーザ識別子と、選出した類似ユーザのユーザ識別子と、その類似度とを関連付けて、嗜好アイテム集合作成部104内部の記憶領域に格納する。
図11においては、各々の推薦対象ユーザに対して、類似度の高い順に類似ユーザを格納している。推薦対象ユーザuによって、類似ユーザの数は異なっていても、同じであってもよい。このステップで算出された推薦対象ユーザuの類似ユーザの集合(類似ユーザのユーザ識別子の集合)をω[u]とする。
次にステップ(S2115)において、嗜好アイテム集合作成部104は、推薦対象ユーザuの各アイテムに対する嗜好度を計算する。具体的には、類似ユーザの利用したアイテム(あるいは評価したアイテム)を対象にして、以下のいずれかの方法で、推薦対象ユーザuのアイテムiに対する嗜好度P[u][i]を算出する。
嗜好度算出の第1の方法は、類似ユーザにより利用された回数をアイテムごとにカウントする方法である。すなわち、ステップ(S2111)で読み出されたデータ、および嗜好アイテム集合作成部104内部の記憶領域を参照しながら、類似ユーザ集合ω[u]に属するユーザが利用したアイテムの集合を特定し、そのアイテム集合に属するアイテムiごとに利用回数をカウントした値を嗜好度P[u][i](i=1〜Ls[u])とする。ここでLs[u]は、類似ユーザが利用したアイテムの集合に含まれるアイテムの個数である。なお、アイテムの利用回数の代わりに、アイテムを利用したユーザ数(異なるユーザ識別子の数)をカウントしてもよい。
嗜好度算出の第2の方法は、ユーザ間の類似度を用いる方法である。例えば、推薦対象ユーザuの類似ユーザz(z∈ω[u])がアイテムiを利用した回数をF[z][i]、推薦対象ユーザuと類似ユーザzとの類似度をW[u][z]として、[数4]に従って、嗜好度P[u][i]を算出する。この場合、類似度の高いユーザが多く使っているアイテムほど、人気指標が大きな値となる。
嗜好度算出の第3の方法は、ユーザ間の類似度と利用時期情報とを用いて、次の[数5]に従って算出する方法である。
[数5]において、Ta[z][i][k]は、類似ユーザzがアイテムiをk回目に利用したときの利用時期情報であり、Tcは、アイテムの利用時期よりも新しい所定の時期(例えば、この計算を行なう時点の日時)であり、関数f(x)は、入力値が小さいほど出力値が大きくなるような単調減少関数である。[数5]によれば、類似度の高いユーザが、最近多く使っているアイテムほど、嗜好度P[u][i]が大きな値となる。
嗜好度算出の第4の方法は、利用履歴格納部102に、ユーザのアイテムに対する評価値が格納されている場合に用いられる方法であり、アイテム識別子ごとに類似ユーザの評価値を加算した値Fe[i]を嗜好度P[u][i](i=1〜Ls)とする。また、ユーザの評価がある程度高い評価値のみを加算してもよい。例えば、大好き=5、やや好き=4、どちらでもない=3、やや嫌い=2、大嫌い=1という5段階の評価値を用いた場合、評価値が4以上の場合に加算するような処理を行なってもよい。
また、上記の各方法においてさらに、アイテム属性格納部101を参照しながら、アイテム時期情報(アイテムが作成された時期などの情報)が新しいアイテムほど、嗜好度が大きくなるような処理を行なってもよい。
次に、ステップ(S2116)において、嗜好アイテム集合作成部104は、嗜好度P[u][i]の高いアイテムを選択し、推薦対象ユーザuに対応させた嗜好アイテム集合を作成し、推薦対象ユーザuのユーザ識別子と嗜好アイテム集合とを対応させて嗜好アイテム集合作成部104内部の記憶領域に記憶する。
具体的には、嗜好度が高い順(大きい順)に第1の所定数あるいは第1の所定数を超えない数のアイテムを選択する。なお、嗜好度が算出されたアイテムの個数が第1の所定数に満たない場合は、嗜好度が算出されたアイテム全てを選択する。また、この第1の所定数をユーザごとに変更してもよい。あるいは、ステップ(S2115)で算出された嗜好度が所定のしきい値(第1の嗜好しきい値)よりも高い(大きい)アイテムを選択する。この際に、第1の所定数以上のアイテムが選択されるように、第1の嗜好しきい値をユーザごとに調整してアイテムを選択してもよい。
次に、ステップ(S2117)において、嗜好アイテム集合作成部104は、別の推薦対象ユーザを選択可能か判定する。利用情報または推薦情報要求を受信するごとに推薦情報を作成する場合には、推薦対象ユーザuは1人なので、「No」という判定になる。それ以外の場合は、ユーザ集合σの中で、まだ処理を行なっていない未処理のユーザが存在する場合に「Yes」と判定し、未処理のユーザが存在しない場合は、「No」と判定する。「Yes」と判定した場合は、ステップ(S2112)に戻って処理を繰り返し、「No」と判定した場合は、嗜好アイテム集合作成処理を終了する。以上が本実施形態における、嗜好アイテム集合作成の第1の方法の説明である。
(嗜好アイテム集合作成処理の第2の方法)
次に図17のフローチャートを参照して、上記のステップ(S21)における嗜好アイテム集合作成処理の第2の方法について説明する。この第2の方法を用いる場合は、アイテム属性格納部101にアイテム属性情報が格納されている必要がある。
ステップ(S2121)は、利用履歴を読み出す処理であり、第1の方法におけるステップ(S2111)と同じである。ただし、推薦対象ユーザが1人である場合には、そのユーザの利用履歴のみを読み出せばよく、他のユーザの利用履歴を読み出す必要はない。
ステップ(S2122)は、推薦対象ユーザを選択する処理であり、第1の方法におけるステップ(S2112)と同じである。
次に、ステップ(S2123)において、嗜好アイテム集合作成部104は、推薦対象ユーザの利用属性データを作成する。具体的にはまず、ステップ(S2121)で読み出した推薦対象ユーザuの利用履歴に含まれるアイテム識別子をアイテム属性格納部101に対応させ、対応するアイテム属性情報を読み出す。
そして、そのアイテム属性情報に含まれるキーワードまたは識別子の集合を利用属性データS[u]とする。アイテム属性情報のうちの「作者」については、作者名をキーワードとするか、作者を識別する作者識別子をキーワードとして扱えばよい。また「カテゴリ」については、カテゴリ名をキーワードとするか、カテゴリを識別するカテゴリ識別子をキーワードとして扱えばよい。また、アイテムの「タイトル」と「説明情報」とに関しては、形態素解析処理を行なって、所定の品詞を抽出し、キーワードとすればよい。推薦対象ユーザuが過去に利用したアイテムは、推薦対象ユーザuが好きなアイテムである可能性が高いため、推薦対象ユーザuが過去に利用したアイテムに対応するキーワードである利用属性データS[u]は、推薦対象ユーザuの嗜好を表わすデータといえる。
次に、ステップ(S2124)において、嗜好アイテム集合作成部104は、ステップ(S2123)で作成した利用属性データと、アイテム属性格納部101に格納されている各アイテムとを照合し、推薦対象ユーザuの各アイテムに対する嗜好度P[u][i]を計算する。
ここでは、ステップ(S2123)と同様な方法で、アイテム属性格納部101に格納されている各アイテムiに対して、アイテムキーワード集合K[i]を作成し、そのキーワード集合と、ステップ(S2123)で作成した利用属性データS[u]との嗜好度を計算する。嗜好度の計算方法としては、種々の方法を用いることができる。
例えば、利用属性データS[u]とアイテムキーワード集合K[i]に共通するキーワードの数を|S[u]∩K[i]|、利用属性データS[u]とアイテムキーワード集合K[i]の少なくとも一方に存在するキーワードの数を|S[u]∪K[i]|としたとき、[数6]に示すように、ジャカード(Jaccard)係数を用いて嗜好度P[u][i]を算出することができる。また、S[u]とK[i]とを、同じ次元数のベクトルデータとなるように作成した上で、2つのベクトルのコサイン尺度やピアソン積率相関係数を用いて嗜好度P[u][i]を算出してもよい。
次のステップ(S2125)は、嗜好アイテム集合を作成する処理であり、第1の方法におけるステップ(S2116)と同じである。また、次のステップ(S2126)は、別の推薦対象ユーザを選択可能か判定する処理であり、第1の方法におけるステップ(S2117)と同じである。
以上が本実施形態における、嗜好アイテム集合作成の第2の方法の説明である。この第2の方法は、利用履歴格納部102に、推薦対象ユーザu以外の他のユーザの利用履歴が格納されていない場合でも用いることができる。また、利用履歴格納部102に格納されていないアイテム、すなわち、どのユーザからも利用されていないアイテム(新作アイテム等)を嗜好アイテム集合に含めることも可能である。
(嗜好アイテム集合作成処理の第3の方法)
嗜好アイテム集合作成の第1の方法および第2の方法では、ステップ(S2111)で読み出した利用履歴の中に、推薦対象ユーザの利用履歴が存在する必要がある。推薦情報要求を受信するごとに推薦情報を作成する場合などでは、その条件が満たされない可能性があるが、図18のフローチャートに示す第3の方法を用いれば、推薦対象ユーザの利用履歴が存在しない場合でも、嗜好アイテム集合を作成できる。
推薦アイテム集合作成の第3の方法を用いる場合は、ユーザ属性格納部111が必要である。一方、嗜好アイテム集合作成の第1の方法および第2の方法を用いる場合は、ユーザ属性格納部111を省略することができる。
ステップ(S2131)は、利用履歴を読み出す処理であり、第1の方法におけるステップ(S2111)と同じである。なお、ここで読み出す利用履歴には、推薦対象ユーザの利用履歴が含まれていなくてもよい。また、ステップ(S2132)は、推薦対象ユーザを選択する処理であり、第1の方法におけるステップ(S2112)と同じである。
次に、ステップ(S2133)において、嗜好アイテム集合作成部104は、ユーザ属性格納部111に格納されているユーザ属性情報を用いて、ユーザ間の類似度を算出する。
嗜好アイテム集合作成部104は、推薦対象ユーザuと、ステップ(S2131)で作成されたユーザ集合σに属する他のユーザy(y∈σ、u≠y)との類似度を算出する。
具体的には、2人のユーザのユーザ属性情報において、一致する項目数を計数(カウント)すればよい。また、「生年月日」や「入会時期」などの項目については、2人の項目の時間差が所定以内であれば、一致するとして処理を行なってもよい。また、「好きなカテゴリ」や「好きなキーワード」などの項目については、完全に一致する場合に一致と見なす他、あらかじめカテゴリ同士やキーワード同士の一致度を示すルールを格納しておき、それに基づいて類似度を算出してもよい。また、「血液型」については、同じ血液型だけでなく、いわゆる相性の良い血液型の組み合わせである場合に、2人の項目が一致するとしてもよい。また、「氏名」の項目は類似度の算出に用いなくてもよいが、氏名の画数や表音などに基づく姓名判断を用いて、2人の類似度を算出してもよい。また、各々の項目について、「一致する」/「一致しない」の2値ではなく、一致する度合いを示す実数値を用いて類似度を算出してもよい。なお、空欄の項目に関しては、類似度の算出に用いなくてもよいし、一致すると見なして処理を行なってもよいし、完全一致ではなく、やや一致するとして処理を行なってもよい。
続くステップ(S2134〜S2137)は、第1の方法におけるステップ(S2114〜S2117)と同じである。
嗜好アイテム集合作成の第3の方法では、推薦対象ユーザと他のユーザとの類似度を利用履歴ではなく、ユーザ属性情報を用いて算出するため、推薦対象ユーザの利用履歴が全く存在しない場合であっても嗜好アイテム集合を作成することができる。
<2.1.3.第1割合計算処理>
ステップ(S22)における第1割合計算処理を詳細に説明する。第1割合計算部105は、以下のいずれかの方法を用いて、推薦対象ユーザ集合の各ユーザに対して、そのユーザが好むアイテム(ユーザ嗜好を示すアイテム)の集合である第1の集合を作成し、第1の集合における推薦アイテム条件に合致するアイテムの割合である第1割合R1を算出して、第1割合計算部105内部の記憶領域に格納する。以下では、説明を簡単にするために、推薦対象ユーザ集合の中の1人のユーザ(推薦対象ユーザu)についての処理を説明する。推薦対象ユーザが複数である場合は、それぞれのユーザに対して同様の処理を行なう。
(第1割合計算処理の第1の方法)
まず、ステップ(S22)における第1割合計算処理の第1の方法について説明する。第1の方法は、ステップ(S21)の嗜好アイテム集合作成処理で作成された推薦対象ユーザuの嗜好アイテム集合から第1の集合を作成し、この第1の集合を対象にして、推薦アイテム条件格納部103に格納されている推薦アイテム条件に合致する割合を計算し、第1割合とする方法である。
ここで、嗜好アイテム集合に属する全アイテムを第1の集合としてもよいし、嗜好アイテム集合の中の一部のアイテムを第1の集合としてもよい。後者の場合は、嗜好アイテム集合の全アイテム数よりも少ない所定数だけ、ランダムにアイテムを選択するか、嗜好度の高い順に選択して、第1の集合とする。また、この際の所定数をステップ(S25)の推薦情報作成処理において選択されるアイテム数と同じ個数にしてもよい。
次に、第1割合計算部105は、第1の集合のアイテム数をカウントし、これをNAとする。そして、第1割合計算部105は、第1の集合のアイテム識別子を図9に示した推薦アイテム条件格納部103の推薦アイテム条件と対応させ、推薦アイテム条件に合致するアイテム識別子をカウントし、これをNBとする。
なお、推薦アイテム条件が図9(c)や図9(d)の形式のように、対象タイプを用いている場合は、アイテム属性格納部101を参照しながら、推薦アイテム条件に合致するアイテム識別子をカウントすればよい。また、対象タイプが「7」の利用回数順位または「8」の利用回数である場合は、推薦アイテム条件格納部103内部の記憶領域にその条件に合致するアイテム識別子(アイテム識別子の集合)が格納されているので、その集合と第1の集合とを比較し、一致するアイテム識別子をカウントすればよい。
そして、第1割合計算部105は、(NB÷NA)の値を算出し、第1割合R1とする。また、上述のように、図9(c)の形式で推薦アイテム条件が格納されており、適合度が算出可能な場合は、適合度を用いて第1割合を算出してもよい。具体的には、第1の集合に属する各アイテムについて適合度を算出し、それぞれの適合度の代表値(平均値、中央値、最頻値など)を第1割合とする。この際に適合度の値が0から1の範囲に収まるように正規化して適合度を算出しておけば、その代表値も0から1の範囲に収まるので都合がよい。
(第1割合計算処理の第2の方法)
次に、ステップ(S22)における第1割合計算処理の第2の方法について説明する。第2の方法は、利用履歴格納部102に格納された推薦対象ユーザuの利用履歴を用いて第1の集合を作成し、この第1の集合を対象にして、推薦アイテム条件格納部103に格納されている推薦アイテム条件に合致する割合を計算し、第1割合とする方法である。
推薦対象ユーザuが過去に利用したアイテムは、推薦対象ユーザuが好むアイテムである確率が高いので、利用履歴を用いて作成される第1の集合は、第1の方法と同様に、推薦対象ユーザuの嗜好を表しているといえる。
まず、第1割合計算部105は、利用履歴格納部102から推薦対象ユーザuの利用履歴を読み出し、これに含まれるアイテム識別子の集合を第1の集合とする。この際に、推薦対象ユーザuの全ての利用履歴を読み出してもよいし、利用時期が所定の範囲にある利用履歴に限定して読み出してもよい。また、ランダムに所定数の利用履歴を読み出してもよいし、利用時期の新しい順に所定数の利用履歴を読み出してもよい。なお、この際の所定数をステップ(S25)の推薦情報作成処理において選択されるアイテム数と同じ個数にしてもよい。
そして、第1割合計算部105は、第1の集合のアイテム数をカウントし、これをNCとする。次に、第1割合計算部105は、第1の集合のアイテム識別子を図9に示した推薦アイテム条件格納部103の推薦アイテム条件と対応させ、推薦アイテム条件に合致するアイテム識別子をカウントし、これをNDとする。
なお、推薦アイテム条件が図9(c)や図9(d)の形式のように、対象タイプを用いている場合は、アイテム属性格納部101を参照しながら、推薦アイテム条件に合致するアイテム識別子をカウントすればよい。
そして、第1割合計算部105は、(ND÷NC)の値を算出し、第1割合R1とする。なお、第1の方法と同様に、適合度を用いて第1割合を算出してもよい。
<2.1.4.第2割合計算処理>
ステップ(S23)における第2割合計算処理を詳細に説明する。第2割合計算部106は、以下のいずれかの方法を用いて、推薦対象ユーザ集合の各ユーザに対して、第1の集合のアイテム以外のアイテムを含むアイテム集合である第2の集合をそれぞれ作成し、第2の集合の中で推薦アイテム条件に合致する割合である第2割合R2をそれぞれ算出する。この第2の集合は、推薦対象ユーザの嗜好をあまり強く表さないアイテムの集合といえる。そして、推薦対象ユーザのユーザ識別子と第2割合とを対応させて第2割合計算部106内部の記憶領域に格納する。以下では、説明を簡単にするために、推薦対象ユーザ集合の中の1人のユーザ(推薦対象ユーザu)についての処理を説明する。推薦対象ユーザが複数である場合は、それぞれのユーザに対して同様の処理を行なう。
(第2の集合作成の第1の方法)
まず、ステップ(S23)における第2の集合作成処理の第1の方法について説明する。第1の方法は、推薦対象ユーザu以外の他のユーザを含む比較ユーザ集合を作成し、比較ユーザ集合の各ユーザと、各アイテムとの嗜好度を計算し、比較ユーザ集合の各ユーザの嗜好度の高いアイテムをユーザごとに選択した候補集合を作成し、候補集合から第2の集合を作成する方法である。
嗜好度の計算および嗜好度の高いアイテムの選択は、嗜好アイテム集合作成部104の動作と同様な方法で行なうことができる。また、比較ユーザ集合のユーザは1人であっても、複数人であってもよい。また、比較ユーザ集合のユーザをランダムに選んでもよいし、推薦対象ユーザuとの類似度が所定値以下のユーザの中から選んでもよい。また、比較ユーザ集合のユーザが複数人である場合、その中の1人が推薦対象ユーザuであってもよい。例えば、推薦対象ユーザ集合に複数のユーザが含まれる場合は、それ自体を比較ユーザ集合としてもよい。
ただし、第2の集合が、第1の集合のアイテム以外のアイテムを含むように比較ユーザ集合に入れるユーザを選択する。すなわち、第2の集合が、第1の集合の部分集合にならないようにする。なお、あるユーザの候補集合が、第1の集合の部分集合であっても、別のユーザの候補集合が、第1の集合の部分集合でなければよい。すなわち、第2の集合の一部のアイテムが第1の集合に含まれていてもよい。
候補集合から第2の集合を作成する方法としては、各候補集合の和集合を第2の集合とする方法がある。また、各候補集合の和集合の中から嗜好度の高い順に所定個数のアイテムを選択し、第2の集合とする方法がある。また、各候補集合の和集合から嗜好度が所定値以上のアイテムを選択して、第2の集合としてもよい。
(第2の集合作成の第2の方法)
次に、ステップ(S23)における第2の集合作成処理の第2の方法について説明する。第2の方法は、推薦対象ユーザuと各アイテムとの嗜好度を計算し、嗜好アイテム集合に含まれるアイテムよりも嗜好度の低いアイテムを選択し、それを第2の集合とする方法である。
嗜好度の計算は、嗜好アイテム集合作成部104の動作と同様な方法で行なうことができる。そして、ステップ(S2116)の嗜好アイテム集合作成処理において、嗜好度に関するしきい値を用いて嗜好アイテム集合を作成した場合には、嗜好度がそのしきい値(第1の嗜好しきい値)未満のアイテムを選択する。
例えば、嗜好度が第1の嗜好しきい値未満のアイテムを嗜好度が大きい順または小さい順に所定個数選択すればよい。あるいは、嗜好度が第1の嗜好しきい値未満のアイテムの中からランダムに所定個数のアイテムを選択してもよい。また、第1の嗜好しきい値以下の第2の嗜好しきい値と、第2の嗜好しきい値より小さい第3の嗜好しきい値とを用意し、嗜好度が第3のしきい値以上でかつ第2の嗜好しきい値以上であるアイテムを選択してもよい。
また、ステップ(S2116)の嗜好アイテム集合作成処理において、嗜好度が高い順(大きい順)に所定数を超えない範囲でアイテムを選択した場合は、選択されたアイテムの個数(嗜好アイテム集合の要素数)よりも大きな値である第1の順位値を用意し、嗜好度が高いほど順位値が小さくなるようにアイテムをソートし、順位値が第1の順位値以上であるアイテムを選択する。
例えば、嗜好アイテム集合の要素数が20個である場合には、嗜好度が高い順にソートした場合の順位値が21位以降のアイテムを選択すればよい。この場合、21位以降のアイテムから嗜好度が大きい順または小さい順に所定個数選択してもよいし、21位以降のアイテムからランダムに所定個数を選択してもよい。さらに、第1の順位値よりも大きな値である第2の順位値を用意し、順位値がそれらの間にあるアイテムを選択してもよい。例えば、上述した例において、第2の順位値を40位として、順位値が21位から40位までのアイテムを選択してもよい。
(第2の集合作成の第3の方法)
第2の集合作成の第3の方法は、推薦対象ユーザu以外の他のユーザを含む比較ユーザ集合を作成し、比較ユーザ集合のユーザの利用履歴を用いる方法である。すなわち、利用履歴格納部102に格納されている比較ユーザ集合のユーザの利用履歴を読み出し、それに含まれるアイテム識別子の集合を第2の集合とする。ここでは、比較ユーザ集合のユーザに対応する全ての利用履歴を読み出してもよいし、比較ユーザ集合のユーザに対応する所定の条件を満たす利用履歴を読み出してもよい。
例えば、「利用時期が過去4ヶ月以内」、「利用時期と現在との差が3日以上かつ30日未満」などのように、「利用履歴の利用時期情報が所定の範囲にある」という条件を満たす利用履歴を読み出してもよい。比較ユーザ集合の各ユーザに対応する利用履歴の中から、ユーザごとに利用時期が新しい順に所定個数の利用履歴を選択してもよい。比較ユーザ集合のユーザは1人であっても、複数人であってもよい。また、比較ユーザ集合のユーザをランダムに選んでもよいし、推薦対象ユーザuとの類似度が所定値以下のユーザの中から選んでもよい。また、比較ユーザ集合のユーザが複数人である場合、その中の1人が推薦対象ユーザuであってもよい。例えば、推薦対象ユーザ集合に複数のユーザが含まれる場合は、それ自体を比較ユーザ集合としてもよい。また、利用履歴格納部102に格納されている全てのユーザ識別子を比較ユーザ集合に入れてもよい。
ただし、第2の集合が、第1の集合のアイテム以外のアイテムを含むように比較ユーザ集合に入れるユーザを選択する。すなわち、第2の集合が、第1の集合の部分集合にならないようにする。さらに、読み出した利用履歴に含まれるアイテム識別子ごとに、利用回数を集計し、利用回数の順位(利用回数の多い順にソートした場合の順位)が所定の範囲にあるアイテムのアイテム識別子を第2の集合としてもよい。例えば、利用回数の順位が1位から10位までの10個のアイテムを第2の集合に入れてもよいし、利用回数の順位が11位から30位までの20個のアイテムを第2の集合に入れるようにしてもよい。また、利用回数が所定の範囲にあるアイテムのアイテム識別子を第2の集合としてもよい。
(第2の集合作成の第4の方法)
第2の集合作成の第4の方法は、アイテム属性格納部101に格納されているアイテム識別子、または利用履歴格納部102に格納されているアイテム識別子から、ランダムに所定数のアイテム識別子を選択し、それを第2の集合とする方法である。この場合も、第2の集合が、第1の集合の部分集合にならないようにする。
(第2割合計算処理)
上述したいずれかの方法で第2の集合を作成した後、第2割合計算部106は、第2の集合の要素数NEをカウントする。第2の集合の要素数は、第1の集合の要素数と同じであっても、異なっていてもよい。次いで、第2割合計算部106は、第2の集合を対象として、嗜好アイテム集合のアイテム識別子を図9に示した推薦アイテム条件格納部103の推薦アイテム条件と対応させ、推薦アイテム条件に合致するアイテム識別子の個数NFをカウントする。
そして、(NF÷NE)の値を算出し、第2割合R2とする。推薦対象ユーザが複数存在する場合は、それぞれについて第2割合R2を算出する。なお、第2の集合作成の第1の方法および第3の方法において、比較ユーザ集合のユーザが複数人である場合、ユーザごとに中間処理的な第2割合を算出し、それらの代表値(平均値、中央値、最頻値など)を算出して、最終的な第2割合としてもよい。
また、上述のように、図9(c)の形式で推薦アイテム条件が格納されており、適合度が算出可能な場合は、適合度を用いて第2割合を算出してもよい。具体的には、第2の集合に属する各アイテムについて適合度を算出し、それぞれの適合度の代表値(平均値、中央値、最頻値など)を第2割合とする。この際に適合度の値が0から1の範囲に収まるように正規化して適合度を算出しておけば、その代表値も0から1の範囲に収まるので都合がよい。
<2.1.5.ユーザ特性値算出処理>
ステップ(S24)におけるユーザ特性値算出処理について詳細に説明する。ユーザ特性値計算部107は、以下のいずれかの方法を用いて、推薦対象ユーザ集合の各ユーザに対して、推薦対象ユーザの嗜好と推薦アイテム条件との関連の強さを示すユーザ特性値をそれぞれ算出する。そして、推薦対象ユーザのユーザ識別子とユーザ特性値とを対応させてユーザ特性値計算部107内部の記憶領域に格納する。以下の説明では、推薦対象ユーザ集合の中の1人のユーザ(推薦対象ユーザu)を処理対象にした場合の動作を説明する。
(ユーザ特性値算出の第1の方法)
まず、ユーザ特性値算出の第1の方法について説明する。第1の方法は、ステップ(S22)で算出された第1割合R1をそのままユーザ特性値とする方法である。この第1の方法を用いる場合は、第2割合計算部106およびステップ(S23)を省略することができる。第1の方法は、最も処理量が少なく簡便な方法である。
(ユーザ特性値算出の第2の方法)
ユーザ特性値算出の第2の方法は、第1割合R1を第2割合R2で割った値、すなわち(R1÷R2)をユーザ特性値とする方法である。このユーザ特性値は、比較ユーザを基準として、推薦対象ユーザの嗜好と推薦アイテム条件との関連度の強さを相対的に示す値といえる。
ユーザ特性値算出の第1の方法では、多数のアイテムに該当する推薦アイテム条件が推薦アイテム条件格納部103に格納されている場合は、ユーザ特性値が大きな値となり、少数のアイテムにしか該当しない推薦アイテム条件が推薦アイテム条件格納部103に格納されている場合は、ユーザ特性値が小さな値となる。すなわち、推薦アイテム条件の設定のし方によって、ユーザ特性値が大きく変動し、影響を受ける。
一方、ユーザ特性値算出の第2の方法では、R1とR2の両方を用いているため、推薦アイテム条件が変化した場合でも、ユーザ特性値はその影響を受けにくい。特に、多人数のデータを用いて第2割合R2を算出した場合には、推薦アイテム条件の変化の影響をより低減することができる。このため、推薦対象ユーザuの嗜好と推薦アイテム条件との関連の強さを精度良く数値化できる。
(ユーザ特性値算出の第3の方法)
ユーザ特性値算出の第3の方法は、第1割合R1から第2割合R2を引いた値、すなわち(R1−R2)をユーザ特性値とする方法である。このユーザ特性値は、比較ユーザを基準として、推薦対象ユーザの嗜好と推薦アイテム条件との関連度の強さを相対的に示す値といえる。第2の方法と同様に、推薦アイテム条件の設定のし方の影響を受けにくいため、推薦対象ユーザuの嗜好と推薦アイテム条件との関連の強さを精度良く数値化できる。
上述した各方法で算出されたユーザ特性値は、推薦対象ユーザuの嗜好と推薦アイテム条件との関連の強さが強いほど大きな値となる。また、第1割合R1が増加すれば、ユーザ特性値も単調に増加する特性を持っている。
<2.1.6.推薦情報作成処理>
(推薦情報作成の第1の方法)
ステップ(S25)における推薦情報作成処理について詳細に説明する。まず、図19のフローチャートを参照して、推薦情報作成の第1の方法について説明する。
ステップ(S2511)において、アイテム選択部108は、推薦対象ユーザ集合から、処理対象である1人のユーザ(推薦対象ユーザu)を選択する。具体的には、ステップ(S2116)の嗜好アイテム集合作成処理において、嗜好アイテム集合作成部104内部の記憶領域に、推薦対象ユーザのユーザ識別子と嗜好アイテム集合とが記憶されているので、このユーザ識別子の中から未処理のユーザ識別子を1つ選択する。
次に、ステップ(S2512)において、アイテム選択部108は、ステップ(S2511)で選択されたユーザのユーザ特性値が所定のユーザ特性値条件を満たすか否かを判定する。「Yes」の場合はステップ(S2513)に進み、「No」の場合はステップ(S2514)に進む。
具体的には、ユーザ特性値計算部107内部の記憶領域から、推薦対象ユーザuに対応するユーザ特性値αを読み出し、ユーザ特性値条件を満たすか否かを判定する。このユーザ特性値条件としては、「α>θ1」という条件を用いることができる。この条件を、判定条件Aとする。ここで、θ1は所定のしきい値である。すなわち、判定条件Aは、「ユーザ特性値が、所定のしきい値θ1より大きい」という条件である。判定条件Aを用いると、「ユーザ嗜好と推薦アイテム条件との関連の強さが、ある程度以上強いユーザ」を判定することができる。
また、判定条件Aに替えて、「θ2>α>θ1」という条件を用いるようにしてもよい。この条件を、判定条件Bとする。ここで、θ2は、θ1より大きい(θ2>θ1)所定のしきい値である。判定条件Bを用いると、「ユーザ嗜好と推薦アイテム条件との関連の強さが、ある程度以上強いが、極端には強くないユーザ」を判定することができる。
なお、ユーザ特性値算出の第1の方法の説明で述べたように、第1割合R1を直接使って判定することも可能である。この方法は、簡便な方法であるが、推薦アイテム条件格納部103に格納された推薦アイテム条件が変化する場合には、しきい値(θ1、θ2)を固定値として設定しておくのが難しいことがあり、推薦アイテム条件の変化に合わせて、しきい値(θ1、θ2)を調整する必要が生じる場合がある。一方、ユーザ特性値の第2の方法および第3の方法を用いた場合は、しきい値(θ1、θ2)を調整する必要性を減らすことができる。
ステップ(S2513)において、アイテム選択部108は、推薦情報に入れるアイテムにおける推薦アイテム条件に合致するアイテムの割合を設定する。この割合を第3割合と称する。
ステップ(S2513)では、第3割合R3は、第1割合計算部105で算出された第1割合R1よりも大きな値であり、かつ1より小さな値になるように設定する。ここで、R3をR1より大きな値にする理由は、推薦対象ユーザの推薦情報の中に、推薦アイテム条件(販売者の販売方針)に合致するアイテムをより多く入れるためである。
ステップ(S22)の第1割合計算で第1の方法を用いた場合のR1は、推薦アイテム条件を考慮せずにユーザの嗜好に従ってアイテムを選択した場合の推薦情報(通常の推薦情報)における推薦アイテム条件に合致するアイテムの割合である。従って、通常の推薦情報に比べて、推薦アイテム条件に合致する割合が高くなる。
また、ステップ(S22)の第1割合計算で第2の方法を用いた場合のR1は、推薦対象ユーザuが過去に利用したアイテム集合における推薦アイテム条件に合致するアイテムの割合である。従って、ユーザが推薦情報に含まれるアイテムを均等な確率で利用すると仮定すれば、ユーザが今後利用するアイテムは、過去に利用したアイテムに比べて、推薦アイテム条件に合致する割合が高くなると期待できる。
また、R3を1より小さな値にする理由は、推薦情報のアイテムの全てが、販売者の販売方針に合致していると、ユーザによっては、それらの共通性を敏感に感じ取り、販売者の押し付けがましさや、押し売り方針として解釈する場合があるので、このようなリスクを小さくするためである。
(第3割合設定の第1の方法)
第3割合設定の第1の方法は、ステップ(S2512)で「Yes」と判定された全てのユーザに対して、同一の値を設定する方法である。例えば、「R3=0.8」とすればよい。この場合、判定条件Bを用いた上で、R1が0.8より大きなユーザがステップS610で「Yes」とならないように、判定条件Bのθ2の値を設定してもよい。
(第3割合設定の第2の方法)
第3割合設定の第2の方法は、R1に基づきR3を設定する方法である。図20を用いて、この方法を説明する。図20(a)は、ステップ(S2512)において、判定条件Aを用いた場合に用いるR1からR3への変換関数の特性を示す図である。
本図において横軸はR1の値を示し、縦軸はR3の値を示しており、それぞれ0から1までの値をとる。斜め45度の破線は、R3をR1と同じにした場合、すなわち「R3=R1」となる場合を示している。R1uは、推薦対象ユーザuのR1の値である。またR1aは、推薦対象ユーザuのユーザ特性値のしきい値θ1をR1に換算した値である。
本特性において、R1が0からR1aの範囲では、変換関数は斜め45度の破線と一致する、すなわち「R3=R1」となる。「R1a<R1<1」の範囲では、「R3>R1」となる。
ステップ(S2512)の処理を行なうユーザのR1であるR1uは、R1a以上であるため、R1より大きく、かつ1より小さい値のR3が得られる。ただし、元々のR1が1であるユーザは、R3も1となる。
図20(b)は、ステップ(S2512)において、判定条件Bを用いた場合に用いるR1からR3への変換関数の特性を示す図である。R1bは、推薦対象ユーザuのユーザ特性値のしきい値θ2をR1に換算した値である。
本特性では、「0≦R1≦R1a」の範囲は、斜め45度の破線と一致し、「R3=R1」となる。「R1a<R1<R1b」の範囲は、「R3>R1」となる。また、「R1b≦R1≦1」の範囲は、「R3=R1」となる。
「ステップ(S2513)の処理を行なうユーザのR1であるR1uについては、「R1a<R1u<R1b」であるため、R1より大きく、かつ1より小さい値のR3が得られる。また、図20(a)および図20(b)に示した変換関数では、R1の増加に対してR3が減少する区間は存在しないので、R1の値が大きいほど、大きな値となるR3が得られることになる。
ステップ(S2512)において、「Yes」と判定されたユーザは、「ユーザ嗜好と推薦アイテム条件との関連の強さが、ある程度以上強いユーザ」であるので、ステップ(S2512)で「No」と判定されたユーザに比べると、推薦アイテム条件に合致するアイテムが推薦情報に多く入っていても、「販売者の押し付け」と受け取る可能性が低く、素直に受容する可能性が高いと考えられる。従って、このような処理を行なうことにより、ユーザが受容しやすい形で、販売方針に沿ったアイテムを多く推薦できる。また、判定条件Bを用いることにより、ユーザに「販売者の押し付け」と感じさせるリスクをさらに減らすことができる。
ステップ(S2512)で「No」と判定されたユーザについては、アイテム選択部108は、ステップ(S2514)において、R3をR1と同じ値に設定する。すなわち、推薦アイテム条件(販売方針)に合致するアイテムの数を増やさない。これは、ステップ(S2512)で「No」と判定されたユーザは、「ユーザ嗜好と推薦アイテム条件との関連の強さが、あまり強くない」ユーザなので、推薦アイテム条件(販売方針)に合致するアイテムを増やさない方が、推薦情報がユーザに受容される可能性が高いと考えられるからである。
次に、ステップ(S2515)において、アイテム選択部108は、R3に従って、推薦情報に入れるアイテムを選択する。推薦情報のアイテム数NRが決まっている場合は、嗜好アイテム集合作成部104内部の記憶領域に格納されている、推薦対象ユーザuの嗜好アイテム集合を読み出し、推薦アイテム条件格納部103を参照しながら、嗜好アイテム集合の中の推薦アイテム条件に合致するアイテムを嗜好度の高い順に(NR×R3)個選択する。
次に、嗜好アイテム集合の中の推薦アイテム条件に合致しないアイテムを嗜好度の高い順に(NR×(1−R3))個選択する。そして、選択された2つのグループのアイテムを合わせて嗜好度の大きい順に推薦順位を付け、推薦情報を作成する。ここで、NR個のアイテムが選択できるように、ステップ(S2116)で用いる第1の所定数および第1の嗜好しきい値を設定し、十分な数の嗜好アイテム集合を作成しておく。なお、嗜好アイテム集合の中の推薦アイテム条件に合致しないアイテムが、少なくとも1つは推薦情報に入るように調整してもよい。
推薦情報のアイテム数NRが決まっていない場合は、以下の処理を行なう。まず、嗜好アイテム集合の中の推薦アイテム条件に合致するアイテムの個数NXと、嗜好アイテム集合の中の推薦アイテム条件に合致しないアイテムの個数NYとをカウントする。
次に、(NX/R3)と(NY/(1−R3))の値を比較する。(NX/R3)の方が小さい場合は、嗜好アイテム集合の中の推薦アイテム条件に合致するアイテムを全て(NX個)選択し、嗜好アイテム集合の中の推薦アイテム条件に合致しないアイテムを、嗜好度の大きい順に、((NX/R3)×(1−R3))個選択して、これらを推薦情報に入れる。
逆に、(NY/(1−R3))の方が小さい場合は、嗜好アイテム集合の中の推薦アイテム条件に合致しないアイテムを全て(NY個)選択し、嗜好アイテム集合の中の推薦アイテム条件に合致するアイテムアイテムを、嗜好度の大きい順に、((NY/(1−R3))×R3)個選択して、これらを推薦情報に入れる。なお、嗜好アイテム集合の中の推薦アイテム条件に合致しないアイテムが、少なくとも1つは推薦情報に入るように調整してもよい。
次に、ステップ(S2516)において、アイテム選択部108は、別の推薦対象ユーザを選択可能か判定する。利用情報または推薦情報要求を受信するごとに推薦情報を作成する場合には、推薦対象ユーザuは1人なので、「No」という判定になる。それ以外の場合は、嗜好アイテム集合が作成されたユーザの中で、まだ処理を行なっていない未処理のユーザが存在する場合に「Yes」と判定し、未処理のユーザが存在しない場合は、「No」と判定する。「Yes」と判定した場合は、ステップ(S2511)に戻って処理を繰り返し、「No」と判定した場合は、ステップ(S25)の推薦情報作成処理を終了する。
(推薦情報作成の第2の方法)
次に、図21のフローチャートを参照して、ステップ(S25)における推薦情報作成の第2の方法について説明する。ステップ(S2521)の推薦対象ユーザ選択処理は、第1の方法のおけるステップ(S2511)と同じである。
ステップ(S2522)では、第1の方法のステップ(S2512)の判定条件Bと同様に、推薦対象ユーザuのユーザ特性値αと、所定のしきい値θ1、θ2との大きさを比較する。ただし、θ1<θ2である。そして、「θ1<α<θ2」である場合は、ステップ(S2524)に進み、「α≦θ1」の場合は、ステップ(S2523)に進み、「α≧θ2」である場合は、ステップ(S2525)に進む。
ステップ(S2524)では、ステップ(S2513)における図20(b)で示した変換関数を用いた処理と同様の処理を行なって、第1割合R1より大きな値として第3割合R3を設定する。
ステップ(S2523)は、第1の方法におけるステップ(S2514)と同様に「R3=R1」として設定する。
ステップ(S2525)では、第3割合R3を第1割合R1以下の値に設定する。図22を参照して、この方法について説明する。図22(a)は、R1に基づきR3を算出するための変換関数を示しており、図中における各記号は、図20(b)で説明した記号と同様であり、R1bは、推薦対象ユーザuのユーザ特性値のしきい値θ2をR1に換算した値である。
「0≦R1≦R1a」の範囲では、変換特性は斜め45度の破線と一致し、「R3=R1」となる。「R1a<R1<R1b」の範囲では、「R3>R1」となる。ステップ(S2525)にて処理が行われるのは、「α≧θ2」である場合、すなわち「R1b≦R1≦1」である場合であり、この場合は「R3≦R1」となる。
図22(a)の変換特性は、この部分の特性が図20(b)と異なっており、特に、「R1=1」の場合であっても、「R3<1」であることに特徴がある。すなわち、どのユーザの推薦情報においても、販売方針に合致したアイテムが100%を占めることはない。このため、ユーザが推薦情報におけるアイテムの共通性を感じることがさらに少なくなり、ユーザに「販売者の押し付け」と受け取られるリスクをさらに減らすことができる。
この処理では、「R1b≦R1≦1」の範囲で、通常の推薦情報よりも販売方針に合致するアイテムの割合が減少する。しかしながら、多数のユーザのR1が一様に分布していると仮定すると、図22(b)の実線より下の面積が、斜め45度の破線より下の面積よりも大きければ、多数のユーザの推薦情報に含まれる販売方針に合致するアイテムの平均的な割合は、通常の推薦情報に含まれる販売方針に合致するアイテムの平均的な割合よりも多くなるので、「ユーザに販売方針に合ったアイテムを薦める」という販売者の目的は達せられる。図22(b)の例では、実線と破線で囲まれた三角形A1の面積が、三角形A2の面積よりも大きいため、上記の条件が成立しており、販売者の目的は達せられる。
以下のステップ(S2526)、ステップ(S2527)は、第1の方法におけるステップ(S2515)、ステップ(S2516)と同じである。
<3.まとめ>
従来技術においては、推薦情報の中の商品(アイテム)が販売方針に合致したものに限られるため、販売者が設定する推薦ルールの内容によっては、推薦できる商品の数が少なくなり、十分でない場合があった。例えば、販売者が推薦ルールに登録する商品の数が少ない場合には、推薦できる商品も少なくなってしまう問題があった。十分な数の商品を推薦するためには、推薦ルールを適切に設定する必要があり、推薦ルール設定のための専門家が必要であったり、推薦ルール設定の工数が負担となる場合があった。
一方、本実施形態では、推薦アイテム条件格納部103に格納されているアイテム識別子が少ない場合には、第1割合R1が小さくなる。それに伴って、R3も比較的小さな値となるので、(1−R3)は逆に比較的大きな値となり、販売方針に合致しないアイテムを(1−R3)の割合で推薦情報に入れるため、推薦ルールの設定の仕方によらず、十分な数のアイテムを推薦することができる。
本実施形態では、ユーザの嗜好と推薦アイテム条件(販売方針)との関連の強さを示すユーザ特性値をユーザごとに算出し、ユーザ特性値が所定条件を満たすユーザに対して、推薦情報における推薦アイテム条件に合致するアイテムの割合が1未満になる範囲で適切に調整するため、ユーザの嗜好と販売者の販売方針になるべく合致し、かつ販売方針だけに偏らない推薦情報を作成できる。従って、推薦情報が販売者の押し付けであるとユーザに感じさせるリスクを減らすことができ、ユーザが受容しやすい推薦情報を提供できるため、ユーザのアイテム利用を活性化することができる。
また本実施形態では、推薦対象ユーザの嗜好を強く表わすアイテムの集合である第1の集合と、それ以外のアイテムの集合である第2の集合を作成し、2つの集合における推薦アイテム条件に合致する割合をそれぞれ算出し、その2つの割合を用いてユーザ特性値を算出しているので、推薦アイテム条件の設定の仕方に左右されずに、ユーザの嗜好と推薦アイテム条件(販売方針)との関連の強さを精度よく数値化できる。
従って、ユーザがより受容しやすい適切な推薦情報を作成できる。また、販売者は、販売条件を変更した際に、推薦処理のしきい値等のパラメータ変更を情報選択装置10の管理者に依頼する必要がないので、販売条件を自由に変更しやすくなるという効果も得られる。