用于生成推荐的方法和系统的制作方法

文档序号:6655182阅读:205来源:国知局
专利名称:用于生成推荐的方法和系统的制作方法
技术领域
本发明涉及因特网应用领域。具体而言,本发明涉及用于利用来自多个领域的用户输入数据生成产品或服务推荐(recommendation)的方法和 系统。
背景技术
推荐是人们搜索并找到他们所需要的东西的最强有力的方式之一。不 论是想买照相机还是试图找到餐馆,人们都依赖于从诸如朋友、专家和出 版物之类的各种来源获得推荐。在计算机生成的推荐方面的研究已经开展了几十年,并且已产生了大 量出版物和各种方法,以及获得一系列成功的许多工作系统。计算机生成 的推荐可以基于来自各种来源的专门知识的代码化。这在二十世纪七十年 代和八十年代充斥的基于专家系统的应用就是明证。该方法的问题是在计 算机应用中捕捉和维护专门知识时的努力和困难。解决专家系统的某些缺陷的另一种方法是机器学习系统,其中计算机 应用可通过基于过去的执行对其自身作出适应性改变来提高其自己的性 能。对于推荐来说,该方法表现为协同过滤(collaborative filtering)算法 的形式。协同过滤使推荐基于其他用户的经验。当面临特定领域中的决定时, 人们通常会咨询在该领域有经验的朋友。协同过滤是跨超出朋友和熟人之 外的更大用户群组来构建这些推荐的一种方式。该方法以评论、评分、评 级、投票等形式获得这些用户的反馈作为输入。输入数据被分析,以找到 用户和项目之间的模式和相关性,这些模式和相关性转化为推荐成功的概 率。公知的使用协同过滤的个性化电影推荐网站是MovieLens
(http://www.movielens.com)。在该个性化电影推荐服务中,数千用户基 于它们对电影的喜爱或不喜爱的程度提交对该电影的评分。针对特定用户 的推荐可以通过査看与该用户所喜爱的电影相似的电影来进行。这提供了"喜爱这部电影的人还喜爱以下电影"类型的推荐。例如,查看电影Jerry Maguire的用户可能获得对A Few Good Men的电影推荐。在这种情况下,"相似"基于对如下的整个用户群体的评分的分析该用户群体已对与请 求推荐的特定用户评分的电影相关的电影进行了评分。如上述示例中所示,协同过滤领域中的现有系统集中于基于单个领域 内的用户数据来进行推荐。由于只从单个领域(例如电影)收集输入数 据,因此可以为该领域内的项目生成推荐。此外,协同过滤推荐的质量依 赖于可用的用户输入数据的量。但是如果在一个领域中只有少量数据可 用,则所生成的推荐就不太相关并且不太可靠。因此,需要一种能够解决基于从单个领域收集的数据进行推荐的问题 的系统和方法。具体而言,需要一种用于利用来自多个领域的用户输入数 据进行产品或服务推荐的系统和方法。发明内容本发明公开了一种用跨多个领域的用户输入数据来生成产品或服务推 荐的系统和方法。本发明提供了相对于现有系统的许多改进。首先,本发明对于业务兴趣跨多个领域的组织是有利的。推荐不局限 于单个领域。相反,来自多个领域的用户事件可以被综合考虑以产生在这 些领域中的任何一个中的推荐。例如,通过分析跨购物、新闻和电影的用 户反馈,系统可以向购买过溜冰板或阅读过关于溜冰板的新闻文章的用户 推荐溜冰板电影。此外,本发明允许访问更大量的用户输入数据,这进而又提高了推荐 质量。在上述溜冰板示例中,单是购物领域内的关于溜冰板的数据量可能 太少,以至于不能进行有质量的推荐。当单独查看时,在新闻和电影领域 内也是如此。但是,通过允许跨这些领域组合数据,这种模式的溜冰板相 关性可被找到,并被用于以其他方式不可能实现的推荐中。 一种用于生成跨多个产品或服务领域的推荐的方法包括收集数据库 中的跨多个产品或服务领域的用户事件;接收针对推荐的触发事件;分析 用户事件以编制数据库中的用户事件之间的相关性;以及响应于触发事 件,根据数据库中的用户事件之间的相关性,生成推荐。一种用于生成跨多个产品或服务领域的推荐的系统,包括用于经由 因特网向用户提供接口并且处理用户事件的多个领域服务器;用于存储用 户事件的数据库;以及推荐引擎。该推荐引擎还包括一个或多个计算机程 序,所述计算机程序包括用于执行以下步骤的指令收集数据库中的跨多 个产品或服务领域的用户事件;接收针对推荐的触发事件;分析用户事件 以编制数据库中的用户事件之间的相关性;以及响应于触发事件,根据数 据库中的用户事件之间的相关性,生成推荐。


在结合以下附图阅读对本发明实施例的详细描述之后,可以更清楚地 理解本发明的上述特征和优点及其其他特征和优点。 图1示出根据本发明实施例的跨领域推荐系统。图2A示出根据本发明实施例用于收集图1的用户数据库114中的用 户事件的方法。图2B示出根据本发明实施例的用于分析图1的用户数据库114中的 用户事件的方法。图3示出根据本发明实施例的用于生成相似项目的推荐的方法。 图4示出根据本发明实施例的用于生成个性化推荐的方法。 在所有附图中使用相似的标号。
具体实施方式
图1示出根据本发明实施例的跨领域推荐系统。该推荐系统包括一个 或多个推荐服务器102以及一个或多个客户端104。推荐服务器102经由 因特网103与客户端104接口。推荐服务器还包括多个个体领域,例如购 物领域106、新闻领域1Q8、电影领域110和其他领域112。
领域是为特定应用以不同硬件和软件实现的计算机系统,所述特定应用例如是购物应用106、新闻应用108和电影应用110。用户与每个特定 领域的交互也称为用户事件,是在用户数据库114中保存并更新的。用户 数据库114包括用于从每个个体领域收集到的数据的存储装置,所述数据 例如是电影数据116、新闻数据118、购物数据120和其他领域数据122。 用户104可以具有与所有领域的多个用户交互。此外,领域可以更一般化 地定义为信息类别。例如,不同领域可以包括人口统计信息(年龄、种 族、工作、教育水平等)、行为信息(互联网使用时间、所用网站的多样 性、用于访问互联网的计算机数目,等等)以及计算机系统信息(互联网 连接能力、多媒体系统能力、浏览器版本等)。推荐服务器102还包括推荐引擎126。正如下面章节中将描述的,推 荐引擎126响应于特定用户事件分析用户数据库114的跨多个领域的多个 部分,以找出跨多个领域的相关性,以便产生推荐。推荐引擎126处理来 自各种领域的数据片段124,例如电影数据116、新闻数据118、购物数据 120和其他领域数据122。注意,存储在不同领域中的用户事件可能具有 不同的类型、值和结构。推荐引擎126随后找出用户事件之间的相关性, 并且基于用户事件之间的相关性编制它的推荐。收集用户事件来自协同过滤的推荐是从对用户行为的分析导出的。该用户行为在用 户数据库114中被表示为用户事件。存储来自多个领域的这些用户事件比 起存储来自单个领域的用户事件更复杂,这是因为来自每个领域的数据格 式可能是不同的。由于从中收集存储在用户数据库114中的用户事件的领 域的多样性,这些用户事件是各不相同的。例如,来自购物领域106的事 件类型可能包括浏览产品、购买或退货。在新闻领域108中,事件类型可 能包括查看标题、查看概要或查看整篇新闻文章。在电影领域110中,事 件类型可能包括对电影进行评分和评论或购买在线电影票。除了事件类型的多样性之外,存在给定事件的事件值的多样性 教澄-电影、歌曲等的评分或评级。
*^#度-具有有序标度的文本值,例如高、中、低 ^^Ut本-评论、意见 ^定澄-除上述以外的任何值,通常是一个或多个标签的集合,例 如(开、关),(已发电子邮件、已发消息、已打电话)支持交叉领域推荐的用户数据库114能够存储这些各种各样的事件值。此外,用于存储来自多个领域的用户事件的用户数据库114是跨多个 领域而组织的,如下面的图2B中所示。在许多组织中,领域是由不同的 个体群组所管理的。所公开的推荐系统对来自多个领域的数据的聚集是跨 不同地理位置中的不同人群而协调和同步的。此外,推荐系统中的任何正 在发生的变化被动态地更新。换言之,所有领域中的变化都被此中央用户 数据库114所容纳。领域、产品、服务、用户和用户事件属性的集合可以 不断被改变。如下所述,本发明提供了对用户数据库的这一动态方面的支 持。图2A示出根据本发明实施例用于在图1的用户数据库114中收集用 户事件的方法。用户事件由以下输入参数来描述 wen'J (^户W)-特定用户的唯一标识符 ^y《(Ama&)-生成事件的行业、设施或系统,例如购物、新 闻、电影 ^m/J (观^ W)-领域内的特定项目或产品的唯一标识符 事伴类,(ew"/妙e)—被存储的事件的类型,例如购买、评分、评论 事伴/f (eve"""/"e)-对于给定领域、项目和事件类型用户的输入 该方法开始于步骤202中,然后移动到步骤204,在该歩骤中,该方 法接收要存储的用户事件,并且确定这是否是有效的用户事件。如果它不 是有效事件,则该方法确定它是否应当被丢弃或者数据库是否应当被扩 展。如果事件不被丢弃,则数据库被更新以反映新的用户事件。在步骤206中,评估事件的银鍵是否有效。如果银凝有效(206一 是),则该方法在步骤212中继续。如果否(206—否),则在步骤208 中,检查推荐系统的配置以确定当接收到新领域时数据库是否能够被动态更新。如果未启用动态领^C更新,则该方法移动到步骤238,在该歩骤 中,事件被丢弃。否则,如果启用了动态-#凝更新,则在步骤210中该领— ^^皮添加到有效领域集合,并且该方法在步骤212中继续。在步骤212中,该方法检查,/f类星y是否有效。如果有效(212— 是),则该方法在步骤218中继续。如果事/#^^95效(212一否),则在 步骤214中该方法检查是否启用了动态事伴^^便新。如果未启用动态事 伴^^便新(214_否),则该方法移动到步骤238并且该事件被丢弃。否 则,如果启用了动态事丫f^^便新(214—是),则在步骤218中该事伴类 星,皮添加到有效事件类型集合,并且该方法在步骤218中继续。接下来,在步骤218中,该方法检查事伴虔是否有效。如果有效(218—是),则该方法在步骤224中继续。如果事V^遣无效(218—否), 则在步骤220中该方法检查是否启用了动态^^度更新。如果未启用动态 #/#澄更新(220一否),则该方法移动到步骤238并且该事件被丢弃。否 则,如果启用了动态,伴澄更新(220—是),则在步骤222中该事伴澄被 添加到有效事件值集合,并且该方法在步骤224中继续。能够拥有动态接 受各种各样的事件类型值的灵活性是有利的。例如,对于领域"个人"和 事伴^^v"联络方法",已知的值可以是"(电子邮件、语音邮件、寻呼 机)"。当个人产品变化时,可以添加联络其他人的新方法,例如"网络 摄像头"。当用户利用此新特征时,新的用户事件将会被生成,其中值"网络摄像头"被用于"联络方法"。如果启用了动态事^7f更新,则系 统可以接受此用户事件并且继续。此方法允许了系统随着个体领域应用和 群组而自动生长和变化在歩骤224中,该方法检查^m^是否有效。如果有效(224—是), 则该方法在步骤224中继续。如果^mW无效(224—否),则在步骤226 中该方法检查是否启用了动态^m^更新。如果未启用动态^mW更新(226一否),则该方法移动到步骤238并且该事件被丢弃。否则,如果启 用了动态"em^更新(226—是),则在步骤228中该"em^被添加到有效 /temW集合,并且该方法在步骤230中继续。与上述针对事件值所描述的 灵活性相似,动态更新"em^的这种灵活性允许了系统自动处理在大多数
商业应用中不可避免的产品库存变化。在某些应用中,禁用动态Z'temW更 新的能力是必要的。例如,如果希望只对项目的子集生成推荐,则在有效itemid列表中只能允许这些项目。禁用动态"em^更新防止了不需要的项 目潜入候选推荐的池中。为了维护跨所有领域的itemid的唯一性,只在 itemid所发源的领〕统内检查其有效性。这允许了每个领 f (群组、性质、 应用)维护其自己的项目标识过程,而不必担心与其他领域发生名称空间 冲突。在步骤230中,该方法检査wen'd是否有效。如果有效(230_是), 则该方法在步骤236中继续。如果wenV/无效(230—否),则在步骤232 中该方法检查是否启用了动态wenV/更新。如果未启用动态w^n'J更新 (232一否),则该方法移动到步骤238并且该事件被丢弃。否则,如果启 用了动态wwr^更新(232—是),则在步骤234中该M化nW被添加到有效 wwnW集合,并且该方法在步骤236中继续。与上述针对MwnV/所描述的 灵活性相似,自动扩展数据库以存储新用户的事件的能力在用户群体每天 都在变化的大多数因特网应用中是必要的。但是,限制这些更新的灵活性 也可能是有益的,例如在除非用户同意了服务条款否则用户的事件不应当 被存储的情况下。在步骤236中,用户事件被存储到用户数据库114,并且该方法在步 骤240中结束。分析用户事件图2B示出根据本发明实施例的用于分析图1的用户数据库114中的 用户事件的方法。如图2B所示,用户数据库114被表示为多维阵列,其 中每个用户被表示在一个或多个行中,每行包含一个特定的用户事件。利用上面的溜冰板示例,所收集的第一用户事件是用户1查看了关于 溜冰板的整篇新闻文章。在此情况下事/^^f是规定值("是")。第二事 件是用户1已用等级80对一部溜冰板电影进行了评级。事斧遣是序数 值,在此情况下是0到100之间(包括0和100在内)的整数。第三事件 是用户1随后写了对此电影的评论。在此情况下事/f遣是自由文本。第四
事件是用户1购买了溜冰板。在此情况下,事W^f是反映为该项目付款的 量的序数。然后,第五事件示出对这些溜冰板项目的评级。在此情况下事斧;f是序数,在"低"、"中"和"高"标度上的"高"。存在许多可以用来找出用户事件之间的相关性的协同过滤算法。在本发明的一个实施例中,2003年4月16日递交的标题为"Affinity Analysis Method and Article of Manufacture"的美国专利申请No. 10/417,709中描述 的亲合引擎(Affinity Engine)被用于找出用户事件之间的相关性。这里 通过引用将此美国专利申请No. 10/417,709明确并入。亲合引擎处理用户 数据库114的在整个用户群体上收集的跨多个领域的多个部分,以确定用 户事件之间的相关性,例如用户1和用户数据库中的其他用户的用户事件 之间的相关性。相关值被指派以指示规范的用户事件之间的关系的权重, 并且相关值被存储在相似性数据库中。这些相关值被用于向后续的表现相 似的用户行为的用户生成推荐。例如,如果用户2也查看了关于溜冰板的 相同的整篇新闻文章,对同一溜冰板电影进行了评级并写了评论,则可以 基于由用户群体中的其他用户所展现的共同规范用户事件(例如用户1的 规范用户事件)来针对购买特定溜冰板向用户2生成推荐。注意,所公开 的发明独立于用于计算机用户事件之间的相关值的协同过滤算法。在认识 到某些类型的过滤算法可能更适合于对特定类型的用户事件进行过滤的情 况下,所公开的发明支持将任何协同过滤算法作为插件组件集成到推荐系 统中。推荐相似的项目项目之间的相似性提供了用于进行推荐的可能的标准。通常,人们会 找到被认为与其欣赏过的其他书籍相似的书籍来阅读。这延伸到其他领域电影、歌曲、服装、游戏和其他产品和服务。如果项目相像,或者更 明确地说,如果它们在其属性上具有相似的值,则它们被认为是相似的。 例如,在书籍情况下,属性可以是作者、小说还是非小说、流派和人物发 展。存在基于项目相似性计算推荐的不同方法。在图3所示的本发明的一个实施例中,该方法提供了在交叉领域推荐
的上下文中使用这些项目相似性的一种方式。针对相似的项目推荐的触发 事件,例如用户请求,包括以下输入参数 -j鍵-包含为之请求相似项目推荐的项目的行业、设施或系统,例 如购物、新闻、电影 ZtemW-领域内的特定项目或产品的唯一标识符 /#澄(Am^oW)-推荐的项目必须具有的最小相似性级别 ,'m'tem -所需要的推荐项目的最小数目 -所需要的推荐项目的最大数目 wc—A maZ;w-推荐的项目应当属于的(一个或多个)领域。 该方法找出跨所有所需领域的相似项目,并且根据预定的约束集合返 回推荐项目列表。图3示出根据本发明实施例的用于由推荐引擎126生成相似项目推荐 的方法。该方法开始于步骤302中,然后移动到步骤304,在该步骤中, 该方法接收针对与指定项目相似的其他项目的推荐的触发事件,例如用户 请求。在步骤306中,确定指定的项目是否存在于用户数据库114中。如 果指定的项目不存在(306—否),则该方法在步骤334中结束,并且不生 成推荐。否则,如果指定的项目确实存在(306—是),则该方法在步骤 308中继续。对指定项目是否存在的确定是基于是否存在任何被认为与该 指定项目相似的项目来进行的。缺乏相似项目的原因可能有两个1)这 是先前不存在的新项目;2)该指定项目在请求之前已经存在,但是没有 足够的与该指定项目相关联的、推荐可基于的用户事件。接下来,在步骤308至312中,取得不受限制的相似项目的集合;该 集合也被称为第一推荐列表。不受限相似项目集合依赖于^r—J謹&朋输 入参数是否被指定。如果wc—d謹d朋被指定(308_是),则在步骤310 中,仅从由wc—^mm'朋指示的领域中提取相似项目集合。如果 wcj画m'朋未被指定(308—否),则在步骤312中从所有领域中提取相似 项目集合。给定相似项目的第一推荐列表,包括领凝、/if澄、腿'm'tem禾n maxZtem 在内的预定约束集合被应用,以改进交叉领域推荐。在步骤314中,确定
第一推荐列表中的项目数目是否大于预定的m^'tem。如果确定结果是否 定的(314—否),则在步骤332中第一推荐列表被返回。否则,如果确定 结果是肯定的(314—是),则该方法在步骤316中继续。在步骤316中,从第一推荐列表形成第二推荐列表。第二推荐列表是 第一推荐列表的子集,其中包括具有高于预定的/if澄的相关值的相似项 目。进行另一个确定,以确定第二推荐列表中的项目数目是否大于 服'""em。如果第二推荐列表中的项目的数目不大于m/m'tem (316_否), 则在步骤330中,该方法从第一推荐列表中按相关值的降序选择 数目的推荐,以形成第三推荐列表,并且在步骤332中,该方法返回第三 推荐列表。在这种情况下,所推荐的项目中的一个或多个可能具有低于/if 劍勺相关值,但是它们仍被返回,以满足m纟m'tem约束。在许多常用计算 机和互联网应用中,向用户提供所请求的那么多个项目是有利的。在另一 种情况下,如果第二推荐列表中的项目数目大于mfm'tew (316—是),则 在步骤318中,第二推荐列表被保留,以供步骤320至328中的进一步处 理。在步骤320中,考虑ma;dtem约束。确定第二推荐列表中的项目的数 目是否大于约束。如果结果为否(320—否),则在步骤332中第 二推荐列表被返回。此路径返回满足或超过阈值的推荐相似项目的列表, 并且推荐项目的数目大于所请求的项目的最小数目但小于或等于所请求的 项目的最大数目。在另一种情况下(320—是),在应用相似性/if遣约束之 后,如果第二推荐列表中的项目的数目仍大于所需的最大项目数目,则该 方法在步骤322中继续,以通过使推荐项目分散在从中提取出推荐项目的 领域的集合上来改进第二推荐列表。在步骤322中,根据预定的m^函&朋参数,候选项目被分离成领 域群组。在步骤324至328中,该方法采用循环(roimd-robin)方案并且 每次一个地移过每个群组(步骤324)。在步骤326中,该方法选择具有 最高相关值的推荐,以形成第四推荐列表(步骤326)。本领域的技术人 员将会认识到,在选择过程中可以采用其他优先级方案。步骤324和326 被重复,直到第四推荐列表中的项目的数目等于预定的m^'tem为止。最
终结果是与所请求的项目相似的第四推荐集合。此第四推荐集合满足mz'm'tem和maxzYem约束,并且如果存在足够的相似项目,还满足相似性/if 澄。推荐项目集合还反映了跨指定领域的平均选择。在步骤332中,第四 推荐列表被返回。该方法在步骤334中结束。推荐个性化项目通过考虑用户的个人偏好的历史可以进一步改进对相似项目的推荐。 个性化推荐是通过根据用户的个人偏好的历史找出与给定个体优选的那些 项目相似的项目来进行的。图4示出了根据本发明实施例的用于生成个性 化推荐的方法。该方法找出跨所有所需领域的个性化推荐,并且根据预定 的参数集合返回个性化推荐列表。针对个性化推荐的触发事件,例如用户请求,包括以下输入参数 werW-特定用户的唯一标识符 Zt度-推荐的项目必须具有的最小相似性级别 mfm'tem -所需要的推荐项目的最小数目 -所需要的推荐项目的最大数目 wc—&mm>w-推荐的项目应当属于的(一个或多个)领域。 该方法开始于步骤402中,然后移动到步骤404,在该歩骤中,该方 法接收针对个性化推荐的触发事件。在步骤406中,进行第一确定,以确 定用户是否存在。如果用户不存在(406—否),则该方法在步骤434中结 束,并且不生成个性化推荐。在另一种情况下,如果用户存在(406— 是),则该方法在步骤408中继续。对用户是否存在的确定是基于在用户 数据库114中是否有任何用户事件来进行的。在步骤408中,取得用户已 对其表现出倾向性或已经表现出偏好的项目的第一列表。第一项目列表还 处于或高于预定的/if澄。这些优选项目被用作找出个性化推荐的基础。在步骤410和412中, 对于每个优选项目(步骤410),取得相似项目的集合(步骤412)。用 于找出相似项目的方法在上文结合图3进行了描述。以下输入参数被用于 获得相似项目的过程中/萄; t"、 m&"em、 禾口 wc—c/omw>w。用于获
得相似项目的和领凝输入参数是从优选项目列表中的每个项目导出的。在步骤412中,针对每个优选项目取得的相似项目的并集被存储在第一个性化推荐列表中,以用于后续步骤。给定第一个性化推荐列表,包括领域、 阈值、minitem和maxitem在内的预定约束集合被应用以改进交叉领域推荐。在步骤414中,确定第一推 荐列表中的项目的数目是否大于预定的minitem。如果确定结果是否定的 (414—否),则在步骤432中第一推荐列表被返回。否则,如果确定结果 是肯定的(414—是),则该方法在步骤416中继续。在步骤416中,从第一推荐列表形成第二推荐列表。第二推荐列表是 第一推荐列表的子集,其中包括具有高于预定的/if劍勺相关值的项目。进 行另一个确定,以确定第二推荐列表中的项目数目是否大于m纟maxitem。如 果第二推荐列表中的项目的数目不大于minitem (416—否),则在步骤430 中,该方法从第一推荐列表中按相关值的降序选择冊'm'tem数目的推荐, 以形成第三推荐列表,并且在步骤432中,该方法返回第三推荐列表。在 这种情况下,所推荐的项目中的一个或多个可能具有低于/if劍勺相关值, 但是它们仍被返回,以满足minitem约束。在许多常用计算机和互联网应 用中,向用户提供所请求的那么多个项目是有利的。在另一种情况下,如 果第二推荐列表中的项目数目大于m纟m'tem (416—是),则在步骤418 中,第二推荐列表被保留,以供步骤420至428中的进一步处理。在步骤420中,考虑maxz'tem约束。确定第二推荐列表中的项目的数 目是否大于m":dtem约束。如果结果为否(420—否),则在步骤432中第 二推荐列表被返回。此路径返回满足或超过阈值的推荐项目的列表,并且 推荐项目的数目大于所请求的项目的最小数目但小于或等于所请求的项目 的最大数目。在另一种情况下(420—是),在应用相似性/if澄约束之后, 如果第二推荐列表中的项目的数目仍大于所需的最大项目数目,则该方法 在步骤422中继续,以通过使推荐项目分散在从中提取出推荐项目的领域 的集合上来改进第二推荐列表。在步骤422中,根据预定的wc—A m&朋参数,候选项目被分离成领 域群组。在步骤424至428中,该方法采用循环方案并且每次一个地移过22
每个群组(步骤424)。在步骤426中,该方法选择具有最高相关值的推 荐,以形成第四推荐列表。本领域的技术人员将会认识到,在选择过程中 可以采用其他优先级方案。步骤424和426被重复,直到第四推荐列表中 的项目的数目等于预定的modtem为止。最终结果是针对用户的优选项目 个性化的第四推荐集合。此第四推荐集合满足服'm'tem和ma:o'tem约束, 并且如果存在足够的个性化项目,还满足相关值/萄澄。推荐项目集合还反 映了跨指定领域的平均选择。在步骤432中,第四推荐列表被返回。该方 法在步骤434中结束。所公开的用于生成推荐的系统提供了相对于现有技术的多个改进。具 体而言,所公开的系统通过考虑跨多个领域的用户输入数据来生成更好的 并且更相关的推荐。生成更好的推荐的能力进而又实现了更好的用户体验 并且向用户提供了更宽范围的产品或服务。本领域的技术人员将会认识到,存在许多可以使用的对所公开的实施 例的可能修改,它们仍采用相同的基本机制和方法。例如,可使用不同的 约束集合,例如用户的人口统计信息,来改进推荐。可采用不同的优先级 方案来取代本发明的一个实施例中公开的循环方案。并且可使用不同的算 法来计算跨多个领域的用户输入数据之间的相关值。出于说明目的,以上描述是参考特定实施例进行的。但是,以上的说 明性论述并不想要毫无遗漏或者将本发明限制到所公开的精确形式。考虑 到上述教导,许多修改和变化是可能的。选择和描述这些实施例是为了最 好地说明本发明的原理及其实际应用,或者使得本领域的技术人员能够利 用适合于所构思的特定用途的各种修改来最好地利用本发明和各种实施 例。
权利要求
1. 一种用于在计算机网络上生成推荐的方法,包括 收集数据库中的跨多个领域的用户事件; 接收针对推荐的触发事件;分析所述用户事件以编制所述数据库中的用户事件之间的相关性;以及响应于所述触发事件,根据所述数据库中的用户事件之间的相关性, 生成推荐。
2. 如权利要求1所述的方法,其中所述收集用户事件的步骤包括 接收来自所述多个领域的用户事件,其中所述用户事件包括一个或多个用户事件参数;根据预定的规则集合验证所述用户事件参数;如果所述用户事件未能满足所述预定规则集合中的规则之一,则丢弃 所述用户事件;以及如果所述用户事件满足所述预定规则集合,则将所述用户事件存储在 所述数据库中。
3. 如权利要求2所述的方法,其中所述验证特定用户事件参数的步骤 包括如果所述特定用户事件参数存在于所述数据库中,则继续验证另一个 用户事件参数,直到所有用户事件参数都被验证为止;以及如果所述特定用户事件参数不存在于所述数据库中,则检查是否启用 了与所述特定用户事件参数相对应的预定的动态更新配置;如果启用了与所述特定用户事件参数相对应的动态更新配置,则 将所述特定用户事件参数添加到所述数据库;以及如果未启用与所述特定用户事件参数相对应的动态更新配置,则 丢弃所述用户事件。
4. 如权利要求2所述的方法,其中所述验证所述用户事件参数的歩骤 包括验证用户事件领域; 验证用户事件类型; 验证用户事件值; 验证用户事件项目;以及 验证用户标识符。
5. 如权利要求1所述的方法,其中所述分析所及用户事件的步骤包括对所述用户事件应用协同过滤,以计算所述用户事件之间的相关值;以及将所述相关值存储在相似性数据库中。
6. 如权利要求1所述的方法,还包括 接收对推荐相似项目的请求;以及根据所述数据库中的用户事件之间的相关性生成相似项目推荐。
7. 如权利要求6所述的方法,还包括根据优先级方案生成相似项目推荐。
8. 如权利要求6所述的方法,其中所述生成相似项目推荐的步骤包括验证所述请求,其中所述请求包括预定参数的集合; 如果源领域被指定,则根据所述源领域生成第一推荐列表;以及 如果所述源领域未被指定,则根据所述数据库中的所有可用领域生成 所述第一推荐列表。
9. 如权利要求8所述的方法,其中所述生成所述第一推荐列表的步骤 包括如果所述第一推荐列表少于或等于预定最小数目个项目,则返回所述 第一推荐列表;以及如果所述第一推荐列表多于所述预定最小数目个项目,则根据相关值 和所述预定参数集合改进所述第一推荐列表。
10. 如权利要求9所述的方法,其中所述改进所述第一推荐列表的步骤包括 从所述第一推荐列表的项目形成具有等于或高于预定阈值的相关值的 第二推荐列表;如果所述第二推荐列表少于或等于所述预定最小数目个项目,则从所 述第一推荐列表的项目中选择包括根据相关值区分优先级的最小数目个项 目的第三推荐列表,并且返回所述第三推荐列表;以及如果所述第二推荐列表多于所述预定最小数目个项目,则根据所述相 关值和所述预定参数集合改进所述第二推荐列表。
11. 如权利要求io所述的方法,其中所述改进所述第二推荐列表的步 骤包括如果所述第二推荐列表少于或等于预定最大数目个项目,则返回所述 第二推荐列表;以及如果所生成的所述第二推荐列表多于所述预定最大数目个项目,则根 据所述请求中的预定的源领域进一步改进所述第二推荐列表。
12. 如权利要求11所述的方法,其中所述进一步改进的步骤包括 根据所述预定的源领域将所述第二推荐列表分离成多个群组;(a) —次一个地移过每个群组,选择具有最高相关值的推荐以形成 第四推荐列表;(b) 重复步骤(a),直到所述第四推荐列表等于所述预定最大数目 个项目为止;以及返回所述第四推荐列表。
13. 如权利要求1所述的方法,还包括 接收对推荐个性化项目的请求;以及根据所述数据库中的用户事件之间的相关性生成个性化推荐。
14. 如权利要求13所述的方法,其中所述生成所述个性化推荐的歩骤 包括验证所述请求,其中所述请求包括预定参数的集合 从所述数据库取得用户表现出偏好的第一项目列表,其中每个项目具有大于或等于预定阈值的相关值;(a)为用户表现出偏好的每个项目创建相似项目的推荐集合; (b)将所述相似项目推荐集合存储在第一推荐列表中;以及 (C)重复步骤(a)和(b),直到所述第一项目列表中的所有成员都 已被移过为止;以及根据所述相关值和预定参数的集合提炼所述第一推荐列表。
15. 如权利要求14所述的方法,其中所述提炼所述第一推荐列表的歩骤包括如果所述第一推荐列表少于或等于预定最小数目个项目,则返回所述第一推荐列表;以及如果所述第一推荐列表多于所述预定最小数目个项目,则根据相关值 和所述预定参数集合改进所述第一推荐列表。
16. 如权利要求15所述的方法,其中所述改进所述第一推荐列表的歩骤包括从所述第一推荐列表的项目形成具有等于或高于预定阈值的相关值的第二推荐列表;如果所述第二推荐列表少于或等于所述预定最小数目个项目,则从所 述第一推荐列表的项目中选择包括根据相关值区分优先级的最小数目个项目的第三推荐列表,并且返回所述第三推荐列表;如果所述第二推荐列表多于所述预定最小数目个项目,则根据所述相 关值和所述预定参数集合改进所述第二推荐列表。
17. 如权利要求16所述的方法,其中所述改进所述第二推荐列表的步骤包括如果所述第二推荐列表少于或等于预定最大数目个项目,则返回所述第二推荐列表;以及如果所生成的所述第二推荐列表多于所述预定最大数目个项目,则根 据所述请求中的预定的源领域进一步改进所述第二推荐列表。
18. 如权利要求17所述的方法,其中所述进一步改进的步骤包括根据所述预定的源领域将所述第二推荐列表分离成多个群组; (a) —次一个地移过每个群组,选择具有最高相关值的推荐以形成 第四推荐列表; (b)重复步骤(a),直到所述第四推荐列表等于所述预定最大数目 个项目为止;以及返回所述第四推荐列表。
19. 一种用于在计算机网络上生成推荐的系统,包括 用于经由因特网处理用户事件的多个领域服务器; 用于存储所述用户事件的数据库;以及包括一个或多个计算机程序的推荐引擎,所述计算机程序包括用于执 行以下步骤的指令收集所述数据库中的跨多个领域的用户事件; 接收针对推荐的触发事件;分析所述用户事件以编制所述数据库中的用户事件之间的相关性;以及响应于所述触发事件,根据所述数据库中的用户事件之间的相关性, 生成推荐。
20. 如权利要求19所述的系统,其中所述用于收集用户事件的指令包 括用于执行以下歩骤的指令接收来自所述多个领域的用户事件,其中所述用户事件包括一个或多 个用户事件参数;根据预定的规则集合验证所述用户事件参数;如果所述用户事件未能满足所述预定规则集合中的规则之一,则丢弃 所述用户事件;以及如果所述用户事件满足所述预定规则集合,则将所述用户事件存储在 所述数据库中。
21. 如权利要求20所述的系统,其中所述用于验证特定用户事件参数 的指令包括用于执行以下步骤的指令如果所述特定用户事件参数存在于所述数据库中,则继续验证另一个 用户事件参数,直到所有用户事件参数都被验证为止;以及如果所述特定用户事件参数不存在于所述数据库中,则检查是否启用 了与所述特定用户事件参数相对应的预定的动态更新配置; 如果启用了与所述特定用户事件参数相对应的动态更新配置,则 将所述特定用户事件参数添加到所述数据库;以及如果未启用与所述特定用户事件参数相对应的动态更新配置,则 丢弃所述用户事件。
22. 如权利要求20所述的系统,其中所述用于验证所述用户事件参数的指令包括用于执行以下步骤的指令 验证用户事件领域; 验证用户事件类型; 验证用户事件值; 验证用户事件项目;以及 验证用户标识符。
23. 如权利要求19所述的系统,其中所述用于分析所及用户事件的指 令包括用于执行以下步骤的指令对所述用户事件应用协同过滤,以计算所述用户事件之间的相关值; 以及 将所述相关值存储在相似性数据库中。
24. 如权利要求19所述的系统,所述推荐引擎的计算机程序还包括用 于执行以下步骤的指令接收对推荐相似项目的请求;以及根据所述数据库中的用户事件之间的相关性生成相似项目推荐。
25. 如权利要求24所述的系统,还包括用于根据优先级方案生成相似 项目推荐的指令。
26. 如权利要求24所述的系统,其中所述用于生成相似项目推荐的指 令包括用于执行以下步骤的指令验证所述请求,其中所述请求包括预定参数的集合; 如果源领域被指定,则根据所述源领域生成第一推荐列表;以及 如果所述源领域未被指定,则根据所述数据库中的所有可用领域生成 所述第一推荐列表。
27. 如权利要求26所述的系统,其中所述用于生成所述第一推荐列表 的指令包括用于执行以下步骤的指令如果所述第一推荐列表少于或等于预定最小数目个项目,则返回所述 第一推荐列表;以及如果所述第一推荐列表多于所述预定最小数目个项目,则根据相关值 和所述预定参数集合改进所述第一推荐列表。
28.如权利要求27所述的系统,其中所述用于改进所述第一推荐列表的指令包括用于执行以下步骤的指令:从所述第一推荐列表的项目形成具有高于预定阈值的相关值的第二推荐列表;如果所述第二推荐列表少于或等于所述预定最小数目个项目,则从所 述第一推荐列表的项目中选择包括根据相关值区分优先级的最小数目个项目的第三推荐列表,并且返回所述第三推荐列表;以及如果所述第二推荐列表多于所述预定最小数目个项目,则根据所述相 关值和所述预定参数集合改进所述第二推荐列表。
29. 如权利要求28所述的系统,其中所述用于改进所述第二推荐列表 的指令包括用于执行以下步骤的指令-如果所述第二推荐列表少于或等于预定最大数目个项目,则返回所述 第二推荐列表;以及如果所生成的所述第二推荐列表多于所述预定最大数目个项目,则根 据所述数据库中的预定的源领域进一步改进所述第二推荐列表。
30. 如权利要求29所述的系统,其中所述用于进一步改进的指令包括 用于执行以下步骤的指令根据所述预定的源领域将所述第二推荐列表分离成多个群组;(a) —次一个地移过每个群组,选择具有最高相关值的推荐以形成 第四推荐列表;(b) 重复步骤(a),直到所述第四推荐列表等于所述预定最大数目 个项目为止;以及返回所述第四推荐列表。
31. 如权利要求19所述的系统,所述推荐引擎的计算机程序还包括用 于执行以下步骤的指令接收对推荐个性化项目的请求;以及根据所述数据库中的用户事件之间的相关性生成个性化推荐。
32. 如权利要求31所述的系统,其中所述用于生成所述个性化推荐的 指令包括用于执行以下步骤的指令验证所述请求,其中所述请求包括预定参数的集合从所述数据库取得用户表现出偏好的第一项目列表,其中每个项目具 有大于或等于预定阈值的相关值;(a) 为用户表现出了偏好的每个项目创建相似项目的推荐集合;(b) 将所述相似项目推荐集合存储在第一推荐列表中;以及(c) 重复步骤(a)和(b),直到所述第一项目列表中的所有成员都 已被移过为止;以及根据所述相关值和预定参数的集合提炼所述第一推荐列表。
33. 如权利要求32所述的系统,其中所述用于提炼所述第一推荐列表的指令包括用于执行以下步骤的指令如果所述第一推荐列表少于或等于预定最小数目个项目,则返回所述第一推荐列表;以及如果所述第一推荐列表多于所述预定最小数目个项目,则根据所述相 关值和所述预定参数集合改进所述第一推荐列表。
34. 如权利要求33所述的系统,其中所述用于改进所述第一推荐列表的指令包括用于执行以下步骤的指令从所述第一推荐列表的项目形成具有高于预定阈值的相关值的第二推荐列表;'如果所述第二推荐列表少于或等于所述预定最小数目个项目,则从所 述第一推荐列表的项目中选择包括根据相关值区分优先级的最小数目个项 目的第三推荐列表,并且返回所述第三推荐列表;如果所述第二推荐列表多于所述预定最小数目个项目,则根据所述相 关值和所述预定参数集合改进所述第二推荐列表。
35. 如权利要求34所述的系统,其中所述用于改进所述第二推荐列表 的指令包括用于执行以下步骤的指令如果所述第二推荐列表少于或等于预定最大数目个项目,则返回所述 第二推荐列表;以及如果所生成的所述第二推荐列表多于所述预定最大数目个项目,则根 据所述数据库中的预定的源领域进一歩改进所述第二推荐列表。
36. 如权利要求35所述的系统,其中所述用于进一步改进的指令包括用于执行以下步骤的指令根据所述预定的源领域将所述第二推荐列表分离成多个群组;(a) —次一个地移过每个群组,选择具有最高相关值的推荐以形成 第四推荐列表;(b) 重复步骤(a),直到所述第四推荐列表等于所述预定最大数目 个项目为止;以及返回所述第四推荐列表。
37. —种计算机程序产品,包括存储供一个或多个计算机系统执行的 计算机程序的介质,所述计算机程序包括推荐模块,用于生成跨多个产品或服务领域的推荐,其中所述推荐模 块是至少结合处理单元、用户接口和数据库使用的,并且所述推荐模块包 括一个或多个计算机程序,所述计算机程序包括用于执行以下步骤的指收集数据库中的跨多个领域的用户事件; 接收针对推荐的触发事件;分析所述用户事件以编制所述数据库中的用户事件之间的相关性;以及响应于所述触发事件,根据所述数据库中的用户事件之间的相关性, 生成推荐。
全文摘要
公开了一种用于生成跨多个产品或服务领域的推荐的系统。该系统包括用于经由因特网向用户提供接口并且处理用户事件的多个领域服务器;用于存储用户事件的数据库;以及推荐引擎。该推荐引擎还包括一个或多个计算机程序,所述计算机程序包括用于执行以下步骤的指令收集数据库中的跨多个产品或服务领域的用户事件;接收针对推荐的触发事件;分析用户事件以编制数据库中的用户事件之间的相关性;以及响应于触发事件,根据数据库中的用户事件之间的相关性,生成推荐。所公开的技术用来自不同领域的用户输入数据产生在这些领域中的任何一个中的推荐。所公开的技术允许访问更大量的用户输入数据,这进而又提高了推荐质量。
文档编号G06Q30/00GK101124575SQ200580005802
公开日2008年2月13日 申请日期2005年2月25日 优先权日2004年2月26日
发明者史蒂文·K·桑德尔斯, 拉斯·P·尼勒森, 斯科特·A·盖特兹, 阿什温库玛·P·帕特尔 申请人:雅虎公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1