JP2022528212A - ネットワークリソースのセキュリティおよび利用を改善するためにローカルコンテンツを生成および選択するためのシステムおよび方法 - Google Patents

ネットワークリソースのセキュリティおよび利用を改善するためにローカルコンテンツを生成および選択するためのシステムおよび方法 Download PDF

Info

Publication number
JP2022528212A
JP2022528212A JP2021517810A JP2021517810A JP2022528212A JP 2022528212 A JP2022528212 A JP 2022528212A JP 2021517810 A JP2021517810 A JP 2021517810A JP 2021517810 A JP2021517810 A JP 2021517810A JP 2022528212 A JP2022528212 A JP 2022528212A
Authority
JP
Japan
Prior art keywords
content
client device
information
dialogue
context
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
JP2021517810A
Other languages
English (en)
Other versions
JP7238109B2 (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 JP2022528212A publication Critical patent/JP2022528212A/ja
Application granted granted Critical
Publication of JP7238109B2 publication Critical patent/JP7238109B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0255Targeted advertisements based on user history
    • 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
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0261Targeted advertisements based on user location
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21815Source of audio or video content, e.g. local disk arrays comprising local storage units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8126Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts
    • H04N21/8133Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts specifically related to the content, e.g. biography of the actors in a movie, detailed information about an article seen in a video program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Bioethics (AREA)
  • Tourism & Hospitality (AREA)
  • Computing Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本開示の少なくとも1つの態様は、セキュリティ、プライバシー、およびネットワーク利用を改善するために、オンデバイスコンテンツアイテムを生成するシステムおよび方法を対象とする。クライアントデバイスは、クライアントデバイスのメモリ内のデータ構造にあるコンテンツリソースおよびカテゴリー情報にアクセスすることができる。クライアントデバイスは、コンテンツリソースおよびカテゴリー情報に基づいて、オンデバイスコンテンツアイテムを生成することができる。クライアントデバイスは、クライアントデバイス上で実行しているアプリケーション内にコンテンツアイテムを表示するための指示を受信することができる。クライアントデバイスは、関連デバイスコンテキストを作成するために、コンテキスト情報について、クライアントデバイスをスキャンすることができる。クライアントデバイスは、関連デバイスコンテキストに基づいて、オンデバイスコンテンツアイテムを選択することができる。クライアントデバイスは、表示するために、アプリケーションに、選択されたオンデバイスアイテムを提供し、表示されたコンテンツアイテムとの対話を検出し、コンテンツ選択モデルまたはコンテンツ生成モデルを更新することができる。

Description

インターネットなどのコンピュータネットワーク化された環境では、サードパーティコンテンツプロバイダは、エンドユーザコンピューティングデバイス上に表示するためのサードパーティコンテンツアイテムを提供する。これらのサードパーティコンテンツアイテム、たとえば、広告は、それぞれのパブリッシャーに関連付けられたウェブページ上に表示され得る。これらのサードパーティコンテンツアイテムは、コンテンツアイテムを提供したサードパーティコンテンツプロバイダを識別するコンテンツを含み得る。
しかしながら、サードパーティコンテンツを選択し、クライアントデバイスに提供することは、データセキュリティへのリスクを示し、ネットワークリソースを不必要に利用することがある。サードパーティコンテンツアイテムを提供するために、クライアントデバイスは、サードパーティコンテンツプロバイダにコンテキスト情報を送ることができ、サードパーティコンテンツプロバイダは、コンテキスト情報を使用して、クライアントデバイス上に表示するための関連コンテンツアイテムを選択することができる。結果として、関連コンテンツアイテムを表示するために、少なくとも2つのネットワーク送信が発生しなければならず、1つがデバイスコンテキスト情報を提供するためのものであり、もう1つが、クライアントデバイスのために選択されたコンテンツを提供するためのものである。これによって、クライアントデバイスをデータセキュリティリスクにさらすことがあり、その理由は、デバイスコンテキスト情報がデバイスから離れるとすぐに、ネットワークの全体的なセキュリティに制限されるからである。最新のデバイスコンテキスト情報をサードパーティコンテンツプロバイダに頻繁に送信することによって、ネットワークおよびコンピューティングリソースの過剰な利用になることがある。
本明細書で説明するシステムおよび方法は、クライアントデバイスがそれ自体のコンテキスト情報にアクセスすること、およびオンデバイスコンテキスト情報を生成することを可能にし、それによって、サードパーティコンテンツプロバイダへのデータ送信の回数を低減する。他の手法とは異なり、本明細書で説明するシステムおよび方法は、オンデバイスコンテンツ生成モデルおよび選択モデルを利用して、クライアントデバイス上のアプリケーション内で表示するためのコンテンツアイテムを生成および選択することができる。それ自体のコンテキスト情報を使用することによって、クライアントデバイスは、クライアントデバイスの外部にいかなるコンテキスト情報を送信することもなく、リアルタイムで、表示するための1つまたは複数のコンテンツアイテムを生成することができる。そのような技法によって、サードパーティコンテンツプロバイダにデータを送る必要をなくすことによって、全体的なネットワークシステムセキュリティを高めながら、全体的なネットワーク利用、電力利用、およびコンピューティングリソース利用を低減することができる。本明細書で説明する技法はまた、クライアントデバイス上に存在するデータの全体的なプライバシー、および一般にクライアントデバイスのプライバシーを改善することもできる。さらに、本明細書で説明する技法は、オンデバイスコンテンツアイテムとのユーザ対話情報に基づいて、選択モデルおよび生成モデルをさらに改良することができる。
本開示の少なくとも1つの態様は、セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成するための方法を対象とする。方法は、1つまたは複数のプロセッサとメモリとを含む、クライアントデバイスによって、複数のコンテンツリソースおよび複数のカテゴリー情報にアクセスするステップを含み得る。クライアントデバイスは、たとえば、クライアントデバイスのメモリ内のデータ構造にある複数の関心リソースおよび複数のカテゴリー情報にアクセスすることができる。方法は、クライアントデバイスによって、複数のコンテンツリソースおよび複数のカテゴリー情報に基づいて、複数のオンデバイスコンテンツアイテムを生成するステップを含み得る。方法は、クライアントデバイスによって、クライアントデバイス上で実行しているアプリケーションから、コンテンツアイテムを表示するための指示を受信するステップを含み得る。方法は、クライアントデバイスによって、関連デバイスコンテキストを作成するために、デバイスコンテキスト情報をスキャンするステップを含み得る。方法は、クライアントデバイスによって、関連デバイスコンテキストに基づいて、複数のオンデバイスコンテンツアイテムから、関連オンデバイスコンテンツアイテムを選択するステップを含み得る。方法は、クライアントデバイスによって、クライアントデバイス上に表示するために、アプリケーションに関連オンデバイスコンテンツアイテムを提供するステップを含み得る。
いくつかの実装形態では、方法は、クライアントデバイスによって、関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出するステップを含み得る。方法は、クライアントデバイスによって、検出された対話イベントに基づいて、対話情報を識別するステップを含み得る。方法は、クライアントデバイスによって、コンテンツプロバイダサーバに対話情報を送信するステップを含み得る。いくつかの実装形態では、方法は、クライアントデバイスによって、対話情報に基づいて、コンテンツプロバイダサーバから、追加のコンテンツを受信するステップを含み得る。いくつかの実装形態では、方法は、クライアントデバイスによって、コンテンツプロバイダサーバから、複数のコンテンツリソースおよび複数のカテゴリー情報を受信するステップを含み得る。
いくつかの実装形態では、方法は、クライアントデバイスによって、クライアントデバイス上で実行しているコンテンツ生成モデルに、複数のコンテンツリソースおよび複数のカテゴリー情報を提供するステップを含み得る。方法は、クライアントデバイスによって、コンテンツ生成モデルの出力から、複数のオンデバイスコンテンツアイテムを受信するステップを含み得る。いくつかの実装形態では、方法は、クライアントデバイスによって、コンテンツプロバイダサーバから、コンテンツ生成モデルを受信するステップを含み得る。いくつかの実装形態では、方法は、クライアントデバイスによって、クライアントデバイス上で実行しているコンテンツ選択モデルに、関連デバイスコンテキストを提供するステップを含み得る。方法は、クライアントデバイスによって、コンテンツ選択モデルの出力から、複数のオンデバイスコンテンツアイテムのうちの関連オンデバイスコンテンツアイテムの指示を受信するステップを含み得る。
いくつかの実装形態では、方法は、クライアントデバイスによって、コンテンツプロバイダサーバから、コンテンツ選択モデルを受信するステップを含み得る。いくつかの実装形態では、方法は、クライアントデバイスによって、関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出するステップを含み得る。方法は、クライアントデバイスによって、関連コンテキスト情報または対話イベントのうちの少なくとも1つに基づいて、コンテンツ生成モデルを更新するステップを含み得る。いくつかの実装形態では、方法は、クライアントデバイスによって、関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出するステップを含み得る。方法は、クライアントデバイスによって、関連コンテキスト情報または対話イベントのうちの少なくとも1つに基づいて、コンテンツ選択モデルを更新するステップを含み得る。
本開示の少なくとも1つの他の態様は、クライアントデバイスを含むシステムを対象とし、クライアントデバイスが、1つまたは複数のプロセッサとメモリとを備える。クライアントデバイスは、クライアントデバイスのメモリ内のデータ構造にある複数のコンテンツリソースおよび複数のカテゴリー情報にアクセスすることができる。クライアントデバイスは、複数のコンテンツリソースおよび複数のカテゴリー情報に基づいて、複数のオンデバイスコンテンツアイテムを生成することができる。クライアントデバイスは、クライアントデバイス上で実行しているアプリケーションから、コンテンツアイテムを表示するための指示を受信することができる。クライアントデバイスは、関連デバイスコンテキストを作成するために、デバイスコンテキスト情報をスキャンすることができる。クライアントデバイスは、関連デバイスコンテキストに基づいて、複数のオンデバイスコンテンツアイテムから、関連オンデバイスコンテンツアイテムを選択することができる。クライアントデバイスは、クライアントデバイス上に表示するために、アプリケーションに関連オンデバイスコンテンツアイテムを提供することができる。
いくつかの実装形態では、クライアントデバイスは、関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出することができる。クライアントデバイスは、検出された対話イベントに基づいて、対話情報を識別することができる。クライアントデバイスは、コンテンツプロバイダサーバに対話情報を送信することができる。いくつかの実装形態では、クライアントデバイスは、対話情報に基づいて、コンテンツプロバイダサーバから、追加のコンテンツを受信することができる。いくつかの実装形態では、クライアントデバイスは、コンテンツプロバイダサーバから、複数のコンテンツリソースおよび複数のカテゴリー情報を受信することができる。
いくつかの実装形態では、クライアントデバイスは、クライアントデバイス上で実行しているコンテンツ生成モデルに、複数のコンテンツリソースおよび複数のカテゴリー情報を提供することができる。クライアントデバイスは、コンテンツ生成モデルの出力から、複数のオンデバイスコンテンツアイテムを受信することができる。いくつかの実装形態では、クライアントデバイスは、コンテンツプロバイダサーバから、コンテンツ生成モデルを受信することができる。いくつかの実装形態では、クライアントデバイスは、クライアントデバイス上で実行しているコンテンツ選択モデルに、関連デバイスコンテキストを提供することができる。クライアントデバイスは、コンテンツ選択モデルの出力から、複数のオンデバイスコンテンツアイテムのうちの関連オンデバイスコンテンツアイテムの指示を受信することができる。
いくつかの実装形態では、クライアントデバイスは、コンテンツプロバイダサーバから、コンテンツ選択モデルを受信することができる。いくつかの実装形態では、クライアントデバイスは、関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出することができる。クライアントデバイスは、関連コンテキスト情報または対話イベントのうちの少なくとも1つに基づいて、コンテンツ生成モデルを更新することができる。いくつかの実装形態では、クライアントデバイスは、関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出することができる。クライアントデバイスは、関連コンテキスト情報または対話イベントのうちの少なくとも1つに基づいて、コンテンツ選択モデルを更新することができる。
これらおよび他の態様および実装形態について、以下で詳細に説明する。上記の情報および以下の詳細な説明は、様々な態様および実装形態の例示的な例を含み、請求される態様および実装形態の本質および性質を理解するための概観またはフレームワークを提供する。図面は、様々な態様および実装形態の例示およびさらなる理解を提供し、本明細書に組み込まれ、本明細書の一部を構成する。態様が結合され得、本発明の一態様のコンテキストにおいて説明する特徴が、他の態様と組み合わせられ得ることは容易に諒解されよう。態様は、任意の好都合な形態で、たとえば、有形のキャリア媒体(たとえば、ディスク)、または無形のキャリア媒体(たとえば、通信信号)であり得る、適切なキャリア媒体(コンピュータ可読媒体)上で搬送され得る、適切なコンピュータプログラムによって実装され得る。態様はまた、態様を実装するように配置されたコンピュータプログラムを実行するプログラマブルコンピュータの形態をとり得る、好適な装置を使用して実装され得る。
添付の図面は、一定の縮尺で描かれることを意図していない。様々な図面における同様の参照番号および指示は、同様の要素を示す。明瞭性のために、あらゆる構成要素があらゆる図面において符号を付けられるとは限らないことがある。図面においては、以下の通りである。
セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成するための例示的なシステムを示すブロック図である。 クライアントデバイス上で実行しているアプリケーションのコンテンツスロット内に、オンデバイスコンテンツアイテムを表示する例示的な図である。 デバイスコンテキスト、コンテンツリソース、およびカテゴリー情報に基づいて、オンデバイスコンテンツアイテムを生成する例示的な図である。 セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成する方法のフロー図である。 対話情報に基づいて、コンテンツ選択モデルまたはコンテンツ生成モデルを更新する方法のフロー図である。 本明細書で説明するコンピュータのいずれかを実装するために採用され得る、例示的なコンピュータシステムの全体的なアーキテクチャを示す図である。
以下は、セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成する方法、装置、およびシステムに関する様々な概念、ならびにそれらの実装形態のより詳細な説明である。上記で紹介し、以下でより詳細に説明する様々な概念は、多数の方法のいずれにおいても実装され得、その理由は、説明する概念が、実装形態のいかなる特定の様式にも限定されないからである。
コンテンツプロバイダプラットフォームは、特に、クッキー、アプリケーション使用情報、および表示されたテキストなど、クライアントデバイスコンテキスト信号に基づいて、クライアントデバイス上に提示するための関連コンテンツアイテムを選択および提供することができる。クライアントデバイスは、コンテンツプロバイダがクライアントデバイスのコンテキストに関連するコンテンツを選択および提供することを可能にするために、周期的に、またはリアルタイムで、コンテンツプロバイダにコンテキスト情報を提供することができる。たとえば、クライアントデバイスが、熱帯地方のロケーションについての記事を表示中である場合、コンテンツプロバイダは、熱帯地方の休暇に関するコンテンツアイテムを提供し得る。別の例では、クライアントデバイスが、多数のレストランに近いエリアに位置する場合、コンテンツプロバイダは、クライアントデバイスからのロケーション情報を使用して、食品またはレストランに関する1つまたは複数のコンテンツアイテムを提供し得る。一般に、特定のデバイスコンテキストとのコンテンツアイテムの関連性は、コンテンツプロバイダに送信された最新のコンテキスト情報の量に比例する。
しかしながら、デバイスロケーションおよび画面上のテキストなど、クライアントデバイスコンテキスト情報は、急速に変化し得る。最新のクライアントデバイスコンテキストに関連するコンテンツアイテムを供給するために、クライアントデバイスは、リアルタイムで、頻繁に周期的に、またはクライアントデバイスコンテキストが変化するたびに、コンテキスト情報を送信または提供しなければならない。コンテンツプロバイダからのコンテンツアイテムの送信と結合された、この情報の頻繁な送信が、不必要な計算リソース利用およびネットワーク帯域幅利用を引き起こし得る。さらに、コンテキスト情報の送信によって、ネットワーキングシステムの全体的なセキュリティが損なわれることがあり、その理由は、クライアントデバイスコンテキストが個人情報または保護された情報を含み得るからである。データがセキュアなクライアントデバイスの外部に送信されるとき、データは、中間者攻撃、データ侵害、または他のネットワーク脆弱性を受けやすくなり得る。
上記の問題に対処するために、この技術的解決策のシステムおよび方法は、クライアントデバイス上でコンテンツアイテムを生成するためのシステムを広く対象とする。生成されたコンテンツアイテムとの対話の場合には、対話についての情報を含むが、デバイスコンテキスト情報を含まないことがある信号が、コンテンツプロバイダに提供され得る。対話情報に基づいて、コンテンツプロバイダは、表示するための追加のコンテンツアイテムを選択し、クライアントデバイスに送信し得る。生成されたコンテンツとの対話に応答して、コンテンツプロバイダにデータを送信することのみによって、クライアントデバイスは、コンテンツプロバイダにコンテキスト情報を定期的に提供する必要がなく、それによって、性能が妨げられることなく、システムの全体的なネットワーク利用が低減される。さらに、オンデバイスコンテンツアイテムが、リアルタイムで、デバイスコンテキスト全体に基づいて生成され、システム内のデータのセキュリティが損なわれることなく、より関連するコンテンツが提供され得る。
この技術的解決策のシステムおよび方法は、クライアントデバイスコンテキストを作成するために、追加のデバイス情報とともに、対話およびテキストなど、画面上のアクティビティおよび情報をスキャンすることができる。クライアントデバイスコンテキストは、リアルタイムで、周期的に、またはオンデバイスコンテンツアイテムが生成されなければならないときのみ、スキャンされ得る。クライアントデバイスのコンテキスト情報を使用して、この技術的解決策のシステムおよび方法は、コンテンツアイテムモデルを使用して、1つまたは複数のオンデバイスコンテンツアイテムを生成することができる。コンテンツアイテムモデルは、機械学習モデル、文字列およびカテゴリー情報のルックアップテーブル、または任意の他のタイプのコンテンツ選択解決策を含み得る。オンデバイスコンテンツアイテムは、コンテンツのタイプの中でも、テキスト、リンク、画像、およびビデオを含むように生成され得る。モデルを使用して、オンデバイスコンテンツアイテムを生成した後、この技術的解決策のシステムおよび方法は、クライアントデバイス上でオンデバイスコンテンツアイテムを表示することができる。クライアントデバイスは、たとえば、オンデバイスコンテンツ選択モデルを使用して、表示するための、生成されたオンデバイスコンテンツアイテムを選択することができる。生成されたオンデバイスコンテンツアイテムとの対話に応答して、システムおよび方法は、クライアントデバイスからコンテンツプロバイダコンピューティングデバイスに対話データを送信すると同時に、対話データに基づいて、コンテンツ選択モデルおよびコンテンツ生成モデルを更新することもできる。したがって、コンテンツプロバイダにコンテキスト情報を送信することなく、この技術的解決策のシステムおよび方法は、クライアントデバイスがオンデバイスのコンテキスト関連コンテンツアイテムを生成および表示することを可能にすることができる。
したがって、本明細書で説明する技術的解決策は、このように、向上した計算性能を提供し、他のコンテンツ選択システムと比較して、全体的なネットワーク利用を低減することができる。クライアントデバイスからコンテンツプロバイダサーバにコンテキスト情報を連続的または周期的に送信するのではなく、この技術的解決策は、オンデバイスコンテキストを使用して、コンテンツアイテムを生成し、対話の場合にデータを送信することができる。これによって、コンテンツプロバイダコンピューティングシステム上の計算負荷を低減し、クライアントデバイスとコンテンツプロバイダとの間の全体的なネットワークトラフィックを減らすことができる。さらに、デバイスコンテキスト情報ではなく、対話データのみを送信することによって、この技術的解決策は、コンテンツ選択解決策の全体的なセキュリティを高め、その理由は、保護されたコンテキスト情報またはプライベートコンテキスト情報がクライアントデバイスから離れないからである。クライアントデバイス上でコンテキストを維持することによって、クライアントデバイスが、関連コンテンツを選択するために、いかなる相手ともそのコンテキストを共有する必要がないので、プライバシー向上の付加利益がもたらされる。したがって、プライベートコンテキスト情報または保護されたコンテキスト情報は、データ侵害または中間者攻撃を受けやすくなることがなく、このことは、他のコンテンツプロバイダシステムを超える改善である。
図1は、セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成するためのシステム100を示す。システム100は、少なくとも1つのコンピュータネットワーク110を含み得る。システム100は、少なくとも1つのコンテンツプロバイダ115を含み得る。コンテンツプロバイダ115は、少なくとも1つの記憶された対話データ180を含み得る。コンテンツプロバイダ115は、少なくとも1つの追加のコンテンツ185を含み得る。システム100は、少なくとも1つのクライアントデバイス105を含み得る。クライアントデバイス105は、少なくとも1つのディスプレイ125と、少なくとも1つのコンテンツ生成モデル130と、少なくとも1つのコンテンツ選択モデル135と、少なくとも1つのストレージ140と、少なくとも1つのアプリケーション160と、少なくとも1つのコンテキストスキャナ165と、少なくとも1つのコンテンツジェネレータ170と、少なくとも1つのコンテンツセレクタ175とを含み得る。ストレージ140は、少なくとも1つのリソース145と、少なくとも1つのイベントログ150と、少なくとも1つのカテゴリー155と、少なくとも1つのコンテキスト158とを含み得る。
システム100の構成要素(たとえば、ネットワーク110、コンテンツプロバイダ115、記憶された対話データ180、追加のコンテンツ185、クライアントデバイス105、ディスプレイ125、コンテンツ生成モデル130、コンテンツ選択モデル135、ストレージ140、リソース145、イベントログ150、カテゴリー155、コンテキスト158、アプリケーション160、コンテキストスキャナ165、コンテンツジェネレータ170、コンテンツセレクタ175)の各々は、本明細書で図6とともに詳述するコンピューティングシステム600のハードウェア構成要素、またはソフトウェアとハードウェア構成要素との組合せを使用して実装され得る。たとえば、クライアントデバイス105は、1つまたは複数のコンピューティングデバイスを含み得る。コンテンツプロバイダ115は、サーバまたは他のコンピューティングデバイスを含み得る。クライアントデバイス105の構成要素の各々は、本明細書で詳述する機能を行うことができる。
ネットワーク110は、インターネットなどのコンピュータネットワーク、ローカル、ワイド、メトロ、または他のエリアネットワーク、イントラネット、衛星ネットワーク、音声またはデータモバイルフォン通信ネットワークなどの他のコンピュータネットワーク、およびそれらの組合せを含み得る。システム100のクライアントデバイス105は、ネットワーク110を介して、たとえば、少なくとも1つのコンテンツプロバイダ115と通信することができる。ネットワーク110は、特に、コンテンツプロバイダ115と、クライアントデバイス105と、ウェブサーバなどの1つまたは複数のコンテンツソースとの間で情報を中継する、任意の形態のコンピュータネットワークであり得る。いくつかの実装形態では、ネットワーク110は、インターネット、および/または、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、もしくは他のタイプのデータネットワークなど、他のタイプのデータネットワークを含み得る。ネットワーク110はまた、ネットワーク110内でデータを受信および/または送信するように構成される、任意の数のコンピューティングデバイス(たとえば、コンピュータ、サーバ、ルータ、ネットワークスイッチなど)を含み得る。ネットワーク110は、任意の数のハードワイヤードおよび/またはワイヤレス接続をさらに含み得る。クライアントデバイスは、ネットワーク110における他のコンピューティングデバイスに(たとえば、光ファイバーケーブル、CAT5ケーブルなどを介して)ハードワイヤードされるトランシーバと、(たとえば、WiFi、セルラー、無線などを介して)ワイヤレス通信し得る。クライアントデバイス105はまた、プロキシデバイス(たとえば、ルータ、ネットワークスイッチ、またはゲートウェイ)を介して、ネットワーク110のコンピューティングデバイスとワイヤレス通信し得る。コンテンツプロバイダ115は、ネットワーク110における他のコンピューティングデバイスに(たとえば、光ファイバーケーブル、CAT5ケーブルなどを介して)ハードワイヤードされるトランシーバと、(たとえば、WiFi、セルラー、無線などを介して)ワイヤレス通信し得る。コンテンツプロバイダ115はまた、プロキシデバイス(たとえば、ルータ、ネットワークスイッチ、またはゲートウェイ)を介して、ネットワーク110のコンピューティングデバイスとワイヤレス通信し得る。
クライアントデバイス105は、少なくとも1つのプロセッサおよびメモリ、すなわち、処理回路を含み得る。メモリは、プロセッサによって実行されると、本明細書で説明する動作のうちの1つまたは複数をプロセッサに行わせる、プロセッサ実行可能命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはそれらの組合せを含み得る。メモリは、限定はしないが、プロセッサにプログラム命令を提供することが可能な電子、光学、磁気、または任意の他のストレージまたは送信デバイスを含み得る。メモリは、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光媒体、またはそれからプロセッサが命令を読み取ることができる任意の他の好適なメモリをさらに含み得る。命令は、任意の好適なコンピュータプログラミング言語からのコードを含み得る。クライアントデバイス105は、様々な機能を行うことができる、1つまたは複数のコンピューティングデバイスまたはサーバを含み得る。
コンテンツプロバイダ115は、情報リソース上に表示するためのコンテンツアイテムを提供するために、コンテンツプロバイダエンティティによって動作させられるサーバまたは他のコンピューティングデバイスを含み得る。コンテンツプロバイダ115によって提供されたコンテンツは、1次コンテンツ、たとえば、コンテンツプロバイダ115によって提供されたコンテンツを含む情報リソースなど、情報リソース上に表示するためのサードパーティコンテンツアイテムを含み得る。コンテンツアイテムはまた、検索結果ウェブページ上でも表示され得る。たとえば、コンテンツプロバイダ115は、ウェブページの1次コンテンツが会社によって提供される会社のウェブページなど、情報リソースのコンテンツスロット内に表示するための、または検索エンジンによって提供された検索結果ランディングページ上に表示するための、コンテンツアイテムのソースを提供することができるか、またはそのソースであり得る。コンテンツプロバイダ115に関連付けられたコンテンツアイテムは、スマートフォンまたは他のクライアントデバイス上のアプリケーションの実行の一部として表示されたコンテンツなど、ウェブページ以外の情報リソース上で表示され得る。システム100のコンテキストにおけるコンテンツプロバイダ115の機能について、以下で説明する。
コンテンツプロバイダ115は、1つまたは複数のクライアントデバイス105から受信された、記憶された対話データ180を含み得る。記憶された対話データ180は、オンデバイスコンテンツアイテムとの対話についてのタイムスタンプ、コンテンツタイプ、コンテンツカテゴリー、リソース、および他の情報など、対話情報を含み得る。いくつかの実装形態では、記憶された対話データ180は、クライアントデバイス105についてのいかなる識別情報も含まず、クライアントデバイス105からのいかなるコンテキスト情報も含まない。代わりに、記憶された対話データ180は、クライアントデバイス105上でそれとの対話が行われた、生成されたオンデバイスコンテンツアイテムについての情報を含み得る。クライアントデバイス105は、記憶された対話データ180を送信、通信、またはその他の方法で提供することができる。記憶された対話データ180に基づいて、コンテンツプロバイダは、記憶された対話データ180において示されたオンデバイスコンテンツに関連付けられ得る、追加のコンテンツ185を決定することができる。
コンテンツプロバイダ115は、追加のコンテンツ185を含み得る。追加のコンテンツは、1つまたは複数の対話またはカテゴリー、たとえば、カテゴリー155に関連付けられ得る。記憶された対話データ180に基づいて、コンテンツプロバイダ115は、追加のコンテンツ185にアクセスして、表示するためにクライアントデバイス105に送信、通信、またはその他の方法で提供するための、1つまたは複数の追加のコンテンツ185のアイテムを識別および選択することができる。追加のコンテンツ185は、リンク、ウェブページ、画像、テキスト、ビデオ、または任意の他のタイプの媒体を含み得る。追加のコンテンツ185は、コンテンツプロバイダ115によるコンテンツ選択を容易にするために、1つまたは複数のキーワード、メタデータ、または他の情報に関連付けられ得る。いくつかの実装形態では、記憶された対話データ180に基づいて、コンテンツプロバイダ115は、クライアントデバイス105に送信するための、1つまたは複数の追加のコンテンツ185のアイテムを生成することができる。コンテンツプロバイダ115は、たとえば、1つまたは複数のイベントに応答して、クライアントデバイス105に追加のコンテンツ185を送信することができる。1つまたは複数のイベントは、クライアントデバイス105から、オンデバイスコンテンツアイテムとの対話の指示を受信すること、コンテンツ生成モデル130についての情報を受信すること、コンテンツ選択モデル135についての情報を受信すること、または追加のコンテンツのための要求を受信することを含み得る。
コンテンツプロバイダ115は、クライアントデバイス105に他の情報、データ、またはアプリケーションを提供することができる。たとえば、コンテンツプロバイダ115は、オンデバイスコンテンツアイテムの生成を容易にするために、クライアントデバイス105にリソース145、カテゴリー155、および他の情報を提供することができる。この他の情報を受信した後、クライアントデバイス105は、クライアントデバイス105のメモリ内、たとえば、ストレージ140における1つまたは複数のデータ構造内で、他の情報を記憶、更新、またはその他の方法で維持することができる。コンテンツプロバイダ115は、クライアントデバイス105に1つまたは複数のアプリケーション、たとえば、アプリケーション160、またはスクリプトを提供することができる。いくつかの実装形態では、コンテンツプロバイダ115は、クライアントデバイス105に1つまたは複数のテンプレートスクリプトを提供することができる。クライアントデバイス105、またはその構成要素のうちの1つ(たとえば、コンテンツジェネレータ170)は、オンデバイスコンテンツアイテムの生成を容易にするために、スクリプトテンプレートをポピュレートすることができる。コンテンツプロバイダ115は、クライアントデバイス105に1つまたは複数のモデル、たとえば、特に、コンテンツ生成モデル130およびコンテンツ選択モデル135を提供することができる。コンテンツプロバイダ115からの1つまたは複数のモデルの受信に応答して、クライアントデバイス105は、クライアントデバイス105のメモリ内、たとえば、ストレージ140内で、モデルを記憶、更新、またはその他の方法で維持することができる。
ストレージ140は、本明細書で説明する情報のいずれかを記憶および/または維持するように構成されたデータベースであり得る。ストレージ140は、アレイ、フラットファイル、区切りファイル(delineated file)、または任意の他のタイプおよび形式のデータベースファイルなど、任意の適切なタイプおよび形式のデータ構造内に記憶され得る。ストレージ140は、1つまたは複数のデータ構造を維持することができ、データ構造は、本明細書で説明する値、複数(pluralities)、またはしきい値の各々を含み、かつ/またはインデックス付けすることができる。いくつかの実装形態では、ストレージは、1つまたは複数のメモリアドレスまたはインデックス値を使用してアクセスされ得る。ストレージ140は、クライアントデバイス105のモジュール、またはネットワーク110を介してコンテンツプロバイダ115によってアクセスされ得る。いくつかの実装形態では、ストレージ140は、クライアントデバイス105の内部である。いくつかの実装形態では、ストレージ140は、クライアントデバイス105の外部に存在することがあり、ネットワーク110、または別の通信インターフェースを介してアクセスされ得る。いくつかの実装形態では、ストレージ140は、多数の異なるコンピュータシステムまたはストレージ要素にわたって分散されることがあり、ネットワーク110および/または好適なコンピュータバスインターフェースを介してアクセスされ得る。クライアントデバイス105は、適切な値でインデックス付けされた1つまたは複数のデータ構造内に、いずれかまたはすべての計算、決定、選択、識別、または算出の結果を記憶することができ、それらの結果の各々が、本明細書で説明する機能のいずれかを行うために、クライアントデバイス105またはコンテンツプロバイダ115によってアクセスされ得る。
クライアントデバイス105は、特に、液晶ディスプレイ、アクティブマトリックスディスプレイ、発光ダイオードベースのディスプレイ(LED)、または有機発光ダイオードディスプレイ(OLED)であり得る、ディスプレイ125に通信可能に結合され得る。ディスプレイ125は、たとえば、クライアントデバイス105上で実行しているアプリケーション160からの情報を、ユーザに表示するように構成され得る。ディスプレイ125は、クライアントデバイス105に入力イベントの1つまたは複数の指示を提供するように構成され得る、タッチセンシティブ入力デバイスを含み得る。入力イベントには、タップイベント、スワイプイベント、ドラッグアンドドロップイベント、ダブルタップイベント、トリプルタップイベント、ジェスチャーイベント、または任意の他のタッチ入力ベースのイベントもしくは対話が含まれ得る。ディスプレイ125は、クライアントデバイス105内に記憶された任意の情報、画像、またはグラフィカル表現を表示することができ、生成または選択されたオンデバイスコンテンツアイテムを表示することができる。
クライアントデバイス105は、ストレージ140内のデータ構造にある、1つまたは複数のコンテンツリソース145、あるいは1つまたは複数のカテゴリー155にアクセスすることができる。コンテンツリソース145は、たとえば、テキスト文字列、テキストアセット、画像情報、ベクトル情報(たとえば、スケーラブルベクターグラフィックス情報、他のグラフィックスまたは描画情報または命令など)、ビデオ、アニメーション画像、および生成されたオンデバイスコンテンツアイテム内に含まれ得る他のコンテンツを含み得る。コンテンツリソース145の各々は、キーワードまたは他の識別メタデータを含み得る。クライアントデバイス105は、特定のコンテンツリソース145、またはコンテンツリソース145の範囲もしくはカテゴリーにアクセスするために、1つまたは複数のクエリへのメタデータをルックアップ用語とマッチングすることができる。カテゴリー155は、コンテンツ選択に関連するロケーション、イベント、オブジェクト、関心、または他の情報など、1つまたは複数のコンテンツカテゴリーを含み得る。いくつかの実装形態では、カテゴリー155は、依存性グラフを含むことがあり、その場合、各カテゴリー155が、1つまたは複数の他の関係するカテゴリー155をポイントすることができる。コンテンツリソース145またはカテゴリー155にアクセスすることは、ストレージ140から、クライアントデバイス105上のコンピュータメモリの異なる領域、たとえば、作業メモリの領域に、データをコピーすること、抽出すること、または移動することを含み得る。
コンテンツジェネレータ170は、コンテンツリソース145およびカテゴリー155に基づいて、1つまたは複数のオンデバイスコンテンツアイテムを生成することができる。オンデバイスコンテンツアイテムを生成するために、クライアントデバイス105は、リソース145の各々の中を反復し、選択することができる。上記で説明したように、リソース145の各々は、キーワード、メタデータ、関係するカテゴリー155へのポインタ、または他の識別情報を含み得る。識別情報に基づいて、コンテンツジェネレータ170は、関係し得る、同様であり得る、またはその他の方法で選択されたリソース145に関連付けられ得る、カテゴリー155の各々を識別し、それにアクセスすることができる。カテゴリー155は、コンテンツ選択を容易にすることができる追加の関係する情報、たとえば、関心のある特定のカテゴリーをもつリソースを識別するか、またはリソースを関心のある特定のカテゴリーに関連付けるためのキーワード、メタデータ、デバイス情報、ロケーション情報、または任意の他の情報を含み得る。テキスト文字列、画像、ビデオ、または他の媒体情報を含み得る、選択されたリソース145の各々について、クライアントデバイス105は、カテゴリー155から識別されたカテゴリー情報を関連付けることができる。たとえば、選択されたリソース145が、選択されたリソース145を熱帯地方のビーチのピクチャとして識別する情報、メタデータ、キーワード、または他の情報を含む場合、コンテンツジェネレータ170は、そのピクチャと、たとえば、「ハワイの休暇」というテキスト、またはそのピクチャもしくはリソース145に関係し得る他のテキストとを含む、オンデバイスコンテンツアイテムを生成することができる。
コンテンツジェネレータ170は、コンテンツ生成モデル130にコンテンツリソース145およびカテゴリー155を提供することによって、1つまたは複数のオンデバイスコンテンツアイテムを生成することができる。いくつかの実装形態では、コンテンツジェネレータ170は、コンテンツ生成モデル130の入力に、コンテンツリソース145またはカテゴリー155の一方または両方を適用することができる。コンテンツ生成モデル130は、任意のタイプの機械学習モデル(たとえば、ニューラルネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、線形回帰、スパースベクトルマシン(sparse vector machine)など)を含み得る。コンテンツ生成モデル130は、モデルの入力、たとえば、リソース145またはカテゴリー155の指示に適用される、重みおよびバイアスの複数の層を含み得る。コンテンツ生成モデル130は、オンデバイスコンテンツアイテム中に含まれることになる、1つまたは複数のリソースの指示、キーワードの指示、キーワード、または任意の他の情報を出力することができる。コンテンツ生成モデル130は、リソース145とカテゴリー155との間の関連付けを識別または出力し、オンデバイスコンテンツアイテム中にそれらの関連付けを含めることができる。オンデバイスコンテンツアイテムは、クライアントデバイス105上のイベントによってアクティブ化されると、コンテンツプロバイダ115に対話情報を提供するための命令を、クライアントデバイスに実行させることができる、1つまたは複数のスクリプトを含み得る。
コンテンツジェネレータ170は、コンテンツ生成モデル130の出力から、1つまたは複数のオンデバイスコンテンツアイテムを受信することができる。オンデバイスコンテンツアイテムは、たとえば、特に、任意の数の画像、テキスト、リソース145、キーワード、コンテンツ選択、スクリプト、およびコンピュータ媒体を含み得る。いくつかの実装形態では、クライアントデバイスは、何がコンテンツ生成モデル130からオンデバイスコンテンツアイテム中に含められることになるかの1つまたは複数の指示を受信することができる。クライアントデバイス105のメモリ(たとえば、ストレージ140)内のロケーションへのポインタであり得る、これらの指示に基づいて、クライアントデバイス105は、メモリ(たとえば、ストレージ140)にアクセスして、コンテンツ生成モデル130によって示されたリソース145およびカテゴリー155の各々を選択することができる。コンテンツジェネレータ170は、識別されたリソース145およびカテゴリー155を、1つまたは複数のオンデバイスコンテンツアイテムにパッケージ化することができる。したがって、コンテンツ生成モデル130の出力に基づいて、コンテンツジェネレータ170は、オンデバイスコンテンツアイテムをアセンブル、パッケージ化、またはその他の方法で生成することができる。オンデバイスコンテンツアイテムを生成した後、コンテンツジェネレータ170は、クライアントデバイス105のメモリ(たとえば、ストレージ140)にアクセスし、1つまたは複数のデータ構造内に、生成されたオンデバイスコンテンツアイテムを記憶することができる。オンデバイスコンテンツアイテムは、メタデータ、たとえば、1つまたは複数の選択キーワードに関連付けられたメタデータ、コンテキストメタデータ、ロケーション情報、あるいは任意の他のタイプのコンテンツ選択データを含むように生成され得る。コンテンツ選択データは、リソース145、カテゴリー155から、または、クライアントデバイス105を介してアクセスされた任意の他のデータから抽出され得る。コンテンツ選択データは、クライアントデバイス105上に表示するためのコンテンツアイテムの選択を容易にするために、各生成されたオンデバイスコンテンツアイテム中に含められ得る。
クライアントデバイス105は、ディスプレイ125上にコンテンツを表示するための1つまたは複数の命令を含み得る、アプリケーション160を実行することができる。アプリケーション160は、たとえば、ウェブブラウザ、ゲームアプリケーション、またはクライアントデバイス上で実行する別のタイプのアプリケーションを含み得る。アプリケーション160は、APIインターフェースを通して、またはクライアントデバイス105の構成要素との通信の他の手段を通して、クライアントデバイス105上の他の構成要素にコンテキスト情報を提供することができる。たとえば、アプリケーション160は、クライアントデバイス105の他の構成要素に、デバイスコンテキスト情報を含む、クライアントデバイス105のメモリの領域を提供することができる。デバイスコンテキスト情報は、ユーザに表示されるテキスト、ユーザに表示されないテキスト、検索クエリ(たとえば、1つまたは複数のキーワード、用語などを含む)、検索クエリ履歴(たとえば、1つまたは複数のキーワード、用語などを含む)、デバイス入力または対話イベント(たとえば、座標、関連付けられたアプリケーション、対話または入力の時間、対話の頻度など)、時間値、アプリケーションまたはデバイス上の他のアプリケーションにおける使用の時間期間、デバイス上で実行または常駐しているアプリケーション、デバイス上で実行しているかまたはデバイス上のアプリケーションに関連付けられたメタデータ(たとえば、キーワード、コンテンツアイテム、対話イベント、対話イベント履歴、プロファイル情報、タイムスタンプ情報など)、ウェブ閲覧履歴、対話履歴、顔認識情報、バイオメトリック情報(たとえば、指紋、眼の色、髪の色など)、デバイス使用の通常の期間、デバイス充電情報(たとえば、電力レベル、バッテリー、通常の充電時間、または季節性など)、デバイス不使用の通常の期間、通信履歴(たとえば、テキストまたはSMSメッセージ履歴、通話履歴、ビデオ通話履歴、通話情報、ビデオ通話情報など)、およびアプリケーション160を介して使用またはアクセスされ得る他の情報を含み得る。アプリケーション160は、コンテンツアイテム、またはアプリケーション160の外部にあり得る追加のコンテンツを表示するための命令を含み得る。コンテンツアイテムは、アプリケーション160によって提供された1つまたは複数のコンテンツアイテムスロットをポピュレートすることができる。クライアントデバイス105上で実行しているアプリケーション160は、コンテンツスロット内に表示するためのコンテンツアイテムを表示、生成、または選択するために、クライアントデバイス105に1つまたは複数の指示を提供することができる。いくつかの実装形態では、アプリケーション160は、クライアントデバイス105の構成要素のうちのいずれか1つに指示を提供することができる。
コンテキストスキャナ165は、クライアントデバイス105上で実行しているアプリケーション160から、コンテンツアイテムを表示するための指示を受信することができる。指示は、寸法、コンテキスト情報、またはコンテンツアイテムを配置するためのクライアントデバイス内のメモリの領域へのポインタを含み得る。指示は、特定のコンテンツアイテムを選択するためのコンテキスト情報を収集するための指示、(たとえば、クライアントデバイス105のメモリ内の特定のコンテンツアイテムの指示を含む)特定のコンテンツアイテムを表示するための指示、またはコンテンツプロバイダ115から受信された追加のコンテンツの部分の指示を含み得る。いくつかの実装形態では、指示は、クライアントデバイス105の他の構成要素に送信されるメッセージである。メッセージは、アプリケーション160についての情報、コンテンツアイテムスロットについての情報、クライアントデバイス105についての情報、またはオンデバイスコンテンツアイテムのための要求に先行した一連のユーザ対話についての情報を含み得る。指示は、アプリケーション160によって提供された情報に基づいて、オンデバイスコンテンツアイテムを生成するための要求を含み得るか、状態、アプリケーション160によって表示された情報、対話情報、クエリ情報、入力情報、またはアプリケーション160に提供されたか、もしくはアプリケーション160によってアクセスされた他の情報を含み得る。
コンテキストスキャナ165は、クライアントデバイス105のメモリ(たとえば、ストレージ140)内でデバイスコンテキスト158のデータ構造を作成するために、クライアントデバイス105のデバイスコンテキスト158をスキャンすることができる。いくつかの実装形態では、コンテキストスキャナ165は、デバイスコンテキストにおいて検出された変化に応答して、クライアントデバイス105のメモリ内のデバイスコンテキストを更新することができる。コンテキストスキャナ165は、クライアントデバイス105によって構築するために関連付けられ、記憶され、もしくはアクセスされた、あらゆるインターフェース、データ構造、メモリロケーション、もしくは他の情報、またはクライアントデバイス105のメモリ(たとえば、ストレージ140)内のデバイスコンテキストにアクセスすることができる。コンテキストスキャナ165は、画面上のテキスト情報、対話情報、入力情報、過去の対話情報、過去のコンテキスト情報、ロケーション情報、過去のロケーション情報、過去の画面上のテキスト情報、または、デバイス識別子、デバイスタイプ、画面解像度情報、ハードウェアディスプレイ情報、もしくはクライアントデバイス105によってアクセス可能な任意の他のタイプの情報を含む他のデバイス情報を作成、更新、またはその他の方法でデバイスコンテキスト158に挿入することができる。コンテキストスキャナ165は、デバイスコンテキスト158中に含めるために、任意の対話イベント、過去のコンテンツアイテム対話、または他のイベントベースの情報にアクセスするために、ストレージ140のイベントログ150にアクセスすることができる。コンテキストスキャナ165は、タイムスタンプ値をデバイスコンテキスト158のデータ構造内の各エントリに関連付けることができ、そこで、各タイムスタンプが、エントリがコンテキストスキャナ165によって作成または更新された時間を示す。いくつかの実装形態では、過去の情報が、時間しきい値に従って更新され得る。クライアントデバイス105の現在のデバイス時間と、デバイスコンテキスト158内のエントリのタイムスタンプとの間の差が、時間しきい値を超える場合、コンテキストスキャナ165は、デバイスコンテキスト158内の対応するエントリを更新することができる。いくつかの実装形態では、コンテキストスキャナ165は、周期的に、リアルタイムで、またはコンテンツのための要求のための指示がアプリケーション160から受信されるとき、デバイスコンテキスト158を更新または維持するために、デバイスをスキャンすることができる。
コンテンツセレクタ175は、アプリケーション160内に表示するためのオンデバイスコンテンツアイテムを選択することができる。いくつかの実装形態では、コンテンツセレクタ175は、アプリケーション160からの、コンテンツアイテムを表示するための指示または要求の受信に応答して、オンデバイスコンテンツを選択することができる。いくつかの実装形態では、コンテンツセレクタ175は、コンテキストスキャナ165によるデバイスコンテキスト158の更新に応答して、アプリケーション160内に表示するためのオンデバイスコンテンツを選択することができる。コンテンツセレクタ175は、コンテンツジェネレータ170によって生成され、クライアントデバイス105のメモリ(たとえば、ストレージなど)内に記憶されたオンデバイスコンテンツアイテムから、オンデバイスコンテンツを選択することができる。コンテンツセレクタ175は、デバイスコンテキスト158を取り出すために、ストレージ140にアクセスすることができる。コンテンツセレクタ175は、関連コンテンツアイテムを選択するために、デバイスコンテキスト158内の1つまたは複数のエントリを使用することができる。コンテンツセレクタ175は、オンデバイスコンテンツアイテム中に含まれた1つまたは複数のキーワード、メタデータ、または選択情報を、デバイスコンテキスト158中に含まれた情報とマッチングすることができる。たとえば、デバイスコンテキスト158が、画面上のテキストが「熱帯地方」、「島」、および「休暇」という語を含むことを示す場合、コンテンツセレクタ175は、それらの語を使用して、表示するための関連オンデバイスコンテンツアイテムを検索および選択することができる。したがって、コンテンツセレクタ175は、コンテキスト情報に基づいて、表示するために、「ハワイの休暇!」というキャプションとともに、熱帯地方の島のピクチャを含む、オンデバイスコンテンツアイテムを選択し得る。別の例では、デバイスコンテキスト158内のロケーション情報は、クライアントデバイス105が多数のレストランまたは食品店舗の近くにあることを示し得る。それに応答して、コンテンツセレクタ175は、食品またはレストランに関するコンテンツを選択することができる。本明細書では、限られた能力においてのみ説明されるが、コンテンツセレクタは、コンテンツジェネレータ170によって生成されたオンデバイスコンテンツアイテムによって記憶された、可能なメタデータのいずれかに基づいて、本明細書で説明するコンテキスト情報タイプのいずれかに基づいて、コンテンツを選択することができることを理解されたい。デバイスコンテキスト158に基づいて、オンデバイスコンテンツアイテムを選択することによって、コンテンツセレクタは、表示するために最新の関連するオンデバイスコンテンツアイテムを選択することができる。
コンテンツセレクタ175は、クライアントデバイス105のディスプレイ125上の1つまたは複数のコンテンツスロット内に表示するために、アプリケーション160に選択されたコンテンツを提供することができる。オンデバイスコンテンツアイテムを提供することは、アプリケーション160によって指定されたメモリの領域に、またはアプリケーション160によって指定されたメモリの別のタイプもしくは領域に、オンデバイスコンテンツアイテムをコピーすることを含み得る。オンデバイスコンテンツアイテムデータを、アプリケーション160によって指定されたメモリの領域に移動させるか、またはコピーした後、コンテンツセレクタ175は、オンデバイスコンテンツアイテムの表示の準備ができていることを示す信号を、アプリケーション160に与えることができる。コンテンツセレクタ175は、オンデバイスコンテンツアイテムのロケーションへのポインタを、アプリケーション160に提供することができる。アプリケーション160は、オンデバイスコンテンツアイテムをディスプレイメモリにロードするために、ポインタによってポイントされたロケーションにアクセスし、アプリケーション160における1つまたは複数のコンテンツスロット内に、オンデバイスコンテンツアイテムを表示することができる。オンデバイスコンテンツアイテムの受信に応答して、アプリケーション160は、オンデバイスコンテンツアイテムが表示されたことを示すために、クライアントデバイス105の他の構成要素に確認応答信号を送信することができる。いくつかの実装形態では、アプリケーション160は、ストレージ140内に、たとえば、イベントログ150内に、オンデバイスコンテンツアイテム表示イベントを記録することができる。したがって、アプリケーション160は、オンデバイスコンテンツアイテムがアプリケーション160内に表示された各時間を、生成されたコンテンツアイテムの識別子、アプリケーションの識別子、または、コンテンツ選択モデル135もしくはコンテンツ生成モデル130のトレーニングを容易にすることができる他の情報とともに、記録することができる。
コンテンツセレクタ175は、クライアントデバイス105上で実行しているコンテンツ選択モデル135に、デバイスコンテキスト158および任意の他の関係する情報を提供することができる。コンテンツ選択モデル135は、任意のタイプの機械学習モデル(たとえば、ニューラルネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、線形回帰、スパースベクトルマシンなど)を含み得る。コンテンツ選択モデル135は、モデルの入力、たとえば、ストレージ140から取り出されたコンテキスト158の情報に適用される、重みおよびバイアスの複数の層を含み得る。コンテンツ選択モデル135は、オンデバイスコンテンツアイテムの1つまたは複数の指示を出力し、それによって、クライアントデバイス105のアプリケーション160内で表示するためのオンデバイスコンテンツアイテムを選択することができる。コンテンツ選択モデル135は、アプリケーション160内に表示するための1つまたは複数のオンデバイスコンテンツアイテムを識別することができる。いくつかの実装形態では、コンテンツ選択モデル135は、アプリケーション160内に表示するために、1つまたは複数のオンデバイスコンテンツアイテムを単一のオンデバイスコンテンツアイテムに集約または結合することができる。たとえば、コンテンツ選択モデル135は、関係するかまたは共通する選択情報(たとえば、キーワード、メタデータ、他の関連付け情報など)を各々が含む、いくつかのより小さいオンデバイスコンテンツアイテムを選択し、それらを単一のより大きいコンテンツアイテムに結合することができる。コンテンツ選択モデル135は、グリッドフォーマットにおいて、またはリストフォーマットにおいて、コンテンツアイテムを結合することができ、リストフォーマットでは、リストが、入力イベント、時間ベースのイベント、または他の情報に基づいて反復され得る。したがって、コンテンツセレクタ175は、コンテンツ選択モデル135の出力から、1つまたは複数の選択されたオンデバイスコンテンツアイテム、あるいは1つまたは複数の集約された、選択されたオンデバイスコンテンツアイテムを受信することができる。
クライアントデバイス105上で実行しているアプリケーション160は、ストレージ140におけるイベントログ150内に、対話イベント、入力イベント、内部アプリケーションイベント、オペレーティングシステムイベント、または他のイベントを含む、いずれかまたはすべてのイベントを記録することができる。したがって、アプリケーション160は、イベントログ150内で、任意のリンク、オンデバイスコンテンツアイテム、または他の情報とともに、いずれかまたはすべての入力または対話イベントを検出することができる。アプリケーション160は、表示されたオンデバイスコンテンツアイテムのうちのいずれかに関連付けられた対話イベントを検出することができる。対話イベントは、アプリケーション160内に表示されたオンデバイスコンテンツアイテムに向けられた、クリック、タップ、スワイプ、または本明細書で説明する任意の他のタイプの入力であり得る。対話イベントに応答して、アプリケーション160は、対応するオンデバイスコンテンツアイテムの各々に関連付けられた1つまたは複数のスクリプトを実行することができる。スクリプトは、ネットワーク110を介して、コンテンツプロバイダ115に、対話に関する情報を提供または送信するための命令を含み得る。
アプリケーション160は、検出された対話イベントに応答して、検出された対話イベントに関する対話情報を識別することができる。対話情報は、関係するキーワード、メタデータ、または他の情報を含む、対応するオンデバイスコンテンツアイテムに関連付けられたいずれかまたはすべてのデータを含み得る。対話情報は、対話についての情報、たとえば、対話の時間、対話の画面上のロケーション、対話のタイプ、または本明細書で説明する任意の他の対話情報をさらに含み得る。アプリケーション160は、ストレージ140のイベントログ150内に、いずれかまたはすべての対話イベントおよび関係する対話情報を記録することができる。いくつかの実装形態では、アプリケーションは、検出されたデバイス対話イベントに応答して、コンテンツプロバイダ115に、対話情報とともに、検出された対話の指示を送信することができる。アプリケーション160は、コンテンツ生成モデル130またはコンテンツ選択モデル135のトレーニングを容易にするために、イベントログ150内に対話イベントに関連付けられた任意のデバイスコンテキスト情報を記録することができる。アプリケーション160は、1つまたは複数のデータ構造において、ストレージ140内で1つまたは複数のイベントログ150を維持することができる。
トレーニング条件に応答して、クライアントデバイス105は、イベントログのコンテンツに基づいて、コンテンツ生成モデル130またはコンテンツ選択モデル135をトレーニングすることができる。関連コンテンツアイテムの生成および選択を容易にするために、コンテンツ生成モデル130およびコンテンツ選択モデル135は、生成されたオンデバイスコンテンツアイテムとの記録された対話イベントに基づいて更新され得る。このようにして、コンテンツ生成モデル130およびコンテンツ選択モデル135は、クライアントデバイス105によって受信された入力イベントに基づいて改善され得る。トレーニング条件は、特に、クライアントデバイス105が充電中であるという指示、コンテンツプロバイダ115、もしくはネットワーク110を介して別の外部コンピューティングデバイスから受信されたメッセージ、または、クライアントデバイス105の入力インターフェースもしくはアプリケーションインターフェースにおいて受信された要求であり得る。クライアントデバイス105は、特に、勾配降下を含む、任意の適切な機械学習モデルトレーニングアルゴリズムを使用して、モデルをトレーニングすることができる。さらに、クライアントデバイスは、バッチにおいてイベントログ150内に記録された対話イベントにアクセスすることができる。バッチは、たとえば、デバイスが使用中ではないとき、バッチプロセスにおいてコンテンツ生成モデル130およびコンテンツ選択モデル135の各々をトレーニングするために使用され得る。いくつかの実装形態では、クライアントデバイス105は、対話イベントに応答して、リアルタイムでモデルの各々をトレーニングすることができる。対話情報に加えて、クライアントデバイス105は、コンテンツ生成モデル130またはコンテンツ選択モデル135をトレーニングするために、デバイスコンテキスト158にアクセスすることができる。トレーニングは、入力イベント、対話イベント、コンテンツプロバイダ115から受信された情報、または他のそのような情報に従って、モデルの各々を更新することを含み得る。
次に図2を参照すると、アプリケーション160におけるコンテンツスロット205内に、生成されたオンデバイスコンテンツアイテムを表示する例示的な図を示す、環境200が示されている。最初に、アプリケーション160が、クライアントデバイス105のディスプレイ125上に表示される。アプリケーション160は、この例示的な実装形態において示されるように、生成されたオンデバイスコンテンツを表示するために使用され得る、コンテンツスロット205を含む。ここでは、アプリケーション160内の長方形のエリアとして示されているが、コンテンツスロット205は、アプリケーション160内の任意の形状、エリア、または位置を占めることができることを理解されたい。いくつかの実装形態では、コンテンツスロット205は、アプリケーション160上で隠され、表示されないことがある。いくつかの実装形態では、コンテンツスロット自体は、オンデバイスコンテンツアイテムがアプリケーション160に提供されるまで、表示されないようになる。
次に、アプリケーション160は、コンテンツスロット205内に表示するためのオンデバイスコンテンツアイテム210を要求し、受信している。オンデバイスコンテンツアイテムが、アプリケーション160内で情報リソースの中でも特に表示され得、ウェブページ、アプリケーションスロット、任意の他のタイプのコンテンツスロットに挿入され得る。アプリケーション160は、いずれかまたはすべての入力イベントを検出し、クライアントデバイス105のメモリ内にそれらの入力イベントを記録するように構成され得る。入力イベントは、クリック、タップ、スワイプ、または他の入力イベントもしくはアクションを含み得る。入力イベントがオンデバイスコンテンツアイテム210に向けられる場合、アプリケーション160は、対話情報を識別するために、1つまたは複数のスクリプトを実行することができる。
対話情報は、オンデバイスコンテンツアイテムについての情報、対話のタイプについての情報、対話の持続時間、または他のタイプの情報を含み得る。いくつかの実装形態では、対話は、単に、あらかじめ決定された時間期間の間、オンデバイスコンテンツアイテムを表示することを含み得る。対話イベント情報に応答して、アプリケーション160は、コンテンツプロバイダ、たとえば、コンテンツプロバイダ115に、対話情報を提供することができる。コンテンツプロバイダ115は、対話情報を受信することができる。受信された対話情報に基づいて、コンテンツプロバイダ115は、追加のコンテンツ185を選択し、クライアントデバイス105上で実行しているアプリケーション160に送信することができる。アプリケーションは、追加のコンテンツの受信に応答して、アプリケーション160内で追加のコンテンツを表示することができる。ここでは、追加のコンテンツがクライアントデバイス105のディスプレイ125全体を占めるように示されているが、追加のコンテンツ185は、任意の形式のコンテンツを含むことができ、アプリケーション160内の任意の形状、サイズ、エリア、または位置を占めることができることを理解されたい。
いくつかの実装形態では、追加のコンテンツ185は、異なるアプリケーション160を起動するために、スクリプト、コマンド、またはユニフォームリソース識別子(URI)を含み得る。追加のコンテンツ185は、ウェブページ、またはアプリケーション160の異なるメニューもしくは状態にナビゲートすることをアプリケーション160に行わせるための指示を含み得る。このようにして、アプリケーション160は、更新されたデバイスコンテキスト158の情報をコンテンツプロバイダ115に提供することなく、コンテンツプロバイダ115からの、クライアントデバイス105上に表示するための関連する追加のコンテンツ185の選択を容易にすることができる。このことは、コンテンツプロバイダへのネットワーク送信の全体数を減らし、ネットワークリソース利用およびコンピューティングリソース利用を改善する効果を有する。さらに、デバイスコンテキスト158の情報がネットワーク上で送信されることを可能にしないことによって、デバイスコンテキスト158の情報がデータ侵害または中間者攻撃を受けるようになるリスクが低減される。
次に図3を参照すると、コンテキスト158の情報、カテゴリー155、およびリソース145に基づく、オンデバイスコンテンツアイテムの生成を示すブロック図300が示されている。ここで示されるように、コンテキスト158は、特に、画面上のテキスト310と、ユーザアクション315と、過去のアクション320と、ロケーションデータ325と、デバイス情報327とを含み得る。カテゴリー155は、コンテンツのいくつかのカテゴリーを示すいくつかの文字列を含み得、各列挙されたカテゴリーに基づいて、コンテンツを選択するための、追加のメタデータおよびキーワードを含み得る。ここでこの例示的な図において示されるように、カテゴリー155の各々は、文字列値によって識別され得る。リソース145は、テキスト文字列330とキャッシュされた画像335の両方を含み得る。画像データ340A~N(一般に画像データ340と呼ばれることがある)の各々は、JPEG、GIF、PNG、TIFF、MP4、M4V、MKV、および他の媒体フォーマットを含む、任意のフォーマットのビデオ、オーディオ、画像、または他のコンテンツを含み得る。ここでは示されていないが、画像データ340の各々は、コンテンツ選択および生成を容易にすることができる、関連付けられたメタデータおよびキーワードを含み得る。
図300は、オンデバイスコンテンツアイテム210の様々な部分、ならびに、それらの部分がコンテンツジェネレータ170によって、およびコンテンツ生成モデル130によってどのように生成され得るかを示す。この図は、コンテキスト158と、コンテンツカテゴリー155と、コンテンツリソース145とを使用して生成された、オンデバイスコンテンツアイテム210を示すが、オンデバイスコンテンツアイテムは、たとえば、コンテンツジェネレータ170またはコンテンツ生成モデル130によって、これらの要素の任意の組合せを使用して、またはこれらの要素のいずれも使用せずに生成され得ることを理解されたい。
この図に示されているように、オンデバイスコンテンツアイテム210は、デバイスコンテキスト158、カテゴリー155、およびリソース145に基づいて生成され得る。これらのアイテムの各々は、たとえば、クライアントデバイス105のストレージ140からアクセスされ得る。コンテンツのカテゴリーは、コンテキスト158に基づいて選ばれるか、または選択され得る。コンテキスト情報は、画面上のテキスト310と、ユーザアクション315と、過去のアクション320と、ロケーションデータ325と、デバイス情報327とを含み得る。この情報に基づいて、コンテンツジェネレータ170は、関連するカテゴリー155を選択することができる。この例では、画面上のテキストは、熱帯地方の島および休暇についての情報を含む。したがって、コンテンツジェネレータ170は、「休暇」および「熱帯地方」カテゴリーを選択している。これらのカテゴリー155およびコンテキスト158の情報に基づいて、コンテンツジェネレータ170は、関連リソースを選択することができる。この例では、コンテンツジェネレータ170は、関連キーワード「ハワイの休暇」と、島、休暇、または熱帯地方のロケーションに関するキーワードまたはメタデータを含む、画像データ340Bとをマッチングしている。コンテンツジェネレータ170は、選択されたリソースの各々をオンデバイスコンテンツアイテム210にパッケージ化し、それによって、オンデバイスコンテンツアイテムを生成することができる。
次に図4を参照すると、セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成する例示的な方法400のフローチャートが示されている。方法400は、クライアントデバイス105、本明細書で図6とともに説明するコンピュータシステム600、または本明細書で説明する任意の他のコンピューティングデバイスによって行われるか、またはその他の方法で実行され得る。クライアントデバイス(たとえば、クライアントデバイス105)は、コンテンツカテゴリーにアクセスすることができる(行為402)。クライアントデバイスは、コンテンツリソースにアクセスすることができる(行為404)。クライアントデバイスは、オンデバイスコンテンツアイテムを生成することができる(行為406)。クライアントデバイスは、カウンタレジスタjがカテゴリーおよびリソースの数nに等しいか否かを決定することができる(判定408)。クライアントデバイスは、カウンタレジスタjを増分することができる(行為410)。クライアントデバイスは、コンテンツを表示するための指示を受信することができる(行為412)。クライアントデバイスは、デバイスコンテキストをスキャンすることができる(行為414)。クライアントデバイスは、オンデバイスコンテンツを選択することができる(行為416)。クライアントデバイスは、表示するためのオンデバイスコンテンツを提供することができる(行為418)。
クライアントデバイス(たとえば、クライアントデバイス105)は、コンテンツカテゴリーにアクセスすることができる(行為402)。クライアントデバイス上に記憶されたカテゴリー(たとえば、カテゴリー155)の各々のためのオンデバイスコンテンツアイテムを生成するために、クライアントデバイスは、カウンタレジスタjに基づいて、コンテンツカテゴリーの各々の中を反復的にループすることができる。コンテンツカテゴリーの各々は、インデックス値(たとえば、インデックス0、インデックス1、インデックス2など)によって、データ構造内でインデックス付けされ得る。コンテンツカテゴリーを処理するために、クライアントデバイスは、カウンタレジスタjに等しいインデックス値を含むコンテンツカテゴリーを選択することができる。それがループの最初の反復である場合、j番目のコンテンツカテゴリーを選択する前に、カウンタレジスタjが初期化値に初期化され得る(たとえば、j=0)。カテゴリーにアクセスすることは、選択されたコンテンツカテゴリーに関連付けられたデータを、コンピュータメモリの異なる領域、たとえば、メモリの作業領域にコピーすることを含み得る。
クライアントデバイスは、コンテンツリソースにアクセスすることができる(行為404)。クライアントデバイスによって選択されたコンテンツカテゴリーは、1つまたは複数のキーワード、メタデータ、ロケーション情報、または他のコンテンツ選択基準に関連付けられ得る。選択されたカテゴリーに関連するコンテンツを生成するために使用され得るリソースを適切に識別するために、クライアントデバイスは、選択されたカテゴリーのキーワード、メタデータ、ロケーション情報、またはコンテンツ選択基準を、コンテンツリソース内の情報と比較することができる。コンテンツリソースは、選択を容易にするために、テキスト、メタデータ、および他の情報を含み得る。コンテンツリソースはまた、画像、ビデオ、またはオーディオを含むこともあり、ここで、これらの非テキスト媒体の各々が、媒体を説明する1つまたは複数のキーワード、あるいはコンテンツカテゴリーとの関連付けを示すメタデータに関連付けられ得る。クライアントデバイスは、コンテンツリソースのうちのどれが選択されたカテゴリーに関連するかを識別し、関連リソースの各々を選択することができる。関連リソースを選択することは、識別されたリソースに関連付けられたデータを、コンピュータメモリの異なる領域、たとえば、メモリの作業領域にコピーすることを含み得る。
クライアントデバイスは、オンデバイスコンテンツアイテムを生成することができる(行為406)。オンデバイスコンテンツアイテムを生成するために、クライアントデバイスは、識別されたリソースの各々を単一のコンテンツアイテムにパッケージ化することができる。いくつかの実装形態では、クライアントデバイスは、選択されたカテゴリーに基づいて、クライアントデバイスによって選択されたリソースの各々のための単一のオンデバイスコンテンツアイテムを生成することができる。そのような実装形態では、各オンデバイスコンテンツアイテムは、1つまたは複数のテキスト文字列と、1つまたは複数の画像とを含み得る。クライアントデバイスは、コンテンツ選択を容易にするために、各生成されたオンデバイスコンテンツアイテムを、リソース、メタデータ、キーワード、および他のコンテンツ選択情報に関連付けることができる。各オンデバイスコンテンツアイテムを生成した後、クライアントデバイスは、クライアントデバイスのメモリにおけるデータ構造内に、生成されたオンデバイスコンテンツアイテムを記憶することができる。いくつかの実装形態では、クライアントデバイスは、生成されたオンデバイスコンテンツアイテムの各々を、選択されたコンテンツカテゴリーに関連付けることができる。いくつかの実装形態では、クライアントデバイスは、スクリプトをオンデバイスコンテンツアイテムに組み込むことができる。スクリプトは、オンデバイスコンテンツアイテムとの対話に応答して、コンテンツプロバイダ(たとえば、コンテンツプロバイダ115)に対話情報を通信することを、クライアントデバイスに行わせるように構成され得る。対話情報は、関連付けられたカテゴリー、キーワード、メタデータ、および他のコンテンツ選択情報など、オンデバイスコンテンツアイテムについての情報、ならびに対話の時間、対話の持続時間、対話のタイプ、および他のイベント情報など、対話についての情報を含み得る。いくつかの実装形態では、クライアントデバイスは、コンテンツ生成モデル(たとえば、コンテンツ生成モデル130)を使用して、コンテンツを生成することができる。クライアントデバイスは、選択されたカテゴリーおよび選択されたコンテンツリソースを、コンテンツ生成モデルの入力に提供し、モデルの出力において、生成されたオンデバイスコンテンツアイテムを受信することができる。
クライアントデバイスは、カウンタレジスタjがカテゴリーおよびリソースの数nに等しいか否かを決定することができる(判定408)。クライアントデバイスが、コンテンツリソースおよびコンテンツカテゴリーの各々のために、オンデバイスコンテンツアイテムを生成したか否かを決定するために、クライアントデバイスは、各コンテンツカテゴリーを選択するために使用されたカウンタレジスタを、コンテンツカテゴリーの総数nと比較することができる。カウンタレジスタjがコンテンツカテゴリーの総数nに等しくない(たとえば、それ未満である)場合、クライアントデバイスは、(行為410)を実行することができる。カウンタレジスタjがコンテンツカテゴリーの総数nに等しい(たとえば、それ以上である)場合、クライアントデバイスは、(行為412)を実行することができる。
クライアントデバイスは、カウンタレジスタjを増分することができる。クライアントデバイスは、コンテンツカテゴリーのデータ構造内で次の未処理のカテゴリーを示すために、カウンタレジスタjに1を加算することができる。いくつかの実装形態では、クライアントデバイスは、カウンタレジスタjを、次の未処理のコンテンツカテゴリーのメモリアドレス値(たとえば、コンピュータメモリ内のロケーション)に設定することができる。いくつかの実装形態では、次の未処理のコンテンツカテゴリーのメモリアドレス値は、データ構造内の現在の(たとえば、選択された)検索トークンのロケーションに含められ得る。カウンタレジスタjの値を増分した後、クライアントデバイスは、方法400の(行為402)を実行することができる。
クライアントデバイスは、コンテンツを表示するための指示を受信することができる(行為412)。指示は、寸法、持続時間、位置、およびコンテキスト情報などの情報を含み得る。クライアントデバイスは、クライアントデバイス上で実行しているアプリケーション(たとえば、アプリケーション160)から、コンテンツを表示するための指示を受信することができる。指示は、アプリケーションに対応する識別子(たとえば、アプリケーション識別子)などの追加の情報、および他のコンテンツアイテム情報を含み得る。いくつかの実装形態では、コンテンツを表示するための指示は、特定のオンデバイスコンテンツアイテムを表示するための指示を含み得る。そのような実装形態では、デバイスコンテキストが必要とされないので、クライアントデバイスは、(行為416)を実行し、(行為414)をスキップすることができる。そうでない場合、クライアントデバイスは、(行為414)を実行することができる。
クライアントデバイスは、デバイスコンテキストをスキャンすることができる(行為414)。デバイスコンテキストをスキャンすることは、クライアントデバイス上で実行しているアプリケーション、サービス、およびオペレーティングシステムについてのデータを収集すること、ならびに、クライアントデバイスのメモリにおける1つまたは複数のデータ構造内に、この情報を記憶することを含み得る。デバイスコンテキストをスキャンすることは、クライアントデバイス上で実行している1つまたは複数のアプリケーションからの情報を要求することを含むことがあり、ここで、各要求が、各アプリケーションについての情報のためのものである。デバイスコンテキストは、ロケーション情報、画面上のテキスト情報、オフスクリーンテキスト情報、オーディオ情報、マイクロフォン情報、デバイスステータス情報(たとえば、バッテリーレベル、インターネット接続性、セルラー接続性など)、対話情報、アプリケーションイベント情報、オペレーティングシステムイベント情報、およびクライアントデバイスに関する他の情報を収集することを含み得る。
クライアントデバイスは、オンデバイスコンテンツを選択することができる(行為416)。デバイスコンテキストに関連する1つまたは複数のオンデバイスコンテンツアイテムを選択するために、クライアントデバイスは、デバイスコンテキストにアクセスすることができる。アクセスされたデバイスコンテキストを使用して、クライアントデバイスは、デバイスコンテキスト情報、たとえば、画面上のテキスト、ロケーション情報、およびクライアントデバイスについての他の情報を、クライアントデバイスのメモリ内に記憶された、1つまたは複数の生成されたオンデバイスコンテンツアイテムと比較することができる。1つまたは複数のオンデバイスコンテンツアイテムに関連付けられたキーワード、メタデータ、または他のコンテンツ選択情報が、デバイスコンテキストのものとマッチする場合、クライアントデバイスは、それらのコンテンツアイテムを選択することができる。コンテンツアイテムを選択することは、識別されたコンテンツアイテムを、メモリの異なる領域、たとえば、クライアントデバイス上のメモリの作業領域にコピーすることを含み得る。いくつかの実装形態では、クライアントデバイスは、コンテンツ選択モデル(たとえば、コンテンツ選択モデル135)を使用して、1つまたは複数のコンテンツアイテムを選択することができる。たとえば、クライアントデバイスは、コンテンツ選択モデルの入力にデバイスコンテキスト情報を提供することができる。
クライアントデバイスは、表示するためのオンデバイスコンテンツを提供することができる(行為418)。表示するためのオンデバイスコンテンツを提供することは、アプリケーション160に、1つまたは複数の選択されたオンデバイスコンテンツアイテムを提供することを含み得る。アプリケーションは、コンテンツアイテムの各々をディスプレイメモリにロードし、それぞれのコンテンツアイテムスロット内にオンデバイスコンテンツアイテムの各々を表示することができる。いくつかの実装形態では、クライアントデバイスは、2つ以上のオンデバイスコンテンツアイテムを、単一のオンデバイスコンテンツアイテムに集約し、集約されたオンデバイスコンテンツアイテムを単一のコンテンツアイテムスロット内に含めることができる。提供されたオンデバイスコンテンツアイテムは、コンテンツアイテムとの対話に応答して、コンテンツプロバイダサーバに対話情報を通信するように構成され得る。クライアントデバイスは、サーバから、追加のコンテンツ(たとえば、追加のコンテンツ185)を受信することができる。追加のコンテンツは、対話に対応する、生成されたオンデバイスコンテンツに関連付けられた1つまたは複数のカテゴリーに関係し得る。追加のコンテンツは、たとえば、異なるアプリケーションを起動すること、ウェブページにナビゲートすること、またはさもなければ、クライアントデバイス上で実行しているアプリケーション内に追加のコンテンツを表示することを、クライアントデバイスに行わせることができる。
次に図5を参照すると、対話情報に基づいて、コンテンツ選択モデルまたはコンテンツ生成モデルを更新する例示的な方法500のフローチャートが示されている。方法500は、クライアントデバイス105、本明細書で図6とともに説明するコンピュータシステム600、または本明細書で説明する任意の他のコンピューティングデバイスによって行われるか、またはその他の方法で実行され得る。クライアントデバイス(たとえば、クライアントデバイス105)は、ユーザアクションを検出することができる(行為502)。クライアントデバイスは、アクションをロギングするべきか否かを決定することができる(判定504)。クライアントデバイスは、カウンタレジスタkを増分することができる(行為506)。クライアントデバイスは、ユーザアクションをロギングすることができる(行為508)。クライアントデバイスは、アクションがトレーニング条件であったか否かを決定することができる(判定510)。クライアントデバイスは、ログからユーザアクションを識別することができる(行為512)。クライアントデバイスは、アクション情報を用いて、モデルをトレーニングすることができる(行為514)。クライアントデバイスは、カウンタレジスタkが0に等しいか否かを決定することができる(判定516)。クライアントデバイスは、カウンタレジスタkを減分することができる(行為518)。クライアントデバイスは、トレーニングを終了することができる(行為520)。
クライアントデバイス(たとえば、クライアントデバイス105)は、ユーザアクションを検出することができる(行為502)。ユーザアクションを検出することは、クライアントデバイス上でオンデバイスコンテンツを表示するアプリケーション(たとえば、アプリケーション160)内で、1つまたは複数のイベントリスナーを利用することを含み得る。イベントリスナーは、アプリケーションによって表示された1つまたは複数の対話可能な要素、たとえば、リンク、ボタン、またはオンデバイスコンテンツアイテムとの対話を検出するように構成され得る。イベントリスナーはまた、他のデバイスイベント、たとえば、充電イベント(たとえば、クライアントデバイスが、充電のためにプラグインされた)、非アクティビティイベント(たとえば、あらかじめ決定された時間期間の間に非アクティブ、現在のデバイス時間が昼または夜のある期間内である、など)、温度イベント(たとえば、デバイスの温度がある値を超えた、など)を検出することもできる。検出されたアクションは、アクションのタイプ、アクションの持続時間、および任意の関連付けられたリンク、ボタン、オブジェクト、またはオンデバイスコンテンツアイテムについての情報を含み得る。
クライアントデバイスは、アクションをロギングするべきか否かを決定することができる(判定504)。アクションをロギングするべきか否かを決定するために、クライアントデバイスは、内部設定、ユーザ定義設定、またはデフォルトプロファイル情報にアクセスすることができる。たとえば、クライアントデバイスは、クライアントデバイスに関連付けられた設定または構成情報を含む、クライアントデバイスのメモリ内の1つまたは複数のデータ構造にアクセスし得る。設定は、ロギングするためのいくつかのタイプのアクション、および無視するためのいくつかのタイプのアクションを示すことができる。設定が、オンデバイスコンテンツアイテムとの対話がロギングされるべきであることを示す場合、クライアントデバイスは、オンデバイスコンテンツアイテムに関連付けられたすべてのアクション(たとえば、対話など)をロギングするべきであると決定することができる。同様に、任意の他のタイプのアクションが、設定においてロギングされるべきであるアクションとして示される場合、クライアントデバイスは、それらの識別されたタイプのアクションがロギングされるべきであると決定することができる。いくつかの実装形態では、クライアントデバイスは、アクションの不在がログに関連すると決定することができる。たとえば、クライアントデバイスは、表示されたオンデバイスコンテンツアイテムとの対話の欠如がロギングされるべきであると決定し得る。そのような実装形態では、クライアントデバイスは、「非アクティビティ」アクションを作成することができ、「非アクティビティ」アクションは、オンデバイスコンテンツアイテムについての異なるパラメータ(たとえば、表示の持続時間、関連付けられたキーワードなど)、および非アクティビティのパラメータ(たとえば、非アクティビティの持続時間、もしあれば、他の検出された対話など)を表す。クライアントデバイスが、検出されたユーザアクションがロギングされるべきであると決定する場合、クライアントデバイスは、(行為506)を実行することができる。クライアントデバイスが、検出されたアクションがロギングされるべきではないと決定する場合、クライアントデバイスは、(行為510)を実行することができる。
クライアントデバイスは、カウンタレジスタkを増分することができる(行為506)。コンテンツモデルのためのトレーニングデータとして使用するための対話の総数をロギングするために、クライアントデバイスは、ロギングされたユーザアクションの総カウントを示すために、カウンタレジスタkに1を加算することができる。いくつかの実装形態では、クライアントデバイスは、カウンタレジスタkを、ユーザアクションをロギングするためのメモリ内、たとえば、データ構造内の次のロケーションのメモリアドレス値(たとえば、コンピュータメモリ内のロケーション)に設定することができる。これがこのループの最初の反復である場合、クライアントデバイスは、カウンタレジスタを増分する前に、カウンタレジスタkを初期値、たとえば、ゼロに初期化することができる。カウンタレジスタkの値を増分した後、クライアントデバイスは、方法500の(行為508)を実行することができる。
クライアントデバイスは、ユーザアクションをロギングすることができる(行為508)。ユーザアクションをロギングすることは、デバイス情報、対話情報(たとえば、対話のタイプ、対話の持続時間、対話に関わるコンテンツ、対話の頻度、対話のタイムスタンプなど)を含む、任意の検出されたアクションに関連付けられた任意の情報をロギングすることを含み得る。ユーザアクションは、クライアントデバイスのオペレーティングシステム、またはクライアントデバイス上で実行しているアプリケーションによって取られたアクションを含み得る。したがって、クライアントデバイスは、任意のアクション、対話、入力イベント、または他のタイプのイベントが発生するとき、そのイベントに関連付けられた任意の情報またはパラメータとともにロギングすることができる。いくつかの実装形態では、クライアントデバイスは、クライアントデバイスのメモリ内でデータ構造を生成し、データ構造内にイベントを記憶することができる。クライアントデバイスは、新しいイベントが検出されるとき、または他の場合に、データ構造を更新することができる。ユーザアクションをロギングすることは、対応するオンデバイスコンテンツアイテムについてのパラメータ(たとえば、表示の持続時間、関連付けられたキーワードなど)、および非アクティビティのパラメータ(たとえば、非アクティビティの持続時間、もしあれば、他の検出された対話など)を含む、非アクティビティイベントをロギングすることを含み得る。ユーザアクションをロギングした後、クライアントデバイスは、方法500の(行為502)を行うことができる。いくつかの実装形態では、(行為508)を行った後、クライアントデバイスは、方法500の(行為512)を行うことができる。
クライアントデバイスは、アクションがトレーニング条件であったか否かを決定することができる(判定510)。トレーニング条件は、クライアントデバイス上に記憶されたモデル(たとえば、コンテンツ生成モデル130、コンテンツ選択モデル135など)が更新され得ることを示す、アクションを含み得る。トレーニング条件は、クライアントデバイスによって検出されたアクション(たとえば、ユーザ対話、デバイスが充電中であるという指示、アプリケーションイベント、または自動アクションなど)であり得る。検出されたアクションがトレーニング条件であるか否かを決定するために、クライアントデバイスは、(たとえば、タイムスタンプなどによって)直近に検出されたアクションを、トレーニング条件構成設定と比較することができる。クライアントデバイスは、クライアントデバイスのメモリ内、たとえば、データ構造内に、トレーニング条件構成設定を記憶することができる。クライアントデバイスは、直近に検出されたアクションがトレーニング条件であるか否かを決定するために、データ構造にアクセスすることができる。構成設定は、ロギングされた、記録されたアクションのいずれかがトレーニング条件を含むか否かを示す、1つまたは複数のルールを含み得る。直近に検出されたアクション(または、構成設定によって指定されるような、別の検出されたアクション)が、トレーニング条件であると決定されない場合、クライアントデバイスは、(行為502)を行うことができる。直近に検出されたアクション(または、構成設定によって指定されるような、別の検出されたアクション)が、トレーニング条件であると決定される場合、クライアントデバイスは、(行為512)を行うことができる。
クライアントデバイスは、ログからユーザアクションを識別することができる(行為512)。クライアントデバイスのメモリ内に記憶されたモデルをトレーニングするために、クライアントデバイスは、クライアントデバイスのメモリ内に記憶されたトレーニングデータを識別することができる。トレーニングデータは、たとえば、オンデバイスコンテンツアイテムを表示している間に検出された対話、または特に、オンデバイスコンテンツアイテムを表示している間に検出された非アクティビティを含み得る。モデルを適切にトレーニングするために、クライアントデバイスは、モデルへの入力として、ロギングされたアクションを使用して、モデルのうちの1つまたは複数においてトレーニングアルゴリズムを行わなければならない。したがって、クライアントデバイスは、ロギングされたユーザアクションの各々の中を反復的にループし、カウンタレジスタkに基づいて識別することができる。ユーザアクションの各々は、インデックス値(たとえば、インデックス0、インデックス1、インデックス2など)によって、クライアントデバイスのメモリにおけるデータ構造内でインデックス付けされ得る。トレーニングするためのユーザアクションにアクセスするために、クライアントデバイスは、カウンタレジスタkに等しいインデックス値を含むユーザアクションを選択することができる。カウンタレジスタは、方法500において前に確立されたように、最後のトレーニング条件からのロギングされたユーザアクションの総数のカウントを維持することができる。ログからユーザアクションを識別することは、識別されたユーザアクションに関連付けられたデータを、コンピュータメモリの異なる領域、たとえば、メモリの作業領域にコピーすることを含み得る。
クライアントデバイスは、アクション情報を用いて、モデルをトレーニングすることができる(行為514)。モデルをトレーニングすることは、トレーニングアルゴリズム(たとえば、教師あり学習、教師なし学習、強化学習、勾配降下アルゴリズムなど)を行うことを含み得る。クライアントデバイスは、識別されたユーザアクションを、デバイスコンテキストについての情報、他の検出されたアクション、タイムスタンプ、入力情報、オンデバイスコンテンツ情報、または他の情報とともに、モデルへのフィードバックとして適用することができる。メモリ内に記憶されたモデルをトレーニングすることによって、クライアントデバイスは、コンテンツアイテムについての追加の情報に基づいて、関連コンテンツ選択を容易にすることができる。検出されたアクションに基づいて、モデルをトレーニングすることは、関連オンデバイスコンテンツ生成または選択を容易にするために、モデルの重み、バイアス、またはパラメータを調整することを含み得る。
クライアントデバイスは、カウンタレジスタkがゼロに等しいか否かを決定することができる(判定516)。クライアントデバイスが、ロギングされたアクションの各々を使用して、モデルをトレーニングしたか否かを決定するために、クライアントデバイスは、各ロギングされたアクションを選択するために使用されたカウンタレジスタkを、ゼロの値と比較することができる。カウンタレジスタkがゼロに等しくなると、クライアントデバイスは、各モデルのトレーニングを終了することができる。カウンタレジスタkがゼロの値に等しくない(たとえば、それよりも大きい)場合、クライアントデバイスは、(行為518)を実行することができる。カウンタレジスタkがゼロの値に等しい(たとえば、それ以下である)場合、クライアントデバイスは、(行為520)を実行することができる。
クライアントデバイスは、カウンタレジスタkを減分することができる(行為518)。クライアントデバイスによってロギングされたアクションの各々を使用して、コンテンツモデルをトレーニングするために、クライアントデバイスは、クライアントデバイスのメモリ内の次の未処理のロギングされたユーザアクションを示すために、カウンタレジスタkから1を減算することができる。いくつかの実装形態では、クライアントデバイスは、カウンタレジスタkを、次の未処理のロギングされたユーザアクションのメモリアドレス値(たとえば、コンピュータメモリ内のロケーション)に設定することができる。カウンタレジスタkの値を減分した後、クライアントデバイスは、方法500の(行為512)を実行することができる。
クライアントデバイスは、トレーニングを終了することができる(行為520)。トレーニングを終了することは、モデルを再初期化するために、1つまたは複数のアクションを実行することができる。たとえば、トレーニングステップによって生成されたモデルへの変更が、クライアントデバイス上のメモリの異なる領域、たとえば、クライアントデバイスの不揮発性ストレージ(たとえば、ストレージ140)内に記憶され得る。いくつかの実装形態では、クライアントデバイスは、クライアントデバイスがモデルにおいてトレーニングを行ったことを示すメッセージを、コンテンツプロバイダ(たとえば、コンテンツプロバイダ115)に送信することができる。いくつかの実装形態では、クライアントデバイスは、コンテンツプロバイダに、モデルへの変更を送信することができる。
図6は、いくつかの実装形態による、本明細書で説明するコンピュータシステムのいずれかを実装するために採用され得る、例示的なコンピュータシステム600の全体的なアーキテクチャを示す。コンピュータシステム600は、表示のために、ネットワーク110を介して情報を提供するために使用され得る。図6のコンピュータシステム600は、メモリ625に通信可能に結合された1つまたは複数のプロセッサ620と、1つまたは複数の通信インターフェース605と、1つまたは複数の出力デバイス610(たとえば、1つまたは複数のディスプレイユニット)と、1つまたは複数の入力デバイス615とを備える。プロセッサ620は、クライアントデバイス105中に含まれ得る。
図6のコンピュータシステム600では、メモリ625は、任意のコンピュータ可読ストレージ媒体を備えることがあり、それぞれのシステムのための本明細書で説明する様々な機能を実施するためのプロセッサ実行可能命令などのコンピュータ命令、ならびにそれに関する、それによって生成された、または通信インターフェースもしくは入力デバイス(存在する場合)を介して受信された任意のデータを記憶し得る。再び図6のシステム600を参照すると、クライアントデバイス105は、特に、ユーザ識別子のセット、生成されたベクトルに関する情報を記憶するために、メモリ625を含み得る。図6に示されたプロセッサ620は、メモリ625中に記憶された命令を実行するために使用され得、そうする際に、また、命令の実行に従って処理および/または生成された様々な情報を、メモリから読み取るか、またはメモリに書き込み得る。
図6に示されたコンピュータシステム600のプロセッサ620はまた、命令の実行に従って、様々な情報を送信または受信するために、通信インターフェース605に通信可能に結合されるか、または通信インターフェース605を制御し得る。たとえば、通信インターフェース605は、ワイヤードもしくはワイヤレスネットワーク、バス、または他の通信手段に結合され得、したがって、コンピュータシステム600が他のデバイス(たとえば、他のコンピュータシステム)に情報を送信するか、または他のデバイスから情報を受信することを可能にし得る。図6のシステムにおいては明示的に示されていないが、1つまたは複数の通信インターフェースが、システム600の構成要素の間の情報フローを容易にする。いくつかの実装形態では、通信インターフェースは、コンピュータシステム600の少なくともいくつかの態様へのアクセスポータルとしてのウェブサイトを提供するように(たとえば、様々なハードウェア構成要素またはソフトウェア構成要素を介して)構成され得る。通信インターフェース605の例には、ユーザインターフェース(たとえば、ウェブページ)が含まれ、ユーザインターフェースを通して、ユーザはコンピュータシステム600と通信することができる。
図6に示されたコンピュータシステム600の出力デバイス610は、たとえば、命令の実行に関連して、様々な情報が視聴またはそれ以外で知覚されることを可能にするために提供され得る。入力デバイス615は、たとえば、ユーザが手動の調整を行うこと、選択を行うこと、データを入力すること、または、命令の実行中にプロセッサと様々な方法のいずれかにおいて対話することを可能にするために提供され得る。本明細書で説明する様々なシステムのために採用され得る全体的なコンピュータシステムアーキテクチャに関する追加の情報が、本明細書でさらに提供される。
本明細書で説明する主題および動作の実装形態は、本明細書で開示する構造およびそれらの構造的等価物を含む、デジタル電子回路において、または有形媒体上で具現化されたコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明する主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のための、またはデータ処理装置の動作を制御するために、コンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の構成要素として実装され得る。プログラム命令は、データ処理装置による実行のために、好適な受信機装置への送信のために情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、マシン生成の電気信号、光信号、または電磁信号上で符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくは順次アクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、またはその中に含まれ得る。その上、コンピュータストレージ媒体は伝搬信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令のソースまたは宛先を含み得る。コンピュータストレージ媒体はまた、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、またはその中に含まれ得る。
本明細書で開示する特徴は、スマートテレビジョンモジュール(または、接続されたテレビジョンモジュール、ハイブリッドテレビジョンモジュールなど)上で実装され得、スマートテレビジョンモジュールは、インターネット接続性を(たとえば、ケーブル、衛星、オーバージエア、または他の信号を介して受信された)より従来のテレビジョンプログラミングソースと統合するように構成された、処理モジュールを含み得る。スマートテレビジョンモジュールは、テレビ受信機に物理的に組み込まれ得るか、または、セットトップボックス、Blu-ray(登録商標)もしくは他のデジタルメディアプレーヤ、ゲームコンソール、ホテルテレビジョンシステム、および他のコンパニオンデバイスなど、別個のデバイスを含み得る。スマートテレビジョンモジュールは、視聴者がウェブ上、ローカルケーブルTVチャネル上、衛星TVチャネル上の、またはローカルハードドライブ上に記憶された、ビデオ、映画、写真、および他のコンテンツを検索および発見することを可能にするように構成され得る。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナーを含み、テレビ受信機および外部の信号ソースに接続し、信号を、次いでテレビジョン画面または他のディスプレイデバイス上に表示されるコンテンツに変え得る、情報アプライアンスデバイスを含み得る。スマートテレビジョンモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されたケーブルまたは衛星メディアソース、他のウェブ「チャネル」など、複数の異なるアプリケーションのためのアイコンを含む、ホームスクリーンまたはトップレベルスクリーンを提供するように構成され得る。スマートテレビジョンモジュールは、電子プログラミングガイドをユーザに提供するようにさらに構成され得る。スマートテレビジョンモジュールへのコンパニオンアプリケーションは、ユーザがスマートテレビジョンモジュールなどを制御することを可能にするために、利用可能なプログラムについての追加の情報をユーザに提供するために、モバイルコンピューティングデバイス上で動作可能であり得る。代替実装形態では、特徴は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他のモバイルフォン、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上で実装され得る。
本明細書で説明する動作は、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」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)が含まれる。
クライアントデバイス105などのコンピューティングシステムは、クライアントおよびサーバを含み得る。たとえば、クライアントデバイス105は、1つまたは複数のデータセンターまたはサーバファームにおいて、1つまたは複数のサーバを含み得る。クライアントおよびサーバは、一般に互いから遠隔であり、典型的には、通信ネットワークを通して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行しており、かつ、互いとクライアントサーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実装形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信するために)データ(たとえば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)が、クライアントデバイスからサーバにおいて受信され得る。
本明細書は、多数の特定の実装詳細を含むが、これらは、いずれかの発明の範囲の限定、または請求され得るものの範囲の限定として解釈されるべきではなく、むしろ、本明細書で説明するシステムおよび方法の特定の実装形態に固有の特徴の説明として解釈されるべきである。別個の実装形態のコンテキストにおいて本明細書で説明するいくつかの特徴はまた、単一の実装形態において組み合わせて実装され得る。逆に、単一の実装形態のコンテキストにおいて説明する様々な特徴もまた、複数の実装形態において別個に、または任意の好適な部分組合せにおいて実装され得る。その上、特徴は、いくつかの組合せにおいて作用するとして上記で説明されることがあり、最初にそのようなものとして請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除され得、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とし得る。
同様に、動作は、特定の順序で図面において図示されるが、これは、そのような動作が、望ましい結果を達成するために、図示された特定の順序で、もしくは順番に行われること、または、すべての図示された動作が行われることを必要とするものとして理解されるべきではない。場合によっては、特許請求の範囲に記載されているアクションは、異なる順序で行われ、なお、望ましい結果を達成することが可能である。加えて、添付の図面に図示されたプロセスは、望ましい結果を達成するために、必ずしも図示された特定の順序、または順番を必要とするとは限らない。
いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に単一のソフトウェア製品にともに統合され得るか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。たとえば、クライアントデバイス105は、単一のモジュール、1つもしくは複数の処理モジュールを有する論理デバイス、1つもしくは複数のサーバ、または検索エンジンの一部であり得る。
ここでいくつかの例示的な実装形態および実装形態について説明したが、上記は例示的であり、限定ではなく、例として提示されたことは明らかである。具体的には、本明細書で提示した例の多くは、方法の行為またはシステム要素の特定の組合せを伴うが、それらの行為およびそれらの要素は、同じ目的を達成するために、他の方法で組み合わせられ得る。ある実装形態のみに関連して説明した行為、要素、および特徴は、他の実装形態または実装形態における同様の役割から除外されるものではない。
本明細書で使用する言い回しおよび専門用語は、説明のためのものであり、限定として見なされるべきではない。本明細書での「含む(including)」、「備える(comprising)」、「有する(having)」、「含む(containing)」、「伴う(involving)」、「によって特徴づけられる(characterized by)」、「ことを特徴とする(characterized in that)」、およびそれらの変形形態の使用は、その後に列挙される項目、それらの等価物、および追加の項目、ならびに、排他的にその後に列挙される項目からなる代替実装形態を包含するように意図されている。一実装形態では、本明細書で説明するシステムおよび方法は、説明する要素、行為、または構成要素のうちの1つ、2つ以上の各組合せ、または全部からなる。
本明細書で単数形において言及したシステムおよび方法の実装形態または要素または行為へのいかなる言及も、複数のこれらの要素を含む実装形態をも包含し得、本明細書のいかなる実装形態または要素または行為への複数形におけるいかなる言及も、単一の要素のみを含む実装形態をも包含し得る。単数形または複数形における言及は、本開示のシステムまたは方法、それらの構成要素、行為、または要素を単一の構成または複数の構成に限定するものではない。いずれかの情報、行為、または要素に基づいている、いずれかの行為または要素への言及は、その行為または要素がいずれかの情報、行為、または要素に少なくとも部分的に基づく実装形態を含み得る。
本明細書で開示するいかなる実装形態も、任意の他の実装形態と組み合わせられてよく、「実装形態」、「いくつかの実装形態」、「代替実装形態」、「様々な実装形態」、「一実装形態」などへの言及は、必ずしも相互排他的であるとは限らず、実装形態に関連して説明する特定の特徴、構造、または特性が、少なくとも1つの実装形態中に含まれ得ることを示すものである。本明細書で使用するそのような用語は、必ずしもすべて同じ実装形態に言及しているとは限らない。いかなる実装形態も、包含的にまたは排他的に、本明細書で開示する態様および実装形態に一致するいずれかの方法で、任意の他の実装形態と組み合わせられてよい。
「または(or)」への言及は、「または(or)」を使用して説明するいかなる用語も、説明する用語のうちの単一、2つ以上、および全部のいずれかを示し得るように、包含的として解釈され得る。
図面、発明を実施するための形態、またはいずれかの請求項における技術的特徴の後に参照符号が続く場合、参照符号は、図面、発明を実施するための形態、および特許請求の範囲の了解度を高めることを唯一の目的として含まれている。したがって、参照符号もそれらの不在も、いかなる請求項要素の範囲におけるいかなる限定の効果を有するものでもない。
本明細書で説明するシステムおよび方法は、それらの特性から逸脱することなしに、他の特定の形態において具現化され得る。本明細書で提供する例は、情報リソースのコンテンツの表示を制御することに関するが、本明細書で説明するシステムおよび方法は、他の環境に適用され得る。上記の実装形態は、説明するシステムおよび方法の限定ではなく、それらを説明するものである。したがって、本明細書で説明するシステムおよび方法の範囲は、上記の説明ではなく、添付の特許請求の範囲によって示され、特許請求の範囲の等価の意味および範囲内に入る変更は、特許請求の範囲内に包含される。
100 システム
105 クライアントデバイス
110 コンピュータネットワーク、ネットワーク
115 コンテンツプロバイダ
125 ディスプレイ
130 コンテンツ生成モデル
135 コンテンツ選択モデル
140 ストレージ
145 リソース、コンテンツリソース
150 イベントログ
155 カテゴリー、コンテンツカテゴリー
158 コンテキスト、デバイスコンテキスト
160 アプリケーション
165 コンテキストスキャナ
170 コンテンツジェネレータ
175 コンテンツセレクタ
180 記憶された対話データ
185 追加のコンテンツ
200 環境
205 コンテンツスロット
210 オンデバイスコンテンツアイテム
310 画面上のテキスト
315 ユーザアクション
320 過去のアクション
325 ロケーションデータ
327 デバイス情報
330 テキスト文字列
335 キャッシュされた画像
340、340A~N 画像データ
600 コンピューティングシステム、コンピュータシステム、システム
605 通信インターフェース
610 出力デバイス
615 入力デバイス
620 プロセッサ
625 メモリ

