首页 > 运动玩具 专利正文
内容项推荐的制作方法

时间:2022-02-02 阅读: 作者:专利查询

内容项推荐的制作方法

本申请要求2019年7月8日提交的名称为“Content-Item Recommendations”的美国专利申请16/505,112的优先权,该专利申请的全部内容以引用方式并入本文。

背景技术

随着电子设备上内容项的消费持续激增,可用内容项的数量也在增加。例如,可用于流传输或下载的歌曲、电影、电视节目和游戏的数量近来大幅增加。尽管可用内容项的这种增加通常对用户有利,但识别单个用户感兴趣的内容项仍然很困难。

附图说明

参考附图描述了具体实施方式。在这些图中,附图标记的最左边数字标识首次出现该附图标记的图。在不同图中使用相同的参考标号指示相似或相同的部件或特征。

图1是示出包括远程计算系统的示例性环境的图示,该远程计算系统被配置为训练和使用机器学习模型以用于向不同的用户推荐内容项。在一些情况下,该远程计算系统训练多个模型,并且此后将用户的消费历史输入到每个模型中以用于生成指示多个内容项作品中的每个作品与消费历史之间的相关性的得分数据。此外,该计算系统可以使用一个或多个偏置因子来生成结果数据,该计算系统可以将该结果数据发送到用户的客户端设备。该客户端设备可以使用该结果数据以及不同的用户输入来确定向用户呈现内容项推荐的顺序。

图2示出了用于生成机器学习模型、将它们应用于特定用户的历史数据、将生成的结果数据发送到用户的客户端设备以及使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的操作的示例性过程。

图3示出了用于生成模型、偏置所得得分、将模型应用于特定用户的历史数据以及使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的示例性部件及其相互作用。

图4示出了远程计算系统可以生成并发送到用户的客户端设备的示例性结果数据。如图所示,结果数据可以包括得分的M×N矩阵,客户端设备可以响应于接收到变化的用户输入而根据需要在该矩阵中进行插值。

图5示出了客户端设备可以响应于从用户接收到对内容项推荐的请求而呈现的示例性用户界面(UI)。

图6示出了客户端设备可以响应于用户改变第一参数(在该示例中,内容项的流行度)的值和第二参数(在该示例中,内容项的新近度)的值而呈现的示例性UI。

图7示出了远程计算系统可用于生成一个或多个经训练的机器学习模型以及生成结果数据以供客户端设备在向用户提供内容项推荐时使用的示例性过程的流程图。

图8示出了用户的客户端设备可用于确定向用户呈现一个或多个内容项的顺序的示例性过程的流程图。

具体实施方式

本文描述了用于生成一个或多个经训练的机器学习模型的技术、设备和系统等,这些机器学习模型用于生成内容项推荐。本文还描述了用于将特定用户的消费历史应用于该经训练的模型以生成指示每个内容项作品与该消费历史之间的相关性的得分数据以及使用一个或多个偏置因子来修改该得分数据以用于生成结果数据的技术、设备和系统。此外,该技术、设备和系统可以将该结果数据连同所接收的用户输入一起用于确定向用户呈现一个或多个内容项的顺序。例如,这可以包括确定向用户推荐哪些内容项以及以何种顺序这样做。

所公开的技术可以至少部分地由远程计算系统来实现,该远程计算系统将内容项(例如,视频游戏、电影、电视节目、歌曲等)分发到用户社区的客户端设备(例如,作为视频游戏服务、电影服务、歌曲服务等的一部分)。这些客户端设备可以单独地安装客户端应用程序,该客户端应用程序被配置为执行从远程计算系统接收到(例如,下载、流传输等)的内容项。在视频游戏服务的示例中,视频游戏平台使社区的注册用户能够以“玩家”的身份玩视频游戏。例如,用户可以加载客户端应用程序,使用注册的用户账户登录,选择所需的视频游戏,以及经由该客户端应用程序在他/她的客户端机器上执行该视频游戏。当然,虽然参考视频游戏作品描述了一些示例,但是应当理解,所述技术适用于任何其他类型的内容项,如上所述。

在一个示例中,通常远离各个用户的客户端设备的计算系统生成多个经训练的模型,每个模型与参数的特定值相关联。例如,该计算系统可以生成用于推荐在第一时间窗口(例如,前六个月)内已经发布的内容项的第一经训练的模型,用于推荐在第二时间窗口(例如,前一年)中已经发布的内容项的第二经训练的模型,以此类推。如下面将描述的,这些模型可以应用于个人用户数据以用于生成定制的内容项推荐。

虽然该计算系统可以采用任何合适的方式训练这些模型,但是在一个示例中,该计算系统通过访问与计算系统社区相关联的多个用户的相应消费历史(例如,游戏历史、移动历史等)而开始训练。例如,该计算系统可以访问视频游戏服务社区的第一用户的游戏历史,并且可以使用该历史来训练第一模型。例如,如果第一模型用于推荐在过去六个月内已经发布的游戏作品,则该计算系统可以从用户的游戏历史中选择在过去六个月内已经发布的一个游戏作品,并且可以向第一模型指示该所选择的游戏作品将是分类器的输出。此后,该计算系统可以提供用户的整个游戏历史作为第一模型的输入,并且提供所选择的游戏作品作为第一模型的输出以用于训练第一模型的一个或多个内部层。例如,如果第一模型包括人工神经网络,则选择游戏作品作为输出并且提供关于用户的游戏历史的信息作为输入可以有效地训练神经网络的一个或多个内部层。应当理解,神经网络的输入和输出以及可以使用的其他类型的模型可以包括对应的游戏作品或其他内容项的特征,诸如发行数据、流派、游戏类型等。此外,模型的输入可以包括与用户相关联的信息,诸如与用户相关联的地理位置、与用户相关联的人口统计信息等。另外,虽然已经描述了模型的几个示例性输入,但是应当理解,可以向模型提供任何其他类型的输入。

