説明

ネットワーク上のユーザに対するレコメンデーションの方法、レコメンデーションサーバ及びプログラム

【課題】ネットワーク上のユーザに対してレコメンデーションを行う範囲をユーザ毎に調整する方法を提供すること。
【解決手段】サーバ10は、複数の前記ユーザの端末から、ユーザ特性データを、通信ネットワークを介して受信し、受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングし、マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算し、計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算し、計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上のユーザに対するレコメンデーションの方法、レコメンデーションサーバ及びプログラムに関する。
【背景技術】
【0002】
近年、インターネットの社会への普及に伴い、Webその他のネットワーク環境において、ユーザはWebブラウザその他の技術的手段により情報を単に閲覧するだけではなく、商品を購入したり、属性の近いもの同士で情報を送受信してコミュニティを作ったり、といった現実社会における活動と同様の活動をするようになってきた。
【0003】
ところで、当該Webその他のネットワーク環境においては、ユーザの情報閲覧、商品購入、コミュニティにおける情報の送受信等の活動を記録することは比較的容易である。具体的には、例えば、Web上でユーザの会員登録等を受け付けることによって、サーバが当該ユーザの基本属性を記憶したり、当該会員登録等を行ったユーザのWeb上での情報閲覧、商品購入等の活動を、サーバがログ(活動記録)として自動的に収集、記憶したり、といったことが可能である。
【0004】
そこで、当該Webその他のネットワーク環境において、登録された基本属性やログ(活動記録)等に基づいてユーザに興味があると考えられる商品やサービスを推薦したり(レコメンデーション)、広告を送信したり、属性が近いと思われるユーザを紹介したり(ソーシャル・ネットワーキング・サービス;SNS)、といったサービスが行われている。
【0005】
例えば、特許文献1に記載の技術によれば、Webサーバは、ユーザの購買記録に基づいて当該ユーザの興味を分析し、その分析結果に基づいて、商品推薦(レコメンデーション)を行うことができる。
【0006】
より具体的には、Webサーバが、全てのユーザの過去の購買記録に基づいて、人気商品を特定し、その人気商品を購入したユーザが購入した別の商品の購入頻度を集計し、これらの人気商品とその他の商品との間の購入に関する相関を分析し、以ってそれぞれの人気商品について購入頻度において相関の強いその他の商品をその特定商品を購入したユーザに推薦する。
【0007】
また、例えば、非特許文献1の技術によれば、Webサーバは、ユーザの購買記録や商品の評価記録(レイティング)に基づいて、商品推薦を行うことができる。
【0008】
より具体的には、Webサーバは、類似商品テーブルを生成し、人気商品を購入したユーザをサンプリングして当該ユーザの購買記録や商品の評価記録(レイティング)に基づいて、当該人気商品を購入したユーザが購入或いはレイティングを行った商品に類似した商品を相関の強い商品として推薦する。
【特許文献1】米国特許第6,912,505号公報
【非特許文献1】Amazon.com Recommendations,Item−to−Item Collaborative Filtering,Greg Linden, Brent Smith,and Jeremy York,Amazon.com,January・February 2003, IEEE Computer Society
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1及び非特許文献1に記載された発明において、レコメンデーションを行うに当たって、ユーザではなく、まず商品に着目するアプローチを採っていること、及び、人気商品を購入したユーザがあわせて購入した商品との「相関」を用いることに関していくつか課題が存在する。
【0010】
第1の課題は、一般に相関は−1から1の間の値を取り得ると考えられているが、実際にはより限られた範囲の値しか取らない分布が多々存在している。具体的には例えば、−0.2から+0.6の値しか取らないことも考えられる。このような状況においては、例えば、「相関が+0.7の場合にユーザの属性が近いと判断する」等とした場合、相関を用いてもユーザの属性の重複度合いを判断することができない。
【0011】
第2の課題は、相関を用いる分析において、あるユーザ同士の相関が負の値を持つ場合、その値は一般には破棄されてしまうが、仮にあるユーザ同士の相関が負の大きな値を持つ場合、そのユーザ同士は明らかに依存性を持っているといえるため、相関により依存性を捉えることには限界があるといえる。
【0012】
第3の課題は、相関はユーザの属性を表す確率分布に関するグローバルな情報を含んでいないということである。具体的には、あるユーザ同士の属性の重複度合いが比較的大きい場合においても、相関はそれを察知できるとは限らない。即ち、あるユーザの属性の重複度合いが全く無い場合は相関はゼロであるので正しい判断を下すことができるが、逆に相関がゼロであっても属性の重なり度合いが比較的大きい場合も存在し、無相関=無関係として誤った判断を下すことになるのである。特に、相関は2次のモーメントにしか依存しないため、複数のユーザの行動特性の確率分布が与えられたとき、テールに関する情報は相関を用いた分析結果に現れないことである。例として、A及びB2人のユーザがある商品を購入する頻度を示す確率分布が当該商品の価格に対して例えばAがパワー型、Bがガウス型のテールを持つ場合、このテールの部分には決定的な違いがある。即ち、Bは高額の商品を薦めても購入する見込みは無いが、Aは商品が気に入れば購入する可能性がある。しかしながら、高次のモーメントに依存しないため、相関はこのような差異を判断する情報を与えることができない。
【0013】
第4の課題は、相関は線形の関係を表現することができるが、非線形の関係を表現することができないことである。具体的には、2つの確率変数XとYがY=aX+bの関係(線形の関係)を有している場合には、相関を用いた分析は有意義な情報を与えることができるが、これら2つの確率変数が例えばY=Sin(X)の関係(周期的に依存する関係)を有している場合(例えば、ネットワークへのアクセス数Yと時間Xとの関係がこれに当たる)、相関を用いた分析はこのような周期的に依存する関係について有意義な情報を与えることができない(つまり、XとYの依存性は高いが、相関はゼロとなる)。
【0014】
さらに、相関を用いる、用いないにかかわらず、次のような課題も存在する。即ち、第5の課題は、相関を用いる、用いないにかかわらず、従来のレコメンデーションは商品基準(商品重視)となっていることがあげられる。例えば中年の男性がたまたま5歳の娘に絵本を購入したからといって、5歳向けの絵本ばかりレコメンデーションしてもその効用は小さい。むしろ、興味の似通った人の購入したものを推薦したほうが望ましい。
【0015】
そこで、商品重視ではなく、ユーザ重視であり、また、相関を用いることなくネットワーク上のユーザに対してレコメンデーションを行う範囲を当該ユーザ毎に調整する方法を提供することが望まれている。
【0016】
そこで、本発明は、ネットワーク上のユーザに対してレコメンデーションを行う範囲をユーザ毎に調整する方法、レコメンデーションサーバ及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
上述の目的を達成するために、本発明者らは研究を重ね、本発明を完成するに至った。具体的には、本発明は以下のようなものを提供する。
【0018】
(1) 通信ネットワーク(通信ネットワーク30)を介して接続可能な端末(端末20)のユーザに対してサーバ(サーバ10)がレコメンデーションを行う方法であって、
複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信するステップと、
受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングするステップと、
マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算するステップと、
計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算するステップと、
計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成するステップと、
生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信するステップと、を含む方法。
【0019】
本発明のこのような構成によれば、前記サーバは、複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信し、受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングし、マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算し、計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算し、計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成し、生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信することができる、という作用を有する。
【0020】
このことにより、前記サーバは、計算した前記球面距離に基づいて、前記特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算し、計算した前記属性重複指数データに基づいて、前記特定の複数のユーザに対するレコメンデーションリストを生成してレコメンデーションを行うためのデータを前記特定のユーザの端末に送信することができる。
【0021】
その結果、前記サーバは、前記属性重複指数データを計算することによって、レコメンデーションを行うユーザ毎にパーソナライズされたレコメンデーションを行うことができる。
【0022】
ここで用いる球面距離は、ユーザの属性を表す分布に関してその重複度が大きければ大きいほど限りなくゼロに近づき、また小さければ小さいほどその最大値であるπ/2に近づく。即ち、球面距離は、0〜π/2の値を取り得、ユーザの属性の分布によって、「相関」のように、その取り得る範囲がそれ以下の範囲に限定されることがない。このように本発明の原理によれば、第1の課題を解決することができる。
【0023】
なお、当該球面距離の値は、インプットであるユーザ特性データの全てを反映した値であり、「相関」のように負の値が廃棄されることがない。このように本発明の原理によれば、第2の課題を解決することができる。
【0024】
また、当該球面距離は、グローバルなレベルでユーザの属性の重複度合いを表しているので、基本的にグローバルな全てのモーメントが関与しており、包括的な情報を含んでいるといえる。従って、当該球面距離は、上述の例のように、A及びB2人のユーザがある商品を購入する頻度を示す確率分布が当該商品の価格に対して例えばAがパワー型、Bがガウス型のテールを持つ場合において、「相関」が当該テールの違いを十分に表すことができないのと対照的である。このように本発明の原理によれば、第3の課題を解決することができる。
【0025】
更に、距離の概念においては、異なるユーザの利用特性を表す確率変数の依存性には無関係に距離が定まる。このため、依存性が線形であるか否かに関わらず、球面距離はユーザの属性の重複度合いを表現することができる。従って、当該球面距離は、「相関」のように線形の依存関係しか十分に表現することができない、という制約から解放されている。このように本発明の原理によれば、第4の課題を解決することができる。
【0026】
また、ユーザが購入や検索をした商品を用いて当該ユーザ間の距離を定めるのであるが、このような距離が一旦定まったならば、レコメンデーションに関しては(商品重視ではなく)ユーザ観点に基づいて決定するため、このような本発明の原理によれば、第5の課題を解決することができる。
【0027】
(2)前記サーバが、前記ユーザのリスク回避度を表すパラメータの設定入力を受け付けるステップを更に含む(1)に記載の方法。
【0028】
本発明のこのような構成によれば、前記サーバが、前記ユーザのリスク回避度を表すパラメータの設定入力を受け付けることができる、という作用を有する。
【0029】
このことにより、前記サーバは、前記サーバは、前記前記パラメータが表すリスク回避度に応じた属性重複指数データの非線形平均を計算することによって、レコメンデーションを行うユーザ毎にパーソナライズされたレコメンデーションを行うことができる。
【0030】
その結果、前記サーバは、特定のユーザにレコメンデーションを行う際に、前記特定のユーザとその他のユーザとの間の属性の重なり度合いを表すスケール上でレコメンデーションを行う範囲を調整することができる。
【0031】
(3) 前記球面距離を計算するステップにおいて、前記サーバは、前記球面距離としてバッタチャヤの球面距離を計算する(1)又は(2)に記載の方法。
【0032】
本発明のこのような構成によれば、前記サーバは、前記球面距離としてバッタチャヤの球面距離を計算することができる、という作用を有する。
(4) 前記サーバは、前記バッタチャヤの球面距離を
【数1】

