一种用于推荐系统的微服务架构技术方案

技术编号:24091640 阅读:85 留言:0更新日期:2020-05-09 08:20
本发明专利技术涉及一种用于推荐系统的微服务架构,包括:微服务模块,作为公共模块,提供业务的输入及输出;所述输入包括:接收原始数据,接收业务逻辑模块发送的处理结果,接收其他微服务模块发送的处理结果,所述输出包括:将接收到的原始数据发送到相应的业务逻辑模块,将接收到的处理结果发送到相应的业务逻辑模块,将接收到的处理结果发送到其他微服务模块;业务逻辑模块,作为私有模块,提供业务的推荐策略或推荐算法。本发明专利技术,采用统一的架构设计,形成公用的微服务模块,支撑分发、召回、融合排序功能的实现;通过抽象分发、召回、融合排序模块的共用部分,大幅降低了代码冗余度,提升了系统可维护性和扩展性。

A microservice architecture for recommendation system

【技术实现步骤摘要】
一种用于推荐系统的微服务架构
本专利技术涉及推荐系统架构设计
,具体说是一种用于推荐系统的微服务架构。所述推荐系统用于提供个性化推荐服务。
技术介绍
现有技术中,个性化推荐成了互联网产品的标配,随着技术的不断发展,用户的个性化需求、场景的多样性、数据的复杂性都对推荐系统提出了更高的要求。主要追求的目标包括:满足用户的需求,针对不同用户,提供适当、准确的内容推荐;满足用户的兴趣时,兼顾内容的多样性,例如:对于权重不同的兴趣都要做到兼顾;提供用户之前未曾接触过的、新颖的内容推荐,通过适当的配置惊喜度,提升用户粘性;实时关注用户的兴趣随时间而改变,及时更新兴趣及权重;有效挖掘长尾内容,扩大内容推荐的覆盖范围。现有的推荐系统,其架构及处理流程通常如图1所示:用户向若干推荐引擎发出推荐请求,响应请求的推荐引擎1-N输出结果并进行汇总,汇总后形成初始化推荐结果,然后对初始化推荐结果,依次进行过滤处理、排名处理、推荐解释处理,得到推荐结果,并返回给用户。所述若干推荐引擎,每个推荐引擎负责一类特征和一种任务,每一个推荐引擎代表了一种推荐策略(推荐算法),以适应不同用户对不同推荐策略的需求及喜好,例如:所述推荐引擎使用一种或几种用户特征,按照一种推荐策略生成一种类型内容的推荐列表(推荐列表即推荐引擎的输出结果);汇总各推荐引擎的输出形成初始化推荐结果,汇总时针对各推荐引擎配置一定权重或优先级;初始化推荐结果为一个由推荐引擎的输出结果构成的候选集;r>过滤模块,针对初始化推荐结果进行过滤,过滤掉那些不符合要求的内容,未被滤除的内容则为拟返回给用户的推荐结果;过滤模块对应于召回阶段的处理;排名(排序)模块,过滤后得到的推荐结果(拟返回给用户的推荐结果),通过排名处理,提升用户满意度;排名(排序)模块对应于融合阶段的处理。图1中示出的推荐解释是指简单的向用户说明推荐某一内容的原因,可单独设置相应的解释生成模块,实现这一功能。由于推荐系统是面向B2C(Business-to-Customer)业务,流量大、数据多,现有的推荐系统,在整体的系统架构设计时,还存在以下不足,不能满足“快速完成测试,快速上线,快速验证推荐策略是否符合用户需求”的开发需要:推荐系统包含各种业务(例如歌单、每日推荐、私人电台、音乐片段、视频等),现有的推荐系统,在系统架构设计时,将业务基本逻辑划分为:数据接入、分发、召回、融合排序。业务基本逻辑按上述划分后,针对每一种业务,都需要单独的开发分发模块、召回模块、融合排序模块,代码工作量相当大,系统难以维护,系统的扩容性也不好。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种用于推荐系统的微服务架构,采用统一的架构设计,形成公用的微服务模块,支撑分发、召回、融合排序功能的实现;通过抽象分发、召回、融合排序模块的共用部分,大幅降低了代码冗余度,提升了系统可维护性和扩展性。为达到以上目的,本专利技术采取的技术方案是:一种用于推荐系统的微服务架构,其特征在于,包括:微服务模块,作为公共模块,提供业务的输入及输出;所述输入包括:接收原始数据,接收业务逻辑模块发送的处理结果,接收其他微服务模块发送的处理结果,所述输出包括:将接收到的原始数据发送到相应的业务逻辑模块,将接收到的处理结果发送到相应的业务逻辑模块,将接收到的处理结果发送到其他微服务模块;业务逻辑模块,作为私有模块,提供业务的推荐策略或推荐算法。在上述技术方案的基础上,所述业务逻辑模块包括:分发逻辑模块,召回逻辑模块,融合排序逻辑模块。在上述技术方案的基础上,所述输出是通过put的方式将数据发送出去,所述输入是通过get的方式接收数据。在上述技术方案的基础上,所述通过put的方式将数据发送出去,以及所述通过get的方式接收数据,通过对redis底层api的封装实现;该封装实例化时,实例化对象至少包括业务名称、策略名称、以及用户唯一标识,实例化对象至少包括put和get两个方法。在上述技术方案的基础上,微服务模块之间的通讯协议采用标准化协议,所述标准化协议默认为轻量级redis通讯。在上述技术方案的基础上,所述微服务模块,具体包括:加载层,在推荐系统启动时,通过配置文件加载相应的业务逻辑策略到业务逻辑模块,所述业务逻辑策略即指推荐策略或推荐算法,业务逻辑策略可预先单独编写;核心层,用于实现业务的输入及输出,加载层加载的业务逻辑策略通过核心层传输到业务逻辑模块;所述业务逻辑模块,包括:业务逻辑层,用于执行相关业务逻辑策略,用于与核心层交互数据。在上述技术方案的基础上,所述配置文件,包括以下配置信息:业务信息,redis信息,多个微服务架构的级联方式信息,业务逻辑策略加载信息,服务启动脚本。在上述技术方案的基础上,所述服务启动脚本,为推荐系统的启动、停止、重启的入口,包含三个主要函数start()、stop()、restart(),服务启动脚本将配置文件中的策略配置加载到微服务架构中,形成推荐系统。一种推荐系统,其特征在于,包括:数据接入模块,用于接收原始数据,上述任意之一所述的微服务架构,微服务架构中的微服务模块,调用加载层,通过配置文件加载相应的业务逻辑策略到业务逻辑模块,构成相应的功能模块,所述功能模块包括:分发逻辑模块,召回逻辑模块,融合排序逻辑模块。在上述技术方案的基础上,分发逻辑模块和融合排序逻辑模块,合并为分发融合模块。本专利技术所述的用于推荐系统的微服务架构,采用统一的架构设计,形成公用的微服务模块,支撑分发、召回、融合排序功能的实现;通过抽象分发、召回、融合排序模块的共用部分,大幅降低了代码冗余度,提升了系统可维护性和扩展性。本专利技术所述的用于推荐系统的微服务架构,拟用于酷我音乐APP视频推荐模块中,为音乐片段推荐功能、视频推荐功能、私人电台推荐功能、音乐推视频推荐功能提供服务支撑。具有以下有益效果:1、高可用性:微服务间采用轻量级redis缓存通讯。通讯可靠,安全性好,数据读取速度快。2、易维护:不同的业务,处理逻辑可以复用。如每日推荐完全复用私人电台的召回器业务,还可以根据业务数据编写召回策略。3、易扩展性:微服务输入、输出数据格式为标准格式,外部模块业务只需要编写策略随意加入到系统,如同搭建积木方便。4、策略验证的高效性:由于经常要对新的召回策略进行ab测试,开发出来的策略很容易快速部署到线上得到验证等。5、操作方便,编写好的策略通过配置文件配置输入输出等加载到微服务。6、开发速度快,如果要开发新的一个业务只需要召回一类数据时,这时数据接入模块只需要接入一个召回器即可,无需数据的分发融合等。附图说明本专利技术有如下附图:图1现有本文档来自技高网...

【技术保护点】
1.一种用于推荐系统的微服务架构,其特征在于,包括:/n微服务模块,作为公共模块,提供业务的输入及输出;/n所述输入包括:接收原始数据,接收业务逻辑模块发送的处理结果,接收其他微服务模块发送的处理结果,/n所述输出包括:将接收到的原始数据发送到相应的业务逻辑模块,将接收到的处理结果发送到相应的业务逻辑模块,将接收到的处理结果发送到其他微服务模块;/n业务逻辑模块,作为私有模块,提供业务的推荐策略或推荐算法。/n

【技术特征摘要】
1.一种用于推荐系统的微服务架构,其特征在于,包括:
微服务模块,作为公共模块,提供业务的输入及输出;
所述输入包括:接收原始数据,接收业务逻辑模块发送的处理结果,接收其他微服务模块发送的处理结果,
所述输出包括:将接收到的原始数据发送到相应的业务逻辑模块,将接收到的处理结果发送到相应的业务逻辑模块,将接收到的处理结果发送到其他微服务模块;
业务逻辑模块,作为私有模块,提供业务的推荐策略或推荐算法。


2.如权利要求1所述的用于推荐系统的微服务架构,其特征在于:所述业务逻辑模块包括:分发逻辑模块,召回逻辑模块,融合排序逻辑模块。


3.如权利要求1所述的用于推荐系统的微服务架构,其特征在于:所述输出是通过put的方式将数据发送出去,所述输入是通过get的方式接收数据。


4.如权利要求3所述的用于推荐系统的微服务架构,其特征在于:所述通过put的方式将数据发送出去,以及所述通过get的方式接收数据,通过对redis底层api的封装实现;
该封装实例化时,实例化对象至少包括业务名称、策略名称、以及用户唯一标识,实例化对象至少包括put和get两个方法。


5.如权利要求1所述的用于推荐系统的微服务架构,其特征在于:微服务模块之间的通讯协议采用标准化协议,所述标准化协议默认为轻量级redis通讯。


6.如权利要求1所述的用于推荐系统的微服务架构,其特征在于:所述微服务模块,具体...

【专利技术属性】
技术研发人员:张力刘永才
申请(专利权)人:北京酷我科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1