评估机器学习模型的准确度的制作方法

文档序号:16506378发布日期:2019-01-05 09:03阅读:261来源:国知局
评估机器学习模型的准确度的制作方法

本申请要求题为“assessingaccuracyofamachinelearningmodel”、于2016年12月30日提交的美国专利申请号62/440,774的优先权的权利,其以其整体内容通过引用并入本文。



背景技术:

机器学习模型能够被使用在各种工业中。随着自主地感测环境条件并且做出决策的连接设备的快速增长,机器学习系统正变得越来越流行。确保机器学习模型的准确度是最重要的,因为从不准确的机器学习模型所生成的结果能够导致不正确的决策,其当被部署在某些场景中时可能不利地影响已部署机器学习模型的系统的性能。



技术实现要素:

由使用机器学习模型的计算系统所生成的确定和推荐可以倾向于比由使用统计模型的计算系统所生成的那些显著地更好或者更坏的确定和推荐。如本文所描述的,统计模型提供机器学习模型未远离质量确定和推荐的基线保证。

在一些实施方式中,接收数据请求的服务器将第一比例的接收到的请求指配到第一组并且将第二比例的请求指配到第二组。服务器使用机器学习模型选择对指配到第一组的请求的响应并且使用统计模型选择对指配到第二组的请求的响应。服务器基于相应选择的响应获得指示每个模型的性能水平的反馈信息,并且将机器学习模型的总体性能水平与统计模型的总体性能水平相比较,每个总体性能水平使用对应的反馈信息确定。反馈信息可以包括例如每个响应是否客观地或主观地使相应的响应接收者满意,是否如由小于在后续请求之前的最小阈值时间长度指示响应被拒绝,响应内的数据是否被利用或者起作用,并且如果是的话,利用是否已满足可测量的判据。在一些实施方式中,指配到第一组的请求的比例和指配到第二组的请求的比例可以基于将机器学习模型的总体性能水平与统计模型的总体性能水平相比较的结果而改变。例如,当比较指示机器学习模型的总体性能水平低于基准阈值时,那么服务器减少指配到第一组的请求的第一比例。在一些实施方式中,基准阈值基于或者等于统计模型的总体性能水平。在一些实施方式中,当比较指示机器学习模型的总体性能水平大于基准阈值至少间隔阈值时,服务器增加指配到第一组的请求的第一比例。在一些实施方式中,请求是针对内容。

平衡机器学习模型与统计模型之间的内容分发提供在组合良好训练的机器学习模型用于内容选择的益处时的基线保证。在一些实施方式中,接收对内容项的请求的服务器将第一比例的接收到的请求指配到第一组并且将剩余的请求指配到第二组。服务器使用机器学习模型选择对指配到第一组的请求做出响应的所请求的内容项的变化并且使用统计模型选择用于指配到第二组的请求的内容变化。服务器获得性能信息,例如对不同变化的接受率,并且比较被用于内容选择的不同的模型的性能。指配到机器学习模型的观众份额当其比统计模型表现更好时增加,并且当其比统计模型表现更差时减小。

在至少一个方面中,描述了由包括一个或多个物理服务器的数据处理系统接收包括来自第一客户端设备的第一数据请求和来自第二客户端设备的第二数据请求的第一多个数据请求的方法。方法包括:由数据处理系统基于将多个数据请求的第一部分分配到第一响应池并且将多个数据请求的第二部分分配到第二响应池的分配策略,将第一数据请求指配到从多个响应池由数据处理系统所选择的第一响应池,第一响应池对应于机器学习模型并且第二响应池对应于统计模型;并且由数据处理系统基于分配策略将第二数据请求指配到从多个响应池由数据处理系统所选择的第二响应池。方法包括:由数据处理系统利用由数据处理系统使用机器学习模型选择的第一响应对第一请求做出响应并且利用由数据处理系统使用统计模型选择的第二响应对第二请求做出响应。方法包括:由数据处理系统从第一客户端设备获得指示机器学习模型的性能水平的第一反馈信息并且由数据处理系统从第二客户端设备获得指示统计模型的性能水平的第二反馈信息。方法包括:由数据处理系统将使用第一反馈信息确定的机器学习模型的总体性能水平与使用第二反馈信息确定的统计模型的总体性能水平相比较,并且响应于比较而更新分配策略。方法包括:在更新分配策略之后接收第二多个数据请求,并且由数据处理系统根据更新的分配策略将第二多个数据请求的第一子集指配到第一响应池并且将第二多个数据请求的第一子集指配到第二响应池。

在至少一个方面中,描述了一种平衡内容选择的方法。方法包括:由内容分发服务器从客户端设备接收对内容项的请求,内容分发服务器包括计算处理器和到数据网络的接口,请求是经由数据网络接收到的。方法包括:由内容分发服务器基于分发因子将接收到的请求指配到观众池,从观众池的集合选择所述观众池用于指配,所述观众池的集合包括接收使用机器学习模型参数化的内容的第一池和接收使用统计模型参数化的内容的第二池。方法包括:由内容分发服务器使用对应于指配的观众池的选择模式响应于接收到的请求而选择内容变化,并且经由数据网络将所选择的内容变化递送到客户端设备。方法包括:由内容分发服务器获得表示递送的内容变化的用户接受的接受指示符,并且由内容分发服务器基于所获得的接受指示符和指配的观众池而更新分发因子。

在至少一个方面中,描述了一种用于平衡内容选择的系统。系统包括到数据网络的接口、计算处理器和存储由计算处理器可执行的指令的计算机可读存储器。当被执行时,所存储的指令使得计算处理器:经由到数据网络的接口从客户端设备接收对内容项的请求并且基于分发因子将接收到的请求指配到观众池,从观众池的集合选择所述观众池用于指配,所述观众池的集合包括接收使用机器学习模型参数化的内容的第一池和接收使用统计模型参数化的内容的第二池。当被执行时,所存储的指令还使得计算处理器使用对应于指配的观众池的选择模式响应于接收到的请求而选择内容变化,经由数据网络将所选择的内容变化递送到客户端设备,获得表示递送的内容变化的用户接受的接受指示符,并且基于所获得的接受指示符和指配的观众池,更新分发因子。

附图说明

本公开的以上和相关目标、特征和优点将通过参考当结合附图理解时的以下详细描述更充分地理解,其中:

图1是网络环境中的示例分发系统的示图;

图2是用于对数据请求做出响应的示例方法的流程图;

图3a是用于基于分发因子分发内容变化的示例方法的流程图;

图3b是用于基于分发的内容的接受率而更新分发因子的示例方法的流程图;以及

图4是适于在所描述的各种实施方式中使用的示例计算系统的框图。

出于清晰的目的,可以并非每个部件被标记在每个附图中。附图不旨在按比例绘制。各附图中相似的附图标记和标号指示相似的元件。

具体实施方式

以下是涉及与基于机器学习模型和一个或多个统计模型的相应的性能结果的比较评估机器学习模型的准确度有关的方法、装置和系统的各种概念和其实施方式的更详细描述。上文所引入并且下面更详细地讨论的各种概念可以以许多方式中的任一个实现,因为所描述的概念不限于实施方式的任何特定方式。

特别地,本公开涉及用于基于机器学习模型和一个或多个统计模型的相应的性能结果的比较评估机器学习模型的准确度的系统和方法。机器学习系统依赖于在一些实例中可以是不准确或变得不准确的机器学习模型。例如,如果被提供到模型的训练数据是不准确的,则机器学习模型可以产生不准确的结果。其它时间,如果机器学习模型接受不正确的结果作为正确结果,则机器学习模型可能产生不准确的结果。由于机器学习模型连续地学习,因而其可能易于从不正确的结果学习,其可能不利地影响机器学习模型的准确度。

如本文所描述的,机器学习模型能够被使用在各种工业中。机器学习模型例如被用于分析大型数据集、进行预测或者推荐,并且标识模式和异常。机器学习模型例如被使用在以下各项中:图像识别(例如,面部识别、字符识别和图像匹配系统)、自然语言处理和翻译、交通路由(包括但不限于针对诸如偶然性或者道路施工的临时交通堵塞的车辆和行人交通路由)、连接设备(例如,“物联网”)、天气预报、选举预测、新闻和媒体分类(例如,标识流行文章和文章之间的连接)、娱乐推荐(包括但不限于音乐推荐“下一曲”推荐、电视和电影推荐等)、用于将接收器预调谐到信道使得当附接演示设备被激活时其已经被调谐到“正确的”信道的信道偏好预测、欺诈检测(例如,标识欺诈信用卡交易)、机器人检测、守门在线资源、家庭自动化和环境控制等。随着这样的系统的快速增长和部署,机器学习系统日益更流行。

机器学习和被使用在机器学习中的机器学习模型涵盖各种机器学习技术。机器学习技术可以被认为是监督的、非监督的或者其某种组合。通常,监督的机器学习系统被用于从其中用于训练数据的期望输出已经已知的训练数据建立模型。非监督的系统或者混合系统在没有(或者有有限的)关于期望输出的初始知识的情况下生成或者扩展模型。机器学习算法包括例如经典神经网络、深度学习神经网络(诸如深玻耳兹曼机)、k均值聚类、以及分类和回归树算法。在本文所描述的一些实施方式中,机器学习模型是在监督的数据集上初始地训练并且然后基于响应于基于现实世界输入数据由机器学习模型所生成的输出接收到的反馈信息进一步训练的非监督的深度学习神经网络。

在一些实施方式中,机器学习模型被用于选择或者修改用于递送到客户端设备的内容。包括服务器、桌面型电脑、膝上型电脑的计算设备和诸如“智能”电话和平板电脑的移动设备能够通过数据网络请求和接收数字内容。设备通过网络接收内容并且将接收到的内容呈现给用户。例如,内容可以以电子文档、“电子书”、web页面(或者形成网站的web页面的集合)、web页面的组件元素(例如,文章内容、博客内容、第三方内容、用户生成内容)、图像、音频文件或音频流、视频或多媒体演示、交互式媒体诸如流式游戏、或任何其它形式的内容。在一些实例中,用户与内容接合,例如,选择叩击或点击特定内容元件,诸如嵌入式链路或者交互控制。被递送到这样的计算设备的一些内容由诸如网站主机服务器的内容服务器动态地选择或者生成。内容服务器可以选自静态内容的目录。内容服务器可以从输入参数集生成动态内容,其中,一个或多个参数可以随机被选择、基于与内容的期望观众或者所供应的用户相关联的数据被设定。从输入参数集动态地生成的内容是参数化的内容,其包括但不限于从模板生成的内容和具有诸如字体、字体大小、语言和颜色方案的可修改的特性的内容。

数字复制测试是标识提供的内容项的最好变体的过程,其中,内容项的多个变体是可用的。作为示例,一些网站是响应于与网站的一个或多个所测量的交互而调节网站的结果、内容和/或外观的“自适应网站”。例如,自适应网站可以具有可变演示元素,诸如访客能够请求以增加或者减小的字体大小。然而,每次访客请求对网站的改变时,其可以导致内容服务器通过网络重新发送内容,这导致网络业务中的增加和网络资源的浪费。类似问题可以随着例如对数据请求的响应的任何数据的递送出现,其中,提供的初始数据可以是次优的,这导致增加网络业务并且浪费网络资源的附加请求。

为了避免与重新传送内容相关联的网络浪费,将内容递送到已经为预期观众即接收计算设备的用户最优地选择和格式化的计算设备是有帮助的。最优地选择内容的一个方法依赖于机器学习模型。然而,该方法可以收敛缓慢并且可以在一些实例中与最优结果背离。检测何时机器学习模型在分歧跟踪上能够是困难的,并且期望具有用于迅速地识别何时机器学习模型正常工作并且何时其没有正常工作的技术方案。如上文所解释的,如果机器学习模型未正常工作,则内容(或者数据)的递送可能是资源低效的,并且迅速地识别何时机器学习模型未正常工作允许例如由网络提供商或者网络管理员的正确动作。

图1是网络环境100中的示例分发系统的示图,所述网络环境100包括客户端设备120、内容选择服务器140、数据管理器150以及内容服务器170。网络环境100被引用为用于在图2、3a和3b的描述中包括的本文所描述的不同的实施方式的示例环境。图2是用于对数据请求做出响应的示例方法200的流程图。如下面更详细地描述的,请求根据分配策略被指配到响应池。数据请求可以是例如对内容的请求。下面更详细地描述的图3a是用于将内容项分发到观众的示例方法300的流程图。观众被分为子组或观众池,其每个使用不同的参数化模型接收内容项的相应变化。下面更详细地描述的图3b是用于确定每个观众池的观众的份额或百分比的示例方法305的流程图。下面更详细地描述的图4图示了在一些配置中适于用作客户端设备120、内容选择服务器140、数据管理器150和/或内容服务器170的计算设备101。

在图1的概述中,客户端设备120从内容分发平台130经由网络110接收内容。所图示的内容分发平台130包括内容选择服务器140,其从由数据管理器150托管的数据选择内容项(或者内容项的变化)用于由内容服务器170递送到客户端设备120。数据管理器150使用数据存储设备156存储内容。如下面更详细描述的,客户端设备120是从内容分发平台130获得内容的许多客户端设备中的一个。接收相同内容项(在一个或多个变化中)的客户端设备组形成该内容项的观众。

更详细地参考图1,网络110实现客户端设备120与内容分发平台130之间的通信。在一些实施方式中,数据通过网络110从源节点流动到目的地节点作为数据分组的流,例如根据开放系统互连(osi)层以数据分组的形式。分组的流可以使用例如osi第四层传输协议诸如用户数据报协议(udp)、传输控制协议(tcp)、或者流控制传输协议(sctp)经由在诸如网际协议(ip)例如ipv4或ipv6的osi第三层网络协议上分层的网络110传送。网络110包括链接在一起以形成参与设备之间的一个或多个数据通信路径的各种网络设备(节点)。每个联网设备包括用于接收和/或传送数据(典型地作为一个或多个数据分组)的至少一个网络接口。说明性网络110是互联网;然而,可以使用其它网络。网络110可以包括多个连接的子网络。网络110能够是局域网(lan)诸如公司内联网、城域网(man)、广域网(wan)、互联网络诸如互联网、或者对等网络例如ad-hocwifi对等网络。网络110中的节点之间的数据链路可以是有线链路(例如,光纤、网格、同轴、双绞线(诸如5类或6类)等)和/或无线链路(例如,无线电、卫星、微波等)的任何组合。网络110可以包括用于移动通信设备的载波网络,例如,实现诸如全球移动通信系统(gsm)、码分多址(cdma)、时分同步码分多址(tdscdma)、长期演进(lte)或者任何其它这样的协议、包括但不限于所谓的“3g”、“4g”和“5g”代协议的无线通信协议的网络。网络可以包括短程无线链路,例如经由wi-fi、bluetooth或zigbee,有时被称为个人区域网络(pan)或网状网络。网络110可以是公共的、私有的、或者公共网络和私有网络的组合。网络110可以是任何类型和/或形式的数据网络和/或通信网络。

客户端设备120是计算系统或基于处理器的设备,其执行应用、将输出呈现给用户、并且从用户接收输入。客户端设备120能够经由网络110与网络节点、计算机、设备和/或服务器(例如,内容选择服务器140和内容服务器170)交换信息。客户端设备120可以是任何种类的计算设备,包括例如桌面型计算机、膝上型或笔记本计算机、移动设备诸如平板或电子板、个人数字助理、或者智能电话、视频游戏设备、电视或电视辅助盒(还被称为“机顶盒”)、公共电话、主机虚拟桌面或者能够经由网络110交换信息的任何其它这样的设备。在一些实施方式中,客户端设备120包括用于促进数据输入和数据呈现的一个或多个硬件元件,例如键盘、显示器、触摸屏、麦克风、扬声器和/或触觉反馈设备。在一些实施方式中,客户端设备120包括按钮,例如功能特定按钮(例如,音频设备音量控制,诸如音量增加、音量减小、静音等)和/或功能不可知按钮(例如,能够在软件水平处被指配特定功能的“软”按钮)。在一些实施方式中,客户端设备120包括能够检测客户端设备120自己的移动的传感器,例如惯性测量单元(imu)、加速度计、陀螺仪或者倾斜传感器。加速度计可以是单轴或者多轴加速度计。在一些实施方式中,客户端设备120使用专用逻辑电路例如专用集成电路(asic)实现。在一些实施方式中,客户端设备120使用包括至少一个处理器(或微处理器)核心的片上系统(soc)半导体设备实现。在一些实施方式中,客户端设备120使用通用计算处理器实现。下面更详细地描述的图4图示了在一些配置中适于用作客户端设备120的计算设备101。

在一些实施方式中,客户端设备120运行管理客户端设备120上的软件应用、包括能够呈现从内容服务器170接收到的内容的一个或多个软件应用的执行的操作系统。在一些实施方式中,操作系统被提供有客户端设备120。在一些实施方式中,客户端设备120执行能够接收根据诸如超文本传输协议(http)和由传输层安全加密的http(https)的超文本应用协议的套件格式化的数据的浏览器应用(例如,web浏览器)。在一些这样的实施方式中,浏览器促进与以一个或多个web页面的形式的内容分发平台130的交互。在一些实施方式中,浏览器应用被提供有客户端设备120。在一些实施方式中,客户端设备120执行定制应用,例如游戏或者与内容分发平台130交互的其它应用。定制应用与内容分发平台130之间的交互可以使用标准协议诸如http和https,或者可以使用专用协议,例如在诸如udp、tcp或sctp的传输层协议上实现的定制应用层协议。在一些实施方式中,客户端设备120包括用于获得定制应用和/或将定制应用安装在客户端设备120上的工具。在一些实施方式中,客户端设备120与其通信的服务器中的一个或多个支持定制指令集,例如应用编程接口(api),并且在客户端设备120上执行的定制应用实现该api。应用能够使用例如被提供到应用的开发者的库或软件开发工具包(sdk)实现api。

在图1中,内容分发平台130被图示为协作以经由网络110将内容从数据管理器150提供到客户端设备120的内容选择服务器140和内容服务器170。在一些实施方式中,内容选择服务器140和内容服务器170中所描述的功能一起被实现在单个后端服务器中。在一些实施方式中,内容选择服务器140和内容服务器170中所描述的功能跨越若干计算设备实现,例如在服务器场或在分布式内容递送网络(cdn)中。

在一些实施方式中,内容分发平台130接收提供特定内容项的请求,并且响应于请求,内容选择服务器140引导客户端设备120以从内容服务器170获得内容。例如,在一些实施方式中,内容选择服务器140生成寻址经由内容服务器170可用的内容的统一资源定位符(url)。内容选择服务器140将url提供到客户端设备120,其进而访问url从内容服务器170获得所标识的内容。内容服务器170响应于url,从数据管理器150获得内容并且将其提供到(将其供应到)客户端设备120。在一些实施方式中,内容选择服务器140运行标识用于呈现在客户端设备120上的内容例如第三方内容的服务。在一些实施方式中,内容选择服务器140使用实时选择过程诸如自动拍卖以选择内容项以提供到客户端设备120。在一些实施方式中,提供所选择的内容项的变化,其中,变化根据分发模型来确定。

在一些实施方式中,内容选择服务器140选择指定内容项的变化。在一些这样的实施方式中,内容项是响应于一个或多个参数可修改的。例如,内容项可以具有参数化的字体选项、字体大小、颜色选项、背景图像选项、语言选项、大小选项、缩放选项、音频选项、动画序列选项等。在一些实施方式中,内容项的不同的变化以不同的图像文件格式,诸如jpeg、gif、bmp、png或tiff图像文件格式。在一些实施方式中,不同的变化在图像文件格式的质量水平方面不同,使得较低的质量变化要求较少的数据被传送到客户端设备。在一些实施方式中,内容项的不同的变化在颜色值、色调、对比度、亮度、饱和度和其它颜色设置方面变化。颜色值可以是红-绿-蓝(rgb)值、青色-洋红-黄色-键(cmyk)值、基于色度的“ycbcr”或“y'cbcr”值、pantone值或者使用任何其它颜色值方案的颜色值。在一些实施方式中,数据管理器150存储内容项的多个变化,例如相同核心内容项的不同的预提供的变化。在一些实施方式中,内容选择服务器140从变化的集合选择变化。

在一些实施方式中,内容选择服务器140使用机器学习模型选择内容变化,例如使用参数化的选项或者从预生成的内容项变化的集合中选择。在一些机器学习技术的情况下,预测模型被用于估计性能度量,并且可以选择对应于最高估计性能度量的内容变化用于递送到客户端设备。机器学习模型使用关于目的地客户端设备或者目的地客户端设备的用户的反馈信息标识最可能在客户端设备处被接受的变化(根据机器学习模型)。在机器学习技术的情况下,系统使用预测模型估计性能度量的结果并且标识具有最高对应的性能度量结果的模型输出。在一些实施方式中,内容选择服务器140使用该方法选择对应于预测的最高估计接受的内容变化并且将所选择的内容变化递送到客户端设备。

在一些实施方式中,内容选择服务器140使用统计模型选择内容变化,例如使用参数化的选项或者从预生成的内容项变化的集合中选择。在一些实施方式中,内容选择服务器140在某些情况下使用默认或者预选择的变化,例如当可用于使用选择模型中的一个的信息不足时。

用于内容选择的机器学习建模和统计建模技术二者均具有强项和弱点。利用统计建模技术,一个优点在于,可以选择全部内容元件配置的性能数据,因为全部是随机选择并且递送的。然而,累积用于全部配置的性能数据可以需要大量的时间。另一方面,利用机器学习技术,一个优点是在不必测试全部可能配置的情况下,先验地预测执行最好的内容元件配置。然而,在一些实例中,使用机器学习技术的预测可以导致低于最优内容元件配置的选择,例如由于使用在机器学习模型中的不足数据或者过度异常数据偏移参数。因此,内容分发平台130平衡不同的选择模式之间的内容选择。在一些实施方式中,由内容选择服务器140所选择的内容是第三方内容。

数据管理器150提供用于将数据保存在存储器156的数据存储和管理服务。存储器156可以使用一个或多个数据存储设备实现。数据存储设备可以是适于存储计算机可读数据的任何存储器设备。数据存储设备可以包括具有固定存储设备的设备或者用于读取可移除的存储介质的设备。示例包括所有形式的非易失性存储器、介质和存储器设备、半导体存储器设备(例如,eprom、eeprom、sdram和闪速存储器设备)、磁盘、磁光盘、和光盘(例如,cdrom、dvd-rom或蓝光光盘)。适合的数据存储设备的示例实施方式包括存储区域网络(san)、网络附接存储(nas)、和冗余存储阵列。

数据管理器150控制对存储器156的访问权。在一些实施方式中,数据管理器150托管查询引擎。在一些实施方式中,数据管理器150托管关因子据库,例如使用关因子据库管理系统(rdbms)。在一些实施方式中,数据管理器150管理存储器156中的数据作为文件,例如xml文件。在一些实施方式中,数据管理器150使用凭证或者账户管理实用程序调节对数据或者特征的访问权。在一些这样的实施方式中,凭证或者账户信息由数据管理器150存储在存储器156中。

数据库或者更特别地数据库管理系统(dbms)根据数据库定义例如数据库方案组织数据。在基本关因子据库中,dbms维护类似表的数据结构中的数据。每个表具有每个对应于条目类型、分类或者目的的列。例如,表可以具有数值数据的列、文本数据(例如,数值数据的描述)的列、日期数据的列等。在关因子据库中,表中的列中的每个条目也在将条目与来自表中的其它列的条目相关联的行中。在一些实例中,条目将来自一个表的行与另一表中的一个或多个行相关联。在一些dbms实施方式中,被称为“视图”的虚拟表表示从一个或多个表拉出的数据,好像其也是表(即,视图看向数据库客户端或用户,好像其是表,但是不必被如此存储)。还能够使用其它类型的数据库管理系统,包括各种类型的关因子据库、面向对象数据库、面向文档数据库、xml数据库、nosql数据库等。这些数据库类型中的许多数据库类型以参考关因子据库上文所描述的方式类似的方式使用表或者类似表的结构。数据库的客户端或者用户能够使用数据库指令,例如数据库查询语言诸如结构化查询语言(sql)中的查询,将数据添加到数据库、修改数据库中的数据或者从数据库检索数据。一个或多个数据库指令可以一起被分组为数据库事务。传统地,数据库提供事务原子性、一致性、隔离度和耐久性。这些性质由缩写词“acid”已知。在一些实施方式中,数据管理器150给知识库提供全部acid性质。然而,在其它实施方式中,数据管理器150未提供全部acid性质。

在一些实施方式中,服务器中的一个或多个、例如内容选择服务器140和内容服务器170与数据管理器150通信,例如经由直接链路或者网络110。在一些实施方式中,服务器中的一个或多个使用正式查询语言诸如结构化查询语言(sql)、超文本结构化查询语言(htsql)、上下文查询语言(cql)、数据挖掘扩展(dmx)、或xml查询(xquery)中的查询从数据管理器150获得数据。在一些实施方式中,服务器中的一个或多个使用进程间通信架构,诸如公共对象请求代理体系结构(corba)、远程过程调用(rpc)、对象链接和嵌入(ole)、构件对象模型(com)或者分布式构件对象模型(dcom),从数据管理器150获得数据。在一些实施方式中,服务器中的一个或多个使用自然语言或者语义查询从数据管理器150获得数据。在一些实施方式中,服务器中的一个或多个使用定制查询语言诸如可视化api查询语言中的查询从数据管理器150获得数据。

内容服务器170例如响应于来自内容选择服务器140的指令,从数据管理器150获得内容项用于递送到客户端设备120。在一些实施方式中,内容服务器170修改所获得的内容项的视觉方面。在一些这样的实施方式中,内容服务器170修改或者调节一个或多个颜色值,例如背景颜色、字体颜色或为强调或加下划线指定的颜色。在一些实施方式中,内容服务器170修改或者调节被用于呈现内容中的文本的字体。在一些这样的实施方式中,内容服务器170修改或者调节字体大小、字体颜色、或者字体是处于粗体模式还是斜体模式。在一些这样的实施方式中,内容服务器170修改或者替代内容中使用的图像。例如,在一些实施方式中,内容服务器170从图像格式选项的集合选择图像格式用于相同视觉图像。在一些实施方式中,内容服务器170选择图像大小(或者图像文件大小),例如选择用于在较小的客户端设备诸如智能电话处呈现的较小的图像、选择用于在较大的客户端设备诸如膝上型电脑和桌面型计算机处呈现的较大的图像、选择用于高延时和/或低带宽连接诸如移动电话网络连接的较小的文件大小,以及选择用于低延时和/或高带宽连接诸如家庭或办公室宽带连接的较大的文件大小。较小的图像和较小的图像文件可以具有比对应的较大的图像和较大的图像文件更低的视觉质量,因此可以期望递送能够在具有可用资源的可接受的时间量内递送的最大版本。

在一些实施方式中,内容服务器170从数据管理器150获得内容项的执行的变化。修改或者变化响应于来自内容选择服务器140的指令,其确定内容项的哪个变化将被递送。在一些实施方式中,内容项、经修改的内容项或内容项变体然后使用标准协议,诸如udp、tcp或sctp,由内容服务器170传送到客户端设备120。在一些实施方式中,内容项、经修改的内容项或内容项变体使用定制协议由内容服务器170传送到客户端设备120。在一些实施方式中,内容项、经修改的内容项或内容项变体在单向媒体流中由内容服务器170传送到客户端设备120,使得客户端设备120在没有响应的情况下被动地接收媒体流。在一些实施方式中,媒体流是交互式的,使得客户端设备120具有对媒体流的内容做出响应的装置,例如,使得媒体流的内容源能够响应于交互。即,内容服务器170还能够响应于来自客户端设备120中流的指令或者反馈来修改内容项。例如,在一些实施方式中,内容服务器170从客户端设备120接收用于修改媒体流内容的指令,并且内容服务器170根据接收到的指令修改或者更新流内容。

图2是用于对数据请求做出响应的示例方法200的流程图。在方法200的概述中,在块210处开始,数据处理系统从客户端设备接收数据请求。在块220处,数据处理系统应用分配策略以将接收到的数据请求指配到相应的响应池。例如,在块230处,数据处理系统将请求指配到对应于机器学习模型的响应池,并且在块235处,数据处理系统将请求指配到对应于统计模型的响应池。在块230处已将请求指配到对应于机器学习模型的响应池,数据处理系统然后在块240处选择使用机器学习模型对请求的响应,并且在块250处利用所选择的响应对请求做出响应。同样地,在块235处已将请求指配到对应于统计模型的响应池,数据处理系统然后在块245处选择使用统计模型对请求的响应并且在块255处利用所选择的响应对请求做出响应。在块260处,数据处理系统获得指示机器学习模型的性能水平的反馈信息。在块265处,数据处理系统获得指示统计模型的性能水平的反馈信息。在块270处,数据处理系统将机器学习模型的总体性能水平与统计模型的总体性能水平相比较。该比较可以提供关于机器学习模型的准确度的信息。在块280处,如必要,响应于比较,数据处理系统更新分配策略。方法200继续迭代,使得在块210处数据处理系统从客户端设备连续地接收数据请求,包括在块280之后。

更详细地参考图2,在块210处,数据处理系统从客户端设备接收数据请求。在一些实施方式中,数据处理系统包括一个或多个物理服务器。例如,数据处理系统可以是图1中所图示和上文所描述的内容分发平台130。方法200是迭代的,使得在块210处数据处理系统从客户端设备连续地接收数据请求。例如,数据处理系统可以接收包括至少来自第一客户端设备的第一数据请求和来自第二客户端设备的第二数据请求的第一多个数据请求。数据处理系统可以对如本文所描述的该第一多个数据请求做出响应,在块280处更新分配策略,并且随后地接收第二多个数据请求。

在块220处,数据处理系统应用分配策略以将接收到的数据请求指配到相应的响应池。在一些实施方式中,分配策略将传入数据请求的第一部分分配到第一响应池并且将传入数据请求的第二部分分配到第二响应池。第一响应池可以例如对应于机器学习模型并且第二响应池可以对应于统计模型。在一些实施方式中,可以存在附加的响应池,例如每个对应于相应的备选机器学习模型的附加的响应池。在一些实施方式中,分配策略至少部分地基于对应于请求的元数据,例如指示每个请求的相应的历史或源的数据,将传入数据请求指配到响应池。在一些实施方式中,分配策略是分发因子。在一些实施方式中,分配策略随机地或者伪随机地将传入请求引导到响应池。在一些实施方式中,分配策略使用确定性的分配过程。例如,在一些实施方式中,分配策略使得数据处理系统将散列函数应用到传入请求(或者传入请求的一部分,诸如请求源信息或者请求分组头部),并且基于散列函数对分派值取模的结果指配请求。例如,为了将业务的1/n引导到一个池,并且将剩余部分引导到另一池,分配策略针对每个传入请求计算散列值对n取模,并且将具有零的结果的请求指配到第一池,并且将具有大于零的结果的请求指配到第二池。二的分派值将导致两个相等的大小池。

在块220处,数据处理系统应用分配策略以将在块210处接收到的数据请求指配到相应的响应池。块230、240、250和260涉及在其中数据处理系统将数据请求指配到对应于机器学习模型的响应池的情况。块235、245、255和265涉及在其中数据处理系统将数据请求指配到对应于统计模型的响应池的情况。

在块230处,数据处理系统将请求指配到对应于机器学习模型的响应池。在块220处,数据处理系统基于分配策略的应用指配请求,如上文所描述的。数据处理系统使用机器学习模型选择对于指配到响应池的请求的响应。

在块240处,数据处理系统使用机器学习模型选择对请求的响应。在一些实施方式中,机器学习模型选择对请求的响应并且然后基于响应于所选择的响应所获得的反馈信息来改进。在一些实施方式中,机器学习模型是深度学习神经网络。

在块250处,数据处理系统利用在块240处所选择的响应对请求做出响应。在一些实施方式中,数据请求经由数据网络110从客户端设备120被接收,并且数据处理系统通过经由数据网络110将所选择的响应传送到客户端设备120对请求做出响应。在一些实施方式中,数据处理系统在专用双向通信信道中做出响应。在一些实施方式中,数据处理系统通过将数据传送到现有通信信道例如开放tcp套接字中的请求者做出响应。

在块235处,数据处理系统将请求指配到对应于统计模型的响应池。数据处理系统基于在块220处分配策略的应用指配请求,如上文所描述的。数据处理系统使用统计模型选择对指配到响应池的请求的响应。

在块245处,数据处理系统使用统计模型选择对请求的响应。在一些实施方式中,统计模型选择对请求的响应并且然后基于响应于所选择的响应所获得的反馈信息来改进。在一些实施方式中,统计模型是聚类模型。

在块255处,数据处理系统利用在块245处所选择的响应对请求做出响应。在一些实施方式中,在块255中数据处理系统以参考块250上文所描述的相同的方式做出响应。

在块260处,数据处理系统获得指示机器学习模型的性能水平的反馈信息。在块265处,数据处理系统获得指示统计模型的性能水平的反馈信息。在一些实施方式中,反馈信息指示相应模型的性能水平。例如,反馈信息可以指示响应的准确度,诸如其中响应是能够与实际结果相比较的预测。例如,如果数据请求是用于可导航的路线的请求,则预测可以是特定路线将花费x秒行进,并且x低于备选路线所需的时间。接收者可以然后行进该路线,并且能够测量所需时间长度。如果所测量的时间长度等于x(或者在x附近的阈值范围内),那么这指示用于预测的准确度的水平。如果信息可用于采取备选路线中的一个或多个的其它旅客,所测量的时间长度能够与其相应的旅行时间相比较来验证x是否实际上是最快的。在一些实施方式中,反馈信息指示响应的实用性。例如,如果响应跟随有简单时间窗口中的后续请求,则这可以指示响应具有低实用性。在一些实施方式中,数据处理系统测量来自相同源的请求之间的时间长度,并且当时间长度低于阈值时,确定响应具有低实用性。在一些实施方式中,响应可以包括能够被致动以生成后续请求的数据(例如,响应可以包括超链接或url)。如果被包括的数据被致动时,则这可以指示较高实用性水平。在一些实施方式中,数据处理系统标识基于先前的响应所生成的请求并且确定先前的响应具有高实用性水平。

在一些实施方式中,反馈信息包括在将响应递送到客户端设备与从客户端设备接收后续数据请求之间的时间量。在一些实施方式中,反馈信息包括被包括在由数据处理系统从客户端设备接收到的后续数据请求中的值。在一些实施方式中,反馈信息包括与客户端设备处的响应的呈现的交互的由数据处理系统从客户端设备接收到的描述。在一些实施方式中,反馈信息包括通过数据处理系统标识在不从客户端设备接收任何附加数据请求的情况下已超过阈值时间长度。

在块270处,数据处理系统将机器学习模型的总体性能水平与统计模型的总体性能水平相比较。在一些实施方式中,该比较被用于确定统计模型的总体性能水平是否超过机器学习模型的总体性能水平至少阈值。在一些实施方式中,数据处理系统从该比较确定是否保证对分配策略的更新。在一些实施方式中,当统计模型的总体性能水平超过机器学习模型的总体性能水平至少阈值时,更新被保证。在一些实施方式中,当机器学习模型的总体性能水平超过统计模型的总体性能水平至少阈值时,更新被保证。

在块280处,数据处理系统响应于比较而更新指配策略。例如,在一些实施方式中,其中,统计模型的总体性能水平超过机器学习模型的总体性能水平至少阈值,分配策略由数据处理系统更新以减少流到使用机器学习模型的响应池的业务的一部分。这从表现不佳的机器学习模型转移一些业务。在一些实施方式中,业务的90%或更多、甚至100%可以以该方式从机器学习模型转移。在一些实施方式中,数据处理系统通过调节或更改分派值或分发因子更新分配策略。在一些实施方式中,数据处理系统通过添加或者移除响应池选项更新分配策略。在一些实施方式中,数据处理系统通过改变指配到一个或多个响应池的业务的百分比更新分配策略。在一些实施方式中,数据处理系统仅当必要时,即当块270中的比较指示数据处理系统应该这样做时,更新分配策略。

数据处理系统使用更新的分配策略,在块210处继续方法200。

在一些实施方式中,图2中的数据请求针对内容,例如针对电子文档,诸如电子书或网页,或者针对这样的文档的部分,诸如文章、第三方内容、图像、或媒体文件或流。在一些实施方式中,能够根据一个或多个参数来参数化、即定制或者修改所请求的内容。在一些实施方式中,数据服务器(例如,内容分发平台130中的服务器,如在图1中所图示的)响应于对数据项的传入请求而参数化内容项。在一些这样的实施方式中,数据服务器基于包括分发因子的使用的分配策略将请求指配到不同的响应池,其中,数据服务器针对不同的响应池将内容项不同地参数化。图3a和图3b是用于这样的内容分发的示例的流程图。图3a是用于基于分发因子而分发内容变化的流程图300,并且图3b是用于基于分发的内容的接受率而更新分发因子的流程图305。

在概述中参考图3a,在块310处开始,内容分发平台130接收将内容项递送到客户端设备120的请求。在一些实施方式中,对内容项的请求在客户端设备120处发起并且由内容选择服务器140接收。在块320处,内容选择服务器140基于分发因子,将请求指配到观众池。在块330处,内容选择服务器140确定指配的观众池是否使用机器学习模型用于内容选择,并且如果是的话,则在块335使用机器学习模型选择请求的内容项的变化用于递送。在块340处,内容选择服务器140确定指配的观众池是否使用用于内容选择的统计模型,并且如果是的话,则在块345使用统计模型选择用于递送的所请求的内容项的变化。否则,在块348处,内容选择服务器140标识用于递送的所请求的内容项的预选择变化(例如,默认变化)。在块350处,内容分发平台130将所请求的内容项的所选择的变化递送到请求的客户端设备。在一些实施方式中,内容选择服务器140向客户端设备120递送指向或者描述内容项的所选择的变化的标识符(例如,url)并且客户端设备120将标识符提供到内容服务器170以获得内容项的实际递送。

更详细地参考图3a,在块310处开始,内容分发平台130接收将内容项递送到客户端设备120的请求。在一些实施方式中,对内容项的请求在客户端设备120处发起并且由内容选择服务器140接收。对内容项的请求可以指定核心内容项,其变体将被递送。例如,请求可以用于对应于可以在使用伴随有一个或多个不同的格式、大小和图像质量中的图像的各种字体和字体大小在各种语言中递送的电子文档(例如,web页面、“电子书”、文本文件、word文件、pub文件等)的内容项。电子文档的每个变化是内容的不同的形式,但是实际材料内容跨变化保持一致。在一些实施方式中,请求以http请求例如url的形式接收。在一些实施方式中,接收到的请求未指定核心内容项,并且内容分发平台130选择用于使用在满足请求中的内容项。

例如,请求可以用于最新新闻报道并且分发平台130标识并且选择对应于在该时刻处的最新新闻报道的内容项(例如,报纸文章或者新闻广播视频片段)。分发平台130可以将最新新闻报道标识为在先前的滑动时间窗口中最多请求、在地理区域内最多请求、在特定上下文内或者在类似参数的情况下最多请求等的内容项。分发平台130可以具有可用于如何选择内容项的多个选项,例如基于机器学习模型的第一选项和基于统计模型的第二选项。在一些实施方式中,统计模型是更一般化的并且提供与机器学习模型相比较更宽的一致结果。选项可以导致选择相同请求的不同的内容项。可能的是,所选择的内容项的接收者将偏好从所选择的一个接收备选选项。在这样的情况下,选择模型的准确度可能更好。如下面更详细地描述的,指配平台130获得能够指示接收者是否已与递送的内容项和/或请求的不同的内容接合的反馈信息,其能够对应于选择的质量。

在块320处,内容选择服务器140基于分发因子,将请求指配到观众池。在一些实施方式中,指配是确定性的——即,在具有相同分发因子的相同情况下,请求将总是被指配到相同观众池。在一些实施方式中,指配是随机的。在一些实施方式中,分发因子是待指配到每个池的请求的百分比。在一些实施方式中,请求信息(例如,与请求源相关联的一个或多个标识符)被散列并且结果的散列值除以分发因子以得到池标识符。在一些实例中,分发因子将因此使得传入请求的一个百分比被放置在第一观众池中和传入请求的另一百分比被放置在第二观众池中。不同池可以使用不同的技术,例如使用用于选择内容变化的不同的模型,满足输入内容请求。

在块330处,内容选择服务器140确定指配的观众池是否使用机器学习模型用于内容选择,并且如果是的话,则在块335使用机器学习模型选择所请求的内容项的变化用于递送。机器学习模型试图将内容变化裁剪为请求实体。在一些实施方式中,请求根据绑定到请求的各种参数由内容选择服务器140分类。例如,在一些实施方式中,内容选择服务器140将发起于单个源的请求分组为单个类别。在一些实施方式中,内容选择服务器140基于源或请求相似性,将发起于多个源的请求分组为单个类别。在一些实施方式中,内容选择服务器140将请求源与配置文件相关联并且基于配置文件中的信息对请求进行分组。

在块340处,内容选择服务器140确定指配的观众池是否使用统计模型用于内容选择,并且如果是的话,则在块345使用统计模型选择所请求的内容项的变化用于递送。在统计模型的一些实施方式中,响应于对该内容项的请求,初始地随机地示出内容项的全部可能变化。针对内容项的每个变体对用户的可接受性建立置信度间隔——例如,如果内容项是网页,如果用户请求该网站的另一变体,例如具有较大的字体大小的一个,则变体可以被判断为不可接受的。业务更多,每个变体的置信度间隔变得更窄。一旦建立任何基于对应的置信度间隔确信地比其它的更差的特定变体,统计模型降级该特定变体。统计模型继续降级变体直到仅剩余一个变体为止。然后排除全部其它变体而呈现内容项的剩余变体(除业务的小部分可以用作正在进行的试验床以继续旋转内容项的全部丢失变体以看到任何东西是否已随时间改变,即,一些业务仍然接收随机变体以继续评估可接受性)。这样,使示出已知对于除他人之外的用户不太可接受的内容项的变体的成本最小化。例如,一个这样的统计模型是“多臂赌博机(multi-armedbandit)”。

在块348处,内容选择服务器140标识所请求的内容项的预选择变化用于递送。例如,在一些实施方式中,内容选择服务器140标识默认版本。在一些实施方式中,内容选择服务器140标识基线版本。在一些实施方式中,内容选择服务器140标识内容项的统计控制版本。

在块350处,内容分发平台130将所请求的内容项的所选择的变化递送到请求的客户端设备。在一些实施方式中,内容选择服务器140向客户端设备12递送指向或者描述内容项的所选择的变化的标识符(例如,url),并且客户端设备120将标识符提供到内容服务器170以获得内容项的实际递送。

虽然图3a的讨论被集中在内容选择,但是在一些实施方式中,平台使用机器学习模型进行其它决策或推荐。例如,在一些实施方式中,平台标识诸如有线电视台接收器、无线广播电视台接收器、网络流媒体接收器、无线电接收器等的接收器的信道偏好。平台检测到接收器是空闲的,例如,因为没有站改变已针对若干小时做出或者因为附加演示设备(例如,电视或其它显示设备)是不活动的和/或断电。平台周期性地预测如果附加演示设备将被激活或者加电,接收器应该从多个信道选项调谐到哪个信道,并且平台将接收器调谐到预测信道。如果附接演示设备然后被激活,则平台以信道是否保持如预测(指示准确的预测)或改变(指示较不准确的预测)的形式接收反馈信息。作为另一示例,在一些实施方式中,平台标识交通障碍并且推荐所标识的障碍周围的可导航的路线。能够通过测量实际行进时间与所预测的行进时间相比较获得反馈信息。在一些实施方式中,对多个旅客的访问权允许留在堵塞路线上的交通与所标识的阻碍周围路由的交通之间的比较。如果重新路由的交通是更快的,则这可以指示准确的预测。其它决策或者推荐,诸如家庭自动化设置、基于预测行进时间的调度警报、自然语言处理(例如,语音到文本)、翻译服务等,可以类似地有益。

图3b是用于基于分发的内容的接受率而更新分发因子的流程图305。在概述中参考图3b,在块350处开始,内容分发平台130将所请求的内容项的所选择的变化递送到请求的客户端设备。在块360处,内容分发平台130获得指示所请求的内容项的递送的变体的接收者接受的接受指示符。在块370处,内容分发平台130更新使用的模型的接受度量的值。在块380处,内容分发平台130将机器学习模型的接受度量的更新值与统计模型的接受度量的更新值相比较。在块390处,内容分发平台130确定机器学习模型是否表现不佳。如果是的话,在块395处,内容分发平台130调节分发因子来降低指配到使用机器学习模型用于选择的观众池的请求的百分比。否则,内容分发平台130可以保持分发因子不改变,或者在块399处,调节分发因子来增加指配到使用机器学习模型用于选择的观众池的请求的百分比。

更详细地参考图3b,流程图305从图3a中所示的流程图300的结尾从块350开始。如先前所描述的,在块350处,内容分发平台130将所请求的内容项的所选择的变化递送到请求的客户端设备。

在块360处,内容分发平台130获得指示所请求的内容项的递送的变体的接收者接受的接受指示符。在一些实施方式中,用户可以通过与内容项交互例如点击、叩击或者以其它方式选择内容项的元素)指示递送的内容项的接受。在一些实施方式中,由缺乏拒绝指示接受。即,如果内容项在没有刷新或中断的情况下完全地递送,这可以指示接受。另一方面,如果客户端设备在短窗口内提交对相同内容项的另一请求,或者如果内容项的递送被中断,则这可以指示内容项未被接受。

在块370处,内容分发平台130更新使用的模型的接受度量的值。如果内容项被选择用于使用机器学习模型递送,那么使用递送的内容项的接受(如在块360处所指示的)来更新机器学习模型的接受度量。同样地,如果内容项被选择用于使用统计模型递送,那么递送的内容项的接受(如在块360处所指示的)被用于更新统计模型的接受度量。

在块380处,内容分发平台130将机器学习模型的接受度量的更新值与统计模型的接受度量的更新值相比较。内容分发平台130评估在块370处更新的度量来相对于接受比较模型的性能。在一些实施方式中,这些统计信息由数据管理器150存储例如在数据存储装置156中。

在块390处,内容分发平台130确定机器学习模型是否表现不佳。一般而言,在观众的全部成员具有相同偏好的假定的情况下,统计模型标识将令人满意的内容变化。该“一体适用”方法将针对大多数——但是并非全部——观众正常工作。因此,统计模型建立性能基线。理想地,能够更好地将变化裁剪到单独的观众成员或子组的机器学习模型将通过标识比一般化“一体适用”变化更好地利用某些观众成员执行的备选变化,而比统计模型表现更好。然而,在一些情况下,机器学习模型将比统计模型表现更好。例如当机器学习模型具有不足信息或者当信息用异常数据过饱和时,这可以发生。在这样的情况下,通过限制机器学习模型的观众份额减少机器学习模型的影响。在一些实施方式中,当由机器学习模型选择的内容变化的接受率低于阈值最小接受水平时,内容分发平台130确定机器学习模型表现不佳。在一些实施方式中,当由机器学习模型选择的内容变化的接受率低于由统计模型选择的内容变化的接受率至少阈值裕度时,内容分发平台130确定机器学习模型表现不佳。

如果内容分发平台130确定机器学习模型表现不佳,那么在块395处内容分发平台130调节分发因子来降低指配到使用机器学习模型用于选择的观众池的请求的百分比。当机器学习模型正表现低于基线时,能够通过将总体观众的较大的份额引导到基线统计模型减轻由机器学习模型选择的变化的较低的接受率。通过继续将观众中的一些引导到机器学习模型,可以通过附加反馈改进模型。如果模型继续退化,则观众份额能够进一步减少例如到百分之十或者甚至更低——直到零,如果模型是特别坏的。在一些实施方式中,当机器学习模型完全地逐渐淘汰时,内容分发平台130可以利用最新数据重置机器学习模型,并且恢复其观众份额。在一些实施方式中,内容分发平台130当机器学习模型已逐渐淘汰和/或重置时通知管理员或内容源。在一些实施方式中,观众份额减少的程度是预设增量。在一些实施方式中,减量大小取决于统计模型比机器学习模型表现好多少而变。

如果内容分发平台130确定机器学习模型表现良好,则内容分发平台130可以保留分发因子不改变,或者在块399处,调节分发因子来增加指配到使用机器学习模型用于选择的观众池的请求的百分比。在一些实施方式中,在内容分发平台130增加机器学习模型的观众份额之前,机器学习模型必须表现得比统计模型更好至少阈值。在一些实施方式中,在内容分发平台130增加机器学习模型的观众份额之前,机器学习模型必须表现得比统计模型更好至少阈值数量的内容分发事件或者最小时间长度。在一些实施方式中,观众份额增加的程度是预设增量。在一些实施方式中,增量大小取决于机器学习模型表现好多少而变。

图4是示例计算系统101的框图。示例计算系统101适于使用在实现根据说明性实施方式的本文所描述的计算机化部件中。在概述中,计算系统101包括用于根据指令执行动作的至少一个处理器107和用于存储指令和数据的一个或多个存储器设备106或109。所图示的示例计算系统101包括经由总线105与存储器106、至少一个网络接口控制器112和用于连接到网络设备114(例如,用于访问网络110)的网络接口111以及例如输入/输出(i/o)部件102的其它部件103通信的一个或多个处理器107。通常,处理器107将执行从存储器(例如,高速缓存109或者存储器106)接收到的指令。例如,所图示的处理器107包含或者直接地被连接到高速缓存109。在一些实例中,指令从存储器106读取到高速缓存109中并且由来自高速缓存109的处理器107执行。在一些实施方式中,指令被编码在未示出的只读存储器(rom)中。在一些实施方式中,客户端设备120使用通用计算处理器107实现。在一些实施方式中,计算系统101使用专用逻辑电路例如专用集成电路(asic)实现。在一些实施方式中,计算系统101使用片上系统(soc)半导体设备实现,其包括处理器107和一个或多个附加部件,例如网络接口控制器112、高速缓存109、和i/o部件102的硬件接口。

更详细地,处理器107可以是处理指令的任何逻辑电路,指令例如从存储器106或高速缓存109获取的指令。计算系统101可以基于能够如本文所描述的操作的任何处理器或处理器集。处理器107可以是单核或者多核处理器。计算系统101可以包括多个不同的处理器107。例如,在一些实施方式中,可以利用诸如数学协处理器或者图形处理单元(gpu)的一个或多个专用处理器107增加诸如中央处理单元(cpu)的通用处理器107。在一些实施方式中,处理器107被实现为一个或多个“芯片”上的电路。

存储器106可以是适于存储计算机可读数据的任何设备。存储器106可以是具有固定存储设备的设备或者用于读取可移除的存储介质的设备。示例包括所有形式的非易失性存储器、介质和存储器设备、半导体存储器设备(例如,eprom、eeprom、sdram和闪速存储器设备)、磁盘、磁光盘、和光盘(例如,cdrom、dvd-rom或蓝光光盘)。计算系统101可以具有任何数量的存储设备106。