によって計算する(3)に記載の方法。
【0033】
本発明のこのような構成によれば、前記サーバは、前記バッタチャヤの球面距離を
【数2】

によって計算することができる、という作用を有する。
【0034】
(5) 前記属性重複指数データを計算するステップにおいて、前記サーバは、前記バッタチャヤの球面距離を前記属性重複指数データとして計算する(4)に記載の方法。
【0035】
本発明のこのような構成によれば、前記サーバは、前記バッタチャヤの球面距離を前記属性重複指数データとして計算することができる、という作用を有する。
【0036】
(6) 前記属性重複指数データを計算するステップにおいて、前記サーバは、前記ユーザ特性データに基づいて前記その他のユーザの行動を示す確率分布を計算し、更に前記バッタチャヤの球面距離に基づいて計算するウエイトを掛けたものを前記属性重複指数データとして計算する(4)に記載の方法。
【0037】
本発明のこのような構成によれば、前記サーバは、前記ユーザ特性データに基づいて前記その他のユーザの行動を示す確率分布を計算し、更に前記バッタチャヤの球面距離に基づいて計算するウエイトを掛けたものを前記属性重複指数データとして計算することができる、という作用を有する。
【0038】
このことにより、前記サーバは、前記特定のユーザに対してレコメンデーションを行う際に、前記その他のユーザの行動を示す確率分布に前記バッタチャヤの球面距離に基づいて計算するウエイトを掛けたものを前記属性重複指数データとして計算し、前記属性重複指数データが示す前記特定のユーザと前記その他のユーザとの間の属性の重なり度合いを表すスケール上でレコメンデーションを行う範囲を調整することができる。
(7) 前記サーバは、前記ウエイトを
【数3】