Claims (20)

  1. セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成するための方法であって、
    1つまたは複数のプロセッサとメモリとを含むクライアントデバイスによって、前記クライアントデバイスの前記メモリ内のデータ構造にある複数のコンテンツリソースおよび複数のカテゴリー情報にアクセスするステップと、
    前記クライアントデバイスによって、前記複数のコンテンツリソースおよび前記複数のカテゴリー情報に基づいて、複数のオンデバイスコンテンツアイテムを生成するステップと、
    前記クライアントデバイスによって、前記クライアントデバイス上で実行しているアプリケーションから、コンテンツアイテムを表示するための指示を受信するステップと、
    前記クライアントデバイスによって、関連デバイスコンテキストを作成するために、デバイスコンテキスト情報をスキャンするステップと、
    前記クライアントデバイスによって、前記関連デバイスコンテキストに基づいて、前記複数のオンデバイスコンテンツアイテムから、関連オンデバイスコンテンツアイテムを選択するステップと、
    前記クライアントデバイスによって、前記クライアントデバイス上に表示するために、前記アプリケーションに前記関連オンデバイスコンテンツアイテムを提供するステップと
    を含む方法。
  2. 前記クライアントデバイスによって、前記関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出するステップと、
    前記クライアントデバイスによって、前記検出された対話イベントに基づいて、対話情報を識別するステップと、
    前記クライアントデバイスによって、コンテンツプロバイダサーバに前記対話情報を送信するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記クライアントデバイスによって、前記対話情報に基づいて、前記コンテンツプロバイダサーバから、追加のコンテンツを受信するステップ
    をさらに含む、請求項2に記載の方法。
  4. 前記クライアントデバイスによって、コンテンツプロバイダサーバから、前記複数のコンテンツリソースおよび前記複数のカテゴリー情報を受信するステップ
    をさらに含む、請求項1に記載の方法。
  5. 前記複数のオンデバイスコンテンツアイテムを生成するステップが、
    前記クライアントデバイスによって、前記クライアントデバイス上で実行しているコンテンツ生成モデルに、前記複数のコンテンツリソースおよび前記複数のカテゴリー情報を提供するステップと、
    前記クライアントデバイスによって、前記コンテンツ生成モデルの出力から、前記複数のオンデバイスコンテンツアイテムを受信するステップと
    をさらに含む、請求項1に記載の方法。
  6. 前記クライアントデバイスによって、コンテンツプロバイダサーバから、前記コンテンツ生成モデルを受信するステップ
    をさらに含む、請求項5に記載の方法。
  7. 前記関連オンデバイスコンテンツアイテムを選択するステップが、
    前記クライアントデバイスによって、前記クライアントデバイス上で実行しているコンテンツ選択モデルに、前記関連デバイスコンテキストを提供するステップと、
    前記クライアントデバイスによって、前記コンテンツ選択モデルの出力から、前記複数のオンデバイスコンテンツアイテムのうちの前記関連オンデバイスコンテンツアイテムの指示を受信するステップと
    をさらに含む、請求項1に記載の方法。
  8. 前記クライアントデバイスによって、コンテンツプロバイダサーバから、前記コンテンツ選択モデルを受信するステップ
    をさらに含む、請求項7に記載の方法。
  9. 前記クライアントデバイスによって、前記関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出するステップと、
    前記クライアントデバイスによって、関連コンテキスト情報または前記対話イベントのうちの少なくとも1つに基づいて、前記コンテンツ生成モデルを更新するステップと
    をさらに含む、請求項5に記載の方法。
  10. 前記クライアントデバイスによって、前記関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出するステップと、
    前記クライアントデバイスによって、関連コンテキスト情報または前記対話イベントのうちの少なくとも1つに基づいて、前記コンテンツ選択モデルを更新するステップと
    をさらに含む、請求項7に記載の方法。
  11. セキュリティ、プライバシー、およびネットワークリソース利用を改善するために、オンデバイスコンテンツアイテムを生成するためのシステムであって、前記システムが、1つまたは複数のプロセッサとメモリとを備えるクライアントデバイスを含み、前記1つまたは複数のプロセッサが、
    前記クライアントデバイスの前記メモリ内のデータ構造にある複数のコンテンツリソースおよび複数のカテゴリー情報にアクセスすること、
    前記複数のコンテンツリソースおよび前記複数のカテゴリー情報に基づいて、複数のオンデバイスコンテンツアイテムを生成すること、
    前記クライアントデバイス上で実行しているアプリケーションから、コンテンツアイテムを表示するための指示を受信すること、
    関連デバイスコンテキストを作成するために、デバイスコンテキスト情報をスキャンすること、
    前記関連デバイスコンテキストに基づいて、前記複数のオンデバイスコンテンツアイテムから、関連オンデバイスコンテンツアイテムを選択すること、ならびに
    前記クライアントデバイス上に表示するために、前記アプリケーションに前記関連オンデバイスコンテンツアイテムを提供すること
    を行うように構成される、システム。
  12. 前記1つまたは複数のプロセッサが、
    前記関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出すること、
    前記検出された対話イベントに基づいて、対話情報を識別すること、および
    コンテンツプロバイダサーバに前記対話情報を送信すること
    を行うようにさらに構成される、請求項11に記載のシステム。
  13. 前記1つまたは複数のプロセッサが、
    前記対話情報に基づいて、前記コンテンツプロバイダサーバから、追加のコンテンツを受信すること
    を行うようにさらに構成される、請求項12に記載のシステム。
  14. 前記1つまたは複数のプロセッサが、
    コンテンツプロバイダサーバから、前記複数のコンテンツリソースおよび前記複数のカテゴリー情報を受信すること
    を行うようにさらに構成される、請求項11に記載のシステム。
  15. 前記1つまたは複数のプロセッサが、
    前記クライアントデバイス上で実行しているコンテンツ生成モデルに、前記複数のコンテンツリソースおよび前記複数のカテゴリー情報を提供すること、ならびに
    前記コンテンツ生成モデルの出力から、前記複数のオンデバイスコンテンツアイテムを受信すること
    を行うようにさらに構成される、請求項11に記載のシステム。
  16. 前記1つまたは複数のプロセッサが、
    コンテンツプロバイダサーバから、前記コンテンツ生成モデルを受信すること
    を行うようにさらに構成される、請求項15に記載のシステム。
  17. 前記1つまたは複数のプロセッサが、
    前記クライアントデバイス上で実行しているコンテンツ選択モデルに、前記関連デバイスコンテキストを提供すること、および
    前記コンテンツ選択モデルの出力から、前記複数のオンデバイスコンテンツアイテムのうちの前記関連オンデバイスコンテンツアイテムの指示を受信すること
    を行うようにさらに構成される、請求項11に記載のシステム。
  18. 前記1つまたは複数のプロセッサが、
    コンテンツプロバイダサーバから、前記コンテンツ選択モデルを受信すること
    を行うようにさらに構成される、請求項17に記載のシステム。
  19. 前記1つまたは複数のプロセッサが、
    前記関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出すること、および
    関連コンテキスト情報または前記対話イベントのうちの少なくとも1つに基づいて、前記コンテンツ生成モデルを更新すること
    を行うようにさらに構成される、請求項15に記載のシステム。
  20. 前記1つまたは複数のプロセッサが、
    前記関連オンデバイスコンテンツアイテムに関連付けられた対話イベントを検出すること、および
    関連コンテキスト情報または前記対話イベントのうちの少なくとも1つに基づいて、前記コンテンツ選択モデルを更新すること
    を行うようにさらに構成される、請求項17に記載のシステム。
