预测内容流中的中断持续时间的制作方法

文档序号:17933829发布日期:2019-06-15 01:09阅读:174来源:国知局
预测内容流中的中断持续时间的制作方法

本申请要求2017年2月13日提交的标题为“预测内容流中的中断持续时间”、编号为pct/us2017/017687的pct申请的权益和优先权,其全部内容通过引用结合于此。



背景技术:

内容提供商可以将媒体流式传输到远程客户端设备。根据该客户端设备的请求,流可以包括用于第二内容的中断,并且该第二内容可以从第二服务器提供到客户端设备。当流内容被预先确定使得用于第二内容的中断被良好地提前识别时,客户端设备可以类似地良好地提前请求并接收该内容。然而,如果流内容是动态或实时的,第二服务器可能就不会提前知道中断的长度,并且可能无法提前选择并递送相应长度的第二内容:只有当第二服务器被通知中断的长度时,第二服务器才能检索第二内容项以递送到客户端设备。由于这种延迟,如果大量客户端设备同时请求第二内容,第二服务器可能无法有效或及时地满足请求。



技术实现要素:

为了提供能够满足来自客户端设备的大量请求的可缩放系统,第二服务器可以生成对第一内容流中的中断的持续时间的动态估计,使得可以预先选择并生成更好地匹配这些中断的第二内容流。此外,这种估计可以在第一内容流内提供的任何带内标记之前生成,从而提供更长的、在其中生成并预先缓存特定于多个用户设备中的每一个用户设备的第二内容流的窗口。另外,可以确定允许多个第一用户同时观察第一内容的中断。

在本发明的第一方面中,提供了一种用于向多个客户端设备提供内容的系统,该系统包括计算设备,该计算设备包括处理器和存储器设备,该处理器执行分类器。该分类器被配置为接收对发送到多个客户端设备的第一内容流的指示,该第一内容流包括内容项和第二内容项时隙,接收包括与内容流相关联的多个第二内容项时隙的持续时间的阵列,为第一内容流确定多个类别,其中多个类别中的每一个类别与对应的多个持续时间的不同持续时间相关联,基于包括与内容流相关联的多个第二内容项时隙的持续时间的阵列,将第一内容流的第二内容项时隙分类为多个类别中的第一类别,并且基于第二内容项时隙被分类为的多个类别中的第一类别的持续时间,检索第二内容项。

可选地,可以为多个客户端设备中的每一个检索不同的第二内容项,以在第一内容流的第二内容项时隙期间显示。

例如,不同的内容项可以被传送给不同的用户,但是每个内容项都属于第一类别。

分类器还可以被配置为计算用于将第二内容项时隙分类为多个类别中的第一类别的置信分数,确定置信分数低于预定阈值,并且响应于置信分数低于预定阈值的确定,选择具有默认持续时间的第二内容项以放置在第一内容流的第二内容项时隙中。

分类器还可以被配置为确定多个客户端设备的数量低于预定阈值,接收对用于第二内容项的第二内容项时隙的长度的持续时间的指示,并且响应于多个客户端设备的数量低于预定阈值的确定,响应于对用于第二内容项的第二内容项时隙的长度的持续时间的指示,选择第二内容项以放置到第一内容流的第二内容项时隙中。

分类器还可以被配置为接收第一内容流的发布者标识符和第一内容流的显示时间,并且基于该发布者标识符和显示时间将第二内容项时隙分类为多个类别中的一个类别。

分类器还可以被配置为基于发布者标识符选择分类模型的一个或多个权重。

阵列中的每个持续时间中可以是第一数据流中先前测量的时隙的持续时间。

分类器还可以被配置为确定第一数据流的内容流特征,并且基于内容流特征为第一内容流确定多个类别。

分类器可以包括长期-短期神经网络。

分类器还可以被配置为接收第二内容项时隙的持续时间,并且更新阵列以包括第二内容项时隙的持续时间。

在本发明的第二方面中,提供了一种用于向多个客户端设备提供内容的方法。该方法包括:由计算设备的处理器执行的分类器接收对发送到多个客户端设备的第一内容流的指示,第一内容流包括内容项和第二内容项时隙,由分类器接收包括与内容流相关联的多个第二内容项时隙的持续时间的阵列,由分类器为第一内容流确定多个类别,该多个类别中的每一个类别与对应的多个持续时间的不同持续时间相关联,分类器基于包括与内容流相关联的多个第二内容项时隙的持续时间的阵列将所述第二内容项的时隙分类为多个类别中的第一类别,并且基于第一类别的持续时间检索第二内容项。

可选地,可以为多个客户端设备中的每一个检索不同的第二内容项,以在第一内容流的第二内容项时隙期间显示。

例如,不同的内容项可以被传送给不同的用户,但是每个内容项都属于第一类别。

该方法还可以包括由分类器计算用于将第二内容项时隙分类为多个类别中的第一类别的置信分数,确定置信分数低于预定阈值,以及响应于置信分数低于预定阈值的确定,选择具有默认持续时间的第二内容项以放置在第一内容流的第二内容项时隙中。

该方法还可以包括确定多个客户端设备的数量低于预定阈值,接收对第二内容项时隙的长度的持续时间的指示,以及响应于多个客户端设备的数量低于预定阈值的确定,响应于对用于第二内容项的第二内容项时隙的长度的持续时间的指示,选择第二内容项以放置到第一内容流的第二内容项时隙中。

该方法还可以包括,由分类器接收第一内容流的发布者标识符和第一内容流的显示时间,并且由数据处理系统的处理器执行的分类器基于该发布者标识符和显示时间将第二内容项时隙分类为多个类别中的一个类别。

该方法还可以包括基于发布者标识符选择分类模型的一个或多个权重。

阵列中的每个持续时间可以是第一数据流中先前的第二内容项时隙的持续时间。

该方法还可以包括确定第一数据流的内容流特征,以及由分类器基于内容流特征为第一内容流确定多个类别。

分类器可以包括长期-短期神经网络。

该方法还可以包括接收第二内容项时隙的持续时间;以及更新阵列以包括第二内容项时隙的持续时间。

在本发明的第三方面中,提供了一种用于向多个客户端设备提供内容的系统,该系统包括计算设备,该计算设备包括处理器和存储器设备,该处理器执行分类器。该分类器包括长期-短期神经网络。该分类器被配置为接收对发送到多个客户端设备的第一内容流的指示,该第一内容流包括内容项和第二内容项时隙,接收包括与该内容流相关联的多个第二内容项时隙的持续时间的阵列,为第一内容流确定多个类别,该多个类别中的每一个与对应的多个持续时间的不同持续时间相关联,基于包括与内容流相关联的多个第二内容项时隙的持续时间的阵列将第一内容流的第二内容项时隙分类为多个类别中的第一类别,并且基于第二内容项时隙被分类为的多个类别中的第一类别的持续时间检索第二内容项。

前面的一般描述以及随后的附图和详细描述是示例性和解释性的,并且旨在提供对所要求保护的本发明的进一步解释。从以下对附图的简要描述和对本发明的详细描述中,其他目的、优点和新颖特征对于本领域技术人员来说将是清楚的。

附图说明

本领域技术人员将理解,这里描述的附图仅用于说明目的。应当理解,在一些情况下,所描述的实施方式的各个方面可能被夸大或放大地显示,以便于理解所描述的实施方式。在附图中,贯穿各个附图,相似的参考标记通常指相似的特征、功能相似和/或结构相似的元件。附图不一定是按比例绘制的,而是强调说明教导的原理。附图无意以任何方式限制本教导的范围。通过参考以下附图的以下说明性描述,可以更好地理解该系统和方法,其中:

图1示出了用于预测内容流中的中断持续时间的系统的框图。

图2示出了可以用图1所示的系统来流式传输的内容流的实施方式的框图。

图3示出了使用图1所示的系统来预测内容时隙持续时间的方法的框图。

图4示出了计算机系统的实施方式的框图。

具体实施方式

以上介绍的和下面更详细讨论的各种构思可以以许多方式中的任何一种方式来实施,因为所描述的构思不限于任何特定的实施方式。具体实施和应用的示例主要是为说明的目的而提供的。

在流量高峰期,向大量设备提供线性/实时的动态内容插入(dynamiccontentinsertion,dci)可能会很困难。为了使每个观众能够接收选择的第二内容,当在视频流的带内宣告中断时,dci系统通常有不到10秒的时间来执行n个独特的第二内容请求,其中n是并发观众的数量。当n足够大(例如,超过100000)时,第二内容系统可能会不堪重负。在一些实施方式中,系统可以在某些请求之后抑制响应。这可能导致流向并发观众的内容时隙的填充率较低。

减轻流量高峰的一种可能方法是为即将到来的第二内容中断(或开放内容时隙)预取内容。为了检索适当的内容项,系统需要知道内容时隙的长度。对于预先安排的内容(例如,具有由制作者预先确定的已知长度的第二内容中断的广播电视),这可能是简单的。然而,对于直播或用户制作的内容,内容时隙的长度可能仅在内容时隙之前的小窗口(例如,5秒或更短)内对服务器或客户端可用,这限制了系统预取内容的能力。本系统可以使用高级机器学习模型来预测跨频道的开放的内容时隙持续时间。

用于在用户设备上播放的内容流可以包括一个或多个播放中断,使得第二内容流可以被动态地插入到内容流中,以便在中断期间播放。通常,标记被包括在内容流的带内消息或元数据中,以指示即将到来的中断的持续时间,从而第二内容流的提供商可以提供正确持续时间(即,与中断的持续时间最匹配的持续时间)的第二内容流。带内标记通常仅在中断前的短时间提供,使得第二内容的提供者具有相应短的窗口来准备用于动态插入内容流中的第二内容。短窗口一般不会出现要向每个用户设备提供单个第二内容流的问题。然而,有可能希望向每个用户设备提供特定于该用户设备(例如,特定于该用户设备的用户)的第二内容流。互联网和相关技术使得地理上分开的用户能够参与“社交观看”,由此一组用户(可能彼此认识)同时观看第一内容流。在观看内容流期间,可以获得组中一个或多个用户的反应,以便生成用于在第一内容流中的中断期间播放给组中其他用户的第二内容流。因此,在社交观看安排中,可以向用户提供特定于他们的第二内容流(例如,基于他们组内其他用户的第二内容流)。这可能难以容纳在由第一内容流内的带内标记提供的短时间窗口内。

在其他实施方式中,第一内容流可以不包括预定的中断。然而,有可能希望在第一内容流中提供中断,并且提供用于在中断期间播放的第二内容流。在社交观看期间,特定社交观看组的用户可能在不同带宽的连接上流式传输第一内容流,因此具有不同的缓冲要求。因此,有可能希望确定在第一内容流中的中断的持续时间,这将允许社交观看组的每个用户同步地观看第一内容流。应当理解,确定第一内容流中的中断的持续时间在除了社交观看之外的领域也可能是有用的,从本文的教导中,这对于本领域技术人员来说将是显而易见的。

通过提供对第一内容流中的中断的持续时间的动态估计,可以生成更好地匹配那些中断的第二内容流。此外,这种估计可以在第一内容流内提供的任何带内标记之前生成,从而提供更长的、在其中生成和预先缓存特定于多个用户设备中的每一个用户设备的第二内容流的窗口。另外,可以确定允许多个第一用户同时观看第一内容的中断。

图1示出了用于预测内容流中的中断持续时间的系统100的框图。系统100包括主要内容发布者服务器101和动态内容插入服务器103(也称为内容服务器103),该动态内容插入服务器103包括数据处理系统107。该系统还包括第二内容服务器102和多个客户端设备104。系统100的组件通过网络105通信。在一些实施方式中,网络105可以包括lan网络、wi-fi网络、蜂窝网络、广域网(wideareanetwork,wan)、诸如公共交换电话网(publicswitchedtelephonenetwork,pstn)的电话网络、无线链路、卫星链路、设备到设备网状网络、内部网、互联网、或它们的组合。

作为概述,并简要参考图2,动态内容插入服务器103将内容流流式传输到一个或多个客户端设备104。图2示出了内容流200的实施方式。内容流可以是包括主要内容的视频流,诸如但不限于视频、音频、元数据或电影字幕、电视节目、体育赛事或新闻广播。主要内容可以被分成内容段201,其可以基于第二内容时隙202彼此分离。第二内容服务器102可以为第二内容时隙202提供内容,并且主要内容发布者服务器101可以提供主要内容。虽然多个客户端设备104中的每一个可以接收相同的主要内容流,但提供给每个客户端设备104的第二内容可以由第二内容服务器102选择以递送给特定客户端设备104。每个客户端设备104可以在足球比赛实时进行时接收相同的足球比赛的内容流,然而,第二内容服务器102可以选择定制的第二内容项,以在足球赛事的第二内容时隙期间被流式传输到每个客户端设备104。

参考图1,主要内容发布者服务器101和第二内容服务器102可以将内容存储在它们相应的内容数据库106中。动态内容插入服务器103可以生成发送到多个客户端设备104的内容流。动态内容插入服务器103可以同时向许多客户端设备104发送相同内容流的副本。内容流可以包括由主要内容发布者服务器101提供的主要内容。内容流可以包括第二内容时隙。第二内容服务器102可以为内容流的第二内容时隙提供内容。在一些实施方式中,内容流可以包括处理器可执行指令,这些指令使得当客户端设备104到达第二内容时隙时,客户端设备104从第二内容服务器102获取(或请求)第二内容项。例如,客户端设备上的网络浏览器可以执行从第二内容服务器102获取第二视频内容项的视频显示器。然后,当从第二内容服务器102接收到第二视频内容时,视频显示器可以显示第二视频内容。动态内容插入服务器103还可以将第二内容项插入内容流中,使得客户端设备不联系第二内容服务器102来获取第二内容项。

主要内容发布者服务器101可以包括存储在服务器的相应数据库106中的主要内容。主要内容可以作为网络105上的内容流被提供给多个客户端设备104。如结合图2进一步描述的,内容流可以包括第二内容时隙。主要内容可以包括视频内容,诸如但不限于电影、电视节目、体育赛事、用户生成的视频内容和音频内容,诸如播客。

第二内容服务器102可以包括存储在服务器的数据库106中的第二内容。第二内容可以包括补充内容或相关内容,其被提供来填充内容流的第二内容时隙。

动态内容插入服务器103可以包括数据处理系统107,该数据处理系统107包括与存储器109电通信的处理器108。存储器存储用于分类器110和置信分数器111的指令。数据处理系统107还包括分类器数据库112和预取内容数据库113。分类器数据库112、预取内容数据库113和数据库106可以被存储在存储器109中。

数据处理系统107可以预测内容流中即将到来的第二内容时隙的持续时间。如图1所示,数据处理系统107是动态内容插入服务器103的组件。在一些实施方式中,数据处理系统107可以是独立的服务器。在其他实施方式中,数据处理系统107可以是第二内容服务器102或主要内容发布者服务器101的组件。

分类器110可以预测即将到来的第二内容时隙的持续时间。在预测即将到来的第二内容时隙的持续时间之后,数据处理系统107可以为接收内容流的每个客户端设备104预取第二内容。预取的第二内容可以存储在预取内容数据库113中。当客户端设备104向第二内容服务器102发出对第二内容的请求时,数据处理系统107可以从预取内容数据库113中检索预取的第二内容,并将预取的第二内容发送到请求客户端设备104。

分类器110可以使用机器学习来预测即将到来的第二内容时隙的持续时间。在一些实施方式中,分类器110可以使用逻辑回归来预测下一个第二内容时隙的长度。逻辑回归可以提供即将到来的第二内容时隙属于一组类别中的一个类别的概率(其中每个类别与不同的持续时间相关联)。逻辑函数可以提供即将到来的第二内容时隙x属于某一类别的概率f(x):

其中,β0和β1是定义单个输入特征和类别之间的关系的参数。输入特征可以是过去的第二内容项时隙的持续时间的阵列。除了该阵列之外,其他输入特征可以包括内容流id、标题、流派、总持续时间、显示时间、制作者或发布者id、或它们的组合。多项式逻辑回归可以用于通过重复每个输入特征的逻辑回归、基于多个输入特征将即将到来的第二内容项分类为某一类别中。

