JP6648292B2 - 将来のアクションのためのユーザインターフェースデータキャッシングの最適化 - Google Patents

将来のアクションのためのユーザインターフェースデータキャッシングの最適化 Download PDF

Info

Publication number
JP6648292B2
JP6648292B2 JP2018542767A JP2018542767A JP6648292B2 JP 6648292 B2 JP6648292 B2 JP 6648292B2 JP 2018542767 A JP2018542767 A JP 2018542767A JP 2018542767 A JP2018542767 A JP 2018542767A JP 6648292 B2 JP6648292 B2 JP 6648292B2
Authority
JP
Japan
Prior art keywords
data
user interface
next action
action
client device
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
JP2018542767A
Other languages
English (en)
Other versions
JP2019514091A (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 JP2019514091A publication Critical patent/JP2019514091A/ja
Priority to JP2020003688A priority Critical patent/JP6989628B2/ja
Application granted granted Critical
Publication of JP6648292B2 publication Critical patent/JP6648292B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a 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/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、将来のアクションのためのユーザインターフェースデータキャッシングの最適化に関する。
インターネットは、世界中でユーザ間のデータおよび取引の交換を容易にする。このデータの交換により、データプロバイダは様々な種類のコンテンツを様々なユーザに提供できる。データは、電子文書(たとえば、ウェブページ)上、およびアプリケーション(たとえば、モバイルアプリ)内にデータを公開することを含む様々な方法で提供することが可能である。データは、一般にユーザ要求に応答して、たとえばユーザがウェブページへのリンクを選択することに応答して、クライアントデバイスに提供される。各要求は、データプロバイダが適切なデータを識別し、かつインターネットを介してクライアントデバイスにデータを送信するために時間がかかる場合がある。
本明細書は、ユーザが実行すると決定した、たとえば実行すると予測された、次のアクションに基づいて、クライアントデバイスにおいてデータをプリキャッシングするためのシステム、方法、デバイス、および他の技法を説明する。
一般に、本明細書に記載される主題の1つの革新的な態様は、1つまたは複数のモバイルアプリケーションのためのユーザインターフェースを提示するディスプレイを含むクライアントデバイスにおいて実装することが可能である。クライアントデバイスはまた、1つまたは複数のモバイルアプリケーションのためのデータ通信ネットワークを介して受信されたデータを記憶するキャッシュを有するデータストレージデバイスを含むことが可能である。クライアントデバイスはまた、データストレージデバイスおよびディスプレイと通信するデータ処理装置を含むことが可能である。データ処理装置は、所与のアプリケーションに関するディスプレイによって提示されている所与のユーザインターフェースのユーザインターフェースコンテキストを決定することが可能である。所与のユーザインターフェースのユーザインターフェースコンテキストは、(i)所与のユーザインターフェースに提示されているデータが属するグループ、または(ii)所与のユーザインターフェースに提示されているデータのタイプのうちの少なくとも1つを指定することが可能である。データ処理装置は、ユーザインターフェースコンテキストに基づいて、クライアントデバイスのユーザが所与のユーザインターフェースにおいて実行する予測された次のアクションを決定することが可能である。データ処理装置は、データ通信ネットワークを介して、および予測された次のアクションを検出する前に、ユーザが予測された次のアクションを実行することに応答して提示される次のアクションデータの要求を送信することが可能である。データ処理装置は、データ通信ネットワークを介して次のアクションデータを受信し、次のアクションデータをキャッシュに記憶することが可能である。この態様の他の実装形態は、コンピュータストレージデバイス上で符号化された、方法のアクションを実行するように構成される、対応する装置、方法、システム、およびコンピュータプログラムを含む。
これらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意選択で含むことが可能である。いくつかの態様では、クライアントデバイスのデータ処理装置は、所与のユーザインターフェースにおいて予測されたアクションの発生を検出し、キャッシュから次のアクションデータを取得し、次のアクションデータを提示するためにユーザインターフェースを更新することが可能である。
いくつかの態様では、ユーザインターフェースコンテキストは、所与のユーザインターフェースに提示されているデータのロールアップレベルを指定する。ロールアップレベルは、データが集約される階層レベルを指定することが可能である。
いくつかの態様では、予測されたアクションの次のアクションは、所与のユーザインターフェースにおいて実行できる可能なアクションのセットの各アクションが、所与のユーザインターフェースが、決定されたユーザインターフェースコンテキストと一致するコンテキストを有した場合のユーザを含む1人または複数のユーザによって実行された回数に基づいて決定される。
いくつかの態様では、クライアントデバイスのデータ処理装置は、予測された次のアクションを決定するためのトリガイベントを検出することが可能である。予測された次のアクションは、トリガイベントの検出に応答して決定することが可能である。
いくつかの態様では、クライアントデバイスのデータ処理装置は、ユーザインターフェースコンテキストに基づいて予測された次のアクションを決定する予測モデルを取得し、予測モデルを予測された次のアクションと確率との間のマッピングに変換することが可能である。各マッピングは、それぞれの予測された次のアクションと、所与のユーザインターフェースコンテキストに対して発生するそれぞれの予測された次のアクションの確率との間のマッピングとすることが可能である。
いくつかの態様では、クライアントデバイスのデータ処理装置は、(i)予測モデルごとの予測精度、(ii)予測モデルごとのキャッシュヒット率、(iii)各予測モデルによって提供されるレイテンシの低減、または(iv)所与のユーザインターフェースにおいてユーザによって実行された履歴ユーザインタラクションの数のうちの少なくとも1つに基づいて予測モデルのセットから予測モデルを選択することが可能である。
いくつかの態様では、クライアントデバイスのデータ処理装置は、次のアクションデータが所与のアプリケーションとは異なる第2のアプリケーションによって提示されることを決定することが可能である。予測された次のアクションを検出する前に、データ処理装置は、第2のアプリケーションを実行するためのコードを取得し、そのコードをキャッシュに記憶することが可能である。
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することが可能である。データを取得し、ユーザに提示する際のレイテンシは、ユーザの次のアクション、たとえばアプリケーションとのユーザの次のユーザインタラクションに応答して要求される可能性が高いデータをプリキャッシュすることによって低減することが可能である。ウェブアプリケーションをロードする際のレイテンシは、ユーザの次のアクションに応答して要求されたデータを提示するために使用されるウェブアプリケーションを識別し、ウェブアプリケーションをロードするために使用されるコード、たとえばスクリプトを取得することによって低減することが可能である。同様に、モバイルアプリケーションをロードする際のレイテンシは、ユーザの次のアクションに応答して要求されたデータを提示するために使用されるモバイルアプリケーションを識別し、ユーザのクライアントデバイスのバックグラウンドにアプリケーションをロードすることによって低減することが可能である。クライアントデバイスは、要求がネットワークを横切ること、サーバが要求されたデータを識別すること、および要求されたデータがクライアントデバイスに向かうことを待つ必要がないため、データをプレキャッシングすることによってデータをより速く提示することが可能になる。
本明細書に記載された技法は、アプリケーション(または別の異なるアプリケーション)内で実行される今後のアクションを予測するためにアプリケーションとのユーザインタラクションのクライアント側評価を可能にする。その予測により、データが必要とされるときにクライアントデバイスにすでに記憶されているように必要とされる前にクライアントデバイスが今後のアクションをサポートするために必要なデータをサーバに要求することが可能になる。したがって、この技法は、異なるユーザインターフェースへの遷移が、通常であればリアルタイム遷移をサポートするために十分に速くダウンロードできない量のデータを必要とする場合があっても、第1のユーザインターフェースから異なるユーザインターフェースへのリアルタイム遷移を可能にする。データの評価はまた、(たとえば、第1のユーザインターフェースの使用を中断することなしに)クライアントデバイスのバックグラウンドにおいて実行され、その結果、第1のアプリケーションのユーザ体験は低下しない。さらに、本明細書に記載された技法は、コンピューティングデバイスの使用なしには利用できないリアルタイムデータ(たとえば、モバイルデバイスとのユーザインタラクション)を利用する。
本明細書に記載された技法はまた、ユーザインタラクションに応答して更新される(たとえば、新しいデータで、フィルタリングされたデータで、または変更されたデータで)ユーザインターフェース間の遷移を改善するためにモバイルデバイスの限定されたキャッシュを効果的かつ効率的に使用する。本明細書に記載された次のアクションモデルを使用すると、キャッシュに記憶されたデータが実際に要求される可能性が高まる。これにより、ユーザが次のユーザインターフェースを要求した時点でユーザインターフェースとのユーザインタラクションをサポートするためにモバイルデバイスがデータをダウンロードしなければならない可能性が低減される。
モバイルデバイスのプロセッサ、Wi-Fiまたはモバイルネットワークトランシーバ、あるいは他の構成要素へのアクセスを取得することを含むモバイルデータのダウンロードを実行することに関連するかなりの量のセットアップおよび分解アクティビティがあってよいので、データを受信し、そのデータを適切な場所に記憶し、データのダウンロードを事前に実行することによってモバイルデバイスが異なるユーザインターフェースに遷移しているときに、時間を節約し、モバイルデバイスに課される要求を低減する。本明細書に記載された技法は、モバイルデバイスが、データがダウンロードされる回数を減らすために他のデータと同時に将来のデータをダウンロードすることを可能にし、したがってモバイルデバイスがセットアップおよび分解アクティビティを複数回実行する必要がある場合に発生するモバイルデバイスに課される要求を低減する。
一部のネイティブアプリケーションは、アプリケーションの一部であり、したがってモバイルデバイスに記憶されてもよいデータを使用して、初期ユーザインターフェースを生成する。しかしながら、初期ユーザインターフェースと後続のユーザインターフェースの重要な部分は、ネットワークサーバからダウンロードされたデータに基づいて動的に作成される。したがって、ユーザインターフェースの流体使用は、モバイルデバイスへのデータの効率的な転送を必要とする。ハードウェアおよびネットワークの制約により、データが使用されるユーザインターフェースがまだ要求されていないときに、データのすべて(または実質的な部分)が転送されると、ユーザインターフェースの更新が遅れる場合がある。
前述の主題の様々な特徴および利点を図面に関して以下に説明する。さらなる特徴および利点は、本明細書および特許請求の範囲に記載される主題から明らかである。
データ配信システムがクライアントデバイスにデータを配信する例示的な環境を示す図である。 データが提示される例示的なユーザインターフェースを示す図である。 予測された次のアクションを決定し、予測された次のアクションに対する次のアクションデータをプリキャッシュするための例示的なプロセスのフローチャートである。 予測された次のアクションを決定し、予測された次のアクションに対する次のアクションデータをプリキャッシュするための例示的なプロセスのフローチャートである。 予測された次のアクションを決定するために使用される予測モデルのパフォーマンスメトリックを維持するための例示的なプロセスのフローチャートである。
一般に、本明細書に記載されたシステムおよび技法は、ユーザがデータを要求する前にデータをプリキャッシュすることによってデータを取得および提示する際のレイテンシを低減させることが可能である。システムは、ユーザがアプリケーションのユーザインターフェース、たとえばモバイルデバイス上で実行するモバイルアプリケーションまたはウェブブラウザにおいて実行するウェブアプリケーションにおいて実行する可能性のある1つまたは複数の予測された次のアクション(たとえば、将来のアクション)を決定することが可能である。予測された次のアクションをユーザが実際に実行し、ユーザがアクションを実行する前にユーザのクライアントデバイスにおいてデータをプリキャッシュする場合、本システムは、ユーザインターフェース(または、アプリケーションがデータを提示するために遷移する別のユーザインターフェース)に提示されるデータを識別することが可能である。
本システムは、ユーザインターフェースのコンテキストに基づいて予測された次のアクションを決定することが可能である。たとえば、ユーザは、特定のタイプのデータがユーザインターフェースに提示されているとき、特定のアクションを実行する可能性がより高くてもよい。予測された次のアクションを決定するために使用されるユーザインターフェースコンテキストデータは、たとえば提示されているデータのタイプ、データが属するグループ、データのロールアップレベル、現在提示されているアプリケーションのタブ、ユーザインターフェースのステータス、および/または他の適切なコンテキストデータを含むことが可能である。
本システムは、ユーザがユーザインターフェースを閲覧しているアクション、および/または他のユーザが過去に実行したアクションに基づいて、予測された次のアクションを決定することが可能である。たとえば、本システムは、所与のユーザインターフェースにおいて実行することが可能であるアクションのセット(たとえば、ユーザインタラクション)に対して、そのアクションがユーザによって実行された回数を維持することが可能である。本システムはまた、1つまたは複数のユーザインターフェースコンテキストに対して、ユーザインターフェースがユーザインターフェースコンテキストに一致するコンテキストを有する場合に、各アクションが実行された回数を維持することが可能である。たとえば、1つのユーザインターフェースコンテキストは、特定のデータタイプを有する特定のデータのグループの提示によって定義されてもよい。このユーザインターフェースコンテキストでは、本システムは、ユーザインターフェースが特定のデータタイプを有する特定のデータのグループを提示していたときに、各アクションが実行された回数のカウントを維持することが可能である。いくつかの実装形態では、本システムは、予測された次のアクションとして、ユーザインターフェースが特定のデータタイプを有する特定のデータのグループを提示していたときに過去に最も実行されたアクションのうちの1つまたは複数を選択してもよい。
いくつかの実装形態では、予測された次のアクションは、現在ユーザインターフェースを提示しているアプリケーションとは異なるアプリケーションを使用してデータを提示することを含んでもよい。この例では、本システムは、予測された次のアクションが実際に実行された場合、アプリケーションをロードする際のレイテンシを低減させるためにクライアントデバイスにおいて異なるアプリケーションをロードするためのコードをプリキャッシュしてもよい。たとえば、本システムは、予測された次のアクションによって必要とされるデータを提示するために他のウェブアプリケーションが使用される場合、クライアントデバイスによって現在提示されているウェブページにおいて別のウェブアプリケーションをロードするために使用されるスクリプトをプリキャッシュしてもよい。これにより、クライアントデバイスは、同じウェブページ内(または、異なるウェブページ内)のウェブアプリケーション間を流動的にかつ不必要な遅延なしに遷移できる。本システムはまた、データを取得するためにクライアントデバイスに課される遅延および不必要な要求を回避するために他のウェブアプリケーションにおいて提示されるデータをプリキャッシュすることが可能である。
いくつかの実装形態では、本明細書に記載された技法は、第1のデバイスとは異なる第2のデバイスのユーザインターフェースのコンテキストに基づいて、またはより一般的には、第2のデバイスとのユーザインタラクションに基づいて、第1のデバイスのアプリケーションについてのデータをプリキャッシュするために使用することが可能である。たとえば、ユーザが別のデバイスにおいて実行する可能性のあるアクションを識別し、他のデバイスにおいて識別されたアクションのデータをプリキャッシュするために人工知能(AI)アシスタントとのユーザインタラクション(たとえば、人工知能アシスタントに聞かれる質問、またそれはそれに提供される要求)を使用することが可能である。特定の例では、ユーザは、AIアシスタントに特定の場所の近くの道を走るように頼んでもよい。それに応答して、システムは、ユーザがウェアラブルデバイス(たとえば、スマートウォッチ)またはスマートフォン上のアクティビティ監視アプリケーションにアクセスし、ウェアラブルデバイスまたはスマートフォンにおいてアクティビティ監視アプリケーションのデータをプリキャッシュする可能性が高いと決定することが可能である。
デバイス間のアクション予測はまた、スマートカー(たとえば、車載コンピューティング機能を有する自動車)、自律走行車、スマートテレビ、スマート機器、および/または他の適切なスマートデバイスなどの他のデバイスに適用することが可能である。たとえば、本システムは、ユーザが特定のレストランについてAIアシスタントに車載コンピューティングデバイス、車のナビゲーションシステム、または自律走行車のナビゲーションシステムのアプリケーション用の特定のレストランへのナビゲーション命令をプリキャッシュするように頼んだことを指定するデータを使用してもよい。
図1は、データ配信システム110がクライアントデバイス150にデータを配信する例示的な環境100である。データ配信システム110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク130を介してクライアントデバイス150にデータを送信することが可能である。クライアントデバイス150は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、スマートウォッチ、ならびに/または他のタイプのモバイルおよび非モバイルコンピューティングデバイスを含んでもよい。
クライアントデバイス150は、1つまたは複数のアプリケーション154を含むことが可能である。たとえば、クライアントデバイスは、1つまたは複数のモバイルアプリケーション(たとえば、モバイルアプリ)を含むことが可能である。モバイルアプリケーションは、特定のタイプのデバイスまたは特定のプラットフォーム用に開発されたネイティブアプリケーションであってよい。アプリケーション154は、ウェブブラウザ内で実行するウェブアプリケーションを含むことが可能である。ウェブアプリケーションは、クライアントデバイス150にダウンロードされ、ウェブアプリケーションを含むウェブページがウェブブラウザにおいて開かれたときにウェブブラウザにおいて実行されるコード、たとえばスクリプトを含んでもよい。
各アプリケーション154は、クライアントデバイス150のディスプレイによって提示される1つまたは複数のユーザインターフェース152を生成することが可能である。ユーザインターフェース152は、画像ビデオ、グラフなどのデータおよび他のコンテンツを提示することが可能である。ユーザインターフェース152はまた、ユーザがアプリケーション内(またはアプリケーション外)をナビゲートすること、データを修正すること、データをソートすること、データをフィルタリングすることなど、追加データまたは異なるデータを要求することと、および/あるいは他の適切なアクションを実行することとを可能にするユーザインターフェース要素を含むことが可能である。たとえば、ユーザインターフェース152は、ユーザが表示画面の間をナビゲートすることと、データを修正することと、データをソートすることと、データをフィルタリングすることとを可能にするボタン、アイコン、スライダバー、および他の要素を含んでもよい。ユーザインターフェース152は、異なるデータまたは異なるタイプのデータを提示する複数のタブを含んでもよい。ユーザは、所望のタブを選択することによってタブ間をナビゲートすることが可能である。別の例では、ユーザインターフェースは、ユーザが特定の日付および時間範囲にデータをフィルタリングすることを可能にする日付および時間範囲セレクタを含んでもよい。例示的なユーザインターフェースが図2に示され、以下で説明される。本明細書の目的のためにユーザインターフェースが一般的に説明される。しかしながら、これらの技法は、クライアントデバイスの状態および/またはクライアントデバイスとの以前のインタラクションなどのクライアントデバイスに関する他のデータに適用することが可能である。さらに、本明細書を通じて使用されるようにユーザインターフェースという用語は、グラフィカルユーザインターフェースに限定されず、可聴ユーザインターフェースおよび他のユーザインターフェースを含むことが可能である。
アプリケーション154は、データ配信システム110から受信したデータをユーザインターフェース152に提示することが可能である。データ配信システム110は、1つまたは複数のアプリケーション154のデータを維持し、クライアントデバイス150から受信した要求に応じてアプリケーション154にデータを提供することが可能である。たとえば、クライアントデバイス150がアプリケーション154をロードする場合、アプリケーション154は、ネットワーク130を介してデータ配信システム110に要求を送信することが可能である。要求は、アプリケーション154によって提示されるデータを指定することが可能である。さらに、ユーザは、追加データまたは異なるデータを要求するためにアプリケーション154によって生成され提示されたユーザインターフェース152を使用することが可能である。次に、アプリケーション154は、データ配信システム110にデータを要求することが可能である。
クライアントデバイス150はまた、高速キャッシュ156を含む。高速キャッシュ156は、クライアントデバイス150にインストールされた1つまたは複数の高速メモリデバイスを含むことが可能である。たとえば、高速キャッシュ156は、スタティックランダムアクセスメモリ(SRAM)および/またはソリッドステートメモリデバイスを含むことが可能である。クライアントデバイス150はまた、ハードドライブ、フラッシュメモリなどの他のメモリストレージデバイスを含むことが可能である。
高速キャッシュ156は、クライアントデバイス150のユーザによってまだ要求されていないデータを含むアプリケーション154のためのデータを記憶することが可能である。たとえば、アプリケーション154(または、別の専用アプリケーション)は、ユーザが実行する可能性のある1つまたは複数の予測された次のアクションを決定することが可能である。予測された次のアクションは、ユーザによって実行される少なくとも1つのしきい値確率を有するアクションであってもよい。アプリケーション154はまた、ユーザが予測された次のアクションを実行する場合に提示されるデータをデータ配信システム110に要求することが可能である。アプリケーション154は、ユーザが予測された次のアクションを実行する前に、また人間の介入なしにこの要求を送信することが可能である。たとえば、アプリケーション154は、トリガイベント(たとえば、日付および時間範囲セレクタの選択)に応答して予測された次のアクションを自動的に決定し、予測された次のアクションの決定に応じてデータを要求することが可能である。アプリケーション154がデータを受信すると、アプリケーション154は、ユーザが予測された次のアクションを後で実行する場合、データが迅速に提示されるように受信したデータを高速キャッシュ156に記憶することが可能である。
いくつかの実装形態では、予測された次のアクションのために受信されたデータは、ハードドライブ、フラッシュメモリ、または高速キャッシュ156とは異なる他のメモリストレージデバイスに記憶されてもよい。そのようなメモリを使用することは、高速キャッシュ156を使用する場合ほど高速ではない場合があるが、ユーザが予測された次のアクションを実行した後にネットワーク130を介してデータを要求する際のレイテンシは、依然として排除または低減される。
アプリケーション154は、ユーザに対する予測された次のアクションを決定するために次のアクションモデル158を使用することが可能である。いくつかの実装形態では、次のアクションモデル158はアプリケーション特有である。たとえば、アプリケーション154は、アプリケーション154のユーザインターフェース152が提示されているユーザに対する予測された次のアクションを決定する、対応する次のアクションモデル158を有してもよい。別の例では、アプリケーション154は、ユーザインターフェース152ごとの、またはアプリケーション154によって生成され提示されたユーザインターフェース152のセットに対する、それぞれの次のアクションモデル158を有してもよい。この例では、次のアクションモデルのそれぞれのユーザインターフェースが提示されるユーザに対する予測された次のアクションを決定するために次のアクションモデル154が使用されてもよい。
いくつかの実装形態では、アプリケーション154は、ユーザ特有の次のアクションモデル158を有することが可能である。アプリケーション154のユーザ特有の次のアクションモデルは、特定のユーザがアプリケーション154の1つまたは複数のユーザインターフェースにおいて実行する可能性のある予測された次のアクションを決定するために使用することが可能である。アプリケーション154はまた、複数のユーザに対する予測された次のアクションを決定するために使用される一般的な次のアクションモデルを有してもよい。以下でより詳細に説明されるようにアプリケーション154は、ユーザがアプリケーション154のユーザインターフェースにおいて実行したアクションの数に基づいて、特定のユーザのユーザ特有モデルと一般モデルとの間で選択してもよい。
アプリケーション154に対する次のアクションモデル158は、アプリケーション154のユーザインターフェース152において実行することが可能であるアクションのセット内のアクションごとにアクションが実行される確率を指定することが可能である。たとえば、次のアクションモデル158は、第1のアクションがユーザインターフェース152において実行される確率が50%であり、第2のアクションがユーザインターフェース152において実行される確率が45%であることを指定してもよい。この例では、アプリケーション154は、予測された次のアクションとして最も高い確率を有する次のアクションのうちの1つまたは複数を選択してもよい。以下でより詳細に説明されるようにアプリケーション154に対する次のアクションモデル158によって指定される確率は、アプリケーション154のユーザインターフェースにおいて実行された以前のアクションに基づいてもよい。
アプリケーションのための次のアクションモデル158は、ユーザに提示されているユーザインターフェースのコンテキストに基づいて、予測された次のアクションを決定するために使用することが可能である。ユーザインターフェースコンテキストは、ユーザインターフェースの1つまたは複数の属性のセットによって定義することが可能である。たとえば、ユーザインターフェースコンテキストは、提示されているデータのタイプ(たとえば、パフォーマンスデータ、履歴データ、アカウントデータ、コンテンツアイテム配信基準)、データが属するグループ(たとえば、データが属するアカウント)、データの特徴(たとえば、データが属するアカウントのサイズ)、データのロールアップレベル、現在提示されているアプリケーションのタブ、ユーザインターフェースのステータスなどの属性、および/あるいはユーザインターフェースによって提示されているユーザインターフェースまたはデータの他の適切な属性によって定義されてもよい。データのロールアップレベルは、データが集約される階層レベルを指定することが可能である。たとえば、イベントの反復ごとにパフォーマンスデータを取得することが可能である。このパフォーマンスデータは、1日ごとの合計、週ごとの合計、月ごとの合計などで集計することが可能である。この例では、月ごとの合計は週ごとの合計よりも高いロールアップレベルになり、週ごとの合計は1日ごとの合計よりも高いロールアップレベルになる。
別の例では、複数の異なる階層レベルで統計を集約することが可能である。たとえば、サッカー選手の統計は、試合レベル、シーズンレベル、およびキャリアレベルで集計することが可能である。この例では、キャリアレベルはシーズンレベルよりも高いロールアップレベルになり、シーズンレベルは試合レベルよりも高いロールアップレベルになる。
アプリケーション154のための次のアクションモデル158は、ユーザインターフェースコンテキスト(たとえば、ユーザインターフェースの1つまたは複数の属性の各セット)ごとに、アクションのセットの各々が実行される確率を指定することが可能である。アプリケーション154が予測された次のアクションを決定するために次のアクションモデルを使用するとき、アプリケーション154は、ユーザに現在提示されているユーザインターフェースの属性と、適切な次のアクションモデル158(たとえば、ユーザおよび/またはユーザインターフェースの次のアクションモデル、あるいは複数のユーザおよび/またはユーザインターフェースのための一般的な次のアクションモデル)のユーザインターフェースコンテキストの属性とを比較することが可能である。アプリケーション154は、次のアクションモデル154によって指定されるアクションの確率を評価し、その確率に基づいて予測された次のアクションとしてアクションのうちの1つまたは複数(たとえば、最も高い確率を有する上位N個のアクション)を選択することが可能である。次いで、アプリケーション154は、ユーザが予測された次のアクションを実行する場合、アプリケーション154(または、別のアプリケーション)によって提示されるデータをデータ配信システム110に要求することが可能である。データがデータ配信システム110から受信されると、アプリケーション154は高速キャッシュ156にデータを記憶することが可能である。
現在のユーザインターフェースの属性が次のアクションモデル158のユーザインターフェースコンテキストの属性と一致しない場合、アプリケーション154は、現在のユーザインターフェースに最も類似するユーザインターフェースコンテキストを選択してもよい。たとえば、アプリケーション154は、現在のユーザインターフェースとユーザインターフェースコンテキストとの間で一致する属性の数が最も多いユーザインターフェースコンテキストを選択してもよい。
いくつかの実装形態では、アプリケーション154の次のアクションモデル158は、機械学習技法を使用して訓練された予測モデルを含んでもよい。たとえば、次のアクションモデル158は、ユーザインターフェースの特徴(たとえば、属性)と、ユーザインターフェースが特定のコンテキストを有していたときにユーザによって実行されたアクションを指定する履歴アクションデータとを使用して訓練されてもよい。ユーザに提示されているユーザインターフェースの属性は、予測モデルに適用することが可能であり、予測モデルは、アクションのセットごとに確率を出力することが可能である。次いで、アプリケーション154は、確率に基づいて予測された次のアクションを選択することが可能である。
いくつかの実装形態では、予測モデルは、クライアントデバイス150において予測された次のアクションと確率との間のマッピングに変換されてもよい。各マッピングは、それぞれの予測された次のアクションと、所与のユーザインターフェースコンテキストに対して発生するそれぞれの予測された次のアクションの確率との間のマッピングとすることが可能である。このようにして、アプリケーション154は、アプリケーション154がユーザインターフェースの属性を予測モデルに適用しなければならない場合よりも、マッピングにおける確率をより迅速に調べることが可能である。
いくつかの実装形態では、次のアクションモデル158は、ユーザによって実行された場合、アクションが実行されるアプリケーションとは異なる別のアプリケーションをクライアントデバイス150にロードさせる次のアクションを決定してもよい。たとえば、ユーザは、ウェブブラウザにおいて実行している第1のウェブアプリケーション内のアカウントデータの要約を閲覧していてもよい。第2のウェブアプリケーションを使用して提示されるより詳細なデータを閲覧するためにユーザは、ウェブブラウザに第2のウェブアプリケーションが実行される異なるウェブページにナビゲートさせるナビゲーションボタンを選択してもよい。別の例では、ユーザインターフェースの選択は、ウェブブラウザに同じウェブページ内に異なるウェブアプリケーションをロードさせてもよい。
次のアクションモデル158を使用して決定された次のアクションがクライアントデバイス150に別のアプリケーションをロードさせる場合、アプリケーション154は、他のアプリケーションのコードを要求してもよく、クライアントデバイス150にクライアントデバイスのバックグラウンドに他のアプリケーションをロードさせてもよい。たとえば、他のアプリケーションがウェブアプリケーションである場合、ウェブアプリケーションのコードを取得し、高速キャッシュ156に記憶することが可能である。他のアプリケーションがモバイルアプリケーションである場合、モバイルアプリケーションをクライアントデバイス150のバックグラウンドにロードすることが可能である。アプリケーション154はまた、予測された次のアクションが実行された場合に提示されるデータを要求することが可能である。このデータも高速キャッシュ156に記憶することが可能である。ユーザが予測された次のアクションを実行する前にアプリケーションをロードし(または、アプリケーションをロードするためのコードを取得し)かつデータを取得することによってアプリケーションをロード(または、提示)することが可能であり、予測された次のアクションが実行されるまでクライアントデバイス150が待機した場合よりも速くデータを提示することが可能である。
いくつかの実装形態では、アプリケーション154は、ユーザインターフェース152において実行することが可能であるアクションのタイプごとに別個の次のアクションモデル158を含むことが可能である。たとえば、アプリケーション154は、アプリケーション154に新しいタブまたはページにナビゲートさせる場所変更アクションのための次のアクションモデルと、ユーザインターフェースにおいて提示されているデータの範囲を変更する範囲変更アクション(たとえば、フィルタリングまたはロールアップのレベル変更)のための別の次のアクションモデルとを含むことが可能である。適切な次のアクションモデルをアクションのタイプのトリガイベントに基づいて選択することが可能である。たとえば、アプリケーション154は、ユーザの日付および時間範囲セレクタユーザインターフェース要素の選択に応答してユーザが選択する可能性が高い日付および時間の範囲を予測するために範囲変更モデルを使用してもよい。いくつかの実装形態では、アプリケーション154は、複数の予測された次のアクションを決定し、ユーザがアクションを実行する前に、複数の予測された次のアクションごとにデータを取得して高速キャッシュ156に記憶するために複数の次のアクションモデルを使用してもよい。たとえば、アプリケーション154は、予測された次の場所変更アクションを決定するために場所変更の次のアクションモデルを使用してもよく、予測された次の範囲変更アクションを決定するために範囲変更の次のアクションモデルを使用してもよい。次いで、アプリケーション154は、予測された次のアクションの両方のデータを取得して高速キャッシュ156に記憶することが可能である。
データ配信システム110は、データの要求を受信し、その要求に応じてデータを提供するフロントエンドサーバ112を含む。たとえば、フロントエンドサーバ112は、クライアントデバイス150のアプリケーション154からデータの要求を受信してもよい。要求は、次のアクションモデル158を使用して決定された予測された次のアクションに基づいて、次のアクションデータの要求を含むことが可能である。
フロントエンドサーバ112は、要求をデータ管理サーバ116に提供することが可能である。データ管理サーバ116は、アプリケーションデータストレージデバイス124(たとえば、ハードドライブ、フラッシュメモリなど)から適切なデータを取得し、そのデータをフロントエンドサーバ112に提供することが可能である。次に、フロントエンドサーバ112は、データ通信ネットワーク130を介して要求を受信したクライアントデバイス150にデータを送信することが可能である。
データ管理サーバ116は、クライアントデバイス150のアプリケーション154などのアプリケーション用のデータを管理することが可能である。データ管理サーバ116は、アプリケーション開発者から、アプリケーションによって表示されるデータを集約するサーバから、または他のソースからデータを受信し、そのデータをアプリケーションデータストレージデバイス124に記憶してもよい。
データ配信システム110は、次のアクション予測サーバ114も含む。次のアクション予測サーバ114は、次のアクションモデル158を生成することと、次のアクションモデル158を更新することと、次のアクションモデル158のパフォーマンスを監視することと、および/またはアプリケーション154に対する予測された次のアクションを決定することとを行うことが可能である。
次のアクション予測サーバ114は、アクションデータストレージデバイス120に記憶されたアクションデータに基づいて次のアクションモデルを生成することが可能である。アクションデータは、アプリケーション154の特定のユーザインターフェース152について、ユーザインターフェース152において実行されたアクションを指定することが可能である。アクションデータはまた、アクションが発生したときにユーザインターフェース152のコンテキスト指定することが可能である。たとえば、アクションデータは、アプリケーション154のユーザインターフェース152において実行される(潜在的なアクションのセットの)アクションごとに、アクションが実行されたときに提示されたユーザインターフェースを識別するデータと、アクションが実行されたときのユーザインターフェースの1つまたは複数の属性とを含むことが可能である。上述したように属性は、提示されているデータのタイプ、データが属するグループ、データの特徴、データのロールアップレベル、現在提示されているアプリケーションのタブ、ユーザインターフェースのステータス、および/またはユーザインターフェースによって提示されているユーザインターフェースまたはデータの他の適切な属性を含むことが可能である。アクションデータはまた、アプリケーションのユーザインターフェース152において実行されるアクションごとに、アクションが実行された時刻および/またはアクションを実行したユーザの一意の匿名の識別子を含むことが可能である。
アプリケーション154は、アプリケーション154のユーザインターフェース152において実行されるアクションの検出に応答して、アクションデータをフロントエンドサーバ112に送信するように構成することが可能である。たとえば、特定のデータのセットを特定の日付および時間範囲にフィルタリングするためにユーザがアプリケーションのユーザインターフェース152のフィルタリング要素を使用する場合、アプリケーション154は、ユーザに対するフィルタリングを実行し、フィルタリングされたデータをユーザインターフェース152に提示することが可能である。アプリケーション154はまた、たとえば日付および時間範囲、特定のデータのセットの属性(たとえば、データが属するグループ、データのタイプ、データが属するアカウントなど)、アクションが実行されたユーザインターフェース152の属性、アクションが実行された時刻、およびユーザまたはユーザデバイス150の一意の識別子を指定するアクションデータをフロントエンドサーバ112に送信することが可能である。フロントエンドサーバ112は、アクションデータを次のアクション予測サーバ114に送信することが可能であり、次のアクション予測サーバ114は、アクションデータストレージデバイス120にアクションデータを記憶することが可能である。アプリケーション154は、アクションが実行された後に、および/または定期的に、アクションごとのアクションデータを送信することが可能である。
次のアクション予測サーバ114は、アプリケーション154に対する1つまたは複数の次のアクションモデル158を生成し、次のアプリケーションモデルを次のアクションモデルのデータストレージデバイス118に記憶することが可能である。アプリケーション154は、アプリケーション154がクライアントデバイス150における予測された次のアクションを決定することが可能であるようにその次のアクションモデル158も含むことが可能である。以下でより詳細に説明されるように次のアクション予測サーバ114は、アプリケーション154の予測された次のアクションを決定するために次のアクションモデル158を使用してもよい。
次のアクション予測サーバ114は、アクションデータストレージデバイス120に記憶されたアプリケーション154のアクションデータに基づいて、アプリケーション154の次のアクションモデル158を生成することが可能である。上述したように次のアクションモデル158は、ユーザインターフェースのユーザインターフェースコンテキストに基づいて実行されるアクションの確率を指定することが可能である。この例では、次のアクション予測サーバ114は、ユーザインターフェースコンテキストごとに各アクションが発生した回数に基づいて、アクションの確率を決定することが可能である。たとえば、アプリケーション154のユーザインターフェースが特定のユーザインターフェースコンテキストを有し、ユーザインターフェースが特定のユーザインターフェースコンテキストを有する場合に合計100のアクションがユーザインターフェースにおいて実行されたときに、特定のアクションが10回発生した場合、特定のアクションの確率は10%(10/100)になる場合がある。
いくつかの実装形態では、より最近のアクションは、アクションの確率を決定する際により高い重みを与えられる。たとえば、アクションの重みは時間の経過とともに減衰する場合がある。このようにして、より普及しているより最近のアクション(たとえば、特定の期間内により頻繁に発生したアクション)は、アクションが予想される次のアクションである可能性のある高い確率を有することが可能である。いくつかの実装形態では、特定のアクションの確率は、次の関係を使用して受信されている新しいアクションのデータに基づいて更新される。
関係(1) ρ=(1-α)ρ+α
関係(2) ρ=(1-α)ρ
この例の場合、(ρ)は特定のアクションが実行される確率であり、(α)は重みの減少の程度である。この例では、特定のアクションが実行された場合、関係(1)を使用して特定のアクションが発生する確率が更新される。特定のアクションが実行されなかった場合、確率は関係(2)を使用して更新される。これらの関係を使用すると、n番目の最新のアクションは(1-α)nの重みを持つ。
上述したようにアプリケーション154は、ユーザ特有の次のアクションモデル158と、複数のユーザに対する一般的な次のアクションモデルとを有することが可能である。特定のユーザのユーザ特有の次のアクションモデルは、特定のユーザのアクションデータを使用して生成および更新されてもよい。一般的な次のアクションモデルは、複数の異なるユーザのアクションデータを使用して生成および更新されてもよい。
いくつかの実装形態では、次のアクション予測サーバ114は、次のアクションモデル158に影響を及ぼす新しいアクションデータが受信されるたびに次のアクションモデル158を更新する。次いで、次のアクション予測サーバ114は、更新された次のアクションモデル158をクライアントデバイス150においてアプリケーション154に送信することが可能である。
いくつかの実装形態では、次のアクション予測サーバ114は、異なるタイプのアクションに対する次のアクションモデル158を生成する。たとえば、上述したようにアプリケーション154は、異なるタイプのアクションに対する別個の次のアクションモデルを有することが可能である。この例では、次のアクション予測サーバ114は、それらのタイプのアクションに対するアクションデータを使用して、特定のタイプのアクションに対する次のアクションモデルを生成することが可能である。たとえば、次のアクション予測サーバ114は、ユーザインターフェースが特定のコンテキストを有する場合に特定のアクションが実行された回数と、およびユーザインターフェースが特定のコンテキストを有する場合に実行された特定のタイプのアクションの総数とに基づいて、特定のタイプの特定のアクションの確率を決定してもよい。
次のアクション予測サーバ114はまた、アクションデータストレージデバイス120に記憶されたアクションデータを使用する機械学習技法を使用して予測モデルを訓練することが可能である。たとえば、次のアクション予測サーバ114は、現在のユーザインターフェースコンテキストに基づいて次のユーザアクションを予測するためにマルコフ連鎖を生成してもよい。マルコフ連鎖は、各アクションの確率が現在のユーザインターフェースの状態(たとえば、コンテキスト)に依存する、可能性のあるアクションのシーケンスを使用するモデルである。
いくつかの実装形態では、次のアクション予測サーバ114は、アプリケーションのユーザの予測された次のアクションを決定するために次のアクションモデル158を使用する。たとえば、アプリケーション154は、ユーザインターフェースコンテキストを決定し(たとえば、ユーザインターフェース152の1つまたは複数の属性を識別し)、次のアクションデータの要求をフロントエンドサーバ112に送信してもよい。要求は、ユーザインターフェースコンテキストの1つまたは複数の属性を含むことが可能である。次のアクション予測サーバ114は、ユーザインターフェースコンテキストに基づいて1つまたは複数の予測された次のアクションを決定するために次のアクションモデルデータストレージデバイス118から適切な次のアクションモデル158を識別し、次のアクションモデル158を使用することが可能である。たとえば、次のアクション予測サーバ114は、アプリケーション154に対する次のアクションモデル158を識別することが可能である。アプリケーション154がユーザ特有の次のアクションモデルを有する場合、次のアクション予測サーバ114は、要求が受信されたクライアントデバイス150のアプリケーションおよびユーザに対する次のアクションモデルを識別することが可能である。
次のアクション予測サーバ114は、予測された次のアクションを指定するデータをデータ管理サーバ116に提供することが可能である。データ管理サーバ116は、ユーザが予測された次のアクションを実行し、そのデータをフロントエンドサーバ112に提供する場合、クライアントデバイス150において提示されるデータを識別することが可能である。次に、フロントエンドサーバ112は、クライアントデバイス150にデータを提供することが可能であり、クライアントデバイス150は、高速キャッシュ156にデータを記憶することが可能である。
次のアクション予測サーバ114はまた、次のアクションモデルのパフォーマンスメトリックを維持し、パフォーマンスメトリックをパフォーマンスデータストレージデバイス122に記憶することが可能である。次のアクションモデルのメトリックは、次のアクションモデルの予測精度、次のアクションモデルのキャッシュヒット率、および/または次のアクションモデルのユーザアクションレイテンシを含むことが可能である。次のアクションモデルの予測精度は、次のアクションモデルが、ユーザがその後に実行したアクションを予測した回数と、次のアクションモデルによって行われた予測の総数との比に基づくことが可能である。次のアクションモデルのキャッシュヒット率は、予測された次のアクションを決定するために次のアクションモデルが使用されたユーザアクションに応答するために必要なデータが高速キャッシュ158内で見つかった回数と、予測された次のアクションを決定するために次のアクションモデルが使用されたユーザアクションに応答してデータが要求された総回数との間の比に基づくことが可能である。ユーザアクションレイテンシは、ユーザによって知覚されたアクションのレイテンシを示すことが可能である。たとえば、ユーザアクションレイテンシは、ユーザがアクションを実行する(たとえば、タブを選択するか、またはフィルタリング基準を提出する)時間から、新しいまたは更新されたデータがクライアントデバイス150においてレンダリングされる時間までのレイテンシを示すことが可能である。この時間は、次のアクションモデルの総ユーザアクションレイテンシを決定するために次のアクションモデルの複数の使用のために測定および集約(たとえば、平均化)することが可能である。
図2は、データが提示される例示的なユーザインターフェース200を示す。例示的なユーザインターフェース200は、ウェブブラウザに提示されているものとして示される。ユーザインターフェース200はまた、モバイルアプリケーションに提示することが可能である。
ユーザインターフェース200は、ユーザが、提示のためのデータのグループ、たとえば特定のキャンペーンまたはアカウントを選択することを可能にするグループメニュー210を含む。たとえば、ユーザは、マウスを使用してグループをクリックするか、グループの場所においてタッチスクリーンデバイスをタッチすることによってグループを選択することが可能である。グループの選択は、ユーザインターフェース200を生成し提示するアプリケーションのための次のアクションモデルによって予測される次のアクションとすることが可能である。さらに、データが提示されるグループは、ユーザインターフェース200のユーザインターフェースコンテキストを定義する属性とすることが可能である。たとえば、グループ2のデータを閲覧するユーザは通常、特定のタイプのデータを閲覧してもよい。この例では、グループ2のデータが提示されているとき、予測された次のアクションが特定のタイプのデータの選択であることを決定するために次のアクションモデルが使用されてもよく、アプリケーションは、グループ2の特定のタイプのデータをプリキャッシュしてもよい。
ユーザインターフェース200はまた、ユーザが提示されるグループのデータのタイプを選択することを可能にするデータタイプメニュー215を含む。選択されたデータタイプのデータおよび選択されたグループのデータは表示領域205に提示される。上述したようにデータタイプの選択は、次のアクションモデルを使用して予測される次のアクションであってもよい。提示されるデータのタイプはまた、ユーザインターフェース200のユーザインターフェースコンテキストを定義する属性とすることが可能である。
ユーザインターフェース200はまた、ユーザが、表示領域205に提示されるデータの日付および時間範囲を選択することを可能にする日付および時間範囲セレクタ220を含む。この例では、選択した日付および時間範囲は2016年11月1日〜2016年11月30日である。表示領域205に提示されるデータは、選択された日付および時間範囲に関連するデータのみが提示されるようにフィルタリングされてもよい。ユーザインターフェース200は、データの値または他のフィルタリング基準に基づいてフィルタリングするためのフィルタリング要素などの他のフィルタリング要素を含むことが可能である。
特定の(または関連のある)日付および時間範囲の選択は、次のアクションモデルによって決定される次のアクションであってもよい。たとえば、ユーザはしばしば、特定のタイプのデータを閲覧するときに、前月のデータを閲覧する場合がある。この例では、特定のタイプのデータは、次のアクションは前月のデータの選択であることを次のアクションモデルが予測することを可能にするユーザインターフェースコンテキストの属性である。それに応答して、アプリケーションは、たとえば選択されたグループのために特定のデータタイプの前月のデータをプリキャッシュすることが可能である。さらに、日付および時間範囲セレクタ220の選択は、アプリケーションに予測された次のアクションを決定させるトリガイベントであってもよい。たとえば、アプリケーションは、日付および時間範囲セレクタ220が選択された時点で提示されているデータのグループおよびデータタイプを考慮して、どの次のアクションが最も高い確率を有するかを決定するために次のアクションモデルにアクセスし、次のアクションモデルを使用してもよい。このようにして、ユーザが日付および時間範囲セレクタ220を使用して所望の日付および時間範囲を指定している間にデータをプリキャッシュすることが可能である。
別のトリガイベントは、ユーザによって入力されたカスタム日付および時間であってもよい。たとえば、ユーザインターフェース要素は、ユーザが、カスタム日付および時間を指定し、カスタム日付および時間に基づいてデータをフィルタリングするために何らかのボタンを選択することを可能にしてもよい。この例では、アプリケーションは、予測された次のアクションは、ユーザが、データをフィルタリングするためにボタンを選択することであると決定することが可能である。それに応答して、アプリケーションは、ユーザがボタンを選択する前に、入力された日付および時間のデータの要求を送信することが可能である。
ユーザインターフェース200はまた、ユーザが、表示領域205に提示されたデータの時間ベースのロールアップレベルを選択することを可能にするロールアップレベルセレクタ225を含む。たとえば、ロールアップレベルセレクタ225は、1日ごとのデータ、月ごとのデータ、または年ごとのデータが表示領域205に提示されることを可能にしてもよい。特定のロールアップレベルの選択は、次のアクションモデルを使用して決定される予測された次のアクションであってもよい。たとえば、ユーザは通常、日付および時間範囲が少なくとも1カ月であるが3カ月未満である場合、1日ごとのデータを閲覧してもよい。この例では、選択された日付および時間範囲は、ユーザが実行する可能性が高い予測されたアクションが1日ごとのロールアップレベルの選択であることを決定するために次のアクションモデルが使用されることを可能にするユーザインターフェースコンテキストの属性である。
アプリケーションは、選択されたグループ、選択されたデータタイプ、選択された日付および時間範囲、ならびに選択されたロールアップレベルのうちの1つまたは複数に基づいて、予測された次のアクションを決定するために次のアクションモデルを使用してもよい。ユーザがユーザインターフェースにおいて異なる選択を行うと、ユーザが予測された次のアクションを実行する前にユーザが予測された次のアクションを実行する場合、後続の予測される次のアクションを決定し、ユーザがユーザインターフェース200に提示されるデータをプリキャッシュするためにアプリケーションは、更新されたユーザインターフェースコンテキストおよび次のアクションモデルを使用することが可能である。
図3は、予測された次のアクションを決定し、予測された次のアクションに対する次のアクションデータをプリキャッシュするための例示的なプロセス300のフローチャートである。プロセス300の動作は、たとえば図1のクライアントデバイス150などの1つまたは複数のデータ処理装置を含むシステムによって実装することが可能である。プロセス300はまた、コンピュータ記憶媒体に記憶された命令によって実装することが可能であり、データ処理装置を含むシステムによる命令の実行は、データ処理装置にプロセス300の動作を実行させる。
本システムは、提示されているユーザインターフェースのユーザインターフェースコンテキストを決定する(302)。たとえば、ユーザインターフェースは、アプリケーション(たとえば、ウェブアプリケーションまたはモバイルアプリケーション)によって生成され提示されてもよい。ユーザインターフェースコンテキストは、提示されているデータのタイプ、データが属するグループ、データの特徴、データのロールアップレベル、現在提示されているアプリケーションのタブ、ユーザインターフェースのステータスなどのユーザインターフェースの1つまたは複数の属性、および/あるいはユーザインターフェースによって提示されるユーザインターフェースまたはデータの他の適切な属性によって定義されてもよい。
本システムは、ユーザインターフェースコンテキストに基づいて予測されたユーザアクションを決定する(304)。予測されたユーザアクションは、アプリケーションのユーザがユーザインターフェースコンテキストに基づいてユーザインターフェースにおいて実行する可能性のあるアクションであってもよい。たとえば、予測されたユーザアクションは、ユーザによって実行される少なくとも1つのしきい値確率を有するアクションであってもよい。別の例では、予測されたユーザアクションは、ユーザインターフェースにおいて実行することが可能である複数の可能なユーザアクションの中で最も高い確率を有するユーザアクションであってもよい。
いくつかの実装形態では、本システムは、予測された次のアクションを決定するために次のアクションモデルを使用する。たとえば、次のアクションモデルは、アクションセットのアクションごとに、ユーザインターフェースコンテキストに基づいてアクションが実行される確率を指定してもよい。特定の例では、次のアクションモデルは、ユーザインターフェースが特定のタブとは異なる第2のタブの提示を含み、また特定のデータのグループを含むコンテキストを有する場合、特定のタブにナビゲートするユーザアクションは10%の確率を有すると指定してもよい。次のアクションモデルはまた、ユーザインターフェースが、異なるデータのグループを含む第3のタブの提示を含むコンテキストを有する場合、特定のタブにナビゲートするユーザアクションが20%の確率を有すると指定してもよい。
いくつかの実装形態では、本システムは、データをプリキャッシュするための複数の予測された次のアクションを選択してもよい。たとえば、複数の予測された次のアクションは、ユーザによって実行される少なくとも1つのしきい値確率を有してもよい。別の例では、本システムは、最も高い確率を有する指定された数のアクションを選択してもよい。このように本システムは、ユーザがアクションを実行する前に、ユーザのためにデータを取得し、プリキャッシュする可能性がより高い。
本システムは、データ通信ネットワークを介して、ユーザが予測された次のアクションを実行することに応答して提示される次のアクションデータの要求を送信する(306)。本システムは、図1のデータ配信システム110などのデータ配信システムに要求を送信してもよい。たとえば、本システムは、ユーザが予測された次のアクションを実際に実行した場合にシステムが要求するデータを指定する要求を送信してもよい。別の例では、本システムは、ユーザが予測された次のアクションを実行することに応答して提示されるデータではなく、またはそれに加えてアクションを指定する要求を送信してもよい。この例では、データ配信システム110は、予測された次のアクションに基づいて適切なデータを識別することが可能である。
本システムは、データ通信ネットワークを介して次のアクションデータを受信する(308)。たとえば、本システムは、図1のデータ配信システム110からデータを受信してもよい。
本システムは、次のアクションデータをシステムのキャッシュに記憶する(310)。たとえば、本システムは、本システムが次のアクションデータを記憶する高速キャッシュ、または本システムにとってローカルな他のメモリストレージを含んでもよい。ローカルメモリに次のアクションデータを記憶することによってシステムがネットワークを横切る要求、および次のアクションデータが到着することを待つ必要がないので、ユーザが予測された次のアクションを実際に実行する場合、次のアクションデータをより迅速に提示することが可能である。
本システムは、ユーザインターフェースにおいて予測された次のアクションの発生を検出する(312)。たとえば、ユーザインターフェースは、システムによって実行されているアプリケーションによって提示されてもよい。アプリケーションは、ユーザインタラクションの検出に応答して、ユーザインターフェースとのユーザインタラクションを監視し、たとえばデータを更新する、異なるタブにナビゲートするなどのアクションを実行することが可能である。
本システムは、予測された次のアクションの発生を検出することに応答して、キャッシュから次のアクションデータを取得する(314)。たとえば、本システムは、ネットワークを介して別の要求を送信することなしにシステムのキャッシュから次のアクションデータを取得してもよい。
本システムは、次のアクションデータを提示するためにユーザインターフェースを更新する(316)。たとえば、予測された次のアクションが異なるタブにナビゲートすることであり、ユーザが異なるタブを選択した場合、本システムは、ユーザインターフェースを異なるタブにナビゲートし、異なるタブ内の次のアクションデータを提示してもよい。別の例では、予測された次のアクションが特定の日付および時間範囲にデータをフィルタリングすることである場合、本システムは、フィルタリングされたデータをユーザインターフェースに提示してもよい。
図4は、予測された次のアクションを決定し、予測された次のアクションに対する次のアクションデータをプリキャッシュするための例示的なプロセス400のフローチャートである。プロセス400の動作は、たとえば図1のデータ配信システム110などの1つまたは複数のデータ処理装置を含むシステムによって実装することが可能である。プロセス400はまた、コンピュータ記憶媒体に記憶された命令によって実装することが可能であり、データ処理装置を含むシステムによる命令の実行は、データ処理装置にプロセス400の動作を実行させる。
本システムは、クライアントデバイスに次のアクションデータの要求を受信する(402)。たとえば、本システムは、クライアントデバイス上で実行中のアプリケーションによって生成されたユーザインターフェースを提示しているクライアントデバイスから要求を受信してもよい。クライアントデバイスは、たとえばトリガイベントの検出に応答して、データ通信ネットワークを介してシステムに要求を送信してもよい。トリガイベントは、フィルタユーザインターフェース要素(たとえば、日付および時間範囲セレクタ)、ロールアップレベルのユーザインターフェース要素、アドレスバーを選択すること、データ上のポインタ(たとえば、カーソル)をホバリングすること、または別の適切なイベントを含んでもよい。
別の例では、クライアントデバイスは、トリガイベントを検出することなしに要求を送信してもよい。たとえば、クライアントデバイスは、ユーザインターフェースが更新されるたびに要求を送信してもよい。この例では、クライアントデバイスは、ユーザが閲覧するユーザインターフェースごとに予測された次のアクションを決定することによってユーザの一歩先にとどまることを試みることが可能である。
要求は、ユーザインターフェースコンテキストを定義するユーザインターフェースコンテキストデータを含むことが可能である。たとえば、要求は、ユーザに提示されているユーザインターフェースの1つまたは複数の属性を指定するデータを含むことが可能である。
本システムは、ユーザインターフェースコンテキストデータに基づいて、クライアントデバイスのユーザがユーザインターフェースにおいて実行する予測された次のアクションを決定する(404)。たとえば、上述したように本システムは、ユーザインターフェースコンテキストデータに基づいてユーザのための1つまたは複数の予測された次のアクションを決定するために次のアクションモデルを使用することが可能である。
本システムは、予測された次のアクションの次のアクションデータを識別する(406)。予測された次のアクションのための次のアクションデータは、ユーザが予測された次のアクションを実際に実行した場合にクライアントデバイスによって提示されるデータを含む。
本システムは、次のアクションデータをクライアントデバイスに提供して、クライアントデバイスのキャッシュに記憶する(408)。クライアントデバイスは、次のアクションデータをキャッシュに記憶することが可能である。クライアントデバイスが、予測された次のアクションが実行されたことを検出した場合、クライアントデバイスは、キャッシュからデータを取得し、そのデータをユーザに提示することが可能である。
図5は、予測された次のアクションを決定するために使用される予測モデルのパフォーマンスメトリックを維持するための例示的なプロセス500のフローチャートである。プロセス500の動作は、たとえば図1のデータ配信システム110などの1つまたは複数のデータ処理装置を含むシステムによって実装することが可能である。プロセス500はまた、コンピュータ記憶媒体に記憶された命令によって実装することが可能であり、データ処理装置を含むシステムによる命令の実行は、データ処理装置にプロセス500の動作を実行させる。
本システムは、ユーザに対する予測された次のアクションを決定するための予測されたモデルを選択する(502)。いくつかの実装形態では、本システムは、アプリケーションによって生成され提示されたユーザインターフェースにおいてユーザによって実行されるアクションの数に基づいて次のアクションモデルを選択する。たとえば、ユーザがしきい値数未満のアクションを実行した場合、ユーザがアプリケーションのためのユーザ特有の次のアクションモデルを生成するために十分なデータを本システムが有していない可能性があるので、本システムは、複数のユーザによって実行されるアクションに基づいて生成される一般的な次のアクションモデルを選択してもよい。
いくつかの実装形態では、本システムは、次のアクションモデルのための1つまたは複数のパフォーマンスメトリックに基づいて次のアクションモデルを選択する。たとえば、本システムは、最も高い予測精度、最も高いキャッシュヒット率、および/または最も低いユーザアクションレイテンシを有する次のアクションモデルを選択してもよい。
本システムは、予測された次のユーザアクションを決定し、予測された次のユーザアクションに基づいてデータを取得するために選択された次のアクションモデルを使用する(504)。たとえば、本システムは、予測された次のアクションのためのデータをサーバから取得し、そのデータをクライアントデバイスのキャッシュに記憶してもよい。
本システムは、予測された次のアクションがユーザによって実行されたかどうかを判定する(506)。たとえば、本システムは、次のユーザアクションが実行されたかどうかを示すユーザインターフェースが提示されているクライアントデバイスからデータを受信してもよい。本システムはまた、ユーザが実行したアクションのデータがクライアントデバイスのキャッシュ内で見つかったかどうかを示すデータ、および/またはユーザの実行されたアクションに応答してデータを提示する際のレイテンシを示すデータを受信してもよい。
本システムは、選択された次のアクションモデルのパフォーマンスメトリックを更新する(508)。たとえば、本システムは、受信したデータに基づいて、次のアクションモデルのパフォーマンス精度、キャッシュヒット率、および/またはユーザアクションレイテンシを更新してもよい。
本明細書に記載される主題および動作の実施形態は、本明細書に開示された構造およびそれらの構造的均等物を含むデジタル電子回路、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することが可能である。本明細書に記載される主題の実施形態は、データ処理装置によって実行されるか、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして実装することが可能である。代替的または追加的に、プログラム命令は、データ処理装置による実行のための適切なレシーバ装置への送信のために情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば機械生成電気信号、光学信号、または電磁信号上で符号化することが可能である。コンピュータ記憶媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであってもよく、あるいはそれらに含まれてもよい。さらに、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号において符号化されたコンピュータプログラム命令のソースまたは宛先とすることが可能である。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)とすることが可能であり、またはそれらに含まれることが可能である。
本明細書に記載される動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶されたデータ、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することが可能である。
「データ処理装置」という用語は、例としてプログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または前述のものの複数のもの、あるいはそれらの組合せを含むデータを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。本装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことが可能である。本装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、たとえばプロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、あるいはそれらのうちの1つまたは複数の組合せを含むことが可能である。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することが可能である。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含むあらゆる形式のプログラミング言語で記述することが可能であり、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクトとして、またはコンピューティング環境における使用に適した他のユニットを含むあらゆる形式で展開することが可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、必ずしも対応する必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書に記憶された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")、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントとサーバを含むことが可能である。クライアントとサーバは、一般に互いに遠隔であり、典型的には通信ネットワークを通じて相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、相互にクライアント-サーバ関係を有するコンピュータプログラムにより生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的で)データ(たとえば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信することが可能である。
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは発明の範囲または請求可能な範囲の限定として解釈されるべきものではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明される特定の特徴はまた、単一の実施形態において組み合わせて実装することが可能である。逆に、単一の実施形態の文脈において記載されている様々な特徴はまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することが可能である。さらに、特徴は、特定の組合せにおいて作用するものとして上述されており、当初はそのように主張されているものであっても、場合によっては請求された組合せからの1つまたは複数の特徴を組合せから切り出すことが可能であり、請求された組合せをサブコンビネーションまたはサブコンビネーションのバリエーションに導くことが可能である。
同様に、図面において動作は特定の順序で示されているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序どおりに、または逐次的な順序で実行されること、または図示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスク処理と並列処理が有利な場合がある。さらに、上述の実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載されたプログラム構成要素およびシステムは、一般に単一のソフトウェア製品に一緒に統合することが可能であるか、または複数のソフトウェア製品にパッケージ化することが可能であることが理解されるべきである。このように主題の特定の実施形態について説明した。他の実施形態は、添付の特許請求の範囲内にある。場合によっては、請求項に列挙されたアクションは異なる順序で実行され、依然として望ましい結果を達成することが可能である。さらに、添付の図面に示されるプロセスは、望ましい結果を達成するために示された特定の順序または逐次的な順序を必ずしも必要としない。特定の実装形態では、マルチタスク処理と並列処理が有利な場合がある。
100 例示的な環境
110 データ配信システム
112 フロントエンドサーバ
114 次のアクション予測サーバ
116 データ管理サーバ
118 次のアクションモデルのデータストレージデバイス
120 アクションデータストレージデバイス
122 パフォーマンスデータストレージデバイス
124 アプリケーションデータストレージデバイス
130 データ通信ネットワーク
150 クライアントデバイス
152 ユーザインターフェース
154 アプリケーション
156 高速キャッシュ
158 次のアクションモデル
200 ユーザインターフェース
205 表示領域
210 グループメニュー
215 データタイプメニュー
220 日付および時間範囲セレクタ
225 ロールアップレベルセレクタ
300 例示的なプロセス
400 例示的なプロセス
500 例示的なプロセス

Claims (18)

  1. クライアントデバイスであって、
    1つまたは複数のモバイルアプリケーションのためのユーザインターフェースを提示するディスプレイと、
    前記1つまたは複数のモバイルアプリケーションのためのデータ通信ネットワークを介して受信されたデータを記憶するキャッシュを有するデータストレージデバイスと、
    前記データストレージデバイスおよび前記ディスプレイと通信するデータ処理装置であって、
    所与のアプリケーションに関する前記ディスプレイによって提示されている所与のユーザインターフェースのユーザインターフェースコンテキストを決定することであって、前記所与のユーザインターフェースの前記ユーザインターフェースコンテキストが、(i)前記所与のユーザインターフェースに提示されているデータが属するグループ、または(ii)前記所与のユーザインターフェースに提示されているデータのタイプのうちの少なくとも1つを指定する、決定することと、
    前記ユーザインターフェースコンテキストに基づいて、前記クライアントデバイスのユーザが前記所与のユーザインターフェースにおいて実行する予測された次のアクションを決定することと、
    前記データ通信ネットワークを介してかつ前記予測された次のアクションを検出する前に、前記ユーザが前記予測された次のアクションを実行することに応答して提示される次のアクションデータの要求を送信することと、
    前記データ通信ネットワークを介して、前記次のアクションデータを受信することと、
    前記次のアクションデータを前記キャッシュに記憶することと
    前記次のアクションデータが前記所与のアプリケーションとは異なる第2のアプリケーションによって提示されることを決定することと、
    前記予測された次のアクションを検出する前に、前記第2のアプリケーションを実行するためのコードを取得することと、
    前記コードを前記キャッシュに記憶することと
    を備える動作を実行するデータ処理装置と
    を備える、クライアントデバイス。
  2. 前記動作が、
    前記所与のユーザインターフェースにおいて前記予測されたアクションの発生を検出することと、
    前記キャッシュから前記次のアクションデータを取得することと、
    前記次のアクションデータを提示するために前記ユーザインターフェースを更新することと
    をさらに備える、請求項1に記載のクライアントデバイス。
  3. 前記ユーザインターフェースコンテキストが、前記所与のユーザインターフェースに提示されている前記データのロールアップレベルを指定し、前記ロールアップレベルが、前記データが集約される階層レベルを指定する、請求項1に記載のクライアントデバイス。
  4. 前記予測されたアクションの次のアクションが、前記所与のユーザインターフェースにおいて実行できる可能なアクションのセットの各アクションが前記所与のユーザインターフェースが、前記決定されたユーザインターフェースコンテキストと一致するコンテキストを有した場合の前記ユーザを含む1人または複数のユーザによって実行された回数に基づいて決定される、請求項1に記載のクライアントデバイス。
  5. 前記動作が、前記予測された次のアクションを決定するためのトリガイベントを検出することをさらに備え、前記予測された次のアクションが、前記トリガイベントの検出に応答して決定される、請求項1に記載のクライアントデバイス。
  6. 前記動作が、
    前記ユーザインターフェースコンテキストに基づいて前記予測された次のアクションを決定する予測モデルを取得することと、
    前記予測モデルを予測された次のアクションと確率との間のマッピングに変換することであって、各マッピングが、それぞれの予測された次のアクションと、所与のユーザインターフェースコンテキストに対して発生する前記それぞれの予測された次のアクションの確率との間のマッピングである、変換することと
    をさらに備える、請求項1に記載のクライアントデバイス。
  7. 前記動作が、(i)予測モデルごとの予測精度、(ii)予測モデルごとのキャッシュヒット率、(iii)各予測モデルによって提供されるレイテンシの低減、または(iv)前記所与のユーザインターフェースにおいて前記ユーザによって実行された履歴ユーザインタラクションの数のうちの少なくとも1つに基づいて予測モデルのセットから前記予測モデルを選択することをさらに備える、請求項6に記載のクライアントデバイス。
  8. 1つまたは複数のアプリケーションのためのデータを記憶する1つまたは複数のデータストレージデバイスと、
    次のアクションデータの要求を受信し、前記要求に応答して前記次のアクションデータを提供する1つまたは複数のフロントエンドサーバと、
    前記1つまたは複数のフロントエンドサーバおよび前記1つまたは複数のデータストレージデバイスと通信する1つまたは複数のバックエンドサーバであって、
    前記1つまたは複数のフロントエンドサーバから、所与のクライアントデバイスから受信された次のアクションデータに対する所与の要求を受信することであって、前記要求が、(i)前記所与のクライアントデバイスの所与のユーザインターフェースに提示されているデータが属するグループ、または(ii)前記所与のユーザインターフェースに提示されているデータのタイプのうちの少なくとも1つを指定するユーザインターフェースコンテキストデータを含む、受信することと、
    前記ユーザインターフェースコンテキストデータに基づいて、前記所与のクライアントデバイスのユーザが前記所与のユーザインターフェースにおいて実行する予測された次のアクションを決定することと、
    前記1つまたは複数のデータストレージデバイスにおいて、前記予測された次のアクションの次のアクションデータを識別することと、
    前記識別された次のアクションデータを前記所与のクライアントデバイスへの送信のために前記1つまたは複数のフロントエンドサーバに提供することであって、前記所与のクライアントデバイスが、前記識別された次のアクションデータを前記所与のクライアントデバイスのキャッシュに記憶する、提供することと
    前記次のアクションデータが前記所与のアプリケーションとは異なる第2のアプリケーションによって提示されることを決定することと、
    前記予測された次のアクションを検出する前に、前記所与のクライアントデバイスに、前記第2のアプリケーションを実行するためのコードを送信することであって、前記所与のクライアントデバイスが前記コードを前記キャッシュに記憶する、送信することと
    を備える動作を実行する1つまたは複数のバックエンドサーバと、
    を備える、システム。
  9. 前記所与のクライアントデバイスが、
    前記所与のユーザインターフェースにおいて前記予測されたアクションの発生を検出することと、
    前記キャッシュから前記次のアクションデータを取得することと、
    前記次のアクションデータを提示するために前記所与のユーザインターフェースを更新することと
    を備える動作を実行する、請求項8に記載のシステム。
  10. 前記ユーザインターフェースコンテキストデータが、前記所与のユーザインターフェースに提示されている前記データのロールアップレベルを指定し、前記ロールアップレベルが、前記データが集約される階層レベルを指定する、請求項8に記載のシステム。
  11. 前記予測されたアクションの次のアクションが、前記所与のユーザインターフェースにおいて実行できる可能なアクションのセットの各アクションが、前記所与のユーザインターフェースが前記決定されたユーザインターフェースコンテキストと一致するコンテキストを有した場合の前記ユーザを含む1人または複数のユーザによって実行された回数に基づいて決定される、請求項8に記載のシステム。
  12. 前記動作が、前記予測された次のアクションを決定するためのトリガイベントを検出することをさらに備え、前記予測された次のアクションが、前記トリガイベントの検出に応答して決定される、請求項8に記載のシステム。
  13. 前記動作が、
    前記ユーザインターフェースコンテキストに基づいて前記予測された次のアクションを決定する予測モデルを取得することと、
    前記予測モデルを予測された次のアクションと確率との間のマッピングに変換することであって、各マッピングが、それぞれの予測された次のアクションと、所与のユーザインターフェースコンテキストに対して発生する前記それぞれの予測された次のアクションの確率との間のマッピングである、変換することと
    をさらに備える、請求項8に記載のシステム。
  14. 前記動作が、(i)予測モデルごとの予測精度、(ii)予測モデルごとのキャッシュヒット率、(iii)各予測モデルによって提供されるレイテンシの低減、または(iv)前記所与のユーザインターフェースにおいて前記ユーザによって実行された履歴ユーザインタラクションの数のうちの少なくとも1つに基づいて予測モデルのセットから前記予測モデルを選択することをさらに備える、請求項13に記載のシステム。
  15. クライアントデバイスによって、所与のアプリケーションに関する前記クライアントデバイスのディスプレイによって提示される所与のユーザインターフェースのユーザインターフェースコンテキストを決定するステップであって、前記所与のユーザインターフェースの前記ユーザインターフェースコンテキストが、(i)前記所与のユーザインターフェースに提示されているデータが属するグループ、または(ii)前記所与のユーザインターフェースに提示されているデータのタイプのうちの少なくとも1つを指定する、ステップと、
    前記クライアントデバイスによって、前記ユーザインターフェースコンテキストに基づいて、前記クライアントデバイスのユーザが前記所与のユーザインターフェースにおいて実行する予測された次のアクションを決定するステップと、
    前記クライアントデバイスによって、データ通信ネットワークを介してかつ前記予測された次のアクションを検出する前に、前記ユーザが前記予測された次のアクションを実行することに応答して提示される次のアクションデータの要求を送信するステップと、
    前記クライアントデバイスによって、前記データ通信ネットワークを介して前記次のアクションデータを受信するステップと、
    前記クライアントデバイスによって、前記次のアクションデータを前記クライアントデバイスのキャッシュに記憶するステップと
    前記次のアクションデータが前記所与のアプリケーションとは異なる第2のアプリケーションによって提示されることを決定するステップと、
    前記予測された次のアクションを検出する前に、前記第2のアプリケーションを実行するためのコードを取得するステップと、
    前記コードを前記キャッシュに記憶するステップと
    を備える、方法。
  16. 前記クライアントデバイスによって、前記所与のユーザインターフェースにおいて前記予測されたアクションの発生を検出するステップと、
    前記クライアントデバイスによって、前記キャッシュから前記次のアクションデータを取得するステップと、
    前記クライアントデバイスによって、前記次のアクションデータを提示するために前記ユーザインターフェースを更新するステップと
    をさらに備える、請求項15に記載の方法。
  17. 前記ユーザインターフェースコンテキストが、前記所与のユーザインターフェースに提示されている前記データのロールアップレベルを指定し、前記ロールアップレベルが、前記データが集約される階層レベルを指定する、請求項15に記載の方法。
  18. 前記予測されたアクションの次のアクションが、前記所与のユーザインターフェースにおいて実行できる可能なアクションのセットの各アクションが、前記所与のユーザインターフェースが前記決定されたユーザインターフェースコンテキストと一致するコンテキストを有した場合の前記ユーザを含む1人または複数のユーザによって実行された回数に基づいて決定される、請求項15に記載の方法。
JP2018542767A 2016-12-28 2017-06-07 将来のアクションのためのユーザインターフェースデータキャッシングの最適化 Active JP6648292B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020003688A JP6989628B2 (ja) 2016-12-28 2020-01-14 将来のアクションのためのユーザインターフェースデータキャッシングの最適化

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/392,894 US10356200B2 (en) 2016-12-28 2016-12-28 Optimizing user interface data caching for future actions
US15/392,894 2016-12-28
PCT/US2017/036294 WO2018125276A1 (en) 2016-12-28 2017-06-07 Optimizing user interface data caching for future actions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020003688A Division JP6989628B2 (ja) 2016-12-28 2020-01-14 将来のアクションのためのユーザインターフェースデータキャッシングの最適化

Publications (2)

Publication Number Publication Date
JP2019514091A JP2019514091A (ja) 2019-05-30
JP6648292B2 true JP6648292B2 (ja) 2020-02-14

Family

ID=59078214

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018542767A Active JP6648292B2 (ja) 2016-12-28 2017-06-07 将来のアクションのためのユーザインターフェースデータキャッシングの最適化
JP2020003688A Active JP6989628B2 (ja) 2016-12-28 2020-01-14 将来のアクションのためのユーザインターフェースデータキャッシングの最適化

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020003688A Active JP6989628B2 (ja) 2016-12-28 2020-01-14 将来のアクションのためのユーザインターフェースデータキャッシングの最適化

