JP7254922B2 - コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴 - Google Patents

コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴 Download PDF

Info

Publication number
JP7254922B2
JP7254922B2 JP2021527201A JP2021527201A JP7254922B2 JP 7254922 B2 JP7254922 B2 JP 7254922B2 JP 2021527201 A JP2021527201 A JP 2021527201A JP 2021527201 A JP2021527201 A JP 2021527201A JP 7254922 B2 JP7254922 B2 JP 7254922B2
Authority
JP
Japan
Prior art keywords
content
application
computing device
cluster
class
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.)
Active
Application number
JP2021527201A
Other languages
English (en)
Other versions
JP2022542623A (ja
Inventor
ガン・ワン
マルセル・エム・エム・ユン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2022542623A publication Critical patent/JP2022542623A/ja
Priority to JP2023051920A priority Critical patent/JP2023093476A/ja
Priority to JP2023051923A priority patent/JP2023098897A/ja
Application granted granted Critical
Publication of JP7254922B2 publication Critical patent/JP7254922B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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/906Clustering; Classification
    • 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/904Browsing; Visualisation therefor
    • 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/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • 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/951Indexing; Web crawling techniques
    • 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/9536Search customisation based on social or collaborative filtering
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/04Physical realisation
    • G06N7/046Implementation by means of a neural network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Bioethics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

関連出願の相互参照
本出願は、2019年8月8日に出願された「Low Entropy Browsing History for Content Quasi-Personalization」という表題の米国特許出願第16/535,912号の優先権を主張し、この全体が参照によって本明細書に組み込まれる。
インターネットなどのコンピュータネットワーク接続された環境では、コンテンツプロバイダが、クライアントデバイス上で実行されるアプリケーション(たとえば、ウェブブラウザ)によって処理されレンダリングされる情報リソース(たとえば、ウェブページ)へと挿入されることになる、コンテンツアイテムを提供することができる。
パーソナライズされたコンテンツ配信は通常、デバイスのブラウジング履歴またはアクセス履歴などの、ユーザおよび/またはデバイスの識別情報を捕捉することに基づく。しかしながら、これは、デバイスおよびユーザのプライバシーとセキュリティに重大な影響を与える。オプトアウトおよびdo-not-trackポリシーは、ユーザのプライバシーについての何らかの制御手段をユーザに与えるが、関連するコンテンツをコンテンツプロバイダが提供する能力を損ねる。
本明細書において論じられるシステムおよび方法は、数百万個または数十億個のデバイスなどの、大量のデバイスの集約されたブラウジング履歴を介した、コンテンツの擬似パーソナライゼーションまたは匿名化されたコンテンツ取り出しを可能にする。疎行列を、集約されたブラウジング履歴から構築し、次元削減することができ、エントロピーを低減し、個々のデバイスの匿名性をもたらす。個々のデバイスの詳細をコンテンツプロバイダに曝すことなく、関連するコンテンツが、類似するブラウジング履歴を表す擬似パーソナライズされたクラスタを介して選択され得る。
一態様では、本開示は、匿名化されたコンテンツ取り出しのための方法を対象とする。方法は、コンピューティングデバイスのブラウザアプリケーションによって、コンピューティングデバイスのブラウジング履歴に基づいてプロファイルを生成するステップを含む。方法は、ブラウザアプリケーションによって、プロファイルをn次元ベクトルとして符号化するステップも含む。方法は、ブラウザアプリケーションによって、n次元ベクトルから次元削減ベクトルを計算するステップも含む。方法は、ブラウザアプリケーションによって、次元削減ベクトルに対応する第1のクラスタを決定するステップも含む。方法は、ブラウザアプリケーションによってコンテンツサーバに、コンテンツのアイテムに対する要求を送信するステップも含み、要求は第1のクラスタの識別情報を備える。方法は、ブラウザアプリケーションによってコンテンツサーバから、第1のクラスタの識別情報に従って選択されるコンテンツのアイテムを受信するステップも含む。
いくつかの実装形態では、方法は、ブラウジング履歴のログから、所定の期間内の複数のアドレスの各々へのアクセス回数nを特定することによって、コンピューティングデバイスのユーザのブラウジング履歴に基づいてプロファイルを生成するステップを含む。いくつかの実装形態では、方法は、所定の期間内における文字列の中の対応する位置と関連付けられるアドレスへの1回または複数のアクセスの各々を表す値を伴う、その文字列を生成するステップを含む。
いくつかの実装形態では、方法は、n次元ベクトルの特異値分解を実行するステップを含む。さらなる実装形態では、方法は、第2のコンピューティングデバイスから、特異値分解の特異ベクトルのセットを受信するステップを含む。またさらなる実装形態では、方法は、第2のコンピューティングデバイスに、n次元ベクトルを送信するステップを含み、第2のコンピューティングデバイスは、コンピューティングデバイスのn次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて、特異ベクトルのセットを計算する。
いくつかの実装形態では、方法は、第2のコンピューティングデバイスから、複数のクラスタの各々の境界を受信するステップを含む。さらなる実装形態では、方法は、複数のクラスタのうちの第1のクラスタを、次元削減ベクトルが第1のクラスタの境界内にあることに応答して選択するステップを含む。
いくつかの実装形態では、方法は、ブラウザアプリケーションによって第2のコンピューティングデバイスから、コンピューティングデバイスのn次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて決定されるニューラルネットモデルの重みを受信するステップと、ブラウザアプリケーションの機械学習システムによって、ニューラルネットモデルを次元削減ベクトルに適用してクラスタの所定のセットのランキングを生成するステップと、ブラウザアプリケーションによって、第1のクラスタをクラスタの所定のセットの最上位のランクのクラスタとして選択するステップとを含む。
別の態様では、本開示は、匿名化されたコンテンツ取り出しのための方法を対象とする。方法は、サーバコンピューティングデバイスによって複数のクライアントコンピューティングデバイスの各々から、対応するクライアントコンピューティングデバイスのブラウジング履歴に基づいてプロファイルを受信するステップを含み、各プロファイルはn次元ベクトルを備える。方法は、サーバコンピューティングデバイスによって、複数のプロファイルの複数のn次元ベクトルを行列へと集約するステップも含む。方法は、サーバコンピューティングデバイスによって、行列の特異値分解を計算して特異値のセットを生成するステップも含む。方法は、サーバコンピューティングデバイスによって複数のクライアントコンピューティングデバイスおよび少なくとも1つのコンテンツプロバイダデバイスの各々に、特異値のセットを送信するステップも含む。
いくつかの実装形態では、方法は、サーバコンピューティングデバイスによって、行列のクラスタのセットの各クラスタの境界を決定するステップを含む。さらなる実装形態では、方法は、サーバコンピューティングデバイスによって複数のクライアントコンピューティングデバイスの各々および少なくとも1つのコンテンツプロバイダデバイスに、行列のクラスタのセットの各クラスタの境界を送信するステップを含む。
いくつかの実装形態では、方法は、サーバコンピューティングデバイスによって、行列からニューラルネットモデルを介してクラスタのセットの各クラスタを特定するステップを含む。さらなる実装形態では、方法は、ニューラルネットモデルの重みを複数のクライアントコンピューティングデバイスの各々および少なくとも1つのコンテンツプロバイダデバイスに送信するステップを含む。
さらに別の態様では、本開示は、匿名化されたコンテンツ取り出しのためのシステムを対象とする。システムは、コンテンツサーバと通信しているネットワークインターフェースを備えるコンピューティングデバイスと、コンピューティングデバイスのブラウジング履歴を記憶するメモリと、ブラウザアプリケーションとを含む。ブラウザアプリケーションは、コンピューティングデバイスのブラウジング履歴に基づいてプロファイルを生成し、n次元ベクトルとしてプロファイルを符号化し、n次元ベクトルから次元削減ベクトルを計算し、次元削減ベクトルに対応する第1のクラスタを決定し、ネットワークインターフェースを介してコンテンツサーバに、コンテンツのアイテムに対する要求を送信し、要求が第1のクラスタの識別情報を備え、ネットワークインターフェースを介してコンテンツサーバから、第1のクラスタの識別情報に従って選択されたコンテンツのアイテムを受信するように構成される。
いくつかの実装形態では、ブラウザアプリケーションはさらに、所定の期間内における文字列の中の対応する位置と関連付けられるアドレスへの1回または複数のアクセスの各々を表す値を伴う、その文字列を生成するように構成される。いくつかの実装形態では、ブラウザアプリケーションはさらに、n次元ベクトルの特異値分解を実行するように構成される。さらなる実装形態では、ブラウザアプリケーションはさらに、ネットワークインターフェースを介して第2のコンピューティングデバイスから、特異値分解の特異ベクトルのセットを受信するように構成される。またさらなる実装形態では、ブラウザアプリケーションはさらに、ネットワークインターフェースを介して第2のコンピューティングデバイスに、n次元ベクトルを送信するように構成され、第2のコンピューティングデバイスは、コンピューティングデバイスのn次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて、特異ベクトルのセットを計算する。
いくつかの実装形態では、ブラウザアプリケーションはさらに、ネットワークインターフェースを介して第2のコンピューティングデバイスから、コンピューティングデバイスのn次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて決定されるニューラルネットモデルの重みを受信し、ニューラルネットモデルを次元削減ベクトルに適用してクラスタの所定のセットのランキングを生成し、第1のクラスタをクラスタの所定のセットの最上位のランクのクラスタとして選択するように構成される。
少なくとも1つの態様は、コンテンツの選択のために識別子を符号化する方法を対象とする。クライアントデバイス上で実行される第1のアプリケーションは、クライアントデバイスに維持されているブラウジング履歴を特定することができる。ブラウジング履歴は、第1のアプリケーションを介してクライアントデバイスによってアクセスされる情報リソースを記録することができる。第1のアプリケーションは、第1のアプリケーションのブラウジング履歴に分類モデルを適用し、第1のアプリケーションを類別すべきクラスを特定することができる。第1のアプリケーションは、特定されたクラスに対応するクラス識別子に第1のアプリケーションを割り当てることができる。第1のアプリケーションのクラス識別子は、第2のアプリケーションのクラス識別子と同一であり得る。第1のアプリケーションは、コンテンツパブリッシャデバイスから、主要コンテンツを備える情報リソースと、コンテンツ選択サービスからコンテンツを受信するのに利用可能なコンテンツスロットとを受信することができる。第1のアプリケーションは、情報リソースのコンテンツスロットに対して、第1のアプリケーションのクラス識別子を含むコンテンツに対する要求を生成することができる。第1のアプリケーションは、コンテンツに対する要求をコンテンツ選択サービスに送信することができる。コンテンツ選択サービスは、第1のアプリケーションのクラス識別子および第2のアプリケーションのクラス識別子を使用して、情報リソースのコンテンツスロットへと挿入すべきコンテンツアイテムを選択することができる。
いくつかの実装形態では、第1のアプリケーションは、アプリケーション管理者サービスから、アプリケーションを複数のクラスのうちの1つへと類別するための分類モデルを更新するためのパラメータのセットを受信することができる。いくつかの実装形態では、第1のアプリケーションは、アプリケーション管理者サービスから受信されたパラメータのセットに基づいて、クライアントデバイスに維持されている分類モデルを修正することができる。いくつかの実装形態では、第1のアプリケーションは、対応する複数のクライアントデバイス上で実行される複数のアプリケーションと共同で分散型学習プロトコルを使用して、クライアントデバイスに維持されている分類モデルを訓練することができる。
いくつかの実装形態では、第1のアプリケーションは、次元削減プロセスを使用して、クライアントデバイスから特定されるブラウジング履歴から削減された特徴ベクトルのセットを生成することができ、特徴ベクトルはブラウジング履歴よりファイルサイズが小さい。いくつかの実装形態では、分類モデルを適用するステップは、ブラウジング履歴から生成された削減された特徴ベクトルのセットに分類モデルを適用するステップを含み得る。
いくつかの実装形態では、第1のアプリケーションは、識別子割当てポリシーに従って、分類モデルがブラウジング履歴に適用されるべきであると決定することができる。いくつかの実装形態では、分類モデルを適用するステップは、識別子割当てポリシーに従って分類モデルが適用されるべきであるとの決定に応答して、分類モデルを適用するステップを含み得る。
いくつかの実装形態では、分類モデルを適用するステップは、分類モデルを適用して複数のクラスからクラスを特定するステップを含み得る。複数のクラスの各クラスは、クラスに類別されるべき少なくとも所定の数のクラスを有し得る。いくつかの実装形態では、第1のアプリケーションをクラス識別子に割り当てるステップはさらに、第1のアプリケーションを複数のクラス識別子のクラス識別子に割り当てるステップを含み得る。各クラス識別子は、複数のクラスのうちの1つに対応し得る。
いくつかの実装形態では、コンテンツに対する要求を生成するステップは、第1のアプリケーションと関連付けられるアカウント、第1のアプリケーション、またはコンテンツ選択サービスによって提供されるクライアントデバイスに対応する固有の追跡識別子なしで、コンテンツに対する要求を生成するステップを含み得る。いくつかの実装形態では、コンテンツに対する要求を生成するステップは、コンテンツ選択サービスとの接続を介した送信のために、セキュアクッキーを備えるコンテンツに対する要求を生成するステップを含み得る。セキュアクッキーは、第1のアプリケーションのクラス識別子を有し得る。いくつかの実装形態では、ブラウジング履歴を特定するステップは、分類モデルを適用すべき所定の時間範囲にわたってブラウジング履歴を特定するステップを含み得る。
少なくとも1つの態様は、コンテンツの選択のための識別子を符号化するためのシステムを対象とする。システムは、1つまたは複数のプロセッサを有するクライアントデバイス上で実行可能な第1のアプリケーションを含み得る。クライアントデバイス上で実行される第1のアプリケーションは、クライアントデバイスに維持されているブラウジング履歴を特定することができる。ブラウジング履歴は、第1のアプリケーションを介してクライアントデバイスによってアクセスされる情報リソースを記録することができる。第1のアプリケーションは、第1のアプリケーションのブラウジング履歴に分類モデルを適用し、第1のアプリケーションを類別すべきクラスを特定することができる。第1のアプリケーションは、特定されたクラスに対応するクラス識別子に第1のアプリケーションを割り当てることができる。第1のアプリケーションのクラス識別子は、第2のアプリケーションのクラス識別子と同一であり得る。第1のアプリケーションは、コンテンツパブリッシャデバイスから、主要コンテンツを備える情報リソースと、コンテンツ選択サービスからコンテンツを受信するのに利用可能なコンテンツスロットとを受信することができる。第1のアプリケーションは、情報リソースのコンテンツスロットに対して、第1のアプリケーションのクラス識別子を含むコンテンツに対する要求を生成することができる。第1のアプリケーションは、コンテンツに対する要求をコンテンツ選択サービスに送信することができる。コンテンツ選択サービスは、第1のアプリケーションのクラス識別子および第2のアプリケーションのクラス識別子を使用して、情報リソースのコンテンツスロットへと挿入すべきコンテンツアイテムを選択することができる。
いくつかの実装形態では、第1のアプリケーションは、アプリケーション管理者サービスから、アプリケーションを複数のクラスのうちの1つへと類別するための分類モデルを更新するためのパラメータのセットを受信することができる。いくつかの実装形態では、第1のアプリケーションは、アプリケーション管理者サービスから受信されたパラメータのセットに基づいて、クライアントデバイスに維持されている分類モデルを修正することができる。いくつかの実装形態では、第1のアプリケーションは、対応する複数のクライアントデバイス上で実行される複数のアプリケーションと共同で分散型学習プロトコルを使用して、クライアントデバイスに維持されている分類モデルを訓練することができる。
いくつかの実装形態では、第1のアプリケーションは、次元削減プロセスを使用して、クライアントデバイスから特定されるブラウジング履歴から削減された特徴ベクトルのセットを生成することができ、特徴ベクトルはブラウジング履歴よりファイルサイズが小さい。いくつかの実装形態では、第1のアプリケーションは、ブラウジング履歴から生成された削減された特徴ベクトルのセットに分類モデルを適用することができる。
いくつかの実装形態では、第1のアプリケーションは、識別子割当てポリシーに従って、分類モデルがブラウジング履歴に適用されるべきであると決定することができる。いくつかの実装形態では、第1のアプリケーションは、識別子割当てポリシーに従って分類モデルが適用されるべきであるとの決定に応答して、分類モデルを適用することができる。
いくつかの実装形態では、第1のアプリケーションは、分類モデルを適用して複数のクラスからクラスを特定することができる。複数のクラスの各クラスは、クラスに類別されるべき少なくとも所定の数のクライアントを有し得る。いくつかの実装形態では、第1のアプリケーションは、第1のアプリケーションを複数のクラス識別子のクラス識別子に割り当てることができる。各クラス識別子は、複数のクラスのうちの1つに対応し得る。
いくつかの実装形態では、第1のアプリケーションは、第1のアプリケーションと関連付けられるアカウント、第1のアプリケーション、またはコンテンツ選択サービスによって提供されるクライアントデバイスに対応する固有の追跡識別子なしで、コンテンツに対する要求を生成する。いくつかの実装形態では、第1のアプリケーションは、コンテンツ選択サービスとの接続を介した送信のために、セキュアクッキーを備えるコンテンツに対する要求を生成する。セキュアクッキーは、第1のアプリケーションのクラス識別子を有し得る。いくつかの実装形態では、第1のアプリケーションは、分類モデルを適用すべき所定の時間範囲にわたってブラウジング履歴を特定することができる。
本開示は、コンピューティングデバイスによって実行されると、本明細書において開示される方法のいずれかをコンピューティングデバイスに実行させる命令を備えるコンピュータプログラムも提供する。本開示は、コンピューティングデバイスによって実行されると、本明細書において開示される方法のいずれかをコンピューティングデバイスに実行させる命令を備える、コンピュータ可読媒体も提供する。
一態様の任意選択の特徴は、任意の他の態様と組み合わせられ得る。
1つまたは複数の実装形態の詳細は、以下の添付の図面および説明に記載される。本開示の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかになるであろう。
いくつかの実装形態による、例示的なプロファイルベクトルの図である。 いくつかの実装形態による、疎行列へのプロファイルベクトルの集約の図である。 いくつかの実装形態による、擬似パーソナライズされたクラスタリングを提供するための匿名化のためのプロセスの図である。 いくつかの実装形態による、擬似パーソナライズされたクラスタリングを提供するための匿名化のためのシステムのブロック図である。 いくつかの実装形態による、擬似パーソナライズされたクラスタリングを提供するための匿名化のための方法のフローチャートである。 例示的な実装形態による、分類モデルを使用したコンテンツの選択のための識別子を符号化するためのシステムを示すブロック図である。 例示的な実装形態による、分類モデルを使用したコンテンツの選択のための識別子を符号化するためのシステムにおけるクライアントデバイスおよびアプリケーション管理サービスを示すブロック図である。 例示的な実装形態による、分類モデルを使用したコンテンツの選択のための識別子を符号化するためのシステムにおける、クライアントデバイス、コンテンツプロバイダ、コンテンツパブリッシャ、およびコンテンツ選択サービスを示すブロック図である。 例示的な実装形態による、分類モデルを使用したコンテンツの選択のための識別子を符号化するためのシステムにおけるクライアントデバイスおよびコンテンツ選択サービスを示すブロック図である。 例示的な実装形態による、分類モデルを使用したコンテンツの選択のための識別子を符号化する方法を示すフロー図である。 例示的な実装形態による、本明細書において説明され示されるシステムおよび方法の要素を実装するために利用され得るコンピュータシステムの一般的なアーキテクチャを示すブロック図である。
様々な図面における同様の参照番号および指定は、同様の要素を示す。
個人化されたコンテンツ配信は通常、デバイスのブラウジング履歴またはアクセス履歴などの、ユーザおよび/またはデバイスの識別情報を捕捉することに基づく。たとえば、デバイスは、デバイス識別子、アカウント名、クッキー、または他のそのような情報などの識別情報を提供することがあり、コンテンツプロバイダは、パーソナライズされたコンテンツを選択する際に使用するためにこの情報を記憶することがある。結果として、コンテンツプロバイダは、個人についての大量のデータを取得することがある。これは、デバイスおよびユーザのプライバシーとセキュリティに大きな影響を与える。オプトアウトおよびdo-not-trackポリシーは、ユーザのプライバシーについての何らかの制御手段をユーザに与える(コンテンツプロバイダがそれらのポリシーに従う限り)。しかしながら、これらのポリシーは関連するコンテンツを提供するコンテンツプロバイダの能力を損ねるので、一部のコンテンツプロバイダはユーザの要求に従わない可能性がある。
本明細書において論じられるシステムおよび方法は、数百万個または数十億個のデバイスなどの、大量のデバイスの集約されたブラウジング履歴を介した、コンテンツの擬似パーソナライゼーションまたは匿名化されたコンテンツ取り出しを可能にする。たとえば、各デバイスのブラウジング履歴は、長いデータ文字列、またはn次元ベクトルとして符号化され得る。図1Aは、いくつかの実装形態による、例示的なプロファイルベクトル100の図である。プロファイルベクトルは、所与の期間内の、ドメイン、ウェブサイト、またはウェブページへのデバイスによる訪問またはアクセスの識別情報を備え得る。示される例では、ベクトルは、各曜日に対する、多数のドメイン1-nの各々へのビューまたは訪問の回数を特定する。1次元ベクトルとして示されているが、同様の実装形態では、ベクトルはn対7のアレイ(たとえば、各曜日に対して1つの行)を備え得る。他の実装形態では、追加のデータが含まれ得る(たとえば、月の各々の日、一日の中の時間帯など)。したがって、ベクトルは、大きなn次元ベクトルまたはアレイを備え得る。生成時間の識別情報、位置、IPアドレス、または任意の他のそのような情報などの、追加のデータがベクトルに含まれ得る。
上で述べられたように、多くの実装形態では、ベクトルは非常に大きいことがある。たとえば、インターネット上には約18億個のアクティブなウェブサイトがあり、3億3千万個を超える登録されたドメインがある。いくつかの実装形態では、ベクトルは、これらのドメインまたはウェブサイトのいずれかへの訪問またはアクセスを記録し得る。他の実装形態では、ベクトルは、ドメインまたはウェブサイトのサブセットのみへの訪問またはアクセスを記録し得る。たとえば、100万個未満のウェブサイトがウェブトラフィックの約50%を占める。したがって、多くの実装形態において、ベクトルは、ドメインまたはウェブサイトのサブセットへのアクセスまたは訪問を、記録または表現するだけであり得る。それにもかかわらず、多くのそのような実装形態においても、ベクトルは大きいことがあり、たとえばO(226)以上である。
図1Bの図解に示されるように、ベクトルがサーバデバイスに提供されてもよく、サーバデバイスはベクトルを他のデバイスのベクトルと集約してもよい。複数のデバイス102の各々からのプロファイルベクトル100は、非常に大きな行列を作成するために集約され得る。たとえば、ウェブ上には月間数十億人(たとえば、O(230))のアクティブユーザまたはデバイスがある。したがって、これらのデバイスの各々のプロファイルベクトル100を合成する行列はO(230×226)の次元であることがあり、またはいくつかの実装形態ではより大きいことあがる。
しかしながら、この行列は非常に疎である。典型的なユーザは、一週間などの所与の期間に、数億個の潜在的なドメインのうちのO(100)を訪れ得る。任意の所与のデバイスのブラウジング履歴の、この高度に疎な性質および冗長性により、この行列の次元を減らすことが可能である。
いくつかの実装形態では、特異ベクトル分解(SVD)などの線形次元削減技法が、行列に対する最良の近似である(たとえば、二乗誤差を最小にする)ランクX行列を計算するために使用され得る。各プロファイルベクトル100はX個の次元へと投影されてもよく、Xは行列の元の次元より小さい。各次元に対して、投影結果は2のNi乗個のバケットへと量子化されてもよく、i∈[1,X]であり、バケットの数は対応する次元の特異値に比例する。K=ΣNi個のビットが、すべてのX個の次元に対する量子化された投影結果を表すために使用され得る。一緒に連結されたそれらのビットは、デバイスのクラスタ識別子であり得る。他の実装形態では、クラスタリングアルゴリズム(たとえば、最近傍)が、次元削減された空間においてデバイスをクラスタリングするために使用され得る。
特異値ベクトルは互いに直交するので、および量子化プロセスの結果として、プロファイルベクトル間に非線形の依存性があると仮定すると、統計的に類似する数のデバイス(たとえば、デバイスの総数が大きいと仮定すると、ほぼ等しい)が各クラスタ内にあることがあり、または各クラスタに属するものとして特定されることがある。各クラスタは、クラスタ識別子、ブラウジンググループ識別子、または同様の用語で言及されることがある、識別子により表され得る。
他の実装形態では、主要成分分析などの、他の線形分解方法が使用され得る。さらに他の実装形態では、行列の次元を削減するために、非線形次元削減アルゴリズムが使用され得る。最近傍探索、潜在クラス分析などを含む、様々な分類技法が使用され得る。
図1Cは、いくつかの実装形態によるこのプロセスの図である。示されるように、ステップ120において、多数のデバイスからのプロファイルベクトルが大きい行列へと集約され得る。ステップ122において、行列が次元削減され得る。ステップ124において、クラスタが上で論じられたように特定され得る。
いくつかの実装形態では、分類システムは、クラスタ識別情報の一部として、および/またはクラスタ識別情報から訓練され得る。たとえば、いくつかの実装形態では、ニューラルネットワークが、所定の数のクラスタの一部としてデバイスを分類するために使用され得る。そのようなネットワークは、次元削減されたプロファイルベクトルを入力として、クラスタ識別子を出力として使用してもよい。様々な実装形態において、ネットワークは、教師あり学習または教師なし学習を介して訓練され得る。
いくつかの実装形態では、ニューラルネットモデルもしくはモデルに対する重みがクライアントデバイスに提供されてもよく、または、分類のための他のパラメータが提供されてもよい。次元削減から生成される特異ベクトルも、クライアントデバイスに提供され得る。したがって、ベクトルおよび/またはモデルを受信した後、クライアントは、サーバへのさらなる通信を必要とすることなく、ローカルプロファイルベクトルを使用してそれら自身の分類を生成し得る。サーバは、定期的に、たとえば毎月、または四半期ごとに、特異ベクトルおよび/または分類モデルパラメータを再生成し得る。いくつかの実装形態では、データ転送は非常に大きくなることがあり(たとえば、O(226)個の次元の各々にO(24)個の特異ベクトルであり、いくつかの実装形態では、約2GBのデータが必要になる)。いくつかの実装形態では、他のデバイスへのデータ転送を減らすために、サーバは、パラメータおよびベクトルを以前に生成されたパラメータおよびベクトルと比較して、大きな差がある(たとえば、閾値の差を超える)場合にのみ新しいセットを提供し、または、大きく変化したパラメータおよび/もしくはベクトルのサブセットのみを提供し得る。様々な実装形態において、クライアントは、これらのパラメータおよびベクトルを使用して、より頻繁に、たとえば毎日、毎時間、またはコンテンツ要求のたびに、分類をローカルで更新し得る。
同様に、いくつかの実装形態では、特異ベクトルおよび/またはモデルパラメータがコンテンツプロバイダに提供され得る。クライアントデバイスがコンテンツのアイテムを要求するとき、要求はクラスタ識別情報を含み得る。クラスタ識別情報は、HTTPS要求内、またはHTTPヘッダのオプションフィールドの中などの、要求のペイロードまたはヘッダの中に埋め込まれ得る。いくつかの実装形態では、コンテンツプロバイダは、ニューラルネットモデルまたはプロバイダ固有のニューラルネットモデルを使用して、個々のデバイスまたはユーザの特性を特定できない状態で、各クラスタ内のデバイスについて属性および/またはユーザの関心を推測し得る(たとえば、次元削減の特異ベクトルに基づいてクラスタ識別情報に対応するおおよそのプロファイルベクトルを決定し、次いで、ベクトルを機械学習システムに提供して特性を推測することによって)。
したがって、これらの実装形態は、集約、すなわち、類似するブラウジング履歴またはパターンを伴うデバイスを一緒に集約することを通じて、デバイスの匿名性をもたらす。クラスタリングアルゴリズムは、あらゆるクラスタが概ね同じ数のユーザを含むように、類似するクラスタサイズを維持することを試みる。一定の数のアクティブデバイスがインターネット上にあると仮定すると、クラスタ識別子のエントロピーがクラスタサイズを左右する(たとえば、クラスタ識別子のエントロピーが高いほど、各クラスタの中のデバイスは少なく、プライバシー保護が低下する)。クラスタ識別子のエントロピーを調整することによって(たとえば、より少数または多数のクラスタを提供することによって)、システムは、コンテンツのパーソナライゼーションの有効性を依然として維持しながら、望ましいレベルの匿名性およびプライバシー保護を達成することができる。
これらの実装形態は、プライバシーを向上させるとともに有効性を維持しながら、集約および擬似パーソナライゼーションを利用しないシステムを改良する。そのような未改良のシステムでは、デバイスのブラウジング履歴を記録して、累積された履歴に基づいて対応するユーザの属性情報および関心を推測するために、ユーザまたはデバイス識別子が使用され得る。この推測される情報は、クリックスルーレート、注意力、または他のそのような尺度などの、パーソナライズされたコンテンツ選択の有効性を予測するために使用され得る。代わりに、本明細書において論じられるシステムおよび方法を介して、ブラウジング履歴が、所与のクラスタ識別子またはグループと関連付けられるデバイスのグループのみに対して累積され得る。推測されるグループの属性および関心を、推測された有効性の尺度とともにコンテンツ選択のために依然として使用することができ、一方で、コンテンツプロバイダは、グループまたはクラスタ内のデバイスまたはユーザの特性を区別できないままである。
いくつかの実装形態では、2のK乗個の典型的なブラウジング履歴パターンが、数十億人のインターネットユーザの集約されたブラウジング履歴に基づいて定義される。各々の典型的なブラウジング履歴パターンは、固有のクラスタ識別子またはブラウジング履歴識別子を有し、これらは、各クラスタ識別子が多数のデバイスにより共有されるように、Kを何らかの小さい数としてKビットの整数によって表され得る。ユーザがパーソナライズされたコンテンツ選択のオプトアウトまたは擬似パーソナライゼーションへのオプトインを選択するとき、ユーザのデバイスのブラウザアプリケーションは、ユーザの実際のブラウジング履歴に最もよく一致する典型的なブラウジング履歴パターンを選択し得る。ブラウザは、コンテンツパーソナライゼーションの目的で、対応するクラスタ識別子をコンテンツプロバイダに提供し得る。
クラスタ識別子の典型的なブラウジング履歴パターンおよび符号化は、ほぼ等しい数のデバイスが各クラスタ識別子と関連付けられるように選ばれる。Kの値、および各コンテンツプロバイダがコンテンツ要求とともにブラウザから取得し得る他の信号(たとえば、IPアドレス、ユーザエージェント識別子など)のエントロピーを制御することによって、ブラウザは、コンテンツの擬似パーソナライゼーションを可能にしながら、ユーザの再特定リスクを大幅に低減し得る。
図2は、いくつかの実装形態による、擬似パーソナライズされたクラスタリングを提供するための匿名化のためのシステムのブロック図である。デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、スマートフォン、組み込みコンピュータ、スマートカー、または任意の他のタイプおよび形式のコンピューティングデバイスを備え得る、クライアントデバイス200が、1つまたは複数のサーバ、分類器サーバ230および/またはコンテンツサーバ250とネットワーク225を介して通信し得る。
多くの実装形態において、クライアントデバイス200は、プロセッサ202およびメモリデバイス206を含み得る。メモリデバイス206は、プロセッサによって実行されると、本明細書において説明される動作のうちの1つまたは複数をプロセッサに実行させる機械命令を記憶し得る。プロセッサ202は、マイクロプロセッサ、ASIC、FPGAなど、またはこれらの組合せを含み得る。多くの実装形態では、プロセッサは、マルチコアプロセッサまたはプロセッサのアレイであり得る。メモリデバイス206は、限定はされないが、プログラム命令をプロセッサに提供することが可能な電気的な、光学的な、磁気的な、または任意の他のストレージデバイスを含み得る。メモリデバイスは、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ROM、RAM、EEPROM、EPROM、フラッシュメモリ、光学メディア、またはプロセッサが命令をそこから読み取ることができる任意の他の適切なメモリを含み得る。命令は、限定はされないが、C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python、およびVisual Basicなどの、任意の適切なコンピュータプログラミング言語からのコードを含み得る。
クライアントデバイス200は、1つまたは複数のネットワークインターフェース204を含み得る。ネットワークインターフェース204は、10 Base T、100 Base T、もしくは1000 Base T(「Gigabit」)を含むイーサネット、802.11a、802.11b、802.11g、802.11n、もしくは802.11acなどの種々の802.11ワイヤレスのいずれか、CDMA、LTE、3G、もしくは4Gセルラーを含むセルラー、Bluetoothもしくは他の短距離ワイヤレス接続、または、ネットワークと通信するためのこれらもしくは他のインターフェースの任意の組合せを含む、任意のタイプおよび形式のインターフェースを含み得る。多くの実装形態において、クライアントデバイス200は、異なるタイプの複数のネットワークインターフェース204を含んでもよく、種々のネットワーク225への接続を可能にする。それに対応して、ネットワーク225は、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラーネットワーク、ブロードバンドネットワーク、Bluetoothネットワーク、802.11(WiFi)ネットワーク、衛星ネットワーク、または、これらもしくは他のネットワークの任意の組合せを備えてもよく、1つまたは複数の追加のデバイス(たとえば、ルータ、スイッチ、ファイヤーウォール、ハブ、ネットワークアクセラレータ、キャッシュなど)を含み得る。
クライアントデバイスは、1つまたは複数のユーザインターフェースデバイスを含み得る。ユーザインターフェースデバイスは、感覚情報(たとえば、ディスプレイへの視覚化、1つまたは複数の音、触覚フィードバックなど)によってデータをユーザに伝える、および/または、ユーザからの受け取られた感覚情報を電気信号に変換する、任意の電子デバイス(たとえば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクロフォンなど)であり得る。様々な実装形態によれば、1つまたは複数のユーザインターフェースデバイスは、内蔵ディスプレイ、タッチスクリーン、マイクロフォンなどのクライアントデバイスのハウジングの内部にあってもよく、または、クライアントデバイスに接続されるモニタ、クライアントデバイスに接続されるスピーカーなどの、クライアントデバイスのハウジングの外部にあってもよい。
メモリ206は、プロセッサ202により実行するためのアプリケーション208を備え得る。アプリケーション208は、メディアアプリケーション、ウェブブラウザ、生産性向上アプリケーション、または任意の他のそのようなアプリケーションなどの、任意のタイプおよび形式のアプリケーションを備えてもよく、ブラウザアプリケーションと本明細書で全般に呼ばれることがある。アプリケーション208は、コンテンツサーバからコンテンツを受信してもよく、クライアントデバイスのユーザのためにユーザインターフェースを介してそれを表示してもよい。
メモリ206は、アクセスログ210(クライアントデバイス200のためのログ210aとして示される)を記憶してもよく、これは、アプリケーション208の一部であってもよく、アプリケーション208によって維持されてもよい(たとえば、プロファイル、選好ファイル、履歴ファイル、または他のそのようなファイルの一部として)。アクセスログ210は、アプリケーション208によって使用可能な任意のフォーマットで記憶され得る。アクセスログは、アプリケーション208によってアクセスされ、取り出され、表示され、または別様に取得される、ウェブサイト、ドメイン、ウェブページ、コンテンツ、または他のデータの識別情報を備え得る。アクセスログ210はまた、上で論じられたようにプロファイルベクトル100を記憶してもよく、これは、アプリケーションおよび/またはデバイスのアクセス履歴から生成され得る。プロファイルベクトル100は、所定の期間(たとえば、日、週、時間帯など)の間の、1つまたは複数のドメイン、ウェブページ、ウェブサイトへのアクセスを表す値のn次元の文字列もしくはアレイ、または他のそのようなデータを備え得る。上で論じられたように、プロファイルベクトルは、分類器サーバ230に提供され得る(ステップA)。プロファイルベクトル100は、アプリケーション208またはログ削減器214によって生成されてもよく、これは、アプリケーション、サービス、デーモン、ルーチン、プラグイン、またはアクセスログからプロファイルベクトルを生成するための他の実行可能論理を備えてもよい。多くの実装形態において、ログ削減器214は、アプリケーション208の一部を備え得る。
メモリ206は特異ベクトル212も記憶し得る。上で論じられたように、特異ベクトル212は分類器サーバ230から取得されてもよく(ステップB)、これは、上で論じられたような複数のクライアントデバイス200のプロファイルベクトルの行列の次元削減から計算されてもよい。特異ベクトル212は、フラットファイル、データアレイ、または他の構造などの任意の適切なフォーマットで記憶されてもよく、多くの実装形態では圧縮されてもよい。
メモリ206は、ニューラルネットモデル216のパラメータも記憶し得る。上で論じられたように、ニューラルネットモデル216は、分類器サーバによって生成され、クライアントデバイス200に提供されるパラメータまたは重みであり得る(ステップC)。アプリケーション、サービス、サーバ、デーモン、ルーチン、または機械学習アルゴリズムを実行するための他の実行可能論理を備え得る、クライアントデバイス200の分類器218は、クライアントデバイスの次元削減されたプロファイルベクトルからクラスタ識別子220を生成するためのニューラルネットモデル216のパラメータを利用し得る。いくつかの実装形態では、分類器218は、テンソル処理ユニット、または他のそのようなハードウェアなどの、ハードウェア回路を備え得る。他の実装形態では、分類器218は、デバイスのプロセッサ202によって実行されるソフトウェアを備え得る。
メモリ206はクラスタ識別子220も記憶し得る。クラスタ識別子220は、クラスタ識別子と関連付けられるクッキーもしくは他の文字列を備えてもよく、および/または、クラスタの特性を特定する情報(たとえば、XMLコードまたはパラメータ、パラメータ値のペアなど)を符号化し、もしくは備えてもよい。クラスタ識別子220は、サーバ230によってあらかじめ決定され、または生成され、クライアントデバイス200に提供され得る。クライアントデバイスの分類器218は、各クラスタ識別子220のランクまたはスコアを生成するために、ニューラルネットモデルを使用してクライアントデバイスの次元削減されたプロファイルベクトルを処理してもよく、コンテンツ要求の間のコンテンツサーバへの送信のために最高のランクまたはスコアの識別子を選択してもよい(ステップD)。
分類器サーバ230は、1つまたは複数のサーバコンピューティングデバイスを備えてもよく、1つまたは複数の物理コンピューティングデバイス、または、1つまたは複数の物理コンピューティングデバイス(たとえば、クラウド、クラスタ、またはサーバファーム)によって実行される1つまたは複数の仮想コンピューティングデバイスを備えてもよい。分類器サーバ230は全般に、サーバ、測定サーバ、集約サーバ、または他のそのような用語で呼ばれ得る。
分類器サーバ230は、1つまたは複数のプロセッサ202、ネットワークインターフェース204、およびメモリデバイス206、ならびに示されていない他のデバイスを備え得る。分類器サーバ230は、複数のクライアントデバイス200から取得されたアクセスログおよび/またはプロファイルベクトル210a~210nをメモリに記憶し得る。上で論じられたように、アプリケーション、サーバ、サービス、ルーチン、またはプロセッサ202によって実行される他の実行可能論理を備え得る、分類器サーバ230の集約器232は、プロファイルベクトル210a~210nを行列またはn次元アレイへと集約し得る。集約器232はまた、特異ベクトル212への行列の分解または次元削減を計算してもよく、特異ベクトル212はクライアントデバイス200(およびいくつかの実装形態ではコンテンツサーバ250)に提供されてもよい。
分類器サーバ230はまた、分類器218をメモリに記憶してもよい。分類器218は、集約器232の一部であってもよく、または、プロセッサ202によって実行される別々のアプリケーション、サービス、サーバ、ルーチン、もしくは他の実行可能論理、および/または、次元削減された行列の中のクラスタを特定するためのテンソル処理ユニットなどのハードウェアプロセッサであってもよい。多くの実装形態では、分類器218は、複数のクラスタのうちの1つへと次元削減されたベクトルを分類するためのニューラルネットワークまたは同様の人工知能を備え得る。ニューラルネットワークのパラメータは、訓練されると、上で論じられたようなクラスタ識別情報またはランキングを同様に生成するために、クライアントデバイス200に提供され得る。
コンテンツサーバ250は、コンテンツ配信ネットワーク、ウェブサーバ、メディアサーバ、ソーシャルメディアサービス、または任意の他のタイプおよび形式のコンピューティングシステムを含む、任意のタイプおよび形式のコンテンツ提供サーバまたはサービスを備え得る。コンテンツサーバ250は、1つまたは複数のプロセッサ202、ネットワークインターフェース204、およびメモリデバイス206を備え得る。多くの実装形態において、コンテンツサーバ250は、複数のコンテンツアイテム252を記憶してもよく、これは、テキスト、オーディオ、ビデオ、アニメーション、画像、実行可能スクリプト、ウェブページ、または任意の他のそのようなデータを含む、任意のタイプおよび形式のコンテンツを備えてもよい。
コンテンツサーバ250はコンテンツ選択器254を備えてもよく、それは、ウェブサーバもしくはファイルサーバの一部であってもよく、または、クライアントデバイスへ配信するコンテンツを選択するための、別々のアプリケーション、サービス、サーバ、デーモン、ルーチン、または他の実行可能論理であってもよい。コンテンツは、デバイスの推測される特性に基づいて選択され得る。コンテンツサーバは、デバイスからのコンテンツに対する要求とともにクラスタ識別子を受信してもよく、そのクラスタのデバイスに対する推測された特性に基づいてコンテンツを選択してもよい。いくつかの実装形態では、コンテンツサーバは、集約クラスタを表す対応するプロファイルベクトルにクラスタ識別子を拡張するために、分類器サーバ230から取得される特異ベクトルを使用し得る。クラスタのプロファイルベクトルは、任意の特定のデバイスのプロファイルベクトルと一致しないことがあるが、クラスタと関連付けられるすべてのデバイスのベクトルの近似または平均であってもよい。
図3は、いくつかの実装形態による、擬似パーソナライズされたクラスタリングを提供するための匿名化のための方法のフローチャートである。ステップ302において、クライアントデバイス200は、アクセスログまたはアクセスログから生成されたプロファイルベクトルを分類器サーバ230に提供し得る。上で論じられたように、プロファイルベクトルは、クライアントデバイスのブラウジング履歴またはアクセス履歴に基づいてもよく、所定の期間内における文字列またはアレイの中の対応する位置と関連付けられるアドレスへの1回または複数のアクセスの各々を表す値を伴う、n次元のベクトルまたはその文字列を備えてもよい。
ステップ304において、分類器サーバ230は、1つまたは複数の追加のクライアントデバイス200から取得されるプロファイルベクトルまたはログを伴う行列へと、クライアントデバイス200からのプロファイルベクトルまたはログを集約し得る。プロファイルベクトルは、分類器サーバ230によって定期的に、または、分類器サーバもしくは関連するサーバによって提供されるサービスへのログインのときに取得され得る。ステップ302~304が、312において特異ベクトルを利用して314において次元削減を実行できるすべてのデバイスのうちのごく一部であり得る、複数のクライアントデバイスについて繰り返され得る。いくつかの実装形態では、ステップ302からステップ312はクライアントデバイス上での連合学習で置き換えられてもよく、分類器サーバ230は任意選択であっても、または除去されてもよい。
ステップ306において、分類器サーバ230は、行列の次元削減または分解を計算し得る。いくつかの実装形態では、分類器サーバは、特異値分解アルゴリズムを使用してもよく、複数の特異ベクトルおよび次元削減された行列を生成してもよい。
ステップ308において、分類器サーバは任意選択で、次元削減された行列のクラスタのクラスタ境界またはパラメータを特定し得る。分類器サーバは、主要成分分析などの任意の適切なアルゴリズム、または、クラスタを識別するためのニューラルネットワークなどの機械学習システムを使用し得る。
ステップ310において、いくつかの実装形態では、分類器モデルは、特定されたクラスタおよび次元削減されたプロファイルベクトルに基づいて、調整または訓練され得る。様々な実装形態において、訓練は教師ありまたは教師なしであり得る。
ステップ312において、特異ベクトル、およびいくつかの実装形態では、ニューラルネットモデルまたは他の学習アルゴリズムの重みが、クライアントデバイス200に、およびいくつかの実装形態では、1つまたは複数のコンテンツサーバ250に提供され得る。
ステップ314において、クライアントデバイス200は、分類器サーバから受信された特異ベクトルを使用して、プロファイルベクトルの次元削減またはデバイスのアクセスログを計算し得る。次元削減ベクトルは、ステップ316において、分類器サーバから受信されたモデルパラメータを使用して、およびステップ318において決定された分類を使用して、人工知能またはニューラルネットワークを介して分類され得る。分類を決定することは、デバイスのプロファイルベクトルに対する(たとえば、いくつかの実装形態では、分類器サーバによって特定され、パラメータを介して提供される)複数のクラスタの各々のスコアまたはランクを計算することを備え得る。
ステップ320において、クライアントデバイスは、1つまたは複数のコンテンツサーバ250にコンテンツのアイテムに対する要求を送信し得る。要求は、デバイスのプロファイルベクトルに対応するクラスタの識別情報を備え得る。要求は、メディアのアイテムもしくはメディアのアイテムの一部の再生の完了の後で、または任意の他のそのような状況の後で、ウェブページ上でのスクリプトの実行に応答して生成され得る。
ステップ322において、コンテンツサーバは、分類器サーバから受信された分類器モデルパラメータおよび特異ベクトルに基づいて、クラスタの特性を決定し得る。いくつかの実装形態では、コンテンツサーバは、クラスタの中のすべてのデバイスの集約ブラウジング履歴を表すプロファイルベクトルを計算するために特異ベクトルを使用してもよく、次いで、履歴の様相(たとえば、ウェブページまたはドメインまたは他のコンテンツ、他の関連するドメインまたはウェブページなどと関連付けられる、キーワード/話題)に基づいてクラスタの特性を推測してもよい。ステップ324において、コンテンツサーバは、コンテンツのアイテムを選択するために、要求の中のクラスタ識別情報(または、上で論じられたようにクラスタと関連付けられる推測された特性)を使用し得る。ステップ326において、コンテンツがクライアントデバイスに送信されてもよく、ステップ328において、クライアントデバイスがコンテンツアイテムをレンダリングまたは表示してもよい。
したがって、本明細書において論じられるシステムおよび方法は、数百万個または数十億個のデバイスなどの、多数のデバイスの集約されたブラウジング履歴を介したコンテンツの擬似パーソナライゼーションまたは匿名化されたコンテンツ取り出しを可能にする。疎行列を、集約されたブラウジング履歴から構築し、次元削減することができ、エントロピーを低減し、個々のデバイスの匿名性をもたらす。個々のデバイスの詳細をコンテンツプロバイダに曝すことなく、関連するコンテンツが、類似するブラウジング履歴を表す擬似パーソナライズされたクラスタを介して選択され得る。
ネットワーク接続された環境では、クライアントデバイス上で実行されるアプリケーション(たとえば、ウェブブラウザ)は、コンテンツパブリッシャによって提供される主要コンテンツと、補足コンテンツのための1つまたは複数のコンテンツスロット(たとえば、インラインフレーム)とを伴う、情報リソース(たとえば、ウェブページ)を受信することができる。情報リソースは、コンテンツスロットへと挿入すべきコンテンツ選択サービスからのコンテンツプロバイダのコンテンツアイテムの取り出しを指定する、コードスニペットまたはスクリプト(たとえば、コンテンツ選択タグ)を含み得る。情報リソースのスクリプトを解析すると、アプリケーションは、コンテンツスロットへと挿入すべきコンテンツに対する要求を生成することができ、要求をコンテンツ選択サービスに送信することができる。要求の受信に応答して、コンテンツ選択サービスは、情報リソースのコンテンツスロットへと埋め込むべき、コンテンツプロバイダによって供給されるコンテンツアイテムのうちの1つを選択することができる。
コンテンツ選択サービスによるコンテンツアイテムの選択は、ユーザに固有の(またはアカウントを介した)確定的追跡識別子の使用、ユーザにより操作されるクライアントデバイス、またはクライアントデバイス上で実行されるアプリケーションに依存し得る。識別子は、クライアントデバイス上に維持され、クッキーを介してコンテンツ選択サービスによってアクセスされ得る。クッキーは、たとえば、情報リソースのためのコンテンツパブリッシャのドメインとは異なるコンテンツ選択サービスのドメインと関連付けられるサードパーティクッキーであり得る。情報リソースのコンテンツスロットがコンテンツ選択サービスからのコンテンツの取り出しを指定するとき、識別子を含むクッキーがクライアントデバイスからコンテンツ選択サービスに渡され得る。クッキーを使用して、コンテンツ選択サービスは、どの情報リソースがユーザによってクライアントデバイス上で実行されるアプリケーションを介してアクセスされるかを追跡することができる。加えて、コンテンツ選択サービスは、追跡される情報リソースに基づいて、クライアントデバイス上のアプリケーションを操作するユーザに関連があると決定されるコンテンツアイテムを特定することができる。
これらの固有の追跡識別子の使用は、特定のユーザに対してカスタマイズされるコンテンツアイテムの選択を可能にするが、特にデータのセキュリティおよび完全性に関して多くの欠点があり得る。1つには、クライアントデバイスとコンテンツ選択サービスとの間でやり取りされるユーザデータについてのデータセキュリティリスクに、ユーザが曝され得る。たとえば、コンテンツ選択サービスの管理者が、ユーザの同意なしで私的なユーザデータを第三者へ意図的に提供する可能性がある。加えて、権限のない悪意のあるエンティティが、サードパーティクッキーを輸送中に傍受する可能性があり、固有の追跡識別子を使用して影響を受けるクライアントデバイスとアプリケーションのオンライン活動を監視する可能性がある。別のこととして、そのような識別子を使用してアクセスされる情報リソースの集合体により、コンテンツ選択サービスの一部でデータ漏洩の恐れが生じ得る。たとえば、その一部が特定のユーザへと個別にトレースバックされ得るデータの過誤による公開、またはそのような収集されたデータを窃取しようとする悪意のある攻撃は、ユーザのデータプライバシーの喪失につながり得る。
固有の追跡識別子についての問題を考慮する1つの手法は、クライアントデバイスからの固有の追跡識別子を伴うサードパーティクッキーの無効化を含み得る。クライアントデバイス上で実行されるアプリケーションは、固有の追跡識別子の生成、維持、またはコンテンツ選択サービスへの送信を禁止するように構成され得る。しかし、サードパーティクッキーの制約は、無数の他の問題を引き起こし得る。サードパーティクッキーの無効化により、コンテンツ選択サービスは、アプリケーションを介してクライアントデバイスによってどの情報リソースがアクセスされるかを追跡することが不可能であり得る。したがって、コンテンツに対する要求が受信されると、コンテンツ選択サービスは、アプリケーションを操作するユーザとのコンテンツアイテムの関連性を決定する際に、そのような情報を使用することが可能ではないことがある。結果として、選択されたコンテンツアイテムは、追跡識別子を使用して選択されるコンテンツアイテムよりも、クライアントデバイスのユーザとの相互作用の可能性がより低くなり得る。結果として、コンテンツアイテムがその上での表示のために挿入される情報リソースは、人-コンピュータの対話(HCI)の品質の低下を被ることがある。
コンテンツを選択する際に個々のクライアントデバイスまたはアプリケーションを追跡するために固有の識別子の使用を禁止することについての技術的な課題に対処するために、各アプリケーションは、ローカルに維持されているブラウジング履歴に基づいて、多数のクラスタのうちの1つへと自身を類別することができる。類似のブラウジングパターンを伴うアプリケーション、およびそれを拡張すると、そのアプリケーションを操作するユーザは、同じクラスタに類別され得る。類似するブラウジングパターンを伴い、同じクラスタに類別されるユーザは、類似する特質および関心を有するものとして相関付けられ得るので、同じコンテンツアイテムに対する類似する応答を有する可能性がより高いことがある。各クラスタは、多数の関連するユーザ(たとえば、1000より大きい)を有し得るので、クラスタへのユーザの類別は、個々のユーザに特有の特性ではないことがある。
自身をクラスタのうちの1つに割り当てる際、アプリケーションは、あらかじめ設定された数の次元を伴うベクトルへとブラウジング履歴を変換または符号化することができる。ベクトルは、多数の次元があり疎であり得る。たとえば、特徴ベクトルの中の1つの要素は、ユーザが特定のドメイン、ウェブサイトのセクション、特定のカテゴリ(たとえば、休暇)のウェブページ、またさらには特定のURLを、特定の時間スロットに(たとえば、一日の特定の時間および特定の曜日に)訪問したかどうかを示すことができる。アプリケーションは次いで、次元削減技法(たとえば、線形削減、非線形削減、またはランダム投影技法)を適用して、より低次元の空間の別のベクトルにベクトルをマッピングすることができる。アプリケーションは次いで、クラスタリングまたは分類アルゴリズム(たとえば、k最近傍アルゴリズム、線形分類、サポートベクターマシン、およびパターン認識)を削減されたベクトルに適用して、アプリケーション、およびそれを拡張すると、ユーザを割り当てるべきクラスタを特定することができる。クラスタリングアルゴリズムは、アプリケーションのためにアプリケーションマネージャ(たとえば、ブラウザベンダ)によって提供され更新され得る。
クラスタリングアルゴリズムを使用してクラスタを発見すると、アプリケーションは、クラスタのためのクラスタ識別子(クラス識別子またはブラウジング履歴識別子とも呼ばれる)を特定することができる。クラスタ識別子は、アプリケーションマネージャによって各クラスタに割り当てられてもよく、アプリケーションおよびコンテンツ選択サービスに提供されてもよい。固有の確定的追跡識別子とは対照的に、クラスタ識別子は、1つの個々のユーザ、アプリケーション、またはクライアントデバイスに特有ではないことがある。複数のユーザが同じクラスタへと類別されてもよく、クラスタ識別子はまた、類似するブラウジングパターンを伴う複数のユーザ、アプリケーション、またはクライアントデバイスに共通であってもよい。クラスタ識別子は複数のユーザで共有されるので、クラスタ識別子は、個々のユーザに割り当てられた固有の追跡識別子より低いエントロピーを有し得る。たとえば、すべてのインターネットユーザに対する固有の確定的追跡識別子は30ビットを超えるエントロピーを有し得るが、クラスタ識別子は18から22ビットのエントロピーに設定され得る。エントロピーがより低いことで、クラスタ識別子自体が、固有の追跡識別子より短くサイズが小さくなり得る。
コンテンツスロットを伴う情報リソースが受信されると、アプリケーションは、固有の追跡識別子の代わりに、コンテンツスロットのためのコンテンツに対する要求にクラスタ識別子を含め、要求をコンテンツ選択サービスに送信することができる。データのセキュリティと完全性を向上させ、クラスタ識別子および関連する情報の窃取の確率を下げるために、追加の保護対策が採用され得る。ネットワークを介した送信の間のクラスタ識別子の傍受から保護するために、アプリケーションは、ハイパーテキストトランスファープロトコルセキュア(HTTPS)プロトコルなどの、暗号化プロトコルを使用することができる。加えて、クライアントデバイスに維持されているクラスタ識別子を保護するために、アプリケーションは、他のクライアント側のプロセス(たとえば、情報リソース上のJavaScript)がクラスタ識別子にアクセスするのを制限することができる。たとえば、クラスタ識別子は、クラスタ識別子へのアクセスを防ぐために、クライアントデバイスに維持されているセキュアフラグまたはHTTP-onlyフラグクッキーに含まれ得る。これは、そのようなアクセス制御権を持たないサードパーティクッキーとは対照的であり得る。
要求を受信したことに応答して、コンテンツ選択サービスは、クラスタ識別子を使用してコンテンツアイテムのうちの1つを選択することができる。コンテンツ選択サービスは、クラスタのクラスタ識別子を含むコンテンツに対する以前の要求を使用して、クラスタとして類別されるユーザに対するブラウジング履歴を累積することができる。クラスタに対する累積された履歴にプロファイリングモデルを適用して、コンテンツ選択サービスは、クラスタの中のユーザの特質および関心を推測することができる。プロファイリングモデルの結果により、コンテンツ選択サービスは、要求と関連付けられるユーザが類別されるクラスタに関連があると決定されるコンテンツアイテムを発見することができる。
クラスタ識別子を使用することによって、クライアントデバイスに維持されているアプリケーションのブラウジング履歴は、ブラウジング履歴が特定のユーザ、アプリケーション、またはクライアントデバイスへと遡及可能となるようなコンテンツ選択サービスによるアクセスを防がれ得る。加えて、コンテンツ選択サービスは、異なるドメインにわたって個々のユーザ、アプリケーション、またはクライアントデバイスを追跡して詳細なブラウジング履歴を組み立てることが不可能であり得る。代わりに、コンテンツ選択サービスは、アプリケーションから受信されたクラスタ識別子と関連付けられるユーザの特定のクラスタに対するブラウジング履歴を集約することができる。集約する際、コンテンツ選択サービスは、同じクラスタの異なるユーザからブラウザ履歴を併合することによって、個々のユーザのデータプライバシーを保護することができる。各クラスタに割り当てられるべきユーザの数を設定することによって、データプライバシーの程度も制御され得る。
さらに、同じクラスタの中のユーザが類似するブラウジングパターンを有するという仮定のもとで、コンテンツ選択サービスは、クラスタのために集約されたブラウジング履歴に基づいて、同じクラスタのユーザについての類似する特質および関心を推定して決定することができる。コンテンツ選択サービスはさらに、同じクラスタのユーザが同様に応答することを期待して、コンテンツアイテムを選択することができる。このようにして、個々のユーザのブラウジング履歴についてのデータセキュリティ、完全性、およびプライバシーが維持され得る。同時に、コンテンツアイテムの選択における関連性を決定できることで、選択されたコンテンツアイテムまたは全体の情報リソースについての人-コンピュータの対話(HCI)の品質が維持され得る。
ここで図4を参照すると、分類モデルを使用したコンテンツの選択のための識別子を符号化するためのコンピュータネットワーク接続された環境またはシステム400の一実装形態を示すブロック図が示されている。大まかに、システム400は、システム400の構成要素間の通信のための少なくとも1つのネットワーク405を含み得る。システム400は、少なくとも1つのアプリケーション(たとえば、ブラウザ)のためのサービスを提供するために少なくとも1つのアプリケーションマネージャサービス410(本明細書ではブラウザベンダとも呼ばれる)を含み得る。システム400は、コンテンツアイテムを提供するために少なくとも1つのコンテンツプロバイダ415を含み得る。システム400は、情報リソース(たとえば、ウェブページ)を提供するために少なくとも1つのコンテンツパブリッシャ420を含み得る。システム400は、コンテンツアイテムを選択するために少なくとも1つのコンテンツ選択サービス425を含み得る。システム400は、1つまたは複数のクライアントデバイス430A~N(一般にクライアントデバイス430と本明細書で呼ばれる)を含み得る。各クライアントデバイス430は、少なくとも1つのアプリケーション435A~N(一般にアプリケーション435と本明細書で呼ばれる)を含み得る。システム400の構成要素(たとえば、ネットワーク405、アプリケーションマネージャサービス410とその構成要素、コンテンツプロバイダ415とその構成要素、コンテンツパブリッシャ420とその構成要素、コンテンツ選択サービス425とその構成要素、およびクライアントデバイス430とその構成要素)の各々が、図9に関連して本明細書で詳述されるコンピューティングシステム900の構成要素を使用して実装され得る。
さらなる詳細では、システム400のネットワーク405は、アプリケーションマネージャサービス410、コンテンツプロバイダ415、コンテンツパブリッシャ420、コンテンツ選択サービス425、およびクライアントデバイス430を互いに通信可能に結合することができる。システム400のアプリケーションマネージャサービス410、コンテンツプロバイダ415、コンテンツパブリッシャ420、およびコンテンツ選択サービス425は各々、ネットワーク405を介して互いに通信可能に結合される少なくとも1つのデータセンターまたはサーバファームに位置する複数のサーバを含み得る。アプリケーションマネージャサービス410は、コンテンツプロバイダ415、コンテンツパブリッシャ420、コンテンツ選択サービス425、およびクライアントデバイス430とネットワーク接続405を介して通信することができる。コンテンツプロバイダ415は、アプリケーションマネージャサービス410、コンテンツパブリッシャ420、コンテンツ選択サービス425、およびクライアントデバイス430とネットワーク405を介して通信することができる。コンテンツパブリッシャ420は、アプリケーションマネージャサービス410、コンテンツパブリッシャ420、コンテンツ選択サービス425、およびクライアントデバイス430とネットワーク405を介して通信することができる。コンテンツ選択サービス425は、アプリケーションマネージャサービス410、コンテンツプロバイダ415、コンテンツパブリッシャ420、およびクライアントデバイス430とネットワーク405を介して通信することができる。各クライアントデバイス430は、アプリケーションマネージャサービス410、コンテンツプロバイダ415、コンテンツパブリッシャ420、およびコンテンツ選択サービス425とネットワーク405を介して通信することができる。
アプリケーションマネージャサービス410は、クライアントデバイス430上で実行されるアプリケーション435にリソースおよび更新を提供するためにアプリケーションベンダ(本明細書ではブラウザベンダと呼ばれることがある)によって運用される、サーバまたは他のコンピューティングデバイスを含み得る。たとえば、アプリケーションマネージャサービス410は、クライアントデバイス430へインストールするためのアプリケーション435を提供することができる。アプリケーションマネージャサービス410はまた、クライアントデバイス430にインストールされたアプリケーション435に更新を提供することができる。更新は、アプリケーション435のサブコンポーネントのうちの少なくとも1つに影響し得る。アプリケーションマネージャサービス410はまた、クライアントデバイス430上で実行されるアプリケーション435の機能を補強するために、アプリケーション435にプラグインまたはアドオンを提供することができる。アプリケーションマネージャサービス410は、クライアントデバイス430上で実行されるアプリケーション435上で情報を提供するために、コンテンツ選択サービス425と通信することができる。アプリケーション435および関連するファイルまたはデータの準備は、ネットワーク405を介してアプリケーションマネージャサービス410によって通信され得る。
コンテンツプロバイダ415は、クライアントデバイス430における情報リソース上で表示するためのコンテンツアイテムを提供するためにコンテンツプロバイダエンティティによって運用される、サーバまたは他のコンピューティングデバイスを含み得る。コンテンツプロバイダ415によって提供されるコンテンツは、任意の都合のよい形式をとり得る。たとえば、サードパーティコンテンツは、他の表示されるコンテンツに関連するコンテンツを含んでもよく、たとえば、表示されるコンテンツに関するウェブサイトのページであってもよい。コンテンツは、コンテンツパブリッシャ420によって提供される主要コンテンツを含む情報リソースなどの、情報リソース上で表示するためのサードパーティコンテンツアイテムまたは創作物(たとえば、広告)を含み得る。コンテンツアイテムは、検索結果ウェブページにも表示され得る。たとえば、コンテンツプロバイダ415は、ウェブページの主要コンテンツが会社によって提供される場合はその会社のウェブページなどの情報リソース450のコンテンツスロット(たとえば、インラインフレーム要素)において表示するための、または、検索エンジンによって提供される検索結果ランディングページに表示するための、コンテンツアイテム455のソースを提供してもよく、またはそれであってもよい。コンテンツプロバイダ415と関連付けられるコンテンツアイテムは、スマートフォンまたは他のクライアントデバイス430上でのアプリケーションの実行の一部として表示されるコンテンツなどの、ウェブページ以外の情報リソース上で表示され得る。
コンテンツパブリッシャ420は、ネットワーク405を介した表示のための主要コンテンツを含む情報リソースを提供するためにコンテンツパブリッシングエンティティによって運用される、サーバまたは他のコンピューティングデバイスを含み得る。たとえば、コンテンツパブリッシャ420は、情報リソース上で表示するための主要コンテンツを提供するウェブページ運用者を含み得る。情報リソースは、コンテンツパブリッシャ420によって提供されるもの以外のコンテンツを含んでもよく、情報リソースは、コンテンツプロバイダ415からのコンテンツアイテムの表示のために構成されるコンテンツスロットを含んでもよい。たとえば、コンテンツパブリッシャ420は、会社のウェブサイトを運用することができ、ウェブサイトのウェブページ上で表示するためのその会社についてのコンテンツを提供することができる。ウェブページは、コンテンツプロバイダ415によって、またはコンテンツパブリッシャ420自身によって提供されるコンテンツアイテムの表示のために構成されるコンテンツスロットを含み得る。いくつかの実装形態では、コンテンツパブリッシャ420は、検索エンジンウェブサイトを運用する検索エンジン運用者の検索エンジンコンピューティングデバイス(たとえば、サーバ)を含む。検索エンジンウェブページの主要コンテンツ(たとえば、ランディングウェブページの結果)は、コンテンツプロバイダ415からのコンテンツアイテムなどの情報リソースのコンテンツスロットにおいて表示される検索の結果ならびにサードパーティコンテンツアイテムを含み得る。いくつかの実装形態では、コンテンツパブリッシャ420は、ビデオコンテンツを提供するための1つまたは複数のサーバを含み得る。
コンテンツ選択サービス425は、ネットワーク405を介して情報リソースのコンテンツスロットへと挿入すべきコンテンツアイテムを選択または特定するためにコンテンツ配置エンティティによって運用される、サーバまたは他のコンピューティングデバイスを含み得る。いくつかの実装形態では、コンテンツ選択サービス425は、コンテンツ配置システム(たとえば、オンライン広告サーバ)を含み得る。コンテンツ選択サービス425は、情報リソースのコンテンツスロットへ挿入するためのコンテンツアイテムをネットワーク405を介して提供するために、コンテンツアイテムをそこから選択するコンテンツアイテムの目録を維持することができる。目録は、コンテンツ選択サービス425にアクセス可能なデータベース上に維持され得る。コンテンツアイテムまたはコンテンツアイテムの識別子(たとえば、アドレス)は、コンテンツプロバイダ415によって提供され得る。
各クライアントデバイス430は、データを表示するためにネットワーク405を介して通信するためのコンピューティングデバイスであり得る。表示されるデータは、コンテンツ選択サービス425によって特定されるような、コンテンツパブリッシャ420によって提供されるコンテンツ(たとえば、情報リソース)およびコンテンツプロバイダ415によって提供されるコンテンツ(たとえば、情報リソースのコンテンツスロットにおいて表示するためのコンテンツアイテム)を含み得る。クライアントデバイス430は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、コンシューマコンピューティングデバイス、サーバ、クライアント、デジタルビデオレコーダ、テレビのセットトップボックス、ビデオゲームコンソール、またはネットワーク405を介して通信するように構成される任意の他のコンピューティングデバイスを含み得る。クライアントデバイス430は、それを通じてエンドユーザがコンテンツを受信するための要求を出すことができる通信デバイスであり得る。要求は検索エンジンに対する要求であってもよく、要求は検索クエリを含んでもよい。いくつかの実装形態では、要求はウェブページにアクセスするための要求を含み得る。
クライアントデバイス430上で実行されるアプリケーション435は、たとえば、インターネットブラウザ、モバイルアプリケーション、または、情報リソースおよびコンテンツアイテムに含まれるコンピュータ実行可能命令などの、クライアントデバイス430に提供されるコンピュータ実行可能命令を実行し、または別様に呼び出すことが可能な任意の他のコンピュータプログラムを含み得る。これに含まれる情報リソースは、スクリプト、論理、マークアップ、または命令(たとえば、ハイパーテキストマークアップ言語(HTML)、拡張ハイパーテキストマークアップ言語(XHTML)、拡張マークアップ言語(XML)、カスケーディングスタイルシート(CSS)、およびJavaScript、またはこれらの任意の組合せ)に対応し得る。コンテンツアイテムは、情報リソースのコンテンツスロットへと挿入され得る。
ここで図5を参照すると、システム400の中のクライアントデバイス430およびアプリケーション管理サービス410の一実装形態を示す、ブロック図が示されている。大まかに、アプリケーションマネージャサービス410は、ブラウジングパターンに基づいてアプリケーション435を類別するための少なくとも1つの分類モデル500を含み得る。アプリケーションマネージャサービス410は、少なくとも1つの分類モデル500を訓練して維持するための少なくとも1つのモデル訓練器505を含み得る。アプリケーションマネージャサービス410は、分類モデル500を変更または調整するための少なくとも1つのモデル更新器510を含み得る。アプリケーションマネージャサービス410は、クラス識別子520A~Nのセット(全般にクラス識別子520と本明細書で呼ばれる)を記憶して維持するために少なくとも1つのデータベース515を含み得る。各クライアントデバイス430上のアプリケーション435は、ブラウジングパターンに基づいてアプリケーション435を類別するために少なくとも1つの分類モデル500を含み得る。アプリケーション435は、分類モデル500を訓練して維持するために少なくとも1つのモデル訓練器505を含み得る。アプリケーション435は、分類モデル500を使用してアプリケーション435を類別するために少なくとも1つのモデル適用器525を含み得る。モデル訓練器505およびモデル適用器525は、アプリケーション435の必須の部分、アプリケーション435へのアドオンもしくはプラグイン、またはアプリケーション435とインターフェースする別個のアプリケーションであり得る。アプリケーション435は、1つまたは複数のエントリ535A~N(全般にエントリ535と本明細書で呼ばれる)を維持して記憶するために少なくとも1つのブラウジング履歴530を含み得る。アプリケーション435は、アプリケーション435の少なくとも1つのクラス識別子520を維持して記憶するために少なくとも1つの識別子キャッシュ540を含み得る。
さらなる詳細において、分類モデル500は、ブラウジング履歴530に基づいて、各アプリケーション435(またはアプリケーション435を実行する各クライアントデバイス430またはアプリケーション435と関連付けられるアカウント)を分類し、グループ化し、または別様に類別することができる。クライアントデバイス430上のアプリケーション435の分類は、クライアントデバイス430上で実行されるアプリケーション435の実例の分類を指示または表示することができる。たとえば、1つのクライアントデバイス430上で実行される1つのアプリケーション435の実例(たとえば、ウェブブラウザ)と、別のクライアントデバイス430上で実行されるアプリケーション435の別の実例(たとえば、同じタイプのウェブブラウザ)があり得る。両方の実例が、同じカテゴリまたは異なるカテゴリへと分類され得る。さらに、それを拡張すると、アプリケーション435の分類は、アプリケーション435を操作するアカウントと関連付けられるユーザの、またはユーザによって操作されるクライアントデバイス430の分類に対応し、またはそれを含み得る。
分類モデル500は、分類もしくはクラスタリングのモデルまたはアルゴリズムであり得る。分類モデル500は、とりわけ、線形分類器(たとえば、線形回帰、ロジスティック回帰、および単純ベイズ分類器)、サポートベクターマシン(SVM)、二次分類器、k最近傍アルゴリズム、および人工ニューラルネットワーク(ANN)などの分類アルゴリズムを含み得る。分類モデル500は、とりわけ、幾何中心ベースのクラスタリングアルゴリズム(たとえば、k平均アルゴリズムまたは期待値最大化(EM)アルゴリズム)、密度ベースのクラスタリングアルゴリズム(たとえば、Density-based spatial clustering of applications with noise (DBSCAN))、分布ベースのクラスタリングアルゴリズム(たとえば、ガウシアン混合モデル)、人工ニューラルネットワーク(ANN)などのクラスタリングモデルを含み得る。分類モデル500は、とりわけ、局所性鋭敏型ハッシュ方式(たとえば、MinHash、SimHash、およびNilsimsa Hash)などのハッシュ関数も含み得る。
分類モデル500は、分類またはクラスタリングのモデルおよびアルゴリズムのいずれかに従った、入力のセット、パラメータのセット、および出力のセットを含み得る。入力のセットは、ブラウジング履歴530のエントリ535を取り入れることができ、またはそれを含むことができる。いくつかの実装形態では、入力のセットは、ブラウジング履歴530のエントリ535の次元削減表現を取り入れることができ、またはそれを含むことができる。パラメータ(または重み)のセットは、入力のセットを出力のセットと接続し、または関連付けることができる。いくつかの実装形態では、パラメータのセットは、クラスの数および各クラスに対する値を含み得る。たとえば、パラメータのセットは、各クラスに対するk平均クラスタリングにおける幾何中心であり得る。別の例では、パラメータのセットは、各クラスと関連付けられる値の範囲を含み得る。クラスの数は、クラス識別子520の数に等しくてもよい。クラスの数およびクラス識別子520の数は、(たとえば、一定の値に)あらかじめ決められていてもよく、または動的に決められてもよい。出力のセットは、クラス識別子520のうちの1つに対応するクラスを作成し、または含み得る。出力のセットは、クラス識別子520のうちの1つ自体を含み得る。たとえば、クラス識別子520は、ハッシュ関数を使用して計算されるハッシュ値であり得る。各クラス識別子520は、英数字または数値(たとえば、整数または二進数)のセットであってもよく、またはそれらを含んでもよい。
アプリケーションマネージャサービス410上で実行されるモデル訓練器505は、分類モデル500を訓練することができる。モデル訓練器505は、分類モデル500を訓練するために訓練データセットを使用することができる。分類モデル500の訓練は、教師なし学習技法に従い得る。訓練データセットは、クライアントデバイス430のサンプルセット上で実行されるアプリケーション435のサンプルセットからのサンプルブラウジング履歴530を含み得る。いくつかの実装形態では、モデル訓練器505は、コンテンツプロバイダ415、コンテンツパブリッシャ420、コンテンツ選択サービス425、またはクライアントデバイス430上で実行されるアプリケーション435からサンプルブラウジング履歴530を取得して累積することができる。訓練の前に、モデル訓練器505は、分類モデル500のクラスの数を特定することができる。いくつかの実施形態では、クラスの数は、アプリケーションマネージャサービス410の管理者によってあらかじめ決められていてもよく、または割り当てられてもよい。いくつかの実装形態では、クラスの数は、アプリケーション435を伴うクライアントデバイス430の数に基づいて、モデル訓練器505によって決定され得る。たとえば、クラスの数は、設定された数のクライアントデバイス430(たとえば、800個から1000個のデバイス)が各クラスに割り当てられるように設定され得る。
分類モデル500を訓練する際、モデル訓練器505は、訓練データセットを使用して分類モデル500の中のパラメータの値(たとえば、各クラスの値)を変更し、調整し、または別様に設定することができる。各反復において、モデル訓練器505は、パラメータの値のセットの変化に基づいて、分類モデル500が以前の反復と比較して収束したかどうかを決定することができる。いくつかの実装形態では、モデル訓練器505は、分類モデル500のパラメータにおける値のセットの変化を収束閾値と比較することができる。変化が収束閾値未満である場合、モデル訓練器505は、分類モデル500が収束したと決定することができる。そうではなく、変化が収束閾値より大きい場合、モデル訓練器505は、分類モデル500が収束していないと決定することができる。分類モデル500が収束していないと決定されるとき、モデル訓練器505は、分類モデル500の訓練を続けることができる。
そうではなく、分類モデル500が収束したと決定されるとき、モデル訓練器505は、分類モデル500の訓練を終了し、終結し、または停止することができる。モデル訓練器505は、アプリケーションマネージャサービス410に分類モデル500を記憶することができる。加えて、モデル訓練器505は、クライアントデバイス430上で実行されるアプリケーション435に分類モデル500を送信し、または送ることができる。いくつかの実装形態では、モデル訓練器505は、分類モデル500のパラメータのセットを送信し、または送ることができる。分類モデル500の中の各クラスに対して、モデル訓練器505は、クラスを特定し、対応するクラス識別子520に割り当て、または別様に関連付けることができる。クラス識別子520は、クラスを参照するための英数字のセットであり得る。分類モデル500は、各クラスを対応するクラス識別子520と関連付けることができる。モデル訓練器505は、クラス識別子520のセットを、各クライアントデバイス430上で実行されるアプリケーション435に、およびコンテンツ選択サービス425に、送信して提供することができる。
クライアントデバイス430上で実行されるアプリケーション435のモデル訓練器505は、分類モデル500も訓練することができる。いくつかの実装形態では、モデル訓練器505は、分類モデル500を訓練するために分散型学習プロトコルを使用することができる。分散型学習プロトコルは、他のクライアントデバイス430上で実行されるアプリケーション435、およびネットワーク405を介して通信しているアプリケーションマネージャサービス410と連携していてもよい。分散型学習プロトコルは、たとえば、分類モデル500を訓練するための最適化アルゴリズム(たとえば、確率勾配降下(SGD)または平均化)を使用した連合学習を含み得る。クラスの数およびクラス識別子520の数は、上で説明されたように、(たとえば、一定の値に)あらかじめ決められていてもよく、または動的に決められてもよい。各反復の間に、各モデル訓練器505は、訓練データセットを使用して分類モデル500の中のパラメータの値(たとえば、各クラスの値)を変更し、調整し、または別様に設定することができる。反復の終わりにおいて、各モデル訓練器505は、分類モデル500の中のパラメータの値(たとえば、各クラスの値)を互いに提供することができる。モデル訓練器505は、パラメータの受信された値を使用して、ローカルに維持されている分類モデル500のパラメータを調整し、変更し、または設定することができる。モデル訓練器505は、上で論じられたようなパラメータの値のセットの変化に基づく、分類モデル500が以前の反復と比較して収束したという決定まで、反復を繰り返すことができる。
アプリケーションマネージャサービス410上で実行されるモデル更新器510は、アプリケーション435上で実行される各クライアントデバイス430に維持される分類モデル500に更新を提供または送信することができる。モデル更新器510は、モデル更新ポリシーに従って分類モデル500を更新するかどうかを決定することができる。モデル更新ポリシーは、分類モデル500が更新されるべき条件のセットを規定することができる。いくつかの実装形態では、モデル更新ポリシーは、分類モデル500を更新すべき時間を示すスケジュールを含み得る。モデル更新ポリシーは、各クラスに割り当てられるアプリケーション435の数が均等に分布していない(たとえば、クラスサイズの差が1つの別のクラスの5%から100%の間にある)とき、分類モデル500が更新されるべきであると規定することができる。モデル更新ポリシーは、累積された追加のブラウジング履歴530の量が閾値の量を満たすとき、分類モデル500が更新されるべきであると規定することができる。決定が、分類モデル500を更新すべきではないというものである場合、モデル更新器510は、分類モデル500を維持することができる。
一方、決定が更新すべきであるというものである場合、モデル更新器510は、分類モデル500を再訓練するために(アプリケーションマネージャサービス410上の、またはクライアントデバイス430上で実行されるアプリケーション435にまたがる)モデル訓練器505を呼び出すことができる。いくつかの実装形態では、モデル更新器510は、コンテンツプロバイダ415、コンテンツパブリッシャ420、コンテンツ選択サービス425、またはクライアントデバイス430上で実行されるアプリケーション435からの訓練データセットのためのブラウジング履歴530を累積することができる。モデル更新器510は、分類モデル500を再訓練するために、累積されたブラウジング履歴530をモデル訓練器505に渡すことができる。分類モデル500が収束したと決定すると、モデル訓練器505は、分類モデル500の訓練を終了し、終結し、または停止することができる。モデル更新器510は、分類モデル500を更新するために、新しく訓練された分類モデル500(または分類モデル500のパラメータのセット)を各アプリケーション435に送信し、または送ることができる。モデル更新器510は、各クライアントデバイス430上で実行されるアプリケーション435に、およびコンテンツ選択サービス425に、クラス識別子520のセットを送信して提供することができる。
クライアントデバイス430上で実行されるアプリケーション435のモデル適用器525は、ネットワーク405を介してアプリケーションマネージャサービス410からの分類モデル500を受信することができる。受信すると、モデル適用器525は、クライアントデバイス430に分類モデル500を記憶して維持することができる。いくつかの実装形態では、モデル適用器525は、アプリケーションマネージャサービス410から分類モデル500のパラメータのセットを受信することができる。パラメータのセットの受信は、分類モデル500を更新するためのものであり得る。受信すると、モデル適用器525は、パラメータの受信されたセットを使用して分類モデル500を変更し、構成し、または別様に修正することができる。加えて、モデル適用器525は、アプリケーションマネージャサービス410から、分類モデル500の中のクラスに対するクラス識別子520のセットを受信することができる。クラス識別子520の受信は、分類モデル500の更新の一部としてであり得る。
分類モデル500の構成により、モデル適用器525は、アプリケーション435によってクライアントデバイス430に維持されているブラウジング履歴530を特定することができる。アプリケーション435は、情報リソースがアクセスされるたびにエントリ535を作成することによって、ブラウジング履歴530を維持することができる。ブラウジング履歴530は、アプリケーション435を介してアクセスされる情報リソース(たとえば、ウェブページ)および他のオンラインコンテンツを記録することができる。ブラウジング履歴530は、エントリ535のセットを含み得る。各エントリ535は、アクセスされた情報リソースのアドレス(たとえば、ウェブページのホスト名およびパス名を含むUniform Resource Locator (URL))と、情報リソースがアクセスされた時間を示すタイムスタンプとを含み得る。エントリ535のセットは、ブラウジング履歴530内の情報リソースのタイムスタンプまたはアドレスによってインデクシングされ得る。いくつかの実装形態では、モデル適用器525は、モデル適用器525による処理を促進するのに用いる、ある時間範囲にわたるブラウジング履歴530の部分を特定することができる。ブラウジング履歴530のその部分は、その時間範囲内のタイムスタンプを伴うエントリ535のサブセットを含み得る。時間範囲は、たとえば、現在の時間から一週間分の量のエントリ535であり得る。
ブラウジング履歴530を特定すると、モデル適用器535は、ブラウジング履歴530のエントリ535を使用して特徴ベクトルのセットを形成または生成することができる。特徴ベクトルのセットは、分類モデル500のための入力として使用され得る。特徴ベクトルのセットは、次元を含んでもよく、または次元によって定義されてもよい。次元は、時間範囲(たとえば、一日のうちの時間帯または曜日)およびアドレス属性(たとえば、ドメイン名、ウェブサイトのセクション、話題カテゴリ、またはアドレス自体)を含み得る。各特徴ベクトルは、対応するエントリ535と関連付けられるタイムスタンプに基づいて、時間範囲のうちの少なくとも1つと関連付けられ得る。各特徴ベクトルは、対応するエントリ535において特定される情報リソースに対するアドレスに基づいて、情報リソースに対するアドレス属性のうちの少なくとも1つと関連付けられ得る。いくつかの実装形態では、モデル適用器535は、時間範囲およびアドレス属性によって定義される特徴ベクトルの次元へとブラウジング履歴530のエントリ535を投影することによって、特徴ベクトルのセットを生成することができる。ブラウジング履歴530のエントリ535に対して、モデル適用器535は、エントリ535の中のアドレスおよびタイムスタンプに基づいて、既存の特徴ベクトルが存在するかどうかを特定することができる。特定するために、モデル適用器525は、既存の特徴ベクトルのいずれかとエントリ535が一致するかどうかを決定することができる。既存の特徴ベクトルが存在するとき、モデル適用器535は、エントリ535を特徴ベクトルに追加することができる。逆に、既存の特徴が存在しないとき、モデル適用器535は、エントリ535のための新しい特徴ベクトルを作成することができる。
モデル適用器535は、削減された特徴ベクトルのセットを形成または生成するために次元削減プロセスを使用することができる。次元削減プロセスは、とりわけ、線形削減技法(たとえば、主要成分分析(PCA)、特異値分解(SVD)、非負値行列因子分解(NMF))、非線形次元削減(たとえば、一般化判別分析(GDA)、locally-linear embedding、およびサモンマッピング)、または他のもの(たとえば、Johnson-Lindenstraussの補題および多因子次元削減)を含み得る。いくつかの実装形態では、モデル適用器525は、特徴ベクトルの次元へとブラウジング履歴530のエントリ535を投影する際に、次元削減プロセスを適用することができる。いくつかの実装形態では、モデル適用器535は、特徴ベクトルの生成されたセットへと次元削減プロセスを適用することができる。次元削減プロセスの適用により、モデル適用器535は、削減された特徴ベクトルのセットを生成するために、特徴ベクトルの元のセットの中の次元の数を削減することができる。削減された特徴ベクトルのセットは、削減された特徴ベクトルの初期のセットより少数の次元およびデータ点を有し得る。たとえば、削減された特徴ベクトルのセットは、どのような関連するエントリ535も伴わない時間範囲またはアドレス属性を省略することができる。
モデル適用器525は、分類モデル500をブラウジング履歴530(または特徴ベクトルなどのブラウジング履歴530のエントリ535の任意のサブセットまたは表現)に適用して、アプリケーション435を類別すべきクラスを特定することができる。適用するために、モデル適用器525は、分類モデル500の入力のセットとしてブラウジング履歴530を供給することができる。いくつかの実装形態では、モデル適用器525は、分類モデル500の入力として特徴ベクトルまたは削減された特徴ベクトルのセットを供給することができる。供給されると、モデル適用器525は、分類モデル500を使用して、クラスを定義するパラメータへの入力を比較し、比較に基づいて出力のセットを生成または作成することができる。出力のセットは、アプリケーション435によって維持されるブラウジング履歴530において示されるようなブラウジングパターンを類別すべき、クラスを含み得る。モデル適用器525は、分類モデル500の出力からクラスを特定することができる。特定されたクラスは、分類モデル500によって定義されるような数のクラスのうちの1つに対応し得る。クライアントデバイス430上で実行されるアプリケーション435に対する特定されるクラスは、他のクライアントデバイス430上で実行される少なくともいくつかの他のアプリケーション435に対する特定されるクラスと共通であり、共有され、または同一であり得る。上で論じられたように、分類モデル500によって定義される各クラスは、クラスへと類別されるべきある数のクライアントデバイスを有し得る。
特定されたクラスに基づいて、モデル適用器525は、クラスの対応するクラス識別子520にアプリケーション435を割り当てることができる。いくつかの実装形態では、モデル適用器525は、分類モデル500を使用して、特定されたクラスと関連付けられるクラス識別子520を特定することができる。この特定により、モデル適用器525は次いで、クラス識別子520をアプリケーション435に割り当てることができる。アプリケーション435へのクラス識別子520の割当ては、アプリケーション435に対するブラウジング履歴530が同じクラス識別子520を伴う他のアプリケーション435上の他のブラウジング履歴530と類似していることを示すことができる。クライアントデバイス430上で実行されるアプリケーション435に割り当てられるクラス識別子520は、他のクライアントデバイス430上で実行される少なくともいくつかの他のアプリケーション435に対するクラス識別子520と共通であり、共有され、または同一であり得る。
割り当てると、モデル適用器525は、クラス識別子520を識別子キャッシュ540に記憶して維持することができる。たとえば、図示されるように、第1のアプリケーション435Aのモデル適用器525は、第1のクラス識別子520Aに対応するクラスを伴う他のアプリケーション435B~Nと類似するブラウジングパターンを有するものとして、第1のアプリケーション435Aを特定した可能性がある。識別子キャッシュ540は、アプリケーション435によって実行されるスクリプトがクラス識別子520にアクセスするのを制御することができる。いくつかの実装形態では、モデル適用器525は、識別子キャッシュ540に維持されているセキュアクッキーにクラス識別子520を記憶することができる。セキュアクッキーは、セキュアフラグまたはHTTP-onlyフラグセットを伴うクッキーを含み得る。セキュアクッキーは、情報リソース上のスクリプトが識別子キャッシュ540に維持されているクラス識別子520にアクセスするのを防ぐことができる。加えて、セキュアクッキーは、識別子キャッシュ540に記憶されているクラス識別子520にアクセスすることを認可されたエンティティに許可することができる。セキュアクッキーは、識別子キャッシュ540上のクラス識別子520にアクセスすることが許容されているものとして、コンテンツ選択サービス425またはアプリケーションマネージャサービス410を特定することができる。
モデル適用器535は、識別子割当てポリシーに従って、分類モデル500を適用すべきかどうかを決定することができる。識別子割当てポリシーは、分類モデル500がクラス識別子520の再割当てのために適用されるべき条件のセットを規定することができる。いくつかの実装形態では、識別子割当てポリシーは、分類モデル500を適用すべき時間を示すスケジュールを含み得る。識別子割当てポリシーは、アプリケーション435への新しい更新がアプリケーションマネージャサービス410によって提供されるときに分類モデル500が更新されるべきであると規定することができる。識別子割当てポリシーは、累積された追加のブラウジング履歴530の量が閾値の量を満たすとき、分類モデル500が適用されるべきであると規定することができる。決定が分類モデル500を再適用するというものではない場合、モデル適用器525はクラス識別子520を維持することができる。一方、決定が分類モデル500を再適用するというものである場合、モデル適用器525は、上で説明された機能を繰り返すことができる。たとえば、モデル適用器525は、ブラウジング履歴530を特定し、次元削減プロセスを使用して削減された特徴ベクトルのセットを生成し、分類モデル500を削減された特徴ベクトルのセットに適用してクラスを特定し、特定されたクラスと関連付けられる分類器識別子520をアプリケーション435に割り当てることができる。
ここで図6を参照すると、システム400におけるクライアントデバイス430、コンテンツプロバイダ415、コンテンツパブリッシャ420、およびコンテンツ選択サービス425の一実装形態を示す、ブロック図が示されている。大まかに、各クライアントデバイス430のアプリケーション435(たとえば、第1のクライアントデバイス430Aについて図示されるような)は、コンテンツプロバイダ415、コンテンツパブリッシャ420、またはコンテンツ選択サービス425と通信される少なくとも1つの情報リソース600および他のデータの読取りと解析を扱うために、少なくとも1つのリソースプロセッサ615を含み得る。
さらなる詳細において、クライアントデバイス430上で実行されるリソースプロセッサ615は、コンテンツパブリッシャ420から情報リソース600を受信することができる。情報リソース600の受信は、アプリケーション435によってコンテンツパブリッシャ420に送信される情報リソース600に対する要求に応答したものであってもよく、クライアントデバイス430において提示するためのものであってもよい。受信された情報リソース600(たとえば、ウェブページ)は、少なくとも1つの主要コンテンツ605(たとえば、ウェブページのボディ、テキスト、および画像)および少なくとも1つのコンテンツスロット610(たとえば、ウェブページのインラインフレーム)を含み得る。主要コンテンツ605は、コンテンツパブリッシャ420によって提供される情報リソース600の一部分に対応し得る。コンテンツスロット610は、コンテンツプロバイダ415またはコンテンツ選択サービス425からコンテンツを受信することが可能であり得る。コンテンツスロット610へと挿入されるべきコンテンツは、情報リソース600のホスト名とは異なるホスト名を有し得る。受信されると、リソースプロセッサ615は、主要コンテンツ605およびコンテンツスロット610を含む情報リソース600を解析することができる。
情報リソース600のコンテンツスロット610に対して、リソースプロセッサ615は、コンテンツ選択サービス425に送信するための要求620A~N(本明細書ではコンテンツに対する要求620と全般に呼ばれる)を生成することができる。コンテンツに対する要求620の生成は、コンテンツスロット610にコンテンツを挿入するためのスクリプト(たとえば、広告タグまたはコンテンツ選択タグ)に従ったものであり得る。コンテンツスロット610に対するスクリプトは、コンテンツスロット610自体もしくは情報リソース600の別の部分に埋め込まれ、または含まれ得る。コンテンツに対する要求620を生成する際、リソースプロセッサ615は、コンテンツに対する要求620へとアドレス625A~N(本明細書では全般にアドレス625と呼ばれる)を含めることができる。アドレス625は、コンテンツ選択サービス425に対するURLなどの、コンテンツスロット610に対するスクリプトによって指定されるコンテンツ選択サービス425を参照することができる。アドレス625は、コンテンツに対する要求620がルーティングされることになる宛先アドレスを示すことができる。さらに、リソースプロセッサ615は、クライアントデバイス430を参照するソースアドレスを、コンテンツに対する要求620に含めることができる。リソースプロセッサ615はまた、アプリケーション435に情報リソース600を提供したコンテンツパブリッシャ420に対応するアドレスを含み得る。
加えて、リソースプロセッサ615は、コンテンツに対する要求620に、アプリケーション435のために特定されたクラス識別子520を含めることができる。いくつかの実装形態では、リソースプロセッサ615は、クラス識別子520を取り出すために識別子キャッシュ540にアクセスすることができる。取り出されると、リソースプロセッサ615は、コンテンツに対する要求620を含めるためのクラス識別子520を含み得る。いくつかの実装形態では、コンテンツスロット610のためのスクリプトを解析する際にアプリケーション435によって最初に生成されたコンテンツに対する要求620は元々、固有の追跡識別子を含み得る。リソースプロセッサ615は、コンテンツに対する要求620から、アプリケーション435に対応するあらゆる固有の追跡識別子(またはアプリケーション435を実行するクライアントデバイス430またはアプリケーション435と関連付けられるアカウント)を削除し、または別様に除外することができる。固有の追跡識別子は、たとえば、アプリケーション435と関連付けられるアカウントに対応するクッキーユーザ識別子またはアプリケーション435を実行するクライアントデバイス430に対応するクッキーデバイス識別子を含み得る。固有の追跡識別子は、コンテンツプロバイダ415または別のコンテンツ配置サービスによって提供されている可能性がある。削除されると、リソースプロセッサ615は、クラス識別子520をコンテンツに対する要求620に含めることができる。いくつかの実装形態では、リソースプロセッサ615は、コンテンツに対する要求620に含まれる固有の追跡識別子をクラス識別子520で置き換えることができる。
いくつかの実装形態では、リソースプロセッサ615は、クラス識別子520をクッキー630A~620N(以後全般にクッキー630と呼ばれる)にパッケージングし、または含めることができる。いくつかの実装形態では、クッキー630は、コンテンツに対する要求620とともに生成され得る。いくつかの実装形態では、クッキー630はアプリケーション435(たとえば、識別子キャッシュ540)から取り出され得る。クッキー630は、認可されていないエンティティの傍受およびクラス識別子520へのアクセスを防ぐように設定された、セキュアフラグまたはHTTP-onlyフラグを有し得る。認可されていないエンティティは、コンテンツ選択サービス425またはアプリケーションマネージャサービス410以外のエンティティを含み得る。セキュアフラグまたはHTTP-onlyフラグを設定することによって、クッキー630は、ネットワーク405を通るセキュア通信チャネル(たとえば、ハイパーテキストトランスファープロトコルセキュア(HTTPS))を介してクラス識別子520にアクセスするのを制限することもできる。リソースプロセッサ615は、クラス識別子520を含むクッキー630をコンテンツに対する要求620へと含めることができる。クッキー630は、アプリケーション435に情報リソース600を提供したコンテンツパブリッシャ420に対応するアドレスも含み得る。生成されると、リソースプロセッサ615は、ネットワーク405を介してコンテンツに対する要求620をコンテンツ選択サービス425に送信することができる。いくつかの実装形態では、アプリケーション435は、クライアントデバイス430とコンテンツ選択サービス425との間にセキュアな通信チャネル(たとえば、HTTPに従った)を確立して、コンテンツに対する要求620を送信することができる。チャネルの確立は、コンテンツに対する要求620のクッキー630に含まれるクラス識別子520へのコンテンツ選択サービス425によるアクセスを可能にできる。
それぞれのモデル適用器525によって、クライアントデバイス430A~N上で実行される異なるアプリケーション435A~Nに割り当てられるクラス識別子520A~Nは、1つのアプリケーション435A~Nに特有ではないことがあり、アプリケーション435A~Nを一意に特定しないことがある。たとえば、図示されるように、第1のクラス識別子520Aは、第1のクライアントデバイス430A上の第1のアプリケーション435Aに、また、第2のクライアントデバイス430B上で実行される第2のアプリケーション435Bに割り当てられていることがある。対照的に、第2のクラス識別子520Bは、n番目のクライアントデバイス430N上で実行されるn番目のアプリケーション435Nに割り当てられていることがある。これは、コンテンツプロバイダ415または他のコンテンツ配置サービスによって提供されるアプリケーション435A~Nまたはクライアントデバイス430A~Nを具体的に特定するユーザまたはクライアント識別子などの、固有の追跡識別子とは対照的であり得る。加えて、クラス識別子520A~Nはクライアントデバイス430上で実行される各アプリケーション435を一意に特定できないので、クラス識別子520A~Nはそのような固有の追跡識別子より低いエントロピーを有し得る。たとえば、固有の追跡識別子のエントロピーは63ビットより大きいエントロピーを有し得るが、クラス識別子520A~Nのエントロピーは18ビットから52ビットのエントロピーを有し得る。したがって、クラス識別子520A~Nは、これらの固有の追跡識別子よりサイズが小さくなり得るので、ネットワーク405を介して送信されるコンテンツに対する要求620のサイズが減る。
ここで図7を参照すると、システム400の中のクライアントデバイス430およびコンテンツ選択サービス425の一実装形態を示すブロック図が示されている。コンテンツ選択サービス425は、ブラウジング履歴を記憶して維持するために少なくとも1つの履歴集約器700を含み得る。コンテンツ選択サービス425は、各クラスに対する選択パラメータを決定するために少なくとも1つのクラス特徴付け器705を含み得る。コンテンツ選択サービス425は、特定されたクラスを使用して要求620と関連付けられるアプリケーション435のためのコンテンツアイテム725A~N(以後全般にコンテンツアイテム725と呼ばれる)を特定するために少なくとも1つのコンテンツ配置器710を含み得る。コンテンツ選択サービス425は、クラス識別子520のためのブラウジング履歴エントリ720A~N(本明細書において全般にエントリ720と呼ばれる)を維持して記憶するために少なくとも1つの履歴データベース715を含み得る。
さらなる詳細において、コンテンツ選択サービス425上で実行される履歴集約器700は、クライアントデバイス430から受信されたコンテンツに対する要求620に含まれるクッキー630を使用して、履歴データベース715を収集し、集約し、または別様に維持することができる。履歴データベース715は、アプリケーションマネージャサービス410によって定義されるクラス識別子520によってインデクシングされるエントリ720のセットを含み得る。各エントリ720は、アクセスされた情報リソース600のためのアドレスと、情報リソース600がアクセスされた時間を示すタイムスタンプとを含み得る。固有の追跡識別子(たとえば、クッキー識別子)を使用してクライアントデバイス430のブラウジング履歴を集約する代わりに、履歴集約器700は、クラス識別子520によってブラウジング履歴を集約することができる。各々の個別のアプリケーション435に維持されているブラウジング履歴530とは異なり、履歴データベース715は、エントリ720がそれから生成されるアプリケーション435(またはアプリケーション435と関連付けられるユーザ)を個別に特定しないことがある。コンテンツに対する要求620が受信されるたびに、履歴集約器700は、コンテンツがその上で返されるべき情報リソース600に対応するアドレスを特定することができる。履歴集約器700はさらに、コンテンツに対する要求620に含まれるクラス識別子520を特定することができる。これらの特定により、履歴集約器700は、コンテンツに対する要求620に含まれるクラス識別子520に対するエントリ720のセットに、アドレスおよびタイムスタンプを含むエントリ720(図4には示されない)を追加することができる。
コンテンツ選択サービス425上で実行されるクラス特徴付け器705は、クラスのクラス識別子520に対するエントリ720に基づいて、各クラスの1つまたは複数の特性を決定することができる。特性は、たとえば、クラス識別子520に対応するクラスの共通の特質、プロファイル、挙動、または関心を含み得る。いくつかの実装形態では、クラス特徴付け器705は、クラス識別子520に対する履歴データベース715の中のエントリ720のセットに基づいて、クラスの特性を決定するためにクラスプロファイルモデルを使用することができる。クラスプロファイルモデルは、とりわけ、線形回帰、ロジスティック回帰、人工ニューラルネットワーク(ANN)、サポートベクターマシン(SVM)、および単純ベイズ分類器などの任意のモデルであり得る。クラスプロファイルモデルは、クラス識別子520によって標識されるブラウジング履歴をある特性と相関付けるサンプルデータセットを使用して訓練されていることがある。クラスプロファイルモデルは、各クラス識別子520に対する履歴データベース715上のエントリ720を対応するクラスに対する特性に変換することができる。いくつかの実装形態では、クラス特徴付け器705は、各クラス識別子520の特性を記憶して維持することができる。
コンテンツ選択サービス425上で実行されるコンテンツ配置器710は、クラス識別子520を使用したコンテンツに対する要求620に応答して、コンテンツアイテム725のセットからコンテンツアイテム725を選択または特定することができる。クラス識別子520の使用は、コンテンツアイテム725の選択が特定のユーザに固有の識別子に基づかないことがあるという点で、コンテンツに対する要求と関連付けられる特定のユーザの固有の識別子を使用することとは対照的であり得る。各コンテンツアイテム725は、情報リソース600のコンテンツスロット610に埋め込み、挿入し、または別様に追加すべきオブジェクトまたは要素を含み得る。各コンテンツアイテム725は、コンテンツプロバイダ415のうちの1つまたは複数によって提供され得る。受信すると、コンテンツ配置器710は、コンテンツに対する要求620を解析してクラス識別子520を特定することができる。特定すると、コンテンツ配置器710は、クラス識別子520に対応するクラスの特性を特定することができる。コンテンツ配置器710は、クラスの特性と関連付けられるコンテンツアイテム725を特定または選択することができる。いくつかの実装形態では、コンテンツ配置器710は、コンテンツ配置プロセスを使用してコンテンツアイテム725を選択することができる。コンテンツ配置プロセスは、とりわけ、線形回帰、ロジスティック回帰、人工ニューラルネットワーク(ANN)、サポートベクターマシン(SVM)、および単純ベイズ分類器などのモデルを使用することができる。各コンテンツアイテム725に対して、コンテンツ配置プロセスは、コンテンツに対する要求620に含まれるクラス識別子520に対応するクラスの中のユーザによる相互作用の予測確率を計算し、決定し、または生成することができる。コンテンツ配置器710は、クラスの中のユーザによる相互作用の確率が最大であるコンテンツアイテム725を特定することができる。選択されると、コンテンツ配置器710は、コンテンツに対する要求620を発したクライアントデバイス430にコンテンツアイテム725を送信することができる。いくつかの実装形態では、コンテンツ配置器710は、コンテンツプロバイダ415から選択されたコンテンツアイテム725を取り出すために、アプリケーション
435のためのクライアントデバイス430にコンテンツアイテム725のアドレスを送信することができる。
図7に関連して図6に戻って参照すると、リソースプロセッサ615は、コンテンツ選択サービス425によって特定されるコンテンツアイテム725を受信することができる。リソースプロセッサ615は、情報リソース600のコンテンツスロット610へとコンテンツアイテム725を埋め込み、挿入し、または追加することができる。いくつかの実装形態では、リソースプロセッサ615は、コンテンツアイテム725のアドレスを受信することができる。コンテンツアイテム725のアドレスは、コンテンツプロバイダ415を参照することができる。リソースプロセッサ615は、コンテンツアイテム725を取り出すために別の要求をコンテンツプロバイダ415に送信し、情報リソース600のコンテンツスロット610にコンテンツアイテム725を挿入することができる。
このようにして、コンテンツ選択サービス425は、同じクラス識別子520と関連付けられるユーザが類似する応答を有すると予想されるとの予想を用いて、コンテンツアイテム725を選択することができる。さらに、個々のユーザのブラウジング履歴530についてのデータのセキュリティ、完全性、およびプライバシーを保護することができる。同時に、コンテンツアイテム725の選択における個々のクラスに対する関連性を決定できることにより、情報リソース600全体との人-コンピュータの対話(HCI)の品質を維持することができる。
ここで図8を参照すると、分類モデルを使用したコンテンツの選択のための識別子を符号化する方法800の実装形態を図示するフロー図が示されている。方法800に関して本明細書において説明される機能は、図4に示されるようなシステム400または図9に示されるようなコンピューティングデバイスによって実施され、または別様に実行され得る。大まかに、クライアントデバイス上で実行されるアプリケーションは、ブラウジング履歴を特定することができる(805)。アプリケーションは次元を削減することができる(810)。アプリケーションは分類モデルを適用することができる(815)。アプリケーションはクラスを特定することができる(820)。アプリケーションはクラス識別子を割り当てることができる(825)。アプリケーションは情報リソースを受信することができる(825)。アプリケーションはコンテンツに対する要求を生成することができる(835)。アプリケーションはクラス識別子を含み得る(840)。アプリケーションはコンテンツに対する要求を送信することができる(845)。アプリケーションは選択されたコンテンツアイテムを受信することができる(850)。アプリケーションは再割当てするかどうかを決定することができる(855)。再割当てしない場合、アプリケーションはクラス識別子を維持することができる(860)。
さらなる詳細において、クライアントデバイス(たとえば、クライアントデバイス430)上のアプリケーション(たとえば、アプリケーション435)は、ブラウジング履歴(たとえば、ブラウジング履歴530)を特定することができる(805)。ブラウジング履歴は、エントリのセット(たとえば、エントリ535)を含み得る。各エントリは、アクセスされた情報リソースのアドレスと、情報リソースがアクセスされた時間を特定するタイムスタンプとを含み得る。アプリケーションは、ブラウジング履歴のエントリのセットから特徴ベクトルのセットを生成することができる。特徴ベクトルは、次元のセットへのブラウジング履歴の投影であり得る。次元は、とりわけ、時間範囲およびアドレス属性を含み得る。アプリケーションは次元を削減することができる(810)。次元削減プロセスを使用して、アプリケーションは、特徴ベクトルの初期のセットから削減された特徴ベクトルのセットを生成することができる。
アプリケーションは、分類モデル(たとえば、分類モデル500)を適用することができる(815)。分類モデルは、入力のセット、パラメータのセット、および出力のセットを含み得る。入力のセットは、ブラウジング履歴のエントリ、またはブラウジング履歴の表現を含み得る。パラメータのセットは入力を出力に関連付けることができる。出力のセットは、アプリケーション上のユーザによるブラウジング履歴に基づいてアプリケーションと対話するユーザを類別すべきクラスを含み得る。アプリケーションは、分類モデルの入力として次元削減された特徴ベクトルのセットを供給することができる。分類モデルはパラメータを入力に適用することができる。アプリケーションはクラスを特定することができる(820)。分類モデルの適用により、分類モデルは、アプリケーションと対話するユーザを類別すべきクラスを特定する出力を生成することができる。それを拡張すると、アプリケーションの分類は、ユーザによって操作されるアプリケーションまたはクライアントデバイスを操作するアカウントと関連付けられるユーザの分類に対応し、またはそれを含み得る。アプリケーションはクラス識別子(たとえば、クラス識別子520)を割り当てることができる(825)。分類モデルは、クラス識別子のうちの1つに各クラスを関連付けることができる。クラス識別子が特定されると、アプリケーションは、クラスに対応するクラス識別子を特定し、アプリケーションをクラス識別子に割り当てることができる。
アプリケーションは情報リソース(たとえば、情報リソース600)を受信することができる(830)。情報リソースは、主要コンテンツ(たとえば、主要コンテンツ605)およびコンテンツスロット(たとえば、コンテンツスロット610)を含み得る。主要コンテンツは、コンテンツパブリッシャ(たとえば、コンテンツパブリッシャ420)によって提供され得る。コンテンツスロットは、コンテンツプロバイダ(たとえば、コンテンツプロバイダ415)またはコンテンツ選択サービス(たとえば、コンテンツ選択サービス425)からのコンテンツの挿入のために利用可能であり得る。受信すると、アプリケーションは情報リソースを解析することができる。アプリケーションは、コンテンツに対する要求(たとえば、コンテンツに対する要求620)を生成することができる(835)。コンテンツに対する要求の生成は、情報リソースの解析と連動していてもよい。
アプリケーションはクラス識別子を含み得る(840)。コンテンツに対する要求は、分類モデルを使用して特定されたクラスに対応するクラス識別子を含み得る。アプリケーションはまた、アプリケーションのユーザ、アプリケーション自体、またはアプリケーション上で実行されるクライアントデバイスと関連付けられるあらゆる固有の追跡識別子も除去することができる。固有の追跡識別子は、コンテンツプロバイダまたは別のコンテンツ配置プラットフォームからサードパーティクッキーの一部として提供されていることがある。クラス識別子は、コンテンツに対する要求に含まれるセキュアクッキーの一部として含まれ得る。アプリケーションは、コンテンツに対する要求を送信することができる(845)。送信は、クライアントデバイスとコンテンツ選択サービスとの間で確立されるセキュア通信チャネルを介したものであり得る。コンテンツに対する要求は、コンテンツ選択サービスによって受信され得る。コンテンツ選択サービスは、コンテンツアイテムのセットからあるコンテンツアイテム(たとえば、コンテンツアイテム725)を特定するために、要求に含まれるクラス識別子を使用することができる。この選択により、コンテンツ選択サービスは、コンテンツアイテムをアプリケーションに送信することができる。アプリケーションは、選択されたコンテンツアイテムを受信することができる(850)。アプリケーションは、コンテンツアイテムを情報リソース上で定義されるコンテンツスロットに挿入することができる。
アプリケーションは、クラス識別子を再割当てするかどうかを決定することができる(855)。再割当ては、識別子割当てポリシーに従ったものであり得る。ポリシーは、新しいクラス識別子を発見するために分類モデルがブラウジング履歴に再び適用されるべき条件のセットを規定することができる。決定が再割当てすべきであるというものである場合、アプリケーションは、(805)~(825)以降の機能を繰り返すことができる。一方、決定が再割当てすべきではないというものである場合、アプリケーションはクラス識別子を維持することができる(860)。
図9は、いくつかの実装形態による、本明細書において論じられるコンピュータシステム(アプリケーションマネージャサービス410とその構成要素、コンテンツプロバイダ415とその構成要素、コンテンツパブリッシャ420とその構成要素、コンテンツ選択サービス425とその構成要素、およびクライアントデバイス430とその構成要素)のいずれかを実装するために利用され得る例示的なコンピュータシステム900の汎用アーキテクチャを示す。コンピュータシステム900は、ネットワーク930を介して、表示する情報を提供するために使用され得る。コンピュータシステム900は、メモリ925に通信可能に結合される1つまたは複数のプロセッサ920、少なくとも1つのネットワーク930(たとえば、ネットワーク405)と通信可能に結合される1つまたは複数の通信インターフェース905、ならびに1つまたは複数の出力デバイス910(たとえば、1つまたは複数の表示ユニット)および1つまたは複数の入力デバイス915を備える。
プロセッサ920は、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはこれらの組合せを含み得る。メモリは、限定はされないが、プログラム命令をプロセッサに提供することが可能な、電気的な、光学的な、磁気的な、または任意の他のストレージもしくは送信デバイスを含み得る。メモリ925は、どのようなコンピュータ可読記憶媒体を備えてもよく、それぞれのシステムのための本明細書において説明される様々な機能を実装するためのプロセッサ実行可能命令などのコンピュータ命令、ならびに、通信インターフェースまたは入力デバイス(もしあれば)に関する、それによって生成される、もしくはそれを介して受信される任意のデータを記憶し得る。メモリ925は、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能ROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光学メディア、またはプロセッサがそれから命令を読み取ることができる任意の他の適切なメモリを含み得る。命令は、任意の適切なコンピュータプログラミング言語からのコードを含み得る。
図9に示されるプロセッサ920は、メモリ925に記憶されている命令を実行するために使用されてもよく、そうすることで、命令の実行に従って処理または生成される様々な情報をメモリから読み取り、またはメモリに書き込むこともできる。メモリ925と結合されるプロセッサ920(本明細書では処理ユニットと集合的に呼ばれる)は、アプリケーションマネージャサービス410に含まれ得る。たとえば、アプリケーションマネージャサービス410は、データベース515としてメモリ925を含み得る。メモリ925と結合されるプロセッサ920(本明細書では処理ユニットと集合的に呼ばれる)は、コンテンツプロバイダ415に含まれ得る。たとえば、コンテンツプロバイダ415は、コンテンツアイテム725を記憶するためにメモリ925を含み得る。メモリ925と結合されるプロセッサ920(本明細書では処理ユニットと集合的に呼ばれる)は、コンテンツパブリッシャ420に含まれ得る。たとえば、コンテンツパブリッシャ420は、情報リソース600を記憶するためにメモリ925を含み得る。メモリ925と結合されるプロセッサ920(本明細書では処理ユニットと集合的に呼ばれる)は、コンテンツ選択サービス425に含まれ得る。たとえば、コンテンツ選択サービス425は、履歴データベース720としてメモリ925を含み得る。メモリ925と結合されるプロセッサ920(本明細書では処理ユニットと集合的に呼ばれる)は、クライアントデバイス430に含まれ得る。たとえば、クライアントデバイス430は、ブラウジング履歴530および識別子キャッシュ540としてメモリ925を含み得る。
コンピュータシステム900のプロセッサ920はまた、命令の実行に従って様々な情報を送信または受信するために、通信インターフェース905に通信可能に結合されてもよく、または通信インターフェース905を制御させられてもよい。たとえば、通信インターフェース905は、有線もしくはワイヤレスのネットワーク、バス、または他の通信手段に結合されてもよく、したがって、コンピュータシステム900が、他のデバイス(たとえば、他のコンピュータシステム)に情報を送信すること、またはそれから情報を受信することを可能にし得る。図4~図7または図9のシステムにおいては明示的に示されていないが、1つまたは複数の通信インターフェースは、システム900の構成要素間の情報の流れを促進する。いくつかの実装形態では、通信インターフェースは、コンピュータシステム900の少なくともいくつかの態様にアクセスポータルとしてウェブサイトを提供するように(たとえば、様々なハードウェアコンポーネントまたはソフトウェアコンポーネントを介して)構成され得る。通信インターフェース905の例は、ユーザインターフェース(たとえば、アプリケーション435、情報リソース600、主要コンテンツ605、コンテンツスロット610、およびコンテンツアイテム725)を含み、それを通じて、ユーザはシステム400の他のデバイスと通信することができる。
図9に示されるコンピュータシステム900の出力デバイス910は、たとえば、様々な情報が命令の実行に関連して見られること、または別様に知覚されることを可能にするために提供され得る。入力デバイス915は、たとえば、ユーザが手動の調整を行うこと、選択を行うこと、データを入力すること、または命令の実行の間にプロセッサと様々な方式のいずれかで対話することを可能にするために提供され得る。本明細書において論じられる様々なシステムのために利用され得る一般的なコンピュータシステムアーキテクチャに関する追加の情報は、本明細書においてさらに提供される。
ネットワーク930は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、または他のエリアネットワーク、イントラネット、衛星ネットワーク、音声もしくはデータ携帯電話通信ネットワークなどの他のコンピュータネットワーク、およびこられの組合せなどの、コンピュータネットワークを含み得る。ネットワーク930は、アプリケーションマネージャサービス410、コンテンツプロバイダ415、コンテンツパブリッシャ420、コンテンツ選択サービス425、およびクライアントデバイス430などの、システム400の構成要素間で情報を中継する任意の形式のコンピュータネットワークであり得る。たとえば、ネットワーク930は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、または他のタイプのデータネットワークなどの、インターネットおよび/または他のタイプのデータネットワークを含み得る。ネットワーク930は、ネットワーク930内のデータを受信および/または送信するように構成される任意の数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)も含み得る。ネットワーク930はさらに、任意の数の有線接続および/またはワイヤレス接続を含み得る。クライアントデバイス430は、ネットワーク930の中の他のコンピューティングデバイスに(たとえば、光ファイバケーブル、CAT5ケーブルなどを介して)有線接続されるトランシーバとワイヤレスに(たとえば、WiFi、セルラー、無線などを介して)通信し得る。
本明細書において説明される主題および動作の実装形態は、デジタル電子回路において、または、本明細書において開示される構造およびそれらの構造的な均等物を含む、有形媒体上で具現化されるコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、または、これらの1つまたは複数の組合せにおいて実装され得る。本明細書において説明される主題の実装形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体に符号化される、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。プログラム命令は、人工的に生成される伝播信号、たとえば、データ処理装置による実行のために適切な受信機装置への送信のための情報を符号化するために生成される、機械で生成される電気信号、光信号、または電磁信号上に符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、それらの1つまたは複数の組合せであってもよく、またはそれらに含まれてもよい。その上、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号に符号化されるコンピュータプログラム命令のソースまたはデスティネーションを含み得る。コンピュータ記憶媒体はまた、1つまたは複数の別々の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であってもよく、またはそれに含まれてもよい。
本明細書において開示される特徴は、スマートテレビジョンモジュール(またはコネクテッドテレビジョンモジュール、ハイブリッドテレビジョンモジュールなど)に実装されてもよく、これは、より従来型のテレビ番組ソース(たとえば、ケーブル、衛星、電波、または他の信号を介して受信される)とインターネット接続を統合するように構成される処理モジュールを含み得る。スマートテレビジョンモジュールは、テレビジョンセットへと物理的に組み込まれてもよく、または、セットトップボックス、Blu-ray(登録商標)もしくは他のデジタルメディアプレーヤ、ゲームコンソール、ホテルテレビジョンシステム、もしくは他のコンパニオンデバイスなどの、別個のデバイスを含んでもよい。スマートテレビジョンモジュールは、ウェブ上の、ローカルのケーブルTVチャンネル上の、衛星TVチャンネル上の、またはローカルハードドライブに記憶されている、ビデオ、映画、写真、および他のコンテンツを視聴者が検索して発見することを可能にするように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、情報アプライアンスデバイスを含んでもよく、これは、チューナーを含み、信号のテレビジョンセットおよび外部ソースに接続して、テレビ画面または他の表示デバイスへと次いで表示されるコンテンツに信号を変えることができる。スマートテレビジョンモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されたケーブルまたは衛星メディアソース、他のウェブ「チャンネル」などの、複数の異なるアプリケーションのアイコンを含むホームスクリーンまたはトップレベルスクリーンを提供するように構成され得る。スマートテレビジョンモジュールはさらに、電子番組表をユーザに提供するように構成され得る。スマートテレビジョンモジュールに対するコンパニオンアプリケーションは、利用可能なプログラムについての追加の情報をユーザに提供すること、ユーザがスマートテレビジョンモジュールを制御することを可能にすることなどのために、モバイルコンピューティングデバイス上で動作可能であり得る。いくつかの実装形態では、特徴は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上で実装され得る。いくつかの実装形態では、本明細書において開示される特徴は、インターネット接続を(たとえば、別のコンピューティングデバイスまたはネットワーク930と)統合するように構成される処理モジュールを含み得る、ウェアラブルデバイスまたはコンポーネント(たとえば、スマートウォッチ)上で実装され得る。
本明細書において開示される動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されているデータ、または他のソースから受信されるデータに対して、データ処理装置によって実行される動作として実装され得る。
「データ処理装置」、「データ処理システム」、「ユーザデバイス」、または「コンピューティングデバイス」という用語は、プログラマブルプロセッサ、コンピュータ、システムオンチップもしくは複数のチップ、または前述の組合せを例として含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、対象のコンピュータプログラムの実行環境を作り出すコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散型コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続型言語を含む、任意の形式のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含めて、任意の形式で展開されてもよい。コンピュータプログラムは、ファイルシステムの中のファイルに相当し得るが、そうである必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書に記憶されている1つまたは複数のスクリプト)を保持するファイルの一部分に、対象のプログラムに専用の単一のファイルに、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つの場所に位置する、または複数の場所に分散しており通信ネットワークによって相互接続される、1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され得る。
本明細書において説明されるプロセスおよび論理フローは、入力データを操作して出力を生成することによって活動を実施するために1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のプログラマブルプロセッサによって実施され得る。専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって、プロセスおよび論理フローは実行されてもよく、それらとして、装置は実装されてもよい。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたは両方から命令とデータを受信する。コンピュータの不可欠な要素は、命令に従って活動を実行するためのプロセッサ、および命令とデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数のマスストレージデバイス、たとえば磁気ディスク、磁気光ディスク、もしくは光ディスクを含み、または、それらからデータを受信すること、それらにデータを転送すること、もしくは両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれ得る。コンピュータプログラム命令とデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク、磁気光ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形式の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補強され、またはそれに組み込まれ得る。
ユーザとの対話を可能にするために、本明細書において説明される主題の実装形態は、情報をユーザに表示するための表示デバイス、たとえばCRT(陰極線管)、プラズマ、またはLCD(液晶ディスプレイ)モニタ、ならびに、ユーザがそれによってコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有する、コンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を可能にするために使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック、たとえば視覚フィードバック、可聴フィードバック、または触覚フィードバックを含んでもよく、ユーザからの入力は、音響、発話、または触覚入力を含む、任意の形式で受け取られてもよい。加えて、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスから文書を送信し、それから文書を受信することによって、ユーザと対話することができる。
本明細書において説明される主題の実装形態は、バックエンドコンポーネントを、たとえばデータサーバとして含む、または、ミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、または、フロントエンドコンポーネント、たとえば、ユーザがそれを通じて本明細書において説明される主題の実装形態と対話できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、または、1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形式または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
システム900またはシステム400などのコンピューティングシステムは、クライアントおよびサーバを含み得る。たとえば、システム400のアプリケーションマネージャサービス410、コンテンツプロバイダ415、コンテンツパブリッシャ420、およびコンテンツ選択サービス425は各々、1つまたは複数のデータセンターまたはサーバファームの中の1つまたは複数のサーバを含み得る。クライアント(たとえば、クライアントデバイス430)およびサーバは一般に、互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され互いにクライアント-サーバの関係を有するコンピュータプログラムによって生じる。いくつかの実装形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取る目的で)。(たとえば、ユーザ対話の結果として)クライアントデバイスにおいて生成されるデータは、サーバにおいてクライアントデバイスから受信され得る。
本明細書において説明される主題の実装形態は、バックエンドコンポーネントを、たとえばデータサーバとして含む、または、ミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、または、フロントエンドコンポーネント、たとえばユーザが本明細書において説明される主題の実装形態とそれを通じて対話できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含む、または、1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形式または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークは、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含み得る。
本明細書において論じられるシステムがユーザについての個人情報を収集する、または個人情報を利用し得る状況では、ユーザは、個人情報(たとえば、ユーザのソーシャルネットワーク、社会的な行動もしくは活動、ユーザの好み、またはユーザの位置についての情報)をプログラムもしくは特徴が収集してもよいかどうかを制御するための機会、または、ユーザにより関連があり得るコンテンツをコンテンツサーバもしくは他のデータ処理システムから受信するかどうか、もしくはどのように受信するかを制御するための機会を与えられ得る。加えて、あるデータは、それが記憶または使用される前に1つまたは複数の方法で匿名化され得るので、パラメータを生成するとき、個人を特定可能な情報が削除される。たとえば、ユーザの識別情報は、個人を特定可能な情報がユーザについて決定され得ないように、または、位置情報が取得されるユーザの地理的位置が(都市レベル、郵便番号レベル、または州レベルなどに)一般化され得るように匿名化され得るので、ユーザの具体的な位置を決定することはできない。したがって、ユーザは、自身についての情報がどのように収集され、コンテンツサーバによって使用されるかを管理することができる。
本明細書は多くの具体的な実装形態の詳細を含むが、これらは、任意の発明の、または特許請求され得るものの範囲に対する制限として解釈されるべきではなく、むしろ、特定の発明の特定の実装形態に固有の特徴の説明として解釈されるべきである。別々の実装形態の文脈で本明細書において説明されるいくつかの特徴は、単一の実装形態における組合せでも実装され得る。逆に、単一の実装形態の文脈で説明される様々な特徴は、複数の実装形態において別々に、または任意の適切な部分組合せでも実装され得る。その上、特徴は、ある組合せで動作するものとして説明されることがあり、そのように最初に特許請求されることすらあるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合、組合せから省略されてもよく、特許請求される組合せは、部分組合せまたは部分組合せの変形を対象としてもよい。
同様に、動作は特定の順序で図面に示されているが、これは、望ましい結果を達成するために、動作が示される特定の順序もしくは逐次的な順序で実行されること、または、すべての示される動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上で説明された実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは全般に、単一のソフトウェア製品に一緒に統合され、または複数のソフトウェア製品にパッケージングされ得ることを理解されたい。
したがって、本主題の特定の実装形態が説明された。他の実装形態が、以下の特許請求の範囲内にある。いくつかの場合、特許請求の範囲に記載される活動は、異なる順序で実行されてもよく、それでも望ましい結果を達成することができる。加えて、添付の図面に示されるプロセスは、望ましい結果を達成するために、必ずしも示される特定の順序または逐次的な順序を必要としない。いくつかの実装形態では、マルチタスキングまたは並列処理が利用され得る。
100 プロファイルベクトル
102 デバイス
200 クライアントデバイス
202 プロセッサ
204 ネットワークインターフェース
206 メモリ
208 アプリケーション
210 アクセスログ
212 特異ベクトル
214 ログ削減器
216 ニューラルネットモデル
218 分類器
220 クラスタ識別子
225 ネットワーク
230 分類器サーバ
232 集約器
250 コンテンツサーバ
252 コンテンツアイテム
254 コンテンツ選択器
400 システム
405 ネットワーク
410 アプリケーションマネージャサービス
415 コンテンツプロバイダ
420 コンテンツパブリッシャ
425 コンテンツ選択サービス
430 クライアントデバイス
435 アプリケーション
500 分類モデル
505 モデル訓練器
510 モデル更新器
515 データベース
520 クラス識別子
525 モデル適用器
530 ブラウジング履歴
535 エントリ
540 識別子キャッシュ
600 情報リソース
605 主要コンテンツ
610 コンテンツスロット
615 リソースプロセッサ
620 要求
625 アドレス
630 クッキー
700 履歴集約器
705 クラス特徴付け器
710 コンテンツ配置器
715 履歴データベース
720 エントリ
725 コンテンツアイテム
900 コンピュータシステム
905 通信インターフェース
910 出力デバイス
915 入力デバイス
920 プロセッサ
925 メモリ
930 ネットワーク

Claims (28)

  1. 匿名化されたコンテンツ取り出しのための方法であって、
    コンピューティングデバイスのブラウザアプリケーションによって、前記コンピューティングデバイスのブラウジング履歴に基づいてプロファイルを生成するステップと、
    前記ブラウザアプリケーションによって、前記プロファイルをn次元ベクトルとして符号化するステップと、
    前記ブラウザアプリケーションによって、前記n次元ベクトルから次元削減ベクトルを計算するステップと、
    前記ブラウザアプリケーションによって、前記次元削減ベクトルに対応する第1のクラスタを決定するステップと、
    前記ブラウザアプリケーションによってコンテンツサーバに、コンテンツのアイテムに対する要求を送信するステップであって、前記要求が前記第1のクラスタの識別情報を備える、ステップと、
    前記ブラウザアプリケーションによって前記コンテンツサーバから、前記第1のクラスタの前記識別情報に従って選択されるコンテンツのアイテムを受信するステップと
    を備え
    前記次元削減ベクトルに対応する前記第1のクラスタを決定するステップがさらに、
    前記ブラウザアプリケーションによって第2のコンピューティングデバイスから、前記コンピューティングデバイスの前記n次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて決定されるニューラルネットモデルの重みを受信するステップと、
    前記ブラウザアプリケーションの機械学習システムによって、前記ニューラルネットモデルを前記次元削減ベクトルに適用してクラスタの所定のセットのランキングを生成するステップと、
    前記ブラウザアプリケーションによって、前記第1のクラスタをクラスタの前記所定のセットの最上位のランクのクラスタとして選択するステップと
    を備える、方法。
  2. 前記コンピューティングデバイスのユーザの前記ブラウジング履歴に基づいて前記プロファイルを生成するステップが、前記ブラウジング履歴のログから、所定の期間内の複数のアドレスの各々へのアクセス回数nを特定するステップを備える、請求項1に記載の方法。
  3. 前記プロファイルをn次元ベクトルとして符号化するステップがさらに、所定の期間内における文字列の中の対応する位置と関連付けられるアドレスへの1回または複数のアクセスの各々を表す値を伴う、前記文字列を生成するステップを備える、請求項1に記載の方法。
  4. 前記次元削減ベクトルを計算するステップがさらに、前記n次元ベクトルの特異値分解を実行するステップを備える、請求項1に記載の方法。
  5. 前記次元削減ベクトルを計算するステップがさらに、第2のコンピューティングデバイスから、前記特異値分解の特異ベクトルのセットを受信するステップを備える、請求項4に記載の方法。
  6. 前記次元削減ベクトルを計算するステップがさらに、前記第2のコンピューティングデバイスに、前記n次元ベクトルを送信するステップを備え、
    前記第2のコンピューティングデバイスが、前記コンピューティングデバイスの前記n次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて、特異ベクトルの前記セットを計算する、請求項5に記載の方法。
  7. 前記次元削減ベクトルに対応する前記第1のクラスタを決定するステップがさらに、第2のコンピューティングデバイスから、複数のクラスタの各々の境界を受信するステップを備える、請求項1に記載の方法。
  8. 前記次元削減ベクトルに対応する前記第1のクラスタを決定するステップがさらに、前記次元削減ベクトルが前記第1のクラスタの前記境界内にあることに応答して、前記複数のクラスタのうちの前記第1のクラスタを選択するステップを備える、請求項7に記載の方法。
  9. 匿名化されたコンテンツ取り出しのための方法であって、
    サーバコンピューティングデバイスによって複数のクライアントコンピューティングデバイスの各々から、対応するクライアントコンピューティングデバイスのブラウジング履歴に基づいてプロファイルを受信するステップであって、各プロファイルがn次元ベクトルを備える、ステップと、
    前記サーバコンピューティングデバイスによって、複数のクライアントコンピューティングデバイスからの複数のプロファイルの複数のn次元ベクトルを行列へと集約するステップと、
    前記サーバコンピューティングデバイスによって、前記行列の特異値分解を計算して特異値のセットを生成するステップと、
    前記サーバコンピューティングデバイスによって前記複数のクライアントコンピューティングデバイスおよび少なくとも1つのコンテンツプロバイダデバイスの各々に、特異値の前記セットを送信するステップと
    を備える、方法。
  10. 前記サーバコンピューティングデバイスによって、前記行列のクラスタのセットの各クラスタの境界を決定するステップをさらに備える、請求項9に記載の方法。
  11. 前記サーバコンピューティングデバイスによって前記複数のクライアントコンピューティングデバイスの各々および前記少なくとも1つのコンテンツプロバイダデバイスに、前記行列のクラスタの前記セットの各クラスタの前記境界を送信するステップをさらに備える、請求項10に記載の方法。
  12. 前記サーバコンピューティングデバイスによって、前記行列からニューラルネットモデルを介してクラスタのセットの各クラスタを特定するステップをさらに備える、請求項9に記載の方法。
  13. 前記ニューラルネットモデルの重みを前記複数のクライアントコンピューティングデバイスの各々および前記少なくとも1つのコンテンツプロバイダデバイスに送信するステップをさらに備える、請求項12に記載の方法。
  14. 匿名化されたコンテンツ取り出しのためのシステムであって、
    コンテンツサーバと通信しているネットワークインターフェースと、コンピューティングデバイスのブラウジング履歴を記憶するメモリと、ブラウザアプリケーションとを備える、前記コンピューティングデバイスを備え、前記ブラウザアプリケーションが、
    前記コンピューティングデバイスの前記ブラウジング履歴に基づいてプロファイルを生成し、
    前記プロファイルをn次元ベクトルとして符号化し、
    前記n次元ベクトルから次元削減ベクトルを計算し、
    前記次元削減ベクトルに対応する第1のクラスタを決定し、
    前記ネットワークインターフェースを介して前記コンテンツサーバに、コンテンツのアイテムに対する要求を送信し、前記要求が前記第1のクラスタの識別情報を備え、
    前記ネットワークインターフェースを介して前記コンテンツサーバから、前記第1のクラスタの前記識別情報に従って選択されるコンテンツのアイテムを受信する
    ように構成され
    前記ブラウザアプリケーションがさらに、
    前記ネットワークインターフェースを介して第2のコンピューティングデバイスから、前記コンピューティングデバイスの前記n次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて決定されるニューラルネットモデルの重みを受信し、
    前記ニューラルネットモデルを前記次元削減ベクトルに適用してクラスタの所定のセットのランキングを生成し、
    前記第1のクラスタをクラスタの前記所定のセットの最上位のランクのクラスタとして選択する
    ように構成される、システム。
  15. 前記ブラウザアプリケーションがさらに、所定の期間内における文字列の中の対応する位置と関連付けられるアドレスへの1回または複数のアクセスの各々を表す値を伴う、前記文字列を生成するように構成される、請求項14に記載のシステム。
  16. 前記ブラウザアプリケーションがさらに、前記n次元ベクトルの特異値分解を実行するように構成される、請求項14に記載のシステム。
  17. 前記ブラウザアプリケーションがさらに、前記ネットワークインターフェースを介して第2のコンピューティングデバイスから、前記特異値分解の特異ベクトルのセットを受信するように構成される、請求項16に記載のシステム。
  18. 前記ブラウザアプリケーションがさらに、前記ネットワークインターフェースを介して前記第2のコンピューティングデバイスに、前記n次元ベクトルを送信するように構成され、
    前記第2のコンピューティングデバイスが、前記コンピューティングデバイスの前記n次元ベクトルおよび少なくとも1つの他のコンピューティングデバイスのn次元ベクトルの集約に基づいて、特異ベクトルの前記セットを計算する、請求項17に記載のシステム。
  19. コンテンツの選択のための識別子を符号化する方法であって、
    クライアントデバイス上で実行される第1のアプリケーションによって、前記クライアントデバイスに維持されているブラウジング履歴を特定するステップであって、前記ブラウジング履歴が、前記第1のアプリケーションを介して前記クライアントデバイスによってアクセスされる情報リソースを記録する、ステップと、
    前記第1のアプリケーションによって、前記第1のアプリケーションの前記ブラウジング履歴に分類モデルを適用し、前記第1のアプリケーションを類別すべきクラスを特定するステップと、
    前記第1のアプリケーションによって、前記特定されたクラスに対応するクラス識別子に前記第1のアプリケーションを割り当てるステップであって、前記第1のアプリケーションの前記クラス識別子が第2のアプリケーションの前記クラス識別子と同一である、ステップと、
    前記第1のアプリケーションによってコンテンツパブリッシャデバイスから、主要コンテンツを備える情報リソースと、コンテンツ選択サービスからコンテンツを受信するのに利用可能なコンテンツスロットとを受信するステップと、
    前記第1のアプリケーションによって、前記情報リソースの前記コンテンツスロットに対して、前記第1のアプリケーションの前記クラス識別子を含むコンテンツに対する要求を生成するステップと、
    前記第1のアプリケーションによって、コンテンツに対する前記要求を前記コンテンツ選択サービスに送信するステップであって、前記コンテンツ選択サービスが、前記第1のアプリケーションの前記クラス識別子および前記第2のアプリケーションの前記クラス識別子を使用して、前記情報リソースの前記コンテンツスロットへと挿入すべきコンテンツアイテムを選択する、ステップと
    を備える、方法。
  20. 前記第1のアプリケーションによってアプリケーション管理者サービスから、アプリケーションを複数のクラスのうちの1つへと類別するための前記分類モデルを更新するためのパラメータのセットを受信するステップと、
    前記第1のアプリケーションによって、前記アプリケーション管理者サービスから受信されたパラメータの前記セットに基づいて、前記クライアントデバイスに維持されている前記分類モデルを修正するステップと
    をさらに備える、請求項19に記載の方法。
  21. 前記第1のアプリケーションによって、対応する複数のクライアントデバイス上で実行される複数のアプリケーションと共同で分散型学習プロトコルを使用して、前記クライアントデバイスに維持されている前記分類モデルを訓練するステップをさらに備える、請求項19に記載の方法。
  22. 前記第1のアプリケーションによって、次元削減プロセスを使用して、前記クライアントデバイスから特定される前記ブラウジング履歴から削減された特徴ベクトルのセットを生成するステップであって、前記特徴ベクトルは前記ブラウジング履歴よりファイルサイズが小さい、ステップをさらに備え、
    前記分類モデルを適用するステップがさらに、前記ブラウジング履歴から生成された削減された特徴ベクトルの前記セットに前記分類モデルを適用するステップを備える、請求項19に記載の方法。
  23. 前記第1のアプリケーションによって、識別子割当てポリシーに従って、前記分類モデルが前記ブラウジング履歴に適用されるべきであると決定するステップをさらに備え、
    前記分類モデルを適用するステップがさらに、前記識別子割当てポリシーに従って前記分類モデルが適用されるべきであるとの決定に応答して、前記分類モデルを適用するステップを備える、請求項19に記載の方法。
  24. 前記分類モデルを適用するステップがさらに、前記分類モデルを適用して複数のクラスから前記クラスを特定するステップを備え、
    前記複数のクラスの各クラスが、前記クラスに類別されるべき少なくとも所定の数のクライアントを有する、請求項19に記載の方法。
  25. 前記第1のアプリケーションを前記クラス識別子に割り当てるステップがさらに、前記第1のアプリケーションを複数のクラス識別子の前記クラス識別子に割り当てるステップを備え、
    各クラス識別子が、前記複数のクラスのうちの1つに対応する、請求項19に記載の方法。
  26. コンテンツに対する前記要求を生成するステップがさらに、前記第1のアプリケーションと関連付けられるアカウント、前記第1のアプリケーション、または前記コンテンツ選択サービスによって提供される前記クライアントデバイスに対応する固有の追跡識別子なしで、コンテンツに対する前記要求を生成するステップを備える、請求項19に記載の方法。
  27. コンテンツに対する前記要求を生成するステップがさらに、前記コンテンツ選択サービスとの接続を介した送信のために、セキュアクッキーを備えるコンテンツに対する前記要求を生成するステップを備え、
    前記セキュアクッキーが、前記第1のアプリケーションの前記クラス識別子を有する、請求項19に記載の方法。
  28. 前記ブラウジング履歴を特定するステップがさらに、前記分類モデルを適用すべき所定の時間範囲にわたって前記ブラウジング履歴を特定するステップを備える、請求項19に記載の方法。
