本发明涉及推荐系统中的数据融合(数据整合)技术领域,具体说是一种推荐系统整合策略及推荐系统。所述整合策略亦可称为融合策略。
背景技术:
现有的推荐系统,包括两个主要的阶段:
第一个阶段是召回阶段,召回阶段的主要工作,是通过各种推荐算法,得到推荐数据,产生一个候选集,即由推荐数据构成的候选集,
召回阶段,涉及召回器模块及召回策略的设计;
第二个阶段是融合阶段,融合阶段的主要工作,是对候选集进行统一的排序,得到排序(精准排序)后的推荐数据,产生最终的推荐结果,
融合阶段,涉及融合器模块及融合策略的设计。
因此,融合阶段,使用何种整合策略(亦可称为融合策略),将影响到最终的推荐结果,对整合策略的设计,现有技术中,通常有两种方式:
基于规则:通常会制定多种加权规则、或切换规则、或融合规则。基于规则对候选集进行处理,产生最终的推荐结果。
自动融合:以具体的业务指标为导向的,通过模型对候选集进行处理,产生统一的、最终的推荐结果。常用的模型有:机器学习算法gbdt,因子分解机fm,同时训练线性模型和深度模型wideanddeep等等。
由于推荐系统属于面向b2c(business-to-customer)业务,流量大、数据多,在开发推荐系统时,由于融合策略(即融合算法)需要针对不同的应用场景进行相应修改,导致融合器模块(简称融合器)也需要反复改动,影响开发效率,故需要对融合器模块的设计进行优化。
以开发、改进音乐类app(酷我音乐app)为例:
我们在设计推荐系统使用的融合器及基于规则的整合策略(融合策略)时发现,由于音乐类app版本的不断更新、迭代,app中包括的功能也在不断丰富、拓展,导致基于规则的整合策略需要兼容多种业务场景,例如:视频场景,音乐片段场景,私人电台场景,歌单场景,等等,这使得整合策略复杂程度越来越高,业务兼容性不足问题严重,影响开发效率。例如:
首先,需要确定哪些业务场景需要推荐系统的融入,
然后,每个业务场景设计对应的融合器及基于规则的整合策略,
如此一来,app功能越多,就会有更多的业务场景需要推荐系统的融入,相应的,就需要设计、开发对应的融合器及基于规则的整合策略,显然这种现有模式产生了业务兼容性不足的问题,影响开发效率。不同业务场景,都需要针对性的调整整合策略,这导致工作量大大增加。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种推荐系统整合策略及推荐系统,整合策略的兼容性高,可维护性好,针对不同业务场景,仅需相应调整个别参数的设置,即可由具有统一架构的融合器载入系统,使用方便,业务兼容性得到了提升,用户体验好,推荐内容更贴近用户所好。
为达到以上目的,本发明采取的技术方案是:
一种推荐系统整合策略,其特征在于,包括如下步骤:
载入服务架构及配置文件,具体包括:
调用启动脚本,所述启动脚本用于载入融合器的服务架构,用于载入融合策略的配置文件;
基于业务场景进行召回,具体包括:
首先,获取当前业务场景信息,
然后,根据业务场景信息调用不同的召回器,执行对应的召回策略;
载入融合策略,各业务场景均采用统一的融合策略,具体包括:
首先,读取融合策略所在的文件,
然后,解析读取的文件,获取其中记录的文件名、类名、策略类型,
再后,将文件名、类名、策略类型封装为参数,以参数的形式传递给服务架构,
最后,服务架构加载融合策略到系统中;
调用融合策略,具体包括:
首先,解析配置文件,获得融合优先级信息,以及融合比例信息,
然后,执行融合策略,得到汇总后的数据,即融合后的数据,
所述得到汇总后的数据具体包括:
各个召回器召回的数据用recall_x_num表示,x表示召回器类型,所述类型至少划分为:个性化数据类型cf、热门数据类型pop、冷门数据类型cold和其他数据类型other,
融合比例信息用ratio表示,取值范围为0-10,对应于0%-100%,
各个召回器最终融合后的数据用filter_x_num表示,
则:filter_x_num=recall_x_num*((ratio*10)%),
按融合优先级信息依次计算各个召回器的filter_x_num,
再将各个召回器的filter_x_num累加后即为汇总后的数据;
将汇总后的数据发送给用户。
在上述技术方案的基础上,融合优先级信息的设置原则为:按能体现用户特性的顺序设置各个召回器的融合优先级信息。
在上述技术方案的基础上,调用融合策略时,获得融合优先级信息,具体步骤如下:
设定一个召回器列表,用于存储融合优先级信息,其中:
优先级高的先写入召回器列表,优先级低的后写入召回器列表。
在上述技术方案的基础上,所述召回器列表以字符串的形式存储于融合策略的配置文件中,用逗号分隔各召回器,按从左至右的顺序依次读取,读取顺序即体现出优先级高与低。
在上述技术方案的基础上,调用融合策略时,默认融合比例信息为:
个性化数据类型cf的ratio默认值为6,
热门数据类型pop的ratio默认值3,
冷门数据类型cold的ratio默认值1,
其他数据类型other的ratio默认值10。
在上述技术方案的基础上,所述服务架构,具体包括:
优先级及比例设定模块,用于调整配置文件中的融合优先级信息,以及融合比例信息,
所述融合优先级信息指召回器的融合计算优先级,
所述融合比例信息指召回器的融合比例,
融合策略根据以上信息,按融合计算优先级依次从对应的召回器获取候选集数据,按融合比例保留指定数量的候选集数据;
召回器载入模块,用于基于业务场景,加载不同的召回器,执行对应的召回策略;
融合策略调用模块,用于载入的融合策略,执行融合策略,得到汇总后的数据,
数据转发模块,用于将汇总后的数据发送给用户;
所述服务架构,通过架构文件设定,
在所述架构文件中,设定架构各层的数据输入格式及输出格式,
所述各层依次为:
接入层,输出数据给分发器deliver层,
分发器deliver层,输出数据给召回器recall层,
召回器recall层,输出数据给过滤器filter层,
过滤器filter层,输出数据给融合层,
融合层,输出数据给接入层。
在上述技术方案的基础上,调用融合策略前,为了获取候选集数据,服务架构链接分发器deliver缓存,形成数据输入通道,
服务架构还链接历史数据过滤召回缓存historyredis,用于对召回数据进行去重过滤,历史数据过滤召回缓存historyredis存储过去一定时间内的召回数据,服务架构通过数据输出通道,将融合后的数据写入historyredis,便于召回器进行数据去重工作,
服务架构还链接数据接口输出模块缓存,形成数据输出通道。
在上述技术方案的基础上,融合请求信息从分发器deliver缓存获取,基于该融合请求信息启动调用融合策略,
融合请求信息基于jison格式编码;
解析融合请求信息,得到用户唯一标识user_id,根据该标识,完成将汇总后的数据发送给用户的处理;
解析融合请求信息,得到需要召回融合的数量num,将各个召回器的filter_x_num累加后的数量,应等于需要召回融合的数量num;
解析融合请求信息,得到对融合后的数据是否写历史,当需要时,服务架构将融合后的数据,写入历史数据过滤召回缓存historyredis,用于对召回数据进行去重过滤。
一种推荐系统,其特征在于,包括:
融合器,具体包括如下服务架构:
优先级及比例设定模块,用于调整配置文件中的融合优先级信息,以及融合比例信息,
所述融合优先级信息指召回器的融合计算优先级,
所述融合比例信息指召回器的融合比例,
融合策略根据以上信息,按融合计算优先级依次从对应的召回器获取候选集数据,按融合比例保留指定数量的候选集数据;
召回器载入模块,用于基于业务场景,加载不同的召回器,执行对应的召回策略;
融合策略调用模块,用于载入的融合策略,执行融合策略,得到汇总后的数据,
数据转发模块,用于将汇总后的数据发送给用户;
所述融合器应用如上所述整合策略。
本发明所述的推荐系统整合策略及推荐系统,整合策略的兼容性高,可维护性好,针对不同业务场景,仅需相应调整个别参数的设置,即可由具有统一架构的融合器载入系统,使用方便,业务兼容性得到了提升,用户体验好,推荐内容更贴近用户所好。
本发明所述的推荐系统整合策略及推荐系统,拟用于酷我音乐app视频推荐系统中,具有如下有益效果:
第一、业务兼容性强,融合器所用服务架构以及融合策略可以使用在不同的业务(视频、音乐片段、私人电台等)场景中,只需根据自己的业务编写融合策略以及相应的召回策略,而不需要修改服务架构。
第二、由于不需要修改服务架构,系统容易维护。
第三、对召回阶段产生的候选集(推荐数据),可以根据不同的策略进行融合处理(如排序、对召回的数据进行写历史等),便于根据用户的偏好,选择适当的融合策略,满足用户的需求。
附图说明
本发明有如下附图:
图1本发明的整合策略流程图。
图2本发明的载入融合策略流程图。
图3本发明的调用融合策略流程图。
图4本发明的服务架构示意图。
图5调用融合策略前的预处理流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的推荐系统整合策略,包括如下步骤:
载入服务架构及配置文件,具体包括:
调用启动脚本,所述启动脚本用于载入融合器的服务架构,用于载入融合策略的配置文件;
基于业务场景进行召回,具体包括:
首先,获取当前业务场景信息,
然后,根据业务场景信息调用不同的召回器,执行对应的召回策略;
召回器的添加不需要修改融合器的处理逻辑;
载入融合策略,各业务场景均采用统一的融合策略,如图2所示,具体包括:
首先,读取融合策略所在的文件,
然后,解析读取的文件,获取其中记录的文件名、类名、策略类型,
再后,将文件名、类名、策略类型封装为参数,以参数的形式传递给服务架构,
最后,服务架构加载融合策略到系统中;
调用融合策略,如图3所示,具体包括:
首先,解析配置文件,获得融合优先级信息,以及融合比例信息,
然后,执行融合策略,得到汇总后的数据,即融合后的数据,
所述得到汇总后的数据具体包括:
各个召回器召回的数据用recall_x_num表示,x表示召回器类型,所述类型至少划分为:个性化数据类型cf、热门数据类型pop、冷门数据类型cold和其他数据类型other,
融合比例信息用ratio表示,取值范围为0-10,对应于0%-100%,
各个召回器最终融合后的数据用filter_x_num表示,
则:filter_x_num=recall_x_num*((ratio*10)%),
按融合优先级信息依次计算各个召回器的filter_x_num,
再将各个召回器的filter_x_num累加后即为汇总后的数据;
将汇总后的数据发送给用户。
本发明通过调整融合优先级信息,以及融合比例信息,实现了统一的融合策略适配各业务场景信息,根据业务需要,只需要将融合优先级信息,以及融合比例信息,加入融合策略的配置文件,即可在不需要改动融合器及融合策略的情况下,完成融合策略与业务场景的适配,提高了融合器的兼容性和维护性。
上述方案中,融合优先级信息的设置原则为:按能体现用户特性的顺序设置各个召回器的融合优先级信息。
在上述技术方案的基础上,调用融合策略时,获得融合优先级信息,具体步骤如下:
设定一个召回器列表,用于存储融合优先级信息,其中:
优先级高的先写入召回器列表,优先级低的后写入召回器列表。
本发明中,设定一个召回器列表,目的在于确保能完整遍历各召回器,避免遗漏,当召回器列表均逐一计算各个召回器的filter_x_num后,则表示全部召回器均处理完毕。
作为可选择的实施方案之一,所述召回器列表以字符串的形式存储于融合策略的配置文件中,用逗号分隔各召回器,按从左至右的顺序依次读取(读取顺序即体现出优先级高与低)。
在上述技术方案的基础上,调用融合策略时,默认融合比例信息为:
个性化数据类型cf的ratio默认值为6,
热门数据类型pop的ratio默认值3,
冷门数据类型cold的ratio默认值1,
其他数据类型other的ratio默认值10。
默认融合比例信息的设置原则为:优先级越高越能体现用户特性,故优先级越高的配置的融合比例越高,但是还要将优先级低的召回数据融合给用户,这样才能更加培养用户的兴趣爱好。
其他数据类型other的ratio默认值10,目的是在最坏的情况时,所有召回器都没有返回数据后,还能通过other返回数据。
在上述技术方案的基础上,如图4所示,所述服务架构,具体包括:
优先级及比例设定模块,用于调整配置文件中的融合优先级信息,以及融合比例信息,
所述融合优先级信息指召回器的融合计算优先级,
所述融合比例信息指召回器的融合比例,
融合策略根据以上信息,按融合计算优先级依次从对应的召回器获取候选集数据,按融合比例保留指定数量的候选集数据;
召回器载入模块,用于基于业务场景,加载不同的召回器,执行对应的召回策略;
融合策略调用模块,用于载入的融合策略,执行融合策略,得到汇总后的数据,
数据转发模块,用于将汇总后的数据发送给用户。
在上述技术方案的基础上,图3示出了调用融合策略的具体流程,为进一步优化该流程,如图5所示,调用融合策略前,为了获取候选集数据,服务架构链接分发器deliver缓存,形成数据输入通道,
服务架构还链接历史数据过滤召回缓存historyredis,用于对召回数据进行去重过滤,历史数据过滤召回缓存historyredis存储过去一定时间内的召回数据,服务架构通过数据输出通道,将融合后的数据写入historyredis,便于召回器进行数据去重工作,
服务架构还链接数据接口输出模块缓存,形成数据输出通道。
在上述技术方案的基础上,融合请求信息从分发器deliver缓存获取,基于该融合请求信息启动调用融合策略,
融合请求信息基于jison格式编码;
解析融合请求信息,得到用户唯一标识user_id,根据该标识,完成将汇总后的数据发送给用户的处理;
解析融合请求信息,得到需要召回融合的数量num,将各个召回器的filter_x_num累加后的数量,应等于需要召回融合的数量num;
解析融合请求信息,得到对融合后的数据是否写历史,当需要时,服务架构将融合后的数据,写入历史数据过滤召回缓存historyredis,用于对召回数据进行去重过滤。
在上述技术方案的基础上,所述服务架构,通过架构文件设定,
在所述架构文件中,设定架构各层的数据输入格式及输出格式,
所述各层依次为:
接入层,输出数据给分发器deliver层,
分发器deliver层,输出数据给召回器recall层,
召回器recall层,输出数据给过滤器filter层,
过滤器filter层,输出数据给融合层,
融合层,输出数据给接入层。
基于上述推荐系统整合策略,本发明给出了一种推荐系统,包括:
融合器,具体包括如下服务架构:
优先级及比例设定模块,用于调整配置文件中的融合优先级信息,以及融合比例信息,
所述融合优先级信息指召回器的融合计算优先级,
所述融合比例信息指召回器的融合比例,
融合策略根据以上信息,按融合计算优先级依次从对应的召回器获取候选集数据,按融合比例保留指定数量的候选集数据;
召回器载入模块,用于基于业务场景,加载不同的召回器,执行对应的召回策略;
融合策略调用模块,用于载入的融合策略,执行融合策略,得到汇总后的数据,
数据转发模块,用于将汇总后的数据发送给用户;
所述融合器应用如上所述整合策略。
在上述技术方案的基础上,还包括:
召回器,根据业务场景信息分别设置不同的召回器,执行对应的召回策略。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。