在一些情况下,该计算系统可以在选择要用作机器学习模型的输出的游戏作品时考虑用户在其历史中玩过每个游戏的时间量。例如,该计算系统可以最初确定用户已经玩了在用户的游戏历史中引用的每个单独游戏作品的时间量。这可以绝对地(例如,在玩游戏的时间方面)确定或相对地(例如,在相对于也玩过该游戏作品的其他用户玩的时间方面)确定。该信息可以作为权重应用于单个游戏作品,或者可以传递到模型中作为输入。在对与游戏历史相关联的每个游戏作品应用权重或将此信息输入到模型之后(可能会由于用户非常少玩一些游戏作品而将它们过滤掉),然后该计算系统可以选择一个(或多个)游戏作品以用作第一模型的输出。通过这样做,该计算系统增加了用户玩得最多的游戏被选择作为第一模型的输出的机会,因此,以使得第一模型更有可能选择用户感兴趣的游戏的方式来训练该模型的内部层。然而,应当理解的是,虽然以上描述示出了训练模型的一种方式,但是可以采用任何其他数量的方式来训练用于输出内容项推荐的其他模型。

除了训练第一模型之外,在一些情况下,计算设备还可以训练多个其他模型,诸如用于推荐在去年内发布的游戏的模型、用于推荐在过去三年中发布的游戏的模型等等。在每种情况下,该计算系统可以访问用户的游戏历史,并且选择既在游戏历史中指示又在与特定模型相关联的时间量(例如,一年内、三年内等)内发布的游戏作品作为该特定模型的输出。此外,虽然上述示例描述了访问单个游戏历史以用于训练多个机器学习模型中的每个模型,但是应当理解,该计算系统可以分析数千个或更多个游戏历史以用于训练这些模型。

在训练机器学习模型之后,该计算系统然后可以使用模型来生成可以由客户端设备用于对内容项(例如,视频游戏)推荐进行显示的数据。例如,设想特定用户经由客户端设备发送对视频游戏推荐的请求。在接收到该请求时,该计算系统可以(例如,经由设备或用户标识符)识别该用户并且可以访问该用户的游戏历史。然后,该计算系统可以将游戏历史连同关于与多个机器学习模型中的每个模型相关联的可用游戏的信息一起输入到每个模型中。例如,对于第一训练模型(其已被训练为使在过去六个月内发布的游戏具有更高权重),该计算系统可以输入用户的游戏历史和关于可供推荐的游戏的信息,对于第二训练模型(其已被训练为使在去年内发布的游戏具有更高权重),计算系统可以输入用户的游戏历史和关于可供推荐的那些游戏的信息,以此类推。也就是说,虽然可以将可用游戏的整个目录输入到第一模型、第二模型等,但是第一模型可能更可能推荐在过去六个月内已经发布的游戏,第二模型可能更可能推荐在去年内发布的游戏,以此类推。

每个经训练的机器学习模型可以输出得分数据,该得分数据针对多个游戏作品中的每个游戏作品指示用户的游戏历史与特定游戏作品之间的相关性。正如读者将理解的那样,那些与游戏历史高度相关的游戏将获得相对较高的得分,反之亦然。此外,如果计算系统实现“N”个模型,则计算系统可以生成“N”个得分数据。还应当理解,“相关性”可能不是统计相关性,而是只表示具有与所关注用户相同的游戏历史的用户将选择玩该游戏的可能性。

此外,该计算系统可以被配置为基于一个或多个偏置因子的不同值来将得分数据偏置。偏置因子可以包括任何数量的因子,诸如每个游戏的流行度、每个游戏的成本、每个游戏的流派等。在一个示例中,偏置因子可以包括每个游戏的流行度,如由游戏的销售量、游戏的游戏量等确定的。在一些情况下,(由各个经训练的模型确定的)每个得分数据可以在不同的流行度水平下被偏置,使得如果用户期望的话,所得的偏置数据将更接近地匹配该特定流行度水平。也就是说,该计算系统可以将每个游戏作品(以及每个模型)的得分按照范围从非常流行到非常不流行(或非常“小众”)的“M”个目标流行度水平进行偏置。正如读者将理解的那样,那些非常流行的游戏作品的计算得分将因为“非常高”的目标流行度水平而被加分,并且将因为“非常低”的目标流行度水平而被罚分。相反,更小众游戏作品的计算得分将因为“非常高”的目标流行度水平而被罚分,并且将因为“非常低”的目标流行度水平而被加分。

最后,鉴于计算系统现在已经为特定用户计算了“N”个经训练的模型中的每个模型的得分数据,并且已经使用“M”个流行度值来偏置这些得分中的每个得分,则计算系统现在可以为用户生成“M×N”个得分。例如,如果计算系统利用六个模型和五个流行度水平,则计算系统将为任何特定用户生成总共三十个得分(假设由模型生成的六个得分数据中的每个得分将被偏置五次)。当然,应当理解,计算的得分数据可以具有任何其他数量的值,并且可以采用任何其他(例如,非线性)方式进行采样。此外,虽然该示例描述了在训练模型之前输入第一参数的值(在这种情况下,基于发布日期)和在训练之后输入第二参数的值(在这种情况下,基于流行度),但是可以将任何其他数量的参数用作模型的输入和/或用作参考流行度数据描述的后处理的一部分。还应注意,虽然后处理参数被描述为偏置因子,但是这些偏置因子表示可以作为模型的输入或作为后处理的一部分应用的参数。

