CN108133031A - 一种过滤推荐视频候选结果的方法及装置 - Google Patents
一种过滤推荐视频候选结果的方法及装置 Download PDFInfo
- Publication number
- CN108133031A CN108133031A CN201711486750.4A CN201711486750A CN108133031A CN 108133031 A CN108133031 A CN 108133031A CN 201711486750 A CN201711486750 A CN 201711486750A CN 108133031 A CN108133031 A CN 108133031A
- Authority
- CN
- China
- Prior art keywords
- video
- filtered
- user
- bloom filter
- filter example
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/735—Filtering based on additional data, e.g. user or group profiles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例中公开了一种过滤推荐视频候选结果的方法及装置,接收用户发送的包括用户标识ID的视频推荐服务调用请求,从Redis数据库中确定与用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;从推荐视频候选结果中确定待过滤视频;查询第一布隆过滤器实例以及第二布隆过滤器实例中是否包含待过滤视频,如果包含,则确定待过滤视频为待推荐视频,并将待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐待过滤视频。基于上述方法及装置,能够提高过滤推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频时的准确率及效率。
Description
技术领域
本发明涉及视频推荐技术领域,具体涉及一种过滤推荐视频候选结果的方法及装置。
背景技术
视频推荐***中,需要从推荐引擎计算出的推荐视频候选结果中取得最终推荐给用户的结果。根据具体需求场景,视频推荐***用户每次刷新都应该是不同的视频推荐结果,用户已经观看或者收藏、点赞等消费过的推荐视频不应该继续推荐给用户,因此每次调用视频推荐服务都需要高效地从推荐视频候选结果中选择与***历史推荐视频及用户历史消费的推荐视频不重复的数据。
业界目前实现的视频推荐***,都需要解决对推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频进行过滤的问题。目前解决上述问题的常规方案是把所有的***历史推荐视频及用户历史消费的推荐视频保存在一个存储在Redis数据库内的数据集合中,然后逐个判断推荐视频候选结果中的候选推荐视频是否已经存在上述数据集合中,若存在,则不推荐该候选推荐视频。
但是,现有技术中,是存储完整的视频ID到上述数据集合中,随着用户使用视频推荐***的时间增长,该用户调用视频推荐***推荐服务的次数以及播放收藏等消费推荐视频行为的次数也相应增多,而视频ID位数又很长,进而导致上述数据集合所占用Redis数据库的存储空间也会越来越庞大。而Redis数据库的数据结构是基于哈希算法的,也就是说,上述数据集合的存储结构是基于哈希函数的,而哈希函数在数据量很大的情况下会出现哈希冲突,因此,数据集合所占用Redis数据库的存储空间过大时,会导致对推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频进行过滤的准确率低。
另外,推荐视频候选结果中往往有多个候选视频推荐,由于上述数据集合存储在Redis数据库内,而逐个判断推荐视频候选结果中的候选推荐视频是否已经存在上述数据集合中,需要多次调用Redis数据库的操作函数,会导致对推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频进行过滤的效率较低。
发明内容
有鉴于此,本发明实施例提供一种推荐候选结果过滤方法及装置,能够解决现有技术中过滤推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频时的准确率较低及效率较低的问题。
为实现上述目的,本发明实施例提供如下技术方案:
一种过滤推荐视频候选结果的方法,包括:
接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;
从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;
从推荐视频候选结果中确定待过滤视频;
查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。
可选的,在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,所述方法还包括:
判断所述第一布隆过滤器实例中包括的***历史推荐视频的数量是否达到第一预设阈值,如果达到,则重置所述第一布隆过滤器实例。
可选的,所述视频推荐服务调用请求包括用户请求推荐视频的数量,则在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,所述方法还包括:
判断向所述用户推荐视频的数量是否大于所述用户请求推荐视频的数量,如果不大于,则返回执行从推荐视频候选结果中确定待过滤视频的步骤并顺序执行,直至从推荐视频候选结果中确定待过滤视频的次数达到第二预设阈值为止,生成最终的视频推荐结果发送给所述用户;如果大于,则直接生成最终的视频推荐结果发送给所述用户。
可选的,在生成最终的视频推荐结果发送给所述用户之后,所述方法还包括:
监测所述用户对所述最终的视频推荐结果中的推荐视频的消费事件;
当监测到所述用户对所述最终的视频推荐结果中的任一推荐视频的消费事件时,将该推荐视频添加至所述第二布隆过滤器实例。
可选的,所述从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例,包括:
生成与所述用户ID对应的存储键值;
根据所述存储键值从Redis数据库中读取与所述用户ID对应的布隆过滤器序列化字符串;
如果读取成功,则根据所述序列化字符串获取字节数组后反序列化得到所述第一布隆过滤器实例和所述第二布隆过滤器实例;
如果读取失败,则新建所述第一布隆过滤器实例和所述第二布隆过滤器实例。
一种过滤推荐视频候选结果的装置,包括:
接收模块,用于接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;
布隆过滤器实例确定模块,用于从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;
待过滤视频确定模块,用于从推荐视频候选结果中确定待过滤视频;
处理模块,用于查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。
可选的,所述处理模块还用于:
在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,判断所述第一布隆过滤器实例中包括的***历史推荐视频的数量是否达到第一预设阈值,如果达到,则重置所述第一布隆过滤器实例。
可选的,所述处理模块还用于:
视频推荐服务调用请求包括用户请求推荐视频的数量,则在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,判断向所述用户推荐视频的数量是否大于所述用户请求推荐视频的数量,如果不大于,则返回执行从推荐视频候选结果中确定待过滤视频的步骤并顺序执行,直至从推荐视频候选结果中确定待过滤视频的次数达到第二预设阈值为止,生成最终的视频推荐结果发送给所述用户;如果大于,则直接生成最终的视频推荐结果发送给所述用户。
可选的,所述处理模块还用于:
在生成最终的视频推荐结果发送给所述用户之后,监测所述用户对所述最终的视频推荐结果中的推荐视频的消费事件;当监测到所述用户对所述最终的视频推荐结果中的任一推荐视频的消费事件时,将该推荐视频添加至所述第二布隆过滤器实例。
可选的,所述布隆过滤器实例确定模块,具体用于:
生成与所述用户ID对应的存储键值;
根据所述存储键值从Redis数据库中读取与所述用户ID对应的布隆过滤器序列化字符串;
如果读取成功,则根据所述序列化字符串获取字节数组后反序列化得到所述第一布隆过滤器实例和所述第二布隆过滤器实例;
如果读取失败,则新建所述第一布隆过滤器实例和所述第二布隆过滤器实例。
基于上述技术方案,本发明实施例中公开了一种过滤推荐视频候选结果的方法及装置,接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;从推荐视频候选结果中确定待过滤视频;查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。基于上述方法及装置,能够提高过滤推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频时的准确率及效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种过滤推荐视频候选结果的方法的流程示意图;
图2为本发明实施例提供的又一种过滤推荐视频候选结果的方法的流程示意图;
图3为本发明实施例提供的再一种过滤推荐视频候选结果的方法的流程示意图;
图4为本发明实施例提供的一种过滤推荐视频候选结果的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
视频推荐***中,需要从推荐引擎计算出的推荐视频候选结果中取得最终推荐给用户的结果。根据具体需求场景,视频推荐***用户每次刷新都应该是不同的视频推荐结果,用户已经观看或者收藏、点赞等消费过的推荐视频不应该继续推荐给用户,因此每次调用视频推荐服务都需要高效地从推荐视频候选结果中选择与***历史推荐视频及用户历史消费的推荐视频不重复的数据。
Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了五种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上:通过复制、持久化(persistence)和客户端分片(client-side sharding)等特性,用户可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒钟处理上百万次请求的***。
业界目前实现的视频推荐***,都需要解决对推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频进行过滤的问题。目前解决上述问题的常规方案是把所有的***历史推荐视频及用户历史消费的推荐视频保存在一个存储在Redis数据库内的数据集合中,然后逐个判断推荐视频候选结果中的候选推荐视频是否已经存在上述数据集合中,若存在,则不推荐该候选推荐视频。
Redis数据库提供的集合存储结构,是一种不含重复元素的数据结构。Redis数据库中存储***历史推荐视频和用户历史消费的推荐视频两种命名空间,每个命名空间下有每一位用户和其对应的一组视频ID的键值对。也就是说,现有技术中,是存储完整的视频ID到上述数据集合中,随着用户使用视频推荐***的时间增长,该用户调用视频推荐***推荐服务的次数以及播放收藏等消费推荐视频行为的次数也相应增多,而视频ID位数又很长,进而导致上述数据集合所占用Redis数据库的存储空间也会越来越庞大。而Redis数据库的数据结构是基于哈希算法的,也就是说,上述数据集合的存储结构是基于哈希函数的,而哈希函数在数据量很大的情况下会出现哈希冲突,因此,数据集合所占用Redis数据库的存储空间过大时,会导致对推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频进行过滤的准确率低。
另外,推荐视频候选结果中往往有多个候选视频推荐,由于上述数据集合存储在Redis数据库内,而逐个判断推荐视频候选结果中的候选推荐视频是否已经存在上述数据集合中,需要多次调用Redis数据库的操作函数,会导致对推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频进行过滤的效率较低。
因此,本发明提供了一种过滤推荐视频候选结果的方法及装置,以解决现有技术中过滤推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频时的准确率较低及效率较低的问题。下面将通过以下实施例对本发明提供的过滤推荐视频候选结果的方法及装置进行详细说明。
请参阅附图1,图1为本发明实施例提供的一种过滤推荐视频候选结果的方法的流程示意图,该方法包括如下步骤:
步骤S100,接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID。
步骤S110,从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例。
为保证视频推荐***的时间性能,本实施例中使用Redis数据库存储布隆过滤器。
布隆过滤器的核心实现是一个超大的位数组和几个哈希函数。假设位数组的长度为m,哈希函数的个数为k,将m位的位数组每一位都置为0,当有一条数据要写入布隆过滤器时,使用k个不同的哈希函数,对该条数据进行哈希值计算,并确保得到的哈希值位于{1,m}这个区间。则现在k个哈希函数会得到k个哈希值,在位数组中将这些值所对应的位全部置为1,则此时该条数据就已经写入到布隆过滤器中了。当再有数据加入到布隆过滤器中时,如果发现某位已经是1,就跳过。
当要查询布隆过滤器中是否包含某条数据时,同样适用这k个哈希函数进行哈希计算,得到k个哈希值,对这k个哈希值在位数组中查看对应位的值是否为1,如果这k位中存在不为1的值,则证明布隆过滤器中不存在该条数据,如果所得k位的值全为1,则证明该条数据可能包含在布隆过滤器中。
对于判断是否存在某条数据是存在误差的,若布隆过滤器判断存在某条数据则可能存在该数据,如果判断不存在某条数据则一定不存在某条数据,对于这种误差视频推荐***是可以容忍的。
步骤S120,从推荐视频候选结果中确定待过滤视频。
步骤S130,查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则执行步骤S140,如果不包含,则执行步骤S150。
步骤S140,确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例。
步骤S150,确定不推荐所述待过滤视频。
本发明实施例中公开了一种过滤推荐视频候选结果的方法,接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;从推荐视频候选结果中确定待过滤视频;查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。基于上述方法,能够提高过滤推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频时的准确率及效率。
请参阅附图2,图2为本发明实施例提供的又一种过滤推荐视频候选结果的方法的流程示意图,该方法包括如下步骤:
步骤S200,接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID。
步骤S210,从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例。
该步骤具体包括:生成与所述用户ID对应的存储键值;根据所述存储键值从Redis数据库中读取与所述用户ID对应的布隆过滤器序列化字符串;如果读取成功,则根据所述序列化字符串获取字节数组后反序列化得到所述第一布隆过滤器实例和所述第二布隆过滤器实例;如果读取失败,则新建所述第一布隆过滤器实例和所述第二布隆过滤器实例。新建或者反序列化布隆过滤器实例时需要指定所建立布隆过滤器实例的预估容量大小和精确度,这些参数和生成布隆过滤器实例的占用存储空间有关。
步骤S220,从推荐视频候选结果中确定待过滤视频。
步骤S230,查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则执行步骤S240和步骤S250,如果不包含,则执行步骤S260。
步骤S240,确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例。
步骤S250,判断所述第一布隆过滤器实例中包括的***历史推荐视频的数量是否达到第一预设阈值,如果达到,则重置所述第一布隆过滤器实例。
第一预设阈值是基于视频推荐引擎保底数据候选集大小的
步骤S260,确定不推荐所述待过滤视频。
本发明实施例公开的一种过滤推荐视频候选结果的方法,在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,所述方法还包括:判断所述第一布隆过滤器实例中包括的***历史推荐视频的数量是否达到第一预设阈值,如果达到,则重置所述第一布隆过滤器实例,能够进一步避免第一布隆过滤器实例中包括的***历史推荐视频的数量过多导致过滤推荐视频候选结果中的***历史推荐视频的准确率较低的问题。
请参阅附图3,图3为本发明实施例提供的再一种过滤推荐视频候选结果的方法的流程示意图,该方法包括如下步骤:
步骤S300,接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID及用户请求推荐视频的数量。
步骤S310,从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例。
该步骤具体包括:生成与所述用户ID对应的存储键值;根据所述存储键值从Redis数据库中读取与所述用户ID对应的布隆过滤器序列化字符串;如果读取成功,则根据所述序列化字符串获取字节数组后反序列化得到所述第一布隆过滤器实例和所述第二布隆过滤器实例;如果读取失败,则新建所述第一布隆过滤器实例和所述第二布隆过滤器实例。
步骤S320,从推荐视频候选结果中确定待过滤视频。
步骤S330,查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则执行步骤S340至步骤S370,如果不包含,则执行步骤S380。
步骤S340,确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例。
步骤S350,判断向所述用户推荐视频的数量是否大于所述用户请求推荐视频的数量,如果不大于,则返回执行从推荐视频候选结果中确定待过滤视频的步骤并顺序执行,直至从推荐视频候选结果中确定待过滤视频的次数达到第二预设阈值为止,生成最终的视频推荐结果发送给所述用户;如果大于,则直接生成最终的视频推荐结果发送给所述用户。
步骤S360,监测所述用户对所述最终的视频推荐结果中的推荐视频的消费事件。
步骤S370,当监测到所述用户对所述最终的视频推荐结果中的任一推荐视频的消费事件时,将该推荐视频添加至所述第二布隆过滤器实例。
用户消费视频事件会被使用该视频推荐***的视频客户端收集并发送到kafka中,视频推荐***收集这些消费事件并解析,根据所得的用户ID从Redis数据库中读取相应用户的第二布隆过滤器实例的序列化字符串,同上,若成功读取第二布隆过滤器实例的序列化字符串则从该字符串反序列化出第二布隆过滤器实例,若不存在第二布隆过滤器实例的序列化字符串则新建第二布隆过滤器实例。然后将该消费事件中包含的用户消费的视频ID添加到第二布隆过滤器实例中,然后序列化该第二布隆过滤器实例为序列化字符串存储到Redis数据库的对应位置。
步骤S380,确定不推荐所述待过滤视频。
本实施例公开的过滤推荐视频候选结果的方法,在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,所述方法还包括:判断向所述用户推荐视频的数量是否大于所述用户请求推荐视频的数量,如果不大于,则返回执行从推荐视频候选结果中确定待过滤视频的步骤并顺序执行,直至从推荐视频候选结果中确定待过滤视频的次数达到第二预设阈值为止,生成最终的视频推荐结果发送给所述用户;如果大于,则直接生成最终的视频推荐结果发送给所述用户。在生成最终的视频推荐结果发送给所述用户之后,所述方法还包括:监测所述用户对所述最终的视频推荐结果中的推荐视频的消费事件;当监测到所述用户对所述最终的视频推荐结果中的任一推荐视频的消费事件时,将该推荐视频添加至所述第二布隆过滤器实例。能够进一步提高过滤推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频时的准确率及效率。
请参阅附图4,图4为本发明实施例提供的一种过滤推荐视频候选结果的装置的结构示意图,该装置包括:
接收模块100,用于接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;
布隆过滤器实例确定模块110,用于从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;
待过滤视频确定模块120,用于从推荐视频候选结果中确定待过滤视频;
处理模块130,用于查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。
可选的,所述处理模块130还用于:
在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,判断所述第一布隆过滤器实例中包括的***历史推荐视频的数量是否达到第一预设阈值,如果达到,则重置所述第一布隆过滤器实例。
可选的,所述处理模块130还用于:
视频推荐服务调用请求包括用户请求推荐视频的数量,则在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,判断向所述用户推荐视频的数量是否大于所述用户请求推荐视频的数量,如果不大于,则返回执行从推荐视频候选结果中确定待过滤视频的步骤并顺序执行,直至从推荐视频候选结果中确定待过滤视频的次数达到第二预设阈值为止,生成最终的视频推荐结果发送给所述用户;如果大于,则直接生成最终的视频推荐结果发送给所述用户。
可选的,所述处理模块130还用于:
在生成最终的视频推荐结果发送给所述用户之后,监测所述用户对所述最终的视频推荐结果中的推荐视频的消费事件;当监测到所述用户对所述最终的视频推荐结果中的任一推荐视频的消费事件时,将该推荐视频添加至所述第二布隆过滤器实例。
可选的,所述布隆过滤器实例确定模块110,具体用于:
生成与所述用户ID对应的存储键值;
根据所述存储键值从Redis数据库中读取与所述用户ID对应的布隆过滤器序列化字符串;
如果读取成功,则根据所述序列化字符串获取字节数组后反序列化得到所述第一布隆过滤器实例和所述第二布隆过滤器实例;
如果读取失败,则新建所述第一布隆过滤器实例和所述第二布隆过滤器实例。
需要说明的是,上述各个模块的具体功能实现已在方法实施例中详细说明,本实施例不再赘述。
综上所述:
本发明实施例中公开了一种过滤推荐视频候选结果的方法及装置,接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;从推荐视频候选结果中确定待过滤视频;查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。基于上述方法及装置,能够提高过滤推荐视频候选结果中的***历史推荐视频及用户历史消费的推荐视频时的准确率及效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种过滤推荐视频候选结果的方法,其特征在于,包括:
接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;
从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;
从推荐视频候选结果中确定待过滤视频;
查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。
2.根据权利要求1所述的方法,其特征在于,在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,所述方法还包括:
判断所述第一布隆过滤器实例中包括的***历史推荐视频的数量是否达到第一预设阈值,如果达到,则重置所述第一布隆过滤器实例。
3.根据权利要求1所述的方法,其特征在于,所述视频推荐服务调用请求包括用户请求推荐视频的数量,则在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,所述方法还包括:
判断向所述用户推荐视频的数量是否大于所述用户请求推荐视频的数量,如果不大于,则返回执行从推荐视频候选结果中确定待过滤视频的步骤并顺序执行,直至从推荐视频候选结果中确定待过滤视频的次数达到第二预设阈值为止,生成最终的视频推荐结果发送给所述用户;如果大于,则直接生成最终的视频推荐结果发送给所述用户。
4.根据权利要求3所述的方法,其特征在于,在生成最终的视频推荐结果发送给所述用户之后,所述方法还包括:
监测所述用户对所述最终的视频推荐结果中的推荐视频的消费事件;
当监测到所述用户对所述最终的视频推荐结果中的任一推荐视频的消费事件时,将该推荐视频添加至所述第二布隆过滤器实例。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例,包括:
生成与所述用户ID对应的存储键值;
根据所述存储键值从Redis数据库中读取与所述用户ID对应的布隆过滤器序列化字符串;
如果读取成功,则根据所述序列化字符串获取字节数组后反序列化得到所述第一布隆过滤器实例和所述第二布隆过滤器实例;
如果读取失败,则新建所述第一布隆过滤器实例和所述第二布隆过滤器实例。
6.一种过滤推荐视频候选结果的装置,其特征在于,包括:
接收模块,用于接收用户发送的视频推荐服务调用请求,所述视频推荐服务调用请求包括用户标识ID;
布隆过滤器实例确定模块,用于从Redis数据库中确定与所述用户ID相对应的包含有***历史推荐视频的第一布隆过滤器实例和包含有用户历史消费的推荐视频的第二布隆过滤器实例;
待过滤视频确定模块,用于从推荐视频候选结果中确定待过滤视频;
处理模块,用于查询所述第一布隆过滤器实例以及所述第二布隆过滤器实例中是否包含所述待过滤视频,如果包含,则确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例,如果不包含,则确定不推荐所述待过滤视频。
7.根据权利要求6所述的装置,其特征在于,所述处理模块还用于:
在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,判断所述第一布隆过滤器实例中包括的***历史推荐视频的数量是否达到第一预设阈值,如果达到,则重置所述第一布隆过滤器实例。
8.根据权利要求6所述的装置,其特征在于,所述处理模块还用于:
视频推荐服务调用请求包括用户请求推荐视频的数量,则在所述确定所述待过滤视频为待推荐视频,并将所述待过滤视频添加至所述第一布隆过滤器实例之后,判断向所述用户推荐视频的数量是否大于所述用户请求推荐视频的数量,如果不大于,则返回执行从推荐视频候选结果中确定待过滤视频的步骤并顺序执行,直至从推荐视频候选结果中确定待过滤视频的次数达到第二预设阈值为止,生成最终的视频推荐结果发送给所述用户;如果大于,则直接生成最终的视频推荐结果发送给所述用户。
9.根据权利要求8所述的装置,其特征在于,所述处理模块还用于:
在生成最终的视频推荐结果发送给所述用户之后,监测所述用户对所述最终的视频推荐结果中的推荐视频的消费事件;当监测到所述用户对所述最终的视频推荐结果中的任一推荐视频的消费事件时,将该推荐视频添加至所述第二布隆过滤器实例。
10.根据权利要求6至9中任意一项所述的装置,其特征在于,所述布隆过滤器实例确定模块,具体用于:
生成与所述用户ID对应的存储键值;
根据所述存储键值从Redis数据库中读取与所述用户ID对应的布隆过滤器序列化字符串;
如果读取成功,则根据所述序列化字符串获取字节数组后反序列化得到所述第一布隆过滤器实例和所述第二布隆过滤器实例;
如果读取失败,则新建所述第一布隆过滤器实例和所述第二布隆过滤器实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711486750.4A CN108133031B (zh) | 2017-12-29 | 2017-12-29 | 一种过滤推荐视频候选结果的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711486750.4A CN108133031B (zh) | 2017-12-29 | 2017-12-29 | 一种过滤推荐视频候选结果的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108133031A true CN108133031A (zh) | 2018-06-08 |
CN108133031B CN108133031B (zh) | 2021-01-29 |
Family
ID=62394162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711486750.4A Active CN108133031B (zh) | 2017-12-29 | 2017-12-29 | 一种过滤推荐视频候选结果的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108133031B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209874A (zh) * | 2019-04-24 | 2019-09-06 | 北京奇艺世纪科技有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN110784729A (zh) * | 2019-10-25 | 2020-02-11 | 广州华多网络科技有限公司 | 直播间入场流水数据处理方法、装置、设备及存储介质 |
CN110781386A (zh) * | 2019-10-10 | 2020-02-11 | 支付宝(杭州)信息技术有限公司 | 信息推荐、布隆过滤器的创建方法及装置 |
CN111159436A (zh) * | 2018-11-07 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 一种推荐多媒体内容的方法、装置及计算设备 |
CN111698126A (zh) * | 2020-04-28 | 2020-09-22 | 武汉旷视金智科技有限公司 | 信息监控方法、***及计算机可读存储介质 |
CN111711860A (zh) * | 2020-05-14 | 2020-09-25 | 北京奇艺世纪科技有限公司 | 一种视频推荐滤重方法、装置、服务器及存储介质 |
CN111857850A (zh) * | 2020-07-21 | 2020-10-30 | 掌阅科技股份有限公司 | 过滤器的初始化方法、电子设备及存储介质 |
CN112347355A (zh) * | 2020-11-11 | 2021-02-09 | 广州酷狗计算机科技有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN112528125A (zh) * | 2020-12-23 | 2021-03-19 | 北京明略软件***有限公司 | 避免内容重复推荐的方法、装置、电子设备及存储介质 |
CN112818019A (zh) * | 2021-01-29 | 2021-05-18 | 北京思特奇信息技术股份有限公司 | 一种应用于Redis客户端的查询请求过滤方法及Redis客户端 |
CN113536034A (zh) * | 2021-09-17 | 2021-10-22 | 飞狐信息技术(天津)有限公司 | 一种基于布隆过滤器的数据写入方法和数据读取方法 |
CN114173176A (zh) * | 2021-11-17 | 2022-03-11 | 聚好看科技股份有限公司 | 一种服务器、显示设备及媒资过滤方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192461A (ja) * | 2002-12-12 | 2004-07-08 | Sony Corp | 情報処理装置および情報処理方法、情報処理システム、記録媒体、並びにプログラム |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105740266A (zh) * | 2014-12-10 | 2016-07-06 | 国际商业机器公司 | 用于数据去重的方法和设备 |
CN106294462A (zh) * | 2015-06-01 | 2017-01-04 | Tcl集团股份有限公司 | 一种获取推荐视频的方法和*** |
CN106326431A (zh) * | 2016-08-25 | 2017-01-11 | 乐视控股(北京)有限公司 | 一种信息推荐方法和装置 |
CN106445944A (zh) * | 2015-08-06 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据查询请求的处理方法、装置及电子设备 |
CN107038213A (zh) * | 2017-02-28 | 2017-08-11 | 华为技术有限公司 | 一种视频推荐的方法及装置 |
CN107454442A (zh) * | 2017-09-07 | 2017-12-08 | 广州优视网络科技有限公司 | 一种推荐视频的方法和装置 |
CN107645667A (zh) * | 2017-09-21 | 2018-01-30 | 广州华多网络科技有限公司 | 视频推荐方法、***及服务器设备 |
-
2017
- 2017-12-29 CN CN201711486750.4A patent/CN108133031B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192461A (ja) * | 2002-12-12 | 2004-07-08 | Sony Corp | 情報処理装置および情報処理方法、情報処理システム、記録媒体、並びにプログラム |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105740266A (zh) * | 2014-12-10 | 2016-07-06 | 国际商业机器公司 | 用于数据去重的方法和设备 |
CN106294462A (zh) * | 2015-06-01 | 2017-01-04 | Tcl集团股份有限公司 | 一种获取推荐视频的方法和*** |
CN106445944A (zh) * | 2015-08-06 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据查询请求的处理方法、装置及电子设备 |
CN106326431A (zh) * | 2016-08-25 | 2017-01-11 | 乐视控股(北京)有限公司 | 一种信息推荐方法和装置 |
CN107038213A (zh) * | 2017-02-28 | 2017-08-11 | 华为技术有限公司 | 一种视频推荐的方法及装置 |
CN107454442A (zh) * | 2017-09-07 | 2017-12-08 | 广州优视网络科技有限公司 | 一种推荐视频的方法和装置 |
CN107645667A (zh) * | 2017-09-21 | 2018-01-30 | 广州华多网络科技有限公司 | 视频推荐方法、***及服务器设备 |
Non-Patent Citations (2)
Title |
---|
GUANLIN LU 等: "BloomStore: Bloom-Filter based Memory-efficient Key-Value Store for Indexing of Data Deduplication", 《2012 IEEE 28TH SYMPOSIUM ON MASS STORAGE SYSTEMS》 * |
黄涛: "布隆过滤器在网页去重中的研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159436A (zh) * | 2018-11-07 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 一种推荐多媒体内容的方法、装置及计算设备 |
CN111159436B (zh) * | 2018-11-07 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 一种推荐多媒体内容的方法、装置及计算设备 |
CN110209874A (zh) * | 2019-04-24 | 2019-09-06 | 北京奇艺世纪科技有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN110781386A (zh) * | 2019-10-10 | 2020-02-11 | 支付宝(杭州)信息技术有限公司 | 信息推荐、布隆过滤器的创建方法及装置 |
CN110784729A (zh) * | 2019-10-25 | 2020-02-11 | 广州华多网络科技有限公司 | 直播间入场流水数据处理方法、装置、设备及存储介质 |
CN111698126B (zh) * | 2020-04-28 | 2021-10-01 | 武汉旷视金智科技有限公司 | 信息监控方法、***及计算机可读存储介质 |
CN111698126A (zh) * | 2020-04-28 | 2020-09-22 | 武汉旷视金智科技有限公司 | 信息监控方法、***及计算机可读存储介质 |
CN111711860A (zh) * | 2020-05-14 | 2020-09-25 | 北京奇艺世纪科技有限公司 | 一种视频推荐滤重方法、装置、服务器及存储介质 |
CN111857850A (zh) * | 2020-07-21 | 2020-10-30 | 掌阅科技股份有限公司 | 过滤器的初始化方法、电子设备及存储介质 |
CN112347355A (zh) * | 2020-11-11 | 2021-02-09 | 广州酷狗计算机科技有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN112528125A (zh) * | 2020-12-23 | 2021-03-19 | 北京明略软件***有限公司 | 避免内容重复推荐的方法、装置、电子设备及存储介质 |
CN112818019A (zh) * | 2021-01-29 | 2021-05-18 | 北京思特奇信息技术股份有限公司 | 一种应用于Redis客户端的查询请求过滤方法及Redis客户端 |
CN112818019B (zh) * | 2021-01-29 | 2024-02-02 | 北京思特奇信息技术股份有限公司 | 一种应用于Redis客户端的查询请求过滤方法及Redis客户端 |
CN113536034A (zh) * | 2021-09-17 | 2021-10-22 | 飞狐信息技术(天津)有限公司 | 一种基于布隆过滤器的数据写入方法和数据读取方法 |
CN114173176A (zh) * | 2021-11-17 | 2022-03-11 | 聚好看科技股份有限公司 | 一种服务器、显示设备及媒资过滤方法 |
CN114173176B (zh) * | 2021-11-17 | 2023-07-14 | 聚好看科技股份有限公司 | 一种服务器、显示设备及媒资过滤方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108133031B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108133031A (zh) | 一种过滤推荐视频候选结果的方法及装置 | |
US7801932B2 (en) | Undo hints to speed up segment extension and tuning of undo retention | |
EP3138241A2 (en) | Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof | |
US9235814B2 (en) | Machine learning memory management and distributed rule evaluation | |
CN109144862A (zh) | 测试数据的统计方法、装置、计算机设备及存储介质 | |
CN106933927B (zh) | 数据表的连接方法和装置 | |
CN115408149A (zh) | 一种时序存储引擎内存设计及分配方法及装置 | |
CN107515807B (zh) | 一种存储监控数据的方法及装置 | |
CN107728933A (zh) | 频繁访问的数据块在存储层级之间的移动 | |
CN110381136A (zh) | 一种数据读取方法、终端、服务器及存储介质 | |
CN108920326A (zh) | 确定***耗时异常的方法、装置及电子设备 | |
CN108664322A (zh) | 数据处理方法及*** | |
CN110333984B (zh) | 接口异常检测方法、装置、服务器及*** | |
US20160055211A1 (en) | Apparatus and method for memory storage and analytic execution of time series data | |
CN110427557A (zh) | 主播推荐方法、装置、电子设备及计算机可读存储介质 | |
CN110019870B (zh) | 基于内存图像集群的图像检索方法及*** | |
US9787787B2 (en) | Method and system for processing measurement data for website statistics | |
CN110795744B (zh) | 一种异常信息的定位方法、***、电子设备及存储介质 | |
CN114327942A (zh) | 一种共享内存管理方法和缓存服务组件 | |
CN109271278A (zh) | 一种确定磁盘快照数据切片的引用次数的方法和装置 | |
CN110414813B (zh) | 指标曲线的构建方法、装置及设备 | |
CN111625502A (zh) | 数据读取方法及装置、存储介质、电子装置 | |
CN110109622A (zh) | 一种基于中间件的数据处理方法和相关装置 | |
CN110750217A (zh) | 一种信息管理方法及相关装置 | |
CN109284408A (zh) | 图床数据库***、图床数据库运行方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |