一种业务推荐方法、装置、服务器及存储介质
技术领域
本发明实施例涉及业务推荐技术领域,尤其涉及一种业务推荐方法、装置、服务器及存储介质。
背景技术
在推荐项目开发过程中,人们通常只能利用固定不变的推荐规则来对推荐请求信息进行逻辑处理,这样显然只能解决用户部分的推荐业务需求,一旦用户的推荐业务内容发生了变更,相应的推荐业务规则也需要发生改变,从而使得现有的业务处理方式无法满足用户的实际业务需求。当推荐系统有新的推荐业务时,通常的技术方案是编写代码并发版上线,这样做的问题是每次更新业务都需重新编写代码,应对繁杂的推荐场景处理效率不高。对于现有的技术方案,在早期可复用的通用性代码不多的情况下,需要编写尽可能通用的代码补全规则函数代码,应对常规性的业务需求,可以复用已有的常规代码,遇到业务性很强的需求,需要编写适用于该特殊业务的代码。综上所述可以看出,如何提高推荐规则的灵活性和多样性,以动态地满足用户持续变化的推荐需求是目前亟待解决的问题。
发明内容
本发明实施例提供一种业务推荐方法、装置、服务器及存储介质,以实现提高推荐规则的灵活性和多样性,从而动态地满足用户持续变化的推荐需求。
第一方面,本发明实施例提供了一种业务推荐方法,包括:
接收用户的推荐请求;
根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件;
解析并执行调用的规则引擎文件的预设推荐策略向用户推荐对应的业务。
可选的,在接收用户的推荐请求之前,还包括:
根据预设推荐策略编写规则引擎文件;
将编写好的规则引擎文件存储到分布式配置中心。
可选的,在接收用户的推荐请求之前,还包括:
根据预设推荐策略编写函数处理类包;
将编写好的函数处理类包存储到预设位置中;
所述根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件,包括:
根据所述推荐请求从所述预设位置调用对应所述推荐请求的函数处理类包到对应的规则引擎文件中,并调用对应的规则引擎文件。
可选的,所述推荐请求的个数为多个;
所述根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件,包括:
根据多个推荐请求从所述分布式配置中心按先后顺序调用对应所述推荐请求的规则引擎文件。
可选的,所述方法还包括:
为用户提供规则引擎文件修改接口,获取用户通过所述规则引擎文件修改接口输入的规则引擎文件更新信息,并利用所述规则引擎文件更新信息对相应的规则引擎文件进行修改。
可选的,所述方法还包括:
为用户提供规则引擎文件添加接口,获取用户通过所述规则引擎文件添加接口输入的新增规则引擎文件,并将所述新增规则引擎文件存储到分布式配置中心。
可选的,所述规则引擎文件为Drools规则引擎文件,所述分布式配置中心为Disconf分布式配置中心。
第二方面,本发明实施例还提供了一种业务推荐装置,包括:
请求接收单元,用于接收用户的推荐请求;
推荐调用单元,用于根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件;
解析执行单元,用于解析并执行调用的规则引擎文件的预设推荐策略向用户推荐对应的业务。
第三方面,本发明实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中任一所述的业务推荐方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中任一所述的业务推荐方法。
本发明实施例的技术方案,通过引入规则引擎文件到推荐系统中,根据推荐策略的不同编写不同的规则引擎文件,无需修改代码重新发版,只需要修改对应规则引擎文件即可应对业务需求,实现提高推荐规则的灵活性和多样性,从而动态地满足用户持续变化的推荐需求。
附图说明
图1是本发明实施例一中的一种业务推荐方法的流程示意图;
图2是本发明实施例二中的一种业务推荐装置的结构示意图;
图3是本发明实施例三中的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一速度差值称为第二速度差值,且类似地,可将第二速度差值称为第一速度差值。第一速度差值和第二速度差值两者都是速度差值,但其不是同一速度差值。术语“第一”、“第二”等不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
图1为本发明实施例一提供的一种业务推荐方法的流程示意图,本发明实施例可适用于业务推荐的情况。本发明实施例的方法可以由一种业务推荐装置来执行,该装置可以由软件和/或硬件的方式实现,并一般可集成于服务器或终端设备中。参照图1,本发明实施例的一种业务推荐方法,具体包括如下步骤:
步骤S110、接收用户的推荐请求。
具体的,推荐请求是指用户向服务器请求推荐相关的业务需求的请求,例如,业务需求可以是请求推荐自己可能感兴趣的商品,系统在接收到用户的该推荐请求后,会根据用户的自身属性特征和以往购买记录特征等等相关数据信息来计算得到用户可能感兴趣的商品。
步骤S120、根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件。
具体的,在接收到用户的推荐请求后,根据该推荐请求从存储规则引擎文件的分布式配置中心调用对应该推荐请求的规则引擎文件。由于用户的推荐请求类型众多,可能请求推荐感兴趣的商品、可能请求推荐感兴趣的电影、可能请求推荐感兴趣的歌曲等等,而且,每一种业务请求所需要的推荐策略也不相同,例如,请求推荐感兴趣的电影可能需要根据用户以往观看过或搜索过的电影的类型来推荐等等,因此,为了动态地满足用户持续变化的推荐需求,在面对新的推荐需求时,无需重复修改代码重新发版,引入了规则引擎文件到推荐系统中,规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策,接受数据输入,解释业务规则,并根据业务规则做出业务决策。本发明实施例采用的规则引擎文件为Drools规则引擎文件,Drools规则引擎是具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。可以理解的,可以根据需要采用其它的规则引擎文件,本发明对此不作限定。引入规则引擎文件,具体是根据预设推荐策略编写规则引擎文件,将编写好的规则引擎文件存储到分布式配置中心,分布式配置中心是指把业务开发者从复杂以及繁琐的配置中解脱出来,只需专注于业务代码本身,从而能够显著提升开发以及运维效率的配置中心。本发明实施例采用的分布式配置中心为Disconf(Distributed Configuration Management Platform)分布式配置中心,可以理解的,可以根据需要采用其它的分布式配置中心,例如Diamond、Apollo等等,本发明对此不作限定。在本系统中,可以是在分布式配置中心存储多个规则引擎文件,多个规则并列,满足条件即触发规则,甚至多次触发规则;也可以是一个规则引擎文件里配置对个推荐策略,自定义组合形成推荐策略链,然后顺序地执行且只执行一次,最终完成推荐输出。通过分布式配置中心Disconf能动态地部署不同推荐场景的规则引擎的文件,为推荐系统业务开发时候更加快速的完成开发和上线,极大地提高效率。
对于规则引擎文件的引入,本发明会区分常规的业务开发和特殊的业务开发。对于常规的业务开发,只需要根据预设推荐策略编写具体的规则引擎文件,上传到分布式配置中心上,推荐系统定时扫描分布式配置中心,有更新时动态加载推荐场景的规则引擎文件并解析相应的规则然后执行代码即可生效,避免了重新编写代码和发版上线的重复工作,极大地提高了效率。预设推荐策略是指根据用户的推荐请求设置的推荐策略,例如,根据请求推荐感兴趣的商品设置的推荐策略、根据请求推荐感兴趣的电影设置的推荐策略、根据请求推荐感兴趣的歌曲设置的推荐策略,等等。对于特殊的业务开发,根据预设推荐策略编写函数处理类包,函数处理类包可以是把公共功能的代码抽离成独立的模块,比如推荐候选集加载,特征加载,特征组合,算法预测,排序取TOP N等等,为了方便编写规则引擎文件方便调用,减少重复的代码开发而编写好的函数包。将编写好的函数处理类包存储到预设位置中,根据所述推荐请求从所述预设位置调用对应所述推荐请求的函数处理类包到对应的规则引擎文件中,并调用对应的规则引擎文件。具体可以是,把业务逻辑的代码抽成一个独立的函数处理类包,每次编写新增的业务逻辑函数处理类包后上传到Maven,利用规则引擎定时扫描最新的包,并加载到推荐系统中,实现不停用服务的情况下,动态加载函数到推荐系统。
进一步的,推荐请求的个数可以为多个,根据多个推荐请求从所述分布式配置中心按先后顺序调用对应所述推荐请求的规则引擎文件。
步骤S130、解析并执行调用的规则引擎文件的预设推荐策略向用户推荐对应的业务。
具体的,在根据用户的推荐请求调用对应的规则引擎文件后,解析并执行调用的规则引擎文件的预设推荐策略向用户推荐对应的业务。例如,用户请求推荐歌曲,则调用预设推荐策略为推荐歌曲的规则引擎文件,解析并执行该规则引擎文件向用户推荐歌曲。
作为一可选实施例,本发明的业务推荐方法还包括:为用户提供规则引擎文件修改接口,获取用户通过所述规则引擎文件修改接口输入的规则引擎文件更新信息,并利用所述规则引擎文件更新信息对相应的规则引擎文件进行修改。具体的,规则引擎文件修改接口是指用户修改规则引擎文件的入口,可以是在线修改,也可以是文件上传修改等等。通过修改规则引擎文件可以修改预设推荐策略,例如,将推荐歌曲的策略修改为推荐电影的策略,等等。
作为另一可选实施例,本发明的业务推荐方法还包括:为用户提供规则引擎文件添加接口,获取用户通过所述规则引擎文件添加接口输入的新增规则引擎文件,并将所述新增规则引擎文件存储到分布式配置中心。具体的,规则引擎文件添加接口是指用户添加规则引擎文件的入口,可以是通过文件上传或其它方式添加,例如添加推荐歌曲的规则引擎文件,等等。
作为另一可选实施例,本发明的推荐系统引入Dubbo分布式服务(一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案),把推荐系统和算法平台分离成独立的项目,推荐系统通过RPC接口请求算法平台拿到算法预测的结果,让程序更健壮更灵活。
本发明实施例的技术方案,通过引入规则引擎文件到推荐系统中,根据推荐策略的不同编写不同的规则引擎文件,无需修改代码重新发版,只需要修改对应规则引擎文件即可应对业务需求,实现提高推荐规则的灵活性和多样性,从而动态地满足用户持续变化的推荐需求。
实施例二
本发明实施例二所提供的业务推荐装置可执行本发明任意实施例所提供的业务推荐方法,具备执行方法相应的功能模块和有益效果,该装置可以由软件和/或硬件(集成电路)的方式实现,并一般可集成于服务器或终端设备中。图2是本发明实施例二中的一种业务推荐装置200的结构示意图。参照图2,本发明实施例的业务推荐装置200具体可以包括:
请求接收单元210,用于接收用户的推荐请求;
推荐调用单元220,用于根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件;
解析执行单元230,用于解析并执行调用的规则引擎文件的预设推荐策略向用户推荐对应的业务。
可选的,所述装置200还包括:
引擎编写单元,用于根据预设推荐策略编写规则引擎文件;
引擎存储单元,用于将编写好的规则引擎文件存储到分布式配置中心。
可选的,所述装置200还包括:
函数编写单元,用于根据预设推荐策略编写函数处理类包;
函数存储单元,用于将编写好的函数处理类包存储到预设位置中;
所述推荐调用单元220还用于根据所述推荐请求从所述预设位置调用对应所述推荐请求的函数处理类包到对应的规则引擎文件中,并调用对应的规则引擎文件。
可选的,所述推荐请求的个数为多个;
所述推荐调用单元220还用于根据多个推荐请求从所述分布式配置中心按先后顺序调用对应所述推荐请求的规则引擎文件。
可选的,所述装置200还包括:
文件修改单元,用于为用户提供规则引擎文件修改接口,获取用户通过所述规则引擎文件修改接口输入的规则引擎文件更新信息,并利用所述规则引擎文件更新信息对相应的规则引擎文件进行修改。
可选的,所述装置200还包括:
文件添加单元,用于为用户提供规则引擎文件添加接口,获取用户通过所述规则引擎文件添加接口输入的新增规则引擎文件,并将所述新增规则引擎文件存储到分布式配置中心。
可选的,所述规则引擎文件为Drools规则引擎文件,所述分布式配置中心为Disconf分布式配置中心。
本发明实施例的技术方案,通过引入规则引擎文件到推荐系统中,根据推荐策略的不同编写不同的规则引擎文件,无需修改代码重新发版,只需要修改对应规则引擎文件即可应对业务需求,实现提高推荐规则的灵活性和多样性,从而动态地满足用户持续变化的推荐需求。
实施例三
图3为本发明实施例三提供的一种服务器的结构示意图,如图3所示,该服务器包括处理器310、存储器320、输入装置330和输出装置340;服务器中处理器310的数量可以是一个或多个,图3中以一个处理器310为例;服务器中的处理器310、存储器320、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的业务推荐方法对应的程序指令/模块(例如,业务推荐装置200中的请求接收单元210、推荐调用单元220和解析执行单元230)。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的业务推荐方法。
也即:
接收用户的推荐请求;
根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件;
解析并执行调用的规则引擎文件的预设推荐策略向用户推荐对应的业务。
当然,本发明实施例所提供的服务器,其处理器不限于执行如上所述的方法操作,还可以执行本发明任意实施例所提供的业务推荐方法中的相关操作。
存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置330可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏等显示设备。
本发明实施例的技术方案,通过引入规则引擎文件到推荐系统中,根据推荐策略的不同编写不同的规则引擎文件,无需修改代码重新发版,只需要修改对应规则引擎文件即可应对业务需求,实现提高推荐规则的灵活性和多样性,从而动态地满足用户持续变化的推荐需求。
实施例四
本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种业务推荐方法,该方法包括:
接收用户的推荐请求;
根据所述推荐请求从存储规则引擎文件的分布式配置中心调用对应所述推荐请求的规则引擎文件;
解析并执行调用的规则引擎文件的预设推荐策略向用户推荐对应的业务。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的业务推荐方法中的相关操作。
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
存储介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例的技术方案,通过引入规则引擎文件到推荐系统中,根据推荐策略的不同编写不同的规则引擎文件,无需修改代码重新发版,只需要修改对应规则引擎文件即可应对业务需求,实现提高推荐规则的灵活性和多样性,从而动态地满足用户持续变化的推荐需求。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。