一种数据分发方法及推荐系统技术方案

技术编号:22565081 阅读:41 留言:0更新日期:2019-11-16 12:00
本发明专利技术涉及一种数据分发方法及推荐系统,所述方法具体步骤如下:调用启动脚本,所述启动脚本用于启动数据分发处理的初始化,读取配置文件并进行解析,从中获取以下信息:文件名model_file、类名modle_class、策略类型modle_type,缓存上述解析得到的文件名、类名、策略类型,以参数的形式传递给分发器架构,启动分发策略,将分发策略加载到系统中,执行分发策略。本发明专利技术,统一了分发器架构,可将编写好的策略加载到系统中,容易维护、更新分发策略,业务兼容性好;采用redis缓存进行模块间通信,数据分发响应时间低;分发时通过用户分数的判断,可为老用户推送个性化信息,新老用户推荐不同内容,更符合用户需求。

A data distribution method and recommendation system

The invention relates to a data distribution method and a recommendation system. The specific steps of the method are as follows: call a startup script, which is used to start the initialization of data distribution processing, read the configuration file and analyze it, obtain the following information from it: file name model file, class name module class, policy type module type, cache the file name and class name obtained from the above analysis , policy type, which is passed to the distributor architecture in the form of parameters, starts the distribution policy, loads the distribution policy into the system, and executes the distribution policy. The invention unifies the dispenser architecture, can load the prepared policies into the system, is easy to maintain and update the distribution policies, and has good business compatibility; uses redis cache for inter module communication, and has low response time for data distribution; when distributing, it can push personalized information for old users through the judgment of user score, and new and old users recommend different contents, which is more in line with user requirements.

【技术实现步骤摘要】
一种数据分发方法及推荐系统
本专利技术涉及推荐系统中的数据分发
,具体说是一种数据分发方法及推荐系统。
技术介绍
随着互联网技术的发展,推荐系统(个性化推荐系统)的使用非常普遍,推荐系统的任务是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展示在对它感兴趣的用户面前,实现信息消费者和信息生产者的双赢,解决信息过载的问题。推荐系统可应用在:音乐、电影的推荐,电子商务中商品推荐,个性化阅读(新闻消息),社交网络好友推荐、朋友圈推荐,基于位置的服务推荐,等等。在推荐系统中,第一个环节是分发阶段,合理的分发策略是推荐系统的重点,第二个环节是召回阶段,召回算法是该阶段的关键,第三个环节是排序阶段,将召回阶段得到的候选集进行精准排序,推荐给用户。所谓召回,可以理解为向用户粗选一批待推荐的信息(商品信息,视频信息等等),相当于粗排序,之后再通过排序模型进行精排序,例如使用CTR(Click-ThroughRate,点阅率)预估的rank模型(排名模型),即:召回=>排序(精排)=>后续其他处理步骤。所以召回的目的在于:从原始数据(一般理解为全量信息集合)中触发尽可能多的正确结果(即召回数据),并将正确结果(即召回数据)返回给排序。当数据(指原始数据,一般理解为全量信息集合)接入推荐系统时,通常需要通过数据分发器传输给数据召回器,数据召回器负责完成召回阶段的处理,根据召回策略(即召回算法)的不同,数据召回器不唯一,在一个推荐系统中,可能存在多个数据召回器,设计适当的数据分发方法,对于提高数据接入后传输给数据召回器的效率,影响很大,但是,现有技术中,针对数据分发方法的成熟方案鲜有记载,重视程度不够,缺乏成熟度高、有实用价值的数据分发方案。推荐系统中常用的召回策略(即召回算法)大致如下:协同过滤模型(主要可以分为基于用户的协同过滤、基于物品的协同过滤)、向量化召回模型和深度树匹配模型,协同过滤模型无法做到全局检索,而向量化召回模型对模型的结构进行了限制。深度树匹配模型解决了上述两个方面的限制,可以做到全局检索+使用先进模型。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种数据分发方法及推荐系统,统一了分发器架构,可将编写好的策略加载到系统中,容易维护、更新分发策略,业务兼容性好;采用redis缓存进行模块间通信,数据分发响应时间低;分发时通过用户分数的判断,可为老用户推送个性化信息,新老用户推荐不同内容,更符合用户需求。为达到以上目的,本专利技术采取的技术方案是:一种数据分发方法,其特征在于,包括:调用启动脚本,所述启动脚本用于启动数据分发处理的初始化,读取配置文件并进行解析,从中获取以下信息:文件名model_file、类名modle_class、策略类型modle_type,缓存上述解析得到的文件名、类名、策略类型,以参数的形式传递给分发器架构,启动分发策略,将分发策略加载到系统中,执行分发策略。在上述技术方案的基础上,所述启动脚本包括:通过调用start函数开始分发模块的启动,获取启动分发进程的个数,每个分发进程均执行如下步骤:获取以参数的形式传递的文件名model_file、类名modle_class、策略类型modle_type,将参数传递给分发器架构server_deliver.py,调用record函数记录启动的进程号,以及记录启动的时间。在上述技术方案的基础上,所述数据分发处理的初始化具体包括以下步骤:将分发器加载到系统中,连接热门数据推荐缓存队列popredis,用于分发器向热门推荐pop发送数据,连接个性化数据推荐缓存队列cfredis,用于分发器向个性化推荐cf发送数据,连接冷门数据推荐缓存队列coldredis,用于分发器向冷门推荐cold发送数据,连接其他数据推荐缓存队列otherredis,用于分发器向其他推荐other发送数据,作为后补召回数据策略,连接数据召回器缓存队列filterredis,用于向数据召回器filter发送通知,通知filter有数据需要从召回器召回,并对召回数据进行整合,连接分发策略deliver接收请求数据的redis缓存。在上述技术方案的基础上,所述分发器架构,具体包括:加载层、架构层、业务层,由这三层构成分发器架构,其中:加载层,在启动时被调用,用于获取配置文件,从中获取文件名model_file、类名modle_class、策略类型modle_type,通过接口的形式,形成分发实例化对象,架构层,被所有业务使用,用于从redis缓存中接收原始数据作为待处理数据,将待处理数据发送到业务层,所述待处理数据亦存入redis缓存,业务层,用于根据加载层传入的分发实例化对象,通过分发策略,对架构层传入的原始数据进行分发处理。在上述技术方案的基础上,所述执行分发策略具体包括:步骤1,从redis缓存中读取数据,所述数据为架构层接收到的原始数据,步骤2,解析读取到的原始数据,依次获取以下信息:获取用户id,获取设备id,获取用户请求资源的个数,默认资源为多媒体资源,所述多媒体资源包括以下任意之一:视频资源,音频资源,获取写历史标识的标记位,所述写历史标识的标记位用于根据用户请求偏好是否重复推送,步骤3,判断用户id是否存在,如果存在,则构建用户唯一标识user_id_key,所述用户唯一标识user_id_key格式如下:ur:用户id,如果不存在,则构建用户唯一标识user_id_key,所述用户唯一标识user_id_key格式如下:dr:设备id步骤4,将用户唯一标识user_id_key作为参数,查询对应的用户分数信息,在推荐系统中,用户历史信息模块中存储有用户分数信息,通过将用户唯一标识user_id_key作为参数,发送到用户历史信息模块,可以获得对应的用户分数信息,步骤5,基于用户分数信息,计算各种召回器召回个数,具体包括:步骤5.1,设定用户分数阈值,判断用户分数信息是否大于用户分数阈值,如果大于,则设定为第一召回比例,如果小于等于,则设定为第二召回比例,步骤5.2,将用户请求资源的个数,与第一召回比例或第二召回比例相乘,得到各种召回器召回个数,步骤6,将数据通过redis缓存发送到不同的召回器,所述不同的召回器至少包括:个性化数据cf召回器,冷数据cold召回器,热门数据pop召回器。在上述技术方案的基础上,所述设定为第一召回比例,具体包括:首先,代表个性化召回推荐占比的cf数据占比设定为用户分数/5,然后,代表热门数据推荐占比的pop数本文档来自技高网
...

