数据库系统中的相关性表聚合的制作方法

文档序号:11288637阅读:212来源:国知局
对相关申请的交叉引用本公开要求于2015年2月11日提交的、标题为“relevancetableaggregationforgeneratingrecommendations”的美国临时申请no.62/114,695的优先权,该美国临时申请的全部内容通过引用并入本文。
背景技术
::公司提供用户可以浏览的视频库。通常,视频库非常大,并且用户能够快速和容易地找到视频是重要的。有时,用户确切地知道他/她想要看什么视频并且可以容易地找到该视频。一旦找到视频,用户就可以按需请求视频。然而,用户可能并不总是知道他/她想看什么视频。如果用户不得不搜索太长时间并且无法找到视频,那么用户可能停止使用该服务,这是不期望的。技术实现要素:在一个实施例中,一种方法生成多个子相关性表,该多个子相关性表包括由视频交付服务提供的媒体节目之间的第一相关性值集合。每个表对针对多个特征中的单个特征的相关性值进行建模。包括媒体节目之间的第二相关性值集合的标记结果被接收,该标记结果基于用户输入。该方法将多个子相关性表组合成包括媒体节目之间的针对多个特征的第三相关性值集合的单个相关性表。该组合基于用于标记结果的第二相关性值集合和被用来生成第三相关性值集合的多个子相关性表中的第一相关性值集合来生成用于多个子相关性表中的每个子相关性表的权重。向使用视频交付服务的用户提供推荐,推荐是使用来自单个相关性表的第三相关性值集合以及用户的特性来生成的。在一个实施例中,非暂态计算机可读存储介质包含指令,指令当被执行时控制计算机系统使其被配置为用于:生成多个子相关性表,该多个子相关性表包括由视频交付服务提供的媒体节目之间的第一相关性值集合,其中每个表对针对多个特征中的单个特征的相关性值进行建模;接收包括媒体节目之间的第二相关性值集合的标记结果,该标记结果基于用户输入;将多个子相关性表组合成包括媒体节目之间的针对多个特征的第三相关性值集合的单个相关性表,其中该组合基于用于标记结果的第二相关性值集合和被用来生成第三相关性值集合的多个子相关性表中的第一相关性值集合来生成用于多个子相关性表中的每个子相关性表的权重;以及向使用视频交付服务的用户提供推荐,该推荐是使用来自单个相关性表的第三相关性值集合以及用户的特性来生成的。在一个实施例中,一种装置包括:一个或多个计算机处理器;和包括指令的非暂态计算机可读存储介质,指令当被执行时控制一个或多个计算机处理器使其被配置为用于:生成多个子相关性表,该多个子相关性表包括由视频交付服务提供的媒体节目之间的第一相关性值集合,其中每个表对针对多个特征中的单个特征的相关性值进行建模;接收包括媒体节目之间的第二相关性值集合的标记结果,该标记结果基于用户输入;将多个子相关性表组合成包括媒体节目之间的针对多个特征的第三相关性值集合的单个相关性表,其中该组合基于用于标记结果的第二相关性值集合和被用来生成第三相关性值集合的多个子相关性表中的第一相关性值集合来生成用于多个子相关性表中的每个子相关性表的权重;以及向使用视频交付服务的用户提供推荐,该推荐是使用来自单个相关性表的第三相关性值集合以及用户的特性来生成的。以下详细描述和附图提供了对特定实施例的性质和优点的更好理解。附图说明图1描绘了根据一个实施例的用于向用户交付媒体节目以及向用户提供推荐的简化系统。图2描绘了根据一个实施例的相关性表处理器108的较详细的示例。图3描绘了根据一个实施例的用于成单个相关性表的方法的简化流程图。图4描绘了根据一个实施例的用于调整单个相关性表的方法的简化流程图。图5示出了根据一个实施例的经调整的相关性表生成的示例。图6示出了根据一个实施例的组合子相关性表的示例。图7描绘了根据一个实施例的经由一个或多个通信网络与多个客户端设备通信的视频流传输系统。图8描绘了用于查看视频内容和广告的装置的示意图。具体实施方式本文描述了用于数据库表生成系统的技术。在以下描述中,为了解释的目的,阐述了许多示例和具体细节,以便提供对特定实施例的透彻理解。由权利要求定义的特定实施例可以单独地或者与下文描述的其它特征组合地包括这些示例中的特征中的一些或全部特征,并且还可以包括本文描述的特征和概念的修改和等价物。在运营视频交付服务时,公司可以针对用户搜集信息。当了解到关于用户的更多信息时,公司可以向用户推荐可能与用户可能希望看到的内容相关的媒体节目。这可以鼓励用户在公司的服务上查看更多的媒体节目。但是,推荐用户将真正感兴趣的媒体节目是重要的。视频交付服务可以从基于用户使用视频交付服务的不同特征来创建不同的相关性表。该服务还可以基于媒体节目本身的特征来创建其它相关性表,而无需任何特定于用户的定制。这些相关性表可以包括观看行为、搜索行为、节目(show)主题和节目元数据。相关性表捕获在视频交付服务上被提供的媒体节目之间的关系的性质。为了生成这些相关性表,每个相关性表可以在其单独的表中对一个特征进行建模。例如,相关性表可以是实数值得分矩阵,该实数值得分矩阵可以在行和列上具有所有媒体节目,并且每个单元格携带正实数值得分,该正实数值得分表示两个媒体节目基于单个特征的彼此相似程度。即,对于观看行为,在第一子相关性表中第一得分量化第一媒体节目与第二媒体节目的相关程度。另外,对于搜索行为,在第二子相关性表中第二得分量化第一媒体节目与第二媒体节目的相关程度。第二子相关性表中的值不考虑观看行为。特定实施例分析子相关性表并且确定将相关性表组合成单个相关性表的最佳方式。这包括使用来自用户的标记结果并且还包括分析相关性表的内容。然后可以基于来自推荐的用户反馈来调整单个相关性表。然后,推荐系统可以使用单个相关性表向使用视频交付系统的用户提供推荐。图1描绘了根据一个实施例的用于向用户交付媒体节目以及向用户提供推荐的简化系统100。视频交付系统102可以向客户端104交付媒体节目。媒体节目可以包括电视节目或电影、任何视频或某一类视频。下面将更详细地描述视频交付系统102的实现。在一个实施例中,用户可以使用客户端104从视频交付系统102请求媒体节目。视频交付系统102可以向用户提供视频库。如上文所描述的,用户可以针对视频来搜索视频交付系统102并且按需请求它们。此外,视频交付服务可以包括可以向用户推荐媒体节目的推荐系统106。在一个实施例中,推荐系统106基于与其它媒体节目的相似度来推荐媒体节目。例如,推荐系统106可以基于用户正在观看被认为与第一视频相似的第二视频而推荐第一视频。视频交付系统102可以生成视频交付服务信息,诸如用于视频交付服务的用户行为信息或媒体节目信息。数据库系统107可以生成存储在数据库存储装置208中的子相关性表,子相关性表捕获媒体节目之间的针对用户行为或媒体节目信息的关系。每个子相关性表基于单个特征。例如,子相关性表可以基于用户观看行为、用户搜索行为、媒体节目主题和媒体节目元数据而生成。这些子相关性表中的一些子相关性表可以基于用户与视频交付服务的交互。其它子相关性表可以不基于具体的用户信息。例如,视频交付服务102可以分析媒体节目以生成子相关性表,诸如媒体节目主题和媒体节目元数据被用来生成子相关性表。如上文所提到的,子相关性表可以是实数值得分矩阵,该实数值得分矩阵可以在行和列上具有所有媒体节目,并且每个单元格承载正实数值得分,该正实数值得分表示两个媒体节目基于单个特征的彼此相似程度。数据库系统107处理子相关性表,以使得推荐系统106可以使用单个相关性表来提供推荐。首先,相关性表处理器108接收子相关性表。为了让推荐系统106向用户提供推荐,推荐系统106需要使用捕获来自子相关性表的多个特性的关系的单个相关性表。单个相关性表可以改进计算机的处理时间,因为推荐系统106可以快速确定相似的节目。当除了视频交付的规模之外,视频交付服务还在执行实时的视频交付时,这会是重要的。使用多个相关性表来初始地捕获来自不同的数据源和算法的信息是必需的。存在许多不同的数据源和算法,这要求数据的初始捕获被存储在多个相关性表中。假设处理每个相关性表花费几乎相同量的时间,那么许多相关性表的实时处理在视频交付环境中是不可行的。例如,当用户请求视频时,应当在进行请求时生成推荐。另外,当用户查看视频时,应当在查看视频时或查看视频之后生成新的推荐。此外,当用户登录到服务时,可以向用户呈现前十个最相关的视频的列表。在一个实施例中,推荐系统106针对所有特征生成单个相关性表。“单个”相关性表可以是在单元格中具有实数值的行和列的矩阵。然而,得分从多个子相关性表的值捕获贡献和重要性。将理解的是,单个相关性表可以在数据库系统107中不同地实现。例如,可以使用一个或多个表,但是被包括在单个相关性表中的值是针对多个特征的。为了生成单个相关性表,特定实施例不用固定的量来对每个相关性表手动地进行加权,诸如说观看行为30%重要,搜索行为20%重要,等等。由于视频交付服务的复杂性,随着子相关性表用更多的信息来更新,子相关性表的质量将随时间改变。另外,使用这种固定模型不能捕获相关性表中的所有有用信息。例如,一些准确的相关性信息可能被忽略,因为包含它的子相关性表的整体质量低。因此,特定实施例除了使用来自用户的标记结果和来自用户的显式反馈之外还分析子相关性表,以学习将子相关性表组合成单个相关性表的最佳方式。以这种方式,不需要显式地计算表的质量。特定实施例可以组合多个表,其中如果表的质量低,那么该表在我们组合的相关性表中将具有小的权重。这种较小的质量由推荐表处理器108自动确定。推荐表处理器108然后生成单个相关性表。可能需要该单个相关性表,以使得推荐系统106可以生成推荐。例如,基于用户在视频交付服务上的动作(诸如浏览历史和观看历史),推荐系统106可以使用单个相关性表来生成推荐。推荐可以包括对于用户的内容推荐,诸如自动播放视频或十大推荐节目。推荐节目可以是基于用户的所有特征和一个或多个特性而被认为与用户最相关的节目。例如,观看历史和搜索历史被用来为用户生成十大最相关的媒体节目。相关性表处理器108可以使用相关性聚合过程和相关性调整过程来生成单个相关性表。下面将更详细地描述相关性聚合过程和相关性调整过程。相关性表处理器108图2描绘了根据一个实施例的相关性表处理器108的较详细的示例。相关性表处理器108包括相关性聚合处理器202和相关性调整处理器204。相关性表处理器108可以在一个或多个计算设备上实现。如下面将更详细地描述的,相关性聚合处理器202将子相关性表聚合成单个相关性表,并且相关性调整处理器204调整该单个相关性表。前端设备206可以收集标记结果。在一个实施例中,前端设备206可以向用户输出用户可以回答的各种问题。例如,熟悉媒体节目的领域专家可以回答问题。在一个实施例中,前端设备206可以呈现由媒体节目a、媒体节目b和媒体节目c表示的三个不同的媒体节目(被称为媒体节目“元组”)。这些媒体节目可以是不同的节目、同一节目中的不同剧集、电影等。前端设备206接收来自用户的对问题的答案。例如,问题可以是“媒体节目b和媒体节目c中哪个媒体节目与媒体节目a更相关?”前端设备206可以允许用户选择媒体节目b或媒体节目c。当媒体节目b和媒体节目c不相关时,或者用户不能做出决定时,用户可以跳过这个问题或指示它们不相关。此外,作为选择媒体节目b或媒体节目c的替代,用户还可以指派相关性值。然而,比较两个相关性值可能比决定具体的相关性值更容易。此外,同一媒体节目元组可以由不同的用户或者甚至同一个用户在不同时间进行标记,以测试是否可以达成一致。虽然元组被描述,但是可以使用获得用户关于媒体节目的相似度的输入的其它方法,诸如使用列表或是/否问题。在一个实施例中,数据库存储装置208存储不同的子相关性表。不同的子相关性表可以基于可以被生成的不同特征。如上面所讨论的,这些不同特征可以包括观看行为、搜索行为、媒体节目元数据或其它信息。每个子相关性表基于一个特征。例如,用户观看行为可以仅基于具体用户在观看对于视频交付服务的视频时的行为。搜索行为可以仅基于被执行的具体用户搜索。媒体节目元数据可以由视频交付服务生成并且可以对于所有用户都是相同的。这些子相关性表可以测量针对单个度量的媒体节目之间的相似度。即,所生成的子相关性表基于观看行为将相似度与用户关联。这种子相关性表不针对观看行为和搜索行为来评估相似度。子相关性表针对每个特征被使用,因为这是相似度可以被测量的方式。不能测量针对多个度量的相似度。相反,用于相似度的两个值需要被组合。相关性聚合处理器202查询数据库存储装置208并且从存储装置208接收子相关性表的值。相关性聚合处理器202还从前端设备206接收标记结果。相关性聚合处理器202然后可以生成单个相关性表。例如,相关性聚合处理器202可以使用标记结果作为基础事实(groundtruth)以及子相关性表作为特征来生成单个相关性表。即,标记结果通过直接观察提供,而子相关性表是推断的相似度。标记结果被用来最佳地组合子相关性表。在生成单个相关性表之后,向用户提供推荐。其后,可以调整单个相关性表。例如,相关性调整处理器204可以接收单个相关性表,并且使用其它信息来调整单个相关性表。在一个实施例中,可以结合来自使用视频交付服务的用户的用户选择(例如,点击或鼠标)反馈来调整单个相关性表。对于相关产品特征(诸如显示使用单个相关性表生成的推荐的“您可能也喜欢”托盘(tray))的点击率(ctr)可以被用来调整单个相关性表。例如,如果对于推荐的点击率低,那么这个节目相对于正在播放的节目的相关性可能需要被降低。单个相关性表的生成图3描绘了根据一个实施例的用于生成单个相关性表的方法的简化流程图300。在302处,相关性聚合处理器202可以从子相关性表生成媒体节目元组(a、b和c)。在一个实施例中,可以以多种方式生成媒体节目元组。例如,在单个子相关性表中对于媒体节目a的最相关项在元组中被使用。相关性聚合处理器202还可以通过从来自所有相关性表的对于媒体节目a的前两个最相关项中选择媒体节目b和媒体节目c来选择媒体节目元组。虽然描述了最相关项,但是可以选择与媒体节目a相差某百分比或相差阈值范围内的媒体节目。例如,媒体节目b和媒体节目d也可以被选择为用于媒体节目a的媒体节目元组。相关性聚合处理器202可以基于分析来自一个或多个子相关性表的值来选择元组。可以从单个表或两个表生成单个元组。但是,不同的相关性表可以被用来生成不同的元组。在304处,相关性聚合处理器202接收来自元组的结果。例如,前端设备可以输出元组并且用户响应被接收。在306处,相关性聚合处理器202选择要组合的子相关性表。例如,并非所有子相关性表可以被组合成单个相关性表。在一个实施例中,仅一些相关性表可能与用户相关。在308处,相关性聚合处理器202确定用于子相关性表的组合方法。例如,相关性聚合处理器202可以分析子相关性表并且确定哪种组合方法将更好。分析可以使用标记结果来确定哪些组合将产生更好的结果。在一个实施例中,可能的组合可以是线性组合或非线性组合。在310处,相关性聚合处理器202生成单个相关性表。标记结果被用来对子相关性表的重要性加权。例如,一些标记结果可以指示一些相关性表比其它相关性表更重要。例如,如果标记结果与某一子相关性表中的值更紧密地对应,那么该子相关性表可以被认为更重要。标记结果可能不覆盖子相关性表中的所有数据,但是相关性聚合处理器202可以使用下面描述的过程来计算重要性。给定需要被分析的大量数据,人类用户无法处理这种数据来算出相关性表的重要性。此外,由于提供推荐的实时性以及使用视频交付服务的用户的数量,需要相关性表处理器108以便为每个具体用户生成单个相关性表。在一个实施例中,相关性聚合处理器202可以使用以下函数:其中(k,i,j)是示出对于源媒体节目k,用户更喜欢媒体节目i而不是媒体节目j的标记结果;xk,i是包含在所有子相关性表中从媒体节目k到媒体节目i的相关性值的向量;α是缩放参数,p是标记结果的集合,f()是关于单个相关性表的评分函数,xk,j类似地是包含在所有子相关性表中从媒体节目k到媒体节目j的相关性值的向量。相关性聚合处理器202最小化目标l并且得到最优函数f()。该函数通过比较由这个相关性表产生的结果与来自用户的标记结果来测量相关性表的正确性。相关性聚合处理器202可以使用线性组合或非线性组合来对函数f(x)进行建模。该组合尝试为每个子相关性表算出权重。这些权重不是固定的,而是基于标记结果和/或相关性表中找到的值而生成的。在一个实施例中,相关性聚合处理器202使用线性组合来生成单个相关性表。在这种情况下,函数f()可以被建模为:f(x)=wtx,其中w是(自适应)权重向量,并且x是包含两个媒体节目之间的所有相关性值的向量。x可以是向量,并且它的维度中的每个维度包含针对某对媒体节目的来自子相关性表的值。如下所示,最优的w可以由优化过程生成,诸如由随机梯度下降生成。首先,相关性聚合处理器202枚举标记结果。例如,相关性聚合处理器202为每个标记的元组计算梯度,然后聚合所有梯度,以更新模型的权重向量,如下所示。对于每个标记结果(k,i,j),相关性聚合处理器202计算损失函数相对于权重向量的梯度。这可以使用下式来计算:这个公式计算目标函数l相对于权重向量的梯度。梯度是与权重向量具有相同维度的向量,并且梯度表示目标函数l的最大权重增加的方向。然后,相关性聚合处理器202使用下式更新权重向量:权重向量wt是第t次迭代中的权重向量,而wt+1是第t+1次迭代中的权重向量,并且λ是学习率。这个公式通过从前一次迭代中的权重向量wt减去加权的梯度来更新前一次迭代中的权重向量wt。重复上面的过程,直到权重向量收敛或总损失低于阈值为止。当这种情况发生时,子相关性表已被组合成单个相关性表。相关性表的组合依赖于标记结果,标记结果被用来确定子相关性表中的哪些值更重要并且被给予更多的权重。例如,给定对标记结果的分析,表可以被给予更多的权重或更少的权重。例如,如果存在两个表a和b,并且表a给出:从节目a到节目b的相关性是0.8,从节目a到节目c的相关性是0.3;表b给出:从节目a到节目b的相关性是0.6,从节目a到节目c的相关性是0.9。在没有其它信息的情况下,表a和表b可以用相等的权重(例如,0.5相对于0.5)被组合,并且从节目a到节目b的相关性是0.8×0.5+0.6×0.5=0.7,从节目a到节目c的相关性是0.3×0.5+0.9×0.5=0.6。如果标记的结果指示:在节目b与节目c之间,节目c与节目a更相关,那么相关性聚合处理器202将这个信息与表a和表b中的相关性值进行比较。由于表a声称节目b更相关,而表b声称节目c更相关,因此表b应当被指派比表a更大的权重。例如,相关性聚合处理器202将表b的权重从0.5增加到0.6,并且将表a的权重从0.5降低到0.4。要指出的是,在一个实施例中,相关性聚合处理器202增加表的权重,而不仅仅是用于节目的某些值。由于表的尺寸,相关性聚合处理器202需要可以自动进行调整的过程。特定实施例可以使用非线性的或加性的组合。在这种情况下,函数f()可以使用回归过程(诸如推进回归树)来建模,如下所示:其中ft(x)是第t次迭代中的评分函数,而f(x)是最终评分函数,并且βk是fk(x)的权重。在一个示例中,ft(x)是一级树(即,ft(x)将来自特定相关性表的值映射为两个值,诸如0和1),并且βk是对应的乘数。这个公式将函数f(x)建模为子相关性表的相加。函数f()被初始化。然后,梯度推进方法被用来得到次优的f()。首先,相关性聚合处理器202计算用于每个项的伪残差,如下所示:在这个等式中,rit是测量关于每个项的预测误差的伪残差。然后,相关性聚合处理器202将子模型ft(x)拟合到伪残差其中rit是伪残差并且xi是包含两个节目之间的所有相关性值的向量,并且n是训练集的大小。在t=1情况下的是标记结果。在t>1情况下的包含在步骤t之前获得的原始标记结果和子模型的信息。拟合是进行回归任务,以拟合标记结果和子相关性表。然后,相关性聚合处理器202使用下式来计算乘数:其中βk是fk(x)的权重,f是最终评分函数,ft-1是第(t-1)次迭代的评分函数,而ft是第t次迭代中的子模型。相关性聚合处理器202然后使用下式来更新模型:ft(x)=ft-1(x)+βtft(x).这个模型通过将加权的子模型添加到当前评分函数来更新模型。权重在上面针对βt被计算。重复上面的过程,直到总损失低于阈值为止。子相关性表在ft(x)函数中被编码。相关性聚合处理器202然后逐个选择子相关性表。在每个步骤中,相关性聚合处理器202选择关于标记结果具有最低损失的子相关性表与所选择的子相关性表进行组合(ft(x)=ft-1(x)+βtft(x)x))。平局(tie)标签元组可以由不同的用户多次判断,并且判断可能不总是一致的。这可以意味着标记结果可以不一致并且可以发生平局。相关性聚合处理器202可以考虑数据中的平局,诸如可以被认为与源节目同等地相关的一对目的地节目。即,媒体节目b和媒体节目c可以被认为与媒体节目a完全相关。为了解决这些平局,相关性聚合处理器202可以明确地定义平局。如果某一对(xi,xj)被多次标记,并且n个人认为媒体节目xi更相关,n个人认为媒体节目xj更相关,那么当且仅当以下条件成立时,相关性聚合处理器202将(xi,yj)定义为平局:且其中γ是预定义的参数,并且这些不等式意味着当且仅当上述为真时一对节目才是平局。换句话说,几乎相同数量的人认为媒体节目xi更相关以及xj更相关。对于每个平局,相关性聚合处理器202如下更新对应的对:其中θ>0。在这种情况下,α是缩放参数,xi是包含两个媒体节目之间的所有相关性值的向量,θ是正参数,并且f是评分函数。这个公式表示平局的损失函数。例如,当发生平局时,它将在线性或非线性组合中引发附加的损失。平局函数是在平局(xi,xj)上定义的损失函数。如果媒体节目xi和xj的得分彼此接近,那么函数值将是小的。在其它示例中,相关性聚合处理器202可以忽略平局。经调整的相关性表的生成图4描绘了根据一个实施例的用于调整单个相关性表的方法的简化流程图400。可以基于一些反馈信息来调整单个相关性表。例如,原始的单个相关性表是使用用户的标记结果结合子相关性表来生成的。对相关性表的调整使用来自使用视频交付服务的用户的反馈。相关性调整处理器204使用来自用户的反馈来调整单个相关性表。在402处,视频交付系统102向用户提供请求的视频。然后,在404处,视频交付系统102提供通过使用单个相关性表而生成的推荐。当用户观看视频时,提供推荐。用户可以选择推荐或者基于推荐来提供输入。在一个实施例中,推荐包括陈述“您可能喜欢x媒体节目”的托盘。如果用户点击该按钮,那么这可以是对该推荐的正面增强。在406处,推荐系统106记录来自推荐的反馈。例如,用户可以选择或可以不选择用于推荐的按钮。然后,在408处,相关性调整处理器204调整单个相关性表。一般而言,相关性调整处理器204对与媒体节目相关的若干性质(诸如重要性、与另一个媒体节目的组合的相关性、与另一个媒体节目的经调整的相关性、以及观察到的用户选择)进行建模。然后,相关性调整处理器204将这些性质一起建模并且推断经调整的相关性。图5示出了根据一个实施例的经调整的相关性表生成的示例。在图5中,变量a,i,j表示媒体节目i与媒体节目j之间的原始相关性。变量ri,j表示媒体节目i与媒体节目j之间的隐藏的经调整的相关性。变量tj是媒体节目j的重要性(例如,当前的流行性)。变量c,i,j是当媒体节目i是源项并且媒体节目j是目的地项时观察到的用户点击数。图5中示出的条件分布可以如下所示被建模为高斯分布:r|a~n(a,σr)c|t,r~n(wtt+wrr,σc),其中ri,j是未知的并且被学习。媒体节目j的观察到的点击总数是tj。相关性调整处理器204可以使用期望最大化(em)算法来推断隐藏的变量r和参数:(σr,σc,wt,wr)))例如,给定前一次迭代的参数和观察到的数据,相关性调整处理器204基于后验分布来对变量r采样若干次。给定变量r的样本数据,相关性调整处理器204相对于参数将观察到的数据的后验最大化,并且更新参数以用于下一次迭代。相关性调整处理器204重复上面的过程,直到参数稳定为止。在所有迭代都完成之后,相关性调整处理器204生成用于参数的值,并且隐藏的相关性以最大后验方式被得到。在这种情况下,ri,j是高斯分布。这意味着原始相关性是ai,j并且它的方差是σr。c,i,j是高斯分布,并且它的含义是经调整的相关性ri,j与重要性tj的线性组合,并且它的方差是σc。在上面的步骤中,相关性调整处理器204应用em算法作为迭代算法。在每次迭代中,相关性调整处理器204首先通过使用在上一次迭代中获得的模型参数来推断经调整的相关性的分布(em算法中的e步骤)。然后,相关性调整处理器204通过使用该分布来选择模型参数(em算法中的m步骤)。观察到的点击数、节目的流行性以及节目的原始相关性是已知的。这些量以及(相关性调整处理器204想要获得的)节目的真正相关性通过以下相关:点击数受节目的真正相关性和节目的流行性影响,真正的相关性与原始相关性有关。给定这些关系,如果观察到的点击数大,那么节目的真正相关性应当大于原始相关性;如果节目的流行性高,那么节目的真正相关性应当被降低。图6示出了根据一个实施例的组合子相关性表的示例。三个媒体节目(mp)#1、#2和#3在表中被建模。每个行和列与媒体节目相关联。单元格处行和列的交叉点捕获媒体节目之间的相关性值。在602-1处,示出第一子相关性表a,并且在602-2处示出第二子相关性表b。在表a中,在604-1处,具有值0.4的条目在第二行第一列,并且意味着从媒体节目#2到媒体节目#1的相关性是0.4。列中的其它值也类似地流动(flow)。例如,在604-2处,这个条目在第三行第一列并且意味着从媒体节目#3到媒体节目#1的相关性是0.4。对于针对相同节目的子相关性表b也是如此,但是子相关性表b针对不同的特征。例如,子相关性表a可以基于观看行为并且子相关性表b可以基于搜索行为。在表602-2中,在605-1处,具有值0.2的条目在第二行第一列并且意味着针对搜索行为从媒体节目#2到媒体节目#1的相关性是0.2。此外,在605-2处,这个条目在第三行第一列并且意味着针对搜索行为从媒体节目#3到媒体节目#1的相关性是0.8。相关性表处理器108将两个子相关性表组合成一个相关性表,以捕获两个特征的影响。虽然没有示出,但是标记结果可以指示用于子相关性表602-2的值比来自子相关性表602-1的值更重要。在606处,相关性表处理器108已经生成单个相关性表。在这种情况下,用于子相关性表a和子相关性表b的值已经被组合。相关性聚合处理器202可以基于上面的方法(诸如使用用户标记结果以及还使用用户反馈)来组合值。相关性表处理器108使用这种数据来自动组合子相关性表。在单个相关性表中,每个子相关性表的重要性不是预定义的,而是由外部数据确定的。此外,由于组合是算法性的,因此可以使用更复杂的组合方法来代替将相关性表加到一起。例如,在608-1处,用于节目#2到节目#1的组合的相关性是0.25。这个结果不同于将两个表加在一起并且除以2(相等的权重)。然而,有可能子相关性表b已经被给予对于相似性的更多的重要性。此外,在608-2处,组合的值是0.75。在这种情况下,子相关性表b可能已经被给予比用于子相关性表a的值稍微多的重要性。这是因为0.75高于值0.6和0.8的平均值。系统概述本文公开的特征和方面可以结合视频流传输系统700来实现,视频流传输系统700经由一个或多个通信网络与多个客户端设备通信,如图7中所示。描述视频流传输系统700的方面仅仅是为了提供根据本公开准备的用于实现内容分发和交付的应用的示例。应当理解的是,本技术不限于流传输视频应用,并且可以适用于其它应用和交付机制。在一个实施例中,媒体节目提供者可以包括媒体节目库。例如,媒体节目可以通过站点(例如,网站)、应用或浏览器被聚合和提供。用户可以访问媒体节目提供者的站点或应用,并且请求媒体节目。用户可以被限制为仅请求由媒体节目提供者提供的媒体节目。在系统700中,可以从一个或多个源(例如,从视频源710)获得视频数据,以用作到视频内容服务器702的输入。输入的视频数据可以包括以任何合适的数字格式的原始的或经编辑的基于帧的视频数据,所述数字格式例如运动图像专家组(mpeg)-1、mpeg-2、mpeg-4、vc-1、h.274/高级视频编码(avc)、高效率视频编码(hevc)、或其它格式。在一种替代方案中,视频可以以非数字格式被提供并且使用扫描仪和/或转码器被转换成数字格式。输入的视频数据可以包括各种类型的视频剪辑或节目,例如,作为消费者感兴趣的主要内容而制作的电视剧集、影片和其它内容。视频数据还可以包括音频或者仅音频可以被使用。视频流传输系统700可以包括分布在一个或多个计算机上的一个或多个计算机服务器或模块702、704和/或707。每个服务器702、704、707可以包括一个或多个数据存储库709或者可以可操作地耦接到一个或多个数据存储库709,例如数据库、索引、文件或其它数据结构。视频内容服务器702可以访问各种视频片段的数据存储库(未示出)。视频内容服务器702可以如由与客户端设备通信的用户接口控制器指示的那样提供视频片段。如本文所使用的,视频片段是指基于帧的视频数据的确切的部分,诸如可以在流传输视频会话中被使用以查看电视剧集、影片、记录的现场表演或其它视频内容。在一些实施例中,视频广告服务器704可以访问相对短的视频(例如,10秒、30秒或70秒视频广告)的数据存储库,该视频存储库被配置为针对特定广告商或消息进行广告。广告可以为广告商提供,以交换某种形式的付款,或者广告可以包括用于系统700的宣传消息、公共服务消息或某些其它信息。视频广告服务器704可以如由用户接口控制器(未示出)指示的那样提供视频广告片段。视频流传输系统700还可以包括相关性表处理器108。视频流传输系统700还可以包括将视频内容和视频广告集成到流传输视频片段中的集成和流传输组件707。例如,流传输组件707可以是内容服务器或流传输媒体服务器。控制器(未示出)可以基于任何合适的算法或过程来确定流传输视频中的广告的选择或配置。视频流传输系统700可以包括图7中未绘出的其它模块或单元,例如监管服务器、商业服务器、网络基础设施、广告选择引擎,等等。视频流传输系统700可以连接到数据通信网络712。数据通信网络712可以包括局域网(lan)、广域网(wan)(例如,互联网)、电话网、无线蜂窝电信网络(wcs)714、或者这些网络或类似网络的某些组合。一个或多个客户端设备720可以经由数据通信网络712和/或其它网络714与视频流传输系统700通信。这样的客户端设备可以包括例如一个或多个膝上型计算机720-1、桌上型计算机720-2、“智能”移动电话720-3、平板设备720-4、启用网络的电视720-5、或它们的组合,经由用于lan的路由器718、经由用于无线电话网络714的基站717、或经由某些其它连接。在操作中,响应于从用户输入设备接收的用户输入或其它输入,这样的客户端设备720可以向系统700发送和接收数据或指令。作为响应,系统700可以响应于对媒体节目的选择而向客户端设备720提供来自数据存储库709的视频片段和元数据。客户端设备720可以使用显示屏幕、投影仪或其它视频输出设备在媒体播放器中输出来自流传输视频片段的视频内容,以及接收用于与视频内容交互的用户输入。音频-视频数据的分发可以使用各种方法(例如,流传输)经计算机网络、电信网络以及这样的网络的组合从流传输组件707到远程客户端设备实现。在流传输中,内容服务器将音频-视频数据连续地流传输到至少部分地在客户端设备上操作的媒体播放器组件,该媒体播放器组件可以与接收来自服务器的流传输数据并发地播放音频-视频数据。虽然讨论了流传输,但是可以使用其它交付方法。媒体播放器组件可以在从内容提供者接收到数据的初始部分之后立即发起视频数据的播放。传统的流传输技术使用单个提供者向终端用户的集合交付数据流。向大量观众交付单个流可能需要高的带宽和处理能力,并且当终端用户的数量增加时,提供者所需要的带宽可能增加。流传输媒体可以按需或实时交付。流传输实现在文件内的任何点处的立即回放。终端用户可以跳过媒体文件,以开始回放或将回放改变到媒体文件中的任何点。因此,终端用户不需要等待文件被逐步下载。通常,流传输媒体是经由专用设备从具有高带宽能力的若干专用服务器交付的,该专用设备接收对视频文件的请求并且利用关于格式、带宽和这些文件的结构的信息以播放视频所需的速率来仅交付播放该视频必需的数据量。流传输媒体服务器还可以考虑目的地客户端上的媒体播放器的传输带宽和能力。流传输组件707可以使用控制消息和数据消息与客户端设备720通信,以在视频被播放时适应改变的网络条件。这些控制消息可以包括用于实现诸如在客户端处快进、快退、暂停或查找文件的特定部分之类的控制功能的命令。由于流传输组件707仅根据需要并且以所需的速率传输视频数据,因此可以维持对提供的流的数量的精确控制。观看者将无法通过较低数据速率的传输介质来查看高数据速率的视频。然而,流传输媒体服务器(1)提供对视频文件的用户随机存取,(2)允许监视谁在看什么视频节目以及视频节目被观看多长时间,(3)更高效地使用传输带宽,因为仅发送支持观看体验所需的数据量,以及(4)视频文件不被存储在观看者的计算机中,而是由媒体播放器丢弃,从而允许对内容的更多控制。流传输组件707可以使用基于tcp的协议,诸如http和实时消息传送协议(rtmp)。流传输组件707还可以交付实时网络直播并且可以多播,这允许多于一个客户端调到单个流,从而节省带宽。流传输媒体播放器可以不依赖于缓冲整个视频来提供对媒体节目中的任何点的随机访问。相反,这是通过使用从媒体播放器发送到流传输媒体服务器的控制消息来实现的。另一个用于流传输的协议是超文本传输协议(http)实时流传输(hls)或通过http的动态自适应流传输(dash)。hls或dash协议经由通常从一个或多个内容交付网络(cdn)以各种比特率可用的小片段的播放列表通过http来交付视频。这允许媒体播放器以逐个片段为基础来切换比特率和内容源。切换有助于补偿网络带宽差异以及还补偿在视频回放期间可能发生的基础设施故障。通过流传输交付视频内容可以在各种模型下完成。在一种模型中,用户为观看视频节目而付费,例如,使用费用来访问媒体节目库或受限媒体节目的一部分,或者使用按次付费(pay-per-view)服务。在广播电视诞生之后不久被广泛采用的另一种模型中,赞助商为媒体节目的呈现付费,以交换在节目呈现期间或邻近节目呈现时展示广告的权利。在一些模型中,广告插在视频节目中的预定时间处,这些时间可以被称为“广告位”或“广告间歇”。对于流传输视频,媒体播放器可以被配置为使得客户端设备不能在还没有在指定的广告位期间播放预定广告的情况下播放视频。参考图8,示出了用于查看视频内容和广告的装置800的示意图。在所选择的实施例中,装置800可以包括可操作地耦接到处理器存储器804的处理器(cpu)802,处理器存储器804保持用于由处理器802执行的二进制编码的功能模块。这些功能模块可以包括用于处理系统功能(诸如输入/输出和存储器访问)的操作系统806、显示网页的浏览器808、以及用于播放视频的媒体播放器810。这些模块还可以包括用于提供来自相关性表处理器108的推荐的模块。存储器804可以保持在图8中未示出的附加模块,例如用于执行本文在其它地方描述的其它操作的模块。总线814或其它通信组件可以支持装置800内的信息传送。处理器802可以是被配置为通过执行定义根据本文所公开的特征和方面的特定任务的机器可读软件代码来执行这些特定任务的专门的或专用的微处理器。处理器存储器804(例如,随机存取存储器(ram)或其它动态存储设备)可以被连接到总线814或直接连接到处理器802,并且存储要由处理器802执行的信息和指令。存储器804还可以在这些指令的执行期间存储临时变量或其它中间信息。存储设备824中的计算机可读介质可以被连接到总线814并且存储用于处理器802的静态信息和指令;例如,存储设备(crm)824可以在装置800断电时存储模块806、808、810和812,当装置800通电时这些模块可以从存储设备824被加载到处理器存储器804中。存储设备824可以包括保持信息、指令或它们的某些组合(例如,当由处理器802执行时使得装置800被配置为执行本文所描述的方法的一个或多个操作的指令)的非暂态计算机可读存储介质。通信接口816还可以被连接到总线814。通信接口816可以可选地经由路由器/调制解调器826以及有线或无线连接提供或支持装置800与一个或多个外部设备(例如,流传输系统700)之间的双向数据通信。在替代方案中,或附加地,装置800可以包括连接到天线829的收发器818,装置800可以通过收发器818与用于无线通信系统的基站或者与路由器/调制解调器826进行无线通信。在替代方案中,装置800可以经由局域网、虚拟专用网或其它网络与视频流传输系统700通信。在另一种替代方案中,装置800可以作为系统700的模块或组件被结合,并且经由总线814或通过某些其它方式与其它组件通信。装置800可以(例如,经由总线814和图形处理单元820)被连接到显示单元828。显示器828可以包括用于向装置800的操作者显示信息的任何合适的配置。例如,显示器828可以包括或利用液晶显示器(lcd)、触摸屏lcd(例如,电容显示器)、发光二极管(led)显示器、投影仪或其它显示设备,以在可视的显示器中将信息呈现给装置800的用户。一个或多个输入设备830(例如,字母数字键盘、麦克风、键板、远程控制器、游戏控制器、相机或相机阵列)可以经由用户输入端口822连接到总线814,以便向装置800传送信息和命令。在所选择的实施例中,输入设备830可以提供或支持对光标定位的控制。这种光标控制设备(也被称为定点设备)可以被配置为用于接收或跟踪物理移动并且将移动转换为指示光标移动的电信号的鼠标、轨迹球、轨迹板、触摸屏、光标方向键或其它设备。光标控制设备可以(例如使用触敏屏幕)被结合到显示单元828中。光标控制设备可以向处理器802传送方向信息和命令选择,以及控制显示器828上的光标移动。光标控制设备可以具有两个或更多个自由度,例如从而允许设备在平面或三维空间中指定光标位置。特定实施例可以在用于由指令执行系统、装置、系统或机器使用或者与指令执行系统、装置、系统或机器结合使用的非暂态计算机可读存储介质中实现。计算机可读存储介质包含用于控制计算机系统来执行由特定实施例描述的方法的指令。计算机系统可以包括一个或多个计算设备。指令当由一个或多个计算机处理器执行时可以被配置为执行特定实施例中描述的内容。如在本文的描述中以及随后的权利要求中所使用的,“一”、“一个”和“该”包括复数引用,除非上下文另有清楚指示。此外,如在本文的描述中以及随后的权利要求中所使用的,“在...中”的含义包括“在...中”和“在...上”,除非上下文另有清楚指示。以上描述示出了各种实施例,连同特定实施例的方面可以如何被实现的示例。上面的示例和实施例不应当被认为是仅有的实施例,并且上面的示例和实施例被给出是为了说明由以下权利要求定义的特定实施例的灵活性和优点。基于上面的公开内容和以下权利要求,可以采用其它布置、实施例、实施方式和等价物,而不背离权利要求定义的它们的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1