Country Status (6)

Country Link
US (3) US10356200B2 (ja)
EP (2) EP3731499A1 (ja)
JP (2) JP6648292B2 (ja)
KR (2) KR102180995B1 (ja)
CN (2) CN113259433B (ja)
WO (1) WO2018125276A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10841425B1 (en) * 2014-09-16 2020-11-17 United Services Automobile Association Systems and methods for electronically predicting future customer interactions
US10656935B2 (en) 2015-10-13 2020-05-19 Home Box Office, Inc. Maintaining and updating software versions via hierarchy
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
US10356200B2 (en) 2016-12-28 2019-07-16 Google Llc Optimizing user interface data caching for future actions
US10706433B2 (en) * 2017-01-25 2020-07-07 Mastercard International Incorporated Individual level learning mechanism
US10698740B2 (en) 2017-05-02 2020-06-30 Home Box Office, Inc. Virtual graph nodes
US11366872B1 (en) * 2017-07-19 2022-06-21 Amazon Technologies, Inc. Digital navigation menus with dynamic content placement
US10346304B2 (en) * 2017-07-25 2019-07-09 Microsoft Technology Licensing, Llc Cache management for multi-node databases
US10511681B2 (en) * 2018-03-02 2019-12-17 Adobe Inc. Establishing and utilizing behavioral data thresholds for deep learning and other models to identify users across digital space
US11640429B2 (en) * 2018-10-11 2023-05-02 Home Box Office, Inc. Graph views to improve user interface responsiveness
US11301780B2 (en) 2019-02-15 2022-04-12 Samsung Electronics Co., Ltd. Method and electronic device for machine learning based prediction of subsequent user interface layouts
KR20200100958A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 어플리케이션을 프리페치하는 전자 장치 및 방법
US11144179B2 (en) 2019-04-12 2021-10-12 Sap Se Next user interaction prediction
GB2583718A (en) * 2019-05-01 2020-11-11 Samsung Electronics Co Ltd Method, apparatus and computer program for updating a cluster probability model
WO2020226667A1 (en) * 2019-05-06 2020-11-12 Google Llc Performing subtask(s) for a predicted action in response to a separate user interaction with an automated assistant prior to performance of the predicted action
EP3942550A1 (en) 2019-05-06 2022-01-26 Google LLC Performing subtask(s) for a predicted action in response to a separate user interaction with an automated assistant prior to performance of the predicted action
KR102283779B1 (ko) * 2019-07-18 2021-07-29 건국대학교 산학협력단 질의 응답 방법 및 이를 수행하는 장치들
US11146656B2 (en) * 2019-12-20 2021-10-12 Tealium Inc. Feature activation control and data prefetching with network-connected mobile devices
WO2021141399A1 (en) * 2020-01-10 2021-07-15 Samsung Electronics Co., Ltd. Method and electronic device for accelerating asset execution
US11481111B2 (en) 2020-04-24 2022-10-25 Microsoft Technology Licensing, Llc Utilization of predictive gesture analysis for preloading and executing application components
US11915047B2 (en) 2020-06-30 2024-02-27 Western Digital Technologies, Inc. Managing storage device compute operations
US11681466B2 (en) * 2020-06-30 2023-06-20 Western Digital Technologies, Inc. Proactive storage operation management
CN111563106A (zh) * 2020-07-14 2020-08-21 成都市映潮科技股份有限公司 一种数据缓存方法、装置、系统及可读存储介质
WO2022039755A1 (en) * 2020-08-21 2022-02-24 Google Llc Data integrity optimization
WO2022108019A1 (en) 2020-11-23 2022-05-27 Samsung Electronics Co., Ltd. Electronic device and method for optimizing user interface of application
CN113268201A (zh) 2021-05-13 2021-08-17 三星(中国)半导体有限公司 基于文件属性的缓存管理方法和装置
US11886891B2 (en) * 2021-09-10 2024-01-30 Sap Se Context-based multiexperience element dynamically generated using natural language processing
CN113849532A (zh) * 2021-09-24 2021-12-28 中国第一汽车股份有限公司 缓存预热方法、装置、计算机设备和存储介质
US20230244361A1 (en) * 2022-02-01 2023-08-03 Servicenow, Inc. Progressive Refresh of User Interface Screens

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6182122B1 (en) * 1997-03-26 2001-01-30 International Business Machines Corporation Precaching data at an intermediate server based on historical data requests by users of the intermediate server
US6154767A (en) * 1998-01-15 2000-11-28 Microsoft Corporation Methods and apparatus for using attribute transition probability models for pre-fetching resources
US6055569A (en) 1998-01-27 2000-04-25 Go Ahead Software Inc. Accelerating web access by predicting user action
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US7904187B2 (en) * 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US20050055426A1 (en) 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US8516114B2 (en) * 2002-03-29 2013-08-20 International Business Machines Corporation Method and apparatus for content pre-fetching and preparation
JP4497944B2 (ja) * 2003-02-05 2010-07-07 キヤノン株式会社 受信装置及び受信装置の制御方法
JP4248529B2 (ja) * 2003-02-25 2009-04-02 パナソニック株式会社 移動体端末
FI116168B (fi) * 2003-03-03 2005-09-30 Flextronics Odm Luxembourg Sa Datan syöttö
US8112605B2 (en) * 2005-05-02 2012-02-07 Commvault Systems, Inc. System and method for allocation of organizational resources
US20080301300A1 (en) 2007-06-01 2008-12-04 Microsoft Corporation Predictive asynchronous web pre-fetch
JP5487969B2 (ja) * 2007-11-02 2014-05-14 日本電気株式会社 情報端末装置及び機能利用方法
US8271413B2 (en) * 2008-11-25 2012-09-18 Google Inc. Providing digital content based on expected user behavior
IL197196A0 (en) 2009-02-23 2009-12-24 Univ Ben Gurion Intention prediction using hidden markov models and user profile
US20110029670A1 (en) * 2009-07-31 2011-02-03 Microsoft Corporation Adapting pushed content delivery based on predictiveness
US8364611B2 (en) * 2009-08-13 2013-01-29 Yahoo! Inc. System and method for precaching information on a mobile device
KR101453743B1 (ko) * 2010-08-16 2014-10-21 에스케이플래닛 주식회사 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치
US8561208B2 (en) * 2011-05-20 2013-10-15 Adobe Systems Incorporated Secure user interface content
WO2013003631A2 (en) * 2011-06-30 2013-01-03 Amazon Technologies, Inc. Remote browsing session management
US20130187753A1 (en) * 2012-01-20 2013-07-25 Research In Motion Limited Predictive Context-Aware Dynamic Lock Screen
US9582603B1 (en) * 2012-02-27 2017-02-28 Amazon Technologies, Inc. Managing preloading of data on client systems
US20130222329A1 (en) 2012-02-29 2013-08-29 Lars-Johan Olof LARSBY Graphical user interface interaction on a touch-sensitive device
US9756108B2 (en) 2012-05-29 2017-09-05 Google Inc. Preloading resources of a web page
US9239794B1 (en) * 2012-06-11 2016-01-19 Google Inc. Managing a prefetch buffer with probabilistic access predictions
US8990143B2 (en) 2012-06-29 2015-03-24 Intel Corporation Application-provided context for potential action prediction
US9836213B2 (en) * 2012-07-27 2017-12-05 Symbol Technologies, Llc Enhanced user interface for pressure sensitive touch screen
US20140053056A1 (en) * 2012-08-16 2014-02-20 Qualcomm Incorporated Pre-processing of scripts in web browsers
US9058324B2 (en) * 2012-09-28 2015-06-16 Intel Corporation Predictive precaching of data based on context
CN103049163B (zh) * 2012-12-28 2016-12-28 华为技术有限公司 用户界面智能显示控制方法和装置
US9542423B2 (en) * 2012-12-31 2017-01-10 Apple Inc. Backup user interface
US9117179B2 (en) 2013-03-11 2015-08-25 International Business Machines Corporation Predicting user activity in social media applications
US10949894B1 (en) * 2013-06-07 2021-03-16 Groupon, Inc. Method, apparatus, and computer program product for facilitating dynamic pricing
US20140373032A1 (en) * 2013-06-12 2014-12-18 Microsoft Corporation Prefetching content for service-connected applications
JP6183099B2 (ja) 2013-09-25 2017-08-23 日本電気株式会社 入力支援装置、入力支援方法及び入力支援プログラム
US20150163258A1 (en) * 2013-12-05 2015-06-11 Facebook, Inc. Indicating User Availability for Communication
US9519408B2 (en) * 2013-12-31 2016-12-13 Google Inc. Systems and methods for guided user actions
US20150188981A1 (en) * 2013-12-31 2015-07-02 Huawei Technologies Co., Ltd. Page processing method, apparatus, and system
US9032321B1 (en) * 2014-06-16 2015-05-12 Google Inc. Context-based presentation of a user interface
US10452992B2 (en) * 2014-06-30 2019-10-22 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
US10963810B2 (en) * 2014-06-30 2021-03-30 Amazon Technologies, Inc. Efficient duplicate detection for machine learning data sets
US9621650B2 (en) * 2014-09-30 2017-04-11 Google Inc Mobile application state identifier framework
CN105577707B (zh) * 2014-10-08 2019-01-11 阿里巴巴集团控股有限公司 一种远程调用方法与设备
US10547711B2 (en) * 2015-03-25 2020-01-28 Vmware, Inc. Using off-screen user interface data during remote sessions
JP2016212595A (ja) 2015-05-07 2016-12-15 Mist Technologies株式会社 サーバ装置、プログラム及び情報処理システム
US10200824B2 (en) * 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10097973B2 (en) * 2015-05-27 2018-10-09 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160357774A1 (en) * 2015-06-05 2016-12-08 Apple Inc. Segmentation techniques for learning user patterns to suggest applications responsive to an event on a device
US10264319B2 (en) * 2015-06-07 2019-04-16 Apple Inc. Priming media applications and presenting primed media application data
EP3106973A1 (en) * 2015-06-16 2016-12-21 Huawei Technologies Co., Ltd. Context-driven adaptive application launcher grid user interface based on random index predictor for mobile devices
US10949822B2 (en) * 2016-03-25 2021-03-16 Stripe Inc. Methods and systems for providing payment interface services using a payment platform
CN105955650A (zh) * 2016-04-29 2016-09-21 努比亚技术有限公司 一种人机交互操作的方法和装置
US10540739B2 (en) * 2016-11-23 2020-01-21 Roku, Inc. Predictive application caching
US10356200B2 (en) 2016-12-28 2019-07-16 Google Llc Optimizing user interface data caching for future actions