在以矩阵或其他形式计算该得分数据时,计算系统然后可以将该“结果数据”发送到用户的客户端设备。然后用户的客户端设备可以使用该结果数据以及来自用户的输入来确定呈现用户可用的一个或多个游戏作品的顺序。也就是说,客户端设备可以使用结果数据和来自用户的输入数据来确定要向用户推荐哪些视频游戏,以及当用户提供不同的输入数据时如何改变该推荐。

为了继续上面的示例,客户端设备可以使用户能够提供对期望的发布新近度的选择和对期望的流行度水平的选择作为输入。也就是说,用户可以向客户端设备指示用户是否更喜欢将最近发布的游戏或较旧的游戏视为游戏推荐。此外,用户可以指定她是否希望接收对主流(即,流行)的游戏还是更小众(即,不太流行)的游戏的推荐。虽然下面的示例示出并描述了用户经由一个或多个滑块提供该输入,但是应当理解,可以采用任何其他方式提供该输入。

在接收到来自用户的输入时,诸如指示用户希望看到对通常是较新的和更小众的游戏的推荐的输入,客户端设备可以使用结果数据来确定向用户推荐哪些游戏以及以哪个顺序来推荐。在一些情况下,客户端设备可以从该输入识别客户端设备已经接收到的针对该用户的计算得分数据中的哪一个或多个最接近用户的输入数据。例如,在用户指定不太流行的相对新的游戏的示例中,客户端设备可以从计算得分数据中识别出哪些得分对应于:(1)已在该时间范围内训练的模型,和(2)被偏置为提高不太流行的作品的得分。在识别这些得分之后,客户端设备可以使用插值来确定与各个游戏相关联的得分,然后可以基于这些得分向用户呈现游戏推荐。例如,客户端设备可以利用双线性插值或任何其他形式的插值来计算游戏作品的得分,并且可以根据所计算的得分对这些游戏作品进行排序,其中具有最高得分的那些游戏作品被放置在列表的顶部。此外,如果用户(诸如通过移动上述的一个或两个滑块)提供不同的输入数据,则客户端设备可以再次从得分的矩阵或其他表示中识别最相关的得分数据,并且可以对该得分数据进行插值以用于将游戏作品重新排序。

通过在远程计算系统处生成该得分数据并在客户端设备处本地执行插值,所述技术极大地改善了在客户端设备处对内容项推荐进行排序和重新排序的过程的流畅性。也就是说,因为所述技术涉及向客户端设备发送多个得分数据而不是单个结果,并且因为客户端设备被配置为响应于接收到不同的用户输入来执行对这些得分数据的实时插值,所以这些技术能够对推荐进行排序和重新排序,而无需向远程计算系统提出额外的往返请求。另外,与每次用户提供不同的输入时向系统发出呼叫并等待来自系统的响应的要求相反,所述技术使得能够以对远程计算系统的单个请求和响应为代价无限制地将内容项推荐重新排序。

此外,本文所述的技术提供了非常细粒度的内容推荐。通过使用户能够指定第一参数(例如,成本、发布日期等)的期望值和第二参数(例如,流行度、成本等)的期望值并且通过执行这些输入的客户端侧插值,这些技术提供了高度定制的内容项推荐。

应当理解,虽然本文参考两个参数(发行数据和流行度)描述了其中一些技术,但是这些技术可以用于任何其他数量的参数(例如,一个、五个等)以及任何其他参数值(例如,成本、流派等)。还应当理解,虽然推荐被描述为在一个或多个UI上呈现,但是可以采用任何其他方式(例如,听觉方式、视觉方式等)来输出推荐。

图1是示出一种示例性环境的图示,该环境包括与显示器104相关联的客户端设备102,和被配置为训练和使用机器学习模型以用于向不同用户推荐内容项的远程计算系统106。在一些情况下,并且如下面进一步详细描述的,远程计算系统106训练多个模型,并且此后将用户的消费历史输入到每个模型中以用于生成指示多个内容项作品中的每个作品与消费历史之间的相关性的得分数据。此外,计算系统106可以使用一个或多个偏置因子来生成结果数据,该计算系统可以将该结果数据发送到用户的客户端设备102。客户端设备102可以使用该结果数据以及不同的用户输入来确定在显示器104上或以其他方式向用户呈现内容项推荐的顺序。

客户端设备102可以被实现为被配置为执行内容项(诸如视频游戏、电影、歌曲等)的任何合适类型的计算设备。客户端设备102可以包括但不限于个人计算机(PC)、台式计算机、膝上型计算机、移动电话(例如,智能电话)、平板电脑、便携式数字助理(PDA)、可穿戴计算机(例如,虚拟现实(VR)耳机、增强现实(AR)耳机、智能眼镜等)、车载(例如车内)计算机、电视(智能电视)、机顶盒(STB)、游戏机、音乐播放器、语音控制助理和/或任何类似的计算设备。客户端设备102可以通过计算机网络108与远程计算系统106(在本文中有时简称为“计算系统106”)通信。计算机网络108可表示和/或包括但不限于互联网、其他类型的数据和/或语音网络、有线基础设施(例如,同轴电缆、光纤电缆等)、无线基础设施(例如,射频(RF)、蜂窝、卫星等)和/或其他连接技术。在一些情况下,计算系统106可以是经由计算机网络108维护和可访问的网络可访问计算平台的一部分。诸如此类的网络可访问计算平台可被称为术语诸如“按需计算”、“软件即服务(SaaS)”、“平台计算”、“网络可访问平台”、“云服务”、“数据中心”等。

