用于提供基于特征的协同过滤的方法和装置制造方法

文档序号:6484806阅读:165来源:国知局
用于提供基于特征的协同过滤的方法和装置制造方法
【专利摘要】提供一种用于基于特征的协同过滤的方法。推荐引擎接收一个请求,其为一个或多个用户生成有关一个或多个项目的一个或多个推荐。推荐引擎处理和/或促进处理有关所述一个或多个项目的描述信息,以生成所述一个或多个项目到一个或多个特征的映射。在一个实施例中,特别是当应用于依赖于时间的和/或基于关键字的项目时,该映射带来性能改善。接着,推荐引擎为所述一个或多个用户确定有关所述一个或多个特征的偏好信息。至少部分地基于所述映射和所述偏好信息,所述推荐引擎生成所述一个或多个推荐。
【专利说明】用于提供基于特征的协同过滤的方法和装置
【背景技术】
[0001]服务供应商和设备制造商(例如无线、蜂窝等)不断地面临例如通过提供有竞争力的网络服务来向客户传递价值和便利的挑战。一个发展领域已经使用推荐系统来向用户提供对在服务和/或相关应用(例如关于感兴趣的人、地点、或事物的推荐,诸如同伴、餐馆、商店、度假、电影、视频点播,书籍、歌曲、软件、文章、新闻、图像等)内可用的内容、项目等的建议或推荐。例如,典型的推荐系统可根据通过例如基于协同过滤将用户的偏好与一个或多个参考特征相比较来对用户将感兴趣的项目进行预测(即使该用户之前从未考虑过该项目)向用户建议项目。这种推荐系统历史上曾依赖于对将被推荐的特定项目的历史用户交互信息(例如,用户评级、用户评论等)。然而,在某些情况下,新项目和短寿命项目(例如,限时特价(offers),本日优惠(one-day deals)等)可能没有足够的用于传统推荐系统处理的用户交互信息。因此,服务供应商和设备制造商面临着使得当用户交互信息不可用或是受其他限制或稀少时仍能推荐的重大技术挑战。

【发明内容】

[0002]因此,需要有一种经由基于特征(与基于项目相反)的协同过滤的推荐的方法。
[0003]根据一个实施例,一种方法,其包括接收请求,以为一个或多个用户生成关于一个或多个项目的一个或多个推荐。所述方法还包括处理和/或促进处理与所述一个或多个项目相关联的描述信息,以生成所述一个或多个项目到所述一个或多个特征之间的映射。所述方法还包括为所述一个或多个用户(至少部分地)产生至少一个关于所述一个或多个特征的偏好信息的判定。所述方法还包括(至少部分地)处理和/或促进处理所述映射和所述偏好信息,以生成所述一个或多个推荐。
[0004]根据另一个实施例,一种装置,其包括至少一个处理器、和包含有用于一个或多个计算机程序的计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为,使用所述至少一个处理器,(至少部分地)使得所述装置接收请求,以为一个或多个用户生成关于一个或多个项目的一个或多个推荐。还使得所述装置处理和/或促进处理与所述一个或多个项目相关联的描述信息,以生成所述一个或多个项目到所述一个或多个特征之间的映射。所述装置(至少部分地)还产生至少一个关于所述一个或多个特征的偏好信息的判定。还使得所述装置(至少部分地)处理和/或促进处理所述映射和所述偏好信息,以生成所述一个或多个推荐。
[0005]根据另一个实施例,一种计算机可读存储介质,其载有一个或多个指令中的一个或多个序列,当其由一个或多个处理器执行时,(至少部分地)使得所述装置接收请求,以为一个或多个用户生成关于一个或多个项目的一个或多个推荐。还使得所述装置处理和/或促进处理与所述一个或多个项目相关联的描述信息,以生成所述一个或多个项目到所述一个或多个特征之间的映射。所述装置(至少部分地)还产生至少一个关于所述一个或多个特征的偏好信息的判定。还使得所述装置(至少部分地)处理和/或促进处理所述映射和所述偏好信息,以生成所述一个或多个推荐。[0006]根据另一个实施例,一种装置,其包括用于接收请求,以为一个或多个用户生成关于一个或多个项目的一个或多个推荐的部件。所述装置还包括用于处理和/或促进处理与所述一个或多个项目相关联的描述信息,以生成所述一个或多个项目到所述一个或多个特征之间的映射的部件。所述装置还包括(至少部分地)产生至少一个关于所述一个或多个特征的偏好信息的判定的部件。所述装置还包括用于(至少部分地)处理和/或促进处理所述映射和所述偏好信息,以生成所述一个或多个推荐的部件。
[0007]另外,对于本发明的各种示例实施例,以下是适用的:一种方法,其包括促进处理和/或处理(I)数据和/或(2)信息和/或(3)至少一个信号,所述(I)数据和/或(2)信息和/或(3)至少一个信号(至少部分地)基于(包括至少部分地来源于)在本申请中所公开的与本发明任何实施例相关方法(或过程)中的任何一个或任何组合。
[0008]对于本发明的各种示例实施例,以下也是适用的:一种方法,其包括促进访问至少一个被配置为允许访问至少一种服务的接口,所述至少一种服务被配置为执行在本申请中所公开的网络或服务提供商方法(或过程)中的任何一个或任何组合。
[0009]对于本发明的各种示例实施例,以下也是适用的:一种方法,其包括促进创建和/或促进修改(I)至少一个设备用户接口元素和/或(2)至少一个用户接口功能,所述(I)至少一个设备用户接口元素和/或(2)至少一个用户接口功能(至少部分地)基于从本申请中所公开的与本发明的任何实施例相关方法或过程中的任何一个或任何组合中产生的数据和/或信息,和/或至少一个从本申请中所公开的与本发明的任何实施例相关方法或过程中的任何一个或任何组合中产生的信号。
[0010]对于本发明的各种示例实施例,以下也是适用的:一种方法,其包括创建和/或修改(I)至少一个设备用户接口元素和/或(2)至少一个用户接口功能,所述(I)至少一个设备用户接口元素和/或(2)至少一个用户接口功能至少部分地基于从本申请中所公开的与本发明的任何实施例相关方法或过程中的任何一个或任何组合中产生的数据和/或信息,和/或至少一个从本申请中所公开的与本发明的任何实施例相关方法或过程中的任何一个或任何组合中产生的信号。
[0011]在各种示例实施例中,所述方法(或过程)可以在所述服务供应商侧或所述移动设备侧,或在两侧都执行动作以服务供应商和移动设备之间任何共享的方式来完成。
[0012]对于本发明各种示例实施例,以下也是适用的:一种装置,其包括用于执行原始提交权利要求1-24和42-44中的任何一项的所述方法的部件。
[0013]从以下仅通过说明包括用于实施本发明所预期的优选模式的若干特定实施例和实施方式的详细说明中,本发明的其它方面、特征、和优点是非常明显的。在不背离本发明精神和范围情况下,本发明还可以有其它或不同实施例,并且可对其若干细节在各种明显的方面进行修改。因此,附图和说明书本质上被认为是说明性的,而非限制性的。
【专利附图】

【附图说明】
[0014]本发明的实施例在附图的图中作为示例(而不作为限制)来说明:
[0015]图1是根据一个实施例能够提供基于特征的协同过滤的系统图;
[0016]图2是根据一个实施例的推荐引擎的组件图;
[0017]图3是根据一个实施例的用于支持基于特征的协同过滤的推荐框架的示例架构;[0018]图4是根据一个实施例的用于提供基于特征的协同过滤的过程的流程图;
[0019]图5和图6是根据各种实施例的在图1-5的过程中所使用的用户接口的示意图;
[0020]图7是可被用于实施本发明实施例的硬件的示意图;
[0021]图8是可被用于实施本发明实施例的芯片组的示意图;
[0022]图9是可被用于实施本发明实施例的移动终端(例如手机)的示意图。
【具体实施方式】
[0023]公开了一种用于提供基于特征的协同方法、装置、和计算机程序的示例。在以下描述中,为了说明目的,阐述了许多特定细节以便于提供对本发明实施例的完全理解。然而,对于本领域的技术人员来说,在没有这些特定细节或具有等同布置的情况下,也可实践本发明的实施例是明显的。在其它情况下,众所周知的结构和设备以框图形式示出,以避免不必要地使本发明的实施例不清楚。
[0024]图1是根据一个实施例的能够提供用于生成推荐模型的框架的系统图。现代推荐系统向用户提供了许多超过传统搜索方法的优点,这是由于推荐系统不仅规避了对感兴趣项目进行搜索的时间和精力,而且它们还可帮助用户发现那些用户自己未发现的项目。在许多情况下,协同过滤(CF)是大多数推荐系统的核心技术。一般来说,CF是使用涉及在多个代理、视角、数据源等之间协同的技术的信息或模式处理。例如,CF分析用户的关系以及项目(诸如产品、服务、优惠、交易等)间相互依赖性,以识别和/或预测新用户和项目关联性(诸如偏好信息)。因此,CF的传统实现是基于项目的,这是因为CF算法输出关于与项目相关联的历史交互信息(例如用户和项目之间的表示评级、评论、用户历史等的历史数据)的偏好息。
[0025]尽管CF被广泛地使用,但它可能遭受“冷启动”的问题,因为它没有能力处理新项目和/或用户缺少与现有项目进行足够的交互以预测有关该新项目的偏好或评级信息。冷启动问题对于那些具有较短寿命(例如短期优惠,限时特价)的项目可能尤其成为问题。在这种情况下,当与持久项目相比(例如诸如书籍、电器等产品)时,在项目寿命过期之前,通常没有足够时间来收集足够的交互信息以支持CF。因此,随着短寿命项目的出现和消失,当项目变成可用时,传统CF系统通常没有足够的历史交互数据来实时或基本实时地提供推荐。
[0026]作为示例,优惠(例如优惠券、打折、特价、团购优惠等)是一类潜在的短寿命项目。许多优惠对相对短时间段(例如通常一到几天)是有效的。此外,类似优惠是经常重复的,但传统CF系统通常将它们视为不同项目,因为它们具有不同条款(例如有效期、不同打折比率等)。例如,快餐店在I月1-5日有15%的折扣,在3月5-7日有10%的折扣。虽然这些折扣优惠是类似的,但是将被传统CF系统归类为不同优惠。
[0027]此外,传统CF系统通常仅周期性地用新数据(例如交互数据)更新,因为它们通常涉及大量的数据和计算。当处理长寿命项目时,这通常不是问题,因为长寿命项目(例如书籍)通常被使用和/或售卖许多年。因此,有足够时间来建立足够的用户交互历史,以支持基于CF的推荐。相反,对于短寿命项目(例如优惠),新添加的项目或优惠通常不能积累足够的用户交互,以在其寿命内(例如一天)得到CF推荐系统的推荐。在某些情况下,当足够的交互(例如优惠的点击率)积累时,但是利用优惠可能是太晚了,因为优惠已经过期或没有留给用户足够时间来接受该优惠。
[0028]为解决这个问题,图1的系统100引入了通过将用户-项目关联(例如用户-项目矩阵)转换为用户-特征关联(诸如用户-特征矩阵),以生成基于CF的推荐,来提供基于特征的协同过滤能力。在一个实施例中,特征代表可被用于描述或以其他方式表征项目的种类、特点、关键字、标签、分类等。尽管系统100适用于可被映射到一组特征的任何项目是可以预期的,但系统100特别适用于依赖于时间的和/或基于关键字的项目(例如短寿命或时间苛刻的项目),因为这些项目被转换或降低到更可靠地基于语义的特征以供进行处理。以这种方式,系统100通过处理关于更有限的特征集合而非全部的项目集合推荐,可以提高性能。
[0029]例如,短寿命项目(例如优惠)可以是相当不稳定的,从某种意义上在于短寿命项目在相对短时间段内(例如数小时,数天)出现和消失,并且采用可随项目变化而变化的时间依赖性和/或关键字。相反,在同一特征或种类可以包括或描述许多项目的意义上看,项目所属于的特征或种类集可以是相当稳定的。例如,用户先前已经购买了商标X的运动鞋。那么,预测同一用户喜欢运动鞋胜过其他类型的鞋是合理的。因此,当商标Y的运动出现新的短时优惠时,该优惠会通过CF立即推荐给用户,因为商标Y的鞋子属于运动鞋的种类或特征。在这个示例中,商标(例如商标X和设备Y)是不稳定的(即两种项目或优惠的之间不同),但种类(例如运动鞋)保持稳定,从而使得系统100能够将两种优惠关联到共同特征下。
[0030]在一个实施例中,给定M个用户和N个项目,系统100抽出并将N个项目映射到P个特征上,从而MXN矩阵被转换成MXP矩阵。接着,系统100将CF技术应用于新的MXP矩阵,以填充缺失的值(例如偏好信息值),从而对于每个用户U,用户u将具有一组描述该用户的w个偏好的相关特征。在一个实施例中,MXP矩阵中每个元素(u,k)示出用户u给予或被预测给予特征k的偏好的强度。因此,在某些实施例中,系统100将根据用户u所偏好的特征的程度向用户u推荐任何新项目i。
[0031]在一个实施例中,系统100支持实时或基本实时地推荐短寿命项目(例如优惠)。例如,当短寿命项目变为可用时,使用本文所描述的基于特征的CF的各种实施例,它们可以被立即包含在推荐项目列表。类似地,当短寿命项目过期时,它们从推荐列表中被移除。在一个实施例中,系统100例如使用增量算法来更新用户特征映射或矩阵。如上所述,系统100将基于时间依赖性和/或关键字的项目映射到特征集或空间上的能力降低了资源负担(例如处理资源,存储器,带宽等)并提高了性能。
[0032]以这种方式,系统100通过基于它们的特征而不是实际项目本身来推荐项目,克服了上述的冷启动问题。另外,因为通常情况下特征P的数量经常远少于项目N的数量,因此系统100通过用存储器的过期项目(例如过期优惠)执行矩阵MXP的增量更新,可以减少资源负载(例如计算的,存储器,和/或带宽负担)。
[0033]在某些实施例中,系统100可以使用结合本文所描述的基于特征的CF的基于项目的CF。例如,除了短寿命项目外,本文所描述的方法的各种实施例适用于具有稀疏的或没有用户交互信息的任何项目而不管其寿命。因此,在一个实施例中,系统100可以使用基于特征的CF来推荐这种项目,直到系统100确定那个项目已经积累了至少满足一个阈值的足够的交互信息。在那时,系统100除了使用基于特征的CF还可以开始使用传统基于项目的CF,或取代基于特征的CF而开始使用传统基于项目的CF。[0034]在一个实施例中,系统100可以提供适用于多个应用或服务的推荐引擎,例如,通过使用模式(或多个模式)(例如轮廓,模板,规则,定义等)以在应用之间收集并共享信息,来支持生成推荐模型(例如基于CF的模型)。在一个实施例中,系统100可使用用于指定内容评级信息格式的模式。如这里所使用的,评级信息是指指示在特定应用中用户已经如何评级项目(例如代表用户交互信息)的数据。在一个实施例中,评级信息可以被明确地提供(例如,通过指定音乐曲目的星数,给电影竖起拇指等)或隐含地确定(例如基于应用项目被使用或访问的时间长度、使用频度等)。然后,从各种应用所收集的评级信息基于上述的模式可以被汇集、关联等。以这种方式,系统100可以基于在生成推荐模型中所使用的用于参与的应用中的任何一个的模式,从一个或多个应用中收集内容评级信息,从而当与只来自一个应用的收集信息相比时,最大化可利用数据池(例如评级信息),以支持独立的推荐模型。根据本文所描述的方法的各种实施例,可利用数据池可以被处理或映射到特征空间以支持基于特征的CF。
[0035]在某些实施例中,系统100使应用开发者能够扩展模式,以包含新类型的评级信息。例如,如果模式是使用结构化语言(例如,可扩展标记语言(XML))定义的,则应用开发者可通过添加新名字空间以代表新类型的评级信息,来扩展模式。因此,如果一个应用不能解决或没有理解新名字空间,则可以忽略该名字空间。另外或替代地,如果没有模式可用于关联从多个应用收集的评级信息,则系统100例如可利用语义分析来推断一组评级信息与另一组评级信息之间的关系。例如,音乐应用的评级信息可以包含能够被语义上关联到电子书应用的评级信息上的评级或条件。以这种方式,若系统100已经从两种类型应用上收集了评级信息,则集合组的评级信息仍能够语义上关联起来,以使得该集合支持生成用于各个应用或新的应用的推荐模型,诸如根据在系统100的同一框架下收集的数据推荐电子书或音乐。
[0036]如之前所述那样,所收集的评级信息例如被保存于一个或多个配置文件(例如有关用户和/或用于应用项目的配置文件)中以在后面由推荐引擎和/或任何参与的应用使用。推荐系统(诸如系统推荐系统)需要推荐模型来提供推荐。例如,系统100可从特定应用接收请求生成推荐模型的请求,接着可使用来自一个或多个配置文件的评级信息来生成所请求的推荐模型。在另一个实施例中,系统100可以根据数据与请求应用之间的相关性,从收集于多个应用的评级信息中提取数据。接着,所提取的数据被用于生成请求应用的内容推荐模型。这样,应用可以从系统100的公共架构或推荐引擎中请求推荐模型,而不是为每个个别应用开发单独的推荐框架或引擎。以这种方式,系统100能够有利地共享推荐引擎来降低有关开发专用推荐模型的计算、内存、带宽、存储器和其它资源负担。另外,系统100还可以为请求应用提供补充数据,而这当应用自己收集数据而时是不可能实现的。
[0037]除了通过使用公共架构来为多个应用生成推荐模型来提供效率外,系统100的公共架构还能够使得从一个或多个应用收集的信息能够被用于为另一个应用生成推荐模型。例如,内容评级信息中某些子集数据会与特定应用相关,而与其它应用无关,同时其它子集数据与其它应用相关,而与该特定应用无关。从而,内容评级信息可以支持为多个应用生成多个内容评级模型。另外,同一个内容评级模型可以在其中该模型适用于多个应用的环境中被重复使用。其中之前为应用生成的内容推荐模型可以被提供给其它应用的情形例如是在该应用和表明类似项目和用户(爵士音乐博客和爵士音乐商店应用)的其它应用之间存在某些关系。
[0038]更准确地说,系统100可以在推荐引擎接收请求,以为应用生成内容推荐模型,其中该推荐引擎适用于多个应用。该请求可以从将为其生成内容推荐模型的应用接收到或由该应用发送出来。另外,该请求可由应用的一个或多个用户做出(例如管理员、开发方、常规用户等)来改进由该应用产生的推荐。接着系统100从有关该应用、一个或多个其它应用或其组合的配置文件中获取内容评级信息。系统100还根据该内容评级信息生成内容推荐模型。
[0039]如图1所示,系统100包括用户装置(UE)IOl或多个UElOla-1Oln (或UE101),其通过通信网络105连接到推荐引擎103。UElOl可包含或能访问应用107(或多个应用107),其可包括客户端程序、服务、或那些利用系统来向用户提供推荐的类似程序。当用户在他们对应的UElOl上利用应用107时,推荐引擎103可从应用107收集内容评级信息(例如表明用户如何对项目进行评级的数据)。作为例子,内容评级信息收集可包含要求用户在I至10的分值上评级一个项目,要求用户创建该用户喜欢的项目列表,注意该用户观看的项目,获取该用户购买的项目列表,分析该用户观看特定项目的次数等。同样,根据应用107可以用来为其用户生成智能推荐的内容评级信息,推荐引擎103还可以向应用107提供内容推荐模型。从而,推荐引擎103可以包括或连接到配置文件数据库109,以为了访问或保存内容评级信息。在配置文件数据库109内,内容评级信息可以被保存或例如关联到一个或多个不同用户配置文件上。然而应当指出的是,配置文件数据库109还可包含其他配置文件类型,诸如应用配置文件,项目配置文件等。
[0040]如所示那样,UElOl和推荐引擎103还连接到寄存有一个或多个对应服务/应用113a-113m (也被统称为服务/应用113)的访问平台111和内容供应商115a_115k (也被统称为内容供应商115)。在一个实施例中,服务/应用113a-113m包含服务器侧组件,其对应于在UElOl中运行的应用107a-107n。在一个实施例中,服务/应用113a_113m、应用107a-107n、或它们的组合可以访问、提供、传输等有关内容供应商115a_115k的一个或多个项目。换句话说,通过服务平台111和/或服务/应用113a-113n,内容和/或项目从内容供应商115a-115k被传送到应用107a-107n或UE101。在一个实施例中,服务/应用113a-113m可涉及推荐的短寿命项目(例如优惠、优惠券、打折、特价等)。
[0041]在某些情况下,服务/应用113a_113m和/或应用107a_107n的开发方可请求推荐引擎103生成有关从内容供应商115a-115k获取的内容或项目的一个或多个推荐模型。例如,为了应用107和/或服务/应用113,开发方向推荐引擎103发送请求,以用来生成推荐模型和/或利用足够的数据来填充推荐模型以便应用向用户提供推荐。在接收到用于推荐模型的请求后,接着推荐引擎103从与应用107、服务/应用113,或一个或多个其它应用或其组合关联的一个或多个配置文件中获取内容评级信息。推荐引擎103还可以根据内容评级信息生成内容推荐模型。由于内容评级信息可以从有关应用107、服务/应用113或一个或多个其它应用的一个或多个配置文件中获取,所以内容推荐模型的生成不是仅限于有关做出生成请求的应用的配置文件。从而,即使应用107具有很少或没有用户,在生成请求之前,推荐引擎103仍能够生成内容推荐模型,其具有足够数据来产生有关对用户感兴趣项目的推荐的准确预测。如上面参照这里所述的多个实施例描述的那样,在一个实施例中,推荐引擎103可以使用基于特征的CF、基于项目的CF,或其组合来生成推荐。[0042]作为例子,系统100的通信网络105包括一个或多个网络,诸如数据网络(未示出)、无线网络(未示出)、电信网络(未示出),或它们的组合。可以设想,数据网络可以是任何局域网(LAN)、城域网(MAN)、广域网(WAN)、公共数据网络(例如互联网)、短距无线网络,或任何其它适当的分组交换网络(诸如商用专有分组交换网络,例如专用线缆或光纤网络)和类似网络,或它们的组合。另外,无线网络例如可以是蜂窝网络,并可以利用多种技术,包括全球演进的增强型数据速率(EDGE)、通用分组无线业务(GPRS)、全球移动通信系统(GSM)、互联网协议多媒体子系统(MS)、通用移动电信系统(UMTS)等,以及任何其它适当的无线介质,例如,全球互通微波存取(WiMAX)技术、长期演进(LTE)网络、码分多路复用(CDMA)、宽带码分多路复用(WCDMA)、无线保真(WiFi)、无线局域网(WLAN)、蓝牙?、互联网协议(IP)数据投递、卫星、移动ad-hoc网络(MANET)等,或它们的任意组合。
[0043]UElOl是任何类型的移动终端,固定终端或便携式终端,其包括手机、工作站、元素、设备、多介质电脑、多介质平板电脑、互联网节点、通信器、台式电脑、膝上型电脑、笔记本电脑、上网本、平板电脑、个人通信系统(PCS)设备、个人导航设备,个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位装置、电视接收机、无线电广播接收器、电子书籍装置、游戏的移动设备,或它们的任意组合,包括这些设备的附件和外围设备,或它们的任意组合。还可以设想UElOl可以支持任何类型的接口的用户(如“可穿戴”电路等等)。
[0044]在另一个实施例中,内容评级信息的一个子集可根据应用的相关性来提取。在进一步的实施例中,还可以根据从内容评级信息中提取的子集来生成内容推荐模型。作为例子,内容评级信息可以从基于项目的内容评级映射到基于特征的内容评级。另外或可替换地,内容评级可以被提供直接用于项目的特征或种类。作为示例使用的例子,电影流应用可对内容推荐模型进行请求以向他的用户提供推荐。可以从内容评级信息中提取的有关子集可包括与来自例如位于配置文件数据库109的一个或多个配置文件的电影或影片相关联的所有数据。因此,应用不仅可以获得与先前由应用所识别的影片相关联的用户配置文件信息(例如用户偏好),还可以获得与在应用请求前不为该应用所知的影片相关联的用户配置文件信息。例如如果为应用生成的内容推荐模型表明许多它的用户会对在先未知的电影片名具有一定的兴趣,则应用可自动搜索并获取这些之前未知的电影。从而,应用可以根据用相关子集的内容评级信息创建的内容推荐模型向他的用户推荐这些或其他可用电影。
[0045]在另一个实施例中,模式被确定来指定多个应用(例如应用107、服务/应用113)的内容评级信息。该模式可以被用于例如确定有关项目和/或特征的内容评级信息的结构或格式。在一个实施例中,模式可指定用于定义特征的一个或多个分类法。以这种方式,特征可以通过一个或多个项目的种类被标准化。作为例子,模式可以定义可在内容评级信息出现的元素或属性、元素类型的顺序和号码、用于元素和属性的数据类型、用于元素和属性的缺省或固定值等。由模式所定义的元素可包括应用种类、项目种类、评级类型、用户、关系等。在一个示例使用情况中,用于指定内容评级信息的基础或框架模式可以被预先定义。然而应用开发者例如能够通过提供新的名字空间来扩展这个基础或框架模式。在又一个实施例中,根据这种模式从应用、一个或多个其它应用或它们的组合收集内容评级信息。在另一个实施例中,还根据该模式保存所收集的内容评级信息。以这种方式,推荐引擎103的操作通常被做的更加有效。例如,推荐引擎103可以访问配置文件数据库109中的数据(例如内容评级信息)来为任何应用生成新的内容推荐模型,而无需首先弄清楚如何解释数据,因为模式已经被提供。
[0046]在另一个实施例中,所收集的内容评级信息被集中在对应的一个或多个配置文件中。如所提供那样,一个或多个配置文件可包括一个或多个用户配置文件。然而,应当指出的是配置文件数据库109还可包含其他配置文件类型,诸如应用配置文件、项目配置文件等。作为例子,配置文件数据库109中的用户配置文件可包含姓名、住址、年龄、性别、种族/族裔、民族、所关注的项目、项目关注时间、所搜索的项目、下载/上传的项目、购买的项目、添加到期望列表、购物车或收藏夹列表中的项目,评级的项目和它们是如何被评级等。因此,一个或多个配置文件可以被访问以提供内容评级信息来为一个或多个应用生成内容推荐模型。
[0047]在另一个实施例中,有关应用的第一部分内容评级信息和有关一个或多个其它应用中至少一个的第二部分内容评级信息之间的一种或多种关系可以被确定。在又一个实施例中,还根据该一个或多个关系来生成内容推荐模型。在一个示例使用例子中,内容评级信息可包含有关电影流服务的数据以及有关电子阅读器程序的数据。推荐引擎103例如可确定在有关浪漫风格电影流服务的数据和有关浪漫风格电子阅读器程序的数据之间存在关系。因此,根据浪漫风格关系生成的内容推荐模型例如会表明喜欢电子书和浪漫电影的用户与喜欢电影和浪漫电子书的用户具有类似的兴趣。在另一个实施例中,根据模式、内容评级信息的语义分析或它们的组合确定一个或多个关系。作为例子,如果该关系在模式中被定义,则根据模式来确定一个或多个关系,如果这种关系不在模式中,则根据语义来确定一个或多个关系,或者如果某些关系被定义而另一些关系存在,则根据两者确定一个或多个关系。
[0048]在另一个实施例中,之前生成的内容推荐模型可以被确定至少部分地满足请求。在一个示例使用实例中,针对特定音乐风格,诸如爵士音乐博客的音乐网站,可能之前已经生成内容推荐模型。从而,在推荐引擎103接收到请求,以生成用于使用户能够采样或购买爵士音乐的爵士音乐程序的内容推荐模型。尽管爵士音乐博客不会直接向它的用户提供采样和购买音乐的能力,但之前为该博客生成的内容推荐模型仍满足爵士音乐程序的请求。在音乐评级数据不可用时,或音乐评级数据的数量和质量不能满足生成音乐模型时,这是特别有用的。例如,已经根据来自允许用户采样和购买爵士音乐的其它应用的内容评级信息构建之前生成的内容推荐模型。从而,之前生成的内容推荐模型不仅使得智能建议爵士音乐和/或相关博客的链接(例如采样、下载或购买爵士音乐)成为可能,还可允许该程序准确地预测和向它的用户提供感兴趣的音乐。从而,在又一个实施例中,可以响应该请求,提供之前生成的内容推荐模型。这样,系统资源可以被节省,以为其它应用或其它操作生成内容推荐模型,诸如从一个或多个其它应用收集、保存或访问内容评级信息。
[0049]在另一个实施例中,根据预定频率、预定时间表、检测到内容评级信息的一个或多个更新或者它们的结合,内容推荐模型被改变。应当指出的是,内容推荐模型更新在许多情况下是需要的,而且在其它情况下对于持续提供有用建议也是必要的。例如,当潮流改变时,需要更新内容推荐模型。这样,用户过去的行为不再有助于做出准确地预测。从而,在另一个实施例中,在内容评级信息中的评级指示可以包含时间戳。这样,当针对特定应用(其中对于那些应用用户潮流已经改变)生成内容推荐模型时,旧的数据从内容评级信息中被过滤出来。[0050]在另一个实施例中,内容推荐模型定义一个矩阵,以用于为有关一个或多个配置文件的应用的一个或多个项目预测预期的评级。作为例子,内容推荐模型可以定义用户与其项目矩阵的对照,其中该矩阵表明每个用户会如何评级特定项目。另外,内容推荐模型可以定义用户与特征矩阵的对照,其中该矩阵表明每个用户会如何评级或喜欢该项目的特定特征或类型。在一个实施例中,配置文件变量(例如所关注的项目、项目关注时间、所搜索的项目、下载/上传的项目、购买的项目、添加到希望列表、购物车或收藏夹中的项目、评级的项目和它们如何被评级等)在基于应用和/或其他标准被分配确定的权重后进行计算,之后,例如通过数字值来表示评级指示。在一个实施例中,该数字值可以被标准化到一定尺度或范围内(例如O和I之间的值)。矩阵还可以通过简单地向应用提供变量来提供该指示。在这种方式中,应用可以为每个变量分配一个权重,并根据所分配的变量权重来计算每个用户如何评级项目。
[0051]在某些实施例中,至少部分地根据请求的服务、推荐引擎103和/或系统100的另一个组件指定的一个或多个参数生成推荐模型和/或矩阵。例如,在一个实施例中,推荐引擎103可以创建因子分解的推荐模型(例如在矩阵因子分解方法中来协同过滤以生成推荐的情况下)。用于创建因子分解推荐模型的参数例如是包含在被用于模拟(model)每个矩阵(例如用户矩阵,项目矩阵,特征矩阵)的潜在主题的数量。这个参数(即潜在主题数量)可以由推荐引擎103确定(例如当该信息可用于推荐引擎103时),或者在输入参数是其对生成推荐引擎的请求时由请求应用或服务提供,或者可以是它们的组合。应当指出的是参数通常依赖于有关服务的应用、服务、项目等的属性,并通常专用于特定推荐模型。
[0052]在另一个实施例中,内容评级信息支持生成多个内容推荐模型。如所提供的那样,有许多实例,其中内容评级信息可支持生成多个内容推荐模型。在一个示例使用的实例中,电影流服务可以请求内容推荐模型,以向它的用户提供推荐。根据与电影流服务(例如有关电影的数据)的相关性,推荐引擎103可以提取一个子集的内容评级信息,其是从配置文件数据库109的一个或多个配置文件中获取的。然而,所获取的内容评级信息还包含这样的子集,它们与电影流服务无关,而是可适用于其他不相关应用,诸如电子阅读器程序、约会服务、假期博客(vacation blog)。因此,内容评级信息的不同子集可以支持生成超过一个的内容推荐模型。
[0053]作为例子,使用熟知的,新的或仍在开发中的协议,UE101、推荐引擎103和应用107彼此通信并且与无线网络105的其它组件进行通信。在本上下文中,协议包括一组规贝U,其定义通信网络105中网络节点如何根据通信链路发送的信息彼此进行交互。协议在每个节点内的不同操作层是有效的,从生成和接收不同类型的物理信号,到选择链路传输这些信号,到将由这些信号表示的信息的格式化,到指示计算机系统执行的那个软件应用发送或接收信息。用于在网络上交换信息的不同协议概念层在开放系统互联(OSI)参考模型中描述。
[0054]网络节点之间的通信通常通过交换离散数据分组来实施。每个分组通常包括(I)有关特定协议的报头信息,和(2)负载信息,其跟在报头信息后并包含有由那个特定协议独立处理的信息。在某些协议中,分组包含(3)尾部信息,其跟在负载后并指示负载信息的结束。报头包含这样的信息,诸如分组的源、它的目的地、负载长度和该协议使用的其它特性。通常,用于特定协议的在负载中的数据包含有关OSI参考模型中不同的、更高层协议的不同协议的报头和负载。更高层协议据说是封装在更底层协议中。如OSI参考模型所定义的那样,包含在分组中的报头穿过多个异构网络,诸如互联网,其通常包括物理层(层I)报头、数据链路层(层2)报头、互联网层(层3)报头、传输层(层4)报头和多个应用层(层5,层6和层7)报头。
[0055]在一个实施例中,应用107和对应的服务平台111、服务113a_113m、内容供应商115a-115k或它们的组合根据客户机-服务器模型进行交互。应当指出的是,客户机-服务器模型的计算过程交互是众所周知和被广泛使用的。根据客户机-服务器模型,客户端进程向服务器进程发送包含请求的消息,而服务器进程通过提供服务来进行响应。服务器进程还向客户机进程返回一个带有响应的消息。通常,客户机进程和服务器进程在被称为主机的不同计算设备上执行,并通过网络使用用于网络通信的一个或多个协议来进行通信。术语“服务器”通常被用于指代提供服务的进程,或其中该进程所运行的主机。同样,术语“客户机”通常被用于指代做出请求的进程,或该进程所运行的主机。如这里所使用的那样,术语“客户机”和“服务器”指代进程,而不是主机,除非在上下文中明确地说明。另外,由于包含可靠性、可扩展性和冗余在内的原因,由服务器执行的进程可以被分开作为在多个主机(有时也被成为层)运行的多个进程。
[0056]图2是根据一个实施例的推荐引擎的组件的图。作为例子,推荐引擎103包括一个或多个组件,其用于提供用来生成推荐模型的框架。可以设想这些组件的功能可以被结合在一个或多个组件中,或者由等同功能的其它组件来实现。在这个实施例中,推荐引擎103包含推荐API201、网页端口模块203、控制逻辑205、存储器209、通信接口 211和模型管理器模块213。
[0057]控制逻辑205可以被用于控制推荐引擎103的模块和接口的执行。当执行时,程序模块可以被保存于存储器209中。通信接口 211可以被用于与UElOl进行交互(例如通过通信网络105)。另外,控制逻辑205还可利用推荐API201 (例如结合通信接口 211)与应用107、服务平台111、服务/应用113、其它应用、平台和/或类似组件进行交互。
[0058]通信接口 211可包括多个通信部件。例如,通信接口 211能够通过SMS、互联网协议、即时消息、语音服务(例如通过电话网络)或其它类型通信协议进行通信。通信接口 211可以被控制逻辑205用于和UElOla-1Oln和其它设备进行通信。在某些例子中,通信接口211被用于使用有关推荐API201的协议和方法发送和接收信息。
[0059]作为例子,网站门户模块203可以被例如开发方利用来促进访问推荐引擎103的模块或组件。因此,网站门户模块203可以生成网页和/或网站访问API以使得开发方能够测试或注册它们应用到推荐引擎103。开发方还利用网页和/或网站访问API向推荐引擎103发送请求,以用于为他们的应用生成内容推荐模型。
[0060]另外,配置文件管理器模块207可管理、存储、或访问配置文件109中的数据。因此,配置模块207可以确定来自内容评级信息中的数据应该如何被保存或访问(例如基于一种模式)。另外,模型管理模块213可处理内容推荐模型的生成。从而,模型管理模块213可通过控制逻辑205与配置管理模块207进行交互,以获取内容评级信息来生成内容推荐模型。这样,模型管理模块213还可在从内容评级信息生成内容推荐模型的过程中用作过滤器,从而使得未满足某种标准的数据(诸如有关特定应用的数据)不被用于生成内容推荐模型。[0061]图3是根据一个实施例用于支持基于特征的协同过滤的推荐框架的示例结构其。如所示那样,图103表示推荐引擎103、配置文件数据库109、配置文件管理模块207、模型管理模块213、模型301a-301d、分析器303a_303d和配置文件305a_305n。在这个图中,推荐引擎103为至少四个不同应用同时地进行模型301a-301d (例如包括两个基于项目的CF模块和基于特征的CF模块)的生成。这样,推荐引擎103可适用于多个应用。
[0062]作为例子,当请求被接收到后,在推荐引擎103,为了为应用生成内容推荐模型,推荐引擎103可通过配置文件管理器207获取配置文件数据库207中的配置文件305a_305n内容评级信息。如上所述,配置文件305a-305n可以与应用、一个或多个其它应用或其组合相关联。从而,通过模型管理模块213,推荐引擎103根据内容评级信息生成内容推荐模型。在这个步骤中,模型管理模块213可以使用分析器303a-303d过滤出生成内容推荐模型所不必要的数据。因此,例如根据与用于生成内容推荐模型的应用的相关性,仅有一个子集的内容评级信息被提取。在一个实施例中,分析器303a-303d还可以将基于项目内容评级映射到基于特征的内容评级,以支持这里所述的基于特征的CF的多个实施例。另外,为了生成内容推荐模型,分析器303a-303d还可以确定有关应用的第一部分内容评级信息和有关其它应用的第二部分内容评级信息之间的一种或多种关系。为了确定该关系,分析器303a-303b可依赖于指定内容评级信息所使用的模式和/或分类法,以及内容评级信息的语义分析。例如若关系和/或项目-特征映射被定义在模式中时,关系确定和/或映射可基于该模式。若关系不存在于模式中,关系确定和/或映射可以根据语义分析。若一些关系定义在模式中,而其它关系未定义,关系的确定可基于模式和语义分析。
[0063]同时,推荐引擎103可以根据指定内容评级信息所使用的模式来从应用和/或一个或多个其它应用中收集其它内容评级信息。在一个实施例中,其它内容评级信息可以是相关于基于特征的内容评级,由此,除了项目本身或替代项目本身,可为项目特征提供评级。通过配置文件管理器模块207,推荐引擎103接着将所收集的信息汇集在配置文件数据库109的各个配置文件305a-305n中。在一个实施例中,尽管基于特征的内容评级可相关于任何项目,为了改善系统性能,但这种基于特征的内容评级对于应用于依赖于时间的和/或基于关键字的项目是特别有用的。
[0064]图4是根据一个实施例用于提供基于特征的协同过滤的过程的流程图。在一个实施例中,推荐引擎103执行过程400并例如实现在如图8所示的包含处理器和存储器的芯片组中。在步骤401,推荐引擎103接收请求,以为一个或多个用户生成有关一个或多个项目(例如诸如优惠的短寿命项目)的一个或多个推荐。例如,一个或多个项目包括一种或多种折扣、一种或多种优惠券、一种或多种优惠、一种或多种产品、一种或多种服务或它们的组合
[0065]推荐引擎103处理和/或促进处理有关一个或多个项目的描述信息,以生成一个或多个项目到一个或多个特征的映射(步骤403)。作为例子,描述信息至少部分地包括一个或多个种类、一个或多个关键字、一个或多个标记或它们的组合。在一个实施例中,一个或多个项目i被映射到P维空间(c,kO,Kl,k2, "^kn),其中c是i的种类或特征,k0至kn表示在一个或多个特征分类法中有关c的关键字或标记。在一个实施例中,推荐引擎103至少部分地产生一个或多个分类法中的一个或多个特征的说明。在某些实施例中,项目可被部分地映射到特征(例如使用百分比),并且关键字或标记可以重叠。回到该过程中,给定未完成的用户-项目MXN矩阵,r (u,i)表示用户u赋予项目i的评级或偏好信息。在一个实施例中,例如通过计算每个种类c和关键字k出现的次数,推荐引擎103将用户u已经采取行动(例如用户交互)的一个或多个项目映射到P维空间。在一个实施例中,P维空间的每个维度可以被标准化为预定范围(例如O至I)。
[0066]在另一个实施例中,推荐引擎103还可以至少根据该映射为一个或多个特征确定各自的权重系数。例如,推荐引擎103可以乘以对应评级r (U,i)作为权重或权重系数。因此,推荐引擎103可以将MXN矩阵(即用户-项目矩阵)变换为MXP矩阵(即用户-特征矩阵)。
[0067]接着,推荐引擎103确定有关一个或多个用户的一个或多个特征的偏好信息(步骤405)。在一个实施例中,通过协同过滤的应用来确定偏好信息。例如,协同过滤至少部分地基于有关一个或多个项目的第一组用户交互信息、有关一个或多个特征的第二组用户交互信息。作为例子,推荐引擎103在MXP矩阵上应用CF技术来获取完整的MXN矩阵,以生成推荐。在一个实施例中,协同过滤的应用、偏好信息的确定或它们的组合至少部分地基于上述各个权重系数。在步骤407中,推荐引擎103至少部分地处理或促进处理映射和用户偏好信息以生成一个或多个推荐。
[0068]在一个实施例中对于短寿命项目,在各个寿命届满后,推荐引擎103能够至少部分地移除一个或多个项目。这样,推荐引擎103仅需处理有效性未届满项目的推荐。
[0069]图5和6是在根据多个实施例的图1-5的处理中所使用的用户接口的图。图5描述一个用户接口(UI )500其提供一系列使用基于特征的CF生成的推荐优惠(例如短寿命项目)。在这个例子中,用户对团购优惠感兴趣。不幸的是,每天有许多最新发布的优惠分布于成千上万的网站。系统100提供基于CF的推荐,其能够实时或基本实时地提供快速出现和消失项目的推荐。如所示那样,UI500至少部分地根据基于特征的CF方法的多个实施例呈现推荐的优惠501以及用户预测的评级503。至少某些优惠具有短寿命(鞋子优惠I天,比萨优惠2小时)。
[0070]图6表不UI600,其用于手工输入和分类优惠以用于以后的推荐。UI600包括用于描述优惠的优惠输入字段601和用于指定关联或映射该优惠的一个或多个特征的特征输入字段603。在一个实施例中,可以在一个或多个预定分类法中指定特征,从而该特征能够在不同项目中一致。在一个实施例中,输入优惠使得推荐引擎103能够参照该优惠做出基于特征的CF推荐。
[0071]可以通过软件、硬件、固件或软件和/或固件和/或硬件的组合来有利地实现这里所述的用于提供基于特征的协同过滤。例如,这里所述的过程可通过处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等来有利地实现。用于实现所述功能的这种示例硬件在后面描述。
[0072]图7表示其上可实现本发明的计算机系统700。尽管参照特定设备或装置描述了计算机系统700,但可以设想图7中的其它设备或装置(例如网络元素、服务器等)可以应用于所示的系统700的硬件和组件。计算机系统700被编程(例如通过计算机程序代码或指令),以提供如这里所述的基于特征的协同过滤,并包括诸如总线710的通信机构,用于在计算机系统700的其它内容和外部组件之间传递信息。信息(也被称为数据)被表示为可测量现象的物理表示,典型的是电压,但在其它实施例中可包括如磁的、电磁、压力、化学、生物、分子、原子、亚原子和量子的相互作用等。例如,北和南磁场或零和非零电压表示二进制数字的两个状态(O,I)。其他现象可以表示更高基数的数字。测量前多个同时发生的量子态的叠加表示一个量子位(量子比特)。一个或多个数字的序列组成数字数据,其被用于表示字符的数字或代码。在某些实施例中,被称为模拟数据的信息由特定范围内几乎连续的可测量值表示。计算机系统700或它的一部分组成用于执行提供基于特征的系统过滤的一个或多个步骤的构件。
[0073]总线710包括一个或多个信息的平行导体,从而使得信息在耦合到总线710的设备间快速传递。用于处理信息的一个或多个处理器与总线710耦合。
[0074]处理器(或多个处理器)702根据有关提供基于特征的系统过滤的计算机程序代码的指定,在信息上执行一组操作。计算机程序代码是一组指令或提供指令的声明,以操作处理器和/或计算机系统执行指定功能。代码例如可以用计算机程序语言来编写,它可以编译成处理器的母语指令组。还可以直接使用母语指令组(例如机器语言)来编写代码。这组操作包括从总线710取来信息和将信息置于总线710上。这组操作通常还包括比较两个或多个信息单元、移位信息单元和合并两个或多个信息单元,诸如通过加法或乘法或像0R,异OR (XOR)和AND的逻辑操作。通过被称为指令(例如一个或多个数字的操作码)的信息可向处理器表示可以由处理器执行的这组操作的每个操作。由处理器执行一系列的操作,诸如操作码序列、连续处理器指令(也被称为计算机系统指令或简单称为指令)。处理器可以实现为机械的、电的、磁的、光的、化学的或量子组件以及它们的组合。
[0075]计算机系统700还包括耦接到总线710的存储器704。存储器704(诸如随机存取存储器(RAM)或任何其他动态存储设备)保存用于提供基于特征的协同过滤的处理器指令。动态存储器允许计算机系统700修改存储在其中的信息。RAM允许保存在被称为存储器地址中的位置信息单元独立于邻接地址的信息被保存和获取。存储器704被处理器702用于保存在指令执行期间的临时值。计算机系统700还包括一个只读存储器(ROM) 706或耦合到总线710上的用于存储静态信息的任何其它静态存储设备,该静态存储设备包括不被计算机系统700改变的指令。某些存储器由易失性存储器组成,在掉电时它们会失去保存于其上的信息。非易失性存储器(持久性)708也耦合到总线710上,该非易失性存储器(持久性)708如磁盘、光盘或闪存卡,其用于存储包含指令的信息,即使计算机系统700关闭或掉电,其仍然存在。
[0076]包括用于提供基于特征的协同过滤的指令的信息从外部输入设备712 (诸如包含由人类用户操作的数字字母键的键盘或传感器等)提供给总线710以给处理器使用。传感器检测它附近的状况并将这些转换为与可用于表示计算机系统700中的信息的可测量现象相兼容的物理表示。耦合到总线710上主要用于与人们进行交互的其它外部设备包括显示器设备(诸如阴极射线管显示器(CRT)、液晶显示器(IXD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、等离子屏幕或用于显示文本或图像的打印机)和定点设备716(如鼠标、轨迹球、光标方向键,或者用于控制在显示器714上呈现的小光标的位置并发出与显示器714上呈现的图形元素有关的命令的运动传感器)。在某些实施例中,例如在其中计算机系统700自动执行所有功能而没有人工输入的实施例中,一个或多个的外部设备712、显示设备714和定点设备716可以被省略。
[0077]在所示实施例中,诸如专用集成电路(ASIC)的专用硬件耦合到总线710。专用硬件被配置为执行不由处理器702执行的操作,以足够快地用于专用目的。ASIC的例子包括用于生成显示器714的图像的图形加速卡、用于加密或解密通过网络发送的消息的加密板、语音识别以及到专用外部设备的接口,诸如机器人臂和医用扫描装置,其重复执行某些在硬件中更有效实现的复杂序列操作。
[0078]计算机系统700还包括一个或多个耦合到总线710上的通信接口 770的实例。通信接口提供单向或双向通信,用于耦合到利用其自己的处理器进行操作的多个外部设备上,诸如打印机、扫描仪和外部盘。一般来说,耦合是与网络链路778的耦合,其连接到本地网络780,利用其自己的处理器进行操作的多个外部设备与本地网络780相连接。例如,通信接口 770可以是个人计算机上的并行端口或串行端口或通用串行总线(USB)端口。在某些实施例中,通信接口 770是集成服务数字网络(ISDN)卡或数字用户线(DSL)卡或电话调制解调器,该电话调制解调器提供到对应类型的电话线的信息通信连接。在某些实施例中,通信接口 770是线缆调制解调器,其将总线710上的信号转换为用于在同轴电缆上的通信连接的信号或用于光纤线缆上的通信连接的光信号。作为另一个例子,通信接口可以是局域网(LAN)卡,以为兼容的LAN (诸如Ethernet)提供数据通信连接。也可以实现无线链路。对于无线链路,通信接口 770发送或接收或发送和接收电的、声的或电磁信号,包括红外和光信号,其载有诸如数字数据的信息流。例如,在无线手持设备中(诸如像蜂窝电话的移动电话中),通信接口 770包括被称为无线电收发器的无线电宽带电磁发射器和接收器。在某些实施例中,通信接口 770能够连接到通信网络105,以用于提供基于特征的过滤。
[0079]这里所述的术语“计算机可读介质”是指任何类型介质,其参与向处理器702提供信息,包括用于执行的指令。这种介质可采用任何形式,包括但不局限于计算机可读存储器介质(例如非易失性介质、易失性介质)和传输介质。非瞬态介质(诸如非易失性存储器)例如包括光盘或磁盘(诸如存储器708)。易失性存储器例如包括动态存储器704。传输介质例如包括双绞线、同轴电缆、铜线、光纤和穿越空间而无需线缆或电线的载波(诸如声波和电磁波,包括无线,光和红外波)。信号包括在振幅、频率、相位、极性和其它通过传输介质发送的物理属性方面的人为瞬时变化。计算机可读介质的一般形式例如包括软盘、柔性盘、硬盘、磁带、任何其他磁性介质、CD-ROM、CDRff, DVD、任何其它光学介质、穿孔卡片、纸带,光学标记片材、具有孔模式的任何其他物理介质或其他的光学识别的标记、RAM、PROM、EPROM、FLASH-EPROM、EEPROM、闪存存储器、任何其它存储器芯片或盒式磁带、载波或从计算机能够读取的任何其它介质。计算机可读存储器介质这个术语在这里被用作指代除传输介质外的任何计算机可读介质。
[0080]在一个或多个有形介质中编码的逻辑包括计算机可读存储介质和专用硬件(如ASIC720)上的处理器指令的一者或两者。
[0081]网络链路778通常使用传输介质通过一个或多个网络向使用或处理信息的其它设备提供信息。例如,网络链路779可通过局域网780向主机782或由互联网服务供应商(ISP)操作的装置784提供连接。ISP装置784反过来通过现在被统称互联网790的网络中的公共、广域分组交互网络提供数据通信服务。
[0082]连接到互联网上被称为服务器主机792的计算机寄存一个过程,其提供服务以响应通过互联网接收到的信息。例如,服务器主机792寄存一个过程,其为显示器714上的呈现提供表示视频数据700的信息。可以设想,系统700的组件可以按照各种配置被安置在其它计算机系统,例如主机782和服务器792内。
[0083]至少本发明的某些实施例涉及使用计算机系统来实现这里所述的某些或所有技术。根据本发明一个实施例,这些技术由计算机系统700执行以响应处理器702执行包含在存储器704中的一个或多个序列的一个或多个的处理器指令。这些指令(也被称为计算机指令、软件和程序代码)可以从诸如存储设备708或网络链路778的另一个计算机可读介质上读入到存储器704中。包含在存储器704中的指令序列的执行使得处理器702执行这里所述的一个或多个方法步骤。在可选实施例中,诸如ASIC720的硬件可被使用以替代软件来实现本发明。从而,除非特别说明,这里的实施例并不局限于任何硬件和软件的特定组
口 ο
[0084]在网络链路778和其它网络上通过通信接口 700传输的信号将信息传递到计算机系统700或从从计算机系统700传递。计算机系统700可以通过网络780、790等,通过网络链路778和通信接口 770发送和接收信息,包括程序代码。在使用互联网790的实例中,在从计算机700发送消息的请求下,服务器主机792通过互联网790、ISP设备784、局域网780和通信接口 770传送用于由从计算机700所发送的消息所请求的特定应用的程序代码。当它被接收到时,所接收的代码可由处理器702执行,或被保存到存储器704、存储设备708或任何其它非易失性存储器中以用于以后执行。在这种方式中,计算机系统700可获取载波上信号形式的应用程序代码。
[0085]多种形式的计算机可读介质可以涉及将一个或多个序列的指令或数据或这两者加载到处理器702上用于执行。例如,指令和数据可以首先被加载到诸如主机782的远程计算机的磁盘上。远程计算机将指令和数据加载到它的动态存储器上并使用调制解调器通过电话线发送指令和数据。计算机系统700本地的调制解调器在电话线上接收指令和数据并使用红外发射器将指令和数据转换为用作网络链路779的红外载波上的信号。用作通信接口 770的红外探测器接收携带在红外信号中的指令和数据并将表示指令和数据的信息置于总线710上。总线710将信息传递到存储器704,从那里处理器702获取它并使用与指令一起发送的某些数据执行指令。在由处理器702执行之前或之后,在存储器704中接收到的指令和数据可选择地被保存于存储设备708。
[0086]图8表示其上可实现本发明实施例的芯片组800。芯片组800可以被编程以提供这里所述的基于特征的协同过滤,并例如包括并入在一个或多个物理包装(例如芯片)中的参照图7所示的处理器和存储器组件,。作为例子,物理包装包括结构化装配(例如基板)上的一个或多个材料、组件和/或线路,以提供一个或多个特征,诸如物理强度、尺寸节省和/或电交互限制。可以设想在某些实施例中,芯片组800可以在单个芯片中实现。还可以设想在某些实施例中,芯片组或芯片800可以实现为单个“片上系统”。还可以设想在某些实施例中,例如不使用单独的ASIC,而如这里所述的所有相关功能由处理器或多个处理器实现。芯片组或芯片800或其一部分组成一个构件,其用于执行提供有关功能可用性的用户接口导航信息的一个或多个步骤。芯片组或芯片800或其一部分组成一个构件,其用于执行提供基于特征的协同过滤的一个或多个步骤。
[0087]在一个实施例中,芯片组或芯片800包括诸如总线801的通信机构,以用于在芯片组800的组件之间传递信息。处理器803连接到总线上来执行指令和处理例如保存在存储器805中的数据。处理器803可包括一个或多个处理核,每个核被配置为独立地执行。多核处理器使得多在单个物理包装中进行多个处理。多核处理器的例子包括两个、四个、八个或更多数量的处理核。可选择地或替代地,处理器803还可包括一个或多个微处理器,其通过总线801被串联地配置为能够独立地执行指令、流水线和多线程。处理器803还可附有一个或多个专用组件来实现某些处理功能和任务,诸如一个或多个数字信号处理器(DSP)807或一个或多个专用集成电路(ASIC)809。DSP807通常被配置为独立于处理器803实时地处理真实世界中的信号(例如声音)。同样,ASIC809被配置为执行不易由更通用的处理器实现的专门功能。有助于这里所述的创造性功能的其它专用组件包括一个或多个现场可编程门阵列(FPGA)(未示出)、一个或多个控制器(未示出)、一个或多个其它专用计算机芯片。
[0088]在一个实施例中,芯片组或芯片800仅包括一个或多个处理器和支持和/或涉及和/或用于一个或多个处理器的某些软件和/或固件。
[0089]处理器803和附属组件通过总线801连接到存储器805。存储器805包括动态存储器(例如RAM、磁盘、可写入光盘等)和静态存储器(例如ROM、CDROM等),用于保存可执行的指令,当该指令被执行时其实现这里所述的创造性的步骤,以提供基于特征的协同过滤。存储器805还保存有关创造性步骤的执行的数据或由其生成的数据。
[0090]图9是用于通信的移动终端(例如手持设备)的示例组件的图,其能够根据一个实施例运行于图1的系统中。在某些实施例中,移动终端901或它的一部分组成用于执行提供基于特征的协同过滤的一个或多个步骤的构件。通常,无线电接收器通常根据前端和后端特征来定义。接收器的前端包括所有无线电频率(RF)电路,而后端包括所有基带处理电路。如本申请中所使用的那样,术语“电路”是指:(I)单纯硬件实现(诸如仅以模拟和/或数字电路的实现)和(2)电路和软件(和/或固件)的结合(诸如,当适用于特定上下文中,是指(多个)处理器的结合,其包括(多个)数字信号处理器、软件和(多个)存储器,它们一起工作使得诸如移动电话或服务器的装置实现多种功能)。“电路”的这种定义适用于本申请(包括任一权利要求)中的这个术语的所有使用,根据另一个例子,如本申请所使用那样,并且如果可用于特定上下文中时,术语“电路”还会覆盖仅处理器(或多个处理器)的和它的(它们的)附带软件和/或固件的实现。如果适用于特定上下文,术语“电路”还将覆盖例如移动电话中的基带集成电路或应用处理器集成电路或蜂窝网络设备或其他网络设备中的类似集成电路。
[0091]电话的相关内部组件包括主控制器单元(MCU) 903,数字信号处理器(DSP) 905和包括麦克风增益控制单元和扬声器增益控制单元的接收器/发射器单元,。主显示单元907向用户提供显示,以支持执行或支持提供基于特征的协同过滤的步骤的多种应用和移动终端功能。显示器907包括显示电路,其被配置为显示至少一部分移动终端(例如移动电话)的用户接口。另外,显示器907和显示电路被配置为促进用户控制至少一部分移动终端的功能。音频功能电路909包括麦克风911和麦克风放大器,该麦克风放大器放大从麦克风911输出的语音信号。从麦克风911输出的放大后的语音信号被反馈到编码器/解码器(CODEC) 913。
[0092]无线电部件915放大功率并转换频率以用来通过天线917与包括在移动通信系统中的基站进行通信。如本领域熟知那样,利用来自耦合到双工器921或电路其或天线开关的PA919的输出,功率放大器(PA) 919和发射器/调制电路可操作地响应MCU903。PA919还耦合到电池接口和功率控制单元920。[0093]在使用时,移动终端901的用户向着麦克风911讲话,她或他的语音连同检测到的背景噪音被转换成模拟电压。接着,通过模拟至数字转换器(ADC) 923,模拟电压被转换成数字信号。控制单元903将数字信号路由到DSP905用于其中的处理,诸如语音编码、信道编码、加密和交织。在一个实施例中,处理后的语音信号使用蜂窝传输协议(诸如增强型数据速率全球演进(EDGE)、通用分组无线电业务(GPRS)、全球移动通信系统(GSM)、互联网协议多媒体子系统(MS)、通用移动电信系统(UMTS)等)以及任何其它适当的无线电介质(例如,微波存取(WiMAX)技术、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址接入(WCDMA)、无线电保真(WiFi )、卫星或它们的任意组合等),通过未单独示出的单元进行编码。
[0094]接着,编码的信号被路由到均衡器925,用于补偿在空中传输期间发生的频率依赖性损伤,诸如相位和振幅失真。均衡比特流后,调制器927将该信号与在RF接口 929中生成的RF信号相结合。通过频率或相位调制,调制器927生成正弦波。为了准备发射的信号,上转换器931将来自调制器927的正弦波合并到由合成器933生成的另一个正弦波上以获得所需要的发射频率。接着,通过PA919发送信号以将信号增加到适当的功率水平。在实际系统中,PA919扮演一个可变增益放大器,它的增益由DSP905自网络基站接收的信息来控制。接着,信号在双工器921中被过滤并可选择地发送到天线耦合器935,以匹配阻抗来提供最大功率传输。最后,通过天线917将信号发送到本地基站。自动增益控制(AGC)可以被提供以控制接收器最后阶段的增益。信号从这里被转送到远程电话,该远程电话可以是另一个蜂窝电话、连接到公共交换电话网络(PSTN)或其它电话网络上的任何其它移动电话或座机。
[0095]传送到移动终端901的语音信号通过天线917被接收到并通过低噪音放大器(LNA) 937被立即放大。当解调器941剥离RF而仅留下数字比特流时,下转换器939降低载波频率。接着信号通过均衡器925并由DSP905处理。数字-模拟转换器(DAC)943转换信号并将生成的输出通过扬声器945传送到用户,所有操作受到主控制单元(MCU) 903d的控制,其能够被实现为中央处理器(CPU)(未示出)。
[0096]MCU903从键盘947接收多种信号,包括输入信号。结合其他用户输入组件(例如麦克风911)的键盘947和/或MCU903包括用于管理用户输入的用户接口电路。MCU903运行用户接口软件,以促进用户控制移动终端901的至少某些功能,以提供基于特征的协同过滤。MCU902还分别向显示器907和语音输出切换控制器传送显示命令和切换命令。另外,MCU903与DSP905交换信息并能够访问可选并入的SM卡949和存储器951。另外,MCU903执行终端所需的多种控制功能。取决于实现方式,DSP905可以在语音信号上执行任何多种传统数字处理功能。另外,DSP905根据由麦克风检测到的信号确定本地环境的背景噪音水平并设置麦克风911的增益至被选择用于补偿移动终端901的用户的自然趋势的水平。
[0097]C0DEC913包含ADC923和DAC943。存储器951保存多种数据,包括来电音数据并能够保存包括例如通过全球互联网接收的音乐数据的其它数据。软件模块可寄存于RAM存储器、闪存存储器、寄存器或已知的任何形式的可写入存储器介质中。存储设备951可以是但不局限于单个存储器、⑶、DVD、R0M、RAM、EEPR0M、光存储、磁盘存储器、闪速存储器或其他任何能够存储数字数据的非易失性存储介质中。
[0098]可选并入的SM卡949例如载有重要信息,诸如蜂窝电话号码、载波提供服务、订阅详情和安全信息。SM卡949主要服务用于识别无线电网络上的移动终端901。卡949还包含存储器,用于保存个人电话号码注册、文本消息和用户特定的移动终端设置。
[0099]尽管已经结合许多实施例和实现方式描述了本发明,但本发明并不局限于此,而是覆盖多种显而易见的修改和等同安排,其落入所附权利要求的保护范围内。尽管本发明的特征以权利要求中的某些结合来表示,但可以设想这些特征可以被安排成任何组合或顺序。
【权利要求】
1.一种方法,包括:促进处理和/或处理(I)数据和/或(2)信息和/或(3)至少一个信号,所述(I)数据和/或(2)信息和/或(3)至少一个信号至少部分地基于: 为一个或多个用户生成有关一个或多个项目的一个或多个推荐的请求; 对有关所述一个或多个项目的描述信息的处理,以生成所述一个或多个项目到一个或多个特征的映射; 对于所述一个或多个用户关于所述一个或多个特征的偏好信息的至少一个判定;以及 对所述映射和所述偏好信息的至少部分的处理,以生成所述一个或多个推荐。
2.如权利要求1所述的方法,其中对所述偏好信息的所述判定至少部分地包括协同过滤的应用。
3.如权利要求2所述的方法,其中所述协同过滤至少部分地基于有关所述一个或多个项目的第一组用户交互信息,有关所述一个或多个特征的第二组用户交互信息。
4.如权利要求3所述的方法,其中所述(I)数据和/或(2)信息和/或(3)至少一个信号还至少部分地基于: 对所述映射、所述协议过滤的应用或其组合的初始化,该初始化至少部分地根据对所述第一组用户交互信息不可用或稀少的判定。
5.如权利要求3和4中任一项所述的方法,其中所述(I)数据和/或(2)信息和/或(3)至少一个信号还至少部分地基于: 对所述映射、所述协议过滤的应用或其组合的初始化,所述初始化至少部分地根据所述第一组用户交互信息、所述第二组用户交互信息或其组合的一个或多个更新。`
6.如权利要求1-5中任一项所述的方法,其中所述(I)数据和/或(2)信息和/或(3)至少一个信号还至少部分地基于: 对所述映射、所述协议过滤的应用或其组合的初始化,所述初始化至少部分地根据对所述一个或多个项目各自的寿命低于预定阈值的判定。
7.如权利要求6所述的方法,其中所述(I)数据和/或(2)信息和/或(3)至少一个信号还至少部分地基于: 在各自的寿命届满后对一个或多个项目的移除。
8.如权利要求1-7中任一项所述的方法,其中所述映射、所述协同过滤的应用、所述一个或多个推荐的生成基本实时地执行。
9.如权利要求1-8中任一项所述的方法,其中所述(I)数据和/或(2)信息和/或(3)至少一个信号还至少部分地基于: 对一个或多个分类法中所述一个或多个特征的说明。
10.如权利要求1-9中任一项所述的方法,其中所述(I)数据和/或(2)信息和/或(3)至少一个信号还至少部分地基于: 至少部分地基于所述映射的用于所述一个或多个特征的各自的权重系数, 其中所述协同过滤的应用、对所述偏好信息的判定或其组合至少部分地基于对应权重系数。
11.如权利要求1-10中任一项所述的方法,其中所述(I)数据和/或(2)信息和/或(3)至少一个信号还至少部分地基于: 所述描述信息中的所述一个或多个特征的发生信息,其中所述映射至少部分地基于所述发生信息。
12.如权利要求1-11中任一项所述的方法,其中所述描述信息至少部分地包括一个或多个种类、一个或多个关键字、一个或多个标记或其组合。
13.如权利要求1-12中任一项所述的方法,其中所述一个或多个项目包括一种或多种打折、一种或多种优惠券、一种或多种优惠、一种或多种产品、一种或多种服务或其组合。
14.一种方法,包括: 接收一个请求,其为一个或多个用户生成有关一个或多个项目的一个或多个推荐;处理和/或促进处理有关所述一个或多个项目的描述信息,以生成所述一个或多个项目到一个或多个特征的映射;以及 为所述一个或多个用户确定有关所述一个或多个特征的偏好信息;以及 至少部分地处理和/或促进处理所述映射和所述偏好信息,以生成所述一个或多个推荐。
15.如权利要求1所述的方法,其中判定所述偏好信息至少部分地包括协同过滤的应用。
16.如权利要求15所述的方法,其中所述协同过滤至少部分地根据有关所述一个或多个项目的第一组用户交互信息、有关所述一个或多个特征的第二组用户交互信息。
17.如权利要求16所述的方法,还包括: 至少部分地根据对所述第一组用户交互信息不可用户或稀少的判定,至少使得初始化所述映射、所述协议过滤的应用或其组合。
18.如权利要求16和17中任一项所述的方法,还包括: 至少部分地根据所述第一组用户交互信息、所述第二组用户交互信息或其组合的一个或多个更新,至少部分地使得初始化所述映射、所述协议过滤的应用或其组合。
19.如权利要求14-18中任一项所述的方法,还包括: 至少部分地根据对所述一个或多个项目具有的各自的寿命低于预定阈值的判定,至少部分地使得初始化所述映射、所述协议过滤的应用或其组合。
20.如权利要求19所述的方法,还包括: 在其中各自的寿命届满后至少部分地使得移除所述一个或多个项目。
21.如权利要求14-20中任一项所述的方法,其中所述映射、所述协同过滤的应用、所述一个或多个推荐的生成基本实时地执行。
22.如权利要求14-21中任一项所述的方法,还包括: 使得至少部分地说明一个或多个分类法中所述一个或多个特征。
23.如权利要求14-11中任一项所述的方法,还包括: 至少部分地基于所述映射判定所述一个或多个特征的各自的权重系数, 其中所述协同过滤的应用、对所述偏好信息的判定或其组合至少部分地基于各自的权重系数。
24.如权利要求14-23中任一项所述的方法,还包括: 在所述描述信息中判定所述一个或多个特征的发生信息, 其中所述映射至少部分地基于所述发生信息。
25.如权利要求14-24中任一项所述的方法,其中所述描述信息至少部分地包括一个或多个种类、一个或多个关键字、一个或多个标记或其组合。
26.如权利要求14-25中任一项所述的方法,其中所述一个或多个项目包括一种或多种打折、一种或多种优惠券、一种或多种优惠、一种或多种产品、一种或多种服务,或其组合。
27.一种装置,包括: 至少一个处理器;和 至少一个存储器,其包括用于一个或多个程序的计算机程序代码, 所述至少一个处理器和所述计算机程序代码被配置为,用所述至少一个处理器,使得所述装置至少执行以下步骤: 接收一个请求,其为一个或多个用户生成有关一个或多个项目的一个或多个推荐;处理和/或促进处理有关所述一个或多个项目的描述信息,以生成所述一个或多个项目到一个或多个特征的映射;和 为所述一个或多个用户确定有关所述一个或多个特征的偏好信息;和 至少部分地处理和/或促进处理所述映射和所述偏好信息,以生成所述一个或多个推荐。
28.如权利要求27所述的装置,其中判定所述偏好信息至少部分地包括协同过滤的应用。
29.如权利要求28所述的装置,其中所述协同过滤至少部分地根据有关所述一个或多个项目的第一组用户交互信息、有关所述一个或多个特征的第二组用户交互信息。
30.如权利要求29所述的装置,其中还使得所述装置: 至少部分地根据对所述第一组用户交互信息不可用户或稀少的判定,至少使得初始化所述映射、所述协议过滤的应用或其组合。
31.如权利要求29和30中任一项所述的装置,其中还使得所述装置: 至少部分地根据第一组用户交互信息、第二组用户交互信息或其组合的一个或多个更新,至少部分地使得初始化所述映射、所述协议过滤的应用或其组合。
32.如权利要求27和31中任一项所述的装置,其中还使得所述装置: 至少部分地根据对所述一个或多个项目具有的各自的寿命低于预定阈值的判定,至少部分地使得初始化所述映射、所述协议过滤的应用或其组合。
33.如权利要求32所述的装置,其中还使得所述装置: 在各自的寿命届满后至少部分地使得移除所述一个或多个项目。
34.如权利要求27-33中任一项所述的装置,其中所述映射、所述协同过滤的应用、所述一个或多个推荐的生成基本实时地执行。
35.如权利要求27-34中任一项所述的装置,其中还使得所述装置: 使得至少部分地说明所述一个或多个分类法中的所述一个或多个特征。
36.如权利要求27-35中任一项所述的装置,其中还使得所述装置: 至少部分地基于所述映射判定用于所述一个或多个特征的各自的权重系数, 其中所述协同过滤的应用、对所述偏好信息的判定或其组合至少部分地基于各自的权重系数。
37.如权利要求27-36中任一项所述的装置,其中还使得所述装置:在所述描述信息中判定所述一个或多个特征的发生信息, 其中所述映射至少部分地基于所述发生信息。
38.如权利要求27-37中任一项所述的装置,其中所述描述信息至少部分地包括一个或多个种类、一个或多个关键字、一个或多个标记或其组合。
39.如权利要求27-38中任一项所述的装置,其中所述一个或多个项目包括一种或多种打折、一种或多种优惠券、一种或多种优惠、一种或多种产品、一种或多种服务或其组合。
40.如权利要求27-39中任一项所述的装置,其中所述装置是移动电话,其还包括: 用户接口电路和用户接口软件,其被配置为通过使用显示器促进用户控制所述移动电话的至少某些功能,并被配置为响应用户输入;和 显示器和显示器电路,其被配置为显示所述移动电话的至少一部分用户接口,所述显示器和显示器电路被配置为促进用户控制所述移动电话的至少某些功能。
41.一种计算机可读存储器介质,其载有一个或多个指令的一个或多个序列,当由一个或多个处理器执行时,所述指令使得装置执行权利要求14-26中任一项所述的至少一种方法。
42.—种装置,包括用于实现权利要求14-26任一项所述方法的构件。
43.如权利要求42所述的装置,其中所述装置是移动电话,其还包括: 用户接口电路和 用户接口软件,其被配置为通过使用显示器促进用户控制所述移动电话的至少某些功能,并被配置为响应用户输入;和 显示器和显示器电路,其被配置为显示所述移动电话的至少一部分用户接口,所述显示器和显示器电路被配置为促进用户控制所述移动电话的至少某些功能。
44.一种计算机程序产品,其包括一个或多个指令的一个或多个序列,当由一个或多个处理器执行时,所述指令使得装置至少实现权利要求14-26中任一项所述的方法。
45.一种方法,包括促进访问被配置为允许访问至少一种服务的至少一个用户接口,所述至少一种服务被配置为执行权利要求14-26中任一项所述的方法。
46.一种方法,包括促进处理和处理(I)数据和/或(2)信息和/或(3)至少一个信号,所述(I)数据和/或(2)信息和/或(3)至少一个信号至少部分地基于权利要求14-26中任一项所述的方法。
47.一种方法,包括促进创建和/或促进修改(I)至少一个设备用户接口元件和/或(2)至少一个用户设备接口功能,所述(I)至少一个设备用户接口元件和/或(2)至少一个用户设备接口功能至少部分地基于权利要求14-26中任一项所述的方法。
【文档编号】G06F17/30GK103620593SQ201180071727
【公开日】2014年3月5日 申请日期:2011年4月19日 优先权日:2011年4月19日
【发明者】杜楠, 田继雷, 汪浩 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1