混合推荐系统的制作方法
【专利摘要】本发明的各实施方式总体上涉及一种混合推荐系统。具体地,混合推荐系统使用离线测试和在线测试来生成并优化推荐函数。该些函数生成可以被在线展现用于产品购买的推荐。索引从该些推荐中创建。查找可以在该些索引上执行,来为特定的用户选择推荐。所选择的推荐可以在向用户展现之前被过滤。
【专利说明】混合推荐系统
【背景技术】
[0001]在线购物和在线购买历年来显著地增加。在线零售商之间的竞争已经变得激烈,并且这些在线零售商尝试提供最好的用户体验,并且还尝试实施技术来增加销量。一个这样的技术是通过推荐。对于在线零售商向浏览特定产品的网页的用户提供推荐并不罕见。通常,该推荐将由其他用户购买的其他产品与用户当前正在浏览的产品一起标识。然而,在许多情况中,推荐是过时的或者重复的或者不是零售商进一步明确的目标。
【专利附图】
【附图说明】
[0002]在下面的描述中参考以下附图详细描述各实施方式。这些附图图示了各实施方式的示例。
[0003]图1图示了混合推荐系统。
[0004]图2图示了推荐引擎。
[0005]图3图示了可以用于本文所述方法和系统的计算机系统。
[0006]图4图示了可以由混合推荐系统执行的方法。
[0007]图5图示了为了确定推荐函数需要考虑的因素的示例。
[0008]图6图示了用于确定推荐的详细步骤和因素的示例。
[0009]图7图示了用于选择推荐的过程的概要的示例。
[0010]图8图示了针对优惠券的特定使用情形的示例。
[0011]图9图示了用于提供实时推荐和在选择推荐时可以被考虑的因素的示例。
【具体实施方式】
[0012]为了简单和说明的目的,本发明的各实施方式主要参考示例进行描述。此外,许多特定的细节被陈述以便于提供对各实施方式的全面理解。然而,本领域技术人员容易理解各实施方式可以不限制于一个或多个这些特定细节而被实施。在一些情况中,众所周知的方法和结构没有被详细描述,从而不会不必要地使各实施方式的描述主题不明。
[0013]根据一个实施方式,混合推荐系统基于离线和在线测试确定用于产品购买的推荐。离线测试分析和调节多个推荐函数,并且在线测试可以用于验证或者进一步调节推荐函数,从而最大化一个或多个性能指标。这些推荐函数可以用于创建推荐索引,该推荐索引代表针对不同产品和用户的推荐。该索引继而用于在实时环境中确定向正在浏览产品页面的用户提供的候选推荐。因此,该索引可以被生成以改进响应时间的技术问题。此外,自动函数调节是对数据稀缺问题的技术方案,数据稀缺问题是指缺乏数据来生成用于推荐函数的模型的问题。不同的所推荐的函数可以被测试和调节,以找到针对推荐函数的精度和模型复杂度之间的平衡。此外,当存在数据稀缺时,种类层次(category-level)关系可以用于确定和调节推荐函数。此外,评分函数可以被应用以选择向用户显示的候选推荐。
[0014]根据一个实施方式,图1公开了混合推荐系统100。系统100包括混合推荐核110和推荐提供器子系统120。混合推荐核110生成推荐的推荐索引,并且推荐提供器子系统120从索引中确定向用户提供的推荐。
[0015]混合推荐核110包括离线测试模块111、在线测试模块112、推荐函数优化器113以及推荐引擎115。推荐函数102可以由用户或者另一系统向系统100输入。推荐函数是用于基于一个或多个参数确定推荐的函数。推荐函数102可以包括统计模型、评论、可调节参数、测试计划、增强步骤、可应用推荐场景、不同场景所需的变化等中的至少一个。不同的函数可以被测试,并且其参数周期地被调节以优化推荐函数。推荐函数102可以标识购买模式,标识一起购买的同等产品或者成对产品,分析包裹(bundles),考虑合并来自不同的购买和时间段的篮等等。篮可以是在线购物车,在进行交易来购买产品之前,用户选择要购买的产品被置于在线购物车中。
[0016]离线测试模块111仿真在测试数据集上提供推荐的结果,以基于一个或多个性能指标测量推荐函数的有效性。在一个示例中,性能指标包括查全率(例如,消费者篮中的物品匹配我们的推荐的比率)和查准率(例如,证明是成功(例如,使得购买所推荐的产品)的推荐的百分比),但是其他的性能指标也可以被使用。用于示例的物品或产品物品是适于购买的产品。产品可以是商品或服务。在一个实施方式中,来自数据101的数据包括历史购买数据和用户简档。历史购买数据包括与在线销售、离线销售、交易、日期、浏览历史等有关的任何数据。训练数据集和测试数据集可以从数据101生成。训练数据集可以用于创建推荐函数。例如,机器学习技术可以用于生成分类器,所述分类器标识购买模式并且确定用户和其购买模式之间的关系。这些关系可以用于从训练集生成推荐函数102。贝叶斯(Bayesian)网络、神经网络、奇异值分解(SVD)、分类器可以应用于训练集以确定推荐函数。爬山算法或其他数学优化技术可以用于优化推荐函数102。
[0017]测试数据集用于测试由推荐函数102生成的推荐性能。例如,测试数据集被评估,以确定所推荐的产品的转化数量,或者确定其他的性能指标。推荐函数102可以包括被调节以尝试改进函数102的可调节参数,并且它们在迭代过程中能够被重新测试。
[0018]在线测试模块112评估由在线测试系统104测试的推荐函数102的性能。在线测试系统104可以关于不同的用户尝试不同的推荐函数或推荐函数的不同变化,并且捕获在线行为,包括交易。例如,在线测试系统104为了评定推荐引擎115的性能,通过将已经向其提供了推荐的顾客组的表现与没有给其推荐的对照组的表现进行比较来执行在线测试。推荐的效果能够由离线测试模块111在宏观层次,通过比较性能指标,如每个顾客的平均篮大小、每个篮的平均销量、以及每个顾客的平均销量,而被评估。这些指标也可以在更精细的层次被分析,例如在产品种类层次,或者顾客群(customer segment)层次。备选地,推荐的有效性能够在宏观层次,通过将向顾客推荐的物品与最终放置在他们的购物车中的物品匹配,或者通过针对那些物品的点通率(click-through rate)而被评定。性能指标的其他示例以及评估推荐的关键性能指标包括:基线分析指标,比如发生次数或访问次数是否超过阈值;针对每个所推荐物品的漏斗分析指标,比如点击次数、物品添加到购物车的次数、购买的次数;篮指标,比如包含所推荐物品的篮的百分比,由推荐驱动的销售百分比;顾客分析指标,比如重复访问,顾客生命值;以及在运行时的系统性能指标。
[0019]推荐函数优化器114可以基于性能指标对推荐函数中的可调节参数建议调节,并且可以允许用户进行调节。继而,该函数能够被重新测试。数据存储116可以存储推荐函数102、不同的数据集、性能指标以及由核110使用的任何其他信息,以生成推荐索引。数据存储116和数据存储125可以是数据库或其他类型的存储系统。
[0020]推荐引擎115基于优化后的推荐函数生成推荐索引。推荐索引通过SKU或其他产品标识符标识一个或多个产品,该一个或多个产品针对用于在线销售或离线销售而提供的每个产品而将被推荐。这些索引存储在例如数据存储125中,并且由推荐提供器子系统120用于为用户实时地提供推荐。存储推荐索引的数据存储125可以是低时延数据存储,低时延数据存储向用户提供推荐而不招致令人不满意的延迟。数据存储可以包括被应用来进行最终推荐选择的附加过滤器或规则。推荐选择模块121,例如,通过执行索引查找,选择产品进行推荐。动态数据103可以标识用户当前正在浏览的产品,以及其他用户信息,因而查找能够被执行。过滤器模块122应用过滤器,比如确定产品是否无现货或者是否符合零售商目标,来确定最终的产品推荐。用于确定和提供推荐的处理速度,通过使用关于推荐索引的查找、对后期处理推荐的最小计算量(过滤器)、快速附加、过滤器、以及推荐的排序表而被改进。
[0021]接口服务层130可以作为对web浏览器140或应用141的web服务而显示提供的推荐。web服务可以包括用于通过因特网在两个设备之间的通信的方法或协议。例如,接口服务层130可以提供与PHP (超文本预处理器,其是适于web开发的开源通用脚本语言)、JAVA、.NET等兼容的web服务。因此,推荐可以经由网络向用户发送。
[0022]图2示出了用于推荐引擎115的更详细的框图。推荐引擎115可以包括内核201、顾客聚类组件202、宏观个性化组件203、微观个性化组件204、时间效应组件205、预测过滤组件206以及业务规则组件207。内核201,例如基于由推荐引擎115的一个或多个组件实施的推荐函数,生成标识推荐产品的推荐索引。物品至物品、客户至物品、以及其他的关联由物品的购买行为、顾客群的购买行为以及特定用户的购买行为确定。查找可以关于索引而被执行,以标识一个或多个物品用以推荐。
[0023]图2的左侧示出由数据源提供的信息的示例。推荐引擎115,例如通过使用图2中示出的组件处理若干数据源,确定用于用户的目标产品或服务推荐。数据源可以提供关于交易、顾客偏好、产品分类(product taxonomy)、产品属性、人口统计学等的信息。
[0024]例如,数据源可以提供与顾客人口统计学有关的信息,比如年龄、性别、位置等。顾客人口统计学以及其他数据(如用户偏好)可以用于标识顾客之间的相似度以进行协同过滤。顾客人口统计学还能够用于,通过应用例如性别、年龄和婚姻状况信息,对推荐后置过滤。
[0025]交易数据可以包括交易文件,交易文件除了其他信息外还包括物品被特定用户购买的时间、价格和数量。交易数据可以标识顾客篮和追踪属于相同篮的物品。该类型的信息可以用于通过分析篮来确定产品之间的隐藏关联,来生成“买这个的顾客也买了那个”类型的推荐。从交易文件,每个用户的交易历史可以被标识,并且用作对解决了问题“像您一样的顾客也买了这个”的协同过滤技术的输入。交易数据可以用于估计涉及顾客价值和顾客偏好的关键性能指示符的重要性。例如,从交易文件,一天中的时间标识何时用户访问店铺以及一周或一个月的哪些天他/她执行他的/她的购买。顾客对零售商的价值以及顾客偏好的支付方法(如果这被适当地记录了)也可以被确定。而且由每个用户购物的偏好种类,以及而且他们的产品或服务用法以及产品相关的偏好可以被确定。此外,从销售数据的角度,销售量、顾客的计数、以及购买次数能够被确定。[0026]数据源可以提供与产品层级有关的信息,产品层级包括产品层级的各种层次。例如,对于具有大的广品范围的零售商,大的广品范围可以具有“长尾的(long tailed)”购买模式或者其中用户至物品的关联索引是稀疏的,产品分类能够用于在产品层级的各种层次应用关联分析,并且因此充实了所推荐的物品列表。该方法还能够用于处理“冷启动”问题,其中针对还没有销售的物品需要推荐。
[0027]数据源可以提供涉及产品属性的信息,以标识特定产品种类内的产品之间的相似度。该类型的信息能够对于评定相同种类内的产品的相似度做出贡献。产品属性以及产品评级(如果可用)或者销量能够用于,执行属性权重分析并且估计每个属性对零售商的收入的重要度。当产品属性不可用时,产品描述可以用于标识产品的相似度,例如通过应用文本相似度函数。
[0028]当可用时,产品评级也能够被处理以生成有用的推荐。根据一个用户被估计为评级高的产品能够被推荐给处于相似人口统计学中的另一用户。店铺特性可以用于说明购买位于所生成的推荐中的位置,以及说明店铺大小和其他的店铺特性。
[0029]来自数据源的数据还能够用于生成顾客分析记录(CAR),顾客分析记录提供涉及顾客行为和特点的信息。CAR可以包括顾客相关的KPI,如由顾客的购买次数、他的/她的平均篮大小、时间(一周中的几天、一天中的时间)和他的/她的购买进行的位置、到店铺往返的平均次数、所购买的产品种类、偏好的支付方法等等。CAR能够用于执行微观或宏观分割(segmentation),并且用于辅助推荐个性化的性能。
[0030]顾客聚类组件202标识具有相似的购买相关行为,并且具有相似人口统计学的用户集群。宏观个性化组件203可以使用该集群,基于由相同集群中的其他人购买的物品,来确定集群中的用户可以被推荐一个物品。
[0031]微观个性化组件204基于对该用户的个人信息生成推荐。
[0032]时间效应组件205基于交易数据的季节性和近期性(recentness)生成推荐。例如,更近的交易数据被权衡得更重,并且与季节性的购买有关的交易数据可以被权衡得更重。
[0033]预测过滤组件206基于他们的历史购买标识针对用户的未来购买兴趣。预测过滤组件206可以使用隐马尔科夫(Hidden Markov)模型来进行“用户至物品”推荐。
[0034]业务规则组件207可以应用于由推荐核201生成的一组推荐,以选择将向用户展现的最终推荐。例如,业务规则可以指示无论何时显示书籍,则仅推荐书籍。在另一示例中,给出前5名促销物品,而不是提供正常的推荐。
[0035]最终推荐可以被提供至测试平台,测试平台可以包括离线测试模块111和/或在线测试模块112,离线测试模块111和/或在线测试模块112与图1中示出的在线测试系统104 一起工作,来优化推荐函数。
[0036]图2中示出的推荐引擎115的组件执行对确定物品至物品关联的关联分析。例如,因为交易数据提供了涉及谁购买了什么、何时、以及何地的信息,所以交易数据用于标识篮并且辨认经常被一起购买的物品组。这能够作为关联分析的基础。使用该信息,物品至物品(借此,物品能够是产品或服务)推荐被生成。例如,对于篮中的每个产品,通常与该产品一起购买的产品被推荐。因此,“买了这个的顾客也买了那个”类型的推荐被生成。因此,针对每个产品和每个篮的一组推荐能够被生成。具体地,一起购买的成对产品或者甚至多组产品之间的关联用于推荐而被确定。
[0037]为了确定这些关联,推荐函数可以包括评分函数来分析顾客篮,并且篮中的每个物品组的重要性被估计。可以作为推荐函数使用的评分函数的示例包括,支持计数、支持(support)、置信、以及余弦度量(cosine metric)。用于为这些评分函数来计算值在下面被描述。
[0038]物品组的支持计数是包含该特定物品组的交易的数量。数学上,物品组X的支持计数定义为:
【权利要求】
1.一种混合推荐系统,包括: 离线测试模块,用于在数据集上离线测试推荐函数,并且还用于基于根据所述离线测试确定的性能指标来调节所述推荐函数; 在线测试模块,用于由在线测试系统促进所述推荐函数的在线测试; 由处理器执行的推荐引擎,用于从所述推荐函数的顶级表现集合生成推荐索引并且将所述推荐索引存储在数据存储中,所述推荐函数的顸级表现集合基于所述在线测试和离线测试确定; 选择模块,用于接收标识用户的当前活动的动态数据,并且在至少一个所述推荐索引上执行查找以确定候选推荐;以及 过滤器模块,用于基于过滤器或规则来选择所述候选推荐的一个或多个候选推荐以向所述用户展现。
2.根据权利要求1所述的混合推荐系统,其中所述离线测试模块用于从训练数据集生成至少一个所述推荐函数,所述训练数据集根据包括历史购买数据的数据集确定,并且用于测试来自测试数据集的所述推荐函数,所述测试数据集根据所述历史购买数据确定,其中所述训练数据集和所述测试数据集包括针对用于购买的交易的非重叠时间段。
3.根据权利要求2所述的混合推荐系统,其中所述离线测试模块用于通过如下方式来测试来自所述测试数据集的所述推荐函数:基于所述测试数据集中的信息来确定所述推荐函数的推荐,并且基于所述推荐来测量所述性能指标。
4.根据权利要求3所述的混合推荐系统,其中所述性能指标包括查全率和查准率,其中所述查全率性能指标是购物车中匹配推荐的物品的比率,并且所述查准率性能指标是成功的所述推荐的百分比。
5.根据权利要求3所述的混合推荐系统,其中所述离线测试模块用于将所述测量的性能指标与基准进行比较,并且如果所述测量的性能指标不满足所述基准,则改变所述至少一个推荐函数的可调节参数。
6.根据权利要求1所述的混合推荐系统,其中所述在线测试系统模块用于将针对已经基于所述推荐函数由所述在线测试系统向其提供推荐的用户组的测量的指标,与针对没有向其给出推荐的对照组的测量的指标进行比较,并且基于所述比较评估所述推荐函数。
7.根据权利要求6所述的混合推荐系统,其中所述指标包括宏观性能指标和微观性能指标,所述宏观性能指标包括每个顾客的平均购物车大小、每个购物车的平均销量以及每个顾客的平均销量中的至少一个,所述微观性能指标包括匹配针对顾客的推荐的物品和针对所述物品的点通率中的至少一个。
8.根据权利要求6所述的混合推荐系统,其中所述在线测试模块用于基于对所述指标的所述评估而从所述推荐函数中选择具有最高性能的所述推荐函数的顶级表现集合。
9.根据权利要求1所述的混合推荐系统,其中所述推荐函数包括支持评分函数、支持计数评分函数、置信评分函数以及余弦指标评分函数中的至少一个。
10.根据权利要求1所述的混合推荐系统,其中所述推荐函数包括至少一个函数,所述至少一个函数包括用于购物车中物品的价格的参数,以及购买发生的地点和将要提供推荐的位置之间的距离。
11.根据权利要求1所述的混合推荐系统,其中所述过滤器模块用于应用实时指标和规则来选择所述候选推荐以向所述用户递送。
12.根据权利要求1所述的混合推荐系统,其中所述实时指标包括所述用户的当前位置以及由所述用户进行的近期购买。
13.根据权利要求1所述的混合推荐系统,其中所述推荐包括针对要购买的产品的推荐或优惠券。
14.根据权利要求1所述的混合推荐系统,其中所述推荐引擎执行所述推荐函数,以基于用于产品购买的交易数据、用户人口统计学和产品信息,来标识产品集合之间的关联以及用户与产品之间的关联,并且所述关联被存储在所述索引中。
15.根据权利要求1所述的混合推荐系统,其中所述索引被存储在服务器集群上,并且映射和简化任务并行地被执行以在所述索引上执行所述查找。
16.一种非暂时性计算机可读介质,包括机器可读指令,所述机器可读指令由至少一个处理器可执行用于: 在数据集上离线测试推荐函数; 基于根据所述测试确定的性能指标,调节所述推荐函数; 由在线测试系统在线测试所述推荐函数; 从基于所述在线测试和离线测试而确定的所述推荐函数的顶级表现集合生成推荐索引; 将所述推荐索引存储在数据存储中; 接收标识用户的当前活动的动态数据; 在至少一个所述推荐索引上执行查找以确定候选推荐;以及 基于过滤器或规则,选择一个或多个所述候选推荐以向所述用户展现。
17.根据权利要求16所述的非暂时性计算机可读介质,其中所述机器可读指令用于: 从训练数据集生成至少一个所述推荐函数,所述训练数据集根据包括历史购买数据的数据集确定;以及 所述离线测试包括测试来自测试数据集的所述推荐函数,所述测试数据集根据所述历史购买数据确定,其中所述训练数据集合和所述测试数据集包括针对用于购买的交易的非重叠时间段。
18.根据权利要求16所述的非暂时性计算机可读介质,其中用于所述离线测试的所述机器可读指令包括:用于基于所述测试数据集中的信息来确定所述推荐函数的推荐并且基于所述推荐来测量所述性能指标的机器可读指令。
19.根据权利要求16所述的非暂时性计算机可读介质,其中用于所述在线测试的所述机器可读指令包括用于如下的机器可读指令:将针对已经基于所述推荐函数由所述在线测试系统向其提供推荐的用户组的测量的指标,与针对没有向其给出推荐的对照组的测量的指标进行比较,并且 基于所述比较评估所述推荐函数,以选择所述推荐函数的所述顶级表现集合。
20.一种混合推荐系统,用于确定向用户展现的推荐以用于在线购物,所述系统包括: 离线测试模块,用于在数据集上离线测试推荐函数,并且还用于基于根据所述离线测试确定的性能指标来调节所述推荐函数; 在线测试模块,用于由在线测试系统促进所述推荐函数的在线测试;由处理器执行的推荐引擎,用于从所述推荐函数的顶级表现集合生成推荐索引并且将所述推荐索引存储在数据存储中,所述推荐函数的顶级表现集合基于所述在线测试和离线测试确定; 选择模块,用于接收标识用户的当前活动的动态数据、所述用户的购买历史以及针对所述用户的偏好,并且基于所述用户的所述当前活动、所述购买历史和所述偏好,在至少一个所述推荐索引上执行查找以确定候选推荐,其中所述索引包括产品物品与产品物品的关联以及顾客与产品的关联;以及 过滤器模块,用于基于过滤器或规则来选择所述候选推荐的一个或多个候选推荐以向所述用户展现。·
【文档编号】G06F17/30GK103824192SQ201310397766
【公开日】2014年5月28日 申请日期:2013年9月2日 优先权日:2012年8月31日
【发明者】S·D·柯克比, 周西勇, C·布基斯, G·帕萨利斯 申请人:埃森哲环球服务有限公司