特許第6293642号(P6293642)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パロ・アルト・リサーチ・センター・インコーポレーテッドの特許一覧

特許6293642推薦エンジンに基づく汎用グラフ、ルール及び空間構造
<>
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000002
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000003
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000004
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000005
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000006
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000007
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000008
  • 特許6293642-推薦エンジンに基づく汎用グラフ、ルール及び空間構造 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6293642
(24)【登録日】2018年2月23日
(45)【発行日】2018年3月14日
(54)【発明の名称】推薦エンジンに基づく汎用グラフ、ルール及び空間構造
(51)【国際特許分類】
   G06F 17/30 20060101AFI20180305BHJP
【FI】
   G06F17/30 340A
   G06F17/30 220Z
【請求項の数】19
【全頁数】16
(21)【出願番号】特願2014-225219(P2014-225219)
(22)【出願日】2014年11月5日
(65)【公開番号】特開2015-99593(P2015-99593A)
(43)【公開日】2015年5月28日
【審査請求日】2017年11月6日
(31)【優先権主張番号】14/083,285
(32)【優先日】2013年11月18日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502096543
【氏名又は名称】パロ・アルト・リサーチ・センター・インコーポレーテッド
【氏名又は名称原語表記】Palo Alto Research Center Incorporated
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】マイケル・ロバーツ
(72)【発明者】
【氏名】シェーン・ピー・アハーン
【審査官】 石田 信行
(56)【参考文献】
【文献】 米国特許出願公開第2013/0290110(US,A1)
【文献】 米国特許出願公開第2012/0278268(US,A1)
【文献】 国際公開第2010/095169(WO,A1)
【文献】 特開2004−287934(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
ユーザに対して推薦を提供する方法であって、
ユーザに関連付けられたコンテキスト情報を受信することと、
前記受信したコンテキスト情報に基づいて複数のユーザモデルを更新することと、
複数の項目を記憶し、ベクトル空間に対応し、項目に関連付けられたベクトル値に基づいて各項目が記憶される空間データ構造を識別することと、
境界が前記ベクトル値の許容範囲を示す、前記ベクトル空間の中のサブ空間を、前記更新されたユーザモデルに基づいて、決定することと、
前記決定されたサブ空間に含まれる、推薦項目の第1のセットを取得するために、前記空間データ構造を照会することと、
各ユーザモデルについてのモデル固有出力を算出すること、及び前記複数のユーザモデルにわたるモデル固有出力の加重和を算出することを含み、前記複数のユーザモデル及び各項目に関連付けられた特性評価ベクトルに基づいて前記推薦項目の第1のセットの中の各項目についてのスコアを算出することと、
前記算出されたスコアに基づいて前記取得された推薦項目の第1のセットの中の前記項目をランク付けすることと、
1つ以上のトップランクの項目を前記ユーザに対して推薦することと、
を備える方法。
【請求項2】
前記モデル固有出力を算出することは、
前記ユーザモデルのパラメータに対応する前記特性評価ベクトルにおける要素を識別することと、
前記識別された要素と前記ユーザモデルのパラメータとの関数として前記モデル固有出力を算出することと、
を含む、請求項1に記載の方法。
【請求項3】
異なるベクトル空間に対応する追加の空間データ構造を識別することと、
推薦項目の第2のセットを取得するために前記追加の空間データ構造を照会することと、
前記推薦項目の第1のセット及び第2のセットを使用して推薦項目の組み合わせセットを生成することと、
を更に備える、請求項1に記載の方法。
【請求項4】
前記複数の項目は、
ウェブページと、
消費項目と、
活動と、
会場と、
位置とのうちの1つ以上を含む、請求項1に記載の方法。
【請求項5】
前記受信されたコンテキスト情報に基づいて前記ユーザに関連付けられたコンテキストグラフを更新することを更に備える、
請求項1に記載の方法。
【請求項6】
前記空間データ構造は、セルにセグメント化され、
各セルは、前記セルの境界の中のベクトル値を有する項目を記憶する、
請求項1に記載の方法。
【請求項7】
コンピュータにより実行された時、前記コンピュータに、ユーザに対して推薦を提供する方法を実行する命令を記憶する非一時的なコンピュータ可読媒体であって、
前記方法は、
ユーザに関連付けられたコンテキスト情報を受信することと、
前記受信したコンテキスト情報に基づいて複数のユーザモデルを更新することと、
複数の項目を記憶し、ベクトル空間に対応し、項目に関連付けられたベクトル値に基づいて各項目が記憶される空間データ構造を識別することと、
境界がベクトル値の許容範囲を示す、前記ベクトル空間の中のサブ空間を、前記更新されたユーザモデルに基づいて、決定することと、
前記決定されたサブ空間に含まれる、推薦項目の第1のセットを取得するために、前記空間データ構造を照会することと、
各ユーザモデルについてのモデル固有出力を算出すること、及び前記複数のユーザモデルにわたるモデル固有出力の加重和を算出することを含み、前記複数のユーザモデル及び各項目に関連付けられた特性評価ベクトルに基づいて前記推薦項目の第1のセットの中の各項目についてのスコアを算出することと、
前記算出されたスコアに基づいて前記取得された推薦項目の第1のセットの中の前記項目をランク付けすることと、
1つ以上のトップランクの項目を前記ユーザに対して推薦することと、
を備える、
非一時的なコンピュータ可読媒体。
【請求項8】
前記モデル固有出力を算出することは、
前記ユーザモデルのパラメータに対応する前記特性評価ベクトルにおける要素を識別することと、
前記識別された要素と前記ユーザモデルのパラメータとの関数として前記モデル固有出力を算出することと、
を含む、請求項7に記載の非一時的なコンピュータ可読媒体。
【請求項9】
異なるベクトル空間に対応する追加の空間データ構造を識別することと、
推薦項目の第2のセットを取得するために前記追加の空間データ構造を照会することと、
前記推薦項目の第1のセット及び第2のセットを使用して推薦項目の組み合わせセットを生成することと、
を更に備える、請求項7に記載の非一時的なコンピュータ可読媒体。
【請求項10】
前記複数の項目は、
ウェブページと、
消費項目と、
活動と、
会場と、
位置とのうちの1つ以上を含む、請求項7に記載の非一時的なコンピュータ可読媒体。
【請求項11】
前記受信されたコンテキスト情報に基づいて前記ユーザに関連付けられたコンテキストグラフを更新することを更に備える、
請求項7に記載の非一時的なコンピュータ可読媒体。
【請求項12】
前記空間データ構造は、セルにセグメント化され、
各セルは、前記セルの境界の中のベクトル値を有する項目を記憶する、
請求項7に記載の非一時的なコンピュータ可読媒体。
【請求項13】
ユーザに対して推薦を提供する推薦システムにおいて、
プロセッサと、
メモリと、
ユーザに関連付けられたコンテキスト情報に基づいてユーザの活動及びユーザの関心の少なくとも一方を検出するように構成された活動検出モジュールと、
前記活動検出モジュールの出力に基づいて複数のユーザモデルを更新するように構成されたモデル更新機構と、
複数の項目を記憶し、ベクトル空間に対応し、項目に関連付けられたベクトル値に基づいて各項目が記憶されるように構成された空間データ構造と、
境界がベクトル値の許容範囲を示す、前記ベクトル空間の中のサブ空間を、前記更新されたユーザモデルに基づいて、決定するように構成されたサブ空間決定モジュールと、
前記決定されたサブ空間に含まれる、推薦項目の第1のセットを取得するために、前記空間データ構造を照会するように構成された照会機構と、
各ユーザモデルについてのモデル固有出力を算出すること、及び前記複数のユーザモデルにわたるモデル固有出力の加重和を算出することを含み、前記複数のユーザモデル及び各項目に関連付けられた特性評価ベクトルに基づいて前記推薦項目の第1のセットの中の各項目についてのスコアを算出し
前記算出されたスコアに基づいて前記取得された推薦項目の第1のセットの中の前記項目をランク付けし、
1つ以上のトップランクの項目を前記ユーザに対して推薦するように構成された混合モデル推薦部と、
を備える推薦システム。
【請求項14】
前記混合モデル推薦部は、
前記ユーザモデルのパラメータに対応する前記特性評価ベクトルにおける要素を識別し、
前記識別された要素と前記ユーザモデルのパラメータとの関数として前記モデル固有出力を算出する、
ように構成される、請求項13に記載の推薦システム。
【請求項15】
異なるベクトル空間に対応する追加の空間データ構造を更に備え、
前記照会機構は、
推薦項目の第2のセットを取得するために前記追加の空間データ構造を照会し、
前記推薦項目の第1のセット及び第2のセットを使用して推薦項目の組み合わせセットを生成する、
ように更に構成される、請求項13に記載の推薦システム。
【請求項16】
前記複数の項目は、
ウェブページと、
消費項目と、
活動と、
会場と、
位置とのうちの1つ以上を含む、請求項13に記載の推薦システム。
【請求項17】
前記活動検出モジュールの出力に基づいて前記ユーザに関連付けられたコンテキストグラフを更新するように構成されるコンテキストグラフ更新機構を更に備える、
請求項13に記載の推薦システム。
【請求項18】
前記空間データ構造は、セルにセグメント化され、
各セルは、前記セルの境界の中のベクトル値を有する項目を記憶する、
請求項13に記載の推薦システム。
【請求項19】
項目についての特性評価ベクトルを生成するように構成された項目特性評価モジュールを更に備える、請求項13に記載の推薦システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、推薦システムに関する。より具体的には、本開示は、複数の領域にわたって推薦を提供することができる汎用推薦システムに関する。
【背景技術】
【0002】
物理的環境等のユーザコンテキストを検出するための技術を搭載したモバイル機器が我々の日常生活により広がるようになるのにともない、物理的環境を検出及び利用するコンテキストを意識した推薦アプリケーションは、ますますモバイル機器のユーザのライフスタイルの向上に寄与することができる。そのようなソフトウェアは、物理的環境を含むコンピューティング環境に適応することができ且つ物理的環境に基づいて推薦を行うことができるコンテキストを意識したシステムを含む。モバイル機器におけるコンテキストを意識したシステムは、コンピューティング環境を検出し、モバイル機器の位置や移動、近くの機器、並びに、他の周囲状況等の環境から検出される変化状況に適応する。追加のユーザコンテキストはまた、ユーザによって閲覧されるウェブページ又は文書、ユーザの過去の活動、ユーザによって表現される関心等の様々なユーザイベントから抽出されることができる。
【0003】
そのようなコンテキストを意識したシステムは、異なるユーザコンテキストに基づいて様々なユーザモデルを確立することができる。ユーザモデルは、ユーザの行動や関心を記述するために使用されることができる。そして、コンテキストベースの推薦システムは、ユーザモデルに基づいて、レジャー活動等の活動を推薦することができる。しかしながら、多数の潜在的推薦項目を含み、多数の同時ユーザをサポートすることができるコンテキストベースの推薦システムを提供することは、計算的に困難な場合がある。さらに、従来の推薦システムは、大抵の場合、異なるユーザモデルを組み込むことができない。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明の1つの実施形態は、推薦システムを提供する。動作中において、システムは、ユーザに関連付けられたコンテキスト情報を受信し、受信したコンテキスト情報に基づいて複数のユーザモデルを更新し、複数の項目を記憶する少なくとも1つの空間データ構造を識別する。各項目は、項目に関連付けられたベクトル値に基づいて空間データ構造内に記憶される。そして、システムは、所定範囲内のベクトル値を有する推薦項目の第1のセットを得るために空間データ構造を照会し、複数のユーザモデル及び各項目に関連付けられた特性評価ベクトルに基づいて推薦項目のセット内の各項目についてのスコアを算出し、算出されたスコアに基づいて推薦項目のセット内の項目をランク付けし、1つ以上のトップランクの項目をユーザに推薦する。
【0005】
この実施形態の変形例において、スコアを算出することは、各ユーザモデルについてのモデル固有出力を算出することと、複数のユーザモデルにわたるモデル固有出力の加重和を算出することとを含む。
【0006】
さらなる変形例において、モデル固有出力を算出することは、ユーザモデルのパラメータに対応する特性評価ベクトルの要素を識別することと、識別された要素及びユーザモデルの対応するパラメータの関数としてモデル固有出力を算出することとを含む。
【0007】
本実施形態の変形例において、システムは、異なるベクトル空間に対応する追加の空間データ構造を識別し、推薦項目の第2のセットを得るために追加の空間データ構造を照会し、推薦項目の第1及び第2のセットを使用して推薦項目の組み合わせセットを生成する。
【0008】
この実施形態の変形例において、複数の項目は、以下のうちの1つ以上を含む:ウェブページ、消費項目、活動、会場及び位置。
【0009】
この実施形態の変形例において、システムは、受信したコンテキスト情報に基づいて、ユーザに関連付けられたコンテキストグラフを更新する。
【0010】
この実施形態の変形例において、空間データ構造はセルに分割され、各セルは、セルの境界内のベクトル値を有する項目を記憶する。
【図面の簡単な説明】
【0011】
図1図1は、本発明の実施形態にかかるコンテキストベースの推薦システムの例示的なアーキテクチャを図示する図を提示している。
図2A図2Aは、本発明の実施形態にかかる例示的な空間データ構造を図示する図を提示している。
図2B図2Bは、本発明の実施形態にかかる例示的な空間データ構造を図示する図を提示している。
図3図3は、本発明の実施形態にかかる例示的なコンテキストグラフを提示している。
図4図4は、本発明の実施形態にかかる項目についての特性評価ベクトルを生成する例示的なプロセスを図示するフローチャートを提示している。
図5図5は、本発明の実施形態にかかる空間データ構造を生成するための例示的なプロセスを図示するフローチャートを提示している。
図6図6は、本発明の実施形態にかかるユーザに対する推薦を行う例示的なプロセスを図示するフローチャートを提示している。
図7図7は、本発明の1つの実施形態にかかるユーザに対する推薦を提供するための例示的なコンピュータシステムを図示している。
【発明を実施するための形態】
【0012】
図面において、同様の参照符号は、同一の図要素を指している。
【0013】
以下の詳細な説明は、任意の当業者が実施形態を作製して使用するのを可能とするように提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義された一般的原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及び用途に適用可能である。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示された原理及び特徴と一致する最も広い範囲を与えられるべきである。
【0014】
本発明の実施形態は、多数の異なる領域におけるコンテキストベースの推薦を提供する方法及びシステムを提供する。より具体的には、システムは、それぞれ特定のコンテンツ種類についての多数の異なる特性評価システムを含む。特性評価システムは、潜在的推薦項目についての特性評価ベクトルを生成するために使用されることができ、特性評価ベクトルにおける要素は、対応する推薦項目に関連付けられた正規化されたスコアを受け取る。特性評価ベクトルは、システムが推薦を行ったときに照会されることができる項目データベースに記憶される。推薦計算を加速するために、システムは、特性評価ベクトル要素の範囲によって項目の空間を分割する。推薦を行うとき、(ユーザコンテキストによって判定される)所定範囲内の特性評価ベクトルを有する項目のみが推薦項目として考えられる。システムは、さらに、推薦項目にスコア付けしてランク付けするように様々なユーザモデルスコアを組み合わせる混合モデル関数を呼び出す。
【0015】
図1は、本発明の実施形態にかかるコンテキストベースの推薦システムの例示的なアーキテクチャを図示する図を提示している。図1において、推薦システム100は、項目特性評価モジュール102と、活動検出モジュール112と、項目データベース120と、コンテキストグラフ生成部122と、空間構造生成部124と、混合モデル推薦部126とを含む。
【0016】
項目特性評価モジュール102は、様々な潜在的推薦項目を特性評価する責を負う。この特性評価プロセスは、オフラインで行われることができる。図1に示されるように、項目特性評価モジュール102は、特性評価部104、106、108及び110等の複数の特性評価部を含む。なお、各特性評価部は、異なるコンテンツ種類に使用されることができることに留意すべきである。例えば、特性評価部104は、ウェブページ又はウェブ文書を特性評価するために使用されてもよい。1つの実施形態において、ウェブページ特性評価部は、OpenCalais(商標)(ニューヨーク、NYのトムソン・ロイター社の商標)等のエンティティ抽出サービスに基づくシステムを含むことができる。より具体的には、ウェブページ特性評価部は、エンティティのリスト又は標準的な用語を抽出するOpenCalais(商標)にウェブコンテンツを供給することができる。そして、特性評価部は、これらの抽出された用語についてのスコアを特性評価ベクトルに挿入することができる。なお、特性評価ベクトルは、項目の態様を表す各要素による任意数の要素又は次元を有するベクトルであることに留意すべきである。レストランについての例示的な特性評価ベクトルは、多数の地域的要素(アジアン、ヨーロピアン、南方等)、民族的要素(中華、タイ、イタリアン等)、価格範囲要素(高価、中程度、安価等)等を含むことができる。1つの実施形態において、(緯度及び経度を含む位置要素以外の)特性評価ベクトルにおける全ての要素は、0.0から1.0の間の範囲の正規化されたスコアを受け取る。さらなる実施形態において、これらの正規化されたスコアは、特性評価部によって与えられる。ウェブページ特性評価部の例において、それは、ウェブページから標準的な用語を抽出し、1つ以上のトップランクの用語に1.0のスコアを割り当て、低ランクの用語には低スコアを割り当てる。そして、特性評価部は、(対応する標準的な用語によって索引付けられた)これらの正規化されたスコアを特性評価ベクトルに挿入する。なお、最低ランクの用語の一部は、0のスコアを受け取ることができ、特性評価ベクトルに含まれないことに留意すべきである。特性評価ベクトルは、要素名によって索引付けられた値のハッシュマップに記憶されることができる。例えば、ウェブページのコンテンツがレストランのレビューを含んでいる場合、特定のレストランについて生成された特性評価ベクトルは、以下のようになる。{レストラン=1、緯度=40°20’、経度=90°、タイ=1、イタリアン=0、アジアン=1、高級料理=0.5、カジュアルダイニング=0.5、・・・}。なお、ハッシュに存在しない要素は、0の値を有すると考えられることに留意すべきである。わかるように、特性評価ベクトルは、項目の様々な態様を定量的に記述するための方法である。この例において、特性評価ベクトルは、タイレストランを表しており、したがって、その「タイ」の度合いを測定するベクトル要素は、1.0の値が与えられる。逆に、その「イタリアン」の度合いを測定するベクトル要素は、0.0の値が与えられる。レストランの種類(又は価格範囲)は、高級レストランとカジュアルダイニングとの間とすることができ、それゆえに、双方の要素は、0.5の値が与えられる。同様に、ウェブページのコンテンツが政治的コメントを含む場合、特性評価ベクトルは、以下のようになる。{民主主義者=0.2、共和主義者=0.3、自由主義者=0.5、・・・}。1つの実施形態において、標準的な用語を抽出してスコア付けするとき、特性評価部は、自然言語パーサ及び用語頻度−逆文書頻度(TF−IDF)ランク付けアルゴリズムを使用することができる。
【0017】
ウェブページ特性評価部に加えて、他の種類の特性評価部もまた、異なる種類の項目を特性評価するために含められることができる。例えば、特性評価部106は、(レビューウェブサイト、個人ブログ、広告等におけるエントリを含むことができる)目的地に関連した特定のウェブサイトから又はユーザレビューからデータを「リッピング」する責を負う多数の特定のパーサを含む旅行目的地特性評価部とすることができる。他の種類の項目は、これらに限定されるものではないが、以下を含むことができる:(書籍、電子機器、衣服、家庭用品等の)消費項目、(スポーツ活動、レジャー活動、特別利益活動等の)活動、(店舗、スポーツ会場、クラブ、劇場、医療施設等の)会場、地理的位置及び他の種類。特定の種類の項目のそれぞれについて、(特性評価部又は特定の種類の特性評価部内のモジュール等の)特定のモジュールが特性評価ベクトルを生成するために使用されることができる。1つの実施形態において、特定の項目は、特定の項目に関連する情報の様々な形式があるかもしれないことから、複数の特性評価部によって特性評価されることができる。例えば、推薦項目が会場Bにおける活動Aに従事している場合、活動特性評価部及び会場特性評価部の双方が、この特定の項目についての特性評価ベクトルを生成するために使用される。なお、項目を特性評価する際に所定の機械学習技術が使用されてもよいことに留意すべきである。例えば、トレーニングされた分類器は、特性評価ベクトルを生成するために、大量のオンライン及びオフラインデータをマイニングするために使用することができる。
【0018】
項目データベース120は、項目特性評価モジュール102からの出力を受信して記憶する。1つの実施形態において、項目データベース120は、多数の項目と、それらの関連する特性評価ベクトルとを記憶する。1つの実施形態において、各項目は、巨大ベクトルであり得る特性評価ベクトルに関連付けられている。なお、特性評価して特性評価ベクトルを記憶する処理は、オフラインで発生する可能性があることに留意すべきである。1つの実施形態において、推薦システム100は、膨大な量のオンライン及びオフラインデータを収集して分析することによって、項目データベース120を継続的に構築することができる。さらなる実施形態において、項目データベース120は、手動で生成された特性評価ベクトルを含むことができる。例えば、人間である作業者は、レストランのレビューを読むか又はレストランを試し、レストランの様々な態様に対して正規化されたスコアを手動で与えることができ、それゆえに、レストランについての特性評価ベクトルを生成することができる。さらなる実施形態において、特性評価部は、レストランのレビューを読んだ人等の人間である作業者によって最初にトレーニングされることができる分類器を使用することができる。分類器がトレーニングされると、それは、収集されたデータに基づいて自動的にレストランを分類(又は特性評価)するために使用されることができる。
【0019】
推薦システム100が知識を蓄積することから、項目データベース120内の潜在的推薦項目の数は増加する。従来のアプローチにおいては、全ての項目にわたって網羅的な探索が必要とされることから、システムが推薦を行ったときに、多数の項目は、必要とされる多数の計算につながる可能性がある。推薦システム100がまた、多数のユーザをサポートし、複数のユーザに対して同時に推薦を行う必要がある可能性がある場合には、これは問題であり得る。この問題を解決するために、本発明の実施形態においては、項目データベース120内の項目は、任意の特性評価ベクトル空間内の範囲によって項目の空間を分割することにより、これらの項目についての空間構造を生成する空間構造生成部124に供給される。もはやシステムが全ての可能な項目を検索する必要がないことから、項目空間の分割は、推薦計算を加速する。代わりに、システムは、(特定の範囲内の要素値を有する)項目の小さなセットを考慮してこれらの項目のみについて推薦計算を実行する必要があるのみとすることができ、それゆえに、必要とされる計算数を低減することができる。モデリングのニーズに応じて、空間構造は、異なる次元を有することができる。各空間構造は、項目空間の次元のサブセットを表すことができる。例えば、ユーザモデルが料理に関するものである場合、項目についての特性評価ベクトル内の(中華料理、タイ料理、イタリア料理等の)料理関連ベクトル要素のみが、ユーザモデルについての入力として必要とされる。したがって、空間データ構造は、それらの料理関連ベクトル要素に基づいて構築されることができる。
【0020】
図2Aは、本発明の実施形態にかかる例示的な空間データ構造を図示する図を提示している。図2Aにおいて、空間データ構造200は、項目データベース内の項目に対応する各ベクトルを有する多数の2次元ベクトルを含む2次元ベクトル空間である。2次元ベクトルの水平成分及び垂直成分は、特性評価において選択された要素の値に対応する。図2Aに示される例において、空間データ構造200は、水平成分が「中華料理」であり且つ垂直成分が「イタリア料理」である料理関連空間データ構造である。レストランとすることができる項目は、その特性評価ベクトルの「中華」成分及び「イタリアン」成分に基づいて空間データ構造200に配置される。例えば、あまり中華の影響がないイタリアンレストランよりも多いレストラン202は、(0.1、0.8)のベクトル値を有し、あまりイタリアンの影響がない中華レストランよりも多いレストラン204は、(0.9、0.1)のベクトル値を有し、中華−イタリアンフュージョンレストランであるレストラン206のベクトル値は、(0.5、0.5)のように表される。図2Bは、本発明の実施形態にかかる例示的な空間データ構造を図示する図を提示している。図2Bに示される例において、空間データ構造210は、地理的位置に関するものであり、空間データ構造210におけるベクトルの水平成分及び垂直成分は、それぞれ、項目の緯度及び経度である。レストラン202、204及び206は、空間データ構造210における異なるベクトルによって表される。
【0021】
空間データ構造における項目を配置することの1つの利点は、図2Aにおけるケージ212及び図2Bにおけるケージ214等の空間構造内の「ケージ」を配置することにより、システムがここで推薦計算を加速することができるということである。ケージの形状は、ユーザ又は推薦システムのいずれかによって任意に定義されることができる。ケージの境界内の項目のみが推薦計算において考慮されている。図2Aに示される例において、システムは、ユーザの嗜好が(ケージ212によってマーキングされた)所定範囲内で中華−イタリアンフュージョンを含む旨を(所定のユーザ嗜好モデルに基づいて)判定し、その範囲内に含まれる中華−イタリアンベクトルを有するレストランについての推薦計算のみを実行することができる。他の種類のレストランは、推薦計算のために考慮される必要はない。同様に、システムは、ユーザが(ケージ214によってマーキングされた)所定の地理的境界内のレストランにのみ興味がある可能性がある旨を(ユーザの現在位置及びその他の制約に基づいて)判定し、そのような地理的境界内のレストランについて推薦計算を実行することができる。
【0022】
そのベクトル値を使用した各項目ベクトルの索引付けに加えて、1つ以上の項目ベクトルを含む各セグメントによって多数のセグメントに空間データ構造を分割することもまた可能である。そして、項目は、対応するセグメントの索引を使用して索引付けすることができる。図2A及び図2Bに示される例において、グリッド線のセットは、セル216及びセル218等の多数のセルに空間データ構造を分割するために使用されることができる。各セルは、セル境界内に含まれるベクトル値を有する項目を含む。さらなる実施形態において、各セルは、水平及び垂直索引を有することができる。例えば、セル216は、3の水平索引及び3の垂直索引を有することができる。なお、空間データ構造は、必ずしもセルのグリッド構造を有する必要はないが、より一般的には、セルのグラフ構造を包含することができることに留意すべきである。特定のセグメント方法に関係なく、セグメントの1つの目的は、空間的に近似された項目の効率的な取り出しを可能とすることである。例えば、図2A又は図2Bに示されるもの等のグリッド状の空間データ構造において、関心のある特定のセルの近くのセルは、関心のあるセルの索引から1を加算又は減算することによって容易に取り出されることができる。この動作は、より離れたセルに関連する項目を探索することなく完了することができる。
【0023】
なお、説明の簡略化のために図2Aにおける2次元の例を使用していることに留意すべきである。実際には、空間データ構造は、より多くの(3、4、5、・・・等の)又はより少ない次元を有することができる。
【0024】
再度図1を参照すると、項目の特性評価及び項目に関連付けられた空間構造の生成を含むオフラインプロセスに加えて、推薦システム100は、リアルタイムの情報フローを含む。より具体的には、活動検出モジュール112は、ユーザの活動、関心又はユーザの現在及び/又は将来の活動及びプロセスに関連する他の関心のある状態をリアルタイムで検出し、到来イベントがユーザの行動及び関心に関する高レベルの主張を生成するために流れる。1つの実施形態において、活動検出モジュール112は、活動検出器114、116及び118等の複数の活動検出器を含む。活動検出器は、ユーザに関連付けられたモバイル機器上にある各種センサからGPS追跡、加速度計出力、アプリケーションにおけるボタン選択、画面キャプチャ等の低レベルのユーザ活動追跡を受信する責を負う。活動検出器は、さらに、検出されたユーザコンテキストに基づいてユーザの行動及び関心に関するより高レベルのイベントや主張を生成することができる。より高レベルのイベントは、例えば、ユーザが電子メールを読むこととすることができる。より高レベルの主張は、例えば、作業するために電車に乗ってユーザが電子メールを読むことを好むこととすることができる。
【0025】
ユーザの行動及び関心の高レベルのイベント又は主張は、コンテキストグラフを生成又は変更するコンテキストグラフ生成部122に送信されることができる。コンテキストグラフは、ユーザの行動及び関心に関する事実及び主張を記憶するインメモリモデルである。図3は、本発明の実施形態にかかる例示的なコンテキストグラフを提示している。図3に示される例において、コンテキストグラフ300は、アジアン、アメリカン又はヨーロピアン等の料理の様々なスタイルについてのユーザの嗜好を記述する。エッジに隣接する数は、ユーザの嗜好の重みである。グラフは、ユーザが、アジアン料理の中で、中華、ベトナム又はタイ料理について異なる嗜好を有することができることを示している。1つの実施形態において、クライアント・サーバシステムは、コンテキストグラフを生成するために使用されることができる。例えば、(ユーザのモバイル機器上にある)クライアントは、コンテキストグラフを生成又は変更するようにイベント情報を分析するリモートサーバに対してユーザの行動及び関心に関するより高レベルのイベント又は主張を送信する。
【0026】
そして、コンテキストグラフは、ユーザモデル128、130及び132等の多数のユーザモデルを含む混合モデル推薦部126に送信される。コンテキストグラフに含まれるパラメータは、複数のユーザモデルを更新するために混合モデル推薦部126によって使用されることができる。例えば、ユーザによって書かれたレストランのレビューに基づいて、ユーザの料理嗜好に関連付けられたコンテキストグラフが更新されてもよく、そして、更新されるべきユーザの料理嗜好を記述するユーザモデルにつながる。または、現在時刻及びユーザの位置に基づいて、コンテキストグラフ及びユーザモデルは、双方とも、更新されてもよい。例えば、外国に旅行しているユーザは、前にそのような料理についての強力な嗜好を表明していないかもしれないが、地元の料理を探求するように望むことができる。なお、コンテキストグラフに加えて、データベース又はインメモリ記憶装置等の他の種類の構造もまた、ユーザのコンテキストパラメータを記憶するために使用されることができることに留意すべきである。
【0027】
混合モデル推薦部126は、複数のユーザモデルに基づいて推薦計算を実行する責を負う。1つの実施形態において、混合モデル推薦部126は、空間構造生成部124から空間構造を受信し、空間構造がモデルの積極的表現をもたらすことができる推薦項目を含むモデルパラメータに基づいて判定する。例えば、ユーザの料理嗜好に関するユーザモデルについて、特性評価ベクトルにおける料理関連要素を含む空間データ構造が選択されることができる。なお、項目についての特性評価ベクトル内の要素は、(グループ間の重複の可能性を有する)複数のグループにグループ化されてもよいことに留意すべきである。要素の各グループは、ユーザモデル及び1つ以上のデータ構造に対応してもよい。
【0028】
動作時には、ユーザに対する項目のユーティリティは、ユーザモデル及び項目の特性評価ベクトルのパラメータに基づいて算出される。1つの実施形態において、ユーティリティは、全てのモデル出力の加重和として算出されることができる。各モデル出力は、モデルに含まれる全てのベクトル要素にわたるモデリング関数の和とすることができる。例えば、レストラン推薦を行うとき、ユーザの料理嗜好モデルは、料理関連モデルへの入力として特性評価ベクトル内の料理関連要素を使用することができる。位置モデル又は経済モデル等の他のモデルは、入力として特性評価ベクトル内の異なる要素を使用することができる。1つの実施形態において、ユーザモデルの出力は、数値を含むことができる。そして、異なるユーザモデルからの異なる出力は、ユーザに対して項目についてのモデル組み合わせスコアを生成するために組み合わされる。そして、項目は、数値スコアに基づいてランク付けされることができ、トップランクの項目が推薦としてユーザに提示される。
【0029】
なお、受信した空間データ構造における全ての項目についての計算ユーティリティ(又はモデル組み合わせスコア)の代わりに、1つの実施形態において、システムは、まず、ユーザモデルにおけるパラメータに基づいて特性評価ベクトルにおける要素についてのラフな境界を算出することによって各空間データ構造内の推薦項目のセットを組み立てることに留意すべきである。例えば、ユーザモデルへの空間データ構造の入力が地理的位置に関連している場合、システムは、ユーザの現在及び将来の位置に基づいてラフな境界を描くことができる。空間データ構造が料理関連である場合には、境界は、最小の「中華」ベクトル要素が0.5であり且つ最小の「アジアンフュージョン」ベクトルが0.7である中華−アジアンベクトル空間内の領域として定義されることができる。そして、システムは、そのような境界内の項目について空間データ構造を照会する。なお、セグメント化された空間データ構造について、照会は、はるかに高速に実行されることができることに留意すべきである。さらに、推薦項目のセット内の項目のみがユーティリティ関数計算に含まれる。時間がかかる可能性があるユーティリティの計算から他の全ての項目を排除することにより、本発明の実施形態は、加速された推薦処理を可能とする。
【0030】
推薦項目のセットを組み立てると、システムは、同時に、全ての関連する空間データ構造を照会し、その結果を組み合わせることができる。1つの実施形態において、照会の結果を組み合わせることは、全ての推薦項目セット間の共通部分を見出すことを含むことができる。例えば、レストランを推薦する際に、システムは、(料理関連ベクトル要素の異なるセットを含むことができる)多数の料理関連空間データ構造、位置ベースの空間データ構造及び経済価値ベースの空間データ構造を照会することができる。図2A及び図2Bに示される例において、(図2Aに示される)ケージ212によって定義された境界は、4つの項目を含む一方で、(図2Bに示される)ケージ214によって定義された境界は、2つの項目を含む。照会についての組み合わせ結果は、項目206等の2つのセットの境界内の2つのセットの項目間の交点としなければならない。なお、実際には、境界は、大きくすることができ、組み合わせ照会は、推薦項目の比較的大きいセットをなおももたらすことに留意すべきである。
【0031】
図4は、本発明の実施形態にかかる項目についての特性評価ベクトルを生成する例示的なプロセスを図示するフローチャートを提示している。動作中、システムは、項目に関連付けられた情報を収集する(動作402)。なお、項目に関連付けられているオンライン及びオフライン情報の双方を含む様々な種類の情報が収集されることができることに留意すべきである。例えば、項目がレストランである場合には、それ自身のウェブサイト上のコンテンツ及び様々なレビューウェブサイトにおけるカスタマーレビューが全て収集されることができる。1つの実施形態において、ウェブクローラは、情報を収集するために使用されることができる。そして、システムは、収集された情報を分析する(動作404)。情報の種類に基づいて、異なる分析器が使用されることができる。例えば、収集された情報がウェブ文書を含む場合には、エンティティ抽出機構は、文書から標準的な用語を抽出するために使用されることができる。分析に基づいて、システムは、特性評価ベクトルにおける要素についての値を割り当てることができる(動作406)。1つの実施形態において、値は、0と1.0との間の範囲内で正規化されたスコアとすることができる。さらなる実施形態において、そのような値は、手動で割り当てられてもよい。なお、特性評価ベクトルは、任意数の要素を有し且つ任意の項目を記述するために使用されることができる大量のベクトルとすることができることに留意すべきである。特性評価ベクトルにおける各要素は、項目の属性を測定するために使用されることができる。なお、ほとんどの項目について、それらの特性評価ベクトルにおける非常に多数の要素がゼロ値を割り当てられているが、特性評価ベクトルが有することができる要素数には制限がないことに留意すべきである。
【0032】
図5は、本発明の実施形態にかかる空間データ構造を生成するための例示的なプロセスを図示するフローチャートである。動作中、システムは、多数の項目についての特性評価ベクトルを受信し(動作502)、特性評価ベクトルから1つ以上の要素を選択する(動作504)。次に、システムは、特性評価ベクトルから選択されたベクトル要素を抽出することによって項目ベクトルの新たなセットを生成する(動作506)。各項目は、選択される1つ以上のベクトル要素を含む項目ベクトルによって表される。例えば、レストランについての一般化された特性評価ベクトルは、数百の要素とすることができる。しかしながら、中華−アジアンベクトル空間内のベクトルは、「中華」要素及び「アジアン」要素しか有しない。そして、項目ベクトルは、それらのベクトル値に基づいて異なるセルにグループ化される(動作508)。各セルは、境界を定義し、セル境界内に含まれる項目ベクトルを有する項目は、セル内に配置される。異なるセルに項目を配置することは、高速な照会を可能とする。
【0033】
図6は、本発明の実施形態にかかるユーザに対して推薦を行う例示的なプロセスを図示するフローチャートである。動作中、システムは、ユーザコンテキスト情報を受信する(動作602)。なお、ユーザコンテキスト情報は、ユーザに関連付けられたモバイル機器上に配置された多数のセンサによって検出される低レベルのユーザ活動追跡を含むことができることに留意すべきである。センサは、これらに限定されるものではないが、クロック、GPS、加速度計、温度センサ、光センサ、音センサ及び画面キャプチャラ等を含むことができる。ユーザコンテキスト情報は、さらに、低レベルの活動追跡から推定されたユーザの行動又は関心のより高レベルの主張を含むことができる。
【0034】
その後、システムは、受信したユーザコンテキストに基づいてユーザに関連付けられたコンテキストグラフを更新する(動作604)。そして、更新されたコンテキストグラフに含まれるパラメータは、ユーザモデルを更新するために複数のユーザモデル間で追加される(動作606)。なお、ユーザコンテキストにおける変更を反映するためにコンテキストグラフを使用することに加えて、規則ベースのシステム等の他のシステムはまた、ユーザモデルを更新するためにここで使用されることができることに留意すべきである。ユーザモデルの更新に続いて、システムは、ユーザモデルに対応する多数の空間データ構造を選択し、ユーザモデルのパラメータに基づいて空間データ構造についての境界を判定する(動作608)。なお、システムニーズに応じて、空間データ構造は、様々な次元を有することができることに留意すべきである。各ユーザモデルは、1つ以上の空間データ構造に対応することができる。境界は、対応するベクトル要素の値の許容範囲を定義する。境界に基づいて、システムは、推薦項目のセットを組み立てる(動作610)。1つの実施形態において、推薦項目のセットを組み立てるために、システムは、判定された境界内の項目についての複数の選択された空間データ構造を同時に照会した後、照会出力を組み合わせる。
【0035】
推薦項目のセット内の各項目について及び各ユーザモデルについて、システムは、(ユーザモデルについての入力として使用されることができるベクトル要素を含む)対応する項目ベクトル及びモデルパラメータに基づいてモデル固有スコアを算出する(動作612)。1つの実施形態において、モデル固有スコアは、(ユーザモデルパラメータに基づいて)項目ベクトル及びユーザ嗜好ベクトルに対して(ユーザモデルによって定義される)モデリング関数を適用することによって算出されることができる。例えば、ユーザモデルが異なる民族の料理についてのユーザの嗜好に関するものである場合には、レストランの項目ベクトルは、レストランの民族性を記述するために使用される要素を含むことができる。そして、モデリング関数の計算は、(レストランの民族性等の)抽出されたベクトル要素及び(様々な民族の料理についてのユーザの嗜好等の)対応するユーザモデルパラメータを含む。1つの実施形態において、モデリング関数は、特性化ベクトルにおける要素と抽出された全てのベクトル要素にわたる対応するユーザ嗜好との積の合計であるドット積とすることができる。例えば、レストランが0.5の値を有する「中華」ベクトル要素と0.7の値を有する「アジアンフュージョン」ベクトル要素とを有し、中華料理及びアジアンフュージョン料理についてのユーザの嗜好レベルが、それぞれ、0.3及び0.1である場合には、中華−アジアンフュージョン料理モデル(モデルは、中華要素及びアジアンフュージョン要素の2つの要素のみを考慮する)の出力は、以下のように算出されることができる。0.5×0.3+0.7×0.1=0.22。ユーザモデルの出力は、ユーザに対する項目についてのモデル固有スコアである。1つの実施形態において、ユーザモデルの出力は、単一の数値を含む。
【0036】
その後、各項目について、システムは、モデル組み合わせスコアを生成するために全てのユーザモデルのモデル固有スコアを組み合わせる(動作614)。この組み合わせスコアは、混合モデル出力である。1つの実施形態において、この組み合わせスコアは、全てのモデル固有スコアの加重和である。例えば、レストランの推薦を行う際に、システムは、混合モデル出力を生成するために料理・民族モデル、位置モデル及び経済モデルを組み合わせることができる。各モデルは、ユーザによって手動で入力されることができる又は観察されたユーザ行動に基づいてシステムによって自動的に割り当てられることができる重みを割り当てられることができる。例えば、位置モデルは、ユーザが料理の種類よりも迅速にレストランに到着することについてより懸念している場合には、料理・民族モデルよりも高い重みを受けることができる。同様に、経済モデルは、ユーザがタイトな予算である場合には、最高の重みを受けることができる。推薦項目のセット内の全ての項目についての混合モデル出力を算出することに続いて、システムは、それらのモデル組み合わせスコアに基づいてこれらの項目をランク付けし(動作616)、ユーザに1つ以上のトップランクの項目を推薦する(動作618)。
【0037】
一般に、提示された本発明の実施形態は、一般的で高速応答の推薦システムを提供する。より具体的には、推薦計算は、利用可能な全ての項目のサブセットである推薦項目のセットを予め選択することによって加速されることができる。さらに、項目は、各空間データ構造がデータベースに記憶された情報の異なるファセットを取り込む多数の空間データ構造に配置されている。推薦項目のセットを予め選択する場合、複数の空間データ構造は、組み合わされた結果を生成するために使用されることができる。プロセスをさらに加速するために、空間データ構造はまた、項目ベクトルが、それらのベクトル値に基づいて、これらのセルに記憶された異なるセルにセグメント化されることができ、したがって、より高速に空間データ構造に照会するのを可能とする。
【0038】
図7は、本発明の実施形態にかかるユーザに対する推薦を提供するための例示的なコンピュータシステムを図示している。1つの実施形態において、コンピュータ及び通信システム700は、プロセッサ702と、メモリ704と、記憶装置706とを含む。記憶装置706は、推薦アプリケーション708とともに、アプリケーション710及び712等の他のアプリケーションを記憶する。動作時には、推薦アプリケーション708は、記憶装置706からメモリ704にロードされ、プロセッサ702によって実行される。プログラムの実行時に、プロセッサ702は、上述した機能を実行する。コンピュータ及び通信システム700は、任意のディスプレイ714、キーボード716及びポインティングデバイス718に接続される。
【0039】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び/又はデータを記憶することができる任意のデバイス又は媒体とすることができるコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(ディジタル多用途ディスク若しくはディジタルビデオディスク)等の磁気及び光記憶装置、又は、現在既知の又は後に開発されるコンピュータ読み取り可能な媒体を記憶可能な他の媒体を含む。
【0040】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようにコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び/又はデータとして具体化されることができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び/又はデータを読み取って実行すると、コンピュータシステムは、データ構造及びコードとして具体化されてコンピュータ読み取り可能な記憶媒体内に記憶された方法及びプロセスを実行する。
【0041】
さらにまた、本願明細書に記載された方法及びプロセスは、ハードウェアモジュール又は装置に含まれることができる。これらのモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定の時間に特定のソフトウェアモジュール若しくはコードの一部を実行する専用又は共有プロセッサ、及び/又は、現在既知の又は後に開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、それらは、それらの内部に含まれる方法及びプロセスを実行する。
図1
図2A
図2B
図3
図4
図5
図6
図7