によって計算し、
前記属性重複指数データを
【数4】

によって計算する(6)に記載の方法。
【0039】
本発明のこのような構成によれば、前記サーバは、前記ウエイトを
【数5】

によって計算し、
前記属性重複指数データを
【数6】

によって計算することができる、という作用を有する。
【0040】
(8) 前記サーバが、計算した前記バッタチャヤの球面距離に基づいて、それぞれの前記ユーザを中心として、その他の全ての前記ユーザとの相対距離を計算するステップと、
計算した前記相対距離に基づいて、前記複数のユーザを前記相対距離の近い複数のグループに分類するステップと、を更に含み、
前記属性重複指数データを計算するステップにおいて、前記サーバは、前記特定のユーザと同じグループに分類された前記その他のユーザについて前記属性重複指数データを計算する(3)から(7)のいずれかに記載の方法。
【0041】
本発明のこのような構成によれば、前記サーバが、計算した前記バッタチャヤの球面距離に基づいて、それぞれの前記ユーザを中心として、その他の全ての前記ユーザとの相対距離を計算し、計算した前記相対距離に基づいて、前記複数のユーザを前記相対距離の近い複数のグループに分類し、前記属性重複指数データを計算するステップにおいて、前記サーバは、前記特定のユーザと同じグループに分類された前記その他のユーザについて前記属性重複指数データを計算することができる、という作用を有する。
【0042】
このことにより、前記サーバは、前記特定のユーザと同じグループに分類された前記その他のユーザについて前記属性重複指数データを計算し、レコメンデーションリストを生成して前記特定のユーザの端末にレコメンデーションを行うためのデータを送信することができる。
【0043】
ここで、ユーザの特性を表す確率空間において、前記相対距離は、それぞれの前記ユーザを中心として個々に計算されるので、当該中心となるユーザにとってのそれぞれの前記その他のユーザとの間の属性の重複度合いを表現することができる。
【0044】
従って、前記サーバは、前記属性重複指数データを計算する際に、前記特定のユーザと同じグループに分類された、より属性の重複度合いの高い前記その他のユーザに絞って計算し、前記レコメンデーションリストを生成して前記特定のユーザの端末にレコメンデーションを行うためのデータを送信することができる。
【0045】
その結果、前記サーバは、前記レコメンデーションリストの精度をより高めることができる可能性がある。
【0046】
(9) 前記サーバは、前記相対距離を
【数7】

によって計算する(8)に記載の方法。
【0047】
本発明のこのような構成によれば、前記サーバは、前記相対距離を
【数8】

によって計算することができる、という作用を有する。
【0048】
このことにより、前記サーバは、前記特定のユーザと同じグループに分類された前記その他のユーザについて前記属性重複指数データを計算し、レコメンデーションリストを生成してレコメンデーションを行うためのデータを前記特定のユーザの端末に送信することができる。
【0049】
その結果、前記サーバは、前記特定のユーザと同じグループに分類された前記その他のユーザのみに基づいてレコメンデーションを行うことができる。
【0050】
(10) 通信ネットワークを介して接続可能な端末のユーザに対してレコメンデーションを行うサーバであって、前記サーバは、
複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信する手段と、
受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングする手段と、
マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算する手段と、
計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算する手段と、
計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成する手段と、
生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信する手段と、を含むサーバ。
【0051】
本発明のこのような構成によれば、前記サーバは、複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信し、受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングし、マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算し、計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算し、計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成し、生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信することができる、という作用を有する。
【0052】
このことにより、前記サーバを運用することにより、(1)と同様の作用が期待できる。
【0053】
(11)通信ネットワークを介して接続可能な端末のユーザに対してサーバにレコメンデーションを行わせるプログラムであって、前記サーバに、
複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信させるステップと、
受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングさせるステップと、
マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算させるステップと、
計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算させるステップと、
計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成させるステップと、
生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信させるステップと、を含むプログラム。
【0054】
本発明のこのような構成によれば、前記サーバは、
複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信し、受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングし、マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算し、計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算し、計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成し、生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信することができる、という作用を有する。
【0055】
このことにより、前記サーバを運用することにより、(1)と同様の作用が期待できる。
【発明の効果】
【0056】
本発明によれば、前記サーバは、前記属性重複指数データを計算することによって、レコメンデーションを行うユーザ毎にパーソナライズされたレコメンデーションリストを生成することができる。従って、前記サーバは、特定のユーザにレコメンデーションを行う際に、前記特定のユーザとその他のユーザとの間の属性の重なり度合いを表すスケール上でレコメンデーションを行う範囲を調整することができる。
【発明を実施するための最良の形態】
【0057】
以下、本発明の実施形態について図面を参照して説明する。
【0058】
図1は、本発明の好適な実施形態の一例に係るシステム1の全体構成を示す図である。図2は、本発明の好適な実施形態の一例に係るサーバ10及び端末20の構成を示す図である。図3は、本発明の好適な実施形態の一例に係るサーバ10によるレコメンデーション処理を示すフローチャートである。図4は本発明の好適な実施形態の一例に係るサーバ10による3つのガウス分布の平均操作について説明するために元のガウス分布を示す図である。図5は、本発明の好適な実施形態の一例に係るサーバ10による図4の3つのガウス分布に対するαの値が非常に大きい場合(悲観的)の平均と非常に小さい場合の平均(楽観的)と比較する図である。図6は、本発明の好適な実施形態の一例に係るサーバ10によるユーザ(利用者)aから他のユーザ(利用者)までの距離の(非線形)平均を一般のαの関数として示した図である。図7は、本発明の好適な実施形態の一例に係るサーバ10によるユーザ(利用者)aの球面距離の非線形平均Θ(α)及び(Θ31,Θ32,Θ34)を比較して示す図である。
【0059】
[システムの全体構成]
【0060】
図1は、本発明の好適な実施形態の一例に係るシステム1の全体構成を示す図である。
【0061】
サーバ10は、通信ネットワーク30を介して、ユーザの端末20と接続可能である。
【0062】
サーバ10と端末20の接続の形態としては、有線でも無線でもよい。
【0063】
[サーバ10のハードウェア構成]
【0064】
図2は、図1で説明した本発明の好適な実施形態の一例に係るサーバ10のハードウェア構成の一例を示す図である。サーバ10は、制御部101を構成するCPU(Central Processing Unit)1010(マルチプロセッサ構成ではCPU1012等複数のCPUが追加されてもよい)、バスライン1005、通信I/F1040、メインメモリ1050、BIOS(Basic Input Output System)1060、USBポート1090、I/Oコントローラ1070、並びにキーボード及びマウス1100等の入力手段や表示装置1022を備える。
【0065】
I/Oコントローラ1070には、テープドライブ1072、ハードディスク1074、光ディスクドライブ1076、半導体メモリ1078、等の記憶手段を接続することができる。
【0066】
BIOS1060は、サーバ10の起動時にCPU1010が実行するブートプログラムや、サーバ10のハードウェアに依存するプログラム等を格納する。
【0067】
記憶部107を構成するハードディスク1074は、サーバ10がサーバとして機能するための各種プログラム及び本発明の機能を実行するプログラムを記憶しており、更に必要に応じて各種データベースを構成可能である。
【0068】
光ディスクドライブ1076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この場合は各ドライブに対応した光ディスク1077を使用する。光ディスク1077から光ディスクドライブ1076によりプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1050又はハードディスク1074に提供することもできる。また、同様にテープドライブ1072に対応したテープメディア1071を主としてバックアップのために使用することもできる。
【0069】
サーバ10に提供されるプログラムは、ハードディスク1074、光ディスク1077、又はメモリーカード等の記録媒体に格納されて提供される。このプログラムは、I/Oコントローラ1070を介して、記録媒体から読み出され、又は通信I/F1040を介してダウンロードされることによって、サーバ10にインストールされ実行されてもよい。
【0070】
前述のプログラムは、内部又は外部の記憶媒体に格納されてもよい。ここで、記憶部107を構成する記憶媒体としては、ハードディスク1074、光ディスク1077、又はメモリーカードの他に、MD等の光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハードディスク1074又は光ディスクライブラリー等の記憶装置を記録媒体として使用し、通信回線を介してプログラムをサーバ10に提供してもよい。
【0071】
ここで、表示装置1022は、ユーザにデータの入力を受け付ける画面を表示したり、サーバ10による演算処理結果の画面を表示したりするものであり、ブラウン管表示装置(CRT)、液晶表示装置(LCD)等のディスプレイ装置を含む。
【0072】
ここで、入力手段は、ユーザによる入力の受け付けを行うものであり、キーボード及びマウス1100等により構成してよい。
【0073】
また、通信I/F1040は、サーバ10を専用ネットワーク又は公共ネットワークを介して端末と接続できるようにするためのネットワーク・アダプタである。通信I/F1040は、モデム、ケーブル・モデム及びイーサネット(登録商標)・アダプタを含んでよい。
【0074】
以上の例は、サーバ10について主に説明したが、コンピュータに、プログラムをインストールして、そのコンピュータをサーバ装置として動作させることにより上記で説明した機能を実現することもできる。したがって、本発明において一実施形態として説明したサーバにより実現される機能は、上述の方法を当該コンピュータにより実行することにより、或いは、上述のプログラムを当該コンピュータに導入して実行することによっても実現可能である。
[ユーザの端末20のハードウェア構成]
【0075】
ここでユーザの端末20は、上述のサーバ10と同様の構成を備えてよい。
[レコメンデーション処理]
【0076】
サーバ10は、図3に示すようにレコメンデーション処理を行う。
【0077】
まず、制御部101は、通信ネットワーク30を介して複数のユーザの端末20から前記複数のユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを受信して記憶する(ステップS101)。
【0078】
具体的には、例えば、前記ユーザの性別、年齢、職業、興味のある分野等を含む基本属性データ又は、商品・サービスの購入履歴、商品・サービスに対する評価記録(レイティング)等のデータを受け付ける。
【0079】
次に、制御部101は、受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングする(ステップS102)。
【0080】
次に、制御部101は、受信した前記ユーザ特性データに基づいて、前記複数のユーザの特性を含む確率空間においてそれぞれの前記ユーザ間のバッタチャヤの球面距離を計算する(ステップS103)。
【0081】
次に、制御部101は、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算する(ステップS104)。
【0082】
次に、制御部101は、計算した前記属性重複指数データについて、非線形平均を計算する(ステップS105)。
【0083】
次に、制御部101は、計算した前記属性重複指数データの非線形平均に基づいて、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成する(ステップS106)。
【0084】
ここで、非線形平均(α混合平均)について説明する。
【0085】
α混合平均を用いて確率分布の非線形平均をとることに関して、変数αが極端に大きい、又は小さい値をとることによる効果を把握するために次の例を考える。ここでは3つのガウス分布に対する平均操作を行う。具体的に元となる分布が図4のように与えられていたとする。そこでこれら3つの分布の線形平均(図の実線)を、αの値が非常に大きい場合(悲観的=図の点線)の平均と非常に小さい場合の平均(楽観的=図の一点鎖線)と比較すると図5が得られる。
【0086】
そこで次の状況を考えてみる。仮に、これら3分布の平均が全てのxに対して所与の臨界値を超えない場合にのみ何かの商品(又は薬剤)の推薦を行うとした状況である。仮にこの臨界値が0.24であった(図の二点鎖線)場合、この例においては、αの値が非常に大きい、つまりリスク回避度がとても大きい値をとる場合、xの値が区間[0,1]の周辺値をとるときに、確率値が臨界値0.24を超過しているため、推薦する可能性が却下されることが伺える。逆にリスク回避度(つまりαの値)がさほど大きくなければ全てのxに対して確率値が臨界値0.24を超過しないため、推薦(レコメンド)する可能性が採用されることとなる。
【0087】
次に、制御部101は、生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信する(ステップS107)。
【0088】
ここで、上述のレコメンデーション処理を具体的な例を用いて説明する。
[実施例1]
バッタチャヤの球面距離Θの非線形平均に基づいたレコメンデーションの例
【0089】
ここでは、ユーザ間の距離Θの非線形平均操作に基づいたユーザに対するレコメンデーションリスト(推薦リスト)を作成する例を考える。
【0090】
そこで顧客数も分類数も共に4であった場合を想定する。そしてユーザ属性を表す分布関数ρ(k)が以下のように与えられたとする。
【数9】