在一些实施方案中,计算系统106充当实现视频游戏服务以向客户端设备102分发(例如,下载、流传输等)视频游戏(或任何其他类型的内容项)的视频游戏平台或具有该视频游戏平台的访问权限。在一个示例中,客户端设备102可以各自安装有客户端应用程序。所安装的客户端应用程序可以是视频游戏客户端(例如,用于玩视频游戏的游戏软件)。具有所安装的客户端应用程序的客户端设备102可以被配置为通过计算机网络108从计算系统106下载、流传输或以其他方式接收程序(例如,视频游戏及其内容)。任何类型的内容分发模型都可以用于此目的,诸如可单独购买程序(例如,视频游戏)以在客户端设备102上下载和执行的直接购买模型、基于订阅的模型、出租或租用程序一段时间、流传输或以其他方式提供给客户端设备102的内容分发模型。因此,各个客户端设备102可以包括可通过加载客户端应用程序来执行的一个或多个所安装的视频游戏。

客户端设备102可用于向视频游戏服务注册并随后登录到视频游戏服务。用户可以为此目的创建用户账户,并且指定/设置绑定到注册用户账户的凭据(例如,密码、PIN、生物识别ID等)。当多个用户与视频游戏平台交互时(例如,通过使用注册的用户账户访问他们的用户/玩家资料,在他们各自的客户端设备102上玩视频游戏等),客户端设备102将数据发送到远程计算系统106。对于给定的客户端机器104,发送到远程计算系统106的数据可以包括但不限于用户输入数据、视频游戏数据(例如,上传到远程系统的游戏性能统计)、社交网络消息和相关活动、在客户端设备102上玩的视频游戏的标识符(ID)等。该数据可以实时(或基本上实时)流传输,以定义的间隔向远程系统106发送,以及/或者响应于事件(例如,退出视频游戏)而上传。如下面进一步详细描述的,该数据可以用于确定客户端设备102的用户的游戏历史,该游戏历史可以用于确定用于向用户推荐游戏作品的得分。

例如,图1示出了客户端设备102可以在显示104上呈现用于向客户端设备102的用户推荐一个或多个内容项(例如,视频游戏)的UI 110。在该示例中,UI 110包括用于提供两个不同的用户输入的一个或多个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。

图1还示出了计算系统106可以包括一个或多个处理器116(例如,中央处理单元(CPU))和计算机可读介质118。计算机可读介质118可包括采用用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性存储器和非易失性存储器、可移动介质和不可移动介质。这种存储器包括但不限于RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、RAID存储系统,或可用于存储所需信息并可由计算设备访问的任何其他介质。计算机可读介质118可被实现为计算机可读存储介质(“CRSM”),该CRSM可以是处理器116可访问以执行存储在计算机可读介质118上的指令的任何可用物理介质。在一种基本的具体实施中,CRSM可包括随机存取存储器(“RAM”)和闪存存储器。在其他具体实施中,CRSM可包括但不限于只读存储器(“ROM”)、电可擦除可编程只读存储器(“EEPROM”)或可用于存储所需信息并可由处理器116访问的任何其他有形介质。

如图所示,计算机可读介质118可以存储训练部件120、相关部件122和偏置部件124或以其他方式具有这些部件的访问权限。此外,介质118可以存储指示相应内容项的流行度(例如,销售量、游戏时间等)的流行度数据126,可用于在客户端设备处获取的内容项128,以及指示不同用户的相应消费历史的历史数据130。

训练部件120可以使用历史数据130来训练一个或多个机器学习模型132(1),132(2),…,132(N)。例如,训练部件120可以使用与一组采样的用户账户相关联的历史数据130的一部分作为训练数据来训练多个机器学习模型中的每个模型,以获得经训练的机器学习模型132(1)-(N)。

经训练的机器学习模型132可以表示单个模型或基本级机器学习模型的集合,并且可以被实现为任何类型的机器学习模型132。例如,用于与本文所述的技术和系统一起使用的合适的机器学习模型132包括但不限于神经网络、基于树的模型、支持向量机(SVM)、核方法、随机森林、样条(例如,多变量自适应回归样条)、隐马尔可夫模型(HMM)、卡尔曼滤波器(或增强型卡尔曼滤波器)、贝叶斯网络(或贝叶斯信念网络)、期望最大化、遗传算法、线性回归算法、非线性回归算法、基于逻辑回归的分类模型或它们的集合。“集合”可以包括其输出(预测)诸如通过使用加权平均或投票而被组合的机器学习模型132的集合。集合中的单个机器学习模型可以在其专门技能上有所不同,并且该集合可以作为各个机器学习模型的委员会来运行,该委员会总体上比该集合中的任何单个机器学习模型“更智能”。

用于训练每个机器学习模型132的训练数据可以包括各种类型的数据。通常,用于机器学习的训练数据可以包括两个组成部分:特征和标签。然而,在一些实施方案中,用于训练机器学习模型132的训练数据可以不具有标签。因此,机器学习模型216可以使用任何合适的学习技术(诸如监督学习、无监督学习、半监督学习、强化学习等)来训练。包括在训练数据中的特征可以由一组特征来表示,诸如采用关于训练数据的属性的可量化信息的n维特征向量的形式。以下是可以包括在用于训练本文描述的机器学习模型132的训练数据中的示例性特征的列表。然而,应当理解,以下特征列表是非穷举的,并且在训练中使用的特征可以包括本文未描述的附加特征,并且在一些情况下,包括本文列出的特征中的一些(但不是全部)。包括在训练数据中的示例性特征可以包括但不限于内容项的发布日期、内容项的流派、内容项的作品、内容项的长度、内容项的评级、已经消费该内容项的用户等。此外,作为训练过程的一部分,训练部件120可以设置用于机器学习的权重。这些权重可以应用于包括在训练数据中的一组特征,如从历史数据130导出的。在一些实施方案中,在训练过程期间设置的权重可以应用于机器学习模型内部的参数(例如,用于神经网络的隐藏层中的神经元的权重)。机器学习模型的这些内部参数可以或可以不与该组特征的各个输入特征一一映射。权重可以指示任何给定特征或参数对由经训练的机器学习模型132输出的得分的影响。

在一些情况下,训练部件120可以通过访问用户的个人消费历史、选择由相应历史指示的特定内容项作为模型的输出、输入消费历史作为模型的输入以及训练模型的一个或多个内部层来训练各个模型。例如,并且如上所述,训练部件可以访问第一用户的消费历史,并且可以使用该历史来训练第一模型132(1)。例如,如果第一模型132(1)用于推荐在过去六个月内已经发布的内容项作品,则训练部件120可以从用户的历史中选择在过去六个月内已经发布的一个游戏作品,并且可以向第一模型132(1)指示该所选择的作品将是该模型的输出。此后,训练部件120可以提供用户的整个消费历史作为第一模型132(1)的输入,并且提供所选择的内容项作品作为第一模型132(1)的输出以用于训练第一模型132(1)的一个或多个内部层。例如,如果第一模型132(1)包括人工神经网络,则选择内容项作品作为输出并且提供关于用户的消费历史的信息作为输入可以有效地训练神经网络的一个或多个内部层。应当理解,神经网络的输入和输出以及可以使用的其他类型的模型可以包括对应的游戏作品或其他内容项的特征,诸如发行数据、流派、游戏类型等。

在一些情况下,训练部件120可以在选择要用作机器学习模型132(1)的输出的作品时考虑用户其历史中已经消耗的每个内容项的时间量。例如,训练部件120可以最初确定用户已经消费了在用户的消费历史中引用的每个单独作品的时间量。这可以绝对地(例如,在时间方面)确定或相对地(例如,在相对于也已经消费过该作品的其他用户的时间方面)确定。该信息可以作为权重应用于各个内容项作品。在对与历史相关联的每个作品应用权重或将此信息输入到模型之后(可能会由于一些作品被用户消耗得非常少而将它们过滤掉),然后训练部件120可以选择一个(或多个)内容项作品以用作第一模型132(1)的输出。通过这样做,训练部件120增加了用户消耗最多的内容项被选择作为第一模型132(1)的输出的机会,因此,以使得该第一模型更有可能选择用户感兴趣的内容项的方式来训练该模型的内部层。

除了训练第一模型132(1)之外,在一些情况下,训练部件120还可以训练多个其他模型,诸如用于推荐在去年内发布的游戏的模型132(2)、用于推荐在过去三年内发布的游戏的模型132(3)等等。在每种情况下,训练部件120可以访问用户的消费历史,并且选择既在历史中指示又在与特定模型相关联的时间量(例如,一年内、三年内等)内发布的作品作为该特定模型的输出。此外,虽然上述示例描述了访问单个历史以用于训练多个机器学习模型中的每个模型,但是应当理解,训练部件120可以分析数千个或更多个历史以用于训练模型132。

同时,相关部件122可以用于响应于从这些各个用户接收到推荐请求而生成用于各个用户的相关得分。例如,如图所示,客户端设备102可以包括一个或多个处理器134和计算机可读介质136,该介质可以存储或以其他方式访问一个或多个客户端应用程序138和插值部件140。在一些情况下,客户端设备102的用户可以利用客户端应用程序138中的一个应用程序(例如,浏览器、专用应用程序等)与计算系统106交互,例如请求数据以用于呈现UI 110。响应于接收到该请求,相关部件可以确定与客户端设备102的用户相关联的标识符以用于生成得分数据,该得分数据可以用于向用户推荐一个或多个内容项。

在一个示例中,用户相关部件122在识别客户端设备102的用户之后从历史数据130访问该用户的消费历史。相关部件然后可以将该消费历史输入到“N”个经训练的模型132中的每个模型中。模型132可以各自针对与对应于各个模型132的时间范围相关联的多个内容项中的每个内容项输出得分数据,该得分数据指示内容项与用户的消费历史之间的相关性。如上所述,较高的得分可以指示较高的相关性。在一些情况下,与特定模型相关联的每个时间范围是排他性的,诸如在第一模型与在过去六个月内发布的内容项相关联、第二模型与在之前六个月和十二个月之间发布的内容项相关联等等的示例中。在其他情况下,该时间范围不是排他性的,如在第一模型与过去六个月内发布的内容相关联、第二模型与去年(包括前六个月)内发布的内容项相关联等等的示例中。

同时,偏置部件124可以用于根据特定参数的“M”个值来偏置由相关部件122生成的“N”个得分数据中的每个数据。该参数可以包括流行度水平、成本、发布日期等。在一些情况下,该参数包括由流行度数据126所指示的流行度水平。

例如,对于与由每个模型输出的每个得分数据相关联的每个内容项,偏置部件可以确定是否根据“M”个不同的流行度值来对单个得分进行加分或罚分。在一个示例中,偏置部件124根据从非常流行到非常不流行(或者更确切地说,非常“小众”)的五个不同的流行度值来对每个内容项的得分进行加分或罚分。在这样做之后,偏置部件可能已经生成了得分的矩阵或其他表示,其中一个具体实施参考图3示出和描述。

在已经生成得分的矩阵或其他表示之后,计算系统106可以将该“结果数据”发送回最初请求推荐的客户端设备102。然后,插值部件140可以至少部分地基于接收到的结果数据以及UI控件112(1)和112(2)的值来确定呈现推荐内容项的顺序。例如,对于这两个控件的值的任何给定集合,插值部件140可以从结果数据中识别最接近的一个或多个得分数据,并且可以基于所识别的得分数据来对内容项的得分进行插值。插值部件140可以采用双线性插值和/或任何其他插值方法。此外,当用户经由UI控件112(1)和/或112(2)提供输入时,插值部件140可以执行新的插值并且更新UI 110以指示新的推荐。

图2示出了用于生成机器学习模型、将它们应用于特定用户的历史数据、将生成的结果数据发送到用户的客户端设备以及使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的操作的示例性过程200。虽然参考图1的环境100描述了该过程200,但是该过程可能适用于其他环境。

在操作202处,计算系统106可以使用上述技术中的任一种技术来训练一个或多个机器学习模型。在一些情况下,操作202包括训练“N”个模型,每个模型与参数的特定值相关联,诸如发布内容项所在的特定时间窗口。

在一个示例中,计算系统106可以通过访问与计算系统社区相关联的多个用户的相应消费历史(例如,游戏历史、移动历史等)来开始训练操作。例如,该计算系统可以访问视频游戏服务社区的第一用户的游戏历史,并且可以使用该历史来训练第一模型。例如,如果第一模型用于推荐在过去六个月内已经发布的游戏作品,则该计算系统可以从用户的游戏历史中选择在过去六个月内已经发布的一个游戏作品,并且可以向第一模型指示该所选择的游戏作品将是分类器的输出。也就是说,计算系统106可以识别具有用于正在训练模型的参数的值的游戏作品或其他内容项。

此后,计算系统106可以提供用户的整个游戏历史作为第一模型的输入,并且提供所选择的游戏作品作为第一模型的输出以用于训练第一模型的一个或多个内部层。例如,如果第一模型包括人工神经网络,则选择游戏作品作为输出并且提供关于用户的游戏历史的信息作为输入可以有效地训练神经网络的一个或多个内部层。应当理解,神经网络的输入和输出以及可以使用的其他类型的模型可以包括对应的游戏作品或其他内容项的特征,诸如发行数据、流派、游戏类型等。

在一些情况下,计算系统106可以在选择要用作机器学习模型的输出的游戏作品时考虑用户在其历史中玩过每个游戏的时间量。例如,该计算系统可以最初确定用户已经玩了在用户的游戏历史中引用的每个单独游戏作品的时间量。这可以绝对地(例如,在玩游戏的时间方面)确定或相对地(例如,在相对于也玩过该游戏作品的其他用户玩的时间方面)确定。该信息可以作为权重应用于单个游戏作品或作为关于模型的信息而输入。在对与游戏历史相关联的每个游戏作品应用权重或将此信息输入到模型之后(可能会由于用户非常少玩一些游戏作品而将它们过滤掉),然后该计算系统可以选择一个(或多个)游戏作品以用作第一模型的输出。通过这样做,该计算系统增加了用户玩得最多的游戏被选择作为第一模型的输出的机会,因此,以使得第一模型更有可能选择用户感兴趣的游戏的方式来训练该模型的内部层。

除了训练第一模型之外,在一些情况下,计算设备还可以训练多个其他模型,每个模型与参数的不同值相关联,诸如用于推荐在去年内发布的游戏的模型、用于推荐在过去三年中发布的游戏的模型等等。在每种情况下,该计算系统可以访问用户的游戏历史或其他消费历史,并且选择既在游戏历史中指示又在与特定模型相关联的时间量(例如,一年内、三年内等)内发布的游戏作品作为该特定模型的输出。此外,虽然上述示例描述了访问单个游戏历史以用于训练多个机器学习模型中的每个模型,但是应当理解,该计算系统可以分析数千个或更多个游戏历史以用于训练这些模型。

在操作204处,客户端设备102从用户接收对一个或多个内容项推荐的请求。这可以包括用户使用客户端设备102导航到由计算系统106提供的站点、与由计算系统106生成的专用应用程序交互等。

在操作206处,计算系统106接收该请求,并且在操作208处,该计算系统使用“N”个经训练的模型生成一组“N”个相关得分。如上所述,这可以包括识别请求的用户的消费历史,并且将该消费历史输入到“N”个经训练的模型中的每个模型中,以接收“N”组相关得分。

在操作210处,计算系统106使用一个或多个偏置因子来修改“N”组相关得分内的每个得分。例如,对于每个偏置因子,计算系统106可以使用“M”个偏置因子的值来生成M×N组现在偏置的相关得分。当然,如果使用多个偏置因子,则可以生成更多数量的组。例如,如果使用两个偏置因子,则计算系统106可以生成M×M×N个偏置得分。如上所述,在一些情况下,偏置因子可以对应于每个内容项的流行度水平。此外,还应当理解,计算系统106可以非线性地生成相关得分和偏置相关得分。此外,可以计算任何数量的值。

在操作212处,计算系统将该“结果数据”发送到客户端设备102,客户端设备在操作214处接收该结果数据。在操作216处,客户端设备102基于接收到的结果数据向用户呈现一个或多个内容项推荐。在一些情况下,初始推荐可以基于具有可以由用户设置的值的任何参数的值的当前设置。

在操作218处,客户端设备102接收来自用户的输入。这可以包括改变一个或多个参数的值,诸如期望的发布数据、期望的流行度水平等。在操作220处,客户端设备102使用输入数据和结果数据来对内容项的得分进行插值。也就是说,客户端设备102使用结果数据和接收的输入来生成推荐顺序。最后,在操作222处,客户端设备102可以重新呈现推荐,尽管是以新计算的顺序。

图3示出了用于生成模型、偏置所得得分、将模型应用于特定用户的历史数据以及使用该结果数据和接收到的用户输入来确定向用户呈现内容项推荐的顺序的示例性部件及其相互作用。应当理解,虽然图3示出了用于执行所述技术的示例性的一组部件,但是在其他情况下可以使用其他部件。

如图所示,在该示例中,一些部件驻留在服务器侧302,而其他部件驻留在客户端侧104。例如,服务器侧302的部件可以驻留在计算系统106上,而客户端侧的部件可以驻留在客户端设备102上。

首先,可以将历史数据130和一个或多个参数306(1),306(2),…,306(N)输入到训练部件120中以用于生成相应模型132(1)-(N)。也就是说,训练部件120可以接收训练部件120要用来训练模型的参数的特定值的指示。例如,参数306(1)可以指示“发布日期在过去六个月内”的值,参数306(2)可以指示“发布日期在去年内”的值,等等。当然,在其他情况下,参数可以对应于内容项的价格、内容项的流行度等。此外,历史数据130可以包括如上所述的用户群体的消费历史。

同样如上所述,训练部件120可以将个人消费历史输入到相应机器学习模型中以训练模型。例如,对于具有“发布日期在过去六个月内”的参数值的模型132(1),训练部件可以输入个人消费历史作为模型的输入,并且可以根据每个相应的历史来指定在前六个月内已经发布的内容项作品作为模型132(1)的输出。训练部件120然后可以使用该输入和输出来训练该模型132(1)的一个或多个内部层。训练部件120可以针对来自历史数据130的不同消费历史的阵列以及针对模型132(1)-(N)中的每个模型来执行该操作。此外,模型32的输入可以包括与用户相关联的信息,诸如与用户相关联的地理位置、与用户相关联的人口统计信息等。另外,虽然已经描述了模型的几个示例性输入,但是应当理解,可以向模型提供任何其他类型的输入。

在已经训练了模型132(1)-(N)之后,这些模型可以用于生成对用户的内容项推荐。在接收到来自特定用户的推荐请求时,与该用户相关联的消费历史(存储在历史数据130中)可以连同可用内容项128的库一起输入到相关部件122中。相关部件可以将该数据输入到模型132(1)-(N)中的每个模型,这些模型可以输出相应的相关得分308(1),308(2),…,308(N)。例如,模型132(1)可以输出针对在过去六个月内已经发布的并且基于用户的消费历史而为用户定制的内容项推荐,等等。

在一些情况下,可以将这些得分308(1)-(N)输入到偏置部件124中,该偏置部件可以针对每个相关得分308(1)-(N)生成一组偏置得分310(1),310(2),…,310(N)。也就是说,偏置部件可以选择特定偏置因子的一个或多个值,并且可以基于内容项与偏置因子的相应值的对应程度来在得分308(1)-(N)中的每个得分内对每个内容项的得分进行加分或罚分。例如,偏置因子可以包括内容项的流行度,如由可以输入到偏置部件中的流行度数据126所指示的。如上所述,该流行度数据126可以包括销售数据、消费时间等。

在一个示例中,偏置部件选择偏置因子的“M”个值,诸如从非常流行(例如,具有非常高的销售数量)到非常不流行或小众(例如,销售数量非常低)的M个流行度值。因此,偏置部件124可以根据偏置因子的前一种值对非常流行的作品的得分进行加分并且对非常小众的作品进行罚分,而且可以根据偏置的后一种值采取相反的操作。在该示例中,偏置部件124可以输出“M×N”个或任何其他数量的偏置得分,假设采样可以非线性地发生。在一些示例中,计算系统106将这些偏置得分310(1)-(N)发送到与发起推荐请求的用户相关联的客户端设备102。

如图所示,可以将该组偏置得分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的显示器上的推荐的实时重新排序。

图4示出了远程计算系统102可以生成并发送到用户的客户端设备102的示例性结果数据312。如图所示,在该示例中,结果数据312可以包括得分的M×N矩阵,客户端设备可以响应于接收到变化的用户输入而根据需要在该矩阵中进行插值。然而,应当理解是,可以在任何数量的维度的参数空间中以任何模式来对结果数据进行采样。例如,可以在不同于所示的M×N个点的不同点处对得分的矩阵或其他表示进行采样。例如,采样可以非线性地发生。此外,采样点的数量可以变化(例如,可以比M×N个点更多或更少)。此外,可以使用多于两个的参数和/或偏置因子,从而产生更高维的参数空间。

在该示例中,结果数据312对应于内容项发布所在的时间范围的参数和对应于内容项的流行度的偏置因子。此外,训练部件120已经训练了该参数的“N”个值,如由具有该参数的“N”个值的结果数据所指示的(时间范围1-N)。此外,偏置部件124可以使用偏置因子的“M”个值(流行度1-M)来偏置由相关部件122输出的每个得分。因此,在该示例中,结果数据312包括M×N个得分。

响应于用户提供改变参数(时间范围)的值或偏置因子(流行度)的值的输入,插值部件可以识别最接近的得分并且可以执行插值来计算插值得分,该插值得分可用于确定向用户推荐内容项的顺序。例如,设想操作客户端设备102的用户请求查看针对在“时间范围1”和“时间范围2”之间的时间已经发布并且具有落在“流行度1”和“流行度2”之间的流行度的内容项的推荐。响应于接收到该输入数据,插值部件140可以识别与该输入最接近的四个得分,诸如“偏置得分11”、“偏置得分12”、“偏置得分21”和“偏置得分22”。插值部件然后可以使用这些得分来执行双线性插值或任何其他类型的合适的插值算法来生成插值得分。该得分然后可用于确定向用户呈现内容项推荐的顺序。例如,得分最高的内容项可以首先被呈现,得分第二高的内容项可以被第二个呈现,以此类推。

图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所讨论的那样改变。

另外,UI 500可以包括用户可以请求滤除具有用户指定的标签的游戏的UI控件502,以及用户可以请求滤除不具有用户指定的标签的游戏的UI控件504。在该示例中,例如,用户可以经由下拉菜单在控件502或504中的任一个中键入或选择标签。响应于在UI控件502中接收到标签,客户端设备102可以通过移除与指定的标签相关联的任何内容项来改变列表114。同时,响应于在UI控件504中接收到标签,客户端设备102可以通过移除不与指定的标签相关联的任何内容项来改变列表114。

图6示出了客户端设备102可以响应于用户改变第一参数(在该示例中,内容项的流行度)的值和第二参数(在该示例中,内容项的新近度)的值而呈现的示例性UI 600。例如,在该示例中,客户端设备的用户已经将UI左侧的滑块移动成更靠进右端(例如,请求不太流行的内容项),同时将UI右侧的滑块向左移动(例如,请求相对较旧的内容项)。因此,作为响应,插值部件114可以计算对应于这些用户输入的内容项的新列表602。例如,列表602可以包括在相对较大的时间范围内发布并且不是过度流行的内容项。

图7示出了远程计算系统可用于生成一个或多个经训练的机器学习模型以及生成结果数据以供客户端设备在向用户提供内容项推荐时使用的示例性过程700的流程图。该过程以及本文描述的每个过程被示为逻辑流程图中的框的集合,这些框代表可在硬件、软件或其组合中实现的一系列操作。在软件的环境中,这些框表示计算机可执行指令,这些计算机可执行指令在由一个或多个处理器执行时,执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。描述操作的顺序不旨在被理解为限制,并且可以任何顺序和/或并行地组合任意数量的所描述的框来实现这些过程。

在一些情况下,计算系统106可以被配置为执行这些操作中的一些或全部,但是在其他情况下,其他设备可以附加地或另选地执行这些操作中的一些或全部。

在操作702处,计算系统106可以训练机器学习模型。如图所示,该操作可以包括一系列子操作。例如,训练该模型可以包括在子操作702(1)处确定一个或多个用户的消费历史。如上所述,这可以包括游戏历史、电影或音乐的消费历史等。同时,子操作702(2)可以包括从每个历史中选择一个作品作为要训练的模型的输出。在某些情况下,该选择可以:(1)根据历史中满足与当前正在训练的模型相关联的参数值的那些内容项,以及(2)参考每个内容项被用户消耗了多少。例如,计算系统106可以将较大的权重应用于由相应用户消费得更多的那些内容项,从而增加这些内容项将被选择作为输出的可能性。最后,在子操作702(3)处,计算系统106可以使用每个消费历史作为输入并且使用每个所选择的作品作为输出来训练该模型的一个或多个内部层。这些子操作可以针对多个消费历史中的每个消费历史连续地执行。

在操作704处,过程700确定是否存在要训练的附加模型。例如,如果过程700是训练“N”个模型,则操作704表示确定是否仍然要训练这N个模型中的任何一个模型。如果是,则过程700返回到操作702。如果不是,则过程700前进到操作706。在操作706处,计算系统106可以从用户的客户端设备接收对内容项推荐的请求。在操作708处,计算系统106确定用户的消费历史,并且在操作710将该历史输入到经训练的模型中。

在操作712处,计算系统106生成指示用户的消费历史与每个相应内容项之间的相关性的得分数据作为从经训练的模型的输出。在一些情况下,相对较高的得分对应于相对较高的相关水平。在操作714处,计算系统106基于偏置因子的特定值来修改得分数据中的每个得分,如上所述。操作716表示确定是否要使用偏置因子的附加值来对得分进行偏置。例如,如果计算系统106要使用偏置因子的“M”个值来偏置得分数据,则操作716表示确定是否仍然要使用该“M”个值中的任何一个值来偏置得分。如果是,则过程700返回到针对偏置因子的新值的操作714。

如果不是,则过程700前进到操作718,该操作表示确定是否要使用附加模型来生成用户的得分数据。例如,如果计算系统106被配置为使用“N”个模型来生成为用户定制的得分数据,则操作718表示确定是否仍将使用该“N”个模型中的任何一个模型来生成用户的得分数据。如果是,则过程700返回,在操作710处将用户的历史数据输入到下一个模型中。如果不是,则过程700前进,向客户端设备发送结果数据(例如,偏置得分数据的矩阵或其他表示),以使得能够向用户呈现推荐。

图8示出了用户的客户端设备可用于确定向用户呈现一个或多个内容项的顺序的示例性过程800的流程图。虽然该过程800被描述为在客户端设备102上执行,但是应当理解,过程800可以附加地或另选地在其他设备上执行。

在操作802处,客户端设备102接收得分数据,该得分数据指示客户端设备的用户的消费历史和多个内容项中的每个内容项之间的相关性。在一些情况下,该得分数据可以包括上面讨论的结果数据312。在操作804处,客户端设备102接收来自用户的输入,该输入指定用来训练模型的参数的值或用来偏置得分数据的偏置因子的值中的至少一者。例如,该输入可以指定要推荐的内容项的期望新近度(例如,与它们相应的发布日期相关联的时间范围)、内容项的期望成本范围、内容项的期望流行度水平等。在操作806处,客户端设备102至少部分地基于得分数据和接收到的输入来确定呈现推荐内容项的顺序。例如,客户端设备102可以基于由用户指定的参数和/或偏置因子的值来对得分数据执行插值。

在操作808处,客户端设备102以所确定的顺序呈现内容项推荐,并且在操作810处,该客户端设备确定是否接收到来自用户的附加输入。如果是,则过程800前进,再次基于输入来确定向用户(重新)呈现内容项推荐的顺序。如果不是,则过程800在操作812处结束。

尽管已经用特定于结构特征的语言描述了主题,但是应该理解,所附权利要求书中定义的主题不必限于所描述的具体特征。相反,具体特征被公开为实现权利要求的例示性形式。