用于上下文自适应扫描的方法、系统及计算机存储介质与流程

文档序号:28803929发布日期:2022-02-09 01:10阅读:78来源:国知局
用于上下文自适应扫描的方法、系统及计算机存储介质与流程
用于上下文自适应扫描的方法、系统及计算机存储介质
1.本技术是国际申请日为2019年11月8日、中国申请号为201980008223.3、发明名称为“用于上下文自适应扫描的方法、系统及计算机存储介质”的发明专利申请的分案申请。
技术领域
2.本说明书涉及自适应扫描技术。


背景技术:

3.数字组件(digital component)是数字内容或数字信息的离散单元,其可以被结合到各种电子文档或应用中。可以扫描数字组件以确定数字组件的状态,例如,数字组件的合规(compliance)状态。数字组件的合规状况指定数字组件是否符合一个或多个策略准则。例如,只有在(一个或多个)网络地址未托管恶意软件的情况下,才可以确定包括将客户端设备重定向到具体网络地址(或一系列网络地址)的活动链接的数字组件符合某个策略准则,否则会导致违反政策准则的动作(例如,通过发起负面地影响地客户端设备的性能的恶意脚本或操作集合)。


技术实现要素:

4.本说明书描述了一种系统,该系统被实现为在一个或多个位置上的一个或多个计算机上的计算机程序,该计算机程序执行上下文自适应扫描,也称为扫描调度,或简称为扫描。
5.根据第一方面,提供了一种方法,该方法包括从数字组件集合当中选择给定数字组件。数字组件集合中的每个数字组件都具有当前扫描优先级,该优先级定义了用于扫描数字组件的当前优先级。基于给定数字组件的当前扫描优先级来选择给定数字组件。
6.扫描给定数字组件,包括确定给定数字组件的当前状态。给定数字组件的当前状态定义了给定数字组件的当前合规状况,该状态指定了给定数字组件当前是否符合策略准则。给定数字组件的当前上下文是基于以下一项或多项确定的:(i)给定数字组件的当前状态,或(ii)给定数字组件的当前扫描索引,该索引指定给定数字组件已被扫描的次数。
7.基于给定数字组件的当前上下文,确定给定数字组件的更新后的扫描优先级。根据更新后的扫描优先级来重新扫描给定数字组件。
8.在一些实施方式中,给定数字组件的当前上下文附加地基于以下一项或多项:已传输给定数字组件以在用户设备处与电子文档一起呈现的次数,以及给定数字组件在用户设备处与哪些电子文档一起呈现。
9.在一些实施方式中,给定数字组件指定登陆页面,并且扫描给定数字组件包括确定登陆页面是否托管恶意软件。
10.在一些实施方式中,给定数字组件的更新后的扫描优先级指定直到下一次扫描该给定数字组件为止的等待时间。
11.在一些实施方式中,基于给定数字组件的当前上下文来确定给定数字组件的更新
后的扫描优先级包括使用映射函数将给定数字组件的当前上下文映射到定义给定数字组件的更新后的扫描优先级的数据。对于多个可能的当前上下文中的每一个,映射函数定义从可能的当前上下文到定义对应扫描优先级的数据的映射。
12.在一些实施方式中,定义给定数字组件的更新后的扫描优先级的数据包括缩放因子(scaling factor)。基于给定数字组件的当前上下文确定给定数字组件的更新后的扫描优先级还包括:识别给定数字组件的默认扫描优先级;以及按照给定数字组件的默认扫描优先级和缩放因子的函数来确定给定数字组件的更新后的扫描优先级。
13.在一些实施方式中,给定数字组件的默认扫描优先级和缩放因子的函数包括给定数字组件的默认扫描优先级和缩放因子的乘积。
14.在一些实施方式中,映射函数基于给定数字组件的状态被预测改变的频率来将给定数字组件的当前上下文映射到定义给定数字组件的更新后的扫描优先级的数据。
15.在一些实施方式中,通过处理对于多个特定数字组件中的每一个表征特定数字组件何时被扫描、特定数字组件在其被扫描时的状态,以及特定数字组件在其被扫描时的上下文的记录的数据来确定给定数字组件的状态被预测改变的频率。
16.在一些实施方式中,使用基于给定数字组件的当前上下文、给定数字组件的状态将在该给定数字组件下一次被扫描之前改变的可能性,映射函数将给定数字组件的当前上下文映射到定义给定数字组件的更新后的扫描优先级的数据。
17.在一些实施方式中,使用局部过渡概率分布来确定映射函数。
18.根据第二方面,提供了一种或多种非瞬态计算机存储介质,其存储指令,这些指令当由一个或多个计算机执行时,使一个或多个计算机执行包括实现第一方面的方法的操作在内的操作。
19.根据第三方面,提供了一种系统,其包括:一个或多个计算机;以及通信耦合到一个或多个计算机的一个或多个存储设备,其中一个或多个存储设备存储指令,这些指令当由一个或多个计算机执行时,使一个或多个计算机执行包括实现第一方面的方法的操作在内的操作。
20.根据本公开的另一方面,提供一种由一个或多个数据处理装置执行的方法,该方法包括:从多个数字组件当中选择给定数字组件,其中:所述多个数字组件中的每个数字组件具有当前扫描优先级,该当前扫描优先级定义用于扫描所述数字组件的当前优先级;以及基于所述给定数字组件的当前扫描优先级来选择所述给定数字组件;扫描所述给定数字组件,包括确定所述给定数字组件的当前状态,其中所述给定数字组件的当前状态定义所述给定数字组件的当前合规状况,该状况指定所述给定数字组件当前是否符合策略准则;基于给定数字组件的状态被预测改变的频率来确定给定数字组件的更新后的扫描优先级;以及根据更新后的扫描优先级重新扫描给定的数字组件。
21.根据本公开的另一方面,提供一种系统,其包括:一个或多个计算机;以及一个或多个存储设备,其通信地耦合到所述一个或多个计算机,其中,所述一个或多个存储设备存储指令,所述指令在由一个或多个计算机执行时,使所述一个或多个计算机执行包括以下的操作:从多个数字组件当中选择给定数字组件,其中:所述多个数字组件中的每个数字组件具有当前扫描优先级,该当前扫描优先级定义用于扫描所述数字组件的当前优先级;以及基于所述给定数字组件的当前扫描优先级来选择所述给定数字组件;扫描所述给定数字
组件,包括确定所述给定数字组件的当前状态,其中所述给定数字组件的当前状态定义所述给定数字组件的当前合规状况,该状况指定所述给定数字组件当前是否符合策略准则;基于给定数字组件的状态被预测改变的频率来确定给定数字组件的更新后的扫描优先级;以及根据更新后的扫描优先级重新扫描给定的数字组件。
22.根据本公开的另一方面,提供一种非瞬态计算机存储介质,其存储指令,所述指令在由一个或多个计算机执行时,使所述一个或多个计算机执行包括以下的操作:从多个数字组件当中选择给定数字组件,其中:所述多个数字组件中的每个数字组件具有当前扫描优先级,该当前扫描优先级定义用于扫描所述数字组件的当前优先级;以及基于所述给定数字组件的当前扫描优先级来选择所述给定数字组件;扫描所述给定数字组件,包括确定所述给定数字组件的当前状态,其中所述给定数字组件的当前状态定义所述给定数字组件的当前合规状况,该状况指定所述给定数字组件当前是否符合策略准则;基于给定数字组件的状态被预测改变的频率来确定给定数字组件的更新后的扫描优先级;以及根据更新后的扫描优先级重新扫描给定的数字组件。
23.可以实现本说明书中描述的主题的特定实施例,以实现以下优点中的一个或多个。
24.与一些常规扫描系统(例如,简单地按固定时间表扫描的常规系统)相比,本说明书中描述的动态扫描技术可以更高效地扫描数字组件。即,本说明书中描述的系统可以以使得能够至少(例如,平均而言)像一些常规系统一样快地检测到数字组件的状态(例如,合规状况)的改变的方式动态地调度和执行扫描,而执行比常规系统少的总扫描。因此,所公开的扫描技术使得本说明书中描述的系统能够消耗比常规系统(例如,仅根据固定的时间表进行扫描)更少的资源(例如,计算资源)来执行扫描,而至少与常规系统一样快地检测数字组件的状态改变。
25.如贯穿本文档更详细描述的,所公开的扫描技术考虑了上下文信息,以确定何时应当扫描和/或重新扫描数字组件或另外的物品。照此,除非上下文信息指示需要扫描,否则本文描述的技术不需要浪费资源来执行对特定数字组件或其它物品的扫描。通过减少所需的扫描次数节省的资源可以分配给其它任务,从而减少处理资源的总数,这导致更高效的系统。此外,本文描述的技术还防止恶意数字组件的分发,这种分发会负面地影响否则将接收恶意数字组件的客户端设备的性能,使得本文描述的技术的使用也提高了客户端设备的性能。
26.本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。从说明书、附图和权利要求书中,该主题的其他特征、方面和优点将变得显而易见。
附图说明
27.图1示出了示例上下文自适应扫描系统。
28.图2是示例优先级映射函数的图示。
29.图3是示例局部过渡概率分布的累积分布函数(cdf)的图示。
30.图4是用于扫描数字组件的示例处理的流程图。
31.图5是示例环境的框图,其中数字组件分发系统从数字组件数据库传输数字组件以与电子文档一起呈现。
32.图6是示例计算机系统的框图。
33.在各个附图中,相同的附图标记和标记指示相同的元件。
具体实施方式
34.本说明书描述了一种扫描系统,该系统动态确定数字组件何时被扫描。每次扫描数字组件时,扫描系统都确定扫描优先级,该优先级表征应当多快地重新扫描数字组件,例如,直到数字组件被重新扫描为止的等待时间,然后基于扫描优先级执行后续扫描。
35.如在本文档中通篇使用的,短语“数字组件”是指数字内容或数字信息的离散单元,其可以包括例如视频剪辑、音频剪辑、多媒体剪辑、图像、文本段或统一资源定位符(url)中的一个或多个。数字组件可以作为单个文件或文件的集合以电子方式存储在物理存储器设备中,并且数字组件可以采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括流视频、流音频、社交网络帖子、博客帖子和/或广告信息,使得广告是一种类型的数字组件。一般而言,数字组件由单个提供者或来源(例如,广告商、发布者或其它内容提供者)定义(或提供),但是从一个来源提供的数字分量可以用来自另一个来源的数据(例如,天气信息、实时事件信息或从其它来源获得的其它信息)增强。
36.如在本文档中通篇使用的,扫描数字组件是指确定数字组件的状态,例如,数字组件是否符合一个或多个策略准则。例如,扫描数字组件可以是指确定与数字组件中包括的url对应的登陆页面是否托管恶意软件(例如,病毒)。在这个示例中,仅在登录页面未托管恶意软件的情况下,策略准则才可以指定数字组件是“合规的”(即,符合策略准则)。登陆页面用于示例的目的,但是对数字组件的扫描可以包括对数字组件本身和/或由数字组件引用或链接到的任何网络位置的评估(例如,对其的扫描)。例如,用户与特定数字组件的交互可以使得客户端设备参与到多个网络位置的一系列重定向。在这个示例中,对数字组件的扫描可以包括对数字组件本身和/或一系列重定向中的任何网络位置的评估。
37.一般而言,数字组件的状态会随时间改变。在一个示例中,最初合规的数字组件在最终再次恢复为合规状况之前可能在一段时间内变得不合规。
38.扫描系统尝试高效地调度扫描,即,以这样一种方式:使得在最小化执行的扫描次数的同时能够快速检测数字组件状态的改变,从而减少扫描数字组件所需的计算资源量。为此,在扫描数字组件之后,扫描系统基于数字组件的当前“上下文”自适应地确定数字组件的扫描优先级。
39.数字组件的上下文可以是指与(例如,基于对记录的扫描调度数据的分析)预测数字组件的状态多快地改变相关的任何种类的数据。例如,数字组件的当前上下文可以基于数字组件的当前状态、数字组件的当前扫描索引(即,数字组件已被扫描的次数)、从历史导出的统计信息或可用扫描结果的窗口化历史(例如,给定时间窗口中合规和不合规的扫描结果的数量)或其组合。
40.一般而言,扫描系统可以为具有与状态的更快改变相关的当前上下文的数字组件确定更高的扫描优先级(例如,直到被重新扫描为止更短的等待时间)。类似地,扫描系统可以为具有与状态的更慢改变相关的当前上下文的数字组件确定更低的扫描优先级(例如,直到被重新扫描为止更长的等待时间)。
41.在一些实施方式中,如果作为扫描的结果已经确定数字组件不符合策略准则,那
么扫描系统调用安全策略。例如,安全策略可以包括以下至少之一:传输或输出通知消息,该通知消息指示数字组件不符合策略准则,或者隔离该数字组件以防止该数字组件被执行。
42.这些特征和其它特征将在下面更详细地描述。
43.图1示出了示例上下文自适应扫描系统100。上下文自适应扫描系统100是被实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。
44.上下文自适应扫描系统100被配置为针对由数字组件索引104索引的数字组件自适应地调度扫描。
45.对于多个数字组件中的每一个,数字组件索引104包括指定以下内容的数据:(i)数字组件,以及(ii)当前扫描优先级,该优先级表征应当多快重新扫描数字组件。指定数字组件的数据可以是例如指向存储数字组件的存储器位置的指针。指定当前扫描优先级的数据可以是例如直到数字组件被重新扫描为止的等待时间,或者是无单位的数字优先级值(例如,1到10之间的数字)。系统100可以在例如(例如,在云计算环境中的)物理数据存储设备或逻辑数据存储区域中的各种位置中的任何位置维护数字组件索引104。
46.本说明书主要参考对数字组件的扫描来描述扫描系统100。在一些实施方式中,系统100可以被配置为扫描物理物品,例如设备(烟雾警报器或汽车)或建筑物(例如,桥梁),而不是扫描数字组件。下面将更详细地描述扫描物理物品的一些示例。
47.系统100包括选择引擎106、扫描引擎102和优先级更新引擎108。
48.选择引擎106被配置为基于其相应的当前扫描优先级来选择由数字组件索引104索引的数字组件以进行扫描。例如,当直到应当重新扫描数字组件为止的等待时间过去时,选择引擎106可以选择用于扫描的数字组件。作为另一个示例,选择引擎106可以连续地选择具有最高优先级值的数字组件进行扫描。
49.在一些情况下,数字组件索引104将数字组件的分组定义为不同的类别,并且选择引擎106可以基于类别以及当前的扫描优先级来选择扫描的数字组件。在一个示例中,数字组件索引104可以将数字组件分组为三个类别:(i)尚未扫描的数字组件、(ii)已经是一个或多个近期用户投诉的主体的数字组件,以及(iii)已被扫描并且已经不是近期用户投诉主体的数字组件。在这个示例中,选择引擎106可以对第一或第二类别中的数字组件(即,尚未扫描的或作为近期用户投诉的主体的数字组件)进行优先级排序,以扫描其余的数字组件,而不管当前的扫描优先级。
50.用户可以通过各种方式中的任一种投诉数字组件。例如,用户可以通过与包括在数字组件中的元素(例如,按钮)交互来投诉用户在设备上呈现的数字组件,该元素使用户能够将数字组件标记为不合规的。
51.扫描引擎102被配置为扫描由选择引擎106选择用于扫描的数字组件。扫描数字组件是指(从数字组件的多个可能状态)确定数字组件的状态,例如,数字组件是否符合一个或多个策略准则。例如,扫描数字组件可以是指确定与数字组件中包括的url对应的登陆页面(或任何其它网络位置)是否托管恶意软件(例如病毒)、确定数字组件是否包括不适当的(例如,令人反感的或非法的)内容,或两者兼而有之。在这个示例中,仅在登录页面未托管恶意软件并且数字组件不包括不适当的内容的情况下,才可以确定数字组件合规。
52.在一个示例中,系统100可以使用自动扫描技术来扫描数字组件,该自动扫描技术分析数字组件的内容以确定该数字组件是否符合策略准则。自动扫描技术可以包括使用分类模型来处理数字组件中包括的文本、图像或视频数据,该分类模型被配置为生成表征文本、图像或视频数据是否不合适的输出。自动扫描技术还可以包括使用分类模型来处理指定与数字组件中包括的url对应的登录页面的内容的超文本标记语言(html)代码,该分类模型被配置为生成表征登录页面是否包含恶意软件的输出。可以使用受监督或不受监督的机器学习技术来训练分类模型。
53.如早前所述,系统100可以被配置为扫描物理物品(例如,设备或建筑物)。扫描设备或建筑物可以是指例如确定设备或建筑物的物理状况(例如,设备或建筑物是否生锈或状况不佳)。在这个示例中,仅在设备或建筑物的物理状况使其能够安全操作的情况下,才可以确定设备或建筑物是合规的。扫描引擎102可以通过生成对维护技术人员检查设备或建筑物的请求来扫描设备或建筑物。
54.优先级更新引擎108被配置为确定由扫描引擎102扫描的数字组件的更新后的扫描优先级112。更新后的扫描优先级112表征应当多快重新扫描数字组件。为了确定数字组件的更新后的扫描优先级,优先级更新引擎108确定数字组件的当前“上下文”,然后使用映射函数将当前上下文映射到定义数字组件的更新后的扫描优先级的数据。下面是确定数字组件当前上下文的一些示例。
55.在一个示例中,系统可以基于以下一项或多项来确定数字组件的当前上下文:数字组件的当前合规状况、数字组件的当前扫描索引(即,指定数字组件已经被扫描了多少次)、自第一次扫描数字组件以来的持续时间、数字组件已经通过数字组件分发系统被传输以在用户设备处与电子文档一起呈现的次数(例如,如参考图5所描述的那样)、数字组件已经在用户设备处与哪些电子文档一起呈现、已经呈现了数字组件的用户设备的特性(例如,操作系统、浏览器类型和计算平台(例如,台式机或移动设备))、扫描数字组件的计算复杂度(例如,处理时间)以及上次扫描数字组件的(例如,数据中心的)地理位置。
56.在另一个示例中,系统可以基于以下一项或多项来确定设备或建筑物的当前上下文:设备或建筑物的使用频率(例如,汽车行驶的英里数或已越过桥梁的车辆的数量)以及设备或建筑物当前所处的天气条件(例如,雪或雨)。
57.优先级更新引擎108可以以多种方式中的任何一种来表示数字组件的当前上下文,例如,作为数值的有序集合,诸如数值的向量或矩阵。在一个示例中,优先级更新引擎108可以将数字组件的当前上下文表示为具有两个分量的向量:第一分量,其可以采用集合{0,1}中的值并定义数字组件的当前合规状况;以及第二分量,其可以采用非负整数值并定义数字组件当前扫描索引。
58.对于多个可能的当前上下文中的每一个,由优先级更新引擎108使用的映射函数(在本说明书中称为“优先级映射函数”)定义了从可能的当前上下文到定义对应的扫描优先级的数据的映射。以下是一些示例。
59.在一个示例中,优先级映射函数定义了从每个可能的当前上下文到直接定义对应的扫描优先级的数据的映射,例如,直到应当重新扫描数字组件为止的等待时间。
60.在另一个示例中,优先级映射函数定义从每个可能的当前上下文到定义缩放因子的数据的映射,该缩放因子在与数字组件的默认扫描优先级结合(例如,相乘)时为数字组
件定义对应的更新后的扫描优先级。数字组件的默认扫描优先级是指由“默认”调度系统生成的扫描优先级。例如,具有当前上下文k的数字组件的更新后的扫描优先级可以通过下式给出:
61.t