分类器110可以使用神经网络预测即将到来的第二内容时隙的持续时间。在一些实施方式中,分类器110可以使用递归神经网络,诸如长短期记忆(longshorttermmemory,lstm)神经网络。可以向lstm神经网络提供先前的第二内容时隙持续时间的阵列。阵列的值可以与一个或多个输入特征相关联,lstm使用这些输入特征将即将到来的第二内容时隙持续时间分类为某一类别中。在这些实施方式中,分类器110可以将即将到来的第二内容时隙分类为类别,该类别中的每一个与不同持续时间对应。这些类别可以通过将尽可能长的持续时间装箱到非重叠的类别中来创建。如果箱长度为5秒,则0至5秒之间的时隙将被分类为第一箱,5至10秒之间的时隙将被被分类为第二箱,10至15秒之间的时隙将被分类为第三箱,等等。箱长度可以在约5至60秒之间、约5至30秒之间、或约5至15秒之间。

lstm神经网络可以包括代替神经元的互连存储块。每个存储块可以包括控制存储块的当前状态和输出的门。这些门可以包括遗忘门、输入门和输出门。遗忘门可以确定存储块中的哪个信息被删除,输入门可以确定哪个输入信息被用于更新存储块,输出门可以确定从存储块输出什么。每个门可以包括基于sigmoid的函数和逐点乘法运算。进入存储器块的输入首先通过遗忘门处理,遗忘门输出0(遗忘)和1(保留)之间的数字,该数字与存储器块的当前状态相乘,以确定哪些值被遗忘,哪些值被保留。然后,输入门可以确定哪些值要被更新并生成添加到存储块的当前状态的新候选值。然后,存储块的当前状态通过输出门。输出门的基于sigmoid的函数确定来自存储块的当前状态的哪些值被输出。每个门包括控制门的运算的权重和偏置。权重和偏置最初可以是随机值,然后通过神经网络的训练进行调整。权重和偏置也可以在神经网络对即将到来的内容时隙的运算期间变动。该训练可以包括基于梯度的训练,诸如训练lstm神经网络的时间反向传播方法。分类器的训练可以离线进行——例如,在下面关于图3所示的方法300描述的步骤301之前。在离线训练阶段期间生成的模型可以存储在数据处理系统的数据库中。分类器可以专门为不同的主要内容发布者中的每一个生成不同的模型。例如,如果不同的主要内容服务器中的每一个与不同的电视频道相关联,则分类器可以为每个频道生成不同的模型。分类器还可以生成单个模型,该模型可以通过诸如频道id或发布者id的特征来区分发布者。

置信分数器111可以确定与预测准确度相关的置信分数。置信分数可以按均方根误差函数来计算。如果置信分数器111针对预测计算了较低的置信分数,则数据处理系统107可以不预取第二内容,或者可以预取默认长度的第二内容。

再次参考图2,并且更详细地,图2示出了内容流200的实施方式的框图。内容流200包括主要内容段201(1)–201(n)(通常称为内容段201)。内容段201中的每一个可以是主要内容项的一部分,或者可以是单独的主要内容项。内容段201由相应的第二内容时隙202分开。第二内容时隙202可以具有不同的持续时间。在一些实施方式中,第二内容时隙202可以在约5秒和约900秒之间,尽管更短和更长的时隙也是可能的。相邻第二内容时隙202之间的间距(例如,内容段201的长度)也可以变化。内容流200还可以包括内容时隙持续时间的指示203。指示可以在每个内容时隙202之前。在图示的实施方式中,指示203(2)在内容时隙202(2)之前。指示203可以在相应的内容时隙202之前相对较短的一段时间。指示203和内容时隙202之间的时间可以在约0秒和约20秒之间、在约0秒和约15秒之间、在约0秒和约10秒之间、或者在约0秒和约5秒之间或者任何其他这样的值或值的对。

动态内容插入服务器103可以向多个客户端设备104发送内容流200。主要内容项可以是动态内容插入服务器103正在向每个客户端设备104流式传输的体育赛事。第二内容时隙202可以是插入到内容流200中的中断。每个客户端设备可以向第二内容服务器发送它们正在接收内容流200的通知。在一些实施方式中,动态内容插入服务器103可以向第二内容服务器102发送动态内容插入服务器103正在向客户端设备104发送内容流200的通知。内容流200可以包括指令,这些指令指示每个客户端设备104向第二内容服务器102请求内容。从第二内容服务器102请求内容的指令可以被包括在内容流200中,该指令在时间上基本上靠近第二内容时隙202。请求内容的指令可以在第二内容时隙202的开始的5秒内。因为每个客户端设备104可以接收相同内容流200的副本(例如,客户端设备104正在流式传输相同的体育赛事),所以当第二内容服务器102需要向客户端设备104发送第二内容时,由第二内容服务器102在较短的持续时间内从每个客户端设备104接收内容请求。如果n个客户端设备104正在接收内容流200,则第二内容服务器102必须在第二内容时隙202开始之前针对第二内容执行n次查找。在一些实施方式中,第二内容服务器102可以在给定的时间段内处理x次查找。当n大于x时,第二内容服务器不能在分配的时间内执行查找,并且不能将第二内容返回给每个客户端设备104。当n大于x时,第二内容服务器可以进行关于即将到来的第二内容时隙202的长度和出现的预测。可以在第二内容时隙202出现之前的基本上足够长的时间处进行预测,使得数据处理系统可以为每个客户端设备预取并存储第二内容项。

图3示出了用于预测内容时隙持续时间的方法300的框图。作为方法300的步骤的概述,方法300包括数据处理系统接收对发送到一个或多个客户端设备的数据流的指示(步骤301)。数据处理系统可以接收过去的第二内容时隙持续时间的阵列(步骤302)。方法300还可以包括生成多个不同的类别(步骤303)。方法300可以包括确定并发地接收第一数据流的设备的数量是否高于阈值(步骤304)。如果该数量高于阈值,则方法300可以包括将即将到来的第二内容时隙分类为多个类别中的一个类别(步骤305)。数据处理系统可以确定即将到来的第二内容时隙的分类的置信分数(步骤306)。如果在步骤307,置信分数高于阈值,则数据处理系统可以获取第二内容项(步骤308)。

回到步骤304,如果并发设备的数量低于阈值,则数据处理系统可以等待,直到接收到对第二内容时隙的实际持续时间的指示(步骤309)。数据处理系统可以基于该时隙的实际持续时间检索第二内容项(步骤310)。在一些实施方式中,步骤304可以发生在步骤301之后,使得步骤302和303仅在并发设备的数量高于阈值时才发生。在方法300中,较早地确定并发设备的数量是否高于阈值可以减少计算浪费,因为在分类器最终不进行分类的情况下将不会执行步骤302和303。

回到步骤307,如果置信分数低于阈值,则数据处理系统可以基于默认持续时间获取第二内容项(步骤311)。在一些实施方式中,数据处理系统可以基于最后测量的持续时间获取第二内容项。方法300可以包括测量内容时隙的持续时间的实际持续时间(步骤312)。内容时隙的持续时间可以被附加到过去的内容时隙持续时间的阵列中(步骤313)。

如上所述,并且更详细地,方法300可以包括接收对第一数据流的指示(步骤301)。数据流可以被发送到多个客户端设备。数据流可以包括主要内容和一个或多个第二内容时隙。内容流可以类似于以上关于图2讨论的内容流。内容流可以包括从动态内容插入服务器流式传输到一个或多个客户端设备的视频。当动态内容插入服务器将内容流发送到客户端设备时,动态内容插入服务器可以向数据处理系统发送内容流正被流式传输到客户端设备的指示。在其他实施方式中,当客户端设备接收内容流时,客户端设备可以向数据处理系统传送客户端设备正在接收内容流的视频的指示。该指示可以包括内容流和接收客户端设备(或其列表)的标识。

该方法还可以包括接收过去的第二内容时隙持续时间的阵列(步骤302)。数据处理系统可以检索该阵列。数据处理系统可以维持先前第二内容时隙的持续时间的数据库。该阵列可以包括当前被流式传输的内容项的先前内容时隙持续时间。该阵列可以包括来自主要内容发布者内容服务器的任何内容的先前内容时隙持续时间。该阵列可以包括最后五个第二内容时隙的持续时间,或者更多或更少数量的内容时隙。该阵列可以包括最后5到20个、5到15个或5到10个第二内容时隙的持续时间。该阵列可以包括内容流中包括的第二内容时隙在过去的30分钟、1小时、2小时、6小时、1天或1周内的持续时间。该阵列可以包括与当前被流式传输的内容项的特征匹配的先前第二内容时隙持续时间。在一些实施方式中,数据处理系统可以确定内容流的特征。内容流的特征可以包括内容流id、标题、流派、总持续时间、显示时间、制作者、或它们的组合。第二内容可以采取任何形式,包括广告。在步骤302,数据处理系统还可以检索内容流的特征,诸如流派、当日时间、星期几、发布者id、或它们的组合。

方法300还可以包括生成类别(步骤303)。数据处理系统可以确定第二内容时隙可以被分类为的可能的类别。在一些实施方式中,类别基于可能的第二内容时隙持续时间。在一个这样的实施方式中,每个类别可以约5秒长。在可能最长的内容时隙900秒的情况下,类别1可以是0-5秒,类别2可以是5-10秒,...,类别180可以是895-900秒。在一些实施方式中,仅使用了可能的类别的一部分。可以基于内容流的一个或多个特征(诸如流派、当日时间、星期几、或它们的组合)来选择可能的类别的一部分。在一些实施方式中,在电影期间,第二内容时隙更有可能具有30秒、1分钟、1.5分钟或2分钟的持续时间;并且可以选择与30秒、1分钟、1.5分钟和2分钟持续时间相对应的类别作为可能的类别的一部分。对于其他流派或类型的内容,可以采用不同的持续时间。对于体育赛事的内容流,第二内容项可以具有更多变化的持续时间。系统可以选择可能的类别的更大一部分(或所有可能的类别)来使用。

方法300可以包括确定接收内容流的并发设备的数量是否高于阈值(步骤304)。当接收内容流的并发设备的数量低于阈值时,数据处理系统可以在接收到第二内容时隙的持续时间和第二内容时隙的开始之间的时间内为每个设备检索第二内容项。如上所述,内容流可以包括对第二内容时隙的长度的指示。对长度的指示可以被包括在第二内容时隙开始之前的预定时间量的内容流中(例如,该指示可以在第二内容时隙开始之前大约5秒)。当并发设备的数量(n)低于阈值时,数据处理系统可以在接收到指示和第二内容时隙开始之间获取第二内容项n次。步骤304的阈值可以在约25000和约500000个并发设备之间,在约50000和约250000个并发设备之间,或者在约100000和约250000个并发设备之间。

当并发设备的数量低于阈值时,数据处理系统可以等待接收到第二内容时隙的持续时间。第二内容服务器可以接收对第二内容时隙持续时间的指示(步骤309)。一旦数据处理系统知道内容时隙的持续时间,数据处理系统就可以获取其持续时间与内容时隙的持续时间匹配(或比内容时隙的持续时间更短)的第二内容项(步骤310)。数据处理系统可以为并发地接收内容流的每个计算设备获取第二内容项。

回到步骤304,当并发地接收内容流的设备的数量高于预定阈值时,数据处理系统可以通过将即将到来的第二内容时隙分类为在步骤303期间生成的类别中的一个类别来预测下一个第二内容时隙的长度(步骤305)。分类器可以通过将第二内容时隙分类为多个类别中的一个类别来预测即将到来的第二内容时隙持续时间。如上所述,数据处理系统可以使用诸如lstm神经网络的神经网络来预测即将到来的第二内容时隙的长度。分类器可以使用在步骤302接收的阵列作为分类器的输入。分类器可以使用内容流的特征作为输入。先前的内容时隙可以作为lstm神经网络的输入。先前的内容时隙持续时间的时间可以作为lstm神经网络的预期输出(或因变量)。内容时隙持续时间的特征可以是输入到lstm神经网络中以生成预期输出的输入特征(或自变量)。可以使用阵列中包含的数据来训练lstm神经网络。可以使用梯度下降和反向传播技术来训练lstm神经网络,以生成权重和偏置,lstm神经网络使用这些权重和偏置来对内容流的第二内容时隙进行分类。

方法300可以包括为分类计算置信分数(步骤306)。数据处理系统可以使用分类的均方根误差函数来计算置信区间。置信分数可以基于在步骤302接收的阵列中存储的过去的时隙持续时间的数量。分类器可以使用存储在阵列中的过去的持续时间来计算实际的过去持续时间和由神经网络或分类器的其他模型所预测的持续时间之间的均方根误差。均方根误差函数可以表示存储在阵列中的观察到的持续时间和所预测的持续时间之间的差异的标准偏差。在一些实施方式中,当阵列中的时隙持续时间的数量较低(例如,低于5)时,如在内容流开始时可能发生的,置信分数可能会较低。随着第二内容服务器进行更多的分类,后续分类的置信度会增加。置信分数可以是在对分类器进行离线训练期间观察到的准确度,该分类器用于来自与当前内容流相关联的发布者的内容流。

如果置信分数低于预定阈值,则数据处理系统可以基于默认持续时间获取内容项(步骤311)。如果置信分数低于60%、70%、80%、90%或95%,则数据处理系统可以基于默认持续时间获取内容项。在一些实施方式中,默认持续时间可以是30秒。默认持续时间可以是被包括在内容流中的最常见的持续时间,或者是过去的第二内容时隙持续时间的平均值。

如果置信分数高于预定阈值,则数据处理系统可以基于来自分类器的持续时间获取内容项(步骤308)。数据处理系统可以为并发地接收内容流的每个客户端设备检索第二内容项。数据处理系统可以将第二内容项作为预取内容项保存到预取内容数据库中。

方法300还可以包括接收第二内容时隙的持续时间(步骤312)。接收内容时隙的实际持续时间可以作为可选步骤。当数据处理系统接收到实际的第二内容时隙持续时间时,在步骤313中,可以将实际的第二内容时隙持续时间附加到阵列。在其他实施方式中,当跳过步骤312时,在步骤313中,预测的第二内容时隙持续时间可以被附加到阵列。使用实际的第二内容时隙持续时间能够使数据处理系统改进分类器的准确性。可以比较预测的和实际的持续时间来加强神经网络内的连接。

方法300还可以包括将持续时间附加到阵列(步骤313)。测量或预测的内容时隙持续时间可以被附加到在步骤302期间接收的阵列。增加阵列中的第二内容时隙持续时间的数量可以增加在步骤305做出的预测的准确性。

因此,本文公开了用于向多个客户端设备提供内容的系统和方法。根据本公开的一个方面,一种用于向多个客户端设备提供内容的系统包括至少一个计算设备,该计算设备包括至少一个处理器和至少一个存储器设备。该至少一个处理器执行分类器。分类器被配置为接收被发送到多个客户端设备的第一内容流的指示。第一内容流包括内容项和第二内容项时隙。分类器还可以被配置为接收包括多个过去的第二内容项时隙的持续时间的阵列。过去的第二内容项时隙可以与内容流相关联或者可以与其他内容流相关联。分类器还被配置为为第一内容流确定多个类别。多个类别中的每一个类别与对应的多个持续时间的不同持续时间相关联。分类器还被配置为将第一内容流的第二内容项时隙分类为多个类别中的第一类别。分类器还可以被配置为向第二内容服务器发送对第二内容项时隙被分类为的多个类别中的第一类别的持续时间的指示。

动态内容插入服务器可以由执行分类器的同一计算设备提供。发送对持续时间的指示可以包括使该对持续时间的指示对于动态内容插入服务器可用的任何方式。在接收到包括多个过去的第二内容项时隙的持续时间的阵列的情况下,可以至少部分基于该阵列来确定第一内容流的多个类别。

动态内容插入服务器可以被配置为响应于所发送的对持续时间的指示,为多个客户端设备中的每一个选择第二内容项,以在第一内容流的第二内容项时隙期间显示。可以进一步基于该客户端设备的特性来为该特定客户端设备选择第二内容项。动态内容插入服务器可以向客户端设备发送相应的所选择的第二内容项。分类器可以被配置为计算将第二内容项时隙分类为多个类别中的第一类别的置信分数。分类器还可以确定置信分数低于预定阈值,并选择具有默认持续时间的第二内容项。响应于确定置信分数低于预定阈值,具有默认持续时间的第二内容项可以被放置在第一内容流的第二内容项时隙中。

分类器可以被配置为确定并发地接收内容流的多个客户端设备的数量低于预定阈值。分类器可以接收对用于第二内容项的第二内容项时隙的长度的持续时间的指示。分类器可以响应于对用于第二内容项的第二内容项时隙的长度的持续时间的指示,选择第二内容项以放置到第一内容流的第二内容项时隙中。

分类器可以被配置为接收第一内容流的发布者标识符和第一内容流的显示时间。分类器可以基于该发布者标识符和显示时间将第二内容项时隙分类为多个类别中的一个。分类器可以被配置为基于该发布者标识符设置分类模型的一个或多个权重。阵列中的每个持续时间可以是第一数据流中的先前测量的时隙的持续时间。

分类器可以被配置为确定第一数据流的内容流特征,并且基于该内容流特征为第一内容流确定多个类别。分类器可以是长期-短期神经网络。

根据本公开的另一方面,一种用于向多个客户端设备提供内容的方法包括由计算设备的至少一个处理器执行的分类器接收将第一内容流发送到多个客户端设备的指示。第一内容流可以包括内容项和第二内容项时隙。该方法可以包括由分类器接收阵列,该阵列包括与内容流相关联的多个第二内容项时隙的持续时间。该方法可以包括由分类器为第一内容流确定多个类别。多个类别中的每一个可以与对应的多个持续时间的不同持续时间相关联。该方法可以包括由分类器将第二内容项的时隙分类为多个类别中的第一类别。该方法可以包括由分类器向动态内容插入服务器发送对第一类别的持续时间的指示。

动态内容插入服务器可以由执行分类器的同一计算设备提供。发送对持续时间的指示可以包括使对持续时间的指示对于动态内容插入服务器可用的任何方式。在接收到包括多个过去的第二内容项时隙的持续时间的阵列的情况下,可以至少部分基于该阵列来确定第一内容流的多个类别。

该方法可以包括由分类器响应于所发送的对持续时间指示,为多个客户端设备中的每一个选择第二内容项,以在第一内容流的第二内容项时隙期间显示。

该方法可以包括由分类器计算用于将第二内容项时隙分类为多个类别中的第一类别的置信分数,并且确定该置信分数低于预定阈值。该方法可以包括选择具有默认持续时间的第二内容项以放置在第一内容流的第二内容项时隙中。

该方法可以包括确定多个客户端设备的数量低于预定阈值。该方法可以包括接收对第二内容项时隙的长度的持续时间的指示。该方法可以包括响应于对用于第二内容项的第二内容项时隙的长度的持续时间的指示,选择第二内容项以放置第一内容流的第二内容项时隙中的。该选择可以是对确定多个客户端设备的数量低于预定阈值的响应。

该方法可以包括由分类器接收第一内容流的发布者标识符和第一内容流的显示时间。该方法可以包括由数据处理系统的处理器执行的分类器基于该发布者标识符和显示时间将第二内容项时隙分类为多个类别中的一个。该方法可以包括基于该发布者标识符来选择分类模型的一个或多个权重。阵列中的每个持续时间可以是第一数据流中先前第二内容项时隙的持续时间。

该方法可以包括确定第一数据流的内容流特征,以及由分类器基于该内容流特征为第一内容流确定多个类别。分类器可以是长期-短期神经网络。该方法可以包括接收第二内容项时隙的持续时间,并且更新阵列以包括该第二内容项时隙的持续时间。

图4示出了计算机系统400的实施方式的框图。计算机系统或计算设备400可以包括或被用于实现系统100或系统100的组件,诸如动态内容插入服务器103。计算系统400包括用于通信传达信息的总线405或其他通信组件,以及耦合到总线405用于处理信息的处理器410或处理电路。计算系统400还可以包括耦合到总线用于处理信息的一个或多个处理器410或处理电路。计算系统400还包括耦合到总线405用于存储信息和将由处理器410执行的指令的主存储器415,诸如随机存取存储器(randomaccessmemory,ram)或其他动态存储设备。主存储器415可以是或包括存储库145。主存储器415还可以用于在处理器410执行指令期间存储位置信息、临时变量或其他中间信息。计算系统400还可以包括耦合到总线405用于存储静态信息和用于处理器410指令的只读存储器(readonlymemory,rom)420或其他静态存储设备。诸如固态设备、磁盘或光盘的存储设备425可以耦合到总线405,以持久地存储信息和指令。存储设备425可以包括数据存储库145或者是数据存储库145的一部分。

计算系统400可以经由总线405耦合到显示器435,诸如液晶显示器或有源矩阵显示器,用于向用户显示信息。输入设备430,诸如包括字母数字键和其他键的键盘,可以耦合到总线405用于向处理器410通信传达信息和命令选择。输入设备430可以包括触摸屏显示器435。输入设备430还可以包括光标控制器,诸如鼠标、轨迹球或光标方向键,用于向处理器410通信传达方向信息和命令选择,并用于控制显示器435上的光标移动。显示器435可以是数据处理系统105、客户端计算设备150或图1的其他组件的一部分。

本文描述的过程、系统和方法可以由计算系统400响应于处理器410执行对被包含在主存储器415中的指令的布置而实施。这些指令可以从另一计算机可读介质(诸如存储设备425)读入主存储器415。执行对被包含在主存储器415中的指令的布置使得计算系统400执行本文描述的例示性过程。多处理布置中的一个或多个处理器也可以用来执行被包含在主存储器415中的指令。硬连线电路可以代替软件指令或者与软件指令以及本文所描述的系统和方法结合使用。本文所描述的系统和方法不限于硬件电路和软件的任何特定组合。

尽管在图4中描述了示例计算系统,但是包括本说明书中所描述的操作的主题可以在其他类型的数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中所公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。