このときの球面距離は
【数10】

のように求まる。
【0091】
そこでΘの非線形平均Θ(α)は
【数11】

によって求める。
【0092】
そこでユーザ(利用者)aに着目してΘ(α)を求め、これを(Θ31,Θ32,Θ34)と比較したものを図7に示す。図7において、Θ(α)は実線、Θ31は一点鎖線、Θ32は点線、Θ34は二点鎖線で示す。
【0093】
この例ではリスク回避度合を表す変数αをアルゴリズムの利用者(例えば、レコメンデーションサービス提供業者)が適当に選ぶ必要がある。仮に比較的非保守的な値α=−5が選ばれた場合、
【数12】

であるので、この値よりも小さな距離をとるユーザが、着目しているユーザaからみて興味が近いと判断される。この場合、レコメンデーションリストはユーザa及びユーザaのリストより選ばれる。逆に比較的保守的な値α=10が選ばれたとき
【数13】

であるので、この値よりも小さな距離をとるユーザはaのみとなる。
[実施例2]
球面距離の非線形平均に基づいてユーザ(利用者)が自らレコメンデーションリスト(推薦リスト)の類似性度合いを調整して推薦を受ける例
【0094】
非線形平均(α混合平均)の考えを用いて、ユーザ(利用者)が自らレコメンデーションリスト(推薦リスト)の類似性度合いを調整して推薦を受けるシステムに対する応用を考える。つまり、非常に保守的なユーザ(利用者)は、スライドパラメータの値を0にとることによって最も属性(趣味)の重複度が大きい他のユーザ(利用者)が購入した商品のレコメンデーション(推薦)を受け、或いはチャレンジ意欲の大きいユーザ(利用者)はスライドパラメータの値を1に近くとることによって、かなり属性(興味)の異なるユーザ(利用者)のリストよりレコメンデーション(推薦)を受けるというシステムを考える。
【0095】
具体的に各ユーザ(利用者)は0から1の間の値をとる変数tを指定する。この変数に基づいて、非線形平均(α混合平均)のパラメータαの値を
【数14】

