CN108763458B - 内容特征查询方法、装置、计算机设备及存储介质 - Google Patents
内容特征查询方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN108763458B CN108763458B CN201810522924.6A CN201810522924A CN108763458B CN 108763458 B CN108763458 B CN 108763458B CN 201810522924 A CN201810522924 A CN 201810522924A CN 108763458 B CN108763458 B CN 108763458B
- Authority
- CN
- China
- Prior art keywords
- content
- feature
- query
- characteristic
- identifier
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种内容特征查询方法、装置、计算机设备及存储介质,该方法包括:获取针对目标内容的内容特征查询请求;确定发起所述内容特征查询请求的推荐系统逻辑层;获取与所述推荐系统逻辑层对应的内容特征类别;确定与所述内容特征类别相应的用于本地持久化存储的特征共享内存;从确定的特征共享内存中,查询所述目标内容的内容特征。本申请的方案提高了内容特征的查询效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种内容特征查询方法、装置、计算机设备及存储介质。
背景技术
随着科学技术的飞速发展,互联网技术对人们的生活和工作起着越来越重要的作用。在工作和生活中有很多场景都要使用互联网来查询数据。比如,想要对内容进行处理时(比如,想要推荐内容时),就需要通过互联网技术查询该内容的特征。
传统方法中,内容的特征存储于数据库,因此需要从数据库中查询内容的特征。然而,在实际情况下往往需要查询的数据量会比较大,因此,传统方法从数据库中查询内容的特征,存在查询效率比较低的问题。
发明内容
基于此,有必要针对传统方法从数据库中查询推荐内容的特征,存在查询效率比较低的问题,提供一种内容特征查询方法、装置、计算机设备及存储介质。
一种内容特征查询方法,所述方法包括:
获取针对目标内容的内容特征查询请求;
确定发起所述内容特征查询请求的推荐系统逻辑层;
获取与所述推荐系统逻辑层对应的内容特征类别;
确定与所述内容特征类别相应的用于本地持久化存储的特征共享内存;
从确定的特征共享内存中,查询所述目标内容的内容特征。
一种内容特征查询装置,所述装置包括:
获取模块,用于获取针对目标内容的内容特征查询请求;
逻辑层确定模块,用于确定发起所述内容特征查询请求的推荐系统逻辑层;
所述获取模块还用于获取与所述推荐系统逻辑层对应的内容特征类别;
内存确定模块,用于确定与所述内容特征类别相应的用于本地持久化存储的特征共享内存;
特征查询模块,用于从确定的特征共享内存中,查询所述目标内容的内容特征。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取针对目标内容的内容特征查询请求;
确定发起所述内容特征查询请求的推荐系统逻辑层;
获取与所述推荐系统逻辑层对应的内容特征类别;
确定与所述内容特征类别相应的用于本地持久化存储的特征共享内存;
从确定的特征共享内存中,查询所述目标内容的内容特征。
一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如下步骤:
获取针对目标内容的内容特征查询请求;
确定发起所述内容特征查询请求的推荐系统逻辑层;
获取与所述推荐系统逻辑层对应的内容特征类别;
确定与所述内容特征类别相应的用于本地持久化存储的特征共享内存;
从确定的特征共享内存中,查询所述目标内容的内容特征。
上述内容特征查询方法、装置、计算机设备及存储介质,按照不同的内容特征类别提供相应的用于本地持久化存储的特征共享内存,根据发起内容特征查询请求的推荐系统逻辑层所对应的内容特征类别,确定相应的特征共享内存,从所确定的特征共享内存中,查询目标内容的内容特征。用于本地持久化存储的特征共享内存中所存储的内容特征在重启时并不会丢失,能够将内容特征在本地持久性的缓存,从本地的特征共享内存持久性缓存的内容特征中查询目标内容的内容特征,相较于从数据库中查询内容特征而言,提高了查询效率。
附图说明
图1为一个实施例中内容特征查询方法的应用场景图;
图2为一个实施例中内容特征查询方法的流程示意图;
图3为一个实施例中推荐系统逻辑层与内容特征类别之间的查询关系示意图;
图4为一个实施例中内容特征查询的原理示意图;
图5为一个实施例中缓存查询方式的示意图;
图6为一个实施例中获取全量缓存区的全量内容特征的示意图;
图7为一个实施例中内容特征查询装置的框图;
图8为另一个实施例中内容特征查询装置的框图;
图9为又一个实施例中内容特征查询装置的框图;
图10为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中内容特征查询方法的应用场景图。参照图1,该应用场景中包括通过网络连接的服务器110和终端120。服务器110可以用独立的服务器或者是多个物理服务器组成的服务器集群来实现。终端120可以是智能电视机、台式计算机或移动终端,移动终端可以包括手机、平板电脑、笔记本电脑、个人数字助理和穿戴式设备等中的至少一种
在一个实施例中,服务器110中可以运行用于进行内容推荐的推荐系统。可以理解,推荐系统在想要推荐内容时,需要查询内容的特征,根据查询的内容特征来确定到底向终端120推荐哪些内容以及如何推荐这些内容。其中,推荐系统中不同的逻辑层(即推荐系统逻辑层)所想要推荐的内容不同以及想要查询的内容特征类别也有差异。
服务器110所运行的推荐系统中的推荐系统逻辑层在想要查询目标内容的内容特征时,可以调用服务器110中的内容特征查询接口,发起针对目标内容的内容特征查询请求,服务器110可以确定发起内容特征查询请求的推荐系统逻辑层,然后获取与该确定的推荐系统逻辑层对应的内容特征类别。可以理解,与推荐系统逻辑层对应的内容特征类别,即为该推荐系统逻辑层所想要查询的内容特征类别。服务器110中设置了与内容特征类别相应的特征共享内存,该特征共享内存用于将内容特征在服务器110的本地进行持久化存储。服务器110可以确定与推荐系统逻辑层所想要查询的内容特征类别相应的特征共享内存,然后从特征共享内存中,查询目标内容的内容特征。
需要说明的是,这里并不限定所查询的目标内容的内容特征是用于进行内容推荐,这里列举在进行内容推荐时查询目标内容的内容特征,仅是为了提供一个具体的使用情景便于大家理解。因此,推荐系统逻辑层可以在其他情况下发起针对目标内容的内容特征查询请求,查询的目标内容的内容特征可以用于任何其他的处理中。比如,可以直接将查询的目标内容的内容特征输出至终端120进行展示,或者,将查询的目标内容的内容特征作为其他处理中所使用到的中间数据。
图2为一个实施例中内容特征查询方法的流程示意图。本实施例主要以该内容特征查询方法应用于计算机设备中进行举例说明,该计算机设备可以为图1中的服务器110。参照图2,该方法具体包括如下步骤:
S202,获取针对目标内容的内容特征查询请求。
其中,目标内容,是需要查询内容特征的内容。比如,需要查询内容A的内容特征,那么,内容A就属于目标内容。内容特征,就是内容的特征,用于体现内容的特性。内容特征查询请求,是用于查询目标内容的内容特征的请求。
可以理解,内容特征查询请求是由推荐系统逻辑层针对目标内容发起的。推荐系统逻辑层,是推荐系统中参与推荐处理的逻辑层。逻辑层处于数据访问层与表示层中间,起到数据交换中承上启下的作用。
在一个实施例中,推荐系统逻辑层包括索引层、召回层、粗排层、精排层和日志层等中的至少一种。
其中,索引层,是用于提供索引指针实现对内容的索引查询。召回层,用于根据各种召回策略和算法生成推荐的候选集。粗排层,用于通过相对简单的排序规则从产生推荐的候选集中筛选出一部分内容作为新的候选集。精排层,用于通过多种多维度的排序规则从候选集中筛选出一部分内容作为新的候选集。日志层,用于查询日志数据。
可以理解,粗排层和精排层的排序处理可以不限定于先后顺序,可以对内容先粗排再精排,也可以对内容先精排再粗排。
在一个实施例中,内容可以为文本内容。可以理解,内容还可以为其他格式的内容。比如,可以为视频、音频、图片等格式的内容。
S204,确定发起内容特征查询请求的推荐系统逻辑层。
具体地,计算机设备中的推荐系统逻辑层可以调用内容特征获取接口,发起内容特征查询请求,以请求从数据访问层中查询目标内容的内容特征。其中,内容特征获取接口,是用于获取内容特征的接口。计算机设备可以通过检测内容特征获取接口的接口调用方,确定发起内容特征查询请求的推荐系统逻辑层。所检测到的接口调用方即为发起内容特征查询请求的推荐系统逻辑层。
S206,获取与推荐系统逻辑层对应的内容特征类别。
其中,内容特征类别,是对内容特征进行分类的类别。
在一个实施例中,内容特征类别包括静态特征、动态特征、组合特征和上下文特征等类别中的至少一种。
静态特征,是由内容自身决定的,在内容产生后就不会再发生变化的特征。在一个实施例中,静态特征包括标题长度、内容长度、主题和标签词等中的至少一种。
动态特征,是随着内容的受关注度的变化而动态变化的特征。在一个实施例中,动态特征包括曝光度、点击数、点赞数、评论数和分享数等中的至少一种。
组合特征,是由阅读用户的特征和内容特征组合得到的特征。在一个实施例中,组合特征包括用户性别-年龄-文章组合展现比,以及用户兴趣-命中文章主题组合展现比。其中,展现比是内容的点击次数与曝光次数的比值。
上下文特征,是用于表征当前内容与相邻的多篇内容之间的关系的特征。可以理解,当前内容与相邻的多篇内容之间的关系就相当于上下文关系。
在一个实施例中,上下文特征包括内容中用户的兴趣点在用户临近阅读的多篇内容中出现的比例。用户的兴趣点是用户对内容中感兴趣的点。用户的兴趣点包括内容的主题和摘要等。比如,用户最近阅读了20篇文章,用户的兴趣点为文章的主题,那么文章A的主题在这20篇文章的主题中出现的比例,就可以称为该文章A的一种上下文特征。
可以理解,不同的推荐系统逻辑层所需要查询的内容特征类别有差异。比如,索引层可以只查询静态特征和动态特征,而召回层需要查询静态特征、动态特征和组合特征。一个推荐系统逻辑层可以对应一个或多个内容特征类别。
在一个实施例中,计算机设备中预先为每个推荐系统逻辑层配置了对应的内容特征类别,计算机设备可以获取为所确定出的推荐系统逻辑层配置的相应内容特征类别。
图3为一个实施例中推荐系统逻辑层与内容特征类别之间的查询关系示意图。参照图3,粗排层、精排层以及日志层所要查找的内容特征类别相同,而索引层和召回层所要查找的内容特征类别就与粗排层、精排层以及日志层这三个层所要查找的内容特征类别不同。
在一个实施例中,计算机设备还可以检测推荐系统逻辑层当前要查询的内容总数量,当内容总数量超过预设阈值时,就可以从为该推荐系统逻辑层配置的内容特征类别中再挑选出部分内容特征类别,以降低数据处理量。
可以理解,计算机设备可以按照内容特征类别对推荐系统逻辑层的数据处理影响性由大到小的顺序,从为该推荐系统逻辑层配置的各内容特征类别中挑选出预设数量的内容特征类别。计算机设备也可以从为该推荐系统逻辑层配置的各内容特征类别中,随机挑选出预设数量的内容特征类别。
在另一个实施例中,计算机设备还可以对推荐系统逻辑层所针对的目标内容进行分析,确定目标内容所具有的内容特征类别,作为与推荐系统逻辑层对应的内容特征类别。可以理解,可能并不是所有的目标内容都具有符合所有内容特征类别的内容特征。比如,所有的内容特征类别可能包括5类,而有的内容有可能只会有4类内容特征,那么,推荐系统逻辑层所对应的内容特征类别就只有4类。
S208,确定与内容特征类别相应的用于本地持久化存储的特征共享内存。
其中,特征共享内存,是用于将内容特征在本地持久化存储的共享内存。本地持久化存储,是指特征共享内存中存储的内容特征在服务程序重启后,仍然存在于本地,而不会丢失。可以理解,存储在普通内存中的数据在服务程序重新启动后,就会丢失,而存储在共享内存中的数据在服务程序重新启动后,依然存在于本地并不会丢失,即实现了本地持久化存储。
需要说明的是,特征共享内存中可以存储除内容特征以外的与内容特征相关的其他数据,比如内容标识等数据。
在一个实施例中,共享内存(shared memory)可以由系统内核提供。需要说明的是,特征共享内存还可以实现进程间共享通信,即多个进程可以直接共享访问这同一块内存区域。但是本申请方案使用的是特征共享内存能够在本地持久化存储数据的特性。
在其他实施例中,特征共享内存可以不限定于由系统内核来提供,也可以用其他方式实现在本地持久化存储内容特征的特征共享内存,只要能够实现用于本地持久化存储内容特征的特征共享内存即可。
具体地,计算机设备中预先针对各内容特征类别分配了相应的特征共享内存,计算机设备可以查找与推荐系统逻辑层所对应的内容特征类别相应的特征共享内存。其中,一个内容特征类别对应一个特征共享内存。
在一个实施例中,内容特征类别与特征共享内存一一对应。在其他实施例中,也可以是一个特征共享内存多个内容特征类别,比如,内容特征类别A和B对应同一个特征共享内存1,内容特征类别C对应特征共享内存2。
S210,从确定的特征共享内存中,查询目标内容的内容特征。
具体地,特征共享内存中存储了内容标识和内容特征之间的对应关系,计算机设备可以从内容特征查询请求中提取目标内容的内容标识,根据特征共享内存中存储的该对应关系,查找与提取的内容标识相应的内容特征。可以理解,查找到的内容特征即为目标内容的内容特征。
在一个实施例中,特征共享内存中是将内容标识和内容特征以键值对的形式进行对应存储。其中,键值对是以内容标识作为键(即Key),以内容特征作为值(即value)构成。计算机设备可以将从内容特征查询请求中提取的目标内容的内容标识作为键,从确定的特征共享内存所存储的键值对中,查找与该内容标识相应的值,查找到的值即为目标内容的内容特征。
上述内容特征查询方法,按照不同的内容特征类别提供相应的用于本地持久化存储的特征共享内存,根据发起内容特征查询请求的推荐系统逻辑层所对应的内容特征类别,确定相应的特征共享内存,从所确定的特征共享内存中,查询目标内容的内容特征。用于本地持久化存储的特征共享内存中所存储的内容特征在重启时并不会丢失,能够将内容特征在本地持久性的缓存,从本地的特征共享内存持久性缓存的内容特征中查询目标内容的内容特征,相较于从数据库中查询内容特征而言,提高了查询效率。
在一个实施例中,该方法还包括:当查询失败时,将内容特征查询请求中的内容标识添加至队列;按照队列,拉取与队列中的内容标识对应的内容特征;将获取的内容特征写入与内容特征所属的内容特征类别对应的特征共享内存中。
可以理解,特征共享内存用于将内容特征在本地进行持久化存储。
具体地,内容特征查询请求中包括目标内容的内容标识。当查询失败时,计算机设备可以将内容特征查询请求中的内容标识添加至队列,按照该队列中内容标识的先后顺序,从特征缓存服务器中拉取与队列中的内容标识对应的内容特征。计算机设备可以将获取的内容特征写入与内容特征所属的内容特征类别对应的特征共享内存中。在其他实施例中,计算机设备也可以按照该队列中内容标识的先后顺序,从数据库中拉取与队列中的内容标识对应的内容特征。
可以理解,计算机设备可以将内容标识添加至一个或多个队列中。
需要说明的是,特征缓存服务器,是用于将内容特征进行缓存的服务器。特征缓存服务器中是以键值对(key-Value)的方式存储内容标识和内容特征的,其中,内容标识为键,内容特征为值。可以理解,本申请实施例中所述的数据库为硬盘数据库。特征缓存服务器与硬盘数据库不同,特征缓存服务器是将数据缓存在内存中,而硬盘数据库是将数据存储在硬盘中。可见,特征缓存服务器的数据读取速度比硬盘数据库要快。在一个实施中,特征缓存服务器可以是Redis服务器。Redis是一个开源的内存中的键值对(key-Value)存储系统。
在一个实施例中,当未查询到与内容特征查询请求中的内容标识相应的内容特征时,或当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则判定查询失败。
可以理解,未查询到内容标识相应的内容特征,则表明特征共享内存中不存在目标内容的内容特征,因此查询失败。内容标识相应的内容特征处于过期状态,则表明特征共享内存中存在目标内容的内容特征,但是该内容特征为过期无效的数据,因此也相当于查询失败。
在一个实施例中,在将内容特征存储至特征共享内存时,计算机设备对内容特征进行计时,当计时达到预设时间阈值时,则该内容特征处于过期状态。具体地,计算机设备可以对每个内容特征分别进行计时,计算机设备也可以对存储时间接近的一批内容特征进行统一计时。比如,在短时间内存储了500条内容特征,那么就可以统一对这500条内容特征进行计时,当计时达到阈值时,则这500条内容特征皆处于过期状态。
在一个实施例中,当查询失败时,将内容特征查询请求中的内容标识添加至队列包括:当未查询到与内容特征查询请求中的内容标识相应的内容特征时,则将该内容标识添加至新值队列;当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则将该内容标识添加至刷新队列。按照队列,拉取与队列中的内容标识对应的内容特征包括:并行从新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。
其中,新值队列,是包括特征共享内存中没有相应内容特征的内容标识的队列。即新值队列中包括的内容标识,是特征共享内存中没有相应内容特征的内容标识。可以理解,由于特征共享内存中是以内容标识为键、且以内容特征为值的键值对进行存储,所以,新值队列中的内容标识即用于获取特征共享内存中所没有的新值(即新的内容特征)。
刷新队列,是包括在特征共享内存中的相应内容特征处于过期状态的内容标识的队列。即刷新队列中包括的内容标识,是特征共享内存中处于过期状态的内容特征的内容标识。可以理解,刷新队列中的内容标识,用于刷新共享内存中相应过期的内容特征。
计算机设备可以在未查询到与内容特征查询请求中的内容标识相应的内容特征时,将该内容标识添加至新值队列,当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则将该内容标识添加至刷新队列。计算机设备可以并行从新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。在一个实施例中,计算机设备可以从特征缓存服务器中查找与获取的内容标识对应的内容特征。
可以理解,并行,是指对新值队列和刷新队列的处理是并行、独立的,相互间不进行影响。比如,在从新值队列获取内容标识进行内容特征查找的同时,也可以从刷新队列中获取内容标识进行内容特征查找,相互之间不进行影响。从而提高内容特征获取效率。在一个实施例中,计算机设备可以使用多线程来对每个队列(新值队列或刷新队列)进行处理,进一步提高内容特征获取效率。
在一个实施例中,计算机设备还可以通过定时处理线程来定时地并行从所述新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。即通过定时处理线程定时地对刷新队列和新值队列进行并行处理。
在一个实施例中,计算机设备还可以在刷新队列和新值队列中的内容标识数量达到预设数量阈值时,触发执行并行从所述新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征的步骤。
在一个实施例中,计算机设备可以对新值队列和刷新队列进行队列拆分,拆分为多个队列,然后并行地从拆分后的多个队列中获取内容标识,并查找与获取的内容标识对应的内容特征。即对拆分后的多个队列进行并行处理,以并行地获取内容特征,进一步地提高内容特征获取效率。
图4为一个实施例中内容特征查询的原理示意图。参照图4,推荐系统逻辑层调用内容特征获取接口,从特征共享内存中查询内容特征,若缓存过期,则添加内容标识至刷新队列,若不存在缓存,则添加内容标识至新值队列。通过定时处理线程定时地对新值队列和刷新队列进行并行处理,并采用多线程对每个队列进行处理,以获取队列中的内容标识,并从特征缓存服务器中获取内容标识对应的内容特征,将获取的内容特征写入特征共享内存中。
上述实施例中,当查询失败时,将内容特征查询请求中的内容标识添加至队列;按照队列,拉取与队列中的内容标识对应的内容特征;将获取的内容特征写入与内容特征所属的内容特征类别对应的特征共享内存中。能够自动更新特征共享内存中的内容特征,提高了查询命中率。
在一个实施例中,特征共享内存为用于本地持久化存储内容特征的特征共享内存。该方法还包括:确定推荐系统逻辑层所对应的特征查询方式;当特征查询方式为特征共享内存查询时,则执行从确定的特征共享内存中,查询目标内容的内容特征的步骤;当特征查询方式为全量缓存查询时,则确定在特征共享内存之上封装的全量缓存区,从全量缓存区中缓存的全量内容特征中查询目标内容的内容特征。
其中,特征查询方式,是查询内容特征的方式。可以理解,计算机设备预先针对各推荐系统逻辑层设置了相应的特征查询方式,以根据该相应的特征查询方式查询该推荐系统逻辑层所要查询的内容特征。可以理解,不同的特征查询方式所对应的查询位置不同。
在一个实施例中,特征查询方式包括特征共享内存查询、全量缓存查询和基于最近最少使用(LRU,Least Recently Used)算法的缓存查询等中的至少一种。
其中,特征共享内存查询,是指从特征共享内存中查询内容特征的方式。全量缓存查询,是指从全量缓存区中查询内容特征的方式。最近最少使用算法的缓存查询,是指从基于最近最少使用算法的缓存区域中查询内容特征的方式。
其中,最近最少使用算法(LRU,Least Recently Used),用于将近期最不会被访问的数据给淘汰掉。最近最少使用算法的核心思想是:最近被使用过的数据,将来被使用的概率也高,最近没有被使用的数据,将来被使用的概率也比较低。
在一个实施例中,在缓存的内容特征的数量达到预设阈值后,若有新的内容特征需要缓存至基于最近最少使用算法的缓存区域,计算机设备可以将最近一次的被访问时间距离当前时间最远的内容特征淘汰掉。
可以理解,本实施例中,每个内容特征都可以携带有一个时间戳,用于记录最近一次的被访问时间。最近一次的被访问时间,是距离当前时间最近的一次的被访问时间。可以理解,近期被使用的概率的高低与最近一次的被访问时间的远近负相关。即内容特征最近一次的被访问时间越近,说明该内容特征近期被使用的概率越高,那么,该内容特征越容易被保留;反之,内容特征最近一次的被访问时间越远,说明该内容特征近期被使用的概率越低,那么,该内容特征越容易被淘汰。
比如,基于最近最少使用算法的缓存区域的存储容量为100个内容特征,当需要在缓存区域中再新增第101个内容特征时,则可以基于最近最少使用算法,将存储的100个内容特征按照最近一次的被访问时间由近到远的顺序进行降序排序,删除排在最后的第100个内容特征(排在最后的这个内容特征近期被访问的概率最小),然后将需要新增的这个内容特征插入在排序队列的最前端。
在另一个实施例中,计算机设备可以在基于最近最少使用算法的缓存区域中设置一个缓存链表,在每次新插入内容特征的时候将新的内容特征插到缓存链表的头部;每次当缓存链表中存在的内容特征被访问时,则将被访问的内容特征移到缓存链表的头部,当缓存链表满的时候,就将缓存链表尾部的内容特征丢弃。可以理解,越是处于链表尾部,内容特征近期就越不容易被访问。
比如,缓存链表中有50个位置,当想要向缓存链表中插入第51个内容特征时,则可以将缓存链表中当前处于第50个位置处的内容特征淘汰,以在缓存链表中腾出位置,将想要插入的内容特征插入到缓存链表的头部,缓存链表中存储的其余的内容特征则可以顺次向后挪动一位。比如,插入前处于第49个位置处的内容特征,在插入新的内容特征后,会往后挪动到腾出来的第50个位置,插入前处于第48个位置处的内容特征,在插入新的内容特征后,会往后挪动一位,挪到第49个位置,依次类推,缓存链表中原先存储的内容特征皆顺次向后挪动一位。
在一个实施例中,特征共享内存中存储的内容特征可以是进行了特征序列化处理,即把内容特征进行了二进制化处理,从而减少存储空间的占用,也方便查询,提高查询效率。
在一个实施例中,特征共享内存中设置具有互斥锁,全量缓存区和基于最近最少使用算法的缓存区域中未设置锁,属于无锁状态。互斥锁,是指若一个线程获得了锁,那么其它线程就无法访问共享资源,从而被阻塞,直到该线程交还出了锁的所有权,另外一个线程才能获得锁。即互斥锁一次只能由一个线程获得。可以理解,设置有互斥锁的特征共享内存的读取速度比较慢,可能无法满足查询时效性要求比较高的推荐系统逻辑层的查询需求。而属于无锁状态的全量缓存区和基于最近最少使用算法的缓存区域,由于无锁,所以查询速度较快,就比较实用于为查询时效性要求较高的推荐系统逻辑层的查询需求。
在一个实施例中,计算机设备可以通过内存双缓存或无锁哈希映射的方式实现对全量缓存区和基于最近最少使用算法的缓存区域的无锁化处理。
内存双缓存,是通过双缓存交换的方式来实现无锁化处理。即当一个内存块在写入更新的内容时,可以从另一个内存块中读取数据,并在写入内容完毕后更换标识,从更新后的内存块中读取数据,从而实现无锁化处理。
无锁哈希映射(即无锁hashmap)是从哈希链表中未处于写入状态的节点中读取数据,将正在写入的节点进行标记,并在写入完毕后,将写入该节点的数据进行插入。
当特征查询方式为全量缓存查询时,则确定在特征共享内存之上封装的全量缓存区,从全量缓存区中缓存的全量内容特征中查询目标内容的内容特征。
全量缓存区,是在特征共享内存的上层封装的一个用于缓存全量内容特征的区域。可以理解,全量缓存区可以为一个或多个。在一个全量缓存区中可以缓存一个或多个内容特征类别的全量内容特征。
在一个实施例中,当所述推荐系统逻辑层所对应的特征查询方式为全量缓存查询时,则在特征共享内存之上封装的全量缓存区中查找与所述推荐系统逻辑层相应的全量缓存区,从查找的全量缓存区缓存的全量内容特征中查询目标内容的内容特征。
具体地,计算机设备可以针对使用全量缓存查询方式的不同的推荐系统逻辑层设置不同的全量缓存区,在进行特征查询时,查找与推荐系统逻辑层相应的全量缓存区,以从中查询目标内容的内容特征。不同推荐系统逻辑层所对应的全量缓存区中的内容特征可以相同或不同,当相同时,不同的推荐系统逻辑层从不同的全量缓存区获取数据,可以起到分散查询的作用,提高查询效率;当不同时,可以在相应的全量缓存区中只缓存相应推荐系统逻辑层缓存所需要的内容特征,而不必缓存不必要的内容特征,既减少了数据存储量,又能够在查询内容特征时处理比较快,提高查询效率。
在一个实施例中,计算机设备可以根据使用全量缓存查询方式的推荐系统逻辑层所对应的内容特征类别设置相应的全量缓存区。不同全量缓存区中缓存内容特征的内容特征类别的组合不尽相同。比如,一个全量缓存区中缓存内容特征类别的组合为A和B的内容特征,另一个全量缓存区中缓存内容特征类别的组合为A、B和C的内容特征。
当使用全量缓存查询方式的推荐系统逻辑层所对应的内容特征类别相同时,可以从同一全量缓存区中查询内容特征,当推荐系统逻辑层所对应的内容特征类别不同时,则从不同的全量缓存区中查询内容特征。
在一个实施例中,该方法还包括:当特征查询方式为基于最近最少使用算法的缓存查询时,则确定在特征共享内存之上封装的基于最近最少使用算法的缓存区域,从确定的缓存区域中缓存的内容特征中查询目标内容的内容特征。
基于最近最少使用算法的缓存区域,是指在特征共享内存的上层封装的采用最近最少使用算法的用于缓存最近缓存区域。
可以理解,基于最近最少使用算法的缓存区域中缓存的是近期被使用的概率较高的内容特征,因此,能够满足非海量的数据查询需求,而且命中率比较高。比如,日志层要查询的数据量比较少,就非常适合从基于最近最少使用算法的缓存区域中查询内容特征。但由于仅缓存的是近期被使用的概率较高的内容特征,所以存储的数据量有限,对海量的数据查询请求来说可能存在数据量过少的问题。比如,对于召回层发起的查询请求而言,就可能存在数据量过少的问题。
图5为一个实施例中缓存查询方式的示意图。参照图5,在特征共享内存的上层封装了全量缓存区a和b,以及基于最近最少使用算法的缓存区域。日志层可以从基于最近最少使用算法的缓存区域中查询,精排层和粗排层可以从全量缓存区a中查询,召回层可以从全量缓存区b中查询,索引层可以从特征共享内存中查询。即每个推荐系统逻辑层都可以从相应特征查询方式所对应的位置查询内容特征。从图5中可知,不同的全量缓存区中所包括的内容特征类别可以不同。
上述实施例中,针对不同的推荐系统逻辑层设置相应的特征查询方式,不同的特征查询方式所要查询的位置不同,相较于单一化地从同一个位置查询而言,使得查询更加准确、更加有针对性。而且从比较合适的有针对性的位置处查询,能够提高查询效率。
在一个实施例中,确定推荐系统逻辑层所对应的特征查询方式包括:获取推荐系统逻辑层所对应的内容查询数量;确定推荐系统逻辑层的查询时效性;根据内容查询数量和查询时效性,确定推荐系统逻辑层所对应的特征查询方式。
在一个实施例中,计算机设备可以根据推荐系统逻辑层的历史查询记录,确定推荐系统逻辑层所对应的内容查询数量。在另一个实施例中,计算机设备也可以获取推荐系统逻辑层当前的内容查询数量。当前的内容查询数量,是推荐系统逻辑层当前要查询相应内容特征的目标内容的数量。可以理解,推荐系统逻辑层可以并发地请求查询多个目标内容的内容特征。
在一个实施例中,推荐系统逻辑层的查询时效性包括实时查询和定时查询。
具体地,计算机设备可以根据内容查询数量和查询时效性,确定推荐系统逻辑层所对应的特征查询方式。
在一个实施例中,当内容查询数量满足少数量查询条件、且属于实时查询时,则确定该推荐系统逻辑层对应的特征查询方式为基于最近最少使用算法的缓存查询。当内容查询数量满足多数量查询条件、且属于实时查询时,则确定该推荐系统逻辑层对应的特征查询方式为全量缓存查询。当内容查询数量满足多数量查询条件、且属于定时查询时,则确定该推荐系统逻辑层对应的特征查询方式为特征共享内存查询。
上述实施例中,由于内容查询数量和查询时效性是对特征查询起到很重要影响作用的两个因素,因此根据推荐系统逻辑层的内容查询数量和查询时效性,确定推荐系统逻辑层所对应的特征查询方式,能够保证特征查询方式的准确性,从而提高查询准确性和查询效率。
在一个实施例中,全量缓存区中的全量内容特征的缓存步骤包括:收集历史的内容特征查询请求中的第一内容标识;获取内容数据库中发生特征更新的内容的第二内容标识;根据第一内容标识和第二内容标识,得到全量缓存区所对应的目标内容标识;将与目标内容标识对应的内容特征作为全量内容特征,缓存于全量缓存区中。
可以理解,全量缓存区中要通过一定的方法来缓存全量内容特征。
其中,历史的内容特征查询请求,是截止到当前已经接收到的内容特征查询请求。内容数据库,是存储内容和相应内容特征的数据库。发生特征更新的内容,是相应内容特征有发生更新的内容。比如,一篇文章的主题发生更新,则该文章就属于发生特征更新的内容。
具体地,计算机设备可以收集历史的内容特征查询请求中的第一内容标识,得到第一内容标识集合。计算机设备可以在内容数据库中存储的内容发生特征更新时,获取发生特征更新的内容的第二内容标识,得到第二内容标识集合。计算机设备可以根据第一内容标识集合和第二内容标识集合,得到全量缓存区所对应的目标内容标识。计算机设备可以获取与目标内容标识对应的内容特征,并将获取的内容特征作为全量内容特征,缓存于全量缓存区中。
在一个实施例中,计算机设备可以将所有的第一内容标识和第二内容标识都作为目标内容标识,即把第一内容标识集合和第二内容标识集合中的所有第一内容标识和第二内容标识作为目标内容标识。在另一个实施例中,计算机设备可以从第一内容标识和第二内容标识中筛选出部分内容标识作为目标内容标识。
在一个实施例中,根据第一内容标识和第二内容标识,得到全量缓存区所对应的目标内容标识包括:获取预设的缓存数量阈值;当第一内容标识和第二内容标识的数量大于缓存数量阈值时,则对第一内容标识和第二内容标识进行排序;排序位次的高低与选取的优先性正相关;按照排序位次由高到低的顺序,从第一内容标识和第二内容标识中选取小于或等于缓存数量阈值的内容标识作为目标内容标识。
可以理解,当获取的所有第一内容标识和第二内容标识的数量小于或等于缓存数量阈值时,则可以将所有的第一内容标识和第二内容标识作为目标内容标识。
当第一内容标识和第二内容标识的数量大于缓存数量阈值时,计算机设备则可以对第一内容标识和第二内容标识进行排序;排序位次的高低与选取的优先性正相关。其中,选取的优先性,是指内容标识被选取的优先性。选取的优先性,则内容标识越容易被选取,反之,选取的优先性,则内容标识越不容易被选取。而排序位次的高低与选取的优先性正相关,因此,排序位次越高,内容标识越容易被选取,排序位次越低,内容标识越不容易被选取。
计算机设备可以按照排序位次由高到低的顺序,从第一内容标识和第二内容标识中选取小于或等于缓存数量阈值的内容标识作为目标内容标识。可以理解,按照排序位次由高到低的顺序选取出的目标内容标识是将来更可能使用到的内容标识,因此能够一定程度上满足内容特征查询请求,而且筛选出更加重要的内容标识作为目标内容标识能够减少不必要的数据存储,节省了存储空间的占用。
在一个实施例中,计算机设备还可以根据预设的优先选取策略,对第一内容标识和第二内容标识进行排序。在一个实施例中,预设的优先选取策略可以为第一内容标识优先选取。那么,计算机设备可以对将第一内容标识排在第二内容标识的前面,然后根据排序的结果,就可以优先选取第一内容标识。可以理解,预设的优先选取策略也可以为第二内容标识优先选取。在其他实施例中,预设的优先选取策略还可以是其他的策略,对此不进行限定。
在一个实施例中,计算机设备也可以根据最近最少使用算法,对第一内容标识和第二内容标识进行排序。
在一个实施例中,对所述第一内容标识和第二内容标识进行排序包括:分别确定各第一内容标识和第二内容标识所对应的最近一次的被访问时间;根据最近最少使用算法,按最近一次的被访问时间由近到远的顺序,对各第一内容标识和第二内容标识进行降序排序。
其中,最近一次的被访问时间,是指内容标识最近一次被访问的时间。由近到远的顺序,是指距离当前时间由近到远的顺序。可以理解,按最近一次的被访问时间由近到远的顺序,对各第一内容标识和第二内容标识进行降序排序,说明最近一次的被访问时间越近,排序位次越高,反之,最近一次的被访问时间越远,排序位次越低。比如,内容标识1最近一次的被访问时间是昨天,内容标识2最近一次的被访问时间是今天,内容标识3最近一次的被访问时间是前天,那么,对这3个内容标识的排序则依次为:内容标识2——>内容标识1——>内容标识3,其中,内容标识2的排序位次最高。
可以理解,由于收集的第一内容标识是内容特征查询请求中携带的内容标识,也就是被访问内容的内容标识,而第二内容标识是由于内容数据库中的内容发生特征更新而获取到的,并不是由于被访问获取到的,所以第一内容标识最近一次的被访问时间比第二内容标识最近一次的被访问时间要近,因此,第一内容标识的排序位次高于第二内容标识的排序位次,第一内容标识被选取的优先性也就高于第二内容标识,那么第一内容标识也就更容易被选取。不同的第一内容标识最近一次的被访问时间也有远近不同,最近一次的被访问时间离当前时间最近的第一内容标识也就排在最前面,其选取优先性最高。
图6为一个实施例中获取全量缓存区的全量内容特征的示意图。参照图6,推荐系统逻辑层调用内容特征获取接口,可以从全量缓存区中查询内容特征。而该次内容特征查询请求中的第一内容标识也会被收集至第一内容标识集合中以更新全量缓存区。此外,计算机设备还可以从内容数据库中获取有特征更新的内容的第二内容标识。计算机设备可以通过最近最少使用算法对第一内容标识和第二内容标识进行淘汰筛选,根据淘汰筛选后剩余的目标内容标识获取相应的内容特征,写入全量缓存区以更新全量缓存区。可以理解,通过该种更新方式,能够使得全量缓存区中的全量内容特征更加的准确,查询命中率更高。
上述实施例中,根据收集历史的内容特征查询请求中的第一内容标识和获取内容数据库中发生特征更新的内容的第二内容标识,来得到全量缓存区所对应的目标内容标识;将与目标内容标识对应的内容特征作为全量内容特征,缓存于全量缓存区中,能够便捷、快速地得到全量缓存区中的能够满足查询需求的全量内容特征。
在一个实施例中,目标内容为多个。该方法还包括:反馈查询的各目标内容的内容特征至推荐系统逻辑层;反馈的各目标内容的内容特征,用于指示推荐系统逻辑层根据相应的内容特征确定各目标内容的排位顺序,并按照排位顺序对各目标内容进行推荐处理。
具体地,计算机设备可以将查询的各目标内容的内容特征反馈至发起内容特征查询请求的推荐系统逻辑层。推荐系统逻辑层可以根据反馈的内容特征确定各目标内容的排位顺序,并按照排位顺序对各目标内容进行推荐处理。
在一个实施例中,推荐系统逻辑层可以将反馈的内容特征输入排序模型中,通过该排序模型输出各目标内容的排位顺序。其中,排序模型,是用于输出目标内容的排位顺序的机器学习模型。
在一个实施例中,推荐系统逻辑层可以将各目标内容按照排位顺序进行推荐。在另一个实施例中,推荐系统逻辑层可以按照排位顺序,选取排位在前预设位次的目标内容,并将选取的目标内容按照相应的排位顺序进行推荐。
比如,有100个目标内容,推荐系统逻辑层可以将这100个目标内容按照相应排位顺序都进行推荐。推荐系统逻辑层还可以选取排位在前20名的目标内容,推荐这前20名的目标内容,推荐的时候将前20名的目标内容按照排位顺序。
上述实施例中,将通过本申请各实施例中的方法查询到的目标内容的内容特征反馈至推荐系统逻辑层,根据该内容特征确定各目标内容的排位顺序,并按照排位顺序对各目标内容进行推荐处理。由于通过本申请各实施例中的方法,能够快速地查询到目标内容的内容特征,进而能够提高推荐处理效率。此外,通过本申请各实施例中的方法查询到目标内容的内容特征更加的准确性,进而也能够提高推荐的准确性。
如图7所示,在一个实施例中,提供了一种内容特征查询装置700,该装置700包括:获取模块702、逻辑层确定模块704、内存确定模块706及特征查询模块708,其中:
获取模块702,用于获取针对目标内容的内容特征查询请求。
逻辑层确定模块704,用于确定发起内容特征查询请求的推荐系统逻辑层。
获取模块702还用于获取与推荐系统逻辑层对应的内容特征类别。
内存确定模块706,用于确定与内容特征类别相应的用于本地持久化存储的特征共享内存。
特征查询模块708,用于从确定的特征共享内存中,查询目标内容的内容特征。
如图8所示,在一个实施例中,该装置700还包括:
缓存模块710,用于当查询失败时,将内容特征查询请求中的内容标识添加至队列;按照队列,拉取与队列中的内容标识对应的内容特征;将获取的内容特征写入与内容特征所属的内容特征类别对应的特征共享内存中。
在一个实施例中,缓存模块710还用于当未查询到与内容特征查询请求中的内容标识相应的内容特征时,或当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则判定查询失败。
在一个实施例中,缓存模块710还用于当未查询到与内容特征查询请求中的内容标识相应的内容特征时,则将内容标识添加至新值队列;当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则将内容标识添加至刷新队列;并行从新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。
在一个实施例中,特征查询模块708还用于确定推荐系统逻辑层所对应的特征查询方式;当特征查询方式为特征共享内存查询时,则执行从确定的特征共享内存中,查询目标内容的内容特征的步骤;当特征查询方式为全量缓存查询时,则确定在特征共享内存之上封装的全量缓存区,从全量缓存区中缓存的全量内容特征中查询目标内容的内容特征。
在一个实施例中,特征查询模块708还用于当特征查询方式为基于最近最少使用算法的缓存查询时,则确定在特征共享内存之上封装的基于最近最少使用算法的缓存区域,从确定的缓存区域中缓存的内容特征中查询目标内容的内容特征。
在一个实施例中,特征查询模块708还用于获取推荐系统逻辑层所对应的内容查询数量;确定推荐系统逻辑层的查询时效性;根据内容查询数量和查询时效性,确定推荐系统逻辑层所对应的特征查询方式。
在一个实施例中,缓存模块710还用于收集历史的内容特征查询请求中的第一内容标识;获取内容数据库中发生特征更新的内容的第二内容标识;根据第一内容标识和第二内容标识,得到全量缓存区所对应的目标内容标识;将与目标内容标识对应的内容特征作为全量内容特征,缓存于全量缓存区中。
在一个实施例中,缓存模块710还用于获取预设的缓存数量阈值;当第一内容标识和第二内容标识的数量大于缓存数量阈值时,则对第一内容标识和第二内容标识进行排序;排序位次的高低与选取的优先性正相关;按照排序位次由高到低的顺序,从第一内容标识和第二内容标识中选取小于或等于缓存数量阈值的内容标识作为目标内容标识。
在一个实施例中,缓存模块710还用于分别确定各第一内容标识和第二内容标识所对应的最近一次的被访问时间;根据最近最少使用算法,按最近一次的被访问时间由近到远的顺序,对各第一内容标识和第二内容标识进行降序排序。
如图9所示,在一个实施例中,目标内容为多个。该装置700还包括:
反馈模块712,用于反馈查询的各目标内容的内容特征至推荐系统逻辑层;反馈的各目标内容的内容特征,用于指示推荐系统逻辑层根据相应的内容特征确定各目标内容的排位顺序,并按照排位顺序对各目标内容进行推荐处理。
图10为一个实施例中计算机设备的内部结构示意图。参照图10,该计算机设备可以是图1中所示的服务器110。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质可存储操作系统和计算机程序。该计算机程序被执行时,可使得处理器执行一种内容特征查询方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种内容特征查询方法。计算机设备的网络接口用于进行网络通信。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的内容特征查询装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行,计算机设备的非易失性存储介质可存储组成该内容特征查询装置的各个程序模块,比如,图7所示的获取模块702、逻辑层确定模块704、内存确定模块706及特征查询模块708。各个程序模块所组成的计算机程序用于使该计算机设备执行本说明书中描述的本申请各个实施例的内容特征查询方法中的步骤,例如,计算机设备可以通过如图7所示的内容特征查询装置700中的获取模块702获取针对目标内容的内容特征查询请求,并通过逻辑层确定模块704确定发起内容特征查询请求的推荐系统逻辑层。计算机设备可以通过获取模块702获取与推荐系统逻辑层对应的内容特征类别,并通过内存确定模块706确定与内容特征类别相应的用于本地持久化存储的特征共享内存。计算机设备可以通过特征查询模块708从确定的特征共享内存中,查询目标内容的内容特征。
一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:获取针对目标内容的内容特征查询请求;确定发起内容特征查询请求的推荐系统逻辑层;获取与推荐系统逻辑层对应的内容特征类别;确定与内容特征类别相应的用于本地持久化存储的特征共享内存;从确定的特征共享内存中,查询目标内容的内容特征。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:当查询失败时,将内容特征查询请求中的内容标识添加至队列;按照队列,拉取与队列中的内容标识对应的内容特征;将获取的内容特征写入与内容特征所属的内容特征类别对应的特征共享内存中。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:当未查询到与内容特征查询请求中的内容标识相应的内容特征时,或当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则判定查询失败。
在一个实施例中,当查询失败时,将内容特征查询请求中的内容标识添加至队列包括:当未查询到与内容特征查询请求中的内容标识相应的内容特征时,则将内容标识添加至新值队列;当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则将内容标识添加至刷新队列;按照队列,拉取与队列中的内容标识对应的内容特征包括:并行从新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:确定推荐系统逻辑层所对应的特征查询方式;当特征查询方式为特征共享内存查询时,则执行从确定的特征共享内存中,查询目标内容的内容特征的步骤;当特征查询方式为全量缓存查询时,则确定在特征共享内存之上封装的全量缓存区,从全量缓存区中缓存的全量内容特征中查询目标内容的内容特征。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:当特征查询方式为基于最近最少使用算法的缓存查询时,则确定在特征共享内存之上封装的基于最近最少使用算法的缓存区域,从确定的缓存区域中缓存的内容特征中查询目标内容的内容特征。
在一个实施例中,确定推荐系统逻辑层所对应的特征查询方式包括:获取推荐系统逻辑层所对应的内容查询数量;确定推荐系统逻辑层的查询时效性;根据内容查询数量和查询时效性,确定推荐系统逻辑层所对应的特征查询方式。
在一个实施例中,全量缓存区中的全量内容特征的缓存步骤包括:收集历史的内容特征查询请求中的第一内容标识;获取内容数据库中发生特征更新的内容的第二内容标识;根据第一内容标识和第二内容标识,得到全量缓存区所对应的目标内容标识;将与目标内容标识对应的内容特征作为全量内容特征,缓存于全量缓存区中。
在一个实施例中,根据第一内容标识和第二内容标识,得到全量缓存区所对应的目标内容标识包括:获取预设的缓存数量阈值;当第一内容标识和第二内容标识的数量大于缓存数量阈值时,对第一内容标识和第二内容标识进行排序;排序位次的高低与选取的优先性正相关;按照排序位次由高到低的顺序,从第一内容标识和第二内容标识中选取小于或等于缓存数量阈值的内容标识作为目标内容标识。
在一个实施例中,对第一内容标识和第二内容标识进行排序包括:分别确定各第一内容标识和第二内容标识所对应的最近一次的被访问时间;根据最近最少使用算法,按最近一次的被访问时间由近到远的顺序,对各第一内容标识和第二内容标识进行降序排序。
在一个实施例中,目标内容为多个;计算机程序被处理器执行时,还使得处理器执行如下步骤:反馈查询的各目标内容的内容特征至推荐系统逻辑层;反馈的各目标内容的内容特征,用于指示推荐系统逻辑层根据相应的内容特征确定各目标内容的排位顺序,并按照排位顺序对各目标内容进行推荐处理。
一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如下步骤:获取针对目标内容的内容特征查询请求;确定发起内容特征查询请求的推荐系统逻辑层;获取与推荐系统逻辑层对应的内容特征类别;确定与内容特征类别相应的用于本地持久化存储的特征共享内存;从确定的特征共享内存中,查询目标内容的内容特征。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:当查询失败时,将内容特征查询请求中的内容标识添加至队列;按照队列,拉取与队列中的内容标识对应的内容特征;将获取的内容特征写入与内容特征所属的内容特征类别对应的特征共享内存中。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:当未查询到与内容特征查询请求中的内容标识相应的内容特征时,或当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则判定查询失败。
在一个实施例中,当查询失败时,将内容特征查询请求中的内容标识添加至队列包括:当未查询到与内容特征查询请求中的内容标识相应的内容特征时,则将内容标识添加至新值队列;当与内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则将内容标识添加至刷新队列;按照队列,拉取与队列中的内容标识对应的内容特征包括:并行从新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:确定推荐系统逻辑层所对应的特征查询方式;当特征查询方式为特征共享内存查询时,则执行从确定的特征共享内存中,查询目标内容的内容特征的步骤;当特征查询方式为全量缓存查询时,则确定在特征共享内存之上封装的全量缓存区,从全量缓存区中缓存的全量内容特征中查询目标内容的内容特征。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行如下步骤:当特征查询方式为基于最近最少使用算法的缓存查询时,则确定在特征共享内存之上封装的基于最近最少使用算法的缓存区域,从确定的缓存区域中缓存的内容特征中查询目标内容的内容特征。
在一个实施例中,确定推荐系统逻辑层所对应的特征查询方式包括:获取推荐系统逻辑层所对应的内容查询数量;确定推荐系统逻辑层的查询时效性;根据内容查询数量和查询时效性,确定推荐系统逻辑层所对应的特征查询方式。
在一个实施例中,全量缓存区中的全量内容特征的缓存步骤包括:收集历史的内容特征查询请求中的第一内容标识;获取内容数据库中发生特征更新的内容的第二内容标识;根据第一内容标识和第二内容标识,得到全量缓存区所对应的目标内容标识;将与目标内容标识对应的内容特征作为全量内容特征,缓存于全量缓存区中。
在一个实施例中,根据第一内容标识和第二内容标识,得到全量缓存区所对应的目标内容标识包括:获取预设的缓存数量阈值;当第一内容标识和第二内容标识的数量大于缓存数量阈值时,对第一内容标识和第二内容标识进行排序;排序位次的高低与选取的优先性正相关;按照排序位次由高到低的顺序,从第一内容标识和第二内容标识中选取小于或等于缓存数量阈值的内容标识作为目标内容标识。
在一个实施例中,对第一内容标识和第二内容标识进行排序包括:分别确定各第一内容标识和第二内容标识所对应的最近一次的被访问时间;根据最近最少使用算法,按最近一次的被访问时间由近到远的顺序,对各第一内容标识和第二内容标识进行降序排序。
在一个实施例中,目标内容为多个;计算机程序被处理器执行时,还使得处理器执行如下步骤:反馈查询的各目标内容的内容特征至推荐系统逻辑层;反馈的各目标内容的内容特征,用于指示推荐系统逻辑层根据相应的内容特征确定各目标内容的排位顺序,并按照排位顺序对各目标内容进行推荐处理。
需要说明的是,本申请各实施例中的“第一”和“第二”仅用作区分,而并不用于大小、先后、从属等方面的限定。
应该理解的是,虽然本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (22)
1.一种内容特征查询方法,所述方法包括:
获取针对目标内容的内容特征查询请求;
确定发起所述内容特征查询请求的推荐系统逻辑层;
获取与所述推荐系统逻辑层对应的内容特征类别;
确定与所述内容特征类别相应的用于本地持久化存储的特征共享内存;
获取所述推荐系统逻辑层所对应的内容查询数量,以及确定所述推荐系统逻辑层的查询时效性;
根据所述内容查询数量和所述查询时效性,确定所述推荐系统逻辑层所对应的特征查询方式;
当所述特征查询方式为特征共享内存查询时,则从确定的特征共享内存中,查询所述目标内容的内容特征。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当查询失败时,将所述内容特征查询请求中的内容标识添加至队列;
按照所述队列,拉取与所述队列中的内容标识对应的内容特征;
将获取的内容特征写入与所述内容特征所属的内容特征类别对应的特征共享内存中。
3.根据权利要求2所述的方法,其特征在于,还包括:
当未查询到与所述内容特征查询请求中的内容标识相应的内容特征时,或当与所述内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则判定查询失败。
4.根据权利要求3所述的方法,其特征在于,所述当查询失败时,将内容特征查询请求中的内容标识添加至队列包括:
当未查询到与所述内容特征查询请求中的内容标识相应的内容特征时,则将所述内容标识添加至新值队列;
当与所述内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则将所述内容标识添加至刷新队列;
所述按照所述队列,拉取与所述队列中的内容标识对应的内容特征包括:
并行从所述新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述特征查询方式为全量缓存查询时,则确定在特征共享内存之上封装的全量缓存区,从所述全量缓存区中缓存的全量内容特征中查询所述目标内容的内容特征。
6.根据权利要求5所述的方法,其特征在于,还包括:
当所述特征查询方式为基于最近最少使用算法的缓存查询时,则确定在特征共享内存之上封装的基于最近最少使用算法的缓存区域,从确定的所述缓存区域中缓存的内容特征中查询所述目标内容的内容特征。
7.根据权利要求5所述的方法,其特征在于,所述全量缓存区中的全量内容特征的缓存步骤包括:
收集历史的内容特征查询请求中的第一内容标识;
获取内容数据库中发生特征更新的内容的第二内容标识;
根据所述第一内容标识和所述第二内容标识,得到全量缓存区所对应的目标内容标识;
将与所述目标内容标识对应的内容特征作为全量内容特征,缓存于所述全量缓存区中。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一内容标识和所述第二内容标识,得到全量缓存区所对应的目标内容标识包括:
获取预设的缓存数量阈值;
当所述第一内容标识和第二内容标识的数量大于所述缓存数量阈值时,则对所述第一内容标识和所述第二内容标识进行排序;排序位次的高低与选取的优先性正相关;
按照排序位次由高到低的顺序,从所述第一内容标识和所述第二内容标识中选取小于或等于所述缓存数量阈值的内容标识作为目标内容标识。
9.根据权利要求8所述的方法,其特征在于,所述对所述第一内容标识和所述第二内容标识进行排序包括:
分别确定各第一内容标识和第二内容标识所对应的最近一次的被访问时间;
根据最近最少使用算法,按最近一次的被访问时间由近到远的顺序,对各第一内容标识和第二内容标识进行降序排序。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述目标内容为多个;
所述方法还包括:
反馈查询的各目标内容的内容特征至所述推荐系统逻辑层;反馈的所述各目标内容的内容特征,用于指示所述推荐系统逻辑层根据相应的内容特征确定各目标内容的排位顺序,并按照所述排位顺序对各目标内容进行推荐处理。
11.一种内容特征查询装置,其特征在于,所述装置包括:
获取模块,用于获取针对目标内容的内容特征查询请求;
逻辑层确定模块,用于确定发起所述内容特征查询请求的推荐系统逻辑层;
所述获取模块还用于获取与所述推荐系统逻辑层对应的内容特征类别;
内存确定模块,用于确定与所述内容特征类别相应的用于本地持久化存储的特征共享内存;
特征查询模块,用于获取所述推荐系统逻辑层所对应的内容查询数量,以及确定所述推荐系统逻辑层的查询时效性;根据所述内容查询数量和所述查询时效性,确定所述推荐系统逻辑层所对应的特征查询方式;当所述特征查询方式为特征共享内存查询时,则从确定的特征共享内存中,查询所述目标内容的内容特征。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
缓存模块,用于当查询失败时,将所述内容特征查询请求中的内容标识添加至队列;按照所述队列,拉取与所述队列中的内容标识对应的内容特征;将获取的内容特征写入与所述内容特征所属的内容特征类别对应的特征共享内存中。
13.根据权利要求12所述的装置,其特征在于,所述缓存模块还用于当未查询到与所述内容特征查询请求中的内容标识相应的内容特征时,或当与所述内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则判定查询失败。
14.根据权利要求13所述的装置,其特征在于,所述缓存模块还用于当未查询到与所述内容特征查询请求中的内容标识相应的内容特征时,则将所述内容标识添加至新值队列;当与所述内容特征查询请求中的内容标识相应的内容特征处于过期状态时,则将所述内容标识添加至刷新队列;并行从所述新值队列和刷新队列中获取内容标识,并查找与获取的内容标识对应的内容特征。
15.根据权利要求11所述的装置,其特征在于,所述特征查询模块还用于当所述特征查询方式为全量缓存查询时,则确定在特征共享内存之上封装的全量缓存区,从所述全量缓存区中缓存的全量内容特征中查询所述目标内容的内容特征。
16.根据权利要求15所述的装置,其特征在于,所述特征查询模块还用于当所述特征查询方式为基于最近最少使用算法的缓存查询时,则确定在特征共享内存之上封装的基于最近最少使用算法的缓存区域,从确定的所述缓存区域中缓存的内容特征中查询所述目标内容的内容特征。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
缓存模块,用于收集历史的内容特征查询请求中的第一内容标识;获取内容数据库中发生特征更新的内容的第二内容标识;根据所述第一内容标识和所述第二内容标识,得到全量缓存区所对应的目标内容标识;将与所述目标内容标识对应的内容特征作为全量内容特征,缓存于所述全量缓存区中。
18.根据权利要求17所述的装置,其特征在于,所述缓存模块还用于获取预设的缓存数量阈值;当所述第一内容标识和第二内容标识的数量大于所述缓存数量阈值时,则对所述第一内容标识和所述第二内容标识进行排序;排序位次的高低与选取的优先性正相关;按照排序位次由高到低的顺序,从所述第一内容标识和所述第二内容标识中选取小于或等于所述缓存数量阈值的内容标识作为目标内容标识。
19.根据权利要求18所述的装置,其特征在于,所述缓存模块还用于分别确定各第一内容标识和第二内容标识所对应的最近一次的被访问时间;根据最近最少使用算法,按最近一次的被访问时间由近到远的顺序,对各第一内容标识和第二内容标识进行降序排序。
20.根据权利要求11至19中任一项所述的装置,其特征在于,所述目标内容为多个;
所述装置还包括:
反馈模块,用于反馈查询的各目标内容的内容特征至所述推荐系统逻辑层;反馈的所述各目标内容的内容特征,用于指示所述推荐系统逻辑层根据相应的内容特征确定各目标内容的排位顺序,并按照所述排位顺序对各目标内容进行推荐处理。
21.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
22.一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如权利要求1至10中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810522924.6A CN108763458B (zh) | 2018-05-28 | 2018-05-28 | 内容特征查询方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810522924.6A CN108763458B (zh) | 2018-05-28 | 2018-05-28 | 内容特征查询方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763458A CN108763458A (zh) | 2018-11-06 |
CN108763458B true CN108763458B (zh) | 2023-06-16 |
Family
ID=64002941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810522924.6A Active CN108763458B (zh) | 2018-05-28 | 2018-05-28 | 内容特征查询方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763458B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110751275B (zh) * | 2019-08-03 | 2022-09-02 | 北京达佳互联信息技术有限公司 | 图训练系统、数据访问方法及装置、电子设备、存储介质 |
CN110769034B (zh) * | 2019-09-20 | 2024-02-09 | 中国平安人寿保险股份有限公司 | 推荐系统策略迭代方法、装置及存储介质、服务器 |
CN110852846A (zh) * | 2019-11-11 | 2020-02-28 | 京东数字科技控股有限公司 | 用于推荐对象的处理方法及装置、电子设备、存储介质 |
CN114860189B (zh) * | 2021-02-05 | 2024-11-01 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、服务器及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN106339493A (zh) * | 2016-08-31 | 2017-01-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
CN107967124A (zh) * | 2017-12-14 | 2018-04-27 | 南京云创大数据科技股份有限公司 | 一种分布式持久性内存存储系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8983902B2 (en) * | 2010-12-10 | 2015-03-17 | Sap Se | Transparent caching of configuration data |
US10255180B2 (en) * | 2015-12-11 | 2019-04-09 | Netapp, Inc. | Server-based persistence management in user space |
-
2018
- 2018-05-28 CN CN201810522924.6A patent/CN108763458B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN106339493A (zh) * | 2016-08-31 | 2017-01-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
CN107967124A (zh) * | 2017-12-14 | 2018-04-27 | 南京云创大数据科技股份有限公司 | 一种分布式持久性内存存储系统及方法 |
Non-Patent Citations (1)
Title |
---|
基于.NET框架的内容管理系统设计与实现;孙超等;《现代电子技术》;20091231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108763458A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11580176B2 (en) | Search infrastructure | |
CN108763458B (zh) | 内容特征查询方法、装置、计算机设备及存储介质 | |
US11238098B2 (en) | Heterogenous key-value sets in tree database | |
US9582587B2 (en) | Real-time content searching in social network | |
US10198363B2 (en) | Reducing data I/O using in-memory data structures | |
US8725730B2 (en) | Responding to a query in a data processing system | |
US8977623B2 (en) | Method and system for search engine indexing and searching using the index | |
CN107491523B (zh) | 存储数据对象的方法及装置 | |
JP6642650B2 (ja) | Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法 | |
US20190005101A1 (en) | Method and apparatus for accessing time series data in memory | |
US10540361B2 (en) | Executing conditions with negation operators in analytical databases | |
CN114138840B (zh) | 数据查询方法、装置、设备及存储介质 | |
CA2861898A1 (en) | Download resource recommendation method, system and storage medium | |
CN110909266B (zh) | 深度分页的方法、装置及服务器 | |
CN110858210A (zh) | 数据查询方法及装置 | |
CN114428776B (zh) | 一种面向时序数据的索引分区管理方法和系统 | |
CN114297145A (zh) | 一种ipfs节点本地基于关键词搜索文件的方法、介质及系统 | |
CN113886683A (zh) | 标签簇构建方法、系统、存储介质及电子设备 | |
CN110399451B (zh) | 一种基于非易失性内存的全文检索引擎缓存方法,系统,设备及可读存储介质 | |
US7974965B2 (en) | Federated pagination management | |
CN115203253A (zh) | 看板数据查询方法、装置、计算机终端及存储介质 | |
CN118520145A (zh) | 数据存储方法及装置、计算机设备、存储介质及程序产品 | |
CN115827959A (zh) | 处理内容推荐业务的方法、装置、计算机设备和存储介质 | |
CN115623008A (zh) | 一种Kubernetes资源的索引构建方法及系统 | |
CN118897845A (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 |