对于本文讨论的系统收集关于用户的个人信息或者可能利用个人信息的情况,可以向用户提供机会以控制程序或特征是否可以收集个人信息(例如,关于用户的社交网络、社交动作或活动、用户偏好或用户位置的信息),或者控制是否或者如何从内容服务器或其他可能与用户更相关的数据处理系统接收内容。另外,在存储或使用某些数据之前,可以以一种或多种方式对其进行匿名化,从而在生成参数时移除个人可识别信息。例如,用户的身份可以被匿名化,从而不能为用户确定个人可识别信息,或者可以在获得位置信息的地方(诸如城市、邮政编码或州级)使用户的地理位置一般化,从而不能确定用户的特定位置。如此,用户可以控制内容服务器如何收集和使用关于他或她的信息。

本说明书中描述的主题和操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题可以实施为编码在一个或多个计算机存储介质上的一个或多个计算机程序,例如计算机程序指令的一个或多个电路,以用于由数据处理装置执行或控制数据处理设备的操作。可替换地或附加地,可以将该程序指令编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码用于传输到合适的接收器装置以由数据处理装置执行的信息。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的组件或介质(例如多个光盘、磁盘或其他存储设备)中。本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。

术语“数据处理系统”、“计算设备”、“组件”或“数据处理装置”涵盖用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机、单芯片或多个芯片上的系统,或前述的组合。该装置可以包括专用逻辑电路,例如fpga(fieldprogrammablegatearray,现场可编程门阵列)或asic(applicationspecificintegratedcircuit,专用集成电路)。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。上面结合图1描述的组件可以包括或共享一个或多个数据处理装置、系统、计算设备或处理器。

计算机程序(也称为程序、软件、软件应用、应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解析语言、声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以对应于文件系统中的文件。计算机程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一台或多台计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序(例如,数据处理系统105的组件)的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cdrom和dvd-rom光盘。处理器和存储器可以由专用逻辑电路来补充或被并入专用逻辑电路中。

本文描述的主题可以在计算系统中实施,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实施方式交互,或者一个或多个这样的后端、中间件或前端组件的组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)相互连接。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网络(例如因特网)和对等网络(例如特殊对等网络)。

诸如系统100或系统400的计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络(例如,网络165)进行交互。客户机和服务器之间的关系是由于在相应的计算机上运行的、并且彼此之间具有客户机-服务器关系的计算机程序而产生的。在一些实施方式中,服务器将数据(例如,表示内容项目的数据包)发送到客户端设备(例如,为了向与客户端设备交互的用户显示数据和从与客户端设备交互的用户接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)可以在服务器处从客户端设备接收(例如,由数据处理系统从客户端设备或内容提供商计算设备或服务提供商计算设备接收)。

虽然在附图中以特定的顺序描述了操作,但是这种操作不需要以所示的特定顺序或相继顺序来执行,并且不需要执行所有示出的操作。本文描述的动作可以以不同的顺序执行。

各种系统组件的分离并不需要在所有实施方式中分离,并且所描述的程序组件可以被包括在单个硬件或软件产品中。

现在已经描述了一些说明性的实施方式,显然前面是例示性的而不是限制性的,已经通过示例的方式给出。具体而言,尽管本文呈现的许多示例涉及方法动作或系统元件的特定组合,但是这些动作和那些元件可以以其他方式组合以实现相同的目标。结合一个实施方式讨论的动作、元件和特征不旨在被排除在其他实施方式或实施方式中的类似角色之外。

本文使用的措辞和术语是出于描述的目的,不应被视为限制。本文使用的“包括”、“包含”、“具有”、“包含”、“涉及”、“特征在于”及其变型意味着涵盖其后列出的项目、其等同物和附加项目,以及由其后专门列出的项目构成的替代实施方式。在一个实施方式中,本文描述的系统和方法由所描述的元件、动作或组件中的一个、不止一个的每种组合、或者全部构成。

本文以单数引用的对系统和方法的实施方式或元件或者动作的引用也可以包含包括多个这些元件的实施方式,并且本文中以复数对任何实施方式或元件或动作的引用也可以包含包括仅仅单个元件的实施方式。以单数或复数形式的引用并不旨在将当前公开的系统或方法、其组件、动作或元件限制为单个或多个配置。基于任何信息、动作或元件的对任何动作或元件的引用可以包括这样的实施例:动作或元件是至少部分地基于任何信息、动作或元件。

本文公开的任何实施方式可以与任何其他实施方式或实施例结合,并且对“某实施方式”、“一些实施方式”、“一个实施方式”等的引用不一定是互斥的,而是旨在指示结合该实施方式描述的特定特征、结构或特性可以被包括在至少一个实施方式或实施例中。本文使用的这些术语不一定都指相同的实施方式。任何实施方式可以包容性地或排他性地以与本文公开的方面和实施方式一致的任何方式与任何其他实施方式相结合。

对“或”的引用可以被解释为包容性的,从而使用“或”描述的任何术语可以指示所描述的术语中的单个、不止一个和全部。例如,对“a与b中的至少一个”的引用可以包括“仅a”、“仅b”以及“a和b两者”。与“包含”或其他开放术语结合使用的这种引用可以包括附加项目。

在附图、详细描述或任何权利要求中的技术特征后面跟随有附图标记的地方,已经包括附图标记以增加附图、详细描述和权利要求的可理解性。因此,参考符号或其缺失对任何权利要求元素的范围没有任何限制作用。

在不脱离其特征的情况下,本文描述的系统和方法可以以其他特定形式体现。前述实施方式是例示性的,而不是对所描述的系统和方法的限制。因此,本文描述的系统和方法的范围由所附权利要求而不是前述描述来指示,并且其中还包括落入权利要求等同物的含义和范围内的改变。

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