JP2009505290A - 集合の類似性に基づく拡張性に富むユーザクラスタリング - Google Patents

集合の類似性に基づく拡張性に富むユーザクラスタリング Download PDF

Info

Publication number
JP2009505290A
JP2009505290A JP2008527069A JP2008527069A JP2009505290A JP 2009505290 A JP2009505290 A JP 2009505290A JP 2008527069 A JP2008527069 A JP 2008527069A JP 2008527069 A JP2008527069 A JP 2008527069A JP 2009505290 A JP2009505290 A JP 2009505290A
Authority
JP
Japan
Prior art keywords
user
data processing
interest
computer program
users
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008527069A
Other languages
English (en)
Other versions
JP2009505290A5 (ja
JP5230421B2 (ja
Inventor
メイヤー・デイター
アシャトッシュ・ガーグ
Original Assignee
グーグル・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by グーグル・インコーポレーテッド filed Critical グーグル・インコーポレーテッド
Publication of JP2009505290A publication Critical patent/JP2009505290A/ja
Publication of JP2009505290A5 publication Critical patent/JP2009505290A5/ja
Application granted granted Critical
Publication of JP5230421B2 publication Critical patent/JP5230421B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ユーザのクラスタリングを可能にする方法および装置であって、システムおよびコンピュータプログラム製品を含んでおり、そこでは、ユーザは各々品目を表わす要素からなる集合で表わされる。ある態様では、プログラムは、複数ユーザの各々についてそれぞれの興味集合を取得するように動作し、各興味集合はそれぞれのユーザが興味を示した品目を表わし、ユーザの各々についてそれぞれの興味集合のk個のハッシュ値を決定するように動作し、第iのハッシュ値は対応する第iのハッシュ関数の最小値であり、そして複数ユーザの各々をそれぞれのユーザに対して確立されたそれぞれのk個のクラスタの各々に割り当てるように動作し、第iのクラスタは第iのハッシュ値により表わされる。ユーザの各々についてのk個のクラスタへの割り当ては、その他のどのユーザについてのk個のクラスタへの割り当てにも無関係に実行される。

Description

本発明はデジタルデータ処理に関し、より詳細にはコンピュータアプリケーションまたはシステムのユーザ(user)をクラスタ(cluster)にグループ分けすることに関する。
ユーザをクラスタにグループ分けすることは様々な目的で行われる。ユーザの個人性への適合化を達成するため、例えば、既知の技術の1つである協調フィルタリング(collaborative filtering)は、ユーザをクラスタリングすることおよびユーザにそのユーザクラスタ中の他のユーザが興味を示した品目(item)を推奨することを含む。通常、例えば、ある品目をクリックした、それを購入した、またはそれを買い物カゴに入れた等の様々な様子から、ユーザはその品目に興味を示したとみなされてよい。推奨は様々な形をとることができ、例えば、ユーザに検索結果の一部として提示する、ユーザが読みたいかもしれないニュース記事として示す、ユーザが購入したいかもしれない品目を特定する、等々、がある。
J. Deans and S. Ghemawat, MapReduce: Simplified Data Processing on Large Clusters, Proceedings of the 6th Symposium on Operating Systems Design and Implementation, pp.137-150 (December 6, 2004) Charikar, Similarity Estimation Technique from Rounding Algorithms, 34th ACM Symposium on Theory of Computing, May 19-21, 2002, Montreal, Quebec, Canada
ユーザのクラスタリングを達成する1つのやり方は、2ユーザ間の距離測度を定義し、次にk平均法(k-means)または階層的凝集型クラスタリング(hierarchical agglomerative clustering、HAC)等の既知のクラスタリングアルゴリズムを使用して彼らをクラスタリングすることである。しかし、そのような技術には欠点がある。例えば、HACは実行時間がO(n2)であり、数億になるnの値については手に負えず、またk平均法アルゴリズムではデータ点の平均値を提示する必要があるが、これはデータ点が集合の場合、不可能である。
本発明は、特定の実施では、拡張性に富むユーザのクラスタリングを提供することができ、そこでは、各ユーザは品目母集団からの品目を表す要素からなる集合で表わされる。
例えば、コンピュータシステムとの相互作用を通してユーザが選択できる品目の母集団が与えられたとき、各ユーザは品目の部分集合それぞれへの彼らの興味を様々な行動によって表現してもよく、それは、品目をクリックする、品目を購入する、品目を買い物リストに追加する、品目を眺める、等々である。本発明の特定の実施では、同じクラスタ中のユーザは彼らそれぞれの品目部分集合間に大きい重なりを有する可能性が大きいやり方で、ユーザをクラスタリングする(すなわち、ユーザをクラスタに割り当てる)。
ある態様では、本発明の実施によるコンピュータプログラム製品は、データ処理装置に、複数ユーザの各々についてそれぞれの興味集合を取得させることができ、各興味集合はそれぞれのユーザがデータ処理システムとの相互作用を通して興味を示した品目を表わし、本製品はまた、データ処理装置に、複数ユーザの各々についてそれぞれの興味集合のk個のハッシュ(hash)値を決定させることができ、第iのハッシュ値は対応する第iのハッシュ関数の下でのそれぞれの興味集合中の最小値であり、iは1とkの間の整数であり、kは1以上の整数であり、本製品はさらに、データ処理装置に、複数ユーザの各々をそれぞれのユーザについて第iのクラスタは第iのハッシュ値によって表わされるように確立されたそれぞれのk個のクラスタの各々に割り当てさせることができ、複数ユーザの各々のk個のクラスタへの割り当ては他のどのユーザについてのk個のクラスタへの割り当てとも無関係に行われる。
好適な実施は以下の特徴の1つ以上を含むことができる。本製品は、データ処理装置にユーザの興味を表わす動作をログに記録させるようにでき、また複数ユーザについての興味集合を生成するためそのログを使用させることができる。
本製品は、データ処理装置に、複数ユーザ中の第1のユーザについて変化のあった興味集合を取得させることができ、第1のユーザについて変化のあった興味集合を使用してk個のハッシュ値を決定させることができ、そして第1のユーザを、変化のあった興味集合を使用して決定されたk個のハッシュ値によって表わされるそれぞれのk個のクラスタの各々にのみ、他の複数ユーザのクラスタへの割り当てを変化させることなく、割り当てさせることができる。
別の態様では、本発明の実施によるコンピュータプログラム製品は、データ処理装置に、あるユーザについて興味集合を取得させることができ、その興味集合はそのユーザがデータ処理システムとの相互作用を通して興味を示した品目を表わす。本製品はまた、データ処理装置に、興味集合のk個のハッシュ値を決定させることができ、第iのハッシュ値は対応する第iのハッシュ関数の下での興味集合中の最小値であり、iは1とkの間の整数であり、kは1以上の整数である。本製品はさらに、データ処理装置に、ユーザをk個のクラスタの各々に割り当てさせることができ、第iのクラスタは第iのハッシュ値により表わされる。
好適な実施は以下の特徴の1つ以上を含むことができる。興味集合はm個の要素を持っており、第iのハッシュ値は一方向ハッシュ関数をm回適用したときの最小値であり、ここで、m回適用の各々は第iシード値(seed value)と興味集合のm個の要素のそれぞれの1つをハッシュする。本製品は、ユーザのための協調フィルタリングを実行するために、データ処理装置にk個のユーザクラスタを使用させることができる。
別の態様では、本発明の実施によるシステムは、データ処理システムを使用する複数ユーザにより選択された品目のログと、複数ユーザの各々をk個(ここでkは1以上の整数)のクラスタに割り当てるために指紋(fingerprint)関数および品目のログを使用する手段と、k個のクラスタの1つ以上への第1のユーザの割り当てに基づいて複数ユーザ中の第1のユーザに情報を提供できる協調フィルタリングのコンピュータプログラムアプリケーションとを含む。
好適な実施は以下の特徴の1つ以上を含むことができる。その情報は推奨、予測、またはランク付けの少なくとも1つを含む。
別の態様では、本発明の実施によるコンピュータプログラム製品は、データ処理システムのユーザを同定するために、データ処理装置にk個の要素からなる順序集合を使用させることができ、kは1より大きい整数であり、k個の要素の各々は興味集合中の要素に対応し、興味集合中の各要素はデータ処理システムを使用するユーザによる行動を通してユーザが興味を示した品目を表す。
好適な実施は以下の特徴の1つ以上を含むことができる。本製品は、ユーザについての協調フィルタリングの実行においてユーザを同定するために、データ処理装置にk個の要素からなる順序集合を使用させることができる。協調フィルタリングは、ユーザへの品目の推奨またはユーザへの品目のランク付けを含むことができる。本製品は、データ処理装置に、再編された興味集合を生成するためにデータ処理システムがその入力に応えて興味集合から要素を除去するような入力を、ユーザから受信させることができ、本製品はまた、データ処理装置に、k個の要素からなる再編された順序集合を決定させることができ、k個の要素の各々は再編された興味集合中の要素に対応しており、本製品はさらに、ユーザを同定するために、データ処理装置に、k個の要素からなる初期の順序集合ではなく、k個の要素からなる再編された順序集合を使用させることができる。k個の要素からなる順序集合は、k個のユーザクラスタの各々に属するものとしてユーザを同定する。本製品は、データ処理装置に、ユーザの興味を表す行動をログに記録させ、またユーザについての興味集合を生成するためにログを使用させることができる。データ処理システムはウェブサイトを含み、またユーザについての興味集合は、ユーザがウェブページでクリックした品目、ユーザがオンライン小売店から購入した品目、ユーザが買い物カートに追加した品目の1つ以上の表現を含む。品目への興味を表すユーザによる行動は、興味を暗に示す行動を含む。品目への興味を表すユーザによる行動は、興味を陽に示す行動を含む。ユーザはユーザのログオンによって同定される個人である。ユーザはクッキーによって同定される個人である。ユーザは観測される属性が共通する1人以上の個人であり、その属性は1人以上の個人の各々によりデータ処理システムに提示される属性である。ユーザはデータ処理システムと相互作用する個人のセッションである。興味集合中の各要素は、データ処理システムとの相互作用においてユーザが選択した品目である。
さらに別の態様では、本発明の実施は先述のプログラムおよびシステムに対応する方法、ならびに先述のシステムに対応するプログラムを含むことができる。
本発明は、以下の長所の1つ以上を実感するように実施することができる。クラスタリングの計算が拡張性に富む。計算は数億人の個々のユーザによって使用されるアプリケーションについて実行可能であり、個々のユーザは、数十、数百またはそれ以上の品目を彼らの興味集合中に表示させることができる。クラスタリングされたエンティティが品目の母集団の部分集合で表される場合、クラスタリングは実行可能である。母集団が予め定義される必要は無い。クラスタリングは集合の類似性測度に基づく。新しいユーザのクラスタリングは既存のクラスタリングを変更することなく行われる。あるユーザのクラスタリングは、他のユーザがどうクラスタリングされたかまたはクラスタリングされつつあるかを考慮せずに行われる。しかし、例えば、シード値または順列(permutation)等の幾つかの広域的値は、クラスタリング間で共有されてもよい。例えば、品目の選択を実効的に廃棄または追加する等、選択を変更することにより、ユーザは彼らが割り当てられたクラスタを変更することができ、その場合、クラスタはその後計算または再計算される。新しいユーザまたは興味集合を修正したユーザがどのクラスタに属するかは、他のユーザからのデータを使用することなく計算可能である。クラスタリングの計算は、個人であるユーザのクラスタリングに限定されない。クラスタリングは、例えば、各ユーザが個人であるか、各ユーザが個人の集団であるか、各ユーザがシステムとの相互作用であるか、またはそれらの何らかの組合せであるかに関わらず、効率的に実行可能である。
本発明の1つ以上の実施形態について、添付の図面および以下の記述において説明する。本発明のその他の特徴および長所はそれらの記述、図面、および特許請求の範囲から明らかとなろう。
図面を通して、同じ参照番号および記号表示は同じ要素を示すものとする。
図1は、ユーザをクラスタリングするミンハッシュ(minhash)法に関する以下の論理的説明を図示したものである。本方法は実施可能であるが、ここでは説明の目的から原理を示すことにする。膨大な数のユーザを持つシステムにおいてユーザをクラスタリングする実際的な実施については後ほど図2を参照して説明されよう。
図1に示すように、ミンハッシュ法への入力は、Uで示される品目母集団110と、p1, p2, ..., pkで示されるk個の順列からなる集合112と、ユーザAについてX_Aで示されるユーザの興味集合114とである。
順列はU上の順列であり、各順列は他の順列と同等に選択されるようU上の全ての順列の集合から均等に選ばれる。順列は各々UからUへの1対1写像(全単射)である。そのような順列はUが固定しておりかつ可算である場合のみ実現可能である。整数kは選択可能なパラメータである。一般にkの値は5から10の範囲であろう。しかし、それは1またはそれ以上の任意の整数であってよい。本方法はユーザにk個のクラスタを割り当てよう。これらをC1, ..., Ckで示す。順列が選択されユーザのクラスタへの割り当てに使用された後では、順列が変更された場合、全てのクラスタリングは再計算されなければならない。
興味集合は母集団Uからの品目を表す要素からなる集合である。要素が品目それ自体である今説明中の用法では、興味集合は母集団Uからの品目のユーザによる選択の集合、X_A、である。これらは先述のようにして選択できる。本明細書での便宜のため、用語「品目(item)」は、興味集合の要素かまたはユーザによる実際の選択かを指すことができるが、その意味は文脈から明らかであろう。
このデータを使用して、ユーザについてk個、各順列について1個のハッシュ値が決定される(ステップ120)。順列piについて、ハッシュ値をhi(X_A)で示す。順列piについてのハッシュ値は、順列piの下でのX_Aからの最小要素、すなわちミンハッシュ値である。その最小値は、要素の値から、またはUの順序付けから決定することができる。
各ミンハッシュ値はクラスタの識別子の役を果たし、ユーザはクラスタの各々へ割り当てられる。ユーザはk個のクラスタに属し、第iのクラスタは第iのミンハッシュ値によって同定される。このようにして、所与の順列piについて、2つのユーザは、この順列の下での興味集合のミンハッシュ値が同じであり、かつその場合のみ、同じクラスタに属する。
各データ要素にハッシュ値を対応付けるこのミンハッシュ技術は、ローカリティセンシティブハッシング(locality sensitive hashing、局所性に敏感なハッシング)技術と呼ばれるクラスの技術の1つであり、これは2つのデータ要素は2つのデータ要素間の類似性に直接比例するある確率で同じハッシュ値を有するという望ましい特性を有する。現在のケースでは、2人のユーザA、B(それらの興味集合X_A、X_Bで表される)間の類似性は、(X_AとX_Bの積集合)の大きさを(X_AとX_Bの和集合)の大きさで除したものと定義され、そこで、ミンハッシュ技術は、2人のユーザAとBについてのミンハッシュ値が同じである確率(使用される実際の順列がそこから選ばれる順列集合上で定義される)は、以上で定義した類似性測度に等しいという特性を有する。こうして、ミンハッシュ法は、ユーザ達は彼らの類似性に等しい確率で同じクラスタに落ち込むという、確率的クラスタリングを達成する。
k個のクラスタが同定される(ステップ122)ので、2人のユーザが同一クラスタ中にある確率がp(0≦p≦1)の場合、あるクラスタリングでは彼らは同じクラスタに割り当てられなかったとしても、割合pのクラスタリングでは彼らは同じクラスタに割り当てられよう。これは、各ユーザはk個の異なるクラスタリングに均等に属し、各クラスタリングについては他の類似したユーザと同じクラスタに割り当てられるという平滑作用を与える。パラメータkは効率(小さいkはより高い効率を与える)と品質(大きいkはより高い品質を与える)との間のトレードオフを最適化するように選択されるべきである。厳格に必然というのではないが、数値kは通常定数であって、10程度の小さい値でよい結果が得られる。
このミンハッシュクラスタリング法は、非常に拡張性に富んでおり、また幾つかの他の長所を有する。例えば、本方法の実行時間はデータの大きさ(すなわち、(user, item)対(pair)の総数)に比例する。
また、各ユーザは個々に、すなわち、他の全てのユーザとは独立にクラスタリングされる。これは四六時中ユーザが追加され、抹消され、そして更新されるウェブ領域においては特に興味深い。これに伴う長所は、従来のクラスタリングアルゴリズムでは困難な幾つかのケースを容易にまた追加的に処理できることである。ユーザがスパム的(spammy)である、すなわち、クラスタリングを使用するシステムに影響を及ぼす目的で見せかけの興味を示していると判別された場合、そのユーザを他のどのユーザにも影響させずに、すなわち、残りのクラスタリングは不変のままで、抹消することができる。また、自分の選択を明かしてこなかったユーザがそれを明かそうと決心した場合、またはそのシステムに新しいユーザが追加された場合、他のユーザを再クラスタリングすることなく、そのユーザをクラスタに追加することができる。最後に、ユーザが自分のプロフィールを、自分の興味集合を事実上編集することにより変えようと決心した場合、そのユーザについてのクラスタリングを、バッチ処理による更新とは対照的に、実時間で更新することができ、これを考慮に入れると、他のどのユーザのクラスタリングにも影響を与えない。
図2は、数億に上る膨大な数のユーザを有し、また各ユーザの興味集合中に、事実上または現実上可算でない品目母集団上で、数百以上の品目を有することもあるシステムにおいて、ユーザをクラスタリングする実際的な実施を示す。この実施はMapReduceプログラミングモデルおよび技術を使用するが、これについては後で説明する。
この実施への入力は、記号Dで示される、特別な秩序もなく蓄積されたデータ要素(例えば、結果のクリックログ、購入ログ等)の寄集め(collection)210と、s1, s2, ..., skで示されるk個のシード値からなる順序集合と、指紋関数214とである。各データ要素は、特定のユーザ(user)がある品目(item)に興味を示したことを示す(user, item)対と考えることができる。オプションとして、そのユーザがそのように行動した頻度を把握するために、そのデータ要素がそのユーザが興味を示した第1、第2等々の事例に言及するかどうかを示すサフィックスを、品目の原形に付すことができる。好都合なことに、品目の形式はテキスト列であり、そのため、任意のウェブアプリケーションを通しての、すなわち、ユーザにユーザインタフェースを提示するウェブブラウザを使用する任意のアプリケーションを通しての、興味を表すどのようなユーザ行動も、そのような品目は容易に表現することができる。
興味を表すユーザ行動は、明白であることもあり、例えば、ユーザの興味を知らせる情報を、オンライン質問表への回答の形等でユーザがシステムに与えるとき、または暗黙的であることもある、例えば、ニュースサイトで読むニュース記事をユーザが選択するとき。
k個のシード値s1, s2, ..., skは、例えば、2進表現でのビットが「0」、「1」均等で、ランダムに見えるように選ばれたビット列と考えられる数である。
指紋関数はシード値および(興味集合からの)品目を、例えば、64ビットまたは128ビットの、大きい数に写像する。
ある実施では、シード値はUNIX(登録商標)のrand関数を使用して生成され、k個の32ビット整数値を生成する。rand関数は、1個のシード値の生成に1度以上呼び出さなければならないかもしれない。この実施では、指紋関数はMD5一方向ハッシュアルゴリズムを実装しており、品目(これは一般にテキスト列または2進データであろう)と連結したシード値をハッシュして128ビットの値を作る。
シード値と指紋関数は、図1を参照して説明したk個の順列p1, ..., pkに論理的に対応しており、品目の可算母集団を必要とせずに、品目の順序付けと順列を提供する。
寄集めDはマップリデュース(MapReduce)の枠組みを使用して処理される。これについては後で説明する。
mapフェーズ220では、各(user, item)対について、key=userかつvalue=itemとした(key, value)対が分散的に出力される。
reduceフェーズ222では、同じkey(user)を有するような全ての(key, value)対が集められて、reduceルーチンに与えられ、これは各々の個別のkey(user)について1度、分散的に実行される。
(特定のユーザについて)reduceルーチンはそのユーザの興味集合中の全ての品目を処理する。これの説明のため、これらのm個の品目をi1, i2, ..., imで示す。各シード値siについて、reduceルーチンは、品目とシード値の指紋、すなわち、fingerprint(si, il)、であるm個(各品目について1つ)の値を計算する。m個の品目についてのこれらのfingerprintの最小値が計算され、それが第iのシードsiに対応する第iのミンハッシュ値となる。
ユーザは、このようにして算出されたk個のミンハッシュ値によって表わされる。これらは、そのユーザが属するk個のクラスタを表現し、そのユーザはこれらのクラスタに割り当てられたと称される。
図3に示すように、推奨者コンピュータプログラムアプリケーションは、本明細書で説明される任意の方法で生成されるユーザクラスタを使用してよい。
ある実施では、システムはユーザによってなされた選択をログに記録する(ステップ310)。そのログは、ディスク駆動装置またはファイルサーバに、例えば、無構造のテキスト行または構造化されたデータベース中のレコード等、どのような形式で蓄積されてもよい。システムは、検索結果、広告、購買選択、そのサイトの内部または外部のページへの単純なリンク、またはその他の品目、をサービスするウェブサイトであってよい。ログされた選択は、そのシステムのユーザによってなされた全ての選択であってもよいが、そうである必要もない。例えば、アプリケーションは全サイトというよりはニュースサイトのみの選択に、または示された全品目というより購買目的の品目のみの選択に、興味を持っているのかもしれない。さらに、システムは、種々の推奨者アプリケーション用の異なる種類の複数の選択ログを保持することができ、推奨者アプリケーションはそれら自身のそれぞれのユーザのクラスタリングを計算できる。例えば、シードおよびfingerprint関数を使用する方法では、別個のクラスタリングの各々はそれ自身の別個のシード列およびfingerprint関数を持つことができる。
システムは、ユーザ登録とログオンにより、クッキーによるかまたは他のやり方で個人をユーザとして判別可能である。オプションとして、もし個々のユーザに関する情報をシステムとの相互作用の複数セッションに跨って保持することが望ましくない場合は、システムは、ユーザセッションをクラスタリング目的用のユーザとして扱うことができる。クッキーをセッションの維持に使用することもできる。(クッキーは、サーバによってウェブブラウザへ送られ、その後ブラウザによってサーバへのアクセスの都度送り戻されるパケット型の情報である。)オプションとして、システムは、ロギングに参加するか否か、すなわち、自分自身を選択のロギングに含めるか除くかを、個人が決定できるようにできる。
オプションとして、システムは、ユーザとしてシステムと相互作用する個人のある属性または属性の組合せを処理することができる。属性はシステムによって観測できてもよく、例えば、使用されるIP(インターネットプロトコル)アドレスまたは使用される言語、または個人が提供する情報、例えば、住所の都市または国、またはシステムが提供するサービスへの加入であってもよい。こうして、例えば、システムはクパーティノからの個人を一ユーザとして、またレドモンドからの個人を別のユーザとして処理することもできよう。そのような寄集め型のクラスタリングの利点は、ログインまたは登録を要求することなく、システムのある程度の個人性への適合化が可能になることである。さらに、オプションとして、システムは全ての種類のユーザ、例えば、個人または集団を、同じクラスタに一緒にクラスタリングすることもでき、または別の種類のユーザについては別のクラスタを確立することもできる。
システムのユーザが行う選択は、単純な選択であることができ、またはオプションとして、複合的な選択であることができる。複合的な選択は一連の選択であり、例えば、第1のウェブページへナビゲート(navigate)し、それから直接に第2のウェブページへナビゲートする一連のナビゲーションである。ウェブページはリソース、通常はHTML(Hypertext Markup Language、ハイパーテキストマークアップ言語)文書、であり、ウェブサーバによってウェブブラウザにサービスされる。ウェブサーバは、通常はネットワークを介して受信されるHTTP(Hypertext Transfer Protocol、ハイパーテキスト転送プロトコル)要求を受け付けるコンピュータプログラムであり、要求者に対してHTTP応答を与える。HTTP応答は通常HTML文書を含むが、テキストファイル、動画、または何らかのその他のタイプの文書であってもよい。
ログされた選択に基づいて、ユーザは各々k個のクラスタに割り当てられる(ステップ312)が、これについては本明細書の別の箇所で説明されている。このユーザのクラスタリングは、システムに新しいユーザが現れたとき、および選択がログに追加または除去されたときに、更新することができる。オプションとして、ある状況では必ずしも全てのユーザがk個のクラスタに割り当てられるとは限らない。そのような状況では、特定のユーザへの推奨を見つけるために、1個以上でk個より少ないクラスタ識別子を取得することができる。例えば、一連の選択を持つ新しいユーザに推奨を提供する要求をシステムが受けると、オプションとして、システムはそれらの選択を使用して第1のクラスタの識別子を計算し、推奨を見つけるためにそれを使用し、続けて第2のクラスタを同様に計算して使用し、等々、システム定義による十分な数の推奨が見つかるまで続けることができる。
推奨者アプリケーションは次いで、特定ユーザへの推奨を行うためにそのユーザのクラスタを使用することができる(ステップ314)。各ユーザの単一クラスタへのグループ分けに基づいて推奨を行うどのような方法も、本明細書で説明された複数クラスタとともに使用することができる。例えば、そのような方法はk回適用可能であり、そのユーザについての推奨品目の和集合を得るためにk個の結果がマージされる。あるいは、ある品目が出現する結果の数をその品目のランク付けに使用することができる。または、ユーザに多様な推奨を提供するために、クラスタに基づく推奨結果の各々から若干ずつの品目をそのユーザに提供することができる。ユーザが割り当てられた複数のクラスタは、システムを使用する際にユーザが持った様々な種類の興味を反映しているかもしれず、そこでユーザにそのような多様な推奨を与えることは、単一のクラスタが使用された場合より、推奨がユーザのそのときの興味に触れる何かを含む可能性を高めることになる。
推奨者アプリケーションは協調フィルタリングの一例であり、本明細書で説明されたユーザのクラスタリングの方法は別の種類の協調フィルタリングにも同様に適用することができる。協調フィルタリングでは現ユーザに類似のユーザが見つかり、かれらの嗜好または行動から現ユーザ向けのランク付け、推奨または予測が行われる。ユーザを複数のクラスタへグループ分けすることにより、システムは暗黙裡にユーザの嗜好を判別し、ユーザのグループ分けを通して品目をグループ分けする。
図4に概略的に示されるように、本明細書で説明されたユーザをクラスタに割り当てる技術は、ユーザ402a、402bに提示されるニュース記事の推奨を、それらのユーザによって以前になされた記事の選択に基づいて提供することができるニュース推奨エンジン410において実施することができる。ユーザ402a、402bは、彼等それぞれのブラウザを通し、例えば、ローカル、広域、または仮想プライベートネットワーク、もしくはインターネット等の通信ネットワーク404を介して、1つ以上のウェブサーバ430と通信する。ニュースサービス420は、サーバ(1つまたは複数)430に収容されたコンピュータプログラムとして実施され、ユーザの要求に応えてユーザ402a、402bにウェブページをサービスする。ニュースサービス420によってサービスされるページには、ユーザが1つまたは複数のニュースを選択してユーザのブラウザで表示できるページが存在する。ユーザの選択に応えて、ニュースサービス420はユーザが選択した記事をサービスする(機能424)。ニュース推奨エンジン410が特定ユーザについて推奨を提供した場合、そのユーザについての推奨に応じて、ニュースサービスはそのユーザによる選択のための記事を表示するページをサービスすることができる(機能422)。
ニュース推奨エンジン410はサーバ(1つまたは複数)430で実行されるコンピュータプログラムとして実施される。ニュース推奨エンジン410はニュースサービス420のユーザから選択を受信し、それらの選択をログ440にログする(機能412)。本明細書の別の箇所での説明のように、ログ440中の情報を使用して、エンジンはユーザをクラスタに割り当てる(機能414)。クラスタに割り当てられたいずれの特定のユーザについても、エンジンはそのユーザが割り当てられたクラスタに基づいて推奨を決定し(機能416)、それらの推奨をニュースサービス420に提供する。
特定のユーザについてなされる推奨の決定に際して、エンジンはその特定ユーザと同じクラスタ(1つまたは複数)に割り当てられた他のユーザによってなされた選択を考慮する。可能性のある推奨の中から、オプションとして、エンジンはユーザが既に選択したニュース記事を消去することができる。エンジンまたはサービスは、あるニュース記事がそのユーザが割り当てられたクラスタに割り当てられている他のユーザによって選択された回数、そのニュース記事がどの程度新しいものか、問題のニュース記事の主題に関する記事を有するソースの数、等の種々の基準に基づいて推奨をランク付けすることができる。このようにして、ニュースサービスはそのユーザに対して個人性に適合化されたニュース記事の提示およびランク付けを提供することができる。
ある実施では、ニュース推奨エンジン410はユーザを個人として同定しており、そこで個人性に適合化した推奨を得るべく、ユーザにログインし登録するよう要求する。別の実施では、本明細書の別の箇所での説明のように、ユーザを暗黙裡にまたは寄集めグループとして同定することができる。
その他の種類のサービス、例えば、動画、ブログ、または買い物情報等の選択を提供するサービスの個人性への適合化をサポートするために、推奨エンジンをこの線に沿って実施することができる。
図4では別モジュールとして示されているが、エンジンおよびサービスの機能はこのようなやり方で実施される必要はなく、特に、エンジンはサービスの実施の一部として実施することができる。
以下の段落では、MapReduceプログラミングモデルおよび大きいデータ集合を処理し生成するためのモデルの実装について説明する。モデルおよびそれのライブラリの実装をともにMapReduceと呼ぶものとする。MapReduceを使用して、プログラマは、key/value対を処理して中間key/value対の集合を生成するmap関数、および同じ中間keyに対応する全ての中間valueを1つにまとめるreduce関数、の仕様を定める。この関数スタイルで作成されたプログラムは自動的に並列化され、日用品的コンピュータの大集団(cluster)上で実行することができる。ランタイムシステムまたはフレームワークは、入力データを分割し、一連のマシーン全域でのプログラム実行をスケジュールし、マシーン障害を処理し、そしてマシーン間で必要な通信を管理するように実装することができる。
MapReduce計算は一連の入力key/value対を取り込み、一連の出力key/value対を生成する。ユーザはその計算を2つの関数、mapとreduceで表現する。
map、ユーザにより作成、は入力key/value対を取り込み、一連の中間key/value対を生成する。MapReduceライブラリは同じ中間key Iに対応する全ての中間valueをまとめてグループ化し、それらをreduce関数に渡す。
reduce関数、これもユーザにより作成、は中間key Iとそのkeyに対応する一連のvalueを受け取る。それはこれらのvalueを一緒にマージして、可能性としてはより小さ目のvalue集合を形成する。通常はreduceを呼ぶ度に0または1個の出力valueが生成される。中間valueはイテレータ(iterator)を通してユーザのreduce関数に供給される。このようにして、大き過ぎてメモリに収まらないvalueのリストも手に負えるようになる。
文書の大量集積について各語の生起回数を計数する問題を考えよう。ユーザは以下の擬似コードに似たコードを作成することになろう。
map (String key, String value):
// key: document name
// value: document contents
for each word w in value:
Emitlntermediate (w, "1") ;
reduce (String key, Iterator values):
// key: a word
// values: a list of counts
int result = 0;
for each v in values:
result += Parselnt (v) ;
Emit (AsString (result) ) ;
map関数は各語および対応する生起回数(この簡単な例では只の「1」)を併せて出力する。reduce関数は特定の語について出力された全ての回数を足し合わせる。
ある実施では、計算を実行するために、ユーザは入力ファイルおよび出力ファイルの名前とともに仕様目的ならびにオプションの調整用パラメータを記入するコードを作成する。ユーザはそこでMapReduce関数を呼び出し、それに仕様目的を渡す。ユーザのコードはMapReduceライブラリと併せてリンクされる。
上記の擬似コードは入出力が文字列であるとして書かれたものであるが、概念上はユーザが提供するmap関数およびreduce関数は関連したタイプを有しており、
map(k1, v1)→list(k2, v2)
reduce(k2, list(v2))→list(v2)
すなわち、入力keyおよび入力valueは、出力keyおよび出力valueとは別のドメインから引き出される。さらに、中間keyおよび中間valueは、出力keyおよび出力valueと同じドメインから引き出される。
MapReduceモデルについては多くの異なった実装が可能である。
以下の段落では、スイッチ機能付きイーサネット(登録商標)で相互接続された日用品的パソコンの大集団からなる計算環境を目標とする実装について説明する。この環境では、マシーンはマシーン当り通常2から4GB(ギガバイト)のメモリを有し、集団は数百または数千のマシーンを有し、外部メモリは個々のマシーンに装着された低廉なIDE(Integrated Drive Electronics standard)ディスクにより与えられ、これらのディスクは低信頼度のハードウェア上で可用性および信頼性を備えるために複製を使用するが、そこに蓄積されたデータを管理するために分散型のファイルシステムが使用され、ユーザはスケジューリングシステムにジョブを提出する。各ジョブは一連の仕事からなり、スケジューリングシステムのスケジューラによって、集団中の一連の利用可能なマシーンへと計画的に割り振られる。
mapの呼び出しは、入力データを一連のM個のスプリット(split)へ自動的に分割することにより、複数マシーンにわたって分散化される。入力スプリットを異なるマシーンにより並行処理することができる。reduceの呼び出しは、分割関数(例えば、hash(key)modR)を使用して中間key空間をR個に分割することにより分散化される。分割数(R)および分割関数はユーザが指定する。
ユーザプログラムがMapReduce関数を呼ぶと、以下の一連の動作が行われる。
1.ユーザプログラム中のMapReduceライブラリは、先ず、入力ファイルを1個当り(ユーザが制御可能な)通常16メガバイトから64メガバイト(MB)のM個へと分割する。それから、プログラムのコピー多数をマシーン集団上で起動する。
2.プログラムのコピーの内の1つはマスタ(master)である。残りは、マスタ(master)によって作業を割り付けられるワーカ(worker)である。割り付けるべきM個のmapタスクとR個のreduceタスクが存在する。マスタはアイドル状態(idle)のワーカを選び、各々にmapタスクまたはreduceタスクを割り付ける。
3.mapタスクを割り付けられたワーカは対応する入力スプリットの内容を読む。それは入力データからkey/value対を構文解析し、各対をユーザ定義のmap関数へ渡す。map関数によって生成された中間key/value対はメモリにバッファされる。
4.周期的に、バッファされた対は、分割関数によってR個の領域に分割(partition)されたローカルディスクへ書き込まれる。これらのバッファされた対のローカルディスク上の位置はマスタに戻され、マスタはこれらの位置をreduceワーカへ責任をもって転送する。
5.reduceワーカがマスタによってこれらの位置について知らされると、それは遠隔手順呼出しを使用して、バッファされたデータをmapワーカのローカルディスクから読み取る。全ての中間データを読み取ると、reduceワーカはそれを中間keyによってソート(sort)し、同一keyの全オカーレンス(occurrence)をグループにまとめる。通常多くの異なるkeyが同一のreduceタスクに割り振られるので、このソートが役に立つ。中間データの量が多過ぎてメモリに収まらない場合は、外付けのソートが使用される。
6.reduceワーカはソートされた中間データに対して繰り返し動作し、目新しい中間keyに出会う都度、そのkeyおよび対応する中間valueの集合をユーザのreduce関数に渡す。reduce関数の出力はこのreduceパーティションについての最終出力ファイルに付加される。
7.全てのmapタスクおよびreduceタスクが完了すると、マスタはユーザプログラムを呼び起こす。この時点で、ユーザプログラム中でのMapReduce呼出しはユーザコードへ戻る。
成功裏に完了した後、実行出力はR個の出力ファイル(reduceタスク当り1個、ユーザが指定したファイル名で)で利用可能となる。ユーザはこれらのR個の出力ファイルを1個のファイルに結合する必要はなく、これらのファイルを別のMapReduce呼び出しへの入力として渡すか、またはそれらを複数ファイルに分割された入力を処理可能な他の分散アプリケーションから使用することができる。
マスタは幾つかのデータ構造を保持する。各々のmapタスクおよびreduceタスクについて、マスタは状態(アイドル、進行中、または完了)および(非アイドルタスクについての)ワーカマシーンの識別子を蓄積する。
マスタは、中間ファイル領域の位置をmapタスクからreduceタスクへ伝えるパイプの役を果たす。したがって、完了したmapタスクの各々について、マスタはそのmapタスクによって生成されたR個の中間ファイル領域の位置と大きさを蓄積する。この位置と大きさの情報への更新は、mapタスクが完了したときに受信される。その情報は進行中reduceタスクを有するワーカに追加的に押し込まれる。
このMapReduceライブラリの実装は数百または数千のマシーンを使用して膨大な量のデータを処理するように設計されるので、このライブラリはマシーン故障にも耐用性がある。
マスタはどのワーカに対しても周期的に接続確認信号を発する(ping)。ある時間内にワーカから返答が受信されない場合、マスタはそのワーカに故障の印を付ける。そのワーカが完了したどのmapタスクもリセットされて初期のアイドル状態に戻され、したがって他のワーカ上でスケジューリングできるようになる。同様に、故障したワーカ上で進行中のどのmapタスクまたはreduceタスクもアイドル状態にリセットされ、再スケジュールできるようになる。
故障時には完了したmapタスクは再実行される。というのは、それらの出力が故障マシーンのローカルディスクに蓄積されており、アクセスできないからである。完了したreduceタスクは、それらの出力がグローバルファイルシステムに蓄積されるので再実行の必要はない。
Mapタスクが初めにワーカAによって実行され、その後、(ワーカAが故障したため)ワーカBによって実行された場合、reduceタスクを実行する全てのワーカにその再実行が知らされる。ワーカAからのデータ読み出しを実行済みでない全てのreduceタスクは、ワーカBからデータを読み出すことになる。
マスタは1つしか存在しないのでそれの故障は滅多にない。したがって、マスタが故障した場合、MapReduce計算は打ち切りとなる。ユーザまたはユーザプログラムは、この状況をチェックすることができ、かれらが望む場合、MapReduceの動作を再試行する。
ユーザ提供のmapおよびreduceオペレータ(operator)がそれらへの入力値の決定性関数である場合、この分散的実装は、全プログラムを故障なしで順番に実行することによって生成されるのと同じ出力を生成する。各進行中タスクはその出力を自分だけの一時ファイルへ書き出す。mapタスクが完了すると、ワーカはマスタにメッセージを送信し、そのメッセージ中にR個の一時ファイルの名前を含ませる。マスタが既に完了したmapタスクについて完了メッセージを受信した場合、そのメッセージを無視する。そうでない場合、マスタはR個の一時ファイルの名前をマスタのデータ構造中に記録する。reduceタスクが完了すると、reduceワーカはそれの一時出力ファイルを最終出力ファイルに原子レベルで名前変更する。同じreduceタスクが複数のマシーンで実行される場合、同じ最終出力ファイルについて複数の名前変更要求が実行されることになる。基盤的なファイルシステムによって提供される原子レベルの名前変更動作は、最終ファイルシステムの状態がreduceタスクの1回の実行によって生成されるデータだけを含むことを保証する。
本実装は、集団を構成するマシーンのローカルディスクに入力データを蓄積するという事実を活用して、ネットワーク帯域幅の浪費を防いでいる。ファイルシステムは各ファイルを64MBブロックに分割し、各ブロックのコピーを別々のマシーンに蓄積する。MapReduceマスタは、入力ファイルの位置情報を考慮にいれて、対応する入力データの複製を含むマシーン上のmapタスクのスケジュールを試みる。それに失敗すると、そのタスクの入力データの複製に近い(すなわち、そのデータを含むマシーンと同じネットワークスイッチ上にあるワーカマシーン上の)mapタスクのスケジュールを試みる。
負荷を動的に均衡させるためには、MおよびRはワーカマシーンの数より遥かに大きくあるべきである。先に述べたように、マスタはO(M+R)のスケジュール判断を実行し、O(M×R)の状態をメモリ中に保持しなければならないので、この実装においてMおよびRをどの程度に大きくできるかには実用上の限界がある。さらに、各reduceタスクの出力は別々の出力ファイル中で閉じているので、Rはユーザによってしばしば制限される。実用上は、Mは、先述の局地最適性が最も効果的となるよう個々のタスクの各々が大まかに16MBから64MBの入力ファイルを有するように選ばれ、Rは使用を期待できるワーカマシーン数の小さい倍数となろう。
MapReduceの実行にかかる総時間は、落ちこぼれ、すなわち、計算における最後の幾つかのmapまたはreduceタスクの1つを完了するのに異常に長時間を要するマシーン、によって大きく影響され得る。落ちこぼれ問題を軽減するために、MapReduceの実行が完了に近づくと、マスタはまだ進行中のタスクの支援実行をスケジュールする。本来の実行かまたは支援実行かが完了する都度、タスクは完了の印が付けられる。
以上の基本機能に加えて、本実装は以下の有用な拡張機能を提供する。
幾つかのケースでは、keyの何か特定の機能によりデータを分割するのが有用である。これをサポートするために、MapReduceライブラリのユーザは分割関数を提供することができる。
本実装は、所与のパーティション内では、中間key/value対がkeyの昇順に処理されることを保証する。これは、パーティション毎のソートされた出力ファイルの生成を容易化して、出力ファイルの形式がkeyによる効率的なランダムアクセス検索サポートする必要がある場合、または出力のユーザにとってデータがソートされていると好都合な場合に役に立つ。
幾つかのケースでは、各mapタスクによって生成される中間keyにおける繰り返しが膨大で、そしてユーザ仕様によるreduce関数が可換でありかつ結合法則が成立する。これの例は先述の語数を計数する例である。各mapタスクは<the, 1>の形式の数百または数千のレコードを生成する場合もある。これらの計数値は全て、ネットワークを介して単一のreduceタスクへ、そしてreduce関数によって総和を取られ1つの数を生成するために、送信される。そのようなケースに備えるため、本実装は、オプションとして、ネットワークを介してデータを送信する前にそれを部分的にマージするcombiner関数をユーザが指定できるようにする。
combiner関数は、mapタスクを実行する各マシーン上で実行される。combiner関数およびreduce関数の両者の実装に同じコードを使用できる。reduce関数とcombiner関数との間の唯一の違いは、MapReduceライブラリが関数の出力をどう処理するかである。reduce関数の出力は最終出力ファイルに書き出される。combiner関数の出力は、reduceタスクへ送信される中間ファイルに書き出される。
MapReduceライブラリは、複数の異なったフォーマットの入力データの読み取りをサポートする。例えば、「テキスト」モードの入力は各行をkey/value対として処理し、ここで、keyはファイル中のオフセット(offset)であり、valueは行の内容である。もう1つの一般的にサポートされるフォーマットは、keyでソートされた一連のkey/value対を蓄積する。入力タイプの各実装は、そのタイプのデータを、個別のmapタスクとして処理する意味がある領域に分割する方法を知っている(例えば、テキストモードの領域分割では、領域の分割は、確実に行の境界でのみ行われる)。ユーザは、簡単なreaderインタフェースの実装を提供することにより、新しい入力タイプへのサポートを追加できる。さらに、readerはファイルから読み出されたデータの提供に限定されない。例えば、readerはデータベースまたはメモリ中に割り振られたデータ構造からレコードを読み出すことができる。
同様のやり方で、本実装は様々なフォーマットでデータを生成する一連の出力タイプをサポートし、またユーザが新しい出力タイプのサポートを追加するためにコードを書くことは容易である。
ユーザまたは第3者のコード中のバグにより、map関数またはreduce関数があるレコードで決定的に機能停止することも時にはある。例えば、大きいデータ集合の統計的解析を行っているとき等、若干のレコードを無視することが受容可能な場合もある。本実装は、MapReduceライブラリが決定的機能停止を引き起こしたレコードを検出し、前進するためにこれらのレコードをスキップする、オプションとしての実行モードを提供する。
このモードのために、各ワーカのプロセスは、セグメンテーション違反およびバス誤りを捕捉する信号ハンドラ(handler)を組み込んでいる。ユーザのmapまたはreduceの実行を呼び出す前に、MapReduceライブラリは引数の順序番号をグローバル変数中に蓄積する。ユーザコードが信号を発生する場合、信号ハンドラはその順序番号を含む「最後のあえぎ(last gasp)」UDP(User Datagram Protocol)パケットをMapReduceマスタに送信する。特定のレコードについて1つ以上の故障を見つけると、マスタは対応するmapまたはreduceタスクの次の再実行の指令発出に際して、そのレコードをスキップ(skip)するべきことを知らせる。
MapReduceに関するさらに多くの情報は、その内容が参照によって本明細書に組み込まれた非特許文献1で見つけることができる。
ローカリティセンシティブハッシュ体系を使用してユーザを複数のクラスタにクラスタリングするもう1つの方法についてここで簡単に説明しよう。この方法では、各ユーザは、ユーザを特徴付ける高次元のベクトルで表現されたプロフィールを有する。そのようなベクトル上で動作する一連のk個のハッシュ関数が選択される。ユーザプロフィールについての第iのハッシュ値はユーザが割り当てられる第iのクラスタを表す。本方法に有用なローカリティセンシティブハッシュ関数については非特許文献2に説明がある。
そのような方法のある実装では、ユーザは<term, weight>対のリストにより表現される。先述と同様、kはクラスタの数およびユーザに対して計算されるハッシュ値の数である。シード値の数は説明では8kで与えられようが、定数で与えられている8は一般にはパラメータである。8k個のランダムなシード値は、s_1, s_2, ..., s_8kで示す文字列で表現され、例えば、2進表現でのビットの「0」または「1」が均等で、ランダムに見えるように選択される。どのユーザについても、第iのハッシュ値は以下のように計算される。
For b from 1 to 8:
do
initialize sum = 0;
for all <term_j, weight_j> pairs in the user's list:
do
if (fingerprint (term_j + s_((i-l)*8 + b)) has least significant bit = 1)
sum = sum + weight_j
else
sum = sum - weight_j
done
if (sum > 0)
b-th bit of i-th hash value is set to 1.
else
b-th bit of i-th hash value is set to 0.
done.
fingerprint (term_j + s_((i-l)*8 + b)なる項は、シード文字列s_((i-l)*8 + b)、すなわち第((i-l)*8 + b)のシード文字列と連結された第j項(term_j)のfingerprint関数(先述のように計算される)を表わす。
本発明の実施形態および本明細書で説明した全ての機能的動作は、本明細書で開示された構造またはそれらの構造的等価物もしくはそれらの組合せを含む、デジタル電子回路、もしくはコンピュータソフトウェア、ファームウェア、またはハードウェアで実施可能である。本発明の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、例えば、マシーン可読蓄積装置、マシーン可読蓄積媒体、メモリ装置、またはマシーン可読伝播信号、等のコンピュータ可読媒体上にコード化された、データ処理装置による実行に使用されるか、またはその動作を制御する、コンピュータプログラム命令の1つ以上のモジュールとして実施可能である。用語「データ処理装置」は、例として、プログラム可能プロセッサ、コンピュータ、もしくは多重プロセッサまたは多重コンピュータを含む、データを処理するための全ての装置およびマシーンを包含する。装置は、ハードウェアに加えて、問題になっているコンピュータプログラムのための実行環境を創り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの組合せを構成するコード、を含む。伝播信号は、例えば、機械により発生された電気的、光学的または電磁的信号等の人工的に発生された信号であり、好適な受信装置への転送用に情報を符号化するために発生される。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイルまたはインタープリタ言語を含むどのような形式のプログラミング言語ででも書くことができ、スタンドアローンプログラムとしてもしくはモジュール、コンポーネント、サブルーチン、またはコンピュータ環境での使用に好適なその他の単位を含む任意の形式で配備できる。コンピュータプログラムは必ずしもファイルシステム中のファイルに対応しなくてもよい。プログラムは、他のプログラムまたはデータを保持するファイルの一部に(例えば、マークアップ言語文書中に蓄積された1つ以上のスクリプト)、問題になっているプログラムに専用の単一のファイルに、または複数の組織的なファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を蓄積するファイル)に、蓄積することができる。コンピュータプログラムは、1つのコンピュータで、もしくは1つのサイトに配置された、または複数サイトにわたって分散され、通信ネットワークによって相互接続された、複数のコンピュータで、実行するために配備することができる。
本明細書で説明したプロセスおよび論理の流れは、入力データに対して動作して出力を生成することにより機能を実行する1つ以上のコンピュータプログラムを実行する、1つ以上のプログラム可能なプロセッサによって実行することができる。例えば、FPGA(Field Programmable Gate Array、フィールドプログラマブルゲートアレイ)またはASIC(Application-Specific Integrated Circuit、特定用途向け集積回路)等の特定用途論理回路により、そのプロセスおよび論理の流れを実行することもでき、装置を実装することもできる。
コンピュータプログラムの実行に好適なプロセッサには、例として、汎用および特定目的用の両方のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサが含まれる。一般に、プロセッサは読み出し専用メモリまたはランダムアクセスメモリもしくはその両方から命令とデータを受け取るであろう。コンピュータの本質的要素は、命令を実行するプロセッサおよび命令とデータを蓄積する1つ以上のメモリである。コンピュータはまた、一般に、データを蓄積するための1つ以上の大容量記憶装置、例えば、磁気、磁気光学ディスク、または光学ディスク、を含むか、またはそれらからデータを受信しまたはそれらへデータを送信しもしくはその両方を実行できるようそれらに接続されよう。しかし、コンピュータはそのような装置を持たなくてもよい。さらに、コンピュータは別の装置、幾つか名前を上げれば、例えば、移動電話機、携帯情報端末(PDA、personal digital assistant)、携帯オーディオプレーヤ、全地球測位システム(GPS、Global Positioning System)受信機、等に埋め込むこともできる。コンピュータプログラム命令およびデータを具体化するのに好適な情報担体には、全ての形態の不揮発性メモリ、例としては、EPROM、EEPROM、およびフラッシュメモリ装置等の半導体メモリ装置、内蔵ハードディスクまたは取り外し可能ディスク等の磁気ディスク装置、磁気光学ディスク、およびCD−ROMおよびDVD−ROMディスク、が含まれる。プロセッサおよびメモリは特定用途論理回路で補足することができ、またはそれに組み込むことができる。
ユーザとの相互作用に備えて、本発明の実施形態は、情報をユーザに提示するための表示装置、例えば、CRT(cathode ray tube、陰極線管)またはLCD(liquid crystal display、液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよび指示装置、例えば、マウスまたはトラックボール、を有するコンピュータ上で実施することができる。その他の種類の装置もまたユーザとの相互作用に備えて使用することができ、例えば、ユーザに提供されるフィードバックは、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック等の任意の形式の感覚フィードバックであってよく、またユーザからの入力は、音響、音声または触覚入力を含む任意の形式で受信されてよい。
本発明の実施形態は、バックエンド構成要素、例えば、データサーバ等、を含む、またはミドルウェア構成要素、例えば、アプリケーションサーバ、を含む、またはフロントエンド構成要素、例えば、本発明の実装と相互作用できるようにするためのグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ、を含むコンピュータシステム中で実施することができ、もしくはそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せで実施することができる。システムの構成要素は、任意の形態または媒体の、通信ネットワーク等のデジタルデータ通信により相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)およびインターネット等の広域ネットワーク(「WAN」)が含まれる。
コンピュータシステムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般には相互に遠く離れており、通常は通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント−サーバ関係にあるコンピュータプログラムによって、発生する。
本発明の特定の実施形態について説明をおこなった。その他の実施形態は添付の特許請求の範囲に含まれる。例えば、特許請求の範囲で列挙されるステップは、別の順序で実行することもでき、それでも所望の結果を得ることができる。
本発明の実施形態による、ユーザをクラスタリングする第1の方法を示すフローチャートである。 本発明の実施形態による、ユーザをクラスタリングする第2の方法を示すフローチャートである。 本発明の実施形態による、ユーザクラスタを使用する推奨者システムの動作を示すフローチャートである。 本発明の一実施形態による、ニュース推奨エンジンを有するニュースサービスを示す概略図である。
符号の説明
402a、402b ユーザ
404 通信ネットワーク
410 ニュース推奨エンジン
420 ニュースサービス
430 ウェブサーバ
440 ログ

Claims (32)

  1. データ処理システムのユーザを同定するためにk個の要素からなる順序集合を使用するステップを含む方法であって、kは1より大きい整数であり、前記k個の要素の各々は興味集合中の要素に対応しており、前記興味集合中の各要素は、前記データ処理システムを使用する前記ユーザによる行動を通して前記ユーザが興味を示した品目を表わす
    ことを特徴とする方法。
  2. 前記ユーザについて協調フィルタリングを実行する際に、前記ユーザを同定するために前記k個の要素からなる順序集合を使用するステップをさらに含む
    ことを特徴とする請求項1に記載の方法。
  3. 前記協調フィルタリングは、前記ユーザに対して品目を推奨するステップまたは前記ユーザ向けに品目をランク付けするステップを含む
    ことを特徴とする請求項2に記載の方法。
  4. ユーザの興味を示す行動をログに記録するステップと、
    前記ユーザについて興味集合を生成するために前記ログを使用するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  5. 前記データ処理システムはウェブサイトを含み、
    前記ユーザについての前記興味集合は、前記ユーザがウェブページ上でクリックした品目、前記ユーザがオンライン小売店から購入した品目、または前記ユーザが買い物カートに追加した品目の1つ以上の表現を含む
    ことを特徴とする請求項1に記載の方法。
  6. 情報担体上に符号化されたコンピュータプログラム製品であって、
    データ処理装置に、複数ユーザの各々についてそれぞれの興味集合を取得させることができる命令を有していて、各興味集合はそれぞれのユーザがデータ処理システムとの相互作用を通して興味を示した品目を表わし、
    更に、データ処理装置に、複数ユーザの各々について、それぞれの興味集合のk個のハッシュ値を決定させることができる命令を有していて、第iのハッシュ値は対応する第iのハッシュ関数の下でのそれぞれの興味集合中の最小値であり、iは1とkの間の整数であり、kは1以上の整数であり、
    更に、データ処理装置に、複数ユーザの各々を、それぞれのユーザについて第iのクラスタは第iのハッシュ値によって表わされるように確立されたそれぞれのk個のクラスタの各々に割り当てさせることができる命令を有していて、複数ユーザの各々のk個のクラスタへの割り当ては他のどのユーザについてのk個のクラスタへの割り当てにも無関係に行われる
    ことを特徴とするコンピュータプログラム製品。
  7. データ処理装置に、ユーザの興味を表す行動をログに記録させることができる命令と、
    データ処理装置に、前記複数ユーザについて前記興味集合を生成するために前記ログを使用させることができる命令と
    をさらに含むことを特徴とする請求項6に記載のコンピュータプログラム製品。
  8. データ処理装置に、前記複数ユーザの第1のユーザについて変化のあった興味集合を取得させることができる命令と、
    データ処理装置に、変化のあった興味集合を使用する第1のユーザについてk個のハッシュ値を決定させることができる命令と、
    データ処理装置に、第1のユーザを、変化のあった興味集合を使用して決定されるk個のハッシュ値によって表わされるそれぞれのk個のクラスタの各々にのみ、他の複数ユーザのクラスタへの割り当てを変化させることなく、割り当てさせることができる命令と
    をさらに含むことを特徴とする請求項6に記載のコンピュータプログラム製品。
  9. 情報担体上に符号化されたコンピュータプログラム製品であって、
    データ処理装置に、ユーザについて興味集合を取得させることができる命令を有していて、前記興味集合は前記ユーザがデータ処理システムとの相互作用を通して興味を示した品目を表わし、
    更に、データ処理装置に、前記興味集合のk個のハッシュ値を決定させることができる命令を有していて、第iのハッシュ値は対応する第iのハッシュ関数の下での前記興味集合中の最小値であり、iは1とkの間の整数であり、kは1以上の整数であり、
    更に、データ処理装置に、前記ユーザをk個のクラスタの各々に割り当てさせることができる命令を有していて、第iのクラスタは第iのハッシュ値により表わされる
    ことを特徴とするコンピュータプログラム製品。
  10. 前記興味集合はm個の要素を持ち、
    第iのハッシュ値は一方向ハッシュ関数をm回適用したときの最小値であり、各適用は第iシード値と前記興味集合のm個の要素のそれぞれ1つをハッシュする
    ことを特徴とする請求項9に記載のコンピュータプログラム製品。
  11. データ処理装置に、前記ユーザについての協調フィルタリングを実行するために、前記k個のクラスタを使用させることができる命令をさらに含む
    ことを特徴とする請求項9に記載のコンピュータプログラム製品。
  12. データ処理システムを使用する複数ユーザによって選択された品目のログと、
    前記複数ユーザの各々をk個(ここでkは1以上の整数)のクラスタに割り当てるために指紋関数および前記品目のログを使用する手段と、
    k個のクラスタの1つ以上への第1のユーザの前記割り当てに基づいて前記複数ユーザ中の前記第1のユーザに情報を提供できる協調フィルタリングのコンピュータプログラムアプリケーションと
    を含むことを特徴とするシステム。
  13. 前記情報は、推奨、予測、またはランク付けの少なくとも1つを含む
    ことを特徴とする請求項12に記載のシステム。
  14. 情報担体上に符号化されたコンピュータプログラム製品であって、
    データ処理装置に、データ処理システムのユーザを同定するために、k個の要素からなる順序集合を使用させることができる命令を有していて、kは1より大きい整数であり、k個の要素の各々は興味集合中の要素に対応し、前記興味集合中の各要素は前記データ処理システムを使用する前記ユーザによる行動を通して前記ユーザが興味を示した品目を表す
    ことを特徴とするコンピュータプログラム製品。
  15. データ処理装置に、前記ユーザについて協調フィルタリングを実行する際に、前記ユーザを同定するために前記k個の要素からなる順序集合を使用させることができる命令をさらに有している
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  16. 前記協調フィルタリングは、前記ユーザに対して品目を推奨するステップまたは前記ユーザ向けに品目をランク付けするステップを含む
    ことを特徴とする請求項15に記載のコンピュータプログラム製品。
  17. データ処理装置に、再編された興味集合を生成するために前記データ処理システムがその入力に応えて前記興味集合から要素を除去するような入力を、前記ユーザから受信させることができる命令と、
    データ処理装置に、k個の要素からなる再編された順序集合を決定させることができる命令とをさらに有していて、前記k個の要素の各々は前記再編された興味集合中の要素に対応し、
    更に、データ処理装置に、前記ユーザを同定するために、k個の要素からなる初期の順序集合ではなく、k個の要素からなる前記再編された順序集合を使用させることができる命令をさらに有している
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  18. k個の要素からなる前記順序集合は前記ユーザをk個のユーザクラスタの各々に属するものとして同定することを特徴とする請求項14に記載のコンピュータプログラム製品。
  19. データ処理装置に、ユーザの興味を示す行動をログに記録させることができる命令と、
    データ処理装置に、前記ユーザについて興味集合を生成するために前記ログを使用させることができる命令と
    をさらに有していることを特徴とする請求項14に記載のコンピュータプログラム製品。
  20. 前記データ処理システムはウェブサイトを含み、
    前記ユーザについての前記興味集合は、前記ユーザがウェブページ上でクリックした品目、前記ユーザがオンライン小売店から購入した品目、または前記ユーザが買い物カートに追加した品目の1つ以上の表現を含む
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  21. 品目への興味を表す前記ユーザによる前記行動は、興味を暗に表す行動を含む
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  22. 品目への興味を表す前記ユーザによる前記行動は、興味を陽に表す行動を含む
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  23. 前記ユーザはユーザログオンによって同定される個人である
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  24. 前記ユーザはクッキーによって同定される個人である
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  25. 前記ユーザは観測される属性が共通する一人以上の個人であり、前記属性は前記一人以上の個人の各々により前記データ処理システムに提示される属性である
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  26. 前記ユーザは前記データ処理システムと相互作用する個人のセッションである
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  27. 前記興味集合中の各要素は、前記データ処理システムとの相互作用において前記ユーザが選択した品目である
    ことを特徴とする請求項14に記載のコンピュータプログラム製品。
  28. 複数ユーザの各々についてそれぞれの興味集合を取得するステップを有していて、各興味集合はそれぞれのユーザがデータ処理システムとの相互作用を通して興味を示した品目を表わし、
    更に、複数ユーザの各々について、それぞれの興味集合のk個のハッシュ値を決定するステップを有していて、第iのハッシュ値は対応する第iのハッシュ関数の下でのそれぞれの興味集合中の最小値であり、iは1とkの間の整数であり、kは1以上の整数であり、
    更に、複数ユーザの各々を、それぞれのユーザについて第iのクラスタは第iのハッシュ値によって表わされるように確立されたそれぞれのk個のクラスタの各々に割り当てるステップを有していて、複数ユーザの各々のk個のクラスタへの割り当ては他のどのユーザについてのk個のクラスタへの割り当てにも無関係に行われる
    ことを特徴とする方法。
  29. ユーザの興味を表す行動をログに記録するステップと、
    前記複数ユーザについて前記興味集合を生成するために前記ログを使用するステップと
    をさらに有していることを特徴とする請求項28に記載の方法。
  30. ユーザについて興味集合を取得するステップを有していて、前記興味集合は前記ユーザがデータ処理システムとの相互作用を通して興味を示した品目を表わし、
    更に、前記興味集合のk個のハッシュ値を決定するステップを有していて、第iのハッシュ値は対応する第iのハッシュ関数の下での前記興味集合中の最小値であり、iは1とkの間の整数であり、kは1以上の整数であり、
    更に、前記ユーザをk個のクラスタの各々に割り当てるステップを有していて、第iのクラスタは第iのハッシュ値により表わされる
    ことを特徴とする方法。
  31. 前記興味集合はm個の要素を持ち、
    第iのハッシュ値は一方向ハッシュ関数をm回適用したときの最小値であり、各適用は第iシード値と前記興味集合のm個の要素のそれぞれ1つをハッシュする
    ことを特徴とする請求項30に記載の方法。
  32. 前記ユーザについての協調フィルタリングを実行するために、前記k個のクラスタを使用するステップをさらに有している
    ことを特徴とする請求項30に記載の方法。
JP2008527069A 2005-08-15 2006-08-15 集合の類似性に基づく拡張性に富むユーザクラスタリング Expired - Fee Related JP5230421B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/204,922 US7739314B2 (en) 2005-08-15 2005-08-15 Scalable user clustering based on set similarity
US11/204,922 2005-08-15
PCT/US2006/031868 WO2007022199A2 (en) 2005-08-15 2006-08-15 Scalable user clustering based on set similarity

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012252056A Division JP5538510B2 (ja) 2005-08-15 2012-11-16 集合の類似性に基づく拡張性に富むユーザクラスタリング

Publications (3)

Publication Number Publication Date
JP2009505290A true JP2009505290A (ja) 2009-02-05
JP2009505290A5 JP2009505290A5 (ja) 2009-10-01
JP5230421B2 JP5230421B2 (ja) 2013-07-10

Family

ID=37743789

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008527069A Expired - Fee Related JP5230421B2 (ja) 2005-08-15 2006-08-15 集合の類似性に基づく拡張性に富むユーザクラスタリング
JP2012252056A Expired - Fee Related JP5538510B2 (ja) 2005-08-15 2012-11-16 集合の類似性に基づく拡張性に富むユーザクラスタリング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012252056A Expired - Fee Related JP5538510B2 (ja) 2005-08-15 2012-11-16 集合の類似性に基づく拡張性に富むユーザクラスタリング

Country Status (6)

Country Link
US (4) US7739314B2 (ja)
EP (1) EP1915669A4 (ja)
JP (2) JP5230421B2 (ja)
CN (2) CN102682059B (ja)
CA (1) CA2619076C (ja)
WO (1) WO2007022199A2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140042A (ja) * 2007-12-04 2009-06-25 Sony Corp 情報処理装置、情報処理方法、およびプログラム
JP2010244470A (ja) * 2009-04-09 2010-10-28 Ntt Docomo Inc 分散処理システム及び分散処理方法
JP2013130965A (ja) * 2011-12-20 2013-07-04 Hitachi Ltd データ分析装置、データ分析方法及びプログラム
JP2013156960A (ja) * 2012-01-31 2013-08-15 Fujitsu Ltd 生成プログラム、生成方法、および生成システム
JP2014038616A (ja) * 2012-08-15 2014-02-27 Hon Hai Precision Industry Co Ltd 大量データのインデックス構築システム及びその構築方法
JP2014522009A (ja) * 2011-04-25 2014-08-28 アルカテル−ルーセント 推奨サービスにおけるプライバシー保護
JP2015532737A (ja) * 2012-07-16 2015-11-12 アルカテル−ルーセント ユーザ関心プロファイルのプライバシ保護されたクラスタ化のシステムおよび方法
US9572157B2 (en) 2008-03-11 2017-02-14 Intel Corporation Techniques enabling dynamic bandwidth reservation in a wireless personal area network
US9921874B2 (en) 2012-06-05 2018-03-20 Fujitsu Limited Storage medium, information processing device, and information processing method

Families Citing this family (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658423B1 (en) * 2001-01-24 2003-12-02 Google, Inc. Detecting duplicate and near-duplicate files
US7505964B2 (en) 2003-09-12 2009-03-17 Google Inc. Methods and systems for improving a search ranking using related queries
US7756919B1 (en) 2004-06-18 2010-07-13 Google Inc. Large-scale data processing in a distributed and parallel processing enviornment
US9065727B1 (en) 2012-08-31 2015-06-23 Google Inc. Device identifier similarity models derived from online event signals
US7937265B1 (en) 2005-09-27 2011-05-03 Google Inc. Paraphrase acquisition
US7617231B2 (en) * 2005-12-07 2009-11-10 Electronics And Telecommunications Research Institute Data hashing method, data processing method, and data processing system using similarity-based hashing algorithm
US7624117B2 (en) * 2006-06-12 2009-11-24 Sap Ag Complex data assembly identifier thesaurus
US8015162B2 (en) * 2006-08-04 2011-09-06 Google Inc. Detecting duplicate and near-duplicate files
US8190610B2 (en) * 2006-10-05 2012-05-29 Yahoo! Inc. MapReduce for distributed database processing
JP5233220B2 (ja) * 2006-10-11 2013-07-10 株式会社リコー ページ付加情報共有管理方法
US20080104066A1 (en) * 2006-10-27 2008-05-01 Yahoo! Inc. Validating segmentation criteria
US8661029B1 (en) 2006-11-02 2014-02-25 Google Inc. Modifying search result ranking based on implicit user feedback
US9110975B1 (en) 2006-11-02 2015-08-18 Google Inc. Search result inputs using variant generalized queries
US7801885B1 (en) 2007-01-25 2010-09-21 Neal Akash Verma Search engine system and method with user feedback on search results
US8407226B1 (en) 2007-02-16 2013-03-26 Google Inc. Collaborative filtering
US8135718B1 (en) 2007-02-16 2012-03-13 Google Inc. Collaborative filtering
US8065254B1 (en) 2007-02-19 2011-11-22 Google Inc. Presenting a diversity of recommendations
US8938463B1 (en) 2007-03-12 2015-01-20 Google Inc. Modifying search result ranking based on implicit user feedback and a model of presentation bias
US8694374B1 (en) 2007-03-14 2014-04-08 Google Inc. Detecting click spam
US7576370B2 (en) * 2007-04-20 2009-08-18 California Micro Devices Low operating voltage electro-static discharge device and method
US9092510B1 (en) 2007-04-30 2015-07-28 Google Inc. Modifying search result ranking based on a temporal element of user feedback
US8359309B1 (en) 2007-05-23 2013-01-22 Google Inc. Modifying search result ranking based on corpus search statistics
US8694511B1 (en) 2007-08-20 2014-04-08 Google Inc. Modifying search result ranking based on populations
US8909655B1 (en) 2007-10-11 2014-12-09 Google Inc. Time based ranking
US20090132571A1 (en) * 2007-11-16 2009-05-21 Microsoft Corporation Efficient use of randomness in min-hashing
US7925598B2 (en) * 2008-01-24 2011-04-12 Microsoft Corporation Efficient weighted consistent sampling
US20090198666A1 (en) * 2008-02-01 2009-08-06 Winston Ronald H Affinity matching system and method
US8184953B1 (en) * 2008-02-22 2012-05-22 Google Inc. Selection of hash lookup keys for efficient retrieval
US20090216757A1 (en) * 2008-02-27 2009-08-27 Robi Sen System and Method for Performing Frictionless Collaboration for Criteria Search
CN101685458B (zh) * 2008-09-27 2012-09-19 华为技术有限公司 一种基于协同过滤的推荐方法和系统
US8640163B2 (en) * 2008-09-30 2014-01-28 Microsoft Corporation Determining user-to-user similarities in an online media environment
JP5229731B2 (ja) * 2008-10-07 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 更新頻度に基づくキャッシュ機構
US8682998B2 (en) * 2008-10-31 2014-03-25 Software Ag Method and server cluster for map reducing flow services and large documents
US8396865B1 (en) 2008-12-10 2013-03-12 Google Inc. Sharing search engine relevance data between corpora
US20100169258A1 (en) * 2008-12-31 2010-07-01 Microsoft Corporation Scalable Parallel User Clustering in Discrete Time Window
US20100191734A1 (en) * 2009-01-23 2010-07-29 Rajaram Shyam Sundar System and method for classifying documents
US20100228951A1 (en) * 2009-03-05 2010-09-09 Xerox Corporation Parallel processing management framework
US8209664B2 (en) * 2009-03-18 2012-06-26 Microsoft Corporation High level programming extensions for distributed data parallel processing
US8239847B2 (en) * 2009-03-18 2012-08-07 Microsoft Corporation General distributed reduction for data parallel computing
US9009146B1 (en) 2009-04-08 2015-04-14 Google Inc. Ranking search results based on similar queries
US8204838B2 (en) * 2009-04-10 2012-06-19 Microsoft Corporation Scalable clustering
US8510538B1 (en) * 2009-04-13 2013-08-13 Google Inc. System and method for limiting the impact of stragglers in large-scale parallel data processing
US20100301114A1 (en) * 2009-05-26 2010-12-02 Lo Faro Walter F Method and system for transaction based profiling of customers within a merchant network
US8321873B2 (en) * 2009-06-09 2012-11-27 Yahoo! Inc. System and method for offline data generation for online system analysis
US8447760B1 (en) 2009-07-20 2013-05-21 Google Inc. Generating a related set of documents for an initial set of documents
US8498974B1 (en) 2009-08-31 2013-07-30 Google Inc. Refining search results
WO2011034475A1 (en) * 2009-09-21 2011-03-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for executing a recommendation
US20110077998A1 (en) * 2009-09-29 2011-03-31 Microsoft Corporation Categorizing online user behavior data
US8972391B1 (en) 2009-10-02 2015-03-03 Google Inc. Recent interest based relevance scoring
US8244767B2 (en) * 2009-10-09 2012-08-14 Stratify, Inc. Composite locality sensitive hash based processing of documents
US9355171B2 (en) * 2009-10-09 2016-05-31 Hewlett Packard Enterprise Development Lp Clustering of near-duplicate documents
US9009156B1 (en) * 2009-11-10 2015-04-14 Hrl Laboratories, Llc System for automatic data clustering utilizing bio-inspired computing models
US8874555B1 (en) 2009-11-20 2014-10-28 Google Inc. Modifying scoring data based on historical changes
CN102111392A (zh) * 2009-12-24 2011-06-29 王子嘉 以兴趣排名为基础的交友系统
CN102141995B (zh) * 2010-01-29 2013-06-12 国际商业机器公司 简化并行计算系统中的传输的系统与方法
US8874600B2 (en) 2010-01-30 2014-10-28 International Business Machines Corporation System and method for building a cloud aware massive data analytics solution background
US8615514B1 (en) 2010-02-03 2013-12-24 Google Inc. Evaluating website properties by partitioning user feedback
US8924379B1 (en) 2010-03-05 2014-12-30 Google Inc. Temporal-based score adjustments
US8959093B1 (en) 2010-03-15 2015-02-17 Google Inc. Ranking search results based on anchors
US8838587B1 (en) 2010-04-19 2014-09-16 Google Inc. Propagating query classifications
US8555265B2 (en) 2010-05-04 2013-10-08 Google Inc. Parallel processing of data
US8935232B2 (en) * 2010-06-04 2015-01-13 Yale University Query execution systems and methods
US9495427B2 (en) 2010-06-04 2016-11-15 Yale University Processing of data using a database system in communication with a data processing framework
US9336263B2 (en) 2010-06-04 2016-05-10 Yale University Data loading systems and methods
US9311403B1 (en) * 2010-06-16 2016-04-12 Google Inc. Hashing techniques for data set similarity determination
US9623119B1 (en) 2010-06-29 2017-04-18 Google Inc. Accentuating search results
US8832083B1 (en) 2010-07-23 2014-09-09 Google Inc. Combining user feedback
US9454763B2 (en) 2010-08-24 2016-09-27 Adobe Systems Incorporated Distribution of offer to a social group by sharing based on qualifications
US8661042B2 (en) * 2010-10-18 2014-02-25 Hewlett-Packard Development Company, L.P. Collaborative filtering with hashing
CN102467570B (zh) * 2010-11-17 2014-03-12 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
CN102480512B (zh) 2010-11-29 2015-08-12 国际商业机器公司 用于扩展服务器端处理能力的方法和装置
US20120144022A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Content recommendation through consumer-defined authorities
US8499222B2 (en) * 2010-12-14 2013-07-30 Microsoft Corporation Supporting distributed key-based processes
US8631017B2 (en) * 2010-12-16 2014-01-14 Hewlett-Packard Development, L.P. Collaborative filtering with hashing
US9307048B2 (en) 2010-12-28 2016-04-05 Microsoft Technology Licensing, Llc System and method for proactive task scheduling of a copy of outlier task in a computing environment
US9002867B1 (en) 2010-12-30 2015-04-07 Google Inc. Modifying ranking data based on document changes
US9177327B2 (en) 2011-03-02 2015-11-03 Adobe Systems Incorporated Sequential engine that computes user and offer matching into micro-segments
US8635226B2 (en) * 2011-03-02 2014-01-21 Adobe Systems Incorporated Computing user micro-segments for offer matching
JP2012204894A (ja) * 2011-03-24 2012-10-22 Toshiba Corp 情報推薦装置
CN102779137A (zh) * 2011-05-13 2012-11-14 北京搜狗科技发展有限公司 针对网页的用户个性化反馈信息的处理方法和装置
US8954967B2 (en) * 2011-05-31 2015-02-10 International Business Machines Corporation Adaptive parallel data processing
US8856047B2 (en) 2011-06-21 2014-10-07 Microsoft Corporation Fast personalized page rank on map reduce
CN103597473B (zh) * 2011-06-30 2018-06-05 慧与发展有限责任合伙企业 用于合并部分聚合查询结果的系统和方法
WO2013009503A2 (en) 2011-07-08 2013-01-17 Yale University Query execution systems and methods
CN102316167B (zh) * 2011-09-26 2013-11-06 中国科学院计算机网络信息中心 网站推荐方法和系统以及网络服务器
US9031992B1 (en) * 2011-09-30 2015-05-12 Emc Corporation Analyzing big data
US20130179252A1 (en) * 2012-01-11 2013-07-11 Yahoo! Inc. Method or system for content recommendations
US8838435B2 (en) 2012-01-11 2014-09-16 Motorola Mobility Llc Communication processing
US9262216B2 (en) 2012-02-14 2016-02-16 Microsoft Technologies Licensing, LLC Computing cluster with latency control
US8983998B1 (en) 2012-04-25 2015-03-17 Google Inc. Prioritizing points of interest in unfamiliar regions
US9053185B1 (en) 2012-04-30 2015-06-09 Google Inc. Generating a representative model for a plurality of models identified by similar feature data
US8527526B1 (en) 2012-05-02 2013-09-03 Google Inc. Selecting a list of network user identifiers based on long-term and short-term history data
US20150242906A1 (en) * 2012-05-02 2015-08-27 Google Inc. Generating a set of recommended network user identifiers from a first set of network user identifiers and advertiser bid data
WO2013171758A2 (en) * 2012-05-18 2013-11-21 Tata Consultancy Services Limited System and method for creating structured event objects
US8914500B1 (en) 2012-05-21 2014-12-16 Google Inc. Creating a classifier model to determine whether a network user should be added to a list
CA2779235C (en) * 2012-06-06 2019-05-07 Ibm Canada Limited - Ibm Canada Limitee Identifying unvisited portions of visited information
US8886575B1 (en) 2012-06-27 2014-11-11 Google Inc. Selecting an algorithm for identifying similar user identifiers based on predicted click-through-rate
US8874589B1 (en) 2012-07-16 2014-10-28 Google Inc. Adjust similar users identification based on performance feedback
US8782197B1 (en) 2012-07-17 2014-07-15 Google, Inc. Determining a model refresh rate
US9104767B2 (en) * 2012-08-28 2015-08-11 Adobe Systems Incorporated Identifying web pages that are likely to guide browsing viewers to improve conversion rate
US8886799B1 (en) 2012-08-29 2014-11-11 Google Inc. Identifying a similar user identifier
US20150169727A1 (en) * 2012-09-03 2015-06-18 Sony Corporation Information processing apparatus, information processing method, and system
CN103679494B (zh) * 2012-09-17 2018-04-03 阿里巴巴集团控股有限公司 商品信息推荐方法及装置
US8983888B2 (en) 2012-11-07 2015-03-17 Microsoft Technology Licensing, Llc Efficient modeling system for user recommendation using matrix factorization
US9278255B2 (en) 2012-12-09 2016-03-08 Arris Enterprises, Inc. System and method for activity recognition
US10212986B2 (en) 2012-12-09 2019-02-26 Arris Enterprises Llc System, apparel, and method for identifying performance of workout routines
US9471390B2 (en) 2013-01-16 2016-10-18 International Business Machines Corporation Scheduling mapreduce jobs in a cluster of dynamically available servers
US10229367B2 (en) * 2013-02-06 2019-03-12 Jacob Drew Collaborative analytics map reduction classification learning systems and methods
US9183499B1 (en) 2013-04-19 2015-11-10 Google Inc. Evaluating quality based on neighbor features
US10939258B2 (en) * 2013-04-19 2021-03-02 xAd, Inc. System and method for marketing mobile advertising supplies
US9467452B2 (en) * 2013-05-13 2016-10-11 International Business Machines Corporation Transferring services in a networked environment
EP2824589A1 (en) * 2013-07-12 2015-01-14 Thomson Licensing Method for enriching a multimedia content, and corresponding device.
EP2827277A1 (en) * 2013-07-16 2015-01-21 Alcatel Lucent Privacy protection in personalisation services
CN103886003A (zh) * 2013-09-22 2014-06-25 天津思博科科技发展有限公司 一种协同过滤处理器
KR101482700B1 (ko) * 2013-09-27 2015-01-14 (주)잉카엔트웍스 해시를 이용한 프로그램의 무결성 검증 방법
US8819038B1 (en) * 2013-10-06 2014-08-26 Yahoo! Inc. System and method for performing set operations with defined sketch accuracy distribution
CN104035949B (zh) * 2013-12-10 2017-05-10 南京信息工程大学 一种基于局部敏感哈希改进算法的相似性数据检索方法
CN103678672B (zh) * 2013-12-25 2017-05-24 北京中兴通德网络科技有限公司 一种信息推荐方法
US10574508B1 (en) 2014-01-27 2020-02-25 Amazon Technologies, Inc. MapReduce optimization for partitioned intermediate output
US10055506B2 (en) 2014-03-18 2018-08-21 Excalibur Ip, Llc System and method for enhanced accuracy cardinality estimation
US20150379022A1 (en) * 2014-06-27 2015-12-31 General Electric Company Integrating Execution of Computing Analytics within a Mapreduce Processing Environment
KR101601820B1 (ko) * 2014-08-20 2016-03-14 경기대학교 산학협력단 유사 사용자 인덱스 방법 및 프로그램
US10831765B1 (en) * 2014-10-21 2020-11-10 Zoosk, Inc. System and method for providing information about users who performed internet-based activities
JP6334431B2 (ja) * 2015-02-18 2018-05-30 株式会社日立製作所 データ分析装置、データ分析方法、およびデータ分析プログラム
CN104715021B (zh) * 2015-02-27 2018-09-11 南京邮电大学 一种基于哈希方法的多标记学习的学习方法
US20160275169A1 (en) * 2015-03-17 2016-09-22 Infoutopia Co., Ltd. System and method of generating initial cluster centroids
CN104778234A (zh) * 2015-03-31 2015-07-15 南京邮电大学 基于局部敏感哈希技术的多标记文件近邻查询方法
US10095807B2 (en) * 2015-04-28 2018-10-09 Microsoft Technology Licensing, Llc Linked data processor for database storage
CN104899267B (zh) * 2015-05-22 2017-12-19 中国电子科技集团公司第二十八研究所 一种社交网站账号相似度的综合数据挖掘方法
CN106469163A (zh) * 2015-08-18 2017-03-01 中兴通讯股份有限公司 一种公众号推荐方法及系统
US10140327B2 (en) * 2015-08-24 2018-11-27 Palantir Technologies Inc. Feature clustering of users, user correlation database access, and user interface generation system
CN105162875B (zh) * 2015-09-23 2019-03-12 四川师范大学 大数据群体任务分配方法及装置
US10530892B2 (en) * 2015-09-28 2020-01-07 Microsoft Technology Licensing, Llc Processing request for multi-versioned service
CN105224328A (zh) * 2015-10-08 2016-01-06 浪潮电子信息产业股份有限公司 一种用户界面生成方法以及系统、服务器
EP3283984A4 (en) * 2015-11-03 2018-04-04 Hewlett-Packard Enterprise Development LP Relevance optimized representative content associated with a data storage system
US10116536B2 (en) * 2015-11-18 2018-10-30 Adobe Systems Incorporated Identifying multiple devices belonging to a single user
US10778707B1 (en) * 2016-05-12 2020-09-15 Amazon Technologies, Inc. Outlier detection for streaming data using locality sensitive hashing
CN106227881B (zh) * 2016-08-04 2021-11-09 腾讯科技(深圳)有限公司 一种信息处理方法及服务器
US20180052864A1 (en) * 2016-08-16 2018-02-22 International Business Machines Corporation Facilitating the sharing of relevant content
CN106355449B (zh) 2016-08-31 2021-09-07 腾讯科技(深圳)有限公司 用户选取方法和装置
US10637940B2 (en) * 2016-11-21 2020-04-28 Roku, Inc. Streaming content based on skip histories
CN106543880B (zh) * 2016-12-12 2018-12-18 河北晨阳工贸集团有限公司 一种能提升眼镜框舒适度的环保涂料及其制备方法
CN106649781B (zh) * 2016-12-28 2020-11-20 北京小米移动软件有限公司 应用推荐方法及装置
CN107122390B (zh) * 2017-03-04 2020-09-25 华数传媒网络有限公司 基于用户群组的推荐系统构建方法
US20190057430A1 (en) * 2017-08-17 2019-02-21 Retailcommon Inc. Method and system for clustering products in an electronic commerce environment
US10769306B2 (en) * 2017-09-21 2020-09-08 International Business Machines Corporation Applying a differential privacy operation on a cluster of data
US11100573B1 (en) * 2018-02-28 2021-08-24 Intuit Inc. Credit score cohort analysis engine
US11023495B2 (en) * 2018-03-19 2021-06-01 Adobe Inc. Automatically generating meaningful user segments
EP3642690A1 (en) * 2018-08-30 2020-04-29 Google LLC Percentile linkage clustering
US11501257B2 (en) * 2019-12-09 2022-11-15 Jpmorgan Chase Bank, N.A. Method and apparatus for implementing a role-based access control clustering machine learning model execution module
CN113420141B (zh) * 2021-06-24 2022-10-04 中国人民解放军陆军工程大学 基于哈希聚类和上下文信息的敏感数据搜索方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134532A (en) * 1997-11-14 2000-10-17 Aptex Software, Inc. System and method for optimal adaptive matching of users to most relevant entity and information in real-time
US6697800B1 (en) * 2000-05-19 2004-02-24 Roxio, Inc. System and method for determining affinity using objective and subjective data

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5832182A (en) * 1996-04-24 1998-11-03 Wisconsin Alumni Research Foundation Method and system for data clustering for very large databases
US5909677A (en) 1996-06-18 1999-06-01 Digital Equipment Corporation Method for determining the resemblance of documents
US6374251B1 (en) * 1998-03-17 2002-04-16 Microsoft Corporation Scalable system for clustering of large databases
US6119124A (en) 1998-03-26 2000-09-12 Digital Equipment Corporation Method for clustering closely resembling data objects
US6317722B1 (en) 1998-09-18 2001-11-13 Amazon.Com, Inc. Use of electronic shopping carts to generate personal recommendations
US6415297B1 (en) * 1998-11-17 2002-07-02 International Business Machines Corporation Parallel database support for workflow management systems
US6564202B1 (en) * 1999-01-26 2003-05-13 Xerox Corporation System and method for visually representing the contents of a multiple data object cluster
US6347313B1 (en) * 1999-03-01 2002-02-12 Hewlett-Packard Company Information embedding based on user relevance feedback for object retrieval
US6564261B1 (en) * 1999-05-10 2003-05-13 Telefonaktiebolaget Lm Ericsson (Publ) Distributed system to intelligently establish sessions between anonymous users over various networks
US6542889B1 (en) * 2000-01-28 2003-04-01 International Business Machines Corporation Methods and apparatus for similarity text search based on conceptual indexing
US6854069B2 (en) * 2000-05-02 2005-02-08 Sun Microsystems Inc. Method and system for achieving high availability in a networked computer system
AU2002223811B8 (en) * 2000-11-20 2007-10-18 British Telecommunications Public Limited Company Method of managing resources
US7069367B2 (en) * 2000-12-29 2006-06-27 Intel Corporation Method and apparatus for avoiding race condition with edge-triggered interrupts
US6968334B2 (en) * 2001-05-15 2005-11-22 Nokia Corporation Method and business process to maintain privacy in distributed recommendation systems
WO2003017055A2 (en) * 2001-08-15 2003-02-27 Visa International Service Association Method and system for delivering multiple services electronically to customers via a centralized portal architecture
US7203343B2 (en) 2001-09-21 2007-04-10 Hewlett-Packard Development Company, L.P. System and method for determining likely identity in a biometric database
US7512652B1 (en) * 2001-09-28 2009-03-31 Aol Llc, A Delaware Limited Liability Company Passive personalization of buddy lists
US7343365B2 (en) * 2002-02-20 2008-03-11 Microsoft Corporation Computer system architecture for automatic context associations
US7899067B2 (en) * 2002-05-31 2011-03-01 Cisco Technology, Inc. Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match
US20040098458A1 (en) * 2002-09-16 2004-05-20 Husain Syed Mohammad Amir Distributed computing infrastructure including multiple collaborative sessions
US7228351B2 (en) * 2002-12-31 2007-06-05 International Business Machines Corporation Method and apparatus for managing resource contention in a multisystem cluster
US20040139072A1 (en) * 2003-01-13 2004-07-15 Broder Andrei Z. System and method for locating similar records in a database
US20060168006A1 (en) * 2003-03-24 2006-07-27 Mr. Marvin Shannon System and method for the classification of electronic communication
US7831679B2 (en) * 2003-10-15 2010-11-09 Microsoft Corporation Guiding sensing and preferences for context-sensitive services
US7257571B2 (en) * 2004-01-26 2007-08-14 Microsoft Corporation Automatic query clustering
US7433869B2 (en) * 2005-07-01 2008-10-07 Ebrary, Inc. Method and apparatus for document clustering and document sketching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134532A (en) * 1997-11-14 2000-10-17 Aptex Software, Inc. System and method for optimal adaptive matching of users to most relevant entity and information in real-time
US6697800B1 (en) * 2000-05-19 2004-02-24 Roxio, Inc. System and method for determining affinity using objective and subjective data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7012002750; Andrei Z.Broder 他: 'Min-Wise Independent Permutations' [online] , 20000630, pp.630-659 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140042A (ja) * 2007-12-04 2009-06-25 Sony Corp 情報処理装置、情報処理方法、およびプログラム
JP4538757B2 (ja) * 2007-12-04 2010-09-08 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US9572157B2 (en) 2008-03-11 2017-02-14 Intel Corporation Techniques enabling dynamic bandwidth reservation in a wireless personal area network
JP2010244470A (ja) * 2009-04-09 2010-10-28 Ntt Docomo Inc 分散処理システム及び分散処理方法
JP2014522009A (ja) * 2011-04-25 2014-08-28 アルカテル−ルーセント 推奨サービスにおけるプライバシー保護
JP2013130965A (ja) * 2011-12-20 2013-07-04 Hitachi Ltd データ分析装置、データ分析方法及びプログラム
JP2013156960A (ja) * 2012-01-31 2013-08-15 Fujitsu Ltd 生成プログラム、生成方法、および生成システム
US9921874B2 (en) 2012-06-05 2018-03-20 Fujitsu Limited Storage medium, information processing device, and information processing method
JP2015532737A (ja) * 2012-07-16 2015-11-12 アルカテル−ルーセント ユーザ関心プロファイルのプライバシ保護されたクラスタ化のシステムおよび方法
JP2014038616A (ja) * 2012-08-15 2014-02-27 Hon Hai Precision Industry Co Ltd 大量データのインデックス構築システム及びその構築方法

Also Published As

Publication number Publication date
CA2619076C (en) 2014-02-11
JP5538510B2 (ja) 2014-07-02
WO2007022199A3 (en) 2009-05-22
US7962529B1 (en) 2011-06-14
CN102682059A (zh) 2012-09-19
CN102682059B (zh) 2014-11-12
US20120191714A1 (en) 2012-07-26
EP1915669A4 (en) 2011-01-05
JP2013033551A (ja) 2013-02-14
JP5230421B2 (ja) 2013-07-10
US20070038659A1 (en) 2007-02-15
EP1915669A2 (en) 2008-04-30
CA2619076A1 (en) 2007-02-22
US8185561B1 (en) 2012-05-22
WO2007022199A2 (en) 2007-02-22
US7739314B2 (en) 2010-06-15
CN101535944A (zh) 2009-09-16

Similar Documents

Publication Publication Date Title
JP5230421B2 (ja) 集合の類似性に基づく拡張性に富むユーザクラスタリング
US10762539B2 (en) Resource estimation for queries in large-scale distributed database system
US9177048B1 (en) Collaborative filtering
KR101475964B1 (ko) 공유되는 커스터마이즈가능한 멀티-테넌트 데이터의 메모리내 캐싱
US8407226B1 (en) Collaborative filtering
US8458159B2 (en) Automatic role determination for search configuration
Bao et al. An evolutionary multitasking algorithm for cloud computing service composition
US20070288465A1 (en) Method and apparatus for analyzing community evolution in graph data streams
US11403663B2 (en) Ad preference embedding model and lookalike generation engine
Blake et al. Workflow composition of service level agreements for web services
Sisodia et al. Fast prediction of web user browsing behaviours using most interesting patterns
Surianarayanan et al. An approach for selecting best available services through a new method of decomposing QoS constraints
Nguyen et al. Analyzing and visualizing web server access log file
US11244238B2 (en) Search query result set count estimation
US20030160609A9 (en) Method and facility for storing and indexing web browsing data
Volk et al. New e-commerce user interest patterns
Qu et al. SLO-aware deployment of web applications requiring strong consistency using multiple clouds
US9418157B2 (en) Mapping system for not provided keyword in secure search
JP7230231B2 (ja) 同じグループ内の異種サブグループ間でのロバストなモデル性能
JP7237194B2 (ja) プライバシーを守る機械学習予測
JP7223164B2 (ja) データインテグリティの最適化
US20230259815A1 (en) Machine learning techniques for user group based content distribution
JPH10260970A (ja) 情報検察システム及び方法
Varanasi User-based recommendation algorithm on Hadoop cluster
ANUSHA et al. Towards Keyword Based Recommendation for Big Data Applications

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090814

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121119

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121211

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130319

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5230421

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees