CN108605053A - 优化为未来动作缓存的用户界面数据 - Google Patents
优化为未来动作缓存的用户界面数据 Download PDFInfo
- Publication number
- CN108605053A CN108605053A CN201780000575.5A CN201780000575A CN108605053A CN 108605053 A CN108605053 A CN 108605053A CN 201780000575 A CN201780000575 A CN 201780000575A CN 108605053 A CN108605053 A CN 108605053A
- Authority
- CN
- China
- Prior art keywords
- data
- user interface
- next action
- prediction
- action
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本说明书的主题通常涉及预缓存用于预测的未来动作的数据。在一些实施方式中,客户端设备包括数据处理设备和与数据存储设备和显示器通信的数据处理装置,该数据处理设备具有存储对一个或多个移动应用接收的数据的缓存器。对给定应用确定用于正呈现的给定用户界面的用户界面场境。能基于用户界面场境,确定客户端设备的用户将在给定用户界面处将执行的预测的下一动作。在检测到预测的下一动作前,通过网络传送对于响应于用户执行预测的下一动作而将显现的下一动作数据的请求。能接收下一动作数据并且将其存储在缓存器中。
Description
背景技术
互联网便于在全球的用户之间交互数据和事务。该数据交互使得数据提供者向各种用户提供各种内容。能以各种方式提供该数据,包括在电子文档(例如网页)上以及应用(例如移动应用)内公开数据。通常响应于用户请求——例如,响应于用户选择网页的链接,来向客户端设备提供数据。每一请求花费数据提供者的时间来识别适当的数据并且在互联网上将数据发送给客户端设备。
发明内容
本说明书描述了基于确定——例如预测用户将执行的下一动作,在客户端设备处预缓存数据的系统、方法、设备和其他技术。
通常,在包括呈现用于一个或多个移动应用的用户界面的显示器的客户端设备中,实现在本说明书中的主题的一个创新方面。客户端设备包括数据存储设备,该数据存储设备具有存储通过数据通信网络接收的、用于一个或多个移动应用的数据的缓存器。客户端设备还能包括与数据存储设备和显示器通信的数据处理装置。数据处理装置能对给定应用,确定用于正由显示器呈现的给定用户界面的用户界面场境。用于给定用户界面的用户界面场境能够指定以下至少一个:(i)在给定用户界面中正呈现的数据所属的组,或(ii)在给定用户界面中正呈现的数据的类型。数据处理装置能基于用户界面场境,确定客户端设备的用户将在给定用户界面处执行的预测的下一动作。数据处理装置能在检测到预测的下一动作前,通过数据通信网络传送对于响应于用户执行预测的下一动作而将被呈现的下一动作数据的请求。数据处理装置能通过数据通信网络接收下一动作数据并且将该下一动作数据存储在缓存器中。该方面的其他实施方式包括装置、方法、系统和计算机程序,该计算机程序被编码在计算机存储设备上并且被配置成执行方法的动作。
这些和其他实施方式可选地包括下述特征的一个或多个。在一些方面中,客户端设备的数据处理装置能检测在给定用户界面处该预测的动作的发生;从缓存器获得下一动作数据;以及更新用户界面以呈现该下一动作数据。
在一些方面中,用户界面场境指定在给定用户界面中正呈现的数据的汇总级。汇总级能够指定其中数据被汇集的层级。
在一些方面中,该预测的下一动作是基于以下来确定的:当给定用户界面已经具有与所确定的用户界面场境匹配的场境时,能够在该给定用户界面处被执行的可能动作集中的每一动作已经被包括该用户的一个或多个用户执行的次数。
在一些方面中,客户端设备的数据处理装置能检测用于确定预测的下一动作的触发事件。响应于检测到触发事件,能够确定预测的下一动作。
在一些方面中,客户端设备的数据处理装置能获得基于用户界面场境确定预测的下一动作的预测模型,以及将该预测模型转换成各预测的下一动作与概率之间的映射。每一映射能是相应的预测的下一动作与所述相应的预测的下一动作针对给定用户界面场境而发生的概率之间的映射。
在一些方面中,客户端设备的数据处理装置能基于以下至少一个从预测模型的集合中选择该预测模型:(i)用于每一预测模型的预测精度,(ii)用于每一预测模型的缓存命中率,(iii)由每一预测模型提供的时延(latency)的缩减,或(iv)用户在给定用户界面处执行的历史用户交互的数目。
在一些方面中,客户端设备的数据处理装置能确定下一动作数据将由与给定应用不同的第二应用来呈现。在检测到该预测的下一动作前,数据处理装置能获得用于执行第二应用的代码并且将该代码存储在缓存器中。
在本说明书中所述的本主题的特定实施例能够被实施以便实现下述优点中的一个或多个。通过预缓存响应于用户的下一动作而很可能请求的数据,能够减少获得数据并且将数据呈现给用户的时延,用户的下一动作例如为用户与应用的下一用户交互。通过识别将被用来呈现响应于用户的下一动作而请求的数据的Web应用并且获得用来加载该Web应用的例如为脚本的代码,能够减少加载该Web应用的时延。类似地,通过识别将被用来呈现响应于用户的下一动作而请求的数据的移动应用并且在用户的客户端设备的背景中加载该应用,能够减少加载移动应用的时延。预缓存数据允许客户端设备更快地呈现数据,因为客户端设备不必等待请求穿过网络、服务器识别所请求的数据以及所请求的数据按照其路径到达客户端设备。
本文档中所述的技术实现了对与应用的用户交互的客户端侧评估,以预测在该应用(或另一不同应用)内将执行的即将到来的动作。该预测实现了客户端设备在需要数据前,从服务器请求为支持即将到来的动作而所需的数据,使得当需要该数据时,其已经被存储在客户端设备上。同样地,该技术实现了从第一用户界面实时转变到不同的用户界面,即使到不同用户界面的转变可能要求否则不能足够快地下载以支持实时转变的数据量。在客户端设备的背景中还执行对数据的评估(例如,不中断使用第一用户界面),使得不会降低第一应用的用户体验。此外,本文档中所述的技术利用实时数据(例如,与移动设备的用户交互),在不使用计算设备的情况下将不能获得该实时数据。
在本文档中所述的技术使得高效和有效利用移动设备的有限缓存来改进响应于用户交互而更新(例如具有新的、过滤的或修改的数据)的用户界面之间的转变。使用在本文档中描述的下一动作模型提高了缓存中存储的数据实际被请求的概率。这降低了在用户请求下一用户界面时移动设备必须下载数据以支持用户与用户界面的交互的可能性。
当存在涉及执行移动数据下载的大量建立和拆除动作时,预先执行数据下载节省时间并且减少在移动设备转变到不同用户界面时加在移动设备上的需求,大量建立和拆除动作包括获得对移动设备的处理器、Wi-Fi或移动网络收发器或其他组件的访问、接收数据和将数据存储在适当位置中。本文所述的技术允许移动设备在下载其他数据的同时下载未来数据,以减少下载数据的次数,并且因此减少了如果移动设备必须多次执行建立和拆除动作则会发生的加在移动设备上的需求。
一些本地应用使用作为应用的一部分的数据以及因此可在移动设备处存储的数据,生成初始用户界面。然而,基于从联网服务器下载的数据,动态地创建初始用户界面和后续用户界面的大部分。由此,流畅使用用户界面要求将数据有效地传送到移动设备。由于硬件和网络约束,如果数据所用于的用户界面还未被请求时就传送所有(或一部分)数据,则可能延迟更新用户界面。
下文参考附图,阐述上述主题的各个特征和优点。另外的特征和优点从本文所述的主题和权利要求中将变得显而易见。
附图说明
图1是数据分发系统将数据分发给客户端设备的示例性环境。
图2图示呈现数据的示例性用户界面。
图3是用于确定预测的下一动作和预缓存用于预测的下一动作的下一动作数据的示例性过程的流程图。
图4是用于确定预测的下一动作以及预缓存用于预测的下一动作的下一动作数据的示例性过程的流程图。
图5是用于保持被用来确定预测的下一动作的预测模型的性能度量的示例性过程的流程图。
具体实施方式
通常,本文所述的系统和技术能通过在用户请求数据前预缓存该数据,减少获得和呈现数据的时延。系统能确定在应用的用户界面处很可能执行的一个或多个预测的下一动作(例如未来动作),应用例如为在移动设备上执行的移动应用或在Web浏览器中执行的Web应用。如果用户真正执行该预测的下一动作并且在用户执行该动作前在用户的客户端设备处预缓存了该数据,则系统能识别将在用户界面中(或在应用转变到其以显示数据的另一用户界面中)呈现的数据。
系统能基于用户界面的场境,确定预测的下一动作。例如,当在用户界面中呈现特定类型的数据时,用户更可能执行特定的动作。用来确定预测的下一动作的用户界面场境数据能包括例如正呈现的数据类型、数据所属的组、数据的汇总级、目前正呈现的应用的标签、用户界面的状态和/或其他适当的场境数据。
系统能基于用户正查看用户界面的动作和/或过去其他用户执行的动作,确定预测的下一动作。例如,对在给定用户界面处能够执行的动作集(例如用户交互),系统能保持动作已经被用户执行的次数。对一个或多个用户界面场境,系统还能保持当用户界面具有与用户界面场境匹配的场境时每一动作被执行的次数。例如,可以通过呈现具有特定数据类型的特定数据组,定义一个用户界面场境。对该用户界面场境,系统能保持当用户界面呈现具有特定数据类型的特定数据组时每一动作被执行的次数的计数。在一些实施方式中,系统能将当用户界面呈现具有特定数据类型的特定数据组时过去被最多执行的一个或多个动作选择为预测的下一动作。
在一些实施方式中,预测的下一动作可以包括使用与目前呈现用户界面的应用不同的应用来呈现数据。在该示例中,系统能预缓存用于将不同应用加载在客户端设备处的代码,以减少如果真正执行预测的下一动作时加载应用的时延。例如,该系统可以预缓存被用来将另一Web应用加载在目前由客户端设备呈现的网页处的脚本,如果又一Web应用将被用来呈现预测的下一动作所需的数据的话。这允许客户端设备在同一网页内(或不同网页内)的Web应用之间流畅且无必要延迟地转变。该系统还能预缓存将在另一Web应用中呈现的数据,以避免为获得数据而对客户端设备的延迟和不必要需求。
在一些实施方式中,在本文档中所述的技术能被用来基于不同于第一设备的第二设备的用户界面的场境,或更常见地基于与第二设备的用户交互,预缓存用于第一设备的应用的数据。例如,用户与人工智能(AI)助理的交互(例如询问人工智能助理的问题或提交给人工智能助理的请求)能被用来识别用户很可能在另一设备处执行的动作和预缓存用于在另一设备处识别的动作的数据。在特定示例中,用户可以询问AI助理特定位置处的运行轨迹。作为响应,系统能确定用户可能访问在可穿戴设备(例如智能手表)或智能电话上的激活的监视应用并且预缓存用于可穿戴设备或智能电话处的激活的监视应用的数据。
跨设备动作预测还能被应用于其他设备,诸如智能车(例如具有车载计算能力的车)、汽车、智能电视、智能仪表和/或其他适当的智能设备。例如,系统可以使用指定用户询问AI助理有关特定饭店的数据来为车载计算设备、车的导航系统或汽车的导航系统的应用预缓存到特定饭店的导航指令。
图1是数据分发系统110将数据分发到客户端设备150的示例性环境100。数据分发系统110能在数据通信网络130,例如,在局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合上,将数据传送到客户端设备150。客户端设备150可以包括智能电话、平板电脑、手提电脑、台式计算机、智能手表和/或其他类型的移动和不移动计算设备。
客户端设备150能包括一个或多个应用154。例如,客户端设备能包括一个或多个移动应用(例如移动apps)。移动应用能是为特定类型的设备或特定平台开发的本地应用。应用154还能包括在Web浏览器中执行的Web应用。Web应用可以包括代码,例如当在Web浏览器中打开包括Web应用的网页时,在Web浏览器中执行并且被下载到客户端设备150的脚本。
每个应用154能生成由客户端设备150的显示器呈现的一个或多个用户界面152。用户界面152能呈现数据和其他内容,诸如图像视频、图片等。用户界面152还能包括使用户能够在应用内(或应用外)进行导航、修改数据、排序数据、过滤数据、请求附加的或不同的数据和/或执行其他适当的动作的用户界面元素。例如,用户界面152可以包括允许用户在显示屏之间导航、修改数据、排序数据、过滤数据等的按钮、图标、滑动条和其他元素。用户界面152可以包括呈现不同数据或不同类型的数据的多个标签。用户能通过选择所需标签,在标签之间导航。在另一示例中,用户界面可以包括允许用户过滤特定日期和时间范围的数据的日期和时间范围选择器。在图2中图示了并且在下文描述了示例性用户界面。出于本文档的目的,概括地论述用户界面。然而,技术能被应用于关于客户端设备的其他数据,诸如客户端设备的状态和/或与该客户端设备的先前交互。此外,如贯穿本文档中所使用的,术语用户界面不限于图形用户界面,而是能包括可听用户界面和其他用户界面。
应用154能在用户界面152中呈现从数据分发系统110接收的数据。数据分发系统110能保持用于一个或多个应用154的数据,并且响应于从客户端设备150接收的请求,将该数据提供给应用154。例如,当客户端设备150加载应用154时,应用154能在网络130上,将请求传送到数据分发系统110。请求能指定将由应用154呈现的数据。此外,用户能使用由应用154生成和呈现的用户界面152来请求附加的或不同的数据。反过来,应用154能从数据分发系统110请求数据。
客户端设备150还包括高速缓冲存储器156。高速缓冲存储器156还包括安装在客户端设备150上的一个或多个高速存储器设备。例如,高速缓冲存储器156能包括静态随机存取存储器(SRAM)和/或动态存储器设备。客户端设备150还能包括其他存储器存储设备,诸如硬盘、闪存等。
高速缓冲存储器156能存储用于应用154的数据,包括客户端设备150的用户还未请求的数据。例如,应用154(或另一专用应用)能确定用户很可能执行的一个或多个预测的下一动作。预测的下一动作可以是至少具有由用户执行的阈值概率的动作。如果用户执行预测的下一动作,则应用154还能从数据分发系统110请求将呈现的数据。应用154能在用户执行预测的下一动作之前,并且无人工干预地传送该请求。例如,应用154能响应于触发事件(例如选择日期和时间范围选择器),自动地确定预测的下一动作,并且响应于确定预测的下一动作,请求该数据。当应用154接收数据时,应用154能将接收到的数据存储在高速缓冲存储器156中,使得如果用户随后执行预测的下一动作,该数据能快速地被呈现。
在一些实施方式中,可以将为预测的下一动作而接收的数据存储在硬盘、闪存或不同于高速缓冲存储器156的一些其他存储器存储设备中。尽管使用这些存储器可能不像使用高速缓冲存储器156一样快,仍然消除或减少在用户已经执行预测的下一动作后通过网络130请求数据的时延。
应用154能使用下一动作模型158来确定对用户的预测的下一动作。在一些实施方式中,下一动作模型158是应用专用的。例如,应用154可以具有相应的下一动作模型158,该下一动作模型158确定对正向其呈现应用154的用户界面152的用户的预测的下一动作。在另一示例中,应用154可以具有对由应用154生成和呈现的每一用户界面152或用户界面152的集合的各自的下一动作模型158。在该示例中,下一动作模型158可以被用来确定对向其呈现下一动作模型的相应的用户界面的用户的预测的下一动作。
在一些实施方式中,应用154能具有用户特定的下一动作模型158。用于应用154的用户特定的下一动作模型能被用来特定用户很可能在应用154的一个或多个用户界面处执行的预测的下一动作。应用154还可以具有被用来确定对于多个用户的预测的下一动作的一般下一动作模型。如下文更详细所述,应用154还基于用户在应用154的用户界面处已经执行的动作的次数,在用户特定的模型和用于特定用户的一般模型之间进行选择。
用于应用154的下一动作模型158能对能够在应用154的用户界面152处执行的动作集中的每一动作,指定该动作将被执行的概率。例如,下一动作模型158可以规定第一动作具有50%的在用户界面152处被执行的概率,而第二动作具有45%的在用户界面152处被执行的概率。在该示例中,应用154可以将具有最高概率的一个或多个下一动作选择为预测的下一动作。如下文更详细所述,由用于应用154的下一动作模型158规定的概率可以基于在应用154的用户界面处执行的先前动作。
基于正呈现给用户的用户界面的场境,用于应用的下一动作模型158可以被用来确定预测的下一动作。能由用户界面的一个或多个属性的集合定义用户界面场境。例如,可以由诸如正呈现的数据的类型(例如性能数据、历史数据、账户数据、内容项分发标准)、数据所属的组(例如数据属于哪一账户)、数据特性(例如,数据所属的账户的大小)、数据的汇总级、当前呈现的应用的标签、用户界面的状态的属性和/或用户界面或由用户界面正呈现的数据的其他适当属性,定义用户界面场境。数据的汇总级能指定数据被汇集的层级。例如,对事件的每一迭代,能够获得性能数据。能每日合计、每周合计、每月合计等汇集该性能数据。在该示例中,每月合计将是比每周合计更高的汇总级,而每周合计将是比每日合计更高的汇总级。
在另一示例中,能在多个不同层级汇集统计。例如,能按游戏级别、季节级和职业级汇集足球运动员的统计。在该示例中,职业级将是比季节级更高的汇总级,而季节级是比游戏级更高的级别。
用于应用154的下一动作模型158能规定对每一用户界面场境(例如,用户界面的一个或多个属性的每一集合),动作集中的每一动作将被执行的概率。当应用154使用下一动作模型来确定预测的下一动作时,应用154能将目前正呈现给用户的用户界面的属性与适当的下一动作模型158(例如,用于用户和/或用户界面的下一动作模型或用于多个用户和/或用户界面的一般下一动作模型)的用户界面场境的属性相比较。应用154能评估由下一动作模型158指定的动作的概率,并且基于概率,将一个或多个动作(例如,具有最高概率的前N个动作)选择为预测的下一动作。然后,应用154能从数据分发系统110请求如果用户执行预测的下一动作的话将由应用154(或另一应用)呈现的数据。当从数据分发系统110接收数据时,应用154能将数据存储在高速缓冲存储器156中。
如果当前用户界面的属性与用于下一动作模型158的用户界面场境的属性匹配,则应用154可以选择与当前用户界面最相似的用户界面场境。例如,应用154可以选择具有最多的在当前用户界面与用户界面场境之间的匹配属性数目的用户界面场境。
在一些实施方式中,用于应用154的下一动作模型158可以包括使用机器学习技术训练的预测模型。例如,当用户界面具有特定场境时,可以使用用户界面的特征(例如属性)和指定由用户执行的动作的历史动作数据,训练下一动作模型158。正呈现给用户的用户界面的属性被应用于预测模型并且预测模型能输出对于动作集中的每一动作的概率。然后,应用154能基于概率,选择预测的下一动作。
在一些实施方式中,可以在客户端设备150处,将预测模型转换成各预测的下一动作和概率之间的映射。每一映射能是相应的预测的下一动作与所述相应的预测的下一动作针对给定用户界面场境而发生的概率之间的映射。以这种方式,相比于在应用154必须将用户界面的属性应用于预测模型的情况下应用154能更快速地查看映射中的概率。
在一些实施方式中,下一动作模型158可以确定这样的下一动作:如果由用户执行该下一动作,则将使客户端设备150加载与执行该动作的应用不同的另一应用。例如,用户可以查看在Web浏览器中执行的第一Web应用中的账户数据的汇总。为查看使用第二Web应用而呈现的更详细数据,用户可以选择使Web浏览器导航至其中执行第二Web应用的不同网页的导航按钮。在另一示例中,选择用户界面可以使Web浏览器在同一网页中加载不同的Web应用。
如果使用下一动作模型158确定的下一动作使客户端设备150加载另一应用,则应用154可以请求用于另一应用的代码或使客户端设备150将另一应用加载在客户端设备的背景中。例如,如果另一应用为Web应用,则能获得用于该Web应用的代码并且将该代码存储在高速缓冲存储器156中。如果另一应用为移动应用,则能将移动应用加载在客户端设备150的背景中。应用154还能请求如果执行预测的下一动作的话将呈现的数据。该数据也能被存储在高速缓冲存储器156中。通过在用户执行预测的下一动作前,加载应用(或获得用于加载应用的代码)并且获得数据,相比于在客户端设备150等待直到执行预测的下一动作为止的情况下,能更快地加载(或呈现)应用并呈现数据。
在一些实施方式中,应用154能包括用于在用户界面152处执行的每种动作的单独的下一动作模型158。例如,应用154能包括用于位置变更动作的下一动作模型,和用于范围变更动作(例如过滤或汇总级变更)的另一下一动作模型,其中位置变更动作使应用154导航至新标签或页面,范围变更动作改变将在用户界面处正呈现的数据的范围。能基于对于动作类型的触发事件,选择适当的下一动作模型。例如,应用154可以使用范围变更模型来响应于用户选择日期和时间范围选择器用户界面元素,预测用户很可能选择的日期和时间范围。在一些实施方式中,应用154可以使用多个下一动作模型来确定多个预测的下一动作,并且在用户执行动作前,获得用于多个预测的下一动作的每一个动作的数据以及将该数据存储在高速缓冲存储器156中。例如,应用154可以使用确定预测的下一位置变更动作的位置变更下一动作模型和确定预测的下一范围变更动作的范围变更下一动作模型。然后,应用154能获得用于两个预测的下一动作的数据并且将该数据存储在高速缓冲存储器156中。
数据分发系统110包括前端服务器112,前端服务器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处执行的(可能动作的集合中的)每一动作,包括识别当执行动作时呈现的用户界面的数据和执行动作时用户界面的一个或多个属性。如上所述,属性能包括正呈现的数据的类型、数据所属的组、数据特性、数据的汇总级、目前呈现的应用的标签、用户界面的状态和/或用户界面或用户界面正呈现的数据的其他适当属性。动作数据还能对在应用的用户界面152处执行的每一动作,包括执行动作的时间和/或执行动作的用户的唯一匿名标识符。
应用154能被配置成响应于检测到在应用154的用户界面152处执行的动作,将动作数据发送到前端服务器112。例如,如果用户使用应用的用户界面152的过滤元素来过滤特定日期和时间范围的特定数据集,应用154能执行用户进行的过滤并且将过滤的数据呈现在用户界面152中。应用154还能将动作数据发送到前端服务器112,动作数据指定例如日期和时间范围、特定数据集的属性(例如数据所属的组、数据类型、数据所属的账户等)、在其中执行动作的用户界面152的属性、执行动作的时间和用户或用户设备150的唯一标识符。前端服务器112能将动作数据发送到下一动作预测服务器114并且下一动作预测服务器114能将动作数据存储在动作数据存储设备120中。应用154能在执行动作后和/或定期地发送用于每一动作的动作数据。
下一动作预测服务器114能生成用于应用154的一个或多个下一动作模型158并且将下一动作模型存储在下一动作模型数据存储设备118中。应用154还能包括其下一动作模型158,使得应用154能确定客户端设备150处的预测的下一动作。如下文更详细所述,下一动作预测服务器114可以使用下一动作模型158来确定用于应用154的预测的下一动作。
下一动作预测服务器114能基于在动作数据存储设备120中存储的、用于应用154的动作数据,生成用于应用154的下一动作模型158。如上所述,下一动作模型158能基于用户界面的用户界面场境指定将执行的动作的概率。在该示例中,下一动作预测服务器114能基于对每一用户界面场境每一动作发生的次数,确定用于动作的概率。例如,如果当用于应用154的用户界面具有特定用户界面场境时,特定动作发生10次,并且当用户界面具有特定用户界面场境时,总共100个动作在用户界面处被执行,则特定动作的概率为10%(10/100)。
在一些实施方式中,当确定用于动作的概率时,最近的动作被赋予更高的加权。例如,动作的加权随时间衰减。以这种方式,更流行(例如在特定时间段内,已经更常发生的)的更近动作能具有更高概率,使得该动作为预测的下一动作。在一些实施方式中,使用下述关系,基于用于正接收的新动作的数据,更新用于特定动作的概率。
关系(1)ρ=(1-α)ρ+α
关系(2)ρ=(1-α)ρ
在该示例中,(ρ)是正执行的特定动作的概率,以及(α)是加权减小度。在该示例中,如果执行特定动作,使用关系(1),更新特定动作发生的概率。如果未执行特定动作,则使用关系(2),更新该概率。使用这些关系导致第n个最新动作将具有加权(1-α)n。
如上所述,应用154能具有用户特定的下一动作模型158和用于多个用户的一般下一动作模型。使用对于特定用户的动作数据,生成和更新用于特定用户的用户特定的下一动作模型。使用对于多个不同用户的动作数据,生成和更新一般下一动作模型。
在一些实施方式中,无论何时接收到影响下一动作模型158的下一动作数据,下一动作预测服务器114便更新下一动作模型158。然后,下一动作预测服务器114将更新的下一动作模型158发送到在客户端设备150处的应用154。
在一些实施方式中,下一动作预测服务器114生成用于不同动作类型的下一动作模型158。例如,如上所述,应用154能具有用于不同动作类型的单独的下一动作模型。在该示例中,下一动作预测服务器114能使用用于那些动作类型的动作数据,生成用于特定动作类型的下一动作模型。例如下一动作预测服务器114可以基于,当用户界面具有特定场境时,特定动作已经被执行的次数以及当用户界面具有特定场境时,已经被执行的特定类型的动作的总数,确定用于特定类型的特定动作的概率。
下一动作预测服务器114还能使用在动作数据存储设备120中存储的动作数据,使用机器学习技术,训练预测模型。例如,下一动作预测服务器114可以生成马尔可夫链来基于当前的用户界面场境,预测下一用户动作。马尔可夫链是使用一系列可能动作的模型,其中,每一动作的概率取决于当前用户界面的状态(例如场境)。
在一些实施方式中,下一动作预测服务器114使用下一动作模型158来确定对于应用的用户的预测的下一动作。例如,应用154可以确定用户界面场境(例如识别用户界面152的一个或多个属性)并且将对于下一动作数据的请求发送到前端服务器112。该请求能包括用户界面场境的一个或多个属性。下一动作预测服务器114能从下一动作模型数据存储设备118中识别适当的下一动作模型158,并且使用下一动作模型158来基于用户界面场境,确定一个或多个预测的下一动作。例如,下一动作预测服务器114能识别用于应用154的下一动作模型158。如果应用154具有用户特定的下一动作模型,则下一动作预测服务器114能识别用于应用和用于从其接收请求的客户端设备150的用户的下一动作模型。
下一动作预测服务器114能将指定预测的下一动作的数据提供给数据管理服务器116。数据管理服务器116能识别如果用户执行预测的下一动作的话将在客户端设备150处呈现的数据,并且将数据提供给前端服务器112。反过来,前端服务器112能将数据提供给客户端设备150并且客户端设备150能将数据存储在高速缓冲存储器156中。
下一动作预测服务器114还能保持用于下一动作模型的性能度量并且将该性能度量存储在性能数据存储设备122中。用于下一动作模型的度量能包括用于下一动作模型的预测精度、用于下一动作模型的缓存命中率和/或用于下一动作模型的用户动作时延。用于下一动作模型的预测精度能基于下一动作模型预测的用户随后执行动作的次数与由下一动作模型做出的预测的总数之间的比。用于下一动作模型的缓存命中率能基于响应于对于其使用下一动作模型来确定预测的下一动作的用户动作而所需的数据在高速缓冲存储器158中被找到的次数,与响应于对于其使用下一动作模型来确定预测的下一动作的用户动作而请求数据的总次数之间的比。用户动作时延能表示如由用户感知的动作的时延。例如,用户动作时延能表示从用户执行动作(例如选择标签或提交过滤标准)的时间到在客户端设备150处渲染新的或更新的数据的时间的时延。能对多次使用下一动作模型,来测量和汇集(例如平均)该时间,以确定用于下一动作模型的汇集的用户动作时延。
图2图示呈现数据的示例性用户界面200。示例性用户界面200被图示为正呈现在Web浏览器中。用户界面200还能被呈现在移动应用中。
用户界面200包括使用户能够选择用于呈现的数据组的组菜单,数据组例如为特定活动或账户。例如,用户能通过使用鼠标点击组或通过在组的位置处触摸一触摸屏,来选择组。选择组能是由用于生成和呈现用户界面200的应用的下一动作模型预测的下一动作。此外,对其呈现数据的组能是定义用于用户界面200的用户界面场境的属性。例如,查看用于组2的数据的用户通常查看特定类型的数据。在该示例中,当呈现用于组2的数据时,可以使用下一动作模型来确定预测的下一动作是选择特定类型的数据,并且该应用可以预缓存用于组2的特定类型的数据。
用户界面200还包括使用户能够选择待呈现的组的数据类型的数据类型菜单215。选择的数据类型和被选组的数据被呈现在显示区205中。如上所述,选择数据类型可以是使用下一动作模型预测的下一动作。呈现的数据的类型还能是定义用于用户界面200的用户界面场境的属性。
用户界面200还包括允许用户选择用于在显示区205中呈现的数据的日期和时间范围的日期和时间范围选择器220。在该示例中,选择的日期和时间范围为11/1/2016-11/30/2016。过滤显示区205中呈现的数据,使得仅呈现与被选日期和时间范围有关的数据。用户界面200能包括其他过滤元素,诸如基于数据值或其他过滤标准过滤的那些过滤元素。
选择特定(或相对)日期和时间范围可以是由下一动作模型确定的下一动作。例如,当查看特定类型的数据时,用户通常查看前一月的数据。在该示例中,数据的特定类型是允许下一动作模型预测下一动作将是选择前一月的数据的用户界面场境的属性。作为响应,应用能预缓存特定数据类型——例如用于被选组的前一月的数据。此外,选择日期和时间范围选择器220可以是使应用确定预测的下一动作的触发事件。例如,应用能访问下一动作模型并且使用下一动作模型来确定哪一下一动作具有被赋予在选择日期和时间范围选择器220时呈现的数据的组和数据类型的最高概率。以这种方式,在用户使用日期和时间范围选择器220来指定所需日期和时间的同时,能预缓存数据。
另一触发事件是由用户输入的自定义日期和时间。例如,用户界面元素可以允许用户指定自定义日期和时间并且基于自定义日期和时间,选择一些按钮以过滤数据。在该示例中,应用能确定预测的下一动作将是用户选择按钮以过滤数据。作为响应,在用户选择按钮前,应用能发送对于输入的日期和时间的数据的请求。
用户界面200还包括使用户能够选择用于在显示区205中呈现的数据的基于时间的汇总级的汇总级选择器225。例如,汇总级选择器225可以允许每日数据、每月数据或每年数据被呈现在显示区205中。选择特定汇总级可以是使用下一动作模型确定的预测的下一动作。例如,当日期和时间范围为至少1个月,但小于3个月时,用户通常查看每日数据。在该示例中,选择的日期和时间范围是允许使用下一动作模型来确定用户很可能将执行的预测动作是选择每日汇总级的用户界面场境的属性。
应用可以使用下一动作模型来基于被选组、被选数据类型、被选日期和时间范围以及被选汇总级中的一个或多个,确定预测的下一动作。当用户在用户界面处进行不同选择时,应用能使用更新的用户界面场境和下一动作模型来确定后续预测的下一动作,并且在用户执行预测的下一动作前,预缓存如果用户执行预测的下一动作的话将在用户界面200中呈现的数据。
图3是用于确定预测的下一动作并且预缓存用于预测的下一动作的下一动作数据的示例性过程300的流程图。例如,通过包括诸如为图1的客户端设备150的一个或多个数据处理装置的系统,实现过程300的操作。还能通过在计算机存储介质上存储的指令,实现过程300,其中,由包括数据处理装置的系统执行指令使得数据处理装置执行过程300的操作。
系统确定用于正呈现的用户界面的用户界面场境(302)。例如,可以由应用(例如Web应用或移动应用)生成和呈现用户界面。可以由用户界面的一个或多个属性定义用户界面场境,一个或多个属性诸如为正呈现的数据的类型、数据所属的组、数据的特性、数据的汇总级、目前正呈现的应用的标签、用户界面的状态和/或用户界面或由用户界面正呈现的数据的其他适当属性。
系统基于用户界面场境,确定预测的用户动作(304)。预测的用户动作可以是基于用户界面场境应用的用户很可能在用户界面处执行的动作。例如,预测的用户动作可以是至少具有被用户执行的阈值概率的动作。在另一示例中,预测的用户动作可以是能够在用户界面处执行的多个可能用户动作中具有最高概率的用户动作。
在一些实施方式中,系统使用下一动作模型来确定预测的下一动作。例如,下一动作模型可以对动作集中的每一动作,基于用户界面场境指定动作将被执行的概率。在特定的示例中,下一动作模型可以指定当用户界面具有包括对不同于特定标签的第二标签的呈现并且包括特定数据组的场境时,导航到特定标签的用户动作具有10%的概率。下一动作模型还可以指定当用户界面具有包括对包括不同数据组的第三标签的呈现的场境时,导航到特定标签的用户动作具有20%的概率。
在一些实施方式中,系统可以选择对其预缓存数据的多个预测的下一动作。例如,多个预测的下一动作至少具有将由用户执行的阈值概率。在另一示例中,系统可以选择具有最高概率的特定多个动作。以这种方式,在用户执行动作前,系统更可能获得和预缓存用于用户的数据。
系统通过数据通信网络,传送响应于用户执行预测的下一动作而将呈现的下一动作数据的请求(306)。系统将请求传送到数据分发系统,诸如图1的数据分发系统110。例如,,系统可以发送指定如果用户真的执行预测的下一动作的话系统将请求的数据的请求。在另一示例中,代替响应用户于执行预测的下一动作将呈现的数据,或除该数据外,系统发送指定动作的请求。在该示例中,数据分发系统110能基于预测的下一动作,识别适当的数据。
系统通过数据通信网络,接收下一动作数据(308)。例如,系统可以从图1的数据分发系统110接收数据。
系统将下一动作数据存储在系统的缓存器中(310)。例如,系统可以包括系统存储下一动作数据的高速缓存器或系统本地的其他存储器。通过将下一动作数据存储在本地存储器中,如果用户真正执行预测的下一动作,能更快速地呈现下一动作数据,因为系统不必等待请求遍历网络和下一动作数据到来。
系统检测在用户界面处预测的下一动作的发生(312)。例如,可以通过正由系统执行的应用,呈现用户界面。应用能监视与用户界面的用户交互并且响应于检测到用户交互,执行例如更新数据、导航到不同标签等的动作。
系统响应于检测到预测的下一动作的发生,从缓存器获得下一动作数据(314)。例如,系统能从该系统的缓存器获得下一动作数据,而无需通过网络发送另一请求。
系统更新用户界面以呈现下一动作数据(316)。例如,如果预测的下一动作是导航到不同标签并且用户选择了该不同标签,则系统可以将用户界面导航到不同标签并且在不同标签中呈现下一动作数据。在另一示例中,如果预测的下一动作是将数据过滤到特定日期和时间范围,则系统可以在用户界面中呈现过滤的数据。
图4是用于确定预测的下一动作并且预缓存用于预测的下一动作的下一动作数据的示例性过程400的流程图。通过包括诸如图1的数据分发系统110的一个或多个数据处理装置的系统,来实现过程400的操作。还能通过在计算机存储介质上存储的指令,实现过程400,其中,由包括数据处理装置的系统执行指令使得数据处理装置执行过程400的操作。
系统从客户端设备接收对下一动作数据的请求(402)。例如,系统可以从正呈现由在客户端设备上执行的应用生成的用户界面的客户端设备,接收请求。客户端设备可以通过数据通信网络,例如响应于检测到触发事件,将请求传送到系统。触发事件可以包括选择过滤用户界面元素(例如,日期和时间范围选择器)、汇总级用户界面元素、地址栏、将指针(例如光标)悬停在数据上或另一适当的事件。
在另一示例中,客户端设备在未检测到触发事件的情况下也可以传送请求。例如,每次更新用户界面时,客户端设备可以传送请求。在该示例中,客户端设备能够通过确定用于用户查看的每一用户界面的预测的下一动作,尝试比用户领先一步。
请求能包括定义用户界面场境的用户界面场境数据。例如,请求能包括指定正呈现给用户的用户界面的一个或多个属性的数据。
系统基于用户界面场境数据,确定客户端设备的用户将在用户界面处执行的预测的下一动作(404)。例如,如上所述,系统能使用下一动作模型来基于用户界面场境数据,确定对于用户的一个或多个预测的下一动作。
系统识别用于预测的下一动作的下一动作数据(406)。用于预测的下一动作的下一动作数据包括如果用户真正执行预测的下一动作的话将由客户端设备呈现的数据。
系统将下一动作数据提供给客户端设备,以用于存储在客户端设备的缓存器中(408)。客户端设备能将下一动作数据存储在缓存器中。如果客户端设备检测到预测的下一动作被执行,则客户端设备能从缓存器获得该数据并且将数据呈现给用户。
图5是用于保持被用来确定预测的下一动作的预测模型的性能度量的示例性过程500的流程图。例如,能通过包括诸如图1的数据分发系统110的一个或多个数据处理装置的系统,实现过程500的操作。还能通过在计算机存储介质上存储的指令实现过程500,其中,由包括数据处理装置的系统执行指令使数据处理装置执行过程500的操作。
系统选择用于确定对于用户的预测的下一动作的预测模型(502)。在一些实施方式中,系统基于用户在由应用生成和呈现的用户界面处执行的多个动作,选择下一动作模型。例如,如果用户已经执行少于阈值数目的动作,则系统可以选择基于由多个用户执行的动作而生成的一般下一动作模型,因为系统不具有为该用户生成用于应用的用户特定的下一动作模型的足够数据。
在一些实施方式中,系统基于用于下一动作模型的一个或多个性能度量,选择下一动作模型。例如,系统可以选择具有最高预测精度、最高缓存命中率和/或最低用户动作时延的下一动作模型。
系统使用被选下一动作模型来确定预测的下一用户动作并且基于预测的下一用户动作,获得数据(504)。例如,系统可以从服务器获得用于预测的下一动作的数据并且将该数据存储在客户端设备的缓存器中。
系统确定用户是否执行了预测的下一动作(506)。例如,系统可以从在其上正呈现用户界面的客户端设备接收表示是否执行了下一用户动作的数据。系统还可以接收表示用于用户执行的动作的数据是否在客户端设备的缓存器中被找到的数据,和/或表示响应于用户执行的动作而呈现数据的时延的数据。
系统更新用于被选下一动作模型的性能度量(508)。例如,系统可以基于接收的数据,更新性能精度、缓存命中率和/或用于下一动作模型的用户动作时延。
在本说明书中描述的主题和操作的实施例可以在数字电子电路中、或在包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件、或者其一个或更多的组合中实现。在本说明书中描述的主题的实施例可以被实现为,在计算机存储介质上编码的用于由数据处理装置执行或控制数据处理装置的操作的一个或多个计算机程序,即,计算机程序指令的一个或多个模块。可替代地或另外地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置供数据处理装置运行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基质、随机或串行存取存储器阵列或设备,或它们中的一个或多个的组合,或被包括在其中。此外,虽然计算机存储介质不是传播的信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是,或者被包括在,一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)中。
在本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,包括举例来说可编程处理器、计算机、片上系统或者上述的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括创建用于所讨论的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型的基础架构,诸如web服务、分布式计算和网格计算基础架构。
可以以任何形式的编程语言编写计算机程序(也称为程序、软件、软件应用、脚本或代码),包括编译或解释语言、说明性或过程语言,并且可以以任何形式部署计算机程序,包括作为独立程序或作为模块、组件、子程序、对象或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于所讨论的程序的单个文件中,或在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上或位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。该过程和逻辑流也可以由例如为FPGA(现场可编程门阵列的专用逻辑电路或ASIC(专用集成电路))来执行,并且装置也可以被实现为专用逻辑电路或ASIC。
适合于执行计算机程序的处理器包括,举例来说,通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括,例如磁盘、磁光盘或光盘的用于存储数据的一个或多个大容量存储设备,或可操作地耦合于其以从其接收数据或向其传送数据,或两者。然而,计算机不必具有这样的设备。此外,计算机可以嵌入在另一设备中,仅举几个例子,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘和CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有例如CRT(阴极射线管)或LCD(液晶显示器)监视器的用于向用户显示信息的显示设备,以及用户可以通过其向计算机提供输入的键盘和例如鼠标或轨迹球的指向设备的计算机上实现。其他类型的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈,并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从其接收文档来与用户交互;例如,响应于从网络浏览器接收到的请求将web页面发送到用户的客户端设备上的网络浏览器。
在本说明书中描述的主题的实施例可以在包括例如作为数据服务器的后端组件,或包括例如应用服务器的中间件组件,或包括例如具有用户可以通过其与本说明书中描述的主题的实现交互的图形用户界面或网络浏览器的用户计算机的前端组件,或者一个或多个这样的后端、中间件或前端组件的组合的计算系统中实现。系统的组件可以通过任何形式或介质的数字数据通信互连,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,因特网)和对等网络(例如,自组对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序而发生。在一些实施例中,服务器向客户端设备发送数据(例如,HTML页面)(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
尽管本说明书包含许多具体实施细节,但是这些不应被解释为对任何发明或权利要求的范围的限制,而是被解释为对特定发明的特定实施例特定的特征的描述。在本说明书中在单独实施例的背景下描述的某些特征也可以在单个实施例中以组合实现。相反,在单个实施例的背景下描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,虽然特征可以在上面描述为在某些组合中起作用并且甚至最初如此要求,但是在一些情况中要求保护的组合中的一个或多个特征可以从组合中去除,并且要求保护的组合可以导向为子组合或子组合的变体。
类似地,尽管在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序或以顺序次序执行,或者执行所有所示的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解到,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品。因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中所述的动作可以以不同的顺序执行并且仍然获得期望的结果。另外,附图中描绘的过程不一定需要所示的特定次序或顺序的次序以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
Claims (20)
1.一种客户端设备,包括:
显示器,所述显示器呈现用于一个或多个移动应用的用户界面;
数据存储设备,所述数据存储设备具有存储通过数据通信网络接收的、用于所述一个或多个移动应用的数据的缓存器,
数据处理装置,所述数据处理装置与所述数据存储设备和所述显示器通信,并且执行包括下述的操作:
对给定应用,确定用于正由所述显示器呈现的给定用户界面的用户界面场境,用于所述给定用户界面的所述用户界面场境指定以下至少一个:(i)在所述给定用户界面中正呈现的数据所属的组,或(ii)在所述给定用户界面中正呈现的数据的类型;
基于所述用户界面场境,确定所述客户端设备的用户将在所述给定用户界面处执行的预测的下一动作;
在检测到所述预测的下一动作前,通过所述数据通信网络传送对于响应于所述用户执行所述预测的下一动作而将被呈现的下一动作数据的请求;
通过所述数据通信网络接收所述下一动作数据;以及
将所述下一动作数据存储在所述缓存器中。
2.如权利要求1所述的客户端设备,其中,所述操作进一步包括:
检测在所述给定用户界面处所述预测的动作的发生;
从所述缓存器获得所述下一动作数据;以及
更新所述用户界面以呈现所述下一动作数据。
3.如权利要求1所述的客户端设备,其中,所述用户界面场境指定在所述给定用户界面中正呈现的所述数据的汇总级,所述汇总级指定所述数据被汇集的层级。
4.如权利要求1所述的客户端设备,其中,所述预测的下一动作是基于以下来确定的:当所述给定用户界面已经具有与所确定的用户界面场境匹配的场境时,能够在所述给定用户界面处被执行的可能动作集中的每一动作已经被包括所述用户的一个或多个用户执行的次数。
5.如权利要求1所述的客户端设备,其中,所述操作进一步包括检测用于确定所述预测的下一动作的触发事件,其中,所述预测的下一动作是响应于检测到所述触发事件而确定的。
6.如权利要求1所述的客户端设备,其中,所述操作进一步包括:
获得基于所述用户界面场境确定所述预测的下一动作的预测模型;以及
将所述预测模型转换成各预测的下一动作与概率之间的映射,每一映射是相应的预测的下一动作与所述相应的预测的下一动作针对给定用户界面场境而发生的概率之间的映射。
7.如权利要求6所述的客户端设备,其中,所述操作进一步包括基于以下至少一个从预测模型的集合中选择所述预测模型:(i)用于每一预测模型的预测精度,(ii)用于每一预测模型的缓存命中率,(iii)由每一预测模型提供的时延的缩减,或(iv)所述用户在所述给定用户界面处执行的历史用户交互的数目。
8.如权利要求1所述的客户端设备,其中,所述操作进一步包括:
确定所述下一动作数据将由与所述给定应用不同的第二应用呈现;
在检测到所述预测的下一动作前,获得用于执行所述第二应用的代码;以及
将所述代码存储在所述缓存器中。
9.一种系统,包括:
一个或多个数据存储设备,所述一个或多个数据存储设备存储用于一个或多个应用的数据;
一个或多个前端服务器,所述前端服务器接收对下一动作数据的请求,并且响应于所述请求,提供所述下一动作数据;
一个或多个后端服务器,所述后端服务器与所述一个或多个前端服务器以及所述一个或多个数据存储设备通信,所述一个或多个后端服务器执行包括下述的操作:
从所述一个或多个前端服务器接收对从给定客户端设备接收到的下一动作数据的给定请求,所述请求包括指定以下至少一个的用户界面场境数据:(i)在所述给定客户端设备的给定用户界面中正呈现的数据所属的组,或(ii)在所述给定用户界面中正呈现的数据的类型;
基于所述用户界面场境数据,确定所述给定客户端设备的用户将在所述给定用户界面处执行的预测的下一动作;
在所述一个或多个数据存储设备中,识别用于所述预测的下一动作的下一动作数据;以及
将所识别的下一动作数据提供给所述一个或多个前端服务器以用于传送到所述给定客户端设备,其中,所述给定客户端设备将所识别的下一动作数据存储在所述给定客户端设备的缓存器中。
10.如权利要求9所述的系统,其中,所述给定客户端设备执行包括下述的操作:
检测在所述给定用户界面处所述预测的动作的发生;
从所述缓存器获得所述下一动作数据;以及
更新所述给定用户界面以呈现所述下一动作数据。
11.如权利要求9所述的系统,其中,所述用户界面场境指定在所述给定用户界面中正呈现的数据的汇总级,所述汇总级指定所述数据被汇集的层级。
12.如权利要求9所述的系统,其中,所述预测的下一动作是基于以下来确定的:当所述给定用户界面已经具有与所确定的用户界面场境匹配的场境时,能够在所述给定用户界面处被执行的可能动作集中的每一动作已经被包括所述用户的一个或多个用户执行的次数。
13.如权利要求9所述的系统,其中,所述操作进一步包括检测用于确定所述预测的下一动作的触发事件,其中,所述预测的下一动作是响应于检测到所述触发事件而确定的。
14.如权利要求9所述的系统,其中,所述操作进一步包括:
获得基于所述用户界面场境确定所述预测的下一动作的预测模型;以及
将所述预测模型转换成各预测的下一动作与概率之间的映射,每一映射是相应的预测的下一动作与所述相应的预测的下一动作针对给定用户界面场境而发生的概率之间的映射。
15.如权利要求14所述的系统,其中,所述操作进一步包括基于以下至少一个从预测模型的集合中选择所述预测模型:(i)用于每一预测模型的预测精度,(ii)用于每一预测模型的缓存命中率,(iii)由每一预测模型提供的时延的缩减,或(iv)所述用户在所述给定用户界面处执行的历史用户交互的数目。
16.如权利要求9所述的系统,其中,所述操作进一步包括:
确定所述下一动作数据将由与所述给定应用不同的第二应用呈现;
在检测到所述预测的下一动作前,将用于执行所述第二应用的代码发送到所述给定客户端设备,其中,所述给定客户端设备将所述代码存储在所述缓存器中。
17.一种方法,包括:
对给定应用,确定用于正由客户端设备的显示器呈现的给定用户界面的用户界面场境,用于所述给定用户界面的用户界面场境指定以下至少一个:(i)在所述给定用户界面中正呈现的数据所属的组,或(ii)在所述给定用户界面中正呈现的数据的类型;
基于所述用户界面场境,确定所述客户端设备的用户将在所述给定用户界面处执行的预测的下一动作;
在检测到所述预测的下一动作前,通过所述数据通信网络传送对于响应于所述用户执行所述预测的下一动作而将被呈现的下一动作数据的请求;
通过所述数据通信网络接收所述下一动作数据;以及
将所述下一动作数据存储在所述缓存器中。
18.如权利要求17所述的方法,进一步包括:
检测在所述给定用户界面处所述预测的动作的发生;
从所述缓存器获得所述下一动作数据;以及
更新所述用户界面以呈现所述下一动作数据。
19.如权利要求17所述的方法,其中,所述用户界面场境指定在所述给定用户界面中正呈现的所述数据的汇总级,所述汇总级指定所述数据被汇集的层级。
20.如权利要求17所述的方法,其中,,所述预测的下一动作是基于来确定的:当所述给定用户界面已经具有与所确定的用户界面场境匹配的场境时,能够在所述给定用户界面处执行的可能动作集中的每一动作已经被包括所述用户的一个或多个用户执行的次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110521354.0A CN113259433B (zh) | 2016-12-28 | 2017-06-07 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/392,894 | 2016-12-28 | ||
US15/392,894 US10356200B2 (en) | 2016-12-28 | 2016-12-28 | Optimizing user interface data caching for future actions |
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 |
---|---|---|---|
CN202110521354.0A Division CN113259433B (zh) | 2016-12-28 | 2017-06-07 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108605053A true CN108605053A (zh) | 2018-09-28 |
CN108605053B CN108605053B (zh) | 2021-05-25 |
Family
ID=59078214
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110521354.0A Active CN113259433B (zh) | 2016-12-28 | 2017-06-07 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
CN201780000575.5A Active CN108605053B (zh) | 2016-12-28 | 2017-06-07 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110521354.0A Active CN113259433B (zh) | 2016-12-28 | 2017-06-07 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10356200B2 (zh) |
EP (2) | EP3731499A1 (zh) |
JP (2) | JP6648292B2 (zh) |
KR (2) | KR102180995B1 (zh) |
CN (2) | CN113259433B (zh) |
WO (1) | WO2018125276A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563106A (zh) * | 2020-07-14 | 2020-08-21 | 成都市映潮科技股份有限公司 | 一种数据缓存方法、装置、系统及可读存储介质 |
Families Citing this family (27)
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 |
US10623514B2 (en) | 2015-10-13 | 2020-04-14 | Home Box Office, Inc. | Resource response expansion |
US10656935B2 (en) | 2015-10-13 | 2020-05-19 | Home Box Office, Inc. | Maintaining and updating software versions via hierarchy |
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 |
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 |
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 |
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 |
US11681466B2 (en) * | 2020-06-30 | 2023-06-20 | Western Digital Technologies, Inc. | Proactive storage operation management |
US11915047B2 (en) | 2020-06-30 | 2024-02-27 | Western Digital Technologies, Inc. | Managing storage device compute operations |
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 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006012144A (ja) * | 2003-02-25 | 2006-01-12 | Matsushita Electric Ind Co Ltd | 移動体端末 |
US20080059704A1 (en) * | 2005-05-02 | 2008-03-06 | Srinivas Kavuri | System and method for allocation of organizational resources |
US20100131443A1 (en) * | 2008-11-25 | 2010-05-27 | Google Inc. | Providing Digital Content Based On Expected User Behavior |
US20110029670A1 (en) * | 2009-07-31 | 2011-02-03 | Microsoft Corporation | Adapting pushed content delivery based on predictiveness |
KR20120016333A (ko) * | 2010-08-16 | 2012-02-24 | 에스케이플래닛 주식회사 | 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치 |
CN103049163A (zh) * | 2012-12-28 | 2013-04-17 | 华为技术有限公司 | 用户界面智能显示控制方法和装置 |
US20130187753A1 (en) * | 2012-01-20 | 2013-07-25 | Research In Motion Limited | Predictive Context-Aware Dynamic Lock Screen |
CN104321744A (zh) * | 2012-06-29 | 2015-01-28 | 英特尔公司 | 针对潜在动作预测的应用提供的上下文 |
JP2015531925A (ja) * | 2012-08-16 | 2015-11-05 | クアルコム,インコーポレイテッド | ウェブブラウザにおけるスクリプトの事前処理 |
CN105320425A (zh) * | 2014-06-16 | 2016-02-10 | 谷歌公司 | 基于场境的用户界面的呈现 |
CN105874447A (zh) * | 2013-12-31 | 2016-08-17 | 谷歌公司 | 用于被引导用户动作的系统和方法 |
CN105955650A (zh) * | 2016-04-29 | 2016-09-21 | 努比亚技术有限公司 | 一种人机交互操作的方法和装置 |
CN106095242A (zh) * | 2015-06-16 | 2016-11-09 | 华为技术有限公司 | 一种用于移动通信设备的上下文感知用户界面 |
US20160360271A1 (en) * | 2015-06-07 | 2016-12-08 | Apple Inc. | Priming media applications |
Family Cites Families (42)
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 | キヤノン株式会社 | 受信装置及び受信装置の制御方法 |
US7159191B2 (en) * | 2003-03-03 | 2007-01-02 | Flextronics Sales & Marketing A-P Ltd. | Input of data |
US20080301300A1 (en) | 2007-06-01 | 2008-12-04 | Microsoft Corporation | Predictive asynchronous web pre-fetch |
US20110040716A1 (en) * | 2007-11-02 | 2011-02-17 | Eriko Kato | Information terminal device and function use method |
IL197196A0 (en) | 2009-02-23 | 2009-12-24 | Univ Ben Gurion | Intention prediction using hidden markov models and user profile |
US8364611B2 (en) * | 2009-08-13 | 2013-01-29 | Yahoo! Inc. | System and method for precaching information on a mobile device |
US8561208B2 (en) * | 2011-05-20 | 2013-10-15 | Adobe Systems Incorporated | Secure user interface content |
JP5805867B2 (ja) * | 2011-06-30 | 2015-11-10 | アマゾン・テクノロジーズ、インコーポレイテッド | 遠隔ブラウジングセッション管理 |
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 |
US9836213B2 (en) * | 2012-07-27 | 2017-12-05 | Symbol Technologies, Llc | Enhanced user interface for pressure sensitive touch screen |
US9058324B2 (en) * | 2012-09-28 | 2015-06-16 | Intel Corporation | Predictive precaching of data based on context |
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 |
US20150188981A1 (en) * | 2013-12-31 | 2015-07-02 | Huawei Technologies Co., Ltd. | Page processing method, apparatus, and system |
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 |
US10949822B2 (en) * | 2016-03-25 | 2021-03-16 | Stripe Inc. | Methods and systems for providing payment interface services using a payment platform |
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 |
-
2016
- 2016-12-28 US US15/392,894 patent/US10356200B2/en active Active
-
2017
- 2017-06-07 CN CN202110521354.0A patent/CN113259433B/zh active Active
- 2017-06-07 EP EP20180328.5A patent/EP3731499A1/en active Pending
- 2017-06-07 WO PCT/US2017/036294 patent/WO2018125276A1/en active Application Filing
- 2017-06-07 EP EP17731389.7A patent/EP3482553B1/en active Active
- 2017-06-07 KR KR1020187023036A patent/KR102180995B1/ko active Application Filing
- 2017-06-07 CN CN201780000575.5A patent/CN108605053B/zh active Active
- 2017-06-07 KR KR1020207032736A patent/KR102300077B1/ko active IP Right Grant
- 2017-06-07 JP JP2018542767A patent/JP6648292B2/ja active Active
-
2019
- 2019-05-30 US US16/426,672 patent/US10560546B2/en active Active
- 2019-12-18 US US16/719,951 patent/US11310331B2/en active Active
-
2020
- 2020-01-14 JP JP2020003688A patent/JP6989628B2/ja active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006012144A (ja) * | 2003-02-25 | 2006-01-12 | Matsushita Electric Ind Co Ltd | 移動体端末 |
US20080059704A1 (en) * | 2005-05-02 | 2008-03-06 | Srinivas Kavuri | System and method for allocation of organizational resources |
US20100131443A1 (en) * | 2008-11-25 | 2010-05-27 | Google Inc. | Providing Digital Content Based On Expected User Behavior |
US20110029670A1 (en) * | 2009-07-31 | 2011-02-03 | Microsoft Corporation | Adapting pushed content delivery based on predictiveness |
KR20120052260A (ko) * | 2009-07-31 | 2012-05-23 | 마이크로소프트 코포레이션 | 예측성 배경에 기초한 푸시된 컨텐츠 전달의 구성 |
JP2013501269A (ja) * | 2009-07-31 | 2013-01-10 | マイクロソフト コーポレーション | 予測に基づくプッシュ・コンテンツ配信の適合化 |
KR20120016333A (ko) * | 2010-08-16 | 2012-02-24 | 에스케이플래닛 주식회사 | 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치 |
US20130187753A1 (en) * | 2012-01-20 | 2013-07-25 | Research In Motion Limited | Predictive Context-Aware Dynamic Lock Screen |
CN104321744A (zh) * | 2012-06-29 | 2015-01-28 | 英特尔公司 | 针对潜在动作预测的应用提供的上下文 |
JP2015531925A (ja) * | 2012-08-16 | 2015-11-05 | クアルコム,インコーポレイテッド | ウェブブラウザにおけるスクリプトの事前処理 |
CN103049163A (zh) * | 2012-12-28 | 2013-04-17 | 华为技术有限公司 | 用户界面智能显示控制方法和装置 |
CN105874447A (zh) * | 2013-12-31 | 2016-08-17 | 谷歌公司 | 用于被引导用户动作的系统和方法 |
CN105320425A (zh) * | 2014-06-16 | 2016-02-10 | 谷歌公司 | 基于场境的用户界面的呈现 |
US20160360271A1 (en) * | 2015-06-07 | 2016-12-08 | Apple Inc. | Priming media applications |
CN106095242A (zh) * | 2015-06-16 | 2016-11-09 | 华为技术有限公司 | 一种用于移动通信设备的上下文感知用户界面 |
CN105955650A (zh) * | 2016-04-29 | 2016-09-21 | 努比亚技术有限公司 | 一种人机交互操作的方法和装置 |
Non-Patent Citations (3)
Title |
---|
CHII CHANG: "ProMWS: Proactive Mobile Web Service Provision Using Context-Awareness", 《2011 IEEE INTERNATIONAL CONFERENCE ON PERVASIVE COMPUTING AND COMMUNICATIONS WORKSHOPS (PERCOM WORKSHOPS)》 * |
RICARDO BAEZA: "Predicting The Next App That You Are Going To Use", 《WSDM "15: PROCEEDINGS OF THE EIGHTH ACM INTERNATIONAL CONFERENCE ON WEB SEARCH AND DATA MINING》 * |
STEPHEN FITCHETT: "AccessRank: predicting what users will do next", 《CHI "12: PROCEEDINGS OF THE SIGCHI CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563106A (zh) * | 2020-07-14 | 2020-08-21 | 成都市映潮科技股份有限公司 | 一种数据缓存方法、装置、系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR102300077B1 (ko) | 2021-09-08 |
JP2020074154A (ja) | 2020-05-14 |
US20190281128A1 (en) | 2019-09-12 |
JP6989628B2 (ja) | 2022-01-05 |
KR20200130523A (ko) | 2020-11-18 |
US20200128097A1 (en) | 2020-04-23 |
CN113259433A (zh) | 2021-08-13 |
KR20180102625A (ko) | 2018-09-17 |
CN108605053B (zh) | 2021-05-25 |
EP3482553B1 (en) | 2020-12-23 |
JP6648292B2 (ja) | 2020-02-14 |
EP3482553A1 (en) | 2019-05-15 |
KR102180995B1 (ko) | 2020-11-19 |
JP2019514091A (ja) | 2019-05-30 |
US10560546B2 (en) | 2020-02-11 |
CN113259433B (zh) | 2024-01-09 |
US20180183891A1 (en) | 2018-06-28 |
EP3731499A1 (en) | 2020-10-28 |
US10356200B2 (en) | 2019-07-16 |
WO2018125276A1 (en) | 2018-07-05 |
US11310331B2 (en) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108605053A (zh) | 优化为未来动作缓存的用户界面数据 | |
US11372657B2 (en) | Systems and methods for adaptive user interfaces | |
US20200326823A1 (en) | Presentation and analysis of user interaction data | |
CN103718198B (zh) | 预测模型应用编程接口 | |
CN107924527A (zh) | 在应用启动器中显示广告 | |
EP2518621A2 (en) | User-centric widgets and dashboards | |
CN110520871A (zh) | 训练机器学习模型 | |
US20110258575A1 (en) | Displaying large datasets in a browser environment | |
US11580440B2 (en) | Dynamic form with machine learning | |
CN110402445A (zh) | 使用递归神经网络处理序列数据 | |
CN109858615A (zh) | 具有记忆的低通递归神经网络系统 | |
CN110235149A (zh) | 神经情节控制 | |
US20240054035A1 (en) | Dynamically generating application programming interface (api) methods for executing natural language instructions | |
US11810022B2 (en) | Contact center call volume prediction | |
EP3200057B1 (en) | Short cut links in a graphical user interface | |
US11893480B1 (en) | Reinforcement learning with scheduled auxiliary control | |
US20240070759A1 (en) | Systems and methods for selection of candidate content items | |
CN117369962A (zh) | 工作流执行序列生成方法、装置、计算机设备和存储介质 | |
CN116074435A (zh) | 小组件的更新方法、装置、电子设备以及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |