《基于相似性数据的播放列表产生系统和方法.pdf》由会员分享,可在线阅读,更多相关《基于相似性数据的播放列表产生系统和方法.pdf(54页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104102729A43申请公布日20141015CN104102729A21申请号201410355628322申请日2009090161/095,28920080908US12/242,73520080930US12/242,72820080930US12/242,75820080930US12/242,76820080930US200980141185520090901G06F17/3020060171申请人苹果公司地址美国加利福尼亚72发明人P盖茨RF瓦格纳J韦纳A瓦蒂基J弗劳尔斯SA戴维斯JS米勒DJ杜波斯74专利代理机构中国国际贸易促进委员会专利商标事务所1103。
2、8代理人鲍进54发明名称基于相似性数据的播放列表产生系统和方法57摘要本发明公开涉及基于相似性数据的播放列表产生系统和方法。公开了用于至少部分地基于由若干程序参与者提供的媒体库库存信息,便于实现程序参与者的媒体播放列表产生的方法和设备。个人参与的系统或程序是在线媒体商店。决定成为程序参与者的这些个人对至少部分地基于从程序的其它参与者群体得出的数据组织、维护和播放其音乐感兴趣,这些其它参与者在其库中具有相似或相同的音乐。为了成为程序参与者,个人音乐持有者必须发送,并且在线音乐商店接收,表示程序参与者的媒体库存的数据。该数据通常包含当前包含在参与者媒体库内的媒体项目个体的标识数据,而不考虑媒体项目。
3、个体的来源。系统或程序确定媒体项目个体对在不同程序参与者的媒体库内共同出现的发生率。基于该确定,基于所确定的不同程序参与者的媒体库内共同出现的发生率,在媒体项目个体对之间分配相似性评估。30优先权数据62分案原申请数据51INTCL权利要求书1页说明书22页附图30页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书22页附图30页10申请公布号CN104102729ACN104102729A1/1页21一种用于向程序参与者进行媒体项目的购买推荐的计算机实现的方法,所述方法包括由程序参与者客户端设备发送包含在所述程序参与者的媒体库中的指定媒体项目的标识数据;和由程序参与者客户。
4、端设备接收被程序主机服务器评估为类似于所述指定媒体项目的推荐购买媒体项目的标识数据,其中所述程序主机服务器基于所述推荐购买媒体项目与所述指定媒体项目在其它程序参与者的媒体库中共同出现的频率,将所述推荐购买媒体项目评估为类似于所述指定媒体项目。权利要求书CN104102729A1/22页3基于相似性数据的播放列表产生系统和方法0001本申请是申请日为2011年4月18日、申请号为2009801411855、发明名称为“基于相似性数据的播放列表产生系统和方法”的发明专利申请的分案申请。0002与相关申请的交叉参考0003本申请要求全部于2008年9月30日提交的序列号为NO12/242,728、N。
5、O12/242,735、NO12/242,758和NO12/242,768的美国专利申请的优先权,并且要求于2008年9月8日提交的题为“SYSTEMANDMETHODFORPLAYLISTGENERATIONBASEDONSIMILARITYDATA”的美国临时专利申请NO61/095,289的权益;通过引用将它们全部明确地全文结合在此。技术领域0004本公开涉及媒体相似性数据,并且更具体地,涉及基于媒体相似性数据产生媒体播放列表。背景技术0005定义诸如消费产品的物品之间的关系早就被认为是有价值的任务。最早的例子是商标,商标给消费者提供了这样的期望基础即,制作消费者已经拥有的某一种产品的同。
6、一公司的另一种产品将达到类似标准。当前,相似性关系已经发展为远远超出简单的品牌名称。某些商店使用相似性数据以便建议用户购买或至少考虑新的项目。这些商店跟踪用户数据,以便确定用户倾向于在相同的购物会话内观看哪些产品或相同用户通常购买哪些产品。出于这个目的使用相似性数据的系统识别每个文件内的特征,并且将那些文件识别为是相似的。0006产生相似性数据的这些方法中的每个方法在产生最可能的相似性数据或最大可能地使用这种数据方面存在不足。产生相似性数据的已有方法的一种不足是常规的相似性数据仅仅基于新的购买决策。商店不关心用户已经拥有了什么,即使该信息可能是用户将来想要什么的最可靠的指示符。0007随着数字。
7、音频播放器的到来,人们正在积累大量的数字媒体库。在许多情况下,个体媒体库包括从诸如CD、SACD和DVDA之类的物理媒体添加的歌曲。随着ITUNES商店和其它在线媒体提供商的引入,更多的人加入了数字媒体的在线购买,从2003年4月到2008年6月超过50亿歌曲的销售就证明了这一点。在数字音频播放器已经允许人们在几乎任何地方欣赏其媒体的同时,越来越难以有效地管理不断增长的媒体库。以音乐为例,播放列表是有效管理和过滤某些歌曲的一种方法。各种数字媒体播放器允许通过选择用于顺序回放的歌曲组来创建播放列表。0008手工形成播放列表通常涉及搜索长的媒体列表以便找到适当的歌曲、选择所希望的歌曲以及希望忽略不。
8、希望的歌曲的烦琐处理过程。0009还可以基于公共音乐轨迹属性,诸如流派、歌手、和专集等,自动产生音乐播放列表。这些自动产生的播放列表,虽然能被简单和快速地创建,但是不精细地描绘了播放列说明书CN104102729A2/22页4表。这种播放列表通常包括过多和/或不足。另外,这些自动方法假设所有相关轨迹属性可以获得,并且对于每段媒体都是精确的。产生自动播放列表的一种方法被称为“智能”播放列表。智能播放列表允许用户指定搜索准则,将匹配搜索准则的歌曲添加到播放列表,并且当歌曲满足或不满足该准则时自动更新播放列表。智能播放列表是管理媒体库的强有力的工具。然而,即使是智能播放列表也受到用户对音乐的熟悉程度。
9、、库和制作有效的智能播放列表查询的能力的限制。用户可能不熟悉一种音乐风格。这种不熟悉性可能导致排除相关歌手或歌曲。用户的库可能不完整,从而导致完全的智能播放列表中的空缺。用户可能不能足够宽地制作智能播放列表查询以便包括所有所希望的歌曲。验证智能播放列表包括所有预期歌曲通常可比最初手工产生播放列表更烦琐。0010常规媒体播放列表产生的每种方法的主要缺点是确定哪些媒体项目彼此相似。当手工制作播放列表时,用户负责抽取一个媒体项目和另一个媒体项目之间的相似性。自动播放列表产生器依赖建立播放列表的准则,但是这些准则通常太宽泛。同一作者、歌手或甚至同一类型或流派的媒体通常没有相似到足以产生所希望的播放列表。
10、的程度。智能播放列表试图基于媒体的更详细的特征来解决这些问题中的多个问题,但是它们不考虑人的喜好,而人的喜好是不容易定义的。0011随着媒体库的增长以及数字媒体播放器可以获得不断增加的容量,播放列表的这些问题可能被加剧。另外,由于用户不可能记住每个文件的内容和特性,所以较大的媒体库对给相似项目分组的系统产生了更大要求。因此,本领域需要一种产生媒体文件之间的相似性数据并且使用这种数据创建和管理播放列表的改进方法。发明内容0012在下面的描述中阐述了此处公开的概念的附加特征和优点,并且根据该描述可以部分地明白或通过实践所描述的技术可以了解这些特征和优点。可以借助所附权利要求内特别指出的手段和组合来。
11、实现和获得这些概念的特征和优点。将从下面的描述和所附权利要求中更全面地理解所述技术的这些和其它特征,或通过实践此处阐述的所公开的概念可以了解这些和其它特征。0013本公开描述了至少部分地基于由若干程序参与者提供的媒体库库存INVENTORY信息,便于程序参与者实现媒体播放列表产生的方法和装置。在这个上下文中,个人正在参与的示例性程序或系统是在线媒体商店,诸如销售音乐轨迹下载以收费的那些在线媒体商店。决定成为程序参与者的这些个人对至少部分地基于从程序的其它参与者群体得出的数据组织、维护和播放其音乐感兴趣,该其它参与者在其库中具有相似或相同的音乐。为了成为程序参与者,单个音乐持有者必须发送表示该程。
12、序参与者的媒体库存的数据,并且在线音乐商店接收该数据。该数据通常包含,常常尤其是,当前包含在该参与者的媒体库内的媒体项目个体歌曲的标识数据,而不考虑媒体项目个体的来源。也就是,项目可以是购买的、从CD添加的、或以其它方式获得且包括在收听者的库或音乐库存内的。根据该信息,系统或程序确定媒体项目个体对在不同程序参与者的媒体库内共同出现的发生率INCIDENCE。在此,这意味着对于若干用户所标识的各对音乐项目,该对存在于不同参与者的多少库内将被注意到计数。基于该确定,基于所确定的在不同程序参与者的媒体库内共同出现的发生率,在媒体项目个体歌曲对之间分配相似性评估。也就是,如果确定说明书CN104102。
13、729A3/22页5计算特定媒体项目歌曲对存在于在程序中表示的许多库中的10个库内,可以给该对的相似性评估分配某一值。0014为了有意义,在包含在多个程序参与者的媒体库内的媒体项目个体的至少大部分之间汇编对相似性评估的分析和分配;也就是,系统的总库存。0015然后系统或程序可以汇编单个参与者的相似性评估,该单个参与者限于包含在他或她的媒体库内的项目。然后可以使用该信息,诸如在诸如常常被称为MP3播放器的设备之类的个人数字音乐播放设备上,整理ORDER作为最终用户的那个人的媒体的播放列表。以这种方式,可以基于从大量程序参与者得到的相似性数据产生各个播放列表。0016在不同但是相关的方面,本公开还。
14、描述了从客户设备角度出发采取的方法和装置,该客户设备与在线商店协作以便于至少部分地基于由若干程序参与者提供的媒体库库存信息来实现媒体播放列表产生。该实施例着重于方法、装置和计算机程序,其从程序参与者的客户设备通常向程序主机,该主机在此被示例性地描述为在线媒体商店的在线数据处理中心发送数据,该数据表示程序参与者的媒体库内的媒体库存并且包括当前包含在媒体库的库存内的媒体项目个体的标识数据,而不考虑媒体项目个体的来源。媒体项目来源的例子包括在线购买、从购买的CD添加的轨迹和来自其它来源的下载。0017在这个实施例中,程序参与者的客户设备接着接收媒体项目相似性评估,其中已经基于从多个两个或更多个程序参。
15、与者收集的累积数据而汇编了该媒体项目相似性评估,并且其中该累积数据包括包含在程序参与者的媒体库内的媒体项目个体的标识数据,而不考虑每个媒体项目个体的来源。就此而言,媒体项目之间的基于其来源的主要差异是与每个项目相关联的描述性的和标识元数据的数量和质量。0018如前所述,对接收到的相似性评估的汇编就已经包括处理累积数据,以便确定媒体项目个体对在不同程序参与者的媒体库内共同出现的发生率,以及基于所确定的在不同程序参与者的媒体库内共同出现的发生率,在媒体项目个体对之间分配相似性评估SIMILARITYRATING。如此处所述,如下面更详细描述的那样由程序主机的在线数据处理中心示例性地执行该处理和汇编。
16、。0019程序参与者的客户设备接收包含在参与者的媒体库内的多个媒体项目个体的相似性评估。据此产生媒体播放列表,该媒体播放列表包括包含在程序参与者的媒体库内并且具有相对于从参与者的媒体库内选择的种子媒体项目的相似性评估的媒体项目个体,通常由程序参与者选择该种子媒体项目。0020作为例子,可以通过操纵客户设备上的滚轮设备而呈现用于选择的种子媒体项目,以及随后通过激活选择按钮,在客户设备的显示器上选择种子媒体项目,来影响种子媒体项目的选择。0021在另一个例子中,可以通过使用扫动手指姿态来操纵程序参与者的客户设备上的触摸屏以便滚动显示在触摸屏上的媒体项目列表,直到显示所希望的种子媒体项目,以及随后通。
17、过触摸和释放种子媒体项目来选择种子媒体项目,来影响种子媒体项目的选择。0022可以在程序参与者的客户设备上产生媒体播放列表,该客户设备尤其是可以采取便携式个人媒体播放设备或个人计算机的形式。0023还构想了程序参与者可以传输表示程序参与者的媒体库内的当前媒体库存的更新数据,该更新数据包括从参与者最近的前一次数据上传以来添加到参与者的媒体库的附说明书CN104102729A4/22页6加媒体项目的标识数据。类似地,更新数据可以指示从最近的前一次数据上传以来,从参与者的媒体库中去除的媒体项目的缺失。更新数据还可以包括关于媒体项目的使用的信息,诸如但不限于,给予媒体项目的评估、播放计数和跳过计数。据。
18、此程序参与者接收考虑到这种更新数据而汇编的更新相似性评估。以这种方式,当前产生的播放列表可以包括新获得的媒体项目,并且不考虑最近已被删除的媒体项目。0024在其它相关方面中,本公开还描述了集成系统、方法和计算机程序,其包括与程序主机的在线数据处理中心协作以便产生至少部分地基于由若干程序参与者提供的媒体库库存信息的媒体播放列表的一个或多个客户设备。因此,数据被从程序参与者的客户设备传输到程序主机的在线数据处理中心。该数据表示客户设备上的媒体库内的媒体库存,并且包括当前包含在客户设备上的媒体库的库存内的媒体项目个体的标识数据。在程序主机的在线数据处理中心,还从多个程序参与者接收如下数据该数据表示每。
19、个相应程序参与者的媒体库存,并且包括当前包含在相应参与者的媒体库内的媒体项目个体的标识数据,而不考虑媒体项目个体的来源,如上所述。确定媒体项目个体对在不同程序参与者的媒体库中共同出现的发生率,并且基于所确定的在不同程序参与者的媒体库中共同出现的发生率,在媒体项目个体对之间分配相似性评估。从程序主机的在线数据处理中心向程序参与者的客户设备传输包含在客户设备上的媒体库的库存内的多个媒体项目个体的相似性评估。产生媒体播放列表,其包括包含在客户设备上的媒体库的库存内并且具有相对于从客户设备上的媒体项目的库存内选择的种子媒体项目的相似性评估的媒体项目个体。0025典型地,在程序主机的在线数据处理中心处确。
20、定不同程序参与者的媒体库内的媒体项目个体对共同出现的发生率,并且还在程序主机的在线数据处理中心处分配媒体项目个体对之间的相似性评估。0026单个程序参与者的相似性评估数据的汇编局限于包含在该程序参与者的媒体库内的媒体项目个体之间的相似性评估数据。以这种方式,数据集合局限于可被使用的数据集合;即,产生仅包括实际包含在程序参与者的库内的媒体项目的播放列表。0027作为在允许包含在不同参与者的媒体库内的大体相同的媒体项目之间的直接相关时的一种辅助手段,给包含在参与者的媒体库内的每个媒体项目个体分配源自程序的标识符。也就是,使用音乐轨迹作为例子,给美国的“HORSEWITHNONAME”的所有演播室版。
21、本实例分配可快速、有效处理的短的基于系统的ID。为了更进一步地便于相似性评估的计算,还可以给相似的媒体项目分配相同的标识符;例如,可以给美国歌唱的“HORSEWITHNONAME”的现场录音分配相同的基于系统的ID,以便在确定其与总数据库内的其它媒体项目的相似性时进行处理。0028另外,可以通过关联从第三方数据来源获得的附加数据,丰富与特定媒体项目相关联的信息。再次使用音乐作为例子,“流派”是常常与特定音乐项目相关联的特性。在从程序参与者接收到某个音乐标题的标识数据,但是该数据不包括流派类型的情况下,可以咨询具有这种相关信息的第三方,并且可以将第三方提供的该特定音乐项目的流派类型与其相关联,以。
22、便以后在播放列表产生处理中使用。0029应当理解,该整个程序或系统的独特方面发生在媒体提供商在线音乐商店的服务器、参与者的媒体播放设备上,以及常常发生在中间设备上,所述中间设备诸如是适于播放设备和在线商店的计算机系统之间的通信的用户的个人计算机。说明书CN104102729A5/22页7附图说明0030为了最好地描述实现上述实施例的方式,以及定义本公开的其它优点和特征,下面提供并且在附图中示出更具体的描述。应当理解,这些附图仅描绘了本发明的示例性实施例,因此不被认为是范围限制,通过使用附图,将以附加特性和细节描述和解释这些例子,其中0031图1示出了示例系统实施例;0032图2示出了示例方法实。
23、施例;0033图3示出了确定相关数据的方法;0034图4示出了样本购买矩阵;0035图5示出了主相似性表内的列;0036图6示出了单个相似性表;0037图7示出了示例系统实施例;0038图8示出了示例方法实施例;0039图9示出了示例系统实施例;0040图10示出了用于与数字媒体播放器同步媒体和相似性表的示例系统;0041图11示出了用于启动播放列表产生的示例软件界面;0042图12示出了示例方法实施例;0043图13示出了示例用户界面;0044图14示出了示例用户界面;0045图15示出了示例方法实施例;0046图16示出了推荐购买项目的示例方法实施例;0047图17示出了用于选择加入的示例。
24、用户界面;0048图18示出了示例用户界面;和0049图19示出了用于显示推荐数据的示例用户界面。具体实施方式0050下面详细讨论公开的方法和装置的各种实施例。虽然讨论了特定实施方式,但是应当理解,这样做仅是出于说明目的。相关领域技术人员将认识到可以使用其它组件、配置和步骤,而不脱离本公开的精神和范围。0051参考图1,示例性系统包括通用计算设备100,包括处理单元CPU120和系统总线110,系统总线110将包括系统存储器诸如,只读存储器ROM140和随机访问存储器RAM150的各种系统组件耦接到处理单元120。还可以使用其它系统存储器130。可以理解,该系统可以在具有多于一个CPU120的。
25、计算设备或联网在一起的一组计算设备或计算设备集群上操作,以便提供更大的处理能力。系统总线110可以为若干类型的总线结构中的任一种,所述总线结构包括存储器总线或存储器控制器、外设总线和使用各种总线体系结构中的任意一种的本地总线。存储在ROM140等内的基本输入/输出BIOS可以提供诸如在启动过程中帮助在计算设备100内的元件之间传送信息的基本例程。计算设备100还包括存储设备,诸如硬盘驱动器160、磁盘驱动器、光盘驱动器或磁带驱动器等。存储说明书CN104102729A6/22页8设备160由驱动接口连接到系统总线110。驱动器和相关联的计算机可读介质提供计算机可读指令、数据结构、程序模块和/或。
26、用于计算设备100的其它数据的非易失性存储。在一个方面,执行特定功能的硬件模块包括存储在有形计算机可读介质内的软件组件,其与必需的硬件组件,诸如CPU、总线、和显示器等相结合来执行该功能。这些基本组件是本领域技术人员已知的,并且根据设备类型,诸如设备是小型的、手持型计算设备、台式计算机还是大的计算机服务器,可以构想适当的变体。0052虽然此处描述的示例性环境采用硬盘,本领域技术人员应当理解,还可以在示例性操作环境中使用可以存储计算机可访问的数据的其它类型的计算机可读介质,诸如磁带盒MAGNETICCASSETTE、闪存卡、数字通用盘、盒式磁带CARTRIDGE、随机访问存储器RAM、只读存储器。
27、ROM、和包含比特流的缆线或无线信号等。0053为了能够与计算设备100进行用户交互,输入设备190表示任意数目的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏、键盘、鼠标、运动输入、和语音等。提出者可以使用输入来指示语音搜索查询的开始。设备输出170也可以是本领域技术人员已知的若干输出机构中的一种或多种。在某些情况下,多种方式的系统使得用户能够提供多种类型的输入以便与计算设备100通信。通信接口180总地支配并且管理用户输入和系统输出。对所公开的在任意特定的硬件装置上操作的方法和设备没有限制,并且因此,可以用开发出的改进的硬件或固件装置容易地取代这些基本特征。0054为了解释清楚。
28、,说明性系统实施例被呈现为包括各个功能块包括标记为“处理器”的功能块。可以使用共享或专用的硬件提供这些块代表的功能,所述硬件包括但不限于,能够执行软件的硬件。例如,可由单个共享处理器或多个处理器提供图1中给出的一个或多个处理器的功能术语“处理器”的使用不应被认为仅仅指的是能够执行软件的硬件。说明性实施例可以包括微处理器和/或数字信号处理器DSP硬件、用于存储执行下面讨论的操作的软件的只读存储器ROM和用于存储结果的随机访问存储器RAM。还可以提供超大规模集成VLSI硬件实施例,以及与通用DSP电路相结合的定制VLSI电路。0055各种实施例的逻辑操作被实现为1运行在通用计算机内的可编程电路上的。
29、一系列计算机实现的步骤、操作或过程,2运行在专用可编程电路上的一系列计算机实现的步骤、操作或过程;和/或3可编程电路内的互连的机器模块或程序引擎。0056上面描述的计算设备特别适用于产生和使用从大量样本用户得到的相似性数据。基于用于确定两个或更多个歌曲在多个用户的库中发生相关的发生率的数学分析,可以确定统计相似性。该相似性数据可用于各种有帮助的功能,尤其是包括产生高质量的播放列表、确定向用户推荐购买的建议产品、通过歌曲的新近选择使用户的媒体设备保持最新。在一个例子中,用户可以将关于他们的整个媒体数据库的内容的信息上传到用户的大量听众可访问的服务器。基于两个或更多个媒体项目在用户的全部听众的库中。
30、同时出现的频繁程度,媒体项目变为彼此相关并且被标注为相似。基于这种相似性,服务器可以基于对种子轨迹的选择创建播放列表以便包括一个或多个相似歌曲,或服务器可以推荐购买用户的库内没有的类似歌曲。下面将更详细地描述该系统的这些和其它特征。虽然参考在线音乐商店,诸如苹果公司的ITUNES商店,将描述所描述的技术和产品的许多特征,但是应当理解,该系统不需要任何媒体销售来执行该系统的优选实施例。另外,虽然某些描述可以仅涉及一种特定形式的媒体,但是此处描述的原理可被应用于任意媒体,诸如音频、视频、静态图片、说明书CN104102729A7/22页9文档和其它类型的数据文件。0057服务器0058上传0059。
31、图2示出了用于产生相似性数据的示例方法实施例。该方法包括由服务器接收与程序参与者的个体媒体库存相关的用户数据202。用户数据包括通常为元数据形式的关于用户的库内的媒体项目个体的标识信息。用户的库内的媒体项目的起源与该系统无关。即使音乐内容商店采用所描述的方法,由于服务器不基于来源区分文件信息,所有媒体项目被同等地对待,所以本实施例不需要用户的文件源自于音乐商店。该方法等同地适用于物理媒体,诸如,CD、DVD或HDDVD,以及物理媒体被代码转换为数字格式并且输入到用户媒体库中的情况。在优选实施例中,服务器不需要用户上传关于其库内的所有媒体项目的信息;服务器也接受仅关于有限数目的媒体项目的信息,或。
32、关于媒体项目的仅仅部分信息。0060识别用户数据0061该方法还包括将用户数据识别为特定媒体项目203。该步骤可通过若干方式中的任意一种完成,包括检查文件名、元数据或通过对文件的一部分进行详细分析。在音乐轨迹的例子中,服务器可以通过各种机制识别音乐轨迹。例如,给定轨迹,诸如具有大约8分钟长度的LEDZEPPLIN的STAIRWAYTOHEAVEN,可以具有与该文件相关联的各种数据,包括文件名或标识歌手、歌曲名、流派、轨迹长度、专集名、轨迹号等的元数据。这些数据中的一部分可能足以使服务器将该文件识别为专集LEDZEPPLINIV中的LEDZEPPLIN的STAIRWAYTOHEAVEN。可替换地。
33、,可以使用商业歌曲识别服务识别该文件。还可以通过对音乐轨迹的一部分采样,或通过识别来自购买商店的唯一标识符,或通过识别歌曲的数字指纹,来识别轨迹。例如,服务器或服务可以识别出歌曲购买自ITUNES商店,并且文件的元数据包含专用于ITUNES商店的唯一标识符。服务器可以通过该标识符识别媒体项目。应当理解,识别媒体项目的许多其它可能方法是公知的,并且所有这些方法包括在公开的方法和装置内。0062相关0063在步骤204,每个媒体项目与唯一标识符相关联,并且在步骤205被存储在表内。如果服务器以前从没遇到过该歌曲,服务器给该轨迹分配新的标识符。然而,对于大部分媒体项目,以前已经分配了标识符,并且媒体。
34、仅需要与该标识符相关联。继续STAIRWAYTOHEAVEN的例子,一旦媒体项目已被识别为该轨迹,服务器可以查看该轨迹的唯一标识数据。针对服务器接收到的每个媒体项目重复该处理。0064虽然服务器已经将标识符与大部分歌曲相关联,在某些情况下,媒体项目对于服务器是全新的,或至少被识别为如此。在这些情况下,服务器将发出新的标识符,并且将其分配给该媒体项目。例如,服务器可能不认识新的歌手或GARAGEBAND。然而,服务器将为该歌手的轨迹发出新的标识符,并且当服务器在不同用户的库内遇到相同轨迹时,它将给该轨迹分配与以前发出的标识符相同的标识符。0065在某些情况下,服务器可能不给对于服务器来说是新的媒。
35、体项目提供新的标识符。例如,媒体项目可能是一个用户库所独有的,并且因此由于不会有该项目的同时出现的发生率,所以提供标识符没有任何价值。因此,系统不需要给所有新项目提供唯一标识符。其后,如果其它用户也在其库内具有该媒体项目,则系统可以给该轨迹提供唯一标识符,并且提供该项目的相似性数据。说明书CN104102729A8/22页100066主购买矩阵0067在步骤205每个媒体项目被存储在主购买矩阵内。图4示出了主购买矩阵的图示。购买矩阵402是一个表,其包含相应于表内的每个唯一媒体项目的列404。在该表由音乐内容销售商,诸如ITUNES商店,托管的实施例中,购买矩阵还将包括可从ITUNES商店购买。
36、获得的所有媒体项目。主购买矩阵402的行与唯一用户标识号406相关联。该标识码以用户可能知道但是系统不知道的匿名标识码表示用户。因此,主购买矩阵包含程序服务器从每个参与用户接收到的每个文件的记录。0068由于购买矩阵容纳有所有程序参与者和每个程序参与者的库内的所有媒体,购买矩阵402可能大得惊人。例如,如果音乐商店具有近似225百万个用户以及多于5百万的歌曲。这种在线商店的购买矩阵是近似225百万行和5百万列,或11,250亿个单个单元格的表。ITUNES商店具有5千万注册用户,并且包含超过1千万歌曲。这种在线商店的购买矩阵是近似5千万行和1千万列,或5,000,000亿个单个单元格的表。00。
37、69对于用户库内的歌曲,标记矩阵内相应于该用户和该歌曲的单元格。可以用如同布尔那样简单的数据类型进行标记,1用于已购买408,而0用于未购买410。当必须存储比布尔数据类型所允许的更多的数据时,可以使用其它数据类型。虽然矩阵可能非常大,由于大部分用户在其库中具有相对少的歌曲与5百万相比,该矩阵被非常稀疏地填充。每个用户行可能仅包含少数表项,而每个歌曲列可能包含几十个、几百个、几千个、或对于更流行的歌曲甚至几百万个表项,但是购买矩阵的绝大多数是空的。0070应当理解,当用户库改变通过向他们的库中增加新歌曲、改变文件元数据或删除文件时,主购买矩阵或表需要更新。购买矩阵可被实时更新,或可对事务进行排。
38、队以便以后插入。一种排队装置规则地,诸如每天晚上1130,在购买矩阵中插入事务。另一种排队装置在准备好某个最小数目的事务用于插入时才向购买矩阵中插入事务。0071更新购买表不需要针对所有媒体项目重复步骤203和204。由于在用户的数据最初填充该表时已经执行过,所以已经被识别并且与基于程序的识别号相关的媒体项目不需要识别和相关步骤。在一个实施例中,一旦服务器已经将媒体项目和其标识数据相关,服务器可以将标识数据发送回用户以便存储在元数据内。在与服务器的将来通信中,服务器可以接收对具有相关联的标识数据的媒体项目的更新,从而避免需要重做步骤204。0072在某些实施例中,购买矩阵可以是包括关于每个事务。
39、的附加信息,诸如销售时间和日期、媒体是什么格式、媒体是高清晰度还是标准清晰度、事务是赠品还是收费的、哪些设备被授权回放等,的更大表或矩阵的一部分。购买矩阵可以是离散的不同的表,或可被完整地结合在更大的表或矩阵内。0073在另一个实施例中,主购买矩阵不需要包含关于用户媒体库存的上传信息。主购买矩阵可以本质上由购买信息构成。购买信息可以仅是用户从在线商店购买的项目,或可以包括附加信息。在这个实施例中,该表可以包括每个用户购买的所有项目的列表。另外,主购买矩阵很可能至少包括与用户的媒体库存的内容有关的相似性数据的有限集合。0074协同过滤引擎0075图2所示的方法接着包括在步骤206对主购买矩阵运行。
40、协同过滤引擎以便产生相似性数据,并且在步骤207在主相似性表内存储相似性数据。可以根据媒体项目在主表内与某个其它媒体项目共同出现的发生率,得出相似性数据。当用户具有相同的两个媒体项说明书CN104102729A109/22页11目时,它们被称为共同出现。多个用户的库内的这种共同出现是两个媒体项目“类似”的指示。两个媒体项目在程序参与者的库内共同出现得越频繁,媒体项目被称为越相似。0076协同过滤引擎308计算主购买表内的媒体项目个体之间的相似性。在一个实施例中,协同过滤引擎可以简单地是记录数据库内的各对歌曲在程序参与者的库内共同出现的次数的程序。0077在一个实施例中,协同过滤引擎可以通过将每。
41、个项目表示为多维矢量空间内的矢量,计算两个不同媒体项目之间的相似性。维数等于购买矩阵306内的用户数目。通过计算矢量之间的距离获得项目之间的相关性。可以使用纯的或修改后的三角函数例如,余弦或正弦函数计算矢量之间的距离。如果两个矢量具有小夹角,它们被认为是相似的,并且如果两个矢量具有大夹角,它们被认为不太相似。通过对主购买矩阵内的每个歌曲和主购买矩阵内的每个其它歌曲进行比较,执行这个处理。0078在另一个实施例中,协同过滤引擎可以考虑比共同出现发生率数据更多的内容。例如,整体出现的发生率可被作为相似性评估的因素。例如,歌曲A和B可以与歌曲A和C同等频繁地共同出现,但是如果歌曲B总体上更为流行,则。
42、歌曲A和B可以比歌曲A和C具有更高的相似性得分即,被认为更相似。一种确定不同歌曲的流行度的方法是测量每个歌曲在整个数据集合中出现的频繁程度。0079类似地,协同过滤引擎可以有影响相似性得分的其它输入,诸如使用率输入。例如,给予媒体项目的评估、播放计数以及跳过计数全部可被输入到协同过滤引擎中,以便确定媒体项目之间的相似性。0080图3示出了将每个歌曲表示为矢量的概念。在图3A中,基于歌曲在用户库2,899、1,343和2,000中的存在,已经制订了主表内的媒体ID629的矢量。类似地,基于歌曲在用户库2、12、444、1,343中的存在,已经映射了主表中的媒体ID1,263,999的矢量。经测量。
43、这两个矢量之间的夹角是20度,并且计算出近似为0939的余弦值。该余弦值表示媒体ID629和媒体ID1,263,999之间的相关值。图3B表示用于确定媒体ID629和媒体ID15之间的相关性的另一个相关性计算。在这个例子中,没有一个用户在其库中有媒体ID629和媒体ID15两者,并且因此这两个矢量之间的余弦值近似为0707。较低的得分指示媒体ID629和15彼此不紧密相关。0081在另一个实施例中,可以使用其它函数计算项目之间的相似性得分。作为例子,可以用考虑了特定项目所占一项目的总体共同出现的百分比的方法计算相似性得分。例如,项目A与项目15共同出现,并且项目A的总体共同出现是与项目15的全。
44、部共同出现的总和。例如,如果项目A与项目1共同出现2次,与项目2共同出现2次,与项目3共同出现2次,与项目4共同出现10次并且与项目5共同出现2次,则项目A具有总体共同出现18。了解共同出现总数由特定对所导致的百分比可能是有价值的。例如,项目4代表项目A的全部共同出现的近似55,并且因此,与任意其它项目相比,与项目A更强地相关,每个其它项目仅仅代表A的全部共同出现中的大约11。该数据还可以用于确定相似性数据。虽然上面图示了计算相似性数据的两个特定方法,但是应当理解,可以使用计算两个项目之间的相似性的任意数目的其它方法。0082以某个规则的时间间隔在每个项目和每个其它项目之间计算上面的处理。由于。
45、这个处理可能花费过多的时间量,它通常离线执行。其可每月执行一次、一个星期执行一次、说明书CN104102729A1110/22页12一天执行一次、或以计算能力允许的频繁程度执行。0083相似性表0084在图2的步骤207内使用协同过滤引擎汇编的相关数据产生主相似性表。图5示出了存储在主相似性表502内的数据。对于给定媒体项目,在主相似性表中存在以其基于程序的标识数据504识别该媒体项目的表项。被认为与该媒体项目类似或相关的每个其它媒体项目也可被列在表508内。以这种方式,表502维护与主购买矩阵402内的每个媒体项目相似的所有媒体的列表。0085如果项目具有足以被认为与该媒体项目相似或相关的得。
46、分,则这些项目被包括在主相似性表内。对于任意给定项目,大部分其它项目根本不相似。当相似性得分足够低时,其不包括在相似性表内。确定相似性得分足够低或高的阈值可以是动态的或静态的。例如,如果相似性得分的范围为1到1,1为完全不相似,而1为极其相似,该阈值可被静态地设置为05。可以基于主购买表内歌曲的出现次数,动态地设置该阈值,诸如出现次数小于100的歌曲的阈值为09,出现次数小于5,000的歌曲的阈值为07,出现次数小于25,000的歌曲的阈值为06,出现次数等于或大于25,000的歌曲的阈值为05。该阈值还可以基于可获得的存储量或任意其它参数。0086换言之,主相似性表502可以包含所有或某些相。
47、似性得分。如果必须约束主相似性表以符合某个存储大小,则仅包括最好或最强的相似性,并且摒弃其余相似性。类似地,如果没有足够的程序参与者在其媒体库存中具有某一项目,其可被排除。这种方法的一种变型是在项目有资格被包括在主相似性表内之前,要求在用户的库内出现最小次数。例如,如果两个项目具有5或更小的共同出现,即,如果5个或更少的人具有这两个项目,则系统不计算其余得分。0087在另一个实施例中,主相似性表还可以存储等同关系。例如,表502中的媒体ID17可以相应于LUCIANOPAVAROTTI1990年表演的“OSOLEMIO”。在线商店中可以获得诸如ENRICOCARUSO和MARIOLANZA的歌。
48、手对“OSOLEMIO”的多种表演,并且这些表演被认为是等同媒体506。其它显著类型的等同媒体包括正式专集轨迹、原声轨迹、现场音乐会轨迹、其它乐队的翻唱轨迹和甚至相同歌曲的外语轨迹。单个歌曲可以以所有所列形式或更多形式存在。可以手工执行或可以基于实际媒体内容、元数据和/或其它可获得数据自动执行等同确定。可以在媒体ID504旁边给出每个的等同媒体ID,以便标识它们中的每一个被认为是相同的,并且它们可一起计数。0088主相似性表内的ID可以与购买矩阵306内用于索引媒体的ID相同,或它们可以基于完全不同的方案。如果两者不一致,可以提供变换器函数或参考变换表,以便将一个ID转换为另一个ID或反之亦然。
49、。两者之间共享的公共ID空间的维护可能最容易并且最简单而没有性能损失。0089用户相似性表0090虽然主相似性表包含全体相似媒体,个体媒体库几乎必定包括全体相似媒体的较小子集。因此,产生约束集合或个体相似性表。约束适合于给定库内的媒体可获得性。约束集合还可以包括对未在媒体库内发现的相似媒体的引用。可以这样做以便将用户作为建议媒体购买的目标。由于具有某些共同媒体品味的其它人在其库中已经具有了该建议的购买,这种定向的建议购买很可能对用户更有吸引力。说明书CN104102729A1211/22页130091一旦计算并且填充了主相似性表502,产生个体相似性表602。图6示出了个体相似性表。个体相似性表602包括包含在个体媒体库内的每个歌曲的媒体ID604和与该媒体ID相关的媒体。在括号中示出了相关媒体606。个体相似性表内的相关媒体是位于项目的主相似性表内的分类相似媒体508的整个列表的子集。基于哪些媒体出现在个体媒体库内,选择该子集。换言之,为位于个人的库内的每个歌曲,产生也包含在个人的库内的相似媒体的列表。0092个体相似性表可由服务器在服务器处产生并且被客户设备下载,或可由客户端通过仅下载用户媒体库存内的项目的相似性数据而创建个体相似性表。不论在何处创建相似性表,处理是相同的。按照该项目的基于程序的相似性标识数据在主相似性表内查找媒体项目。接着,系统可以按索引查找媒体项。