【技术保护点】
1.一种数据分发方法,其特征在于,包括:/n调用启动脚本,所述启动脚本用于启动数据分发处理的初始化,/n读取配置文件并进行解析,从中获取以下信息:文件名model_file、类名modle_class、策略类型modle_type,/n缓存上述解析得到的文件名、类名、策略类型,以参数的形式传递给分发器架构,启动分发策略,将分发策略加载到系统中,/n执行分发策略。/n

【技术特征摘要】
1.一种数据分发方法,其特征在于,包括:
调用启动脚本,所述启动脚本用于启动数据分发处理的初始化,
读取配置文件并进行解析,从中获取以下信息:文件名model_file、类名modle_class、策略类型modle_type,
缓存上述解析得到的文件名、类名、策略类型,以参数的形式传递给分发器架构,启动分发策略,将分发策略加载到系统中,
执行分发策略。


2.如权利要求1所述的数据分发方法,其特征在于:所述启动脚本包括:
通过调用start函数开始分发模块的启动,
获取启动分发进程的个数,每个分发进程均执行如下步骤:
获取以参数的形式传递的文件名model_file、类名modle_class、策略类型modle_type,
将参数传递给分发器架构server_deliver.py,
调用record函数记录启动的进程号,以及记录启动的时间。


3.如权利要求1所述的数据分发方法,其特征在于:所述数据分发处理的初始化具体包括以下步骤:
将分发器加载到系统中,
连接热门数据推荐缓存队列popredis,用于分发器向热门推荐pop发送数据,
连接个性化数据推荐缓存队列cfredis,用于分发器向个性化推荐cf发送数据,
连接冷门数据推荐缓存队列coldredis,用于分发器向冷门推荐cold发送数据,
连接其他数据推荐缓存队列otherredis,用于分发器向其他推荐other发送数据,作为后补召回数据策略,
连接数据召回器缓存队列filterredis,用于向数据召回器filter发送通知,通知filter有数据需要从召回器召回,并对召回数据进行整合,
连接分发策略deliver接收请求数据的redis缓存。


4.如权利要求1所述的数据分发方法,其特征在于:所述分发器架构,具体包括:
加载层、架构层、业务层,由这三层构成分发器架构,其中:
加载层,在启动时被调用,用于获取配置文件,从中获取文件名model_file、类名modle_class、策略类型modle_type,通过接口的形式,形成分发实例化对象,
架构层,被所有业务使用,用于从redis缓存中接收原始数据作为待处理数据,将待处理数据发送到业务层,所述待处理数据亦存入redis缓存,
业务层,用于根据加载层传入的分发实例化对象,通过分发策略,对架构层传入的原始数据进行分发处理。


5.如权利要求1所述的数据分发方法,其特征在于:所述执行分发策略具体包括:
步骤1,从redis缓存中读取数据,所述数据为架构层接收到的原始数据,
步骤2,解析读取到的原始数据,依次获取以下信息:
获取用户id,
获取设备id,
获取用户请求资源的个数,默认资源为多媒体资源,所述多媒体资源包括以下任意之一:视频资源,音频资源,
获取写历史标识的标记位,所述写历史标识的标记位用于根据用户请求偏好是否重复推送,
步骤3,判断用户id是否存在,
如果存在,则构建用户唯一标识user_id_key,所述用户唯一标识user_id_key格式如下:
ur:用户id,
如果不存在,则构建用户唯一标识user_id_key,所述用户唯一标识user_id_key格式如下:
dr:设备...

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

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

1