Also Published As

Publication number Publication date
KR102300077B1 (ko) 2021-09-08
JP2019514091A (ja) 2019-05-30
KR20180102625A (ko) 2018-09-17
CN108605053A (zh) 2018-09-28
US20180183891A1 (en) 2018-06-28
JP2020074154A (ja) 2020-05-14
EP3731499A1 (en) 2020-10-28
US10560546B2 (en) 2020-02-11
EP3482553B1 (en) 2020-12-23
US20200128097A1 (en) 2020-04-23
KR102180995B1 (ko) 2020-11-19
JP6989628B2 (ja) 2022-01-05
EP3482553A1 (en) 2019-05-15
CN113259433A (zh) 2021-08-13
US11310331B2 (en) 2022-04-19
KR20200130523A (ko) 2020-11-18
WO2018125276A1 (en) 2018-07-05
US20190281128A1 (en) 2019-09-12
CN113259433B (zh) 2024-01-09
CN108605053B (zh) 2021-05-25
US10356200B2 (en) 2019-07-16

Similar Documents

Publication Publication Date Title
JP6648292B2 (ja) 将来のアクションのためのユーザインターフェースデータキャッシングの最適化
US11526653B1 (en) System and method for optimizing electronic document layouts
US20160224682A1 (en) Relevance driven aggregation of federated content items in a social network
US8447652B2 (en) System and method for targeting advertising to a device based on installed applications
CN105988870B (zh) 低触摸操作次数移动设备
JP2020501211A (ja) 電子地図インターフェース
US20110252022A1 (en) Dynamic generation of relevant items
US20230108358A1 (en) Prefetching using dynamic user model to reduce latency
US10331680B2 (en) Ranking of search results
JP2020508527A (ja) ニューラルエピソード制御
EP3262575A1 (en) Displaying content items based on user's level of interest in obtaining content
US20230315491A1 (en) Generating personalized in-application recommendations utilizing in-application behavior and intent
WO2016191053A1 (en) Predictive peer determination for peer-to-peer digital content download
CN107431732B (zh) 一种计算机实现的方法、提供扫描选项的系统和存储介质
JP2024502609A (ja) 学習したユーザコンテキストと対話とに基づいたアンビエント情報、ならびに関連するシステムおよびデバイスの提供
CN117203646A (zh) 用于属性预测的迁移机器学习
JP7223164B2 (ja) データインテグリティの最適化
US20190164171A1 (en) Computing dimensional influence and health scores in non-linear statistical models
CN116991752A (zh) 触发信息生成方法、时序模型生成方法、装置和电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181012

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200115

R150 Certificate of patent or registration of utility model

Ref document number: 6648292

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250