自定义合集视频
1.相关申请
2.本技术要求名称为“custom compilation videos”并且在2019年10月18日提交的美国专利申请序列号16/657,819的优先权,该申请是名称为“content-item recommendations”并且在2019年7月8日提交的美国专利申请序列号16/505,112的部分继续申请并要求其优先权。
背景技术:3.随着电子设备上内容项的消费持续激增,可用内容项的数量也在增加。例如,可用于流传输或下载的歌曲、电影、电视节目和游戏的数量近来大幅增加。尽管可用内容项的这种增加通常对用户有利,但识别单个用户感兴趣的内容项仍然很困难。
附图说明
4.参考附图描述了具体实施方式。在这些图中,附图标记的最左边数字标识首次出现该附图标记的图。在不同图中使用相同的参考标号指示相似或相同的部件或特征。
5.图1是示出包括远程计算系统的示例性环境的图示,该远程计算系统被配置为训练和使用机器学习模型以用于向不同的用户推荐内容项。在一些情况下,该远程计算系统训练多个模型,并且此后将用户的消费历史输入到每个模型中以用于生成指示多个内容项作品中的每个作品与消费历史之间的相关性的得分数据。此外,该计算系统可以使用一个或多个偏置因子来生成结果数据,该计算系统可以将该结果数据发送到用户的客户端设备。该客户端设备可以使用该结果数据以及不同的用户输入来确定向用户呈现内容项推荐的顺序。
6.图2示出了用于生成机器学习模型、将它们应用于特定用户的历史数据、将生成的结果数据发送到用户的客户端设备以及使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的操作的示例性过程。
7.图3示出了用于生成模型、偏置所得得分、将模型应用于特定用户的历史数据以及使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的示例性部件及其相互作用。
8.图4示出了远程计算系统可以生成并发送到用户的客户端设备的示例性结果数据。如图所示,结果数据可以包括得分的m
×
n矩阵,客户端设备可以响应于接收到变化的用户输入而根据需要在该矩阵中进行插值。
9.图5示出了客户端设备可以响应于从用户接收到对内容项推荐的请求而呈现的示例性用户界面(ui)。
10.图6示出了客户端设备可以响应于用户改变第一参数(在该示例中,内容项的流行度)的值和第二参数(在该示例中,内容项的新近度)的值而呈现的示例性ui。
11.图7示出了远程计算系统可用于生成一个或多个经训练的机器学习模型以及生成结果数据以供客户端设备在向用户提供内容项推荐时使用的示例性过程的流程图。
12.图8示出了用户的客户端设备可用于确定向用户呈现一个或多个内容项的顺序的示例性过程的流程图。
13.图9是示出包括远程计算系统的示例性环境的图示,该远程计算系统被配置为训练和使用机器学习模型以用于确定向特定用户呈现哪些内容项视频,以及用于创建由这些确定的视频组成的视频。在一些情况下,该远程计算系统训练多个模型,并且此后将用户的消费历史输入到每个模型中以用于生成指示多个内容项作品中的每个作品与消费历史之间的相关性的得分数据。然后广播部件生成用于向用户呈现的视频,该视频包括与相关性最高的内容项相关联的预告片(或其他视频)。
14.图10示出了用于确定向用户呈现哪些内容项视频以及呈现这些视频的顺序的示例性过程的流程图。
具体实施方式
15.本文描述了用于生成一个或多个经训练的机器学习模型的技术、设备和系统等,这些机器学习模型用于生成内容项推荐。本文还描述了用于将特定用户的消费历史应用于该经训练的模型以生成指示每个内容项作品与该消费历史之间的相关性的得分数据以及使用一个或多个偏置因子来修改该得分数据以用于生成结果数据的技术、设备和系统。此外,该技术、设备和系统可以将该结果数据连同所接收的用户输入一起用于确定向用户呈现一个或多个内容项的顺序。例如,这可以包括确定向用户推荐哪些内容项以及以何种顺序这样做。
16.所公开的技术可以至少部分地由远程计算系统来实现,该远程计算系统将内容项(例如,视频游戏、电影、电视节目、歌曲等)分发到用户社区的客户端设备(例如,作为视频游戏服务、电影服务、歌曲服务等的一部分)。这些客户端设备可以单独地安装客户端应用程序,该客户端应用程序被配置为执行从远程计算系统接收到(例如,下载、流传输等)的内容项。在视频游戏服务的示例中,视频游戏平台使社区的注册用户能够以“玩家”的身份玩视频游戏。例如,用户可以加载客户端应用程序,使用注册的用户账户登录,选择所需的视频游戏,以及经由该客户端应用程序在他/她的客户端机器上执行该视频游戏。当然,虽然参考视频游戏作品描述了一些示例,但是应当理解,所述技术适用于任何其他类型的内容项,如上所述。
17.在一个示例中,通常远离各个用户的客户端设备的计算系统生成多个经训练的模型,每个模型与参数的特定值相关联。例如,该计算系统可以生成用于推荐在第一时间窗口(例如,前六个月)内已经发布的内容项的第一经训练的模型,用于推荐在第二时间窗口(例如,前一年)中已经发布的内容项的第二经训练的模型,以此类推。如下面将描述的,这些模型可以应用于个人用户数据以用于生成定制的内容项推荐。
18.虽然该计算系统可以采用任何合适的方式训练这些模型,但是在一个示例中,该计算系统通过访问与计算系统社区相关联的多个用户的相应消费历史(例如,游戏历史、移动历史等)而开始训练。例如,该计算系统可以访问视频游戏服务社区的第一用户的游戏历史,并且可以使用该历史来训练第一模型。例如,如果第一模型用于推荐在过去六个月内已经发布的游戏作品,则该计算系统可以从用户的游戏历史中选择在过去六个月内已经发布的一个游戏作品,并且可以向第一模型指示该所选择的游戏作品将是分类器的输出。此后,
该计算系统可以提供用户的整个游戏历史作为第一模型的输入,并且提供所选择的游戏作品作为第一模型的输出以用于训练第一模型的一个或多个内部层。例如,如果第一模型包括人工神经网络,则选择游戏作品作为输出并且提供关于用户的游戏历史的信息作为输入可以有效地训练神经网络的一个或多个内部层。应当理解,神经网络的输入和输出以及可以使用的其他类型的模型可以包括对应的游戏作品或其他内容项的特征,诸如发行数据、流派、游戏类型等。此外,模型的输入可以包括与用户相关联的信息,诸如与用户相关联的地理位置、与用户相关联的人口统计信息等。另外,虽然已经描述了模型的几个示例性输入,但是应当理解,可以向模型提供任何其他类型的输入。
19.在一些情况下,该计算系统可以在选择要用作机器学习模型的输出的游戏作品时考虑用户在其历史中玩过每个游戏的时间量。例如,该计算系统可以最初确定用户已经玩了在用户的游戏历史中引用的每个单独游戏作品的时间量。这可以绝对地(例如,在玩游戏的时间方面)确定或相对地(例如,在相对于也玩过该游戏作品的其他用户玩的时间方面)确定。该信息可以作为权重应用于单个游戏作品,或者可以传递到模型中作为输入。在对与游戏历史相关联的每个游戏作品应用权重或将此信息输入到模型之后(可能会由于用户非常少玩一些游戏作品而将它们过滤掉),然后该计算系统可以选择一个(或多个)游戏作品以用作第一模型的输出。通过这样做,该计算系统增加了用户玩得最多的游戏被选择作为第一模型的输出的机会,因此,以使得第一模型更有可能选择用户感兴趣的游戏的方式来训练该模型的内部层。然而,应当理解的是,虽然以上描述示出了训练模型的一种方式,但是可以采用任何其他数量的方式来训练用于输出内容项推荐的其他模型。
20.除了训练第一模型之外,在一些情况下,计算设备还可以训练多个其他模型,诸如用于推荐在去年内发布的游戏的模型、用于推荐在过去三年中发布的游戏的模型等等。在每种情况下,该计算系统可以访问用户的游戏历史,并且选择既在游戏历史中指示又在与特定模型相关联的时间量(例如,一年内、三年内等)内发布的游戏作品作为该特定模型的输出。此外,虽然上述示例描述了访问单个游戏历史以用于训练多个机器学习模型中的每个模型,但是应当理解,该计算系统可以分析数千个或更多个游戏历史以用于训练这些模型。
21.在训练机器学习模型之后,该计算系统然后可以使用模型来生成可以由客户端设备用于对内容项(例如,视频游戏)推荐进行显示的数据。例如,设想特定用户经由客户端设备发送对视频游戏推荐的请求。在接收到该请求时,该计算系统可以(例如,经由设备或用户标识符)识别该用户并且可以访问该用户的游戏历史。然后,该计算系统可以将游戏历史连同关于与多个机器学习模型中的每个模型相关联的可用游戏的信息一起输入到每个模型中。例如,对于第一训练模型(其已被训练为使在过去六个月内发布的游戏具有更高权重),该计算系统可以输入用户的游戏历史和关于可供推荐的游戏的信息,对于第二训练模型(其已被训练为使在去年内发布的游戏具有更高权重),计算系统可以输入用户的游戏历史和关于可供推荐的那些游戏的信息,以此类推。也就是说,虽然可以将可用游戏的整个目录输入到第一模型、第二模型等,但是第一模型可能更可能推荐在过去六个月内已经发布的游戏,第二模型可能更可能推荐在去年内发布的游戏,以此类推。
22.每个经训练的机器学习模型可以输出得分数据,该得分数据针对多个游戏作品中的每个游戏作品指示用户的游戏历史与特定游戏作品之间的相关性。正如读者将理解的那
样,那些与游戏历史高度相关的游戏将获得相对较高的得分,反之亦然。此外,如果计算系统实现“n”个模型,则计算系统可以生成“n”个得分数据。还应当理解,“相关性”可能不是统计相关性,而是只表示具有与所关注用户相同的游戏历史的用户将选择玩该游戏的可能性。
23.此外,该计算系统可以被配置为基于一个或多个偏置因子的不同值来将得分数据偏置。偏置因子可以包括任何数量的因子,诸如每个游戏的流行度、每个游戏的成本、每个游戏的流派等。在一个示例中,偏置因子可以包括每个游戏的流行度,如由游戏的销售量、游戏的游戏量等确定的。在一些情况下,(由各个经训练的模型确定的)每个得分数据可以在不同的流行度水平下被偏置,使得如果用户期望的话,所得的偏置数据将更接近地匹配该特定流行度水平。也就是说,该计算系统可以将每个游戏作品(以及每个模型)的得分按照范围从非常流行到非常不流行(或非常“小众”)的“m”个目标流行度水平进行偏置。正如读者将理解的那样,那些非常流行的游戏作品的计算得分将因为“非常高”的目标流行度水平而被加分,并且将因为“非常低”的目标流行度水平而被罚分。相反,更小众游戏作品的计算得分将因为“非常高”的目标流行度水平而被罚分,并且将因为“非常低”的目标流行度水平而被加分。
24.最后,鉴于计算系统现在已经为特定用户计算了“n”个经训练的模型中的每个模型的得分数据,并且已经使用“m”个流行度值来偏置这些得分中的每个得分,则计算系统现在可以为用户生成“m
×
n”个得分。例如,如果计算系统利用六个模型和五个流行度水平,则计算系统将为任何特定用户生成总共三十个得分(假设由模型生成的六个得分数据中的每个得分将被偏置五次)。当然,应当理解,计算的得分数据可以具有任何其他数量的值,并且可以采用任何其他(例如,非线性)方式进行采样。此外,虽然该示例描述了在训练模型之前输入第一参数的值(在这种情况下,基于发布日期)和在训练之后输入第二参数的值(在这种情况下,基于流行度),但是可以将任何其他数量的参数用作模型的输入和/或用作参考流行度数据描述的后处理的一部分。还应注意,虽然后处理参数被描述为偏置因子,但是这些偏置因子表示可以作为模型的输入或作为后处理的一部分应用的参数。
25.在以矩阵或其他形式计算该得分数据时,计算系统然后可以将该“结果数据”发送到用户的客户端设备。然后用户的客户端设备可以使用该结果数据以及来自用户的输入来确定呈现用户可用的一个或多个游戏作品的顺序。也就是说,客户端设备可以使用结果数据和来自用户的输入数据来确定要向用户推荐哪些视频游戏,以及当用户提供不同的输入数据时如何改变该推荐。
26.为了继续上面的示例,客户端设备可以使用户能够提供对期望的发布新近度的选择和对期望的流行度水平的选择作为输入。也就是说,用户可以向客户端设备指示用户是否更喜欢将最近发布的游戏或较老的游戏视为游戏推荐。此外,用户可以指定她是否希望接收对主流(即,流行)的游戏还是更小众(即,不太流行)的游戏的推荐。虽然下面的示例示出并描述了用户经由一个或多个滑块提供该输入,但是应当理解,可以采用任何其他方式提供该输入。
27.在接收到来自用户的输入时,诸如指示用户希望看到对通常是较新的和更小众的游戏的推荐的输入,客户端设备可以使用结果数据来确定向用户推荐哪些游戏以及以哪个顺序来推荐。在一些情况下,客户端设备可以从该输入识别客户端设备已经接收到的针对
该用户的计算得分数据中的哪一个或多个最接近用户的输入数据。例如,在用户指定不太流行的相对新的游戏的示例中,客户端设备可以从计算得分数据中识别出哪些得分对应于:(1)已在该时间范围内训练的模型,和(2)被偏置为提高不太流行的作品的得分。在识别这些得分之后,客户端设备可以使用插值来确定与各个游戏相关联的得分,然后可以基于这些得分向用户呈现游戏推荐。例如,客户端设备可以利用双线性插值或任何其他形式的插值来计算游戏作品的得分,并且可以根据所计算的得分对这些游戏作品进行排序,其中具有最高得分的那些游戏作品被放置在列表的顶部。此外,如果用户(诸如通过移动上述的一个或两个滑块)提供不同的输入数据,则客户端设备可以再次从得分的矩阵或其他表示中识别最相关的得分数据,并且可以对该得分数据进行插值以用于将游戏作品重新排序。
28.通过在远程计算系统处生成该得分数据并在客户端设备处本地执行插值,所述技术极大地改善了在客户端设备处对内容项推荐进行排序和重新排序的过程的流畅性。也就是说,因为所述技术涉及向客户端设备发送多个得分数据而不是单个结果,并且因为客户端设备被配置为响应于接收到不同的用户输入来执行对这些得分数据的实时插值,所以这些技术能够对推荐进行排序和重新排序,而无需向远程计算系统提出额外的往返请求。另外,与每次用户提供不同的输入时向系统发出呼叫并等待来自系统的响应的要求相反,所述技术使得能够以对远程计算系统的单个请求和响应为代价无限制地将内容项推荐重新排序。
29.此外,本文所述的技术提供了非常细粒度的内容推荐。通过使用户能够指定第一参数(例如,成本、发布日期等)的期望值和第二参数(例如,流行度、成本等)的期望值并且通过执行这些输入的客户端侧插值,这些技术提供了高度定制的内容项推荐。
30.应当理解,虽然本文参考两个参数(发行数据和流行度)描述了其中一些技术,但是这些技术可以用于任何其他数量的参数(例如,一个、五个等)以及任何其他参数值(例如,成本、流派等)。还应当理解,虽然推荐被描述为在一个或多个ui上呈现,但是可以采用任何其他方式(例如,听觉方式、视觉方式等)来输出推荐。
31.此外,本文描述了用于生成一个或多个经训练的机器学习模型的技术、设备和系统等,这些机器学习模型用于生成要呈现给用户的内容项视频(例如,预告片等);以及呈现这些视频的顺序。此外,与上述技术类似,这些技术、设备和系统可以将特定用户的消费历史应用于经训练的模型以生成指示每个内容项视频与该消费历史之间的相关性的得分数据,以及使用一个或多个偏置因子来修改该得分数据以用于生成结果数据。此外,这些技术、设备和系统可以将该结果数据连同所接收的用户输入一起用于确定向用户呈现一个或多个内容项视频的顺序。例如,这可以包括确定向用户推荐哪些视频以及以何种顺序这样做。
32.在一个示例中,这些技术使用上面参考内容项推荐描述的技术来训练一个或多个模型。例如,这些技术可以通过访问与计算系统社区相关联的多个用户的相应消费历史(例如,游戏历史、移动历史等)来开始。例如,该计算系统可以访问视频游戏服务社区的第一用户的游戏历史,并且可以使用该历史来训练第一模型。例如,计算系统可以从用户的游戏历史中选择一个游戏产品,并且可以向第一模型指示该所选择的游戏产品将是分类器的输出。此后,该计算系统可以提供用户的整个游戏历史作为第一模型的输入,并且提供所选择的游戏作品作为第一模型的输出以用于训练第一模型的一个或多个内部层。例如,如果第
一模型包括人工神经网络,则选择游戏作品作为输出并且提供关于用户的游戏历史的信息作为输入可以有效地训练神经网络的一个或多个内部层。应当理解,神经网络的输入和输出以及可以使用的其他类型的模型可以包括对应的游戏作品或其他内容项的特征,诸如发行数据、流派、游戏类型等。此外,模型的输入可以包括与用户相关联的信息,诸如与用户相关联的地理位置、与用户相关联的人口统计信息等。另外,虽然已经描述了模型的几个示例性输入,但是应当理解,可以向模型提供任何其他类型的输入。此外,应当理解,可以如上所述为第一用户训练多个模型(例如,对应于第一时间范围、第二时间范围等),或者可以训练单个模型。
33.在一些情况下,该计算系统可以在选择要用作机器学习模型的输出的游戏作品时考虑用户在其历史中玩过每个游戏的时间量。例如,该计算系统可以最初确定用户已经玩了在用户的游戏历史中引用的每个单独游戏作品的时间量。这可以绝对地(例如,在玩游戏的时间方面)确定或相对地(例如,在相对于也玩过该游戏作品的其他用户玩的时间方面)确定。该信息可以作为权重应用于单个游戏作品,或者可以传递到模型中作为输入。在对与游戏历史相关联的每个游戏作品应用权重或将此信息输入到模型之后(可能会由于用户非常少玩一些游戏作品而将它们过滤掉),然后该计算系统可以选择一个(或多个)游戏作品以用作第一模型的输出。通过这样做,该计算系统增加了用户玩得最多的游戏被选择作为第一模型的输出的机会,因此,以使得第一模型更有可能选择用户感兴趣的游戏的方式来训练该模型的内部层。然而,应当理解的是,虽然以上描述示出了训练模型的一种方式,但是可以采用任何其他数量的方式来训练用于输出内容项推荐的其他模型。此外,虽然上述示例描述了访问单个游戏历史以用于训练一个或多个机器学习模型,但是应当理解,该计算系统可以分析数千个或更多个游戏历史以用于训练这些模型。
34.在训练机器学习模型之后,该计算系统然后可以使用该模型来生成可以由客户端设备用于显示要推荐给用户的内容项视频的数据。在一些情况下,这些推荐用于确定要向特定用户显示的视频以及这些视频的顺序。利用该信息,该计算系统可以生成对用户看来是单个视频、但实际上包括以串行(或并发)方式播放给用户的多个单独的内容项视频的内容。
35.例如,设想特定用户经由客户端设备发送请求以查看显示为用户推荐的各个内容项视频的视频。也就是说,设想用户请求查看显示为该特定用户推荐的视频游戏的一系列视频游戏预告片的视频。在接收到该请求时,该计算系统可以(例如,经由设备或用户标识符)识别该用户并且可以访问该用户的游戏历史。然后该计算系统可以将游戏历史输入到机器学习模型中。作为响应,机器学习模型(或在利用多个模型的示例中的模型)可以输出得分数据,对于多个游戏产品中的每个游戏产品,该得分数据指示用户的游戏历史与特定游戏产品之间的相关性。正如读者将理解的那样,那些与游戏历史高度相关的游戏将获得相对较高的得分,反之亦然。还应当理解,“相关性”可能不是统计相关性,而是只表示具有与所关注用户相同的游戏历史的用户将选择玩该游戏的可能性。此外,该计算系统可以被配置为基于一个或多个偏置因子的不同值来将得分数据偏置,如上所述。偏置因子可以包括任何数量的因子,诸如每个游戏的流行度、每个游戏的成本、每个游戏的流派等。
36.不管得分数据是否已经被偏置,该计算系统然后可以根据得分数据确定要推荐给特定用户的视频游戏中的前“x”个。例如,得分数据可用于识别为用户推荐的前十个视频游
戏产品。该计算系统然后可以向如下所述的广播部件发送指令,以便为用户生成对应于这些特定游戏的预告片的视频。也就是说,该计算系统可以指示广播部件向用户呈现包括对应于为用户推荐的视频游戏的预告片的合集的视频。在一些情况下,广播部件可以根据规定的顺序连续地呈现预告片,而在其他情况下,广播层可以并发地呈现预告片。例如,广播部件可以在用户的显示器上的第一位置处呈现第一预告片,在用户的显示器上的第二位置处呈现第二预告片,以此类推。在一些情况下,排名最高的预告片(即,对应于用于特定用户的排名最高的游戏的预告片)可以被视为主要预告片,并且可以为前“x”个预告片的视频的整体播放该主预告片的音乐或其他音频。
37.在一些情况下,广播部件还可以在所呈现的预告片上呈现附加信息。例如,广播部件可以检索并呈现用于购买与当前正在播放的预告片对应的视频游戏的链接、与该预告片相关联的游戏的细节(例如,名称、发布日期等)等。广播部件还可以呈现视频控件以使用户能够控制视频的回放(例如,暂停、回退等)。
38.在一些情况下,广播部件可以通过获得每个单独的预告片的相对较小的部分并且根据由上述得分数据定义的顺序连续地呈现这些单独的部分来创建预告片的视频。例如,广播部件可以确定呈现十个(或其他数量的)预告片的顺序,并且可以按定义的顺序获取这些预告片的例如两秒的增量。此外,广播部件可以按由模型定义的顺序呈现这十个预告片,使得对于最终用户而言是单个视频而不是多个单独视频的合集。
39.虽然在一些情况下可以为特定用户确定和呈现(多个预告片组成的)单个视频,但是在其他情况下,这些技术还可以使用户能够指定一个或多个不同参数的一个或多个值以使系统呈现多个预告片的不同视频。例如,系统可以向用户呈现交互元素,这些交互元素使用户能够指定期望的发布新进度、期望的流行度水平等。在接收到该选择时,系统可以使用一个或多个经训练的模型来确定得分数据以用于识别要呈现给用户的预告片以及呈现这些预告片的顺序。广播部件然后可以接收该信息并且生成用于呈现给用户的新视频。在一些情况下,系统可以使用户能够经由标签提供该输入。例如,用户可以请求从视频中排除与特定标签相关联的游戏的预告片并且/或者可以请求仅包括与特定标签相关联的游戏的预告片。
40.在一些情况下,用于为用户生成定制视频的技术可以限制从中选择预告片的游戏(或其他内容项)的范围。例如,该技术可以将模型应用于游戏的特定子集,可以从模型接收得分数据以识别前“x”个推荐游戏(及其顺序),并且可以生成包括采用定义的顺序的这些推荐游戏的预告片的视频。例如,该闭宇宙可以对应于用户已经拥有(例如,先前购买)的游戏、正在销售的游戏、来自特定发布者的游戏等。
41.如上所述,在识别出前“x”个推荐游戏和呈现对应于这些游戏的预告片的顺序时,广播部件可以生成用于按所确定的顺序呈现这“x”个预告片的文件。此外,广播部件可以在开始时、结束时和/或与这“x”个预告片混在一起地包括一个或多个“开篇”(intro)或“结尾”(outro)视频。例如,如果广播部件确定向特定用户呈现十个预告片,则广播部件可以在这十个预告片之前呈现介绍这十个游戏的开篇视频,其中该视频包括与这些游戏相关联的信息,诸如与这些游戏相关联的流派、连到每个游戏的链接等。类似地,广播部件可以在这十个视频的结尾处呈现指示与这些预告片相关联的信息的结尾视频,该信息与在开篇视频中呈现的信息相同或不同。
42.在又一个示例中,这些开篇和/或结尾视频可以散布在这十个(或其他示例性数量的)预告片中。例如,如果前五个预告片与第一标签或流派(例如,冒险)相关联,并且接着的五个预告片与第二标签或流派(例如,解谜游戏)相关联,那么广播部件可以在呈现前五个预告片之前生成并提供第一开篇视频,在呈现前五个预告片之后生成并提供第一结尾视频,在呈现第一结尾视频之后生成并提供第二开篇视频,并且在呈现接着的五个预告片之后生成并提供第二结尾视频。同样,开篇和/或结尾视频可以包括与对应的预告片相关联的信息。例如,第一开篇和/或结尾视频可以指示这五个与冒险相关的预告片,具有用于获得这些游戏的信息等。类似地,第二开篇和/或结尾视频可以指示这五个与解谜相关的预告片,具有用于获得这些游戏的信息和/或附加信息。这些开篇和/或结尾视频的内容类型可以包括静态内容(例如,静态图像、链接等)和/或动态内容(例如,介绍游戏的画外音数据、动画、介绍内容的负责人的预先录制的视频等)。
43.在又一个示例中,经训练的模型的输出可以用于向用户提供除内容项(例如,游戏)推荐之外的推荐。例如,在一些情况下,这些模型的输出可以用于向用户推荐内容项负责人。例如,继续上面的示例,其中模型使用特定用户的消费历史来确定要向用户推荐的一组前“x”个视频游戏(或其他内容项),可以将该输出与关于一个或多个负责人的信息进行比较以确定是否向该用户推荐一个或多个负责人。例如,该技术可以计算由模型输出的内容项与由多个人类负责人中的每个负责人推荐的内容项之间的相似性。
44.也就是说,该技术可以将这些模型推荐的游戏与相应的人类负责人推荐的每组游戏进行比较。然后,该技术可以使用该相似性数据来向用户建议用户与一个或多个人类负责人建立联系(例如,开始“关注”)。例如,该技术可以根据所计算的相似性得分推荐前“p”个负责人,这些负责人与大于阈值相似性得分的相似性得分等相关联。
45.图1是示出一种示例性环境的图示,该环境包括与显示器104相关联的客户端设备102,和被配置为训练和使用机器学习模型以用于向不同用户推荐内容项的远程计算系统106。在一些情况下,并且如下面进一步详细描述的,远程计算系统106训练多个模型,并且此后将用户的消费历史输入到每个模型中以用于生成指示多个内容项作品中的每个作品与消费历史之间的相关性的得分数据。此外,计算系统106可以使用一个或多个偏置因子来生成结果数据,该计算系统可以将该结果数据发送到用户的客户端设备102。客户端设备102可以使用该结果数据以及不同的用户输入来确定在显示器104上或以其他方式向用户呈现内容项推荐的顺序。
46.客户端设备102可以被实现为被配置为执行内容项(诸如视频游戏、电影、歌曲等)的任何合适类型的计算设备。客户端设备102可以包括但不限于个人计算机(pc)、台式计算机、膝上型计算机、移动电话(例如,智能电话)、平板电脑、便携式数字助理(pda)、可穿戴计算机(例如,虚拟现实(vr)耳机、增强现实(ar)耳机、智能眼镜等)、车载(例如车内)计算机、电视(智能电视)、机顶盒(stb)、游戏机、音乐播放器、语音控制助理和/或任何类似的计算设备。客户端设备102可以通过计算机网络108与远程计算系统106(在本文中有时简称为“计算系统106”)通信。计算机网络108可表示和/或包括但不限于因特网、其他类型的数据和/或语音网络、有线基础设施(例如,同轴电缆、光纤电缆等)、无线基础设施(例如,射频(rf)、蜂窝、卫星等)和/或其他连接技术。在一些情况下,计算系统106可以是经由计算机网络108维护和可访问的网络可访问计算平台的一部分。诸如此类的网络可访问计算平台可
被称为术语诸如“按需计算”、“软件即服务(saas)”、“平台计算”、“网络可访问平台”、“云服务”、“数据中心”等。
47.在一些实施方案中,计算系统106充当实现视频游戏服务以向客户端设备102分发(例如,下载、流传输等)视频游戏(或任何其他类型的内容项)的视频游戏平台或具有该视频游戏平台的访问权限。在一个示例中,客户端设备102可以各自安装有客户端应用程序。所安装的客户端应用程序可以是视频游戏客户端(例如,用于玩视频游戏的游戏软件)。具有所安装的客户端应用程序的客户端设备102可以被配置为通过计算机网络108从计算系统106下载、流传输或以其他方式接收程序(例如,视频游戏及其内容)。任何类型的内容分发模型都可以用于此目的,诸如可单独购买程序(例如,视频游戏)以在客户端设备102上下载和执行的直接购买模型、基于订阅的模型、出租或租用程序一段时间、流传输或以其他方式提供给客户端设备102的内容分发模型。因此,各个客户端设备102可以包括可通过加载客户端应用程序来执行的一个或多个所安装的视频游戏。
48.客户端设备102可用于向视频游戏服务注册并随后登录到视频游戏服务。用户可以为此目的创建用户账户,并且指定/设置绑定到注册用户账户的凭据(例如,密码、pin、生物识别id等)。当多个用户与视频游戏平台交互时(例如,通过使用注册的用户账户访问他们的用户/玩家资料,在他们各自的客户端设备102上玩视频游戏等),客户端设备102将数据发送到远程计算系统106。对于给定的客户端机器104,发送到远程计算系统106的数据可以包括但不限于用户输入数据、视频游戏数据(例如,上传到远程系统的游戏性能统计)、社交网络消息和相关活动、在客户端设备102上玩的视频游戏的标识符(id)等。该数据可以实时(或基本上实时)流传输,以定义的间隔向远程系统106发送,以及/或者响应于事件(例如,退出视频游戏)而上传。如下面进一步详细描述的,该数据可以用于确定客户端设备102的用户的游戏历史,该游戏历史可以用于确定用于向用户推荐游戏作品的得分。
49.例如,图1示出了客户端设备102可以在显示器104上呈现用于向客户端设备102的用户推荐一个或多个内容项(例如,视频游戏)的ui 110。在该示例中,ui110包括用于提供两个不同的用户输入的一个或多个ui控件112(1)和112(2)。例如,第一ui控件112(1)可以使客户端设备102的用户能够提供第一参数的期望值,而第二ui控件112(2)可以使用户能够提供第二参数的期望值。客户端设备然后可以使用这些值来生成推荐内容项114(1)、114(2)、114(3)和114(4)的自定义列表114。如下面进一步详细描述和示出的,第一ui控件112(1)可以使用户能够指定期望的流行度水平,而第二ui控件112(2)可以使用户能够指定内容项的期望的发布日期新近度水平。此外,并且还如下面所讨论的,客户端设备102可以响应于用户经由ui控件提供输入并且在没有与计算系统106交互的情况下更新推荐内容项的列表114。
50.图1还示出了计算系统106可以包括一个或多个处理器116(例如,中央处理单元(cpu))和计算机可读介质118。计算机可读介质118可包括采用用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性存储器和非易失性存储器、可移动介质和不可移动介质。这种存储器包括但不限于ram、rom、eeprom、闪存存储器或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、raid存储系统,或可用于存储所需信息并可由计算设备访问的任何其他介质。计算机可读介质118可被实现为计算机可读存储介质(“crsm”),
该crsm可以是处理器116可访问以执行存储在计算机可读介质118上的指令的任何可用物理介质。在一种基本的具体实施中,crsm可包括随机存取存储器(“ram”)和闪存存储器。在其他具体实施中,crsm可包括但不限于只读存储器(“rom”)、电可擦除可编程只读存储器(“eeprom”)或可用于存储所需信息并可由处理器116访问的任何其他有形介质。
51.如图所示,计算机可读介质118可以存储训练部件120、相关部件122和偏置部件124或以其他方式具有这些部件的访问权限。此外,介质118可以存储指示相应内容项的流行度(例如,销售量、游戏时间等)的流行度数据126,可用于在客户端设备处获取的内容项128,以及指示不同用户的相应消费历史的历史数据130。
52.训练部件120可以使用历史数据130来训练一个或多个机器学习模型132(1),132(2),
…
,132(n)。例如,训练部件120可以使用与一组采样的用户账户相关联的历史数据130的一部分作为训练数据来训练多个机器学习模型中的每个模型,以获得经训练的机器学习模型132(1)-(n)。
53.经训练的机器学习模型132可以表示单个模型或基本级机器学习模型的集合,并且可以被实现为任何类型的机器学习模型132。例如,用于与本文所述的技术和系统一起使用的合适的机器学习模型132包括但不限于神经网络、基于树的模型、支持向量机(svm)、核方法、随机森林、样条(例如,多变量自适应回归样条)、隐马尔可夫模型(hmm)、卡尔曼滤波器(或增强型卡尔曼滤波器)、贝叶斯网络(或贝叶斯信念网络)、期望最大化、遗传算法、线性回归算法、非线性回归算法、基于逻辑回归的分类模型或它们的集合。“集合”可以包括其输出(预测)诸如通过使用加权平均或投票而被组合的机器学习模型132的集合。集合中的单个机器学习模型可以在其专门技能上有所不同,并且该集合可以作为各个机器学习模型的委员会来运行,该委员会总体上比该集合中的任何单个机器学习模型“更智能”。
54.用于训练每个机器学习模型132的训练数据可以包括各种类型的数据。通常,用于机器学习的训练数据可以包括两个组成部分:特征和标签。然而,在一些实施方案中,用于训练机器学习模型132的训练数据可以不具有标签。因此,机器学习模型216可以使用任何合适的学习技术(诸如监督学习、无监督学习、半监督学习、强化学习等)来训练。包括在训练数据中的特征可以由一组特征来表示,诸如采用关于训练数据的属性的可量化信息的n维特征向量的形式。以下是可以包括在用于训练本文描述的机器学习模型132的训练数据中的示例性特征的列表。然而,应当理解,以下特征列表是非穷举的,并且在训练中使用的特征可以包括本文未描述的附加特征,并且在一些情况下,包括本文列出的特征中的一些(但不是全部)。包括在训练数据中的示例性特征可以包括但不限于内容项的发布日期、内容项的流派、内容项的作品、内容项的长度、内容项的评级、已经消费该内容项的用户等。此外,作为训练过程的一部分,训练部件120可以设置用于机器学习的权重。这些权重可以应用于包括在训练数据中的一组特征,如从历史数据130导出的。在一些实施方案中,在训练过程期间设置的权重可以应用于机器学习模型内部的参数(例如,用于神经网络的隐藏层中的神经元的权重)。机器学习模型的这些内部参数可以或可以不与该组特征的各个输入特征一一映射。权重可以指示任何给定特征或参数对由经训练的机器学习模型132输出的得分的影响。
55.在一些情况下,训练部件120可以通过访问用户的个人消费历史、选择由相应历史指示的特定内容项作为模型的输出、输入消费历史作为模型的输入以及训练模型的一个或
多个内部层来训练各个模型。例如,并且如上所述,训练部件可以访问第一用户的消费历史,并且可以使用该历史来训练第一模型132(1)。例如,如果第一模型132(1)用于推荐在过去六个月内已经发布的内容项作品,则训练部件120可以从用户的历史中选择在过去六个月内已经发布的一个游戏作品,并且可以向第一模型132(1)指示该所选择的作品将是该模型的输出。此后,训练部件120可以提供用户的整个消费历史作为第一模型132(1)的输入,并且提供所选择的内容项作品作为第一模型132(1)的输出以用于训练第一模型132(1)的一个或多个内部层。例如,如果第一模型132(1)包括人工神经网络,则选择内容项作品作为输出并且提供关于用户的消费历史的信息作为输入可以有效地训练神经网络的一个或多个内部层。应当理解,神经网络的输入和输出以及可以使用的其他类型的模型可以包括对应的游戏作品或其他内容项的特征,诸如发行数据、流派、游戏类型等。
56.在一些情况下,训练部件120可以在选择要用作机器学习模型132(1)的输出的作品时考虑用户其历史中已经消耗的每个内容项的时间量。例如,训练部件120可以最初确定用户已经消费了在用户的消费历史中引用的每个单独作品的时间量。这可以绝对地(例如,在时间方面)确定或相对地(例如,在相对于也已经消费过该作品的其他用户的时间方面)确定。该信息可以作为权重应用于各个内容项作品。在对与历史相关联的每个作品应用权重或将此信息输入到模型之后(可能会由于一些作品被用户消耗得非常少而将它们过滤掉),然后训练部件120可以选择一个(或多个)内容项作品以用作第一模型132(1)的输出。通过这样做,训练部件120增加了用户消耗最多的内容项被选择作为第一模型132(1)的输出的机会,因此,以使得该第一模型更有可能选择用户感兴趣的内容项的方式来训练该模型的内部层。
57.除了训练第一模型132(1)之外,在一些情况下,训练部件120还可以训练多个其他模型,诸如用于推荐在去年内发布的游戏的模型132(2)、用于推荐在过去三年内发布的游戏的模型132(3)等等。在每种情况下,训练部件120可以访问用户的消费历史,并且选择既在历史中指示又在与特定模型相关联的时间量(例如,一年内、三年内等)内发布的作品作为该特定模型的输出。此外,虽然上述示例描述了访问单个历史以用于训练多个机器学习模型中的每个模型,但是应当理解,训练部件120可以分析数千个或更多个历史以用于训练模型132。
58.同时,相关部件122可以用于响应于从这些各个用户接收到推荐请求而生成用于各个用户的相关得分。例如,如图所示,客户端设备102可以包括一个或多个处理器134和计算机可读介质136,该介质可以存储或以其他方式访问一个或多个客户端应用程序138和插值部件140。在一些情况下,客户端设备102的用户可以利用客户端应用程序138中的一个应用程序(例如,浏览器、专用应用程序等)与计算系统106交互,例如请求数据以用于呈现ui 110。响应于接收到该请求,相关部件可以确定与客户端设备102的用户相关联的标识符以用于生成得分数据,该得分数据可以用于向用户推荐一个或多个内容项。
59.在一个示例中,用户相关部件122在识别客户端设备102的用户之后从历史数据130访问该用户的消费历史。相关部件然后可以将该消费历史输入到“n”个经训练的模型132中的每个模型中。模型132可以各自针对与对应于各个模型132的时间范围相关联的多个内容项中的每个内容项输出得分数据,该得分数据指示内容项与用户的消费历史之间的相关性。如上所述,较高的得分可以指示较高的相关性。在一些情况下,与特定模型相关联
的每个时间范围是排他性的,诸如在第一模型与在过去六个月内发布的内容项相关联、第二模型与在之前六个月和十二个月之间发布的内容项相关联等等的示例中。在其他情况下,该时间范围不是排他性的,如在第一模型与过去六个月内发布的内容相关联、第二模型与去年(包括前六个月)内发布的内容项相关联等等的示例中。
60.同时,偏置部件124可以用于根据特定参数的“m”个值来偏置由相关部件122生成的“n”个得分数据中的每个数据。该参数可以包括流行度水平、成本、发布日期等。在一些情况下,该参数包括由流行度数据126所指示的流行度水平。
61.例如,对于与由每个模型输出的每个得分数据相关联的每个内容项,偏置部件可以确定是否根据“m”个不同的流行度值来对单个得分进行加分或罚分。在一个示例中,偏置部件124根据从非常流行到非常不流行(或者更确切地说,非常“小众”)的五个不同的流行度值来对每个内容项的得分进行加分或罚分。在这样做之后,偏置部件可能已经生成了得分的矩阵或其他表示,其中一个具体实施参考图3示出和描述。
62.在已经生成得分的矩阵或其他表示之后,计算系统106可以将该“结果数据”发送回最初请求推荐的客户端设备102。然后,插值部件140可以至少部分地基于接收到的结果数据以及ui控件112(1)和112(2)的值来确定呈现推荐内容项的顺序。例如,对于这两个控件的值的任何给定集合,插值部件140可以从结果数据中识别最接近的一个或多个得分数据,并且可以基于所识别的得分数据来对内容项的得分进行插值。插值部件140可以采用双线性插值和/或任何其他插值方法。此外,当用户经由ui控件112(1)和/或112(2)提供输入时,插值部件140可以执行新的插值并且更新ui 110以指示新的推荐。
63.图2示出了用于生成机器学习模型、将它们应用于特定用户的历史数据、将生成的结果数据发送到用户的客户端设备以及使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的操作的示例性过程200。虽然参考图1的环境100描述了该过程200,但是该过程可能适用于其他环境。
64.在操作202处,计算系统106可以使用上述技术中的任一种技术来训练一个或多个机器学习模型。在一些情况下,操作202包括训练“n”个模型,每个模型与参数的特定值相关联,诸如发布内容项所在的特定时间窗口。
65.在一个示例中,计算系统106可以通过访问与计算系统社区相关联的多个用户的相应消费历史(例如,游戏历史、移动历史等)来开始训练操作。例如,该计算系统可以访问视频游戏服务社区的第一用户的游戏历史,并且可以使用该历史来训练第一模型。例如,如果第一模型用于推荐在过去六个月内已经发布的游戏作品,则该计算系统可以从用户的游戏历史中选择在过去六个月内已经发布的一个游戏作品,并且可以向第一模型指示该所选择的游戏作品将是分类器的输出。也就是说,计算系统106可以识别具有用于正在训练模型的参数的值的游戏作品或其他内容项。
66.此后,计算系统106可以提供用户的整个游戏历史作为第一模型的输入,并且提供所选择的游戏作品作为第一模型的输出以用于训练第一模型的一个或多个内部层。例如,如果第一模型包括人工神经网络,则选择游戏作品作为输出并且提供关于用户的游戏历史的信息作为输入可以有效地训练神经网络的一个或多个内部层。应当理解,神经网络的输入和输出以及可以使用的其他类型的模型可以包括对应的游戏作品或其他内容项的特征,诸如发行数据、流派、游戏类型等。
67.在一些情况下,计算系统106可以在选择要用作机器学习模型的输出的游戏作品时考虑用户在其历史中玩过每个游戏的时间量。例如,该计算系统可以最初确定用户已经玩了在用户的游戏历史中引用的每个单独游戏作品的时间量。这可以绝对地(例如,在玩游戏的时间方面)确定或相对地(例如,在相对于也玩过该游戏作品的其他用户玩的时间方面)确定。该信息可以作为权重应用于单个游戏作品或作为关于模型的信息而输入。在对与游戏历史相关联的每个游戏作品应用权重或将此信息输入到模型之后(可能会由于用户非常少玩一些游戏作品而将它们过滤掉),然后该计算系统可以选择一个(或多个)游戏作品以用作第一模型的输出。通过这样做,该计算系统增加了用户玩得最多的游戏被选择作为第一模型的输出的机会,因此,以使得第一模型更有可能选择用户感兴趣的游戏的方式来训练该模型的内部层。
68.除了训练第一模型之外,在一些情况下,计算设备还可以训练多个其他模型,每个模型与参数的不同值相关联,诸如用于推荐在去年内发布的游戏的模型、用于推荐在过去三年中发布的游戏的模型等等。在每种情况下,该计算系统可以访问用户的游戏历史或其他消费历史,并且选择既在游戏历史中指示又在与特定模型相关联的时间量(例如,一年内、三年内等)内发布的游戏作品作为该特定模型的输出。此外,虽然上述示例描述了访问单个游戏历史以用于训练多个机器学习模型中的每个模型,但是应当理解,该计算系统可以分析数千个或更多个游戏历史以用于训练这些模型。
69.在操作204处,客户端设备102从用户接收对一个或多个内容项推荐的请求。这可以包括用户使用客户端设备102导航到由计算系统106提供的站点、与由计算系统106生成的专用应用程序交互等。
70.在操作206处,计算系统106接收该请求,并且在操作208处,该计算系统使用“n”个经训练的模型生成一组“n”个相关得分。如上所述,这可以包括识别请求的用户的消费历史,并且将该消费历史输入到“n”个经训练的模型中的每个模型中,以接收“n”组相关得分。
71.在操作210处,计算系统106使用一个或多个偏置因子来修改“n”组相关得分内的每个得分。例如,对于每个偏置因子,计算系统106可以使用“m”个偏置因子的值来生成m
×
n组现在偏置的相关得分。当然,如果使用多个偏置因子,则可以生成更多数量的组。例如,如果使用两个偏置因子,则计算系统106可以生成m
×m×
n个偏置得分。如上所述,在一些情况下,偏置因子可以对应于每个内容项的流行度水平。此外,还应当理解,计算系统106可以非线性地生成相关得分和偏置相关得分。此外,可以计算任何数量的值。
72.在操作212处,计算系统将该“结果数据”发送到客户端设备102,客户端设备在操作214处接收该结果数据。在操作216处,客户端设备102基于接收到的结果数据向用户呈现一个或多个内容项推荐。在一些情况下,初始推荐可以基于具有可以由用户设置的值的任何参数的值的当前设置。
73.在操作218处,客户端设备102接收来自用户的输入。这可以包括改变一个或多个参数的值,诸如期望的发布数据、期望的流行度水平等。在操作220处,客户端设备102使用输入数据和结果数据来对内容项的得分进行插值。也就是说,客户端设备102使用结果数据和接收的输入来生成推荐顺序。最后,在操作222处,客户端设备102可以重新呈现推荐,尽管是以新计算的顺序。
74.图3示出了用于生成模型、偏置所得得分、将模型应用于特定用户的历史数据以及
使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的示例性部件及其相互作用。应当理解,虽然图3示出了用于执行所述技术的示例性的一组部件,但是在其他情况下可以使用其他部件。
75.如图所示,在该示例中,一些部件驻留在服务器侧302,而其他部件驻留在客户端侧104。例如,服务器侧302的部件可以驻留在计算系统106上,而客户端侧的部件可以驻留在客户端设备102上。
76.首先,可以将历史数据130和一个或多个参数306(1),306(2),
…
,306(n)输入到训练部件120中以用于生成相应模型132(1)-(n)。也就是说,训练部件120可以接收训练部件120要用来训练模型的参数的特定值的指示。例如,参数306(1)可以指示“发布日期在过去六个月内”的值,参数306(2)可以指示“发布日期在去年内”的值,等等。当然,在其他情况下,参数可以对应于内容项的价格、内容项的流行度等。此外,历史数据130可以包括如上所述的用户群体的消费历史。
77.同样如上所述,训练部件120可以将个人消费历史输入到相应机器学习模型中以训练模型。例如,对于具有“发布日期在过去六个月内”的参数值的模型132(1),训练部件可以输入个人消费历史作为模型的输入,并且可以根据每个相应的历史来指定在前六个月内已经发布的内容项作品作为模型132(1)的输出。训练部件120然后可以使用该输入和输出来训练该模型132(1)的一个或多个内部层。训练部件120可以针对来自历史数据130的不同消费历史的阵列以及针对模型132(1)-(n)中的每个模型来执行该操作。此外,模型32的输入可以包括与用户相关联的信息,诸如与用户相关联的地理位置、与用户相关联的人口统计信息等。另外,虽然已经描述了模型的几个示例性输入,但是应当理解,可以向模型提供任何其他类型的输入。
78.在已经训练了模型132(1)-(n)之后,这些模型可以用于生成对用户的内容项推荐。在接收到来自特定用户的推荐请求时,与该用户相关联的消费历史(存储在历史数据130中)可以连同可用内容项128的库一起输入到相关部件122中。相关部件可以将该数据输入到模型132(1)-(n)中的每个模型,这些模型可以输出相应的相关得分308(1),308(2),
…
,308(n)。例如,模型132(1)可以输出针对在过去六个月内已经发布的并且基于用户的消费历史而为用户定制的内容项推荐,等等。
79.在一些情况下,可以将这些得分308(1)-(n)输入到偏置部件124中,该偏置部件可以针对每个相关得分308(1)-(n)生成一组偏置得分310(1),310(2),
…
,310(n)。也就是说,偏置部件可以选择特定偏置因子的一个或多个值,并且可以基于内容项与偏置因子的相应值的对应程度来在得分308(1)-(n)中的每个得分内对每个内容项的得分进行加分或罚分。例如,偏置因子可以包括内容项的流行度,如由可以输入到偏置部件中的流行度数据126所指示的。如上所述,该流行度数据126可以包括销售数据、消费时间等。
80.在一个示例中,偏置部件选择偏置因子的“m”个值,诸如范围从非常流行(例如,具有非常高的销售数量)到非常不流行或小众(例如,销售数量非常低)的m个流行度值。因此,偏置部件124可以根据偏置因子的前一种值对非常流行的作品的得分进行加分并且对非常小众的作品进行罚分,而且可以根据偏置的后一种值采取相反的操作。在该示例中,偏置部件124可以输出“m
×
n”个或任何其他数量的偏置得分,假设采样可以非线性地发生。在一些示例中,计算系统106将这些偏置得分310(1)-(n)发送到与发起推荐请求的用户相关联的
客户端设备102。
81.如图所示,可以将该组偏置得分310(1)-(n)作为结果数据312提供给客户端设备102。该结果数据312可以与响应于在客户端设备102处接收的用户输入而生成的输入数据314一起被输入到插值部件140中。例如,输入数据314可以指示模型132(1)-(n)所依据的参数的特定值和/或用来偏置得分的偏置因子的特定值。响应于接收到该输入数据314,插值部件140可以确定向用户呈现推荐的顺序316。例如,在接收到输入数据314时,插值部件140可以从结果数据识别一个或多个最接近的偏置得分,并且如果需要的话可以在这些值之间进行插值。例如,插值部件140可以执行双线性插值或任何其他类型的插值以用于确定向用户呈现推荐的顺序316。此外,在接收到不同的输入数据314(例如,参数或偏置因子的不同值)时,插值部件140可以使用输入数据314和结果数据312来将顺序316重新插值,并且可以将采用新顺序316的推荐呈现给用户。此外,并且如上所述,插值部件140可以在不与计算系统106交互的情况下使用结果数据312和输入数据314来重新计算不同的顺序,从而实现对客户端设备102的显示器上的推荐的实时重新排序。
82.图4示出了远程计算系统102可以生成并发送到用户的客户端设备102的示例性结果数据312。如图所示,在该示例中,结果数据312可以包括得分的m
×
n矩阵,客户端设备可以响应于接收到变化的用户输入而根据需要在该矩阵中进行插值。然而,应当理解是,可以在任何数量的维度的参数空间中以任何模式来对结果数据进行采样。例如,可以在不同于所示的m
×
n个点的不同点处对得分的矩阵或其他表示进行采样。例如,采样可以非线性地发生。此外,采样点的数量可以变化(例如,可以比m
×
n个点更多或更少)。此外,可以使用多于两个的参数和/或偏置因子,从而产生更高维的参数空间。
83.在该示例中,结果数据312对应于内容项发布所在的时间范围的参数和对应于内容项的流行度的偏置因子。此外,训练部件120已经训练了该参数的“n”个值,如由具有该参数的“n”个值的结果数据所指示的(时间范围1-n)。此外,偏置部件124可以使用偏置因子的“m”个值(流行度1-m)来偏置由相关部件122输出的每个得分。因此,在该示例中,结果数据312包括m
×
n个得分。
84.响应于用户提供改变参数(时间范围)的值或偏置因子(流行度)的值的输入,插值部件可以识别最接近的得分并且可以执行插值来计算插值得分,该插值得分可用于确定向用户推荐内容项的顺序。例如,设想操作客户端设备102的用户请求查看针对在“时间范围1”和“时间范围2”之间的时间已经发布并且具有落在“流行度1”和“流行度2”之间的流行度的内容项的推荐。响应于接收到该输入数据,插值部件140可以识别与该输入最接近的四个得分,诸如“偏置得分11”、“偏置得分12”、“偏置得分21”和“偏置得分22”。插值部件然后可以使用这些得分来执行双线性插值或任何其他类型的合适的插值算法来生成插值得分。该得分然后可用于确定向用户呈现内容项推荐的顺序。例如,得分最高的内容项可以首先被呈现,得分第二高的内容项可以被第二个呈现,以此类推。
85.图5示出了客户端设备102可以响应于从用户接收到对内容项推荐的请求而呈现的示例性用户界面(ui)500。如图所示,ui 500可以呈现推荐内容项114(1)、114(2)、114(3)和114(4)的自定义列表114,其中该列表114基于用来生成ui 500的用户的消费历史和ui控件112(1)和112(2)中的每个控件的相应值而确定。例如,ui控件112(1)可以包括使用户能够选择期望的流行度水平的滑块或其他类型的ui控件,而ui控件112(2)可以包括使用户能
够选择推荐内容项的期望新近度的滑块或其他类型的ui控件。在一些情况下,呈现给用户的ui 500可以包括这些ui控件112(1)中的每个控件的默认值,诸如在每个范围的中间等。因此,可以基于这些默认值来生成内容项的得分以及因此生成列表114,该列表可以如下面参考图6所讨论的那样改变。
86.另外,ui 500可以包括用户可以请求滤除具有用户指定的标签的游戏的ui控件502,以及用户可以请求滤除不具有用户指定的标签的游戏的ui控件504。在该示例中,例如,用户可以经由下拉菜单在控件502或504中的任一个中键入或选择标签。响应于在ui控件502中接收到标签,客户端设备102可以通过移除与指定的标签相关联的任何内容项来改变列表114。同时,响应于在ui控件504中接收到标签,客户端设备102可以通过移除不与指定的标签相关联的任何内容项来改变列表114。
87.图6示出了客户端设备102可以响应于用户改变第一参数(在该示例中,内容项的流行度)的值和第二参数(在该示例中,内容项的新近度)的值而呈现的示例性ui 600。例如,在该示例中,客户端设备的用户已经将ui左侧的滑块移动成更靠进右端(例如,请求不太流行的内容项),同时将ui右侧的滑块向左移动(例如,请求相对较老的内容项)。因此,作为响应,插值部件114可以计算对应于这些用户输入的内容项的新列表602。例如,列表602可以包括在相对较大的时间范围内发布并且不是过度流行的内容项。
88.图7示出了远程计算系统可用于生成一个或多个经训练的机器学习模型以及生成结果数据以供客户端设备在向用户提供内容项推荐时使用的示例性过程700的流程图。该过程以及本文描述的每个过程被示为逻辑流程图中的框的集合,这些框代表可在硬件、软件或其组合中实现的一系列操作。在软件的环境中,这些框表示计算机可执行指令,这些计算机可执行指令在由一个或多个处理器执行时,执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。描述操作的顺序不旨在被理解为限制,并且可以任何顺序和/或并行地组合任意数量的所描述的框来实现这些过程。
89.在一些情况下,计算系统106可以被配置为执行这些操作中的一些或全部,但是在其他情况下,其他设备可以附加地或另选地执行这些操作中的一些或全部。
90.在操作702处,计算系统106可以训练机器学习模型。如图所示,该操作可以包括一系列子操作。例如,训练该模型可以包括在子操作702(1)处确定一个或多个用户的消费历史。如上所述,这可以包括游戏历史、电影或音乐的消费历史等。同时,子操作702(2)可以包括从每个历史中选择一个作品作为要训练的模型的输出。在某些情况下,该选择可以:(1)根据历史中满足与当前正在训练的模型相关联的参数值的那些内容项,以及(2)参考每个内容项被用户消耗了多少。例如,计算系统106可以将较大的权重应用于由相应用户消费得更多的那些内容项,从而增加这些内容项将被选择作为输出的可能性。最后,在子操作702(3)处,计算系统106可以使用每个消费历史作为输入并且使用每个所选择的作品作为输出来训练该模型的一个或多个内部层。这些子操作可以针对多个消费历史中的每个消费历史连续地执行。
91.在操作704处,过程700确定是否存在要训练的附加模型。例如,如果过程700是训练“n”个模型,则操作704表示确定是否仍然要训练这n个模型中的任何一个模型。如果是,则过程700返回到操作702。如果不是,则过程700前进到操作706。在操作706处,计算系统
106可以从用户的客户端设备接收对内容项推荐的请求。在操作708处,计算系统106确定用户的消费历史,并且在操作710将该历史输入到经训练的模型中。
92.在操作712处,计算系统106生成指示用户的消费历史与每个相应内容项之间的相关性的得分数据作为从经训练的模型的输出。在一些情况下,相对较高的得分对应于相对较高的相关水平。在操作714处,计算系统106基于偏置因子的特定值来修改得分数据中的每个得分,如上所述。操作716表示确定是否要使用偏置因子的附加值来对得分进行偏置。例如,如果计算系统106要使用偏置因子的“m”个值来偏置得分数据,则操作716表示确定是否仍然要使用该“m”个值中的任何一个值来偏置得分。如果是,则过程700返回到针对偏置因子的新值的操作714。
93.如果不是,则过程700前进到操作718,该操作表示确定是否要使用附加模型来生成用户的得分数据。例如,如果计算系统106被配置为使用“n”个模型来生成为用户定制的得分数据,则操作718表示确定是否仍将使用该“n”个模型中的任何一个模型来生成用户的得分数据。如果是,则过程700返回,在操作710处将用户的历史数据输入到下一个模型中。如果不是,则过程700前进,向客户端设备发送结果数据(例如,偏置得分数据的矩阵或其他表示),以使得能够向用户呈现推荐。
94.图8示出了用户的客户端设备可用于确定向用户呈现一个或多个内容项的顺序的示例性过程800的流程图。虽然该过程800被描述为在客户端设备102上执行,但是应当理解,过程800可以附加地或另选地在其他设备上执行。
95.在操作802处,客户端设备102接收得分数据,该得分数据指示客户端设备的用户的消费历史和多个内容项中的每个内容项之间的相关性。在一些情况下,该得分数据可以包括上面讨论的结果数据312。在操作804处,客户端设备102接收来自用户的输入,该输入指定用来训练模型的参数的值或用来偏置得分数据的偏置因子的值中的至少一者。例如,该输入可以指定要推荐的内容项的期望新近度(例如,与它们相应的发布日期相关联的时间范围)、内容项的期望成本范围、内容项的期望流行度水平等。在操作806处,客户端设备102至少部分地基于得分数据和接收到的输入来确定呈现推荐内容项的顺序。例如,客户端设备102可以基于由用户指定的参数和/或偏置因子的值来对得分数据执行插值。
96.在操作808处,客户端设备102以所确定的顺序呈现内容项推荐,并且在操作810处,该客户端设备确定是否接收到来自用户的附加输入。如果是,则过程800前进,再次基于输入来确定向用户(重新)呈现内容项推荐的顺序。如果不是,则过程800在操作812处结束。
97.图9是示出包括远程计算系统的示例性环境900的图示,该远程计算系统被配置为训练和使用机器学习模型以用于确定向特定用户呈现哪些内容项视频,以及用于创建由这些确定的视频组成的视频。在一些情况下,该远程计算系统训练多个模型,并且此后将用户的消费历史输入到每个模型中以用于生成指示多个内容项作品中的每个作品与消费历史之间的相关性的得分数据。然后广播部件生成用于向用户呈现的视频,该视频包括与相关性最高的内容项相关联的预告片(或其他视频)。
98.在一些情况下,该环境包括上面参考环境100描述的多个部件,诸如计算系统106。然而,在该示例中,计算系统106可以在存储器中存储一个或多个内容项视频,诸如与这些内容项相关联的“预告片”。在一些情况下,这些内容项的发布者提供这些预告片,而在其他情况下,计算系统106可以基于内容项的流行部分、随机选择的部分等生成这些预告片。
99.另外,计算系统106可以存储排名部件904和广播部件906。排名部件904可以用于确定将向特定用户(诸如与客户端设备102相关联的用户)呈现哪些内容项视频以及呈现这些视频的顺序。例如,排名部件904可将与用户的消费历史相关联的信息输入到经训练的模型132(1)-(n)中的一个或多个模型中,如上所述。排名部件904可接收可用内容项128中的每个内容项与用户的消费历史之间的相关性来作为该模型的输出。排名部件904然后可以对这些相关性进行排名,以确定排名最高的内容项。例如,排名部件904可以确定针对用户的十个最高排名的内容项(即,与用户的消费历史具有最大程度相关性的十个内容项)。
100.排名部件904然后可以向广播部件906提供这些内容项的指示以及潜在地这些项目的排名。广播部件906然后可以基于与排名最高的内容项对应的内容项视频的合集来生成用于向用户呈现的视频。也就是说,广播部件906可以从内容项视频902中识别对应于特定用户的十个(或其他数量的)最高排名内容项的预告片(或其他视频)。广播部件906然后可以根据所确定的顺序向用户呈现该视频。
101.例如,图9示出了广播部件906可以向客户端设备发送视频908以在显示器104上呈现。视频908可以根据由排名部件904确定的顺序来呈现所识别的内容项视频。例如,可以首先呈现排名最高的内容项的预告片,然后可以呈现排名第二的内容项的预告片,以此类推。在一些情况下,广播部件906通过获取每个内容项视频的相对小的增量(例如,两秒)来呈现视频,并将该增量发送到客户端设备102以在显示器104上呈现。通过这样做,广播部件906能够向用户呈现看起来是多个内容项视频组成的单个静态视频、但实际上是由广播部件906即时创建的视频的内容。
102.在一些情况下,广播部件906还可以在视频908之上呈现客户端设备102的用户可以与之交互的一个或多个交互控件910。这些控件910可以包括例如可选图标,诸如使客户端设备102呈现显示关于内容项的附加信息的网页、用于购买内容项的网页等的图标。此外,这些控件910可以使用户能够提供关于为用户选择的视频、与当前呈现的视频相关联的内容项等的反馈。此外,广播部件906可以呈现使用户能够对视频执行操作诸如快进、回退、暂停等的视频控件。
103.此外,在一些情况下,控件910使用户能够指定某些参数的期望值。例如,并且如上所述,用户可以选择内容项的期望的流行度水平、期望的发布日期(例如,期望的时间范围)等。在接收到该信息时,排名部件904可以利用一个或多个不同的模型来将内容项重新排名,其中新识别的内容项被提供给广播部件906以在考虑指定参数的情况下生成新视频。
104.此外,在一些情况下,广播部件906可以在开始时、结束时和/或与所排名的内容项视频混合在一起地呈现一个或多个“开篇”或“结尾”视频。例如,如果广播部件906确定向特定用户呈现十个预告片,则广播部件可以在这十个预告片之前呈现介绍这十个游戏的开篇视频,其中该视频包括与这些游戏相关联的信息,诸如与这些游戏相关联的流派、连到每个游戏的链接等。类似地,广播部件906可以在这十个视频的结尾处呈现指示与这些预告片相关联的信息的结尾视频,该信息与在开篇视频中呈现的信息相同或不同。
105.在又一个示例中,这些开篇和/或结尾视频可以散布在这十个(或其他示例性数量的)预告片中。例如,如果前五个预告片与第一标签或流派(例如,冒险)相关联,并且接着的五个预告片与第二标签或流派(例如,解谜游戏)相关联,那么广播部件906可以在呈现前五个预告片之前生成并提供第一开篇视频,在呈现前五个预告片之后生成并提供第一结尾视
频,在呈现第一结尾视频之后生成并提供第二开篇视频,并且在呈现接着的五个预告片之后生成并提供第二结尾视频。同样,开篇和/或结尾视频可以包括与对应的预告片相关联的信息。例如,第一开篇和/或结尾视频可以指示这五个与冒险相关的预告片,具有用于获得这些游戏的信息等。类似地,第二开篇和/或结尾视频可以指示这五个与解谜相关的预告片,具有用于获得这些游戏的信息和/或附加信息。这些开篇和/或结尾视频的内容类型可以包括静态内容(例如,静态图像、链接等)和/或动态内容(例如,介绍游戏的画外音数据、动画、介绍内容的负责人的预先录制的视频等)。
106.图10示出了用于确定向用户呈现哪些内容项视频以及呈现这些视频的顺序的示例性过程1000的流程图。在一些情况下,计算系统106可以执行过程1000的一些或全部操作。
107.在操作1002处,计算系统106可以确定由用户消费的一个或多个内容项的历史,如上所述。内容项可以表示视频游戏、电影、歌曲、电子书和/或任何其他类型的内容项。在操作1004处,计算系统106可以将指示该历史的数据输入到经训练的机器学习模型中。如上所述,从该历史生成的数据可以包括与该历史相关联的任何种类的数据,诸如用户消费项目的时间量(一般地或相对于其他用户或用户的总游戏时间等)、相应内容项的发布日期、与相应内容项相关联的销售数据等。
108.在操作1006处,计算系统102可以生成得分数据作为第一经训练的机器学习模型的输出,对于多个可用内容项中的每个可用内容项,该得分数据指示表示该历史与相应可用内容项之间的相关性的得分。在操作1008处,计算系统可以对得分数据进行排名以生成项目的排名列表,计算系统102可以在操作1010处从该排名列表确定与该历史具有最高相关性的可用内容项的有序集合。
109.在操作1012处,对于来自该有序集合的每个可用内容项,计算系统102可以检索与来自该有序集合的相应可用内容项相关联的视频。例如,计算系统102可以检索与视频游戏、电影等相关联的预告片。在操作1014处,计算系统102可以使用相应视频生成合集视频。如上所述,这可以包括根据内容项的有序集合的顺序生成合集视频,使得排名最高的内容项的预告片在合集视频中首先出现,排名第二高的内容项的预告片在合集视频中第二个出现,以此类推。过程1000还可以包括在客户端设备上呈现该合集视频,该呈现可以包括将该视频流传输到客户端设备,将合集视频下载到客户端设备等。
110.同时,操作1016表示确定是否已经接收到关于合集视频的反馈。如上所述,例如,在一些情况下,计算设备可以呈现可由用户选择以向计算设备102提供关于合集视频的反馈的控件。如果接收到反馈,则在操作1018处,计算系统102可以基于可用得分数据和反馈来确定可用内容项的另一个有序集合。过程1000然后可以返回到检索与该第二有序集合的内容项相关联的视频,等等。因此,在一些情况下,过程1000可以创建循环,其中用户可以接收和消费合集视频,在合集视频的一个或多个部分内交互或以其他方式提供关于这些部分的反馈,基于反馈来接收新的合集视频,等等。因此,过程1000可以基于推荐内容项启用合集视频的“无限循环”。
111.然而,如果没有接收到反馈,则过程100可以在操作1020处确定是否应将过程1000应用于另一用户。如果是,则过程1000返回到操作1002,其中过程1000确定新用户的消费历史并且继续使用该消费历史来执行过程1000。然而,如果不为另外的用户执行过程1000,则
过程1000在操作1022结束。
112.尽管已经用特定于结构特征的语言描述了主题,但是应该理解,所附权利要求书中定义的主题不必限于所描述的具体特征。相反,具体特征被公开为实现权利要求的例示性形式。