高速缓存109通常以非常接近于用于快速访问时间的处理器107放置的计算机存储器的形式。在一些实施方式中,高速缓存109是作为处理器107的一部分或在与处理器107相同的芯片上的存储器电路。在一些实施方式中,存在高速缓存109的多级,例如l2和l3高速缓存层。在一些实施方式中,多个处理器117和/或处理器117的多个核心共享对相同高速缓存109的访问权。

网络接口控制器112管理经由网络接口111(有时被称为网络接口端口)的数据交换。网络接口控制器112处理网络通信的开放系统互连(osi)模型的物理和数据链路层。在一些实施方式中,网络接口控制器的任务中的一些任务由处理器107中的一个或多个处理。在一些实施方式中,网络接口控制器112被包含到处理器107,例如作为相同芯片上的电路。在一些实施方式中,计算系统101具有由单个控制器112控制的多个网络接口111。在一些实施方式中,计算系统101具有多个网络接口控制器112。在一些实施方式中,每个网络接口111是用于物理网络链路(例如,5类以太网链路)的连接点。在一些实施方式中,网络接口控制器112支持无线网络连接并且接口111是无线(例如,无线电)接收器/传送器(例如,对于以下各项中的任一项:ieee802.11wifi协议、近场通信“nfc”、bluetooth、ble、zigbee、ant或任何其它无线协议)。在一些实施方式中,网络接口控制器112实现一个或多个网络协议,诸如以太网。通常,计算系统101通过网络接口111经由物理或无线链路与其它计算设备交换数据。网络接口111可以直接地链接到另一设备或者经由将计算系统101连接到数据网络110诸如互联网的中间设备,例如网络设备诸如集线器、桥接器、交换机或路由器,链接到另一设备。

计算系统101可以包括或者提供用于一个或多个输入或者输出(i/o)部件102的接口。输入设备包括但不限于键盘、触摸屏、麦克风、脚踏板、惯性测量单元(imu)、加速度计、陀螺仪、倾斜传感器、运动传感器、环境传感器、乐器数字接口(midi)输入设备、和指点设备诸如鼠标或轨迹球。输出设备包括但不限于视频显示器、扬声器、触觉反馈设备、可刷新的盲文终端、灯、伺服系统、midi输出设备诸如midi合成器、和二或三维打印机(包括但不限于喷墨打印机、激光打印机、自计温度计、立体光刻打印机、挤压沉积打印机以及金属烧结打印机)。

其它部件103可以包括i/o接口、外部串行设备端口以及任何附加的协处理器。例如,计算系统101可以包括用于连接输入设备、输出设备或者附加的存储器设备(例如,便携式闪速驱动器或者外部媒体驱动器)的接口(例如,通用串行总线(usb)接口)。在一些实施方式中,计算系统101包括附加设备103诸如协处理器。例如,数学协处理器可以在高精度或复杂计算的情况下辅助处理器107。

能够以数字电子电路或以被实现在有形介质上的计算机软件、固件或硬件实现本说明书中所描述的主题和功能操作的实施方式,包括本说明书中所公开的结构和其结构等同物或其中的一个或多个的组合。本说明书中所描述的主题的实施方式能够被实现为被实现在有形介质上的一个或多个计算机程序,即被编码在用于由数据处理装置(包括例如处理器107)执行或者控制数据处理装置的操作的一个或多个计算机存储介质上的计算机程序指令的一个或多个模块。计算机存储介质能够是计算机可读存储设备、计算机可读存储衬底、随机或串行访问存储器阵列或设备或它们中的一个或多个的组合或者被包括在其中。计算机存储介质还能够是或者被包括在一个或多个分离的物理部件或介质例如多个cd、磁盘或者其它存储设备)中。计算机存储介质是有形的。计算机存储介质以非暂态形式存储数据例如计算机可执行指令。

计算机程序(还被称为程序、软件、软件应用、脚本或者代码)可以以任何形式的编程语言书写,包括编译或者解译语言、说明性语言和程序性语言,并且计算机程序可以以任何形式部署,包括作为单独程序或者模块、部件、子例程、对象或者适于使用在计算环境中的其它单元。计算机程序可以但是不需要对应于文件系统中的文件。程序可以被存储在保持其它程序或数据(例如,被存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于讨论中的程序的单个文件中或在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。计算机程序可以被部署以在被定位在一个地点处的一个计算机上或在跨多个地点分布并且由通信网络相互连接的多个计算机上被执行。

本说明书中所描述的过程和逻辑流能够通过一个或多个可编程处理器执行,其通过对输入数据进行操作并且生成输出执行一个或多个计算机程序以执行动作。过程和逻辑流还能够通过专用逻辑电路例如现场可编程门阵列(fpga)或专用集成电路(asic)执行,并且装置还能够被实现为专用逻辑电路例如现场可编程门阵列(fpga)或专用集成电路(asic)。即使其不是通用处理器,这样的专用电路也可以被称为计算机处理器。

用户可以选择或选择不允许远程服务器标识并且存储关于用户和/或关于由用户操作的设备的信息。例如,用户可以选择接收基于与用户的明显相关性所选择的第三方内容。在一些实施方式中,设备标识符与客户端应用(例如,在客户端设备120上运行的)的特定实例相关联。在一些实施方式中,用户可以使用不包含关于用户的个人标识信息的随机化设备标识符(例如,cookie、设备序列号等)表示。例如,除非用户选择提供这样的信息,否则与用户的名字、人口资料等有关的信息不可以由远程服务器使用。因此,用户具有信息关于他或她如何被采集并且由远程服务器或其它内容源使用的控制。可以与用户或者与代表用户的匿名令牌相关联的一些信息可以包括事件诸如一个或多个查询、一个或多个点击、浏览器历史数据(例如,访问的url、察看的url的数量、url访问持续时间等)等。

虽然本说明书包含许多特定实施方式细节,但是不应该被解释为对任何发明或可以要求保护什么的范围的限制,而是特定于特定发明的特定实施方式的特征的描述。在分离的实施方式的上下文中在该说明书中所描述的某些特征还能够组合被实现在单个实施方式中。相反地,在单个实施方式的上下文中所描述的各种特征还能够分离地或者以任何适合的子组合被实现在多个实施方式中。而且,尽管特征可以上文描述为在某些组合中作用并且甚至如此初始地要求保护,但是在一些情况下,可以从组合切除所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。

类似地,虽然操作以特定次序在附图中描绘,但是这不应该被理解为要求这样的操作以所示的特定次序或者以顺序次序执行,或者全部所图示的操作被执行以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。而且,上文所描述的实施方式中的各种系统模块和部件的分离不应该被理解为要求所有实施方式中的这样的分离,并且应该理解的是,所描述的程序部件和系统可以一般地一起集成在单个软件产品或者封装到多个软件产品中。

对于“或者”的引用可以被解释为包括性的,使得使用“或者”所描述的任何术语可以指示单个、超过一个和全部所描述的术语中的任一个。标签“第一”、“第二”、“第三”等不必意指指示排序并且通常仅被用于在相同或者类似术语或者元件之间区分。

因此,已经描述本主题的特定实施方式。其它实施方式在以下权利要求的范围内。在一些情况下,权利要求中所记载的动作能够以不同的次序执行并且仍然实现期望的结果。另外,附图中所描绘的过程不必要求所示的特定次序或顺序次序来实现期望的结果。在某些实施方式中,可以使用多任务或并行处理。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1