JP2021527201A 2019-08-08 2020-03-31 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴 Active JP7254922B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2023051920A JP2023093476A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴
JP2023051923A JP2023098897A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/535,912 US11194866B2 (en) 2019-08-08 2019-08-08 Low entropy browsing history for content quasi-personalization
US16/535,912 2019-08-08
PCT/US2020/026017 WO2021025731A1 (en) 2019-08-08 2020-03-31 Low entropy browsing history for content quasi-personalization

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2023051920A Division JP2023093476A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴
JP2023051923A Division JP2023098897A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴

Publications (2)

Publication Number Publication Date
JP2022542623A JP2022542623A (ja) 2022-10-06
JP7254922B2 true JP7254922B2 (ja) 2023-04-10

Family

ID=70471097

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2021527201A Active JP7254922B2 (ja) 2019-08-08 2020-03-31 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴
JP2023051920A Pending JP2023093476A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴
JP2023051923A Pending JP2023098897A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2023051920A Pending JP2023093476A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴
JP2023051923A Pending JP2023098897A (ja) 2019-08-08 2023-03-28 コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴

Country Status (8)

Country Link
US (3) US11194866B2 (ja)
EP (3) EP3868076B1 (ja)
JP (3) JP7254922B2 (ja)
KR (3) KR102564387B1 (ja)
CN (1) CN113056897A (ja)
DE (1) DE112020000133T5 (ja)
GB (1) GB2594367A (ja)
WO (1) WO2021025731A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194866B2 (en) 2019-08-08 2021-12-07 Google Llc Low entropy browsing history for content quasi-personalization
GB2593363A (en) 2019-08-08 2021-09-22 Google Llc Low entropy browsing history for content quasi-personalization
US20210056458A1 (en) * 2019-08-20 2021-02-25 Adobe Inc. Predicting a persona class based on overlap-agnostic machine learning models for distributing persona-based digital content
US11544080B2 (en) * 2019-10-25 2023-01-03 Micro Focus Llc Adaptive user interface based on device context as well as user context
CN111475392B (zh) * 2020-04-08 2022-05-20 北京字节跳动网络技术有限公司 生成预测信息的方法、装置、电子设备和计算机可读介质
EP4053738A1 (en) * 2021-03-03 2022-09-07 Tata Consultancy Services Limited Determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof
WO2023075774A1 (en) * 2021-10-28 2023-05-04 Google Llc Machine learning techniques for user group based content distribution
US20240020279A1 (en) * 2022-07-18 2024-01-18 Dell Products L.P. Systems and methods for intelligent database recommendation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089273A1 (en) 2007-09-27 2009-04-02 Cory Hicks System for detecting associations between items
JP2010106033A (ja) 2002-03-20 2010-05-13 Celgene Corp (+)−2−[1−(3−エトキシ−4−メトキシフェニル)−2−メチルスルホニルエチル]−4−アセチルアミノイソインドリン−1,3−ジオン、その使用方法及び組成物

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122360B2 (en) * 2007-06-27 2012-02-21 Kosmix Corporation Automatic selection of user-oriented web content
JP5242507B2 (ja) * 2009-06-22 2013-07-24 日本電信電話株式会社 広告配信システム、広告配信サーバー、広告配信方法および広告配信プログラム
US9129000B2 (en) 2010-04-30 2015-09-08 International Business Machines Corporation Method and system for centralized control of database applications
US20120203723A1 (en) * 2011-02-04 2012-08-09 Telefonaktiebolaget Lm Ericsson (Publ) Server System and Method for Network-Based Service Recommendation Enhancement
EP2533168B1 (en) 2011-06-07 2017-01-25 BlackBerry Limited Method and devices for managing permission requests to allow access to computing resource
US8763080B2 (en) 2011-06-07 2014-06-24 Blackberry Limited Method and devices for managing permission requests to allow access to a computing resource
US9519726B2 (en) 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
JP5730734B2 (ja) 2011-09-28 2015-06-10 株式会社Nttドコモ アプリケーション推薦装置、アプリケーション推薦方法及びアプリケーション推薦プログラム
CN103647800B (zh) 2013-11-19 2017-12-12 乐视致新电子科技(天津)有限公司 推荐应用资源的方法及系统
CN104899220B (zh) 2014-03-06 2021-06-25 腾讯科技(深圳)有限公司 应用程序推荐方法和系统
CN105991722B (zh) 2015-02-12 2020-03-10 Oppo广东移动通信有限公司 一种下载器推荐方法、应用服务器、终端及系统
US20170046510A1 (en) 2015-08-14 2017-02-16 Qualcomm Incorporated Methods and Systems of Building Classifier Models in Computing Devices
US20170091303A1 (en) * 2015-09-24 2017-03-30 Intel Corporation Client-Side Web Usage Data Collection
US20160162924A1 (en) 2015-11-27 2016-06-09 Yogesh Rathod Track user activities and in exchange provide points to use for various activities including advertising contents to targeted users of network
CN105608117B (zh) 2015-12-14 2019-12-10 微梦创科网络科技(中国)有限公司 一种信息推荐方法及装置
US20170262894A1 (en) 2016-03-11 2017-09-14 Facebook, Inc. Expanding targeting criteria for content items based on user characteristics and weights associated with users satisfying the targeting criteria
US11030651B2 (en) * 2016-05-06 2021-06-08 Adp, Llc Segmented user profiles
US10496263B2 (en) * 2017-01-03 2019-12-03 Jpmorgan Chase Bank, N.A. De-anonymization of website visitor identity
RU2757546C2 (ru) 2017-07-25 2021-10-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для создания персонализированного пользовательского параметра интереса для идентификации персонализированного целевого элемента содержимого
US11194866B2 (en) 2019-08-08 2021-12-07 Google Llc Low entropy browsing history for content quasi-personalization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010106033A (ja) 2002-03-20 2010-05-13 Celgene Corp (+)−2−[1−(3−エトキシ−4−メトキシフェニル)−2−メチルスルホニルエチル]−4−アセチルアミノイソインドリン−1,3−ジオン、その使用方法及び組成物
US20090089273A1 (en) 2007-09-27 2009-04-02 Cory Hicks System for detecting associations between items

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大森 慎吾,閲覧履歴を利用したWebページ推薦のSOMによる視覚化,第2回データ工学と情報マネジメントに関するフォーラム -DEIM 2010-論文集 [online],日本,電子情報通信学会データ工学研究専門委員会,2010年05月25日,D6-1

Also Published As

Publication number Publication date
EP4274194A2 (en) 2023-11-08
DE112020000133T5 (de) 2021-07-29
US20210042357A1 (en) 2021-02-11
WO2021025731A1 (en) 2021-02-11
GB202107198D0 (en) 2021-06-30
KR20210077736A (ko) 2021-06-25
JP2022542623A (ja) 2022-10-06
US20220083599A1 (en) 2022-03-17
US20210349947A1 (en) 2021-11-11
KR102564387B1 (ko) 2023-08-08
US11687597B2 (en) 2023-06-27
EP3868076B1 (en) 2023-11-01
KR20230118199A (ko) 2023-08-10
CN113056897A (zh) 2021-06-29
JP2023093476A (ja) 2023-07-04
EP4274193A2 (en) 2023-11-08
GB2594367A (en) 2021-10-27
US11194866B2 (en) 2021-12-07
EP4274193A3 (en) 2023-11-29
JP2023098897A (ja) 2023-07-11
EP4274194A3 (en) 2023-12-06
EP3868076A1 (en) 2021-08-25
KR20230119258A (ko) 2023-08-16
US20230409646A1 (en) 2023-12-21

Similar Documents

Publication Publication Date Title
JP7254922B2 (ja) コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴
JP7254923B2 (ja) コンテンツの擬似パーソナライゼーションのための低エントロピーのブラウジング履歴
US11089121B2 (en) Systems and methods for content audience analysis via encoded links
US11443010B2 (en) Systems and methods for benchmarking online activity via encoded links
US11936751B2 (en) Systems and methods for online activity monitoring via cookies
US20170091303A1 (en) Client-Side Web Usage Data Collection
US11423441B2 (en) Low entropy browsing history for ads quasi-personalization
Ranjan et al. Approximate matching of persistent lexicon using search-engines for classifying mobile app traffic
US11995128B2 (en) Low entropy browsing history for content quasi-personalization
US20230259815A1 (en) Machine learning techniques for user group based content distribution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221221

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: 20230227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230329

R150 Certificate of patent or registration of utility model

Ref document number: 7254922

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150