のように選ぶ。
【0096】
ここで、ユーザ(利用者)間の属性(興味)の重複度に関しては、一般的な商品やサービスに関しての購入数又は検索数によって得られた各ユーザ(利用者)のヒストグラムに基づいて得られる確率分布に対する重複度(=球面距離)Θmnによって与える。
【0097】
そこでn番目のユーザ(利用者)が何らかのtを選んだとき、このユーザ(利用者)に対するαが上述の式によって定まる。このαに基づいて、
【数15】

を計算する。その結果として定まる距離Θ(n)の値に最も近い値をとるユーザ(利用者)、つまり
【数16】

によって定まるm番目のユーザ(利用者)を次に決定する。そのユーザ(利用者)(そのような利用者は複数存在することもおおいにありうる)の属性(興味)の大きな商品やサービスの中から、n番目のユーザ(利用者)がまだ購入や利用をしていないものをレコメンド(推薦)するのである。
【0098】
次に、上述の概念を理解するための具体例としてユーザ(利用者)が全体で8名であった場合を想定する。そしてユーザ(利用者)aに注目し、このユーザ(利用者)から測った他のユーザ(利用者)までの距離が
【数17】

と与えられたとする。更にユーザ(利用者)aはやや保守的な方で、変数tの値をt=0.3と選んだものとする。ところでユーザ(利用者)aから他のユーザ(利用者)までの距離の(非線形)平均は、一般のαの関数として図6のようになる(実線の曲線)。
【0099】
図6にはユーザ(利用者)aから他のユーザ(利用者)までの距離の値もそれぞれ示し(a〜a)、またその線形平均値も示した。ところで、ユーザ(利用者)aはt=0.3と選んだので、この選択に従って得られる距離の平均値(つまりaさんにとっての臨界値)を求めると、これは約0.77と与えられる。このため、この臨界値に最も近い利用者とはaに他ならない。
【0100】
具体的なレコメンデーションリスト(推薦リスト)は、以下の二通りに従って製作可能となる。
(1)臨界値以内のユーザ(利用者)のリストを用いる。臨界値を超えない範囲内の利用者はa及びaであるので、これら二名のリストにおいてaがまだ購入を行っていない商品を、a及びaを合わせた頻度に従ってレコメンド(推薦)する。
(2)臨界値に最も近いユーザ(利用者)のリストを用いる。既に述べた通り、臨界値に最も近いユーザ(利用者)とはaであるため、aがまだ購入を行っていない商品をa3の商品リストより、その頻度に従ってレコメンド(推薦)する。
[実施例3]
バッタチャヤの球面距離Θを用いた非線形平均に基づいたレコメンデーションの例
【0101】
ここでは、ユーザ間の距離Θを用いた非線形平均操作を加えることによってユーザに対するレコメンデーションリスト(推薦リスト)を作成する例を、「本のレコメンデーション」という具体的を用いて示す。
【0102】
まずは、この例における入力項目を設定する。本の総数はLによって与える。現実の書籍数は非常に多いので、ポピュラー小説、医学専門書、歴史もの、等といった具合に種類(カテゴリー)別に分類する必要がある。この分類項目数をMとおく。これらの分類項目にi=1からi=Mまで、番号をつける。そしてi番目の分類はbと呼称をつける。さて、顧客(ユーザ)の数は全てでN人いたとする。これらに関しても
【数18】

のように名前をつける。
【0103】
次に顧客(ユーザ)a氏が購入したb類の書籍の数は、C(k)によって与える。同様に顧客(ユーザ)a氏が検索したb類の書籍の数をD(k)によって与える。更に顧客(ユーザ)a氏が購入した書籍の総数を
【数19】

によって与え、また顧客(ユーザ)a氏が検索した(が購入しなかった)書籍の総数を
【数20】

によって与える。
【0104】
次に購入項目と検索項目に対する「相対比」をζ:1−ζによって与える。変数
【数21】

の値は、購入することに対する重要度を、検索することに対する重要度と比較して、このアルゴリズムの利用者(例えば、レコメンデーションサービス提供業者)が適当に選ぶ必要がある。
【0105】
以上の定義が与えられたとき、顧客(ユーザ)a氏に対する、異なる分野の書籍に関する確率分布を以下の式によって与える。
【数22】

このようにして、顧客(ユーザ)aに関する属性を表す分布関数ρ(k)が具体的に定まる。
【0106】
顧客(ユーザ)a及びa間の球面距離は上述の通り
【数23】

によって決定する。
【0107】
更に重み関数μ(m)をまた上述のように
【数24】

と設定する。
【0108】
そして、顧客(ユーザ)aを中心とした観点から、趣味の重複が大きい順に本の分類の分布に関する情報を、α混合平均を用いて統合する。具体的にこれは
【数25】

と与えられる。
【0109】
最適であると思われる推薦リストとは、何かしらの選ばれたαに対して、Pα(k)なる確率に従って推薦する本の分類を選ぶことである(顧客(ユーザ)aが既に購入した書籍はそこから排除することは明らかであろう)。
【0110】
そこで顧客数も商品分類数も共に4であった場合を想定する。そしてユーザ属性を表す分布関数ρ(k)が(実施例1と同様に)以下のように与えられたとする。
【数26】

このときの球面距離は
【数27】

のように求まる。
【0111】
同様に比重を与える関数μ(m)を計算すると以下のような結果となる。
【数28】

【0112】
これらを用いて、顧客(ユーザ)aに対する推薦リストを作成するのに必要な分布P21(k)を、αの値を21として求めた結果
【数29】

が得られる。
【0113】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【0114】
【図1】本発明に係るシステム1の全体構成を示す図である。
【図2】本発明に係るサーバ10及び端末20の構成を示す図である。
【図3】本発明に係るサーバ10によるレコメンデーション処理を示すフローチャートである。
【図4】本発明に係るサーバ10による3つのガウス分布の平均操作について説明するために元のガウス分布を示す図である。
【図5】本発明に係るサーバ10による図4の3つのガウス分布に対するαの値が非常に大きい場合(悲観的)の平均と非常に小さい場合の平均(楽観的)と比較する図である。
【図6】本発明に係るサーバ10によるユーザ(利用者)aから他のユーザ(利用者)までの距離の(非線形)平均を一般のαの関数として示した図である。
【図7】本発明に係るサーバ10によるユーザ(利用者)aの球面距離の非線形平均Θ(α)及び(Θ31,Θ32,Θ34)を比較して示す図である。
【符号の説明】
【0115】
1 システム
10 サーバ
20 端末
30 通信ネットワーク

【特許請求の範囲】
【請求項1】
通信ネットワークを介して接続可能な端末のユーザに対してサーバがレコメンデーションを行う方法であって、
複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信するステップと、
受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングするステップと、
マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算するステップと、
計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算するステップと、
計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成するステップと、
生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信するステップと、を含む方法。
【請求項2】
前記サーバが、前記ユーザのリスク回避度を表すパラメータの設定入力を受け付けるステップを更に含む請求項1に記載の方法。
【請求項3】
前記球面距離を計算するステップにおいて、前記サーバは、前記球面距離としてバッタチャヤの球面距離を計算する請求項1又は請求項2に記載の方法。
【請求項4】
前記サーバは、前記バッタチャヤの球面距離を
【数1】

によって計算する請求項3に記載の方法。
【請求項5】
前記属性重複指数データを計算するステップにおいて、前記サーバは、前記バッタチャヤの球面距離を前記属性重複指数データとして計算する請求項4に記載の方法。
【請求項6】
前記属性重複指数データを計算するステップにおいて、前記サーバは、前記ユーザ特性データに基づいて前記その他のユーザの行動を示す確率分布を計算し、更に前記バッタチャヤの球面距離に基づいて計算するウエイトを掛けたものを前記属性重複指数データとして計算する請求項4に記載の方法。
【請求項7】
前記サーバは、前記ウエイトを
【数2】

によって計算し、
前記属性重複指数データを
【数3】

によって計算する請求項6に記載の方法。
【請求項8】
前記サーバが、計算した前記バッタチャヤの球面距離に基づいて、それぞれの前記ユーザを中心として、その他の全ての前記ユーザとの相対距離を計算するステップと、
計算した前記相対距離に基づいて、前記複数のユーザを前記相対距離の近い複数のグループに分類するステップと、を更に含み、
前記属性重複指数データを計算するステップにおいて、前記サーバは、前記特定のユーザと同じグループに分類された前記その他のユーザについて前記属性重複指数データを計算する請求項3から請求項7のいずれかに記載の方法。
【請求項9】
前記サーバは、前記相対距離を
【数4】

によって計算する請求項8に記載の方法。
【請求項10】
通信ネットワークを介して接続可能な端末のユーザに対してレコメンデーションを行うサーバであって、前記サーバは、
複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信する手段と、
受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングする手段と、
マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算する手段と、
計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算する手段と、
計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成する手段と、
生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信する手段と、を含むサーバ。
【請求項11】
通信ネットワークを介して接続可能な端末のユーザに対してサーバにレコメンデーションを行わせるプログラムであって、前記サーバに、
複数の前記ユーザの端末から、複数の前記ユーザの基本属性データ又はログデータを少なくとも含んで構成するユーザ特性データを、前記通信ネットワークを介して受信させるステップと、
受信した前記ユーザ特性データに基づいて、複数の前記ユーザの特性を確率空間にマッピングさせるステップと、
マッピングした前記確率空間においてそれぞれの前記ユーザの間の球面距離を計算させるステップと、
計算した前記球面距離に基づいて、複数の前記ユーザのうち、特定のユーザとその他のユーザとの間の属性の重複度合いを表す属性重複指数データを計算させるステップと、
計算した前記属性重複指数データについて、前記ユーザのリスク回避度を表すパラメータに依存した非線形平均を計算することによって、前記特定のユーザに対してレコメンデーションを行うためのレコメンデーションリストを生成させるステップと、
生成した前記レコメンデーションリストに基づいて、前記特定のユーザの端末にレコメンデーションを行うためのデータを送信させるステップと、を含むプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−146610(P2008−146610A)
【公開日】平成20年6月26日(2008.6.26)
【国際特許分類】
【出願番号】特願2006−336428(P2006−336428)
【出願日】平成18年12月13日(2006.12.13)
【出願人】(500257300)ヤフー株式会社 (1,128)
【Fターム(参考)】