(x)=t(x)
·
αkꢀꢀ
(1)
62.其中t

(x)是直到数字组件被重新扫描为止的等待时间,t(x)是数字组件x的默认等待时间,并且αk是与上下文k对应的缩放因子(即,如由优先级映射函数指定)。缩放因子可以被理解为定义对由默认调度系统生成的默认扫描优先级的调整,使得可以更高效地调度扫描。以下参考式(2)、(3)、(4)和(5)描述缩放因子的示例。
63.默认调度系统可以以多种方式中的任何一种来确定数字组件的默认扫描优先级。在一个示例中,默认调度系统可以确定默认扫描优先级,该优先级使得数字组件按照固定的时间表被重新扫描,例如,每小时一次或每天一次。在另一个示例中,默认调度系统可以基于数字组件分发系统多频繁地传输数字组件以在用户设备处与电子文档一起呈现来确定数字组件的默认扫描优先级。
64.图2是示例优先级映射函数200的图示。优先级映射函数200定义从多个可能的当前上下文202-a-202-n中的每一个到定义对应的扫描优先级204-a-204-n的数据的映射。在这个示例中,数字组件的每个可能的当前上下文被表示为向量206,其包括:(i)数字组件的当前合规状况208,以及(ii)数字组件的当前扫描索引210。
65.优先级映射函数可以通过分析表征数字组件集合的扫描历史的记录的数据来确定。对于每个数字组件,记录的数据记录:何时数字组件被扫描、数字组件每次在其被扫描时的相应状态(例如,合规状况),以及数字组件在每次其被扫描时的相应上下文。
66.广义上讲,优先级映射函数可以将与(即,在记录的数据中)状态的更快改变相关的上下文映射到更高的扫描优先级(例如,直到被重新扫描为止更短的等待时间)。类似地,优先级映射函数可以将与状态的更慢改变相关的上下文映射到更低的扫描优先级(例如,直到被重新扫描为止更长的等待时间)。例如,优先级映射函数可以以以下方式将上下文映射到扫描优先级:对于数字组件的每个可能的上下文,使得数字组件的状态将在该数字组件下一次被扫描之前改变的可能性是相同的。
67.接下来描述一些示例优先级映射函数。
68.在一个示例中,可能的当前上下文可以由变量k索引并且可以采用m≥1个不同的值,并且优先级映射函数可以将当前上下文k映射到由下式给出的对应缩放因子αk:
[0069][0070]
其中qk表示在数字组件的当前上下文为k的情况下数字组件的状态(例如,合规状况)将在数字组件的当前扫描和下一次扫描之间改变的“交叉”概率(可能性),并且pm表示数字组件的当前上下文的值为m的“上下文”概率。
[0071]
在式(2)的特定示例中,数字组件的当前上下文可以由二维向量[i,j]定义。向量的第一个分量i是非负整数值,其表示数字组件的当前扫描索引。向量的第二个分量j是指示数字组件的当前合规状况的二进制值(例如,其中0指示不合规并且1指示合规)。优先级
映射函数可以将上下文[i,j]映射到由下式给出的对应缩放因子:
[0072][0073]
其中qi(1|0)表示在扫描索引i处不合规的数字组件将在扫描索引i+1处合规的交叉概率,qi(0|1)表示在扫描索引i处合规的数字组件将在扫描索引i+1处不合规的交叉概率,pi(0)表示数字组件在扫描索引i处不合规的概率,并且pi(1)表示数字组件在扫描索引i处合规的概率。
[0074]
在某些情形下,快速检测合规状况从“合规”到“不合规”的改变可能比快速检测合规状况从“不合规”到“合规”的改变更重要。可以调整由式(3)定义的优先级映射函数,以包括加权因子w0和w1,其中w0为非负数,其指示检测从“不合规”到“合规”的合规状况改变的重要性,w1为非负数,其指示检测从“合规”到“不合规”的合规状况改变的重要性,并且优先级映射函数由下式给出:
[0075][0076]
其中式(4)中的变量的定义方式与式(3)相同。
[0077]
可以通过分析所记录的数据来确定用于定义参考式(2)、(3)和(4)描述的优先级映射函数的交叉概率和上下文概率。例如,可以将交叉概率qi(1|0)确定为以下项的比率:(i)从扫描索引i到扫描索引i+1数字组件从不合规过渡到合规的次数;以及(ii)在扫描索引i处数字组件被扫描并确定为不合规的次数。类似地,可以将交叉概率qi(0|1)确定为以下项的比率:(i)从扫描索引i到扫描索引i+1数字组件从合规过渡到不合规的次数,以及(ii)在扫描索引i处数字组件被扫描并确定为合规的次数。可以将不合规概率pi(0)确定为以下项的比率:(i)在扫描索引i处数字组件被扫描并确定为不合规的次数;以及(ii)被扫描至少i次的数字组件的数量。可以将合规概率pi(1)确定为以下项的比率:(i)在扫描索引i处数字组件被扫描并确定为合规的次数;以及(ii)被扫描至少i次的数字组件的数量。
[0078]
在优先级映射函数的另一个示例中,可能的当前上下文可以由扫描索引i表示,并且优先级映射函数可以将当前上下文i映射到由下式给出的对应缩放因子αi:
[0079][0080]
其中ui是对于其数字分量的合规状况从扫描i到扫描i+1改变的记录的数据中的每个数字组件在扫描i和扫描i+1之间经过的持续时间之和,ti是对于记录的数据中每个数字组件在扫描i和扫描i+1之间经过的持续时间之和,并且n是最大扫描索引。
[0081]
在优先级映射函数的另一个示例中,可以通过扫描索引i来索引数字组件的可能的当前上下文,并且优先级映射函数可以将扫描索引i映射到在扫描i之后直到数字组件应当被再次扫描为止的对应的等待时间。在这个示例中,可以使用“局部过渡”概率分布来确定优先级映射函数。
[0082]
对于自第一次扫描数字组件以来的多个时间中的每个时间,局部过渡概率分布定义数字组件的状态(例如,合规状况)将在那个时间(或在那个时间附近的单位持续时间内)改变的相应概率。图3图示了局部过渡概率分布的累积分布函数(cdf)的示例。曲线图300的水平轴表示自数字组件的第一次扫描以来经过的时间,而垂直轴表示状态改变的累积概率。即,自第一次扫描以来经过的特定时间的曲线图300的高度指示自第一次扫描经过以来的特定时间之前数字组件的状态将改变一次或多次的概率。
[0083]
可以通过使用局部过渡概率分布来识别持续时间[0,t
max
]到非重叠间隔的划分来确定优先级映射函数,其中数字组件的状态在每个间隔中改变的概率是相同的(或在适当的公差范围内)。数字组件的状态将在间隔[a,b]中改变的概率可以被确定为p(b)-p(a),其中p(
·
)是局部过渡概率分布的cdf。
[0084]
在识别出间隔之后,可以将优先级映射函数指定为将每个扫描索引映射到由对应间隔的持续时间给出的等待时间。在图3中所描绘的示例中,优先级映射函数可以将扫描索引i=1映射到与间隔302-a对应的持续时间,将扫描索引i=2映射到与间隔302-b对应的持续时间,将扫描索引i=3映射到与间隔302-c对应的持续时间,并将索引扫描i=4映射到与间隔302-d对应的持续时间。
[0085]
可以通过处理记录的数据来确定局部过渡概率分布。例如,自第一次扫描以来数字组件的状态将在特定时间t(或在该时间附近的单位时间间隔内)改变的概率p(t)可以被确定为:
[0086][0087]
其中|c
t
|是记录的数据中在时间t之前和之后都被扫描的数字组件的数量,d
t
是记录的数据中在紧接时间t之前的扫描和紧接时间t之后的扫描之间改变状态的数字组件的集合,b(x)表示的时间紧接在数字组件x出现的时间t之后发生的扫描的时间,并且a(x)表示的时间紧接在数字组件x出现的时间t之前发生的扫描的时间。
[0088]
基于局部过渡概率分布(如上所述)确定的优先级映射函数取决于将持续时间[0,t
max
]划分成的间隔数。为了识别适当的(例如,最优的)间隔数,可以对于每个k∈{1,...,k
max
}将持续时间[0,t
max
]划分为k个间隔(如早前所述),其中k
max
为正整数,并且可以为每个
k确定相应的“不确定时间”:
[0089][0090]
其中第k个间隔由[ak,bk]给出,p(
·
)是局部过渡概率分布的cdf,并且是时间ak之后被扫描的(即,在记录的数据中的)数字组件的数量。不确定时间uk是对数字组件的连续扫描之间可能经过的总持续时间的估计,其中,如果已使用与划分成k个间隔对应的优先级映射函数对扫描进行了调度,那么数字组件的状态在连续扫描之间改变。(即,与记录的数据中数字组件的扫描的原始调度对应的)原始不确定时间uo可以通过对连续扫描之间经过的持续时间求和来确定,其中数字组件的状态在连续扫描之间改变。可以将用于确定优先级映射函数的间隔数识别为具有小于原始不确定时间uo的对应不确定时间uk的最小k。
[0091]
图4是用于扫描数字组件的示例处理400的流程图。为了方便起见,将处理400描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的上下文自适应扫描系统(例如,图1的上下文自适应扫描系统100)可以执行处理400。
[0092]
系统从各自具有当前扫描优先级的数字组件集合中选择要扫描的数字组件(402)。系统基于数字组件的当前扫描优先级来选择数字组件。数字组件的当前扫描优先级可以指定例如直到数字组件下一次被扫描为止的等待时间。
[0093]
系统扫描数字组件,包括确定数字组件的状态(404)。数字组件的状态可以指定数字组件的合规状况,即,数字组件是否符合一个或多个策略准则。在一个示例中,数字组件指定登陆页面,扫描数字组件包括确定登陆页面是否托管恶意软件,并且仅在登陆页面不托管恶意软件的情况下才确定数字组件满足策略准则。
[0094]
系统确定数字组件的当前上下文(406)。系统可以基于以下一项或多项来确定数字组件的当前上下文:数字组件的当前状态(例如,合规状况)、数字组件的当前扫描索引、已传输数字组件以在用户设备处与电子文档一起呈现的次数,以及数字组件在用户设备处与哪些电子文档一起呈现。
[0095]
系统基于数字组件的当前上下文确定数字组件的更新后的扫描优先级(408)。数字组件的更新后的扫描优先级可以指定直到下一次扫描该给定数字组件为止的等待时间。系统可以通过使用映射函数将数字组件的当前上下文映射到定义数字组件的更新后的扫描优先级的数据来确定更新后的扫描优先级。
[0096]
在一些实施方式中,定义更新后的扫描优先级的数据可以包括缩放因子,并且系统可以按照以下各项的函数来确定数字组件的更新后的扫描优先级:(i)数字组件的默认扫描优先级;以及(ii)缩放因子。例如,该函数可以包括默认扫描优先级和缩放因子的乘积。默认扫描优先级可以由默认调度系统确定。
[0097]
映射函数可以基于预测数字组件的状态(例如,合规状况)改变的频率(例如,基于参考式(2)、(3)和(4)描述的“交叉”概率)将数字组件的当前上下文映射到定义数字组件的更新后的扫描优先级的数据。系统可以将预测数字组件的状态改变的频率确定为例如基于数字组件的当前上下文、给定数字组件的状态将在该数字组件下一次被扫描之前改变的可能性。该系统还可以基于局部过渡概率分布来确定映射函数。
[0098]
为了确定映射函数,系统处理记录的数据,这些数据表征:特定数字组件扫描何时
被扫描了、数字组件在其被扫描时的状态(例如,合规状况)以及数字组件在其被扫描时的上下文。
[0099]
系统根据数字组件的更新后的扫描优先级重新扫描数字组件(410)。在一个示例中,针对数字组件的更新后的扫描优先级可以指定直到数字组件被重新扫描为止的持续时间,并且一旦经过了该持续时间,系统就可以重新扫描数字组件。
[0100]
图5是示例环境500的框图,其中数字组件分发系统510从数字组件数据库516传输数字组件以与电子文档一起呈现。上下文自适应扫描系统100可以被用于扫描包括在数字组件数据库516中的数字组件,以确定它们是否符合一个或多个策略准则。例如,如果数字组件包括令人反感的内容,或者如果由数字组件指定的登录页面托管恶意软件,那么可以将数字组件标识为不符合策略准则。数字组件分发系统510可以避免传输不符合策略准则的数字组件。
[0101]
示例环境500包括网络502,诸如局域网(lan)、广域网(wan)、互联网或其组合。网络502连接电子文档服务器504、客户端设备506、数字组件服务器508和数字组件分发系统510(也称为“分发系统”510)。示例环境500可以包括许多不同的电子文档服务器504、客户端设备506和数字组件服务器508。
[0102]
客户端设备506是能够通过网络502请求和接收资源的电子设备。示例客户端设备506包括个人计算机、移动通信设备(例如,移动电话)以及可以通过网络502发送和接收数据的其它设备。客户端设备506通常包括用户应用,放如web浏览器,以促进通过网络502发送和接收数据,但是由客户端设备506执行的原生应用也可以促进通过网络502的数据的发送和接收。
[0103]
电子文档是在客户端设备506处呈现内容集合的数据。电子文档的示例包括网页、文字处理文档、便携式文档格式(pdf)文档、图像、视频、搜索结果页面和馈送源。诸如安装在移动设备、平板电脑或台式计算设备上的应用之类的原生应用(例如,“app”)也是电子文档的示例。可以由电子文档服务器504(“电子doc服务器”)将电子文档提供给客户端设备506。例如,电子文档服务器504可以包括托管发布者网站的服务器。在该示例中,客户端设备506可以发起对给定发布者网页的请求,并且托管给定发布者网页的电子服务器504可以通过发送在客户端设备506处发起启动给定网页的呈现的机器可执行指令来响应该请求。
[0104]
在另一个示例中,电子文档服务器504可以包括客户端设备506可以从其下载app的app服务器。在这个示例中,客户端设备506可以下载在客户端设备506处安装app所需的文件,然后本地执行下载的app。
[0105]
电子文档可以包含各种内容。例如,电子文档可以包括在电子文档自身内和/或不随时间改变的静态内容(例如,文本或其它指定的内容)。电子文档还可以包含可以随时间或根据每个请求而改变的动态内容。例如,给定电子文档的发布者可以维护用于填充电子文档的各部分的数据源。在这个示例中,给定的电子文档可以包括一个或多个标签或脚本,当给定的电子文档被客户端设备506处理(例如,呈现或执行)时,该标签或脚本使客户端设备506向数据源请求内容。客户端设备506将从数据源获得的内容集成到给定的电子文档中,以创建包括从数据源获得的内容的复合电子文档。
[0106]
在一些情形下,给定的电子文档可以包括引用数字组件分发系统510的一个或多个数字组件标签或数字组件脚本。在这些情形下,当给定的电子文档由客户端设备506处理
时,数字组件标签或数字组件脚本由客户端设备506执行。数字组件标签或数字组件脚本的执行将客户端设备506配置为生成对一个或多个数字组件512的请求(称为“组件请求”),该请求通过网络502传输到数字组件分发系统510。例如,数字组件标签或数字组件脚本可以使客户端设备506能够生成包括报头和有效载荷数据的分组化的数据请求。组件请求512可以包括事件数据,该事件数据指定诸如从中请求数字组件的服务器的名称(或网络位置)、请求的设备(例如,客户端设备506)的名称(或网络位置)和/或数字组件分发系统510可以用来选择响应于请求而提供的一个或多个数字组件的信息之类的特征。客户端设备506通过网络502(例如,电信网络)将组件请求512传输到数字组件分发系统510的服务器。
[0107]
组件请求512可以包括指定其它事件特征的事件数据,诸如被请求的电子文档以及可以在其上呈现数字组件的电子文档的位置的特性。例如,指定对将在其中呈现数字组件的电子文档(例如,网页)的引用(例如,url)的事件数据、可用于呈现数字组件的电子文档的可用位置、可用位置的尺寸和/或有资格(eligible)在位置中呈现的媒体类型可以被提供给数字组件分发系统510。类似地,指定与电子文档相关联的关键字(“文档关键字”)或电子文档所引用的实体(例如,人、地点或事物)的事件数据也可以包括在组件请求512中(例如,作为有效载荷数据)并提供给数字组件分发系统510,以促进识别有资格与电子文档一起呈现的数字组件。事件数据还可以包括从客户端设备506提交以获得搜索结果页面的搜索查询、和/或指定搜索结果的数据和/或搜索结果中包括的文本、可听或其它视觉内容。
[0108]
组件请求512还可以包括与其它信息相关的事件数据,诸如客户端设备的用户已提供的信息、指示从由提交组件请求的州或区域的地理信息,或为将在其中显示数字组件的环境提供上下文的其它信息(例如,组件请求的一天中的时间、组件请求的一周中的一天、将在其上显示数字组件的设备的类型(诸如移动设备或平板设备))。组件请求512可以例如通过分组化的网络传输,并且组件请求512本身可以被格式化为具有报头和有效载荷数据的分组化的数据。报头可以指定分组的目的地,并且有效载荷数据可以包括以上讨论的任何信息。
[0109]
组件分发系统510响应于接收到组件请求512和/或使用组件请求512中包括的信息来选择将与给定电子文档一起呈现的数字组件。在一些实施方式中,在不到一秒钟的时间内选择数字组件(使用本文所述的技术),以避免可能由于数字组件的延迟选择而造成的错误。例如,响应于组件请求512而提供数字组件的延迟会导致客户端设备506处的页面加载错误,或者甚至导致在电子文档的其它部分在客户端设备506处被呈现之后电子文档的部分仍然未填充。而且,随着向客户端设备506提供数字组件的延迟增加,当将数字组件递送到客户端设备506时,电子文档更有可能将不再在客户端设备506处呈现,从而负面地影响用户对电子文档的体验。另外,例如,如果在提供数字组件时不再在客户端设备506处呈现电子文档,那么提供数字组件的延迟会导致数字组件的递送失败。
[0110]
在一些实施方式中,数字组件分发系统510在分布式计算系统中实现,该分布式计算系统包括例如服务器和多个计算设备514的集合,它们互连并且响应于请求512而识别和分发数字组件。多个计算设备514的集合一起操作,以从数百万的可用数字组件(dc1-x)的语料库中识别出有资格在电子文档中呈现的数字组件的集合。数百万的可用数字组件可以在例如数字组件数据库516中被索引。每个数字组件索引条目可以引用对应的数字组件和/或包括有助于(例如,调节或限制)对应数字组件的分发/传输的分发参数(dp1-dpx)。例如,
分发参数可以通过要求组件请求包括与数字组件的分发参数之一匹配(例如,或者精确地或以某种预先指定的相似性水平)的至少一个准则来有助于数字组件的传输。
[0111]
在一些实施方式中,用于特定数字组件的分发参数可以包括必须(例如,通过在组件请求512中指定的电子文档、文档关键字或术语)匹配的分发关键字,以便数字组件有资格进行呈现。换句话说,分发参数被用于触发数字组件通过网络502的分发(例如,传输)。分配参数还可以要求组件请求512包括指定特定地理区域(例如,国家或州)的信息和/或指定组件请求512源自特定类型的客户端设备(例如,移动设备或平板设备)的信息,以便使数字组件有资格进行呈现。
[0112]
分发参数还可以指定例如用于通过例如组件评估处理评估数字组件(例如,在其它可用数字组件中)进行分发/传输的资格的资格值(例如,排名得分、出价或某个其它指定的值)。在一些情况下,资格值可以指定数字组件的提供者愿意响应于数字组件的传输(例如,对于归因于数字组件的呈现的具体事件的每个实例,诸如用户与数字组件的交互)而提交的最大补偿金额。
[0113]
有资格的数字组件的识别可以被分割为多个任务517a-517c,然后这多个任务在多个计算设备514的集合内的计算设备之间指派。例如,集合514中的不同计算设备可以各自分析数字组件数据库516的不同部分以识别具有与组件请求512中包括的信息匹配的分发参数的各种数字组件。在一些实施方式中,集合514中的每个给定的计算设备可以分析不同的数据维度(或维度的集合)并将分析的结果(结果1-结果3)518a-518c传递(例如,传输)回数字组件分发系统510。例如,由集合514中的每个计算设备提供的结果518a-518c可以识别响应于组件请求有资格分发的数字组件的子集和/或具有某些分发参数的数字组件的子集。数字组件的子集的识别可以包括例如将事件数据与分发参数进行比较,以及识别具有与事件数据的至少一些特征匹配的分发参数的数字组件的子集。
[0114]
数字组件分发系统510汇总从多个计算设备514的集合接收的结果518a-518c,并使用与汇总结果关联的信息来:(i)选择将响应于请求512而提供的一个或多个数字组件;以及(ii)确定一个或多个数字组件的传输要求。例如,数字组件分发系统510可以基于一个或多个组件评估处理的结果来选择获胜(winning)的数字组件的集合(一个或多个数字组件)。进而,数字组件分发系统510可以通过网络502生成并传输答复数据520(例如,表示答复的数字数据),该数据使客户端设备506能够将获胜的数字组件集合集成到给定的电子文档中,使得获胜的数字组件的集合和电子文档的内容在客户端设备506的显示器上一起呈现。
[0115]
在一些实施方式中,客户端设备506执行包括在答复数据520中的指令,该指令配置并使得客户端设备506能够从一个或多个数字组件服务器获得获胜的数字组件的集合。例如,答复数据520中的指令可以包括网络位置(例如,统一资源定位符(url))和使客户端设备506向数字组件服务器508传输服务器请求(sr)521以从数字组件服务器508获得给定的获胜数字组件的脚本。响应于该请求,数字组件服务器508将识别在服务器请求521中指定的(例如,在存储多个数字组件的数据库内)给定获胜数字组件,并且向客户端设备506传输在客户端设备506处的电子文档中呈现给定的获胜数字组件的数字组件数据(dc数据)522。
[0116]
为了促进电子文档的搜索,环境500可以包括搜索系统550,该搜索系统550通过对
电子文档进行爬网和索引(例如,基于爬网的电子文档的内容来索引)来识别电子文档。可以基于数据与之相关联的电子文档来索引关于电子文档的数据。电子文档的索引的以及可选地为高速缓存的副本存储在搜索索引552(例如,(一个或多个)硬件存储器设备)中。与电子文档相关联的数据是表示电子文档中包括的内容的数据和/或电子文档的元数据。
[0117]
客户端设备506可以通过网络502向搜索系统550提交搜索查询。作为响应,搜索系统550访问搜索索引552以识别与搜索查询相关的电子文档。搜索系统550识别搜索结果的形式的电子文档,并且在搜索结果页面中将搜索结果返回给客户端设备506。搜索结果是由搜索系统550生成的数据,该数据识别响应于特定搜索查询(例如,与之相关)的电子文档,并且包括使客户端设备响应于用户与搜索结果的交互而从指定的网络位置(例如,url)请求数据的活动链接(例如,超文本链接)。示例搜索结果可以包括网页标题、从网页提取的文本的片段或图像的一部分以及网页的url。另一个示例搜索结果可以包括可下载应用的标题、描述可下载应用的文本的片段、描绘可下载应用的用户界面的图像和/或指向可从其向客户端设备506下载应用的位置的url。在一些情形下,搜索系统550可以是应用商店(或在线门户)的一部分或与之交互,可以从该应用商店下载应用以在客户端设备506处安装,以便呈现有关与提交的搜索查询相关的可下载应用的信息。像其它电子文档一样,搜索结果页面可以包括一个或多个插槽,在其中可以呈现数字组件(例如,广告、视频剪辑、音频剪辑、图像或其它数字组件)。
[0118]
为了选择响应于组件请求而要传输的数字组件,分发系统510可以识别响应于组件请求而有资格被传输的数字组件的集合。然后,分发系统510可以选择要通过例如拍卖过程传输的有资格的数字组件中的一个或多个。在一些实施方式中,分发系统510通过根据其相应的资格值对有资格的数字组件进行排名,并响应于组件请求而选择要传输的一个或多个排名最高的数字组件,来执行拍卖过程。
[0119]
例如,响应于组件请求,分发系统510可以将数字组件a、b和c识别为有资格被传输。在这个示例中,数字组件a的资格值为$5,数字组件b的资格值为$1,并且数字组件c的资格值为$5.5,其中数字组件的资格值表示与该数字组件相关联的出价。分发系统510可以根据其相应的资格值对数字组件(例如,以降序)进行排名:c、a、b。最后,分发系统510可以响应于组件请求而选择排名最高的数字组件c以进行传输。
[0120]
在响应于数字组件请求而选择要传输的数字组件之后,分发系统510确定针对所选择的数字组件的传输要求。传输要求指定响应于数字组件的传输而由数字组件的提供者执行的动作。例如,传输要求可以指定数字组件的提供者响应于数字组件的传输而提交一补偿金额。在一些情况下,补偿金额指定对于归因于数字组件的呈现的具体事件的每个实例(例如,用户与数字组件的交互)要提交的金额。
[0121]
分发系统510可以基于所选择的数字组件的资格值和/或响应于组件请求而被确定为有资格被传输的其它数字组件的资格值来确定所选择的数字组件的传输要求。例如,分发系统510可以响应于数字组件请求而将数字组件a、b和c识别为有资格传输,其中a、b和c具有分别为$5、$1和$5.5的资格值。分发系统510可以选择数字组件c用于传输(因为它具有最高资格值),并且可以从有资格的数字组件的资格值中将数字组件c的传输要求确定为下一个最高资格值。在这个示例中,下一个最高资格值是$5(即,数字组件a的资格值),因此分发系统510可以将数字组件c的传输要求确定为$5。
[0122]
图6是可以用于执行上述操作的示例计算机系统600的框图。系统600包括处理器610、存储器620、存储设备630和输入/输出设备640。组件610、620、630和640中的每一个可以例如使用系统总线650互连。处理器610能够处理在系统600内执行的指令。在一个实施方式中,处理器610是单线程处理器。在另一个实施方式中,处理器610是多线程处理器。处理器610能够处理存储在存储器620或存储设备630中的指令。
[0123]
存储器620存储系统600内的信息。在一个实施方式中,存储器620是计算机可读介质。在一个实施方式中,存储器620是易失性存储器单元。在另一个实施方式中,存储器620是非易失性存储器单元。
[0124]
存储设备630能够为系统600提供大容量存储。在一个实施方式中,存储设备630是计算机可读介质。在各种不同的实施方式中,存储设备630可以包括例如硬盘设备、光盘设备、由多个计算设备在网络上共享的存储设备(例如,云存储设备)或某个其它大容量存储设备。
[0125]
输入/输出设备640为系统600提供输入/输出操作。在一个实施方式中,输入/输出设备640可以包括一个或多个网络接口设备,例如,以太网卡、串行通信设备(例如,rs-232端口)和/或无线接口设备(例如,802.11卡)。在另一个实施方式中,输入/输出设备可以包括驱动器设备,该驱动器设备被配置为接收输入数据并将输出数据发送到其它输入/输出设备(例如,键盘、打印机和显示设备660)。但是,也可以使用其它实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
[0126]
虽然已经在图6中描述了示例处理系统,但是本说明书中描述的主题的实施方式和功能性操作可以在其它类型的数字电子电路或计算机软件、固件或硬件(包括本说明书中公开的结构及其等同结构,或它们中的一个或多个的组合)中实现。
[0127]
本说明书结合系统和计算机程序组件来使用术语“配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,这意味着系统已经在其上安装了在操作时使得系统执行操作或动作的软件、固件、硬件或它们的组合。对于要被配置为执行特定操作或动作的一个或多个计算机程序,这意味着该一个或多个程序包括指令,当由数据处理装置执行时,该指令使得该装置执行操作或动作。
[0128]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件(包括本说明书中公开的结构及其结构等同物)、或者它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,在有形的非瞬态存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制其操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。可替代地或另外地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,这些信号被生成以对信息进行编码以传输到合适的接收器装置以供由数据处理装置执行。
[0129]
术语“数据处理设备”是指数据处理硬件,并且涵盖用于处理数据的所有类型的装置、设备和机器,作为示例,包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或还包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,装置可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0130]
计算机程序(也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、或者声明性或过程性语言;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分(例如标记语言文档中存储的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机或位于一个站点或分布在多个站点并通过数据通信网络互连的多个计算机上执行。
[0131]
在本说明书中,术语“引擎”广泛地用于指被编程为执行一个或多个具体功能的基于软件的系统、子系统或处理。一般而言,引擎将被实现为安装在一个或多个位置中的一个或多个计算机(例如,包括一个或多个处理器)上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,可以在相同的(一个或多个)计算机上安装并运行多个引擎。
[0132]
在本说明书中描述的处理和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流程还可以由专用逻辑电路(例如,fpga或asic)执行,或者由专用逻辑电路和一个或多个编程的计算机的组合来执行。
[0133]
适于执行计算机程序的计算机可以基于通用或专用微处理器或这两者,或者任何其它类型的中央处理单元。一般而言,中央处理单元将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路系统补充或结合在其中。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或者被可操作地耦合到一个或多个大容量存储设备以从其接收数据或向其传送数据或两者兼有。但是,计算机不需要这样的设备。而且,计算机可以嵌入到另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备(例如通用串行总线(usb)闪存驱动器),仅举几个示例。
[0134]
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例,包括:半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd-rom盘。
[0135]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器))以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求而向用户的设备上的web浏览器发送网页。而且,计算机可以通过将文本消息或其它形式的消息发送到个人设备(例如,在运行消息收发应用的智能电话)并作为回应从用户接收响应消息
来与用户交互。
[0136]
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或产出(即,推理)工作负载的公共部分和计算密集部分。
[0137]
可以使用机器学习框架(例如,tensorflow框架、microsoft cognitive toolkit框架、apache singa框架或apache mxnet框架)来实现和部署机器学习模型。
[0138]
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或web浏览器或app的客户端计算机,用户可以通过该图形用户界面、web浏览器或app与本说明书中描述的主题的实施方式进行交互),或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)相互连接。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。
[0139]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户机和服务器的关系是通过在各自的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器向用户设备传输数据,例如,html页面,以例如用于向与充当客户端的设备交互的用户显示数据并从该用户接收用户输入。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0140]
虽然本说明书包含许多具体的实施细节,但这些不应当被解释为对任何发明的范围或所要求保护的范围的限制,而是对可能对特定发明的特定实施例特定的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地实现或以任何合适的子组合来实现。而且,尽管特征可以在上面被描述为以某些组合起作用,甚至最初被要求这样保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
[0141]
类似地,尽管以特定次序在附图中描绘并在权利要求中阐述了操作,但这不应当被理解为要求以所示的特定次序或以顺序的次序执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。而且,上述实施例中各种系统模块和组件的分离不应当被理解为在所有实施例中都要求这种分离,并且应当理解的是,所描述的程序组件和系统一般可以一起集成在单个软件产品中或者封装到多个软件产品中。
[0142]
已经描述了本主题的特定实施例。其它实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的次序执行,并且仍然获得期望的结果。作为一个示例,附图中描绘的处理不一定要求所示的特定次序或顺序的次序来获得期望的结果。在一些情况下,多任务处理和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1