JP2021517810A 2020-03-13 2020-03-13 ネットワークリソースのセキュリティおよび利用を改善するためにローカルコンテンツを生成および選択するためのシステムおよび方法 Active JP7238109B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/022728 WO2021183143A1 (en) 2020-03-13 2020-03-13 Systems and methods for generating and selecting local content to improve security and utilization of network resources

Publications (2)

Publication Number Publication Date
JP2022528212A true JP2022528212A (ja) 2022-06-09
JP7238109B2 JP7238109B2 (ja) 2023-03-13

Family

ID=70277480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021517810A Active JP7238109B2 (ja) 2020-03-13 2020-03-13 ネットワークリソースのセキュリティおよび利用を改善するためにローカルコンテンツを生成および選択するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20220116410A1 (ja)
EP (1) EP3906492A1 (ja)
JP (1) JP7238109B2 (ja)
KR (1) KR102474940B1 (ja)
CN (1) CN113692585A (ja)
WO (1) WO2021183143A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11665010B2 (en) * 2021-08-13 2023-05-30 Avaya Management L.P. Intelligent meeting recording using artificial intelligence algorithms

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016066381A (ja) * 2010-06-23 2016-04-28 グーグル インコーポレイテッド 広告プライバシ管理

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US7997485B2 (en) * 2006-06-29 2011-08-16 Microsoft Corporation Content presentation based on user preferences
US9135626B2 (en) * 2006-06-30 2015-09-15 Nokia Technologies Oy Advertising middleware
KR20170055726A (ko) * 2015-11-12 2017-05-22 주식회사 랩식스케이 사용자 정보 보호가 가능한 맞춤형 광고를 위한 메신저를 이용한 광고 제공 방법, 및 이를 수행하는 애플리케이션
US10855697B2 (en) * 2017-06-30 2020-12-01 Paypal, Inc. Threat intelligence system
US11979473B2 (en) * 2020-08-20 2024-05-07 Zscaler, Inc. Cloud access security broker systems and methods with an in-memory data store

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016066381A (ja) * 2010-06-23 2016-04-28 グーグル インコーポレイテッド 広告プライバシ管理

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AZEEM J. KHAN ET AL.: "CAMEO: A Middleware for Mobile Advertisement Delivery", PROCEEDING OF THE 11TH ANNUAL INTERNATIONAL CONFERENCE ON MOBILE SYSTEMS, APPICATIONS, AND SERVICES, vol. 13, JPN6022025535, 1 January 2013 (2013-01-01), US, pages 125 - 137, XP055576980, ISSN: 0004807960, DOI: 10.1145/2462456.2464436 *
JIANG JINGHUA ET AL.: "Towards Secure and Practical Targeted Mobile Advertising", 2015 IEEE CONFERENCE ON COMPUTER COMMUNICATIONS WORKSHOPS (INFOCOM WKSHPS), JPN6022025534, 26 April 2015 (2015-04-26), US, pages 79 - 88, ISSN: 0004807959 *

Also Published As

Publication number Publication date
US20220116410A1 (en) 2022-04-14
EP3906492A1 (en) 2021-11-10
WO2021183143A1 (en) 2021-09-16
JP7238109B2 (ja) 2023-03-13
KR102474940B1 (ko) 2022-12-06
KR20210116419A (ko) 2021-09-27
CN113692585A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
US10706325B2 (en) Method and apparatus for selecting a network resource as a source of content for a recommendation system
US9553934B2 (en) Setting cookies across applications
TWI590157B (zh) 自客戶側應用程式之傳送資料壓縮序列化
US9405838B2 (en) Determining an active persona of a user device
US10769353B2 (en) Dynamic streaming content provided by server and client-side tracking application
JP2019516144A (ja) 非正規セッションを識別するためのシステムおよび方法
US9451008B1 (en) Content selection with privacy features
US10339572B2 (en) Tracking user interaction with a stream of content
US20150287069A1 (en) Personal digital engine for user empowerment and method to operate the same
US20210352150A1 (en) Maintaining session identifiers across multiple webpages for content selection
US11488213B2 (en) Tracking user interaction with a stream of content
JP7444954B2 (ja) デバイスプライバシーを守るためのシステムおよび方法
JP2019016347A (ja) エモーティコンを用いた検索サービスを提供するユーザー端末、検索サーバー及びその動作方法
JP7238109B2 (ja) ネットワークリソースのセキュリティおよび利用を改善するためにローカルコンテンツを生成および選択するためのシステムおよび方法
KR102381330B1 (ko) 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천
EP3682645A1 (en) Systems and methods for providing multi-part persistent content
EP3908954B1 (en) Systems and methods for secure and privacy preserving device classification
US20210312009A1 (en) Content aggregation and data streaming through unified application functionalities
US20170300302A1 (en) Method and/or apparatus for generating signal processing pipelines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230301

R150 Certificate of patent or registration of utility model

Ref document number: 7238109

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150