买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】用户标签存储方法、用户画像计算方法及计算设备_北京腾云天下科技有限公司_201810132449.1 

申请/专利权人:北京腾云天下科技有限公司

申请日:2018-02-09

公开(公告)日:2021-04-09

公开(公告)号:CN108415978B

主分类号:G06F16/58(20190101)

分类号:G06F16/58(20190101);G06F16/245(20190101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.09#授权;2018.09.11#实质审查的生效;2018.08.17#公开

摘要:本发明公开了一种用户标签存储方法,在计算设备中执行,计算设备分别与第一数据存储装置和第二数据存储装置连接,第一数据存储装置中存储有多条用户标签记录,第二数据存储装置中存储有多个标签位图,该方法包括:从第一数据存储装置中获取一条用户标签记录,用户标签记录包括用户标识和该用户的至少一个标签;根据标签来确定该用户标签记录所对应的至少一个目标标签位图;根据用户标识来确定该用户标签记录在各目标标签位图中的目标位置;将各目标标签位图中的目标位置处的值设为1,从而将该用户标签记录从第一数据存储装置存储到第二数据存储装置中。本发明一并公开了相应的用户画像计算方法及计算设备。

主权项:1.一种用户标签存储方法,在计算设备中执行,所述计算设备分别与第一数据存储装置和第二数据存储装置连接,所述第一数据存储装置中存储有多条用户标签记录,所述第二数据存储装置中存储有多个标签位图和多个人群位图,其中,所述标签为根据用户自身的属性或通过对用户信息进行分析计算而得出的用户特征标识,每个标签对应于一个标签位图,标签位图中的每一位数据用于表示一个用户是否具有该标签,所述人群为一个或多个标签的逻辑运算组合,每个人群对应于一个人群位图,所述方法包括:从第一数据存储装置中获取一条用户标签记录,所述用户标签记录包括用户标识和该用户的一个或多个标签;根据所述标签来确定所述用户标签记录所对应的一个或多个目标标签位图;根据所述用户标识来确定所述用户标签记录在各目标标签位图中的目标位置;将各目标标签位图中的目标位置处的值设置为1,从而将所述用户标签记录从第一数据存储装置存储到第二数据存储装置中;确定人群中的每一个标签所对应的标签位图;根据人群中各标签的逻辑运算关系来确定各标签位图之间的位操作符;根据所述位操作符对各标签位图进行位运算,以得到所述人群所对应的人群位图;当所述计算设备接收到查询终端发起的查询请求后,根据所述查询请求来从第二数据存储装置中获取相应的标签位图和人群位图,根据获取到的标签位图和人群位图计算出用户画像,并将所述用户画像以人群位图的格式存储至第二数据存储装置中,所述用户画像为具有各标签的用户群。

全文数据:用户标签存储方法、用户画像计算方法及计算设备技术领域[0001]本发明涉及数据处理技术领域,尤其涉及一种用户标签存储方法、用户画像计算方法及计算设备。背景技术[0002]标签是根据用户自身的属性或通过对用户信息进行分析计算而得出的高度精炼的用户特征标识,例如,某个用户具有“男性”、“程序员”、“Μ0ΒΑ手游”标签,则表明该用户为男程序员,且具有爱玩MOBA手游的特征。用户画像即多个用户在某些标签上的分布状况,例如,某个应用APP的用户画像包括使用该应用的用户的性别比例、年龄分布等。基于用户标签可以得出用户画像,进一步地,根据用户画像则可以实现针对用户的个性化推荐和精准营销。[0003]目前,用户标签多以用户标识(ID为主键进行存储,每一条用户标签记录包括用户标识和该用户所对应的一个或多个标签。基于这种存储方式,在查询用户画像时,需要根据标签查询条件来生成一个或多个SQL语句,然后分别执行各SQL语句得出相应的用户群,最后把各用户群进行合并,得到最终的用户画像(也就是得出符合标签查询条件的用户群)。但是,SQL语句查询速度较慢,且受查询的用户数据量的影响较大,数据量越大,查询速度越慢。尤其在海量数据以及复杂查询条件的情况下,分别执行各SQL语句并合并各执行结果的时间消耗令人难以忍受。此外,如何对采用上述方法计算出来的用户画像进行保存也是一个挑战。发明内容[0004]为此,本发明提供一种用户标签存储方法、用户画像计算方法及计算设备,以解决或至少缓解上面存在的问题。[0005]根据本发明的一个方面,提供一种用户标签存储方法,在计算设备中执行,计算设备分别与第一数据存储装置和第二数据存储装置连接,第一数据存储装置中存储有多条用户标签记录,第二数据存储装置中存储有多个标签位图,其中,每个标签对应于一个标签位图,标签位图中的每一位数据用于表示一个用户是否具有该标签,该方法包括:从第一数据存储装置中获取一条用户标签记录,用户标签记录包括用户标识和该用户的一个或多个标签;根据标签来确定该用户标签记录所对应的一个或多个目标标签位图;根据用户标识来确定该用户标签记录在各目标标签位图中的目标位置;将各目标标签位图中的目标位置处的值设置为1,从而将该用户标签记录从第一数据存储装置存储到第二数据存储装置中。[0006]可选地,在根据本发明的用户标签存储方法中,用户标识为大于等于1的整数,根据用户标识来确定用户标签记录在各目标标签位图中的目标位置的步骤包括:目标位置为目标标签位图中的第用户标识个数据位。[0007]可选地,在根据本发明的用户标签存储方法中,第二数据存储装置中还存储有多个人群位图,人群为一个或多个标签的逻辑运算组合,每个人群对应于一个人群位图,该方法还包括:确定人群中的每一个标签所对应的标签位图;根据人群中各标签的逻辑运算关系来确定各标签位图之间的位操作符;根据位操作符对各标签位图进行位运算,以得到该人群所对应的人群位图。[0008]可选地,在根据本发明的用户标签存储方法中,逻辑运算关系包括与、或、非,所述位操作符包括按位与、按位或、按位非。[0009]可选地,在根据本发明的用户标签存储方法中,第二数据存储装置中的位图采用RoaringBitmap压缩算法存储。[0010]根据本发明的一个方面,提供一种用户画像计算方法,在计算设备中执行,计算设备与第二数据存储装置连接,第二数据存储装置中存储有多条属性记录、多个标签位图以及多个人群位图,其中,属性记录包括属性标识和该属性所对应的多个标签,标签位图中的每一位数据用于表示一个用户是否具有该标签,人群位图中的每一位数据用于表示一个用户是否属于该人群,该方法包括:接收用户画像查询请求,查询请求包括目标人群标识和目标属性标识;根据目标人群标识来确定目标人群位图;根据目标属性标识来确定多个目标标签,根据目标标签来确定多个目标标签位图;分别将每一个目标标签位图与目标人群位图进行位运算,得到每一个目标标签所对应的结果位图;根据结果位图来确定目标人群中具有各目标标签的用户的数量。[0011]可选地,在根据本发明的用户画像计算方法中,根据结果位图来确定目标人群中具有各目标标签的用户的数量的步骤包括:将一个结果位图中所包括的1的数量作为目标人群中具有该结果位图所对应的目标标签的用户的数量。[0012]可选地,在根据本发明的用户画像计算方法中,位运算包括按位与、按位或、按位非。[0013]根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,程序指令被配置为适于由上述至少一个处理器执行,程序指令包括用于执行如上所述的用户标签存储方法和或如上所述的用户画像计算方法的指令。[0014]根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的用户标签存储方法和或如上所述的用户画像计算方法。[0015]根据本发明的技术方案,在第二数据存储装置中采用位图结构包括标签位图和人群位图)来存储用户标签,位图结构可以节省大量的存储空间。进一步地,第二数据存储装置中的位图采用RoaringBitmap等压缩算法存储,从而进一步节省存储空间,提高存储效率。[0016]此外,位图结构可以实现高效的运算,通过各位图之间的与、或、非等位运算以及位图内元素的求和等,可以快速计算出用户画像。位图的计算时间受用户数量的影响不大,不会随着用户数量的增加而导致计算性能降低,从而使得用户画像的计算效率得到保证。[0017]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明[0018]为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。[0019]图1示出了根据本发明一个实施例的用户标签存储系统100的示意图;[0020]图2示出了根据本发明一个实施例的计算设备200的示意图;[0021]图3示出了根据本发明一个实施例的用户标签存储方法300的流程图;[0022]图4示出了根据本发明一个实施例的用户画像计算系统400的示意图;[0023]图5示出了根据本发明一个实施例的用户画像计算方法500的流程图。具体实施方式[0024]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。[0025]图1示出了根据本发明一个实施例的用户数据存储系统100的示意图。如图1所示,用户数据存储系统100包括计算设备200、第一数据存储装置110和第二数据存储装置120。[0026]计算设备200是具备通信、计算、存储功能的设备,其可以实现为服务器,例如应用服务器、Web服务器等,但不限于此。应当指出,计算设备200可以实现为一台服务器,也可以实现为由多台服务器所构成的集群或分布式系统;当其是多台服务器时,这多台服务器可以部署于同一地理位置,也可以分散布置于多个地理位置,本发明对计算设备200所包括的服务器的数量以及各服务器的部署位置均不做限制。[0027]第一数据存储装置110、第二数据存储装置120可以是MySQL等关系型数据库,也可以是NoSQL等非关系型数据库;可以是驻留于计算设备200中的本地数据库,也可以作为分布式数据库例如HBase等设置于多个地理位置处。特别地,第一数据存储装置110和第二数据存储装置120可以是同一个数据库,只不过其中以两种不同的格式存储有相同的数据(SP用户标签数据)。总之,第一数据存储装置110、第二数据存储装置120用于存储数据,本发明对数据存储装置110、120的具体部署位置、配置情况等均不做限制。第一数据存储装置110、第二数据存储装置120分别与计算设备200相连。计算设备200可以对第一数据存储装置110、第二数据存储装置120中存储的数据进行读写。例如,计算设备200可以直接读取数据存储装置110、120中的数据在数据存储装置110、120为计算设备200的本地数据库时),也可以通过有线或无线的方式接入互联网,并通过数据接口来获取数据存储装置110、120中的数据。[0028]第一数据存储装置110中存储有多条用户记录,每条用户记录包括用户标识和该用户的一个或多个属性,特别地,用户的属性值即为该用户的标签。也即,第一数据存储装置110中存储有多条用户标签记录,每条用户标签记录包括用户标识和该用户的一个或多个标签。例如,第一数据存储装置110中存储的多条用户标签记录的示例如下表所示:[0029]表1[0030][0031]上表中,性别、学历、星座都是属性,男、女为性别的属性值,相应地,男、女分别是一个标签。类似地,专科、本科、硕士、博士等为学历的属性值,专科、本科、硕士、博士等也分别是一个标签。上表中包括6条用户标签记录,每条用户标签记录包括用户标识和该用户的三个标签:第1条用户标签记录为(1,男,硕士,水瓶座),其用户标识为1,标签为男、硕士、水瓶座;第2条用户标签记录为(2,女,硕士,双鱼座),其用户标识为2,标签为女,硕士,双鱼座;…。应当指出,用户标识是按照预定规则生成的用于唯一标识一个用户的数值或字符串。用户标识的生成规则可以由本领域技术人员根据实际情况自行设置,在本发明中,优选地,为了便于将用户标签记录以位图Bitmap格式存储于第二数据存储装置120中,按照采集到用户信息的先后顺序将用户标识设置为从1开始按照固定步长逐渐递增的整数。步长例如可以设置为1,相应地,将采集到的第一个用户的用户标识设置为1,将采集到的第二个用户的用户标识设置为2,将采集到的第三个用户的用户标识设置为3,以此类推。[0032]应当指出,为了便于表述和理解本发明,表1中的属性、标签均用中文文本表示。而在实际情况中,各属性、标签在第一数据存储装置110中可以以中文文本表示,也可以采用一个包括数字和或字母可以区分大小写)的字符串来表示。本发明的实施过程不受属性、标签在第一数据存储装置110中的表示方式的限制,因而本发明对属性、标签在第一数据存储装置Iio中的表示方式不做限制。此外,本领域技术人员应当意识到,尽管上表中仅列出了三个属性以及这三个属性的部分标签,但是实际应用中,本领域技术人员可以自行设置任意数量、任意种类的属性以及属性所包括的标签,本发明对第一数据存储装置Iio中所存储的标签的数量及种类均不做限制。[0033]第一数据存储装置110中以用户标识为主键存储用户标签记录,每一条用户标签记录对应于一行信息。基于这种存储方式,在查询用户画像查询用户画像,即统计具有各标签的用户群时,需要根据标签查询条件来生成一个或多个SQL语句,然后分别执行各SQL语句得出相应的用户群,最后把各用户群进行合并,得到最终的用户画像。这种SQL方式的查询速度较慢,且受用户数据量的影响较大,数据量越大,查询速度越慢。尤其在海量数据以及复杂查询条件的情况下,分别执行各SQL语句并合并各执行结果的时间消耗令人难以忍受。针对该问题,本发明提出一种用户标签存储方法300,由计算设备200执行,将第一数据存储装置110中的用户标签记录以更优的方式存储于第二数据存储装置120中,第二数据存储装置120中以标签位图Bitmap的方式存储有用户标签,其中,每个标签对应于一个标签位图,所有标签位图所包括的数据位的数量相同,均等于用户的总数量。标签位图中的每一位数据用于表示一个用户是否具有该标签,每一个数据位的取值包括0和1两种,若数据位的取值为1,则表明该数据位所对应的用户具有该标签;若数据位的取值为〇,则表明该数据位所对应的用户不具有该标签。位图结构可以节省大量的存储空间,使得第二数据存储装置中可以消耗较少的存储空间来存储所有用户的所有标签。进一步地,第二数据存储装置中的位图可以采用RoaringBitmap等压缩算法存储,进一步节省了存储空间,提高存储效率。此外,位图结构可以实现高效的运算,通过各位图之间的与、或、非等位运算以及位图内元素的求和等,可以快速计算出用户画像。位图的计算时间受用户数量的影响不大,不会随着用户数量的增加而导致计算性能降低,从而使得用户画像的计算效率得到保证。[0034]图2示出了根据本发明一个实施例的计算设备200的示意图。在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。[0035]取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器μΡ、微控制器μ〇、数字信息处理器DSP或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元ALU、浮点数单元FPU、数字信号处理核心DSP核心或者它们的任何组合。示例的存储器控制器218可以与处理器204—起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。[0036]取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器诸如RAM、非易失性存储器诸如ROM、闪存等或者它们的任何组合。系统存储器106可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。[0037]计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246到基本配置202经由总线接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个AV端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个IO端口258和诸如输入设备例如,键盘、鼠标、笔、语音输入设备、触摸输入设备或者其他外设例如打印机、扫描仪等之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。[0038]网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频RF、微波、红外IR或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。[0039]在根据本发明的计算设备200中,应用222包括用户标签存储应用228,用户标签存储应用228包括多条程序指令,而程序数据224可以包括由数据存储装置110中获取到的各条用户标签记录。应用228可以指示处理器204执行用户标签存储方法300,对程序数据224进行分析处理,以便于将第一数据存储装置110中的用户标签记录转存于第二数据存储装置120中,以提高标签数据存储效率,并便于计算用户画像。[0040]图3示出了根据本发明一个实施例的用户标签存储方法300的流程图。方法300适于在计算设备例如前述计算设备200中执行。如图3所示,方法300始于步骤S310。[0041]在步骤S310中,从第一数据存储装置中获取一条用户标签记录,用户标签记录包括用户标识和该用户的一个或多个标签。应当指出,实际上,对于第一数据存储装置110中存储的每一条用户标签记录,均需要执行方法300以将其转存于第二数据存储装置120中。将每条用户标签记录转存于第二数据存储装置120中方法都是一致的,此处谨以一条用户标签记录为例,来说明方法300的实施过程。用户标签记录的示例可以参见前述表1。[0042]随后,在步骤S320中,根据标签来确定用户标签记录所对应的一个或多个目标标签位图。在第二数据存储装置120中,每个标签都唯一对应于一个位图,这样,即可确定用户标签记录中的每一个标签所对应的目标标签位图,目标标签位图的数量与用户标签记录中所包括的标签的数量相同。[0043]随后,在步骤S330中,根据用户标识来确定用户标签记录在各目标标签位图中的目标位置。应当指出,第二数据存储装置120中的所有标签位图中所包括的数据位的数量均等于用户的总数量。用户标签在标签位图中是按用户标识的顺序进行存储的,标签位图中的相邻两个数据位的用户标识的差等于生成用户标识时的固定步长,步长可以由本领域技术人员根据实际情况自行设置,本发明对此不做限制。对于同一个用户,其在所有标签位图中的目标位置均相同。因此,基于用户标识,即可以确定用户标签记录在各目标标签位图中的目标位置。根据一种实施例,用户标识为大于等于1且步长为1的整数,相应地,目标位置为目标标签位图中的第用户标识个数据位。例如,用户标识为i,则该用户的用户标签记录所对应的目标位置为目标标签位图中的第i个数据位。[0044]应当指出,虽然图3中将步骤S320、S330绘制为顺序执行,但是实际上,步骤S320、S330并不存在严格的执行顺序。优选地,为了节省计算时间,步骤S320和S330可以并行执行。[0045]在步骤S330中确定了用户标签记录在目标标签位图中的目标位置后,执行步骤S340,将目标标签位图中的目标位置处的值设置为1,从而将用户标签记录从第一数据存储装置存储到第二数据存储装置中。实际上,标签位图中各数据位的取值只有〇和1两种,用于表示该数据位所对应的用户是否具有该标签,若数据位的取值为1,则表明该数据位所对应的用户具有该标签;若数据位的取值为〇,则表明该数据位所对应的用户不具有该标签。[0046]为了便于理解,以下以前述表1中用户标签记录为例,来说明本发明的用户标签存储方法300的实施过程。[0047]在第二数据存储装置120中,每一个标签对应于一个标签位图,每个标签位图所包括的数据位的数量等于用户的总数量。由于表1中涉及2+4+6=12个标签即男、女、专科、本科、硕士、博士、水瓶座、双鱼座、天蝎座、天秤座、白羊座、双子座分别对应于一个标签位图),因此,表1中的数据对应于12个标签位图。标签男、女、硕士、水瓶座、双鱼座所对应的标签位图如下所示,其他标签的标签位图的结构与其类似。[0053]第一条用户标签记录的用户标识为1,标签为男、硕士、水瓶座。首先,根据其标签来确定该用户标签记录所对应的目标标签位图。每一个标签对应于一个标签位图,相应地,目标标签位图为标签位图-男、标签位图-硕士、以及标签位图-水瓶座。随后,根据用户标识来确定该用户标签记录在各目标标签位图中的目标位置,由于第一条用户标签记录的用户标识为1,且表1中的用户标识为从1开始的步长为1的整数,因此,目标位置与用户标识的值相同,即为目标标签位图中的第1个数据位。最后,将目标标签位图的第1个数据位的值设置为1,也即,将标签位图-男、标签位图-硕士、标签位图-水瓶座的第1个数据位的值均设置为1,从而将第一条用户标签记录存储于第二数据存储装置120中。将第一条用户标签记录存储于第二数据存储装置中后,标签位图-男、标签位图-硕士、标签位图-水瓶座如下所示。[0056][0057]第二条用户标签记录的用户标识为2,标签为女、硕士、双鱼座。首先,根据其标签来确定该用户标签记录所对应的目标标签位图。每一个标签对应于一个标签位图,相应地,目标标签位图为标签位图-女、标签位图-硕士、以及标签位图-双鱼座。随后,根据用户标识来确定该用户标签记录在各目标标签位图中的目标位置,由于第二条用户标签记录的用户标识为2,且表1中的用户标识为从1开始的步长为1的整数,因此,目标位置与用户标识的值相同,即为目标标签位图中的第2个数据位。最后,将目标标签位图的第2个数据位的值设置为1,也即,将标签位图-女、标签位图-硕士、标签位图-双鱼座的第2个数据位的值均设置为1,从而将第二条用户标签记录存储于第二数据存储装置120中。将第二条用户标签记录存储于第二数据存储装置中后,标签位图-女、标签位图-硕士、标签位图-双鱼座如下所示。[0061]根据一种实施例,第二数据存储装置120中还存储有多个人群位图,每个人群为一个或多个标签的逻辑运算组合。逻辑运算例如包括与AND、或OR、非NOT等,但不限于此。每个人群对应于一个人群位图,所有人群位图所包括的数据位的数量相同,均等于用户的总数量。人群位图中的每一位数据用户标识一个用户是否属于该人群,也即,是否具有该人群所对应的标签。每一个数据位的取值包括0和1两种,若数据位的取值为1,则表明该数据位所对应的用户属于该人群;若数据位的取值为0,则表明该数据位所对应的用户不属于该人群。例如,定义一个人群为“高学历男性”,高学历包括硕士及博士,则该人群与标签的逻辑运算关系为:人群=硕士OR博士AND男性。应当指出,人群位图可以由一个或多个标签位图而得出,人群位图可能与某个标签位图完全相同。例如,定义一个人群为“男性”,则该人群的人群位图实际上与标签男所对应的标签位图相同。因此,人群位图与标签位图的关系并非相互对立,而是有所交叉。此处定义人群位图的意义在于方便后期用户画像的计算。本发明在计算用户画像时,计算的是某一特定人群中具有特定标签的用户的数量。用户画像的计算将于下文中详述。[0062]根据一种实施例,方法300还包括人群位图的计算方法,即包括以下步骤S350〜S370步骤S350〜S370在图3中未示出)。[0063]在步骤S350中,确定人群中的每一个标签所对应的标签位图。例如,定义一个人群为“高学历男性”,高学历包括硕士及博士,则该人群包括硕士、博士、男性三个标签,相应地,各标签所对应的标签位图为标签位图-硕士、标签位图-博士和标签位图-男性。[0064]随后,在步骤S360中,根据人群中各标签的逻辑运算关系来确定各标签位图之间的位操作符。例如,定义一个人群为“高学历男性”,高学历包括硕士及博士,则该人群与标签的逻辑运算关系为:人群=硕士OR博士AND男性。各标签位图之间的位操作符与人群中各标签的逻辑运算关系一致,位操作符例如可以包括按位与(、按位或(I、按位非(〜)等,但不限于此。因此,基于上述人群与标签的运算关系:人群=硕士OR博士AND男性,可以得出,标签位图-硕士与标签位图-博士之间的位操作符为按位或,标签位图-硕士与标签位图-博士进行按位或所得的结果位图与标签位图-男性之间的位操作符为按位与。[0065]随后,在步骤S370中,根据位操作符对各标签位图进行位运算,以得到该人群所对应的人群位图。例如,标签位图-硕士(简记为Bitmapl、标签位图-博士(简记为Bitmap2、标签位图-男性简记为Bitmap3如下所示:[0069]则人群“高学历男性”所对应的人群位图为Bitmap2IBitmap3Bitmap1。经过计算,得出该人群所对应的人群位图如下所示:[0071]根据一种实施例,第二数据存储装置120中的位图(包括标签位图和人群位图)采用RoaringBitmap压缩算法存储,从而进一步节省存储空间,提高存储效率。[0072]基于第二数据存储装置120中的标签位图和人群位图,可以方便地实现用户画像的计算。图4示出了根据本发明一个实施例的用户画像计算系统400的示意图。如图4所示,用户画像计算系统400包括第二数据存储装置120、计算设备420和查询终端430。如前所述,第二数据存储装置120中存储有多个标签位图和多个人群位图。除此之外,第二数据存储装置120中还存储有多条属性记录,每条属性记录包括属性标识和该属性所对应的多个标签,也即,属性记录用于表示属性与标签的对应关系。例如,属性“性别”对应于标签“男”和标签“女”;属性“星座”对应于标签“水瓶座”“双鱼座”“白羊座”等12个标签。计算设备420的结构例如可以与图2所示的计算设备200的结构类似,只是将其中的用户标签存储应用228替换为用户画像计算应用228。查询终端430例如可以是桌面台式计算机、便携式笔记本计算机等个人计算机,也可以是手机、平板电脑、多媒体设备、电子阅读设备、智能可穿戴设备等移动终端,但不限于此。[0073]计算设备420可以接收查询终端430发起的查询请求,根据该查询请求来从第二数据存储装置120中获取相应的标签位图和人群位图,根据标签位图和人群位图计算出用户画像,并将计算得出的用户画像返回给查询终端430。同时,计算设备420也可以将计算得出的用户画像以人群位图的格式存储于第二数据存储装置120中,以实现对查询终端430后续发起的类似的查询请求进行快速响应。[0074]图5示出了根据本发明一个实施例的用户画像计算方法500的流程图。方法500适于在计算设备例如前述计算设备420中执行。如图5所示,方法500始于步骤S510。[0075]在步骤S510中,接收用户画像查询请求,查询请求包括目标人群标识和目标属性标识。查询请求由图4所示的查询终端430发起。例如,某个查询请求的目标人群标识为“高学历男性”,目标属性标识为“星座”,则该查询请求想要获取高学历男性人群的星座画像,即高学历男性人群中各星座所包括的用户的数量。[0076]随后,在步骤S520中,根据目标人群标识来确定目标人群位图。如前所述,在第二数据存储装置120中,每一个人群对应于一个人群位图。因此,根据目标人群标识即可确定其所对应的目标人群位图。例如,目标人群标识为“高学历男性”,则目标人群位图为人群位图-高学历男性。[0077]随后,在步骤S530中,根据目标属性标识来确定多个目标标签,根据目标标签来确定多个目标标签位图。如前所述,第二数据存储装置120中存储有多条属性记录,每条属性记录包括属性标识和该属性所对应的多个标签;另外,每一个标签对应于一个标签位图。因此,通过查询属性记录,可以得出目标属性标识所对应的目标标签;根据目标标签,可以确定相应的目标标签位图。例如,目标属性标识为“星座”,则相应的目标标签为水瓶座、双鱼座、白羊座等12个标签,相应的目标标签位图为标签位图-水瓶座、标签位图-双鱼座、标签位图-白羊座等12个标签位图。[0078]应当指出,虽然图5中将步骤S520、S530绘制为顺序执行,但是实际上,步骤S520、S530并不存在严格的执行顺序。优选地,为了节省计算时间,步骤S520和S530可以并行执行。[0079]随后,在步骤S540中,分别将每一个目标标签位图与目标人群位图进行位运算,得到每一个目标标签所对应的结果位图。位运算例如包括按位与⑻、按位或(I、按位非〜)等,但不限于此。应当指出,具体将目标标签位图与目标人群位图进行何种位运算,需要根据查询请求中所指出的位运算关系来确定。在默认情况下,位运算为按位与⑻。例如,分别将12个目标标签位图与目标人群位图进行按位与运算,得到12个结果位图。标签位图-水瓶座(目标标签位图)、人群位图-高学历男性(目标人群位图)以及将标签位图-水瓶座与人群位图-高学历男性进行按位与运算所得的结果位图1的示例如下所示:[0083]经过步骤S540,可以得到多个结果位图,每一个结果位图对应于一个目标标签。随后,在步骤S550中,根据结果位图来确定目标人群中具有各目标标签的用户的数量。根据一种实施例,将一个结果位图中所包括的1的数量作为具有该结果位图所对应的目标标签的用户的数量。例如,上述结果位图1对应于目标标签水瓶座,该结果位图中仅包括一个1仅有第一个数据位的值为1,则目标人群中水瓶座的用户仅有1个。类似地,可以统计出其他目标标签的用户数量。[0084]根据一种实施例,在步骤S550后,还包括步骤S560步骤S560在图5中未示出)。在步骤S560中,将步骤S550中所得出的各目标标签的用户的数量返回给查询终端430,并在查询终端430的屏幕上进行展示。应当指出,本领域技术人员可以根据实际需要设计任意的展示方式,例如,以文字方式展示、以图像渲染展示、以弹窗方式展示等等,本发明对用户画像在查询终端430上的展示方式不做限制。[0085]根据本发明的技术方案,在第二数据存储装置120中采用位图结构包括标签位图和人群位图)来存储用户标签,位图结构可以节省大量的存储空间。进一步地,第二数据存储装置中的位图采用RoaringBitmap等压缩算法存储,从而进一步节省存储空间,提高存储效率。此外,位图结构可以实现高效的运算,通过各位图之间的与、或、非等位运算以及位图内元素的求和等,可以快速计算出用户画像。位图的计算时间受用户数量的影响不大,不会随着用户数量的增加而导致计算性能降低,从而使得用户画像的计算效率得到保证。[0086]这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。[0087]在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质包括易失性和非易失性存储器和或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的用户标签存储方法。[0088]以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。[0089]在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。[0090]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。[0091]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。[0092]本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。[0093]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。[0094]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。[0095]此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。[0096]如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。[0097]尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

权利要求:1.一种用户标签存储方法,在计算设备中执行,所述计算设备分别与第一数据存储装置和第二数据存储装置连接,所述第一数据存储装置中存储有多条用户标签记录,所述第二数据存储装置中存储有多个标签位图,其中,每个标签对应于一个标签位图,标签位图中的每一位数据用于表示一个用户是否具有该标签,所述方法包括:从第一数据存储装置中获取一条用户标签记录,所述用户标签记录包括用户标识和该用户的一个或多个标签;根据所述标签来确定所述用户标签记录所对应的一个或多个目标标签位图;根据所述用户标识来确定所述用户标签记录在各目标标签位图中的目标位置;将各目标标签位图中的目标位置处的值设置为1,从而将所述用户标签记录从第一数据存储装置存储到第二数据存储装置中。2.如权利要求2所述的方法,其中,所述用户标识为大于等于1的整数,所述根据所述用户标识来确定所述用户标签记录在各目标标签位图中的目标位置的步骤包括:所述目标位置为目标标签位图中的第用户标识个数据位。3.如权利要求1或2所述的方法,其中,所述第二数据存储装置中还存储有多个人群位图,所述人群为一个或多个标签的逻辑运算组合,每个人群对应于一个人群位图,所述方法还包括:确定人群中的每一个标签所对应的标签位图;根据人群中各标签的逻辑运算关系来确定各标签位图之间的位操作符;根据所述位操作符对各标签位图进行位运算,以得到所述人群所对应的人群位图。4.如权利要求3所述的方法,其中,所述逻辑运算关系包括与、或、非,所述位操作符包括按位与、按位或、按位非。5.如权利要求1-4中任一项所述的方法,其中,所述第二数据存储装置中的位图采用RoaringBitmap压缩算法存储。6.—种用户画像计算方法,在计算设备中执行,所述计算设备与第二数据存储装置连接,所述第二数据存储装置中存储有多条属性记录、多个标签位图以及多个人群位图,其中,属性记录包括属性标识和该属性所对应的多个标签,标签位图中的每一位数据用于表示一个用户是否具有该标签,人群位图中的每一位数据用于表示一个用户是否属于该人群,所述方法包括:接收用户画像查询请求,所述查询请求包括目标人群标识和目标属性标识;根据所述目标人群标识来确定目标人群位图;根据所述目标属性标识来确定多个目标标签,根据所述目标标签来确定多个目标标签位图;分别将每一个目标标签位图与所述目标人群位图进行位运算,得到每一个目标标签所对应的结果位图;根据所述结果位图来确定目标人群中具有各目标标签的用户的数量。7.如权利要求6所述的方法,其中,根据所述结果位图来确定目标人群中具有各目标标签的用户的数量的步骤包括:将一个结果位图中所包括的1的数量作为目标人群中具有该结果位图所对应的目标标签的用户的数量。8.如权利要求6或7所述的方法,其中,所述位运算包括按位与、按位或、按位非。9.一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-5中任一项所述的用户标签存储方法和或如权利要求6-8中任一项所述的用户画像查询方法的指令。10.—种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-5中任一项所述的用户标签存储方法和或如权利要求6-8中任一项所述的用户画像查询方法。

百度查询: 北京腾云天下科技有限公司 用户标签存储方法、用户画像计算方法及计算设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。