CN108090171A - 一种面向精准广告投放的时间聚合查询方法 - Google Patents
一种面向精准广告投放的时间聚合查询方法 Download PDFInfo
- Publication number
- CN108090171A CN108090171A CN201711338950.5A CN201711338950A CN108090171A CN 108090171 A CN108090171 A CN 108090171A CN 201711338950 A CN201711338950 A CN 201711338950A CN 108090171 A CN108090171 A CN 108090171A
- Authority
- CN
- China
- Prior art keywords
- user
- time
- bitmap
- candidate
- section
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000002776 aggregation Effects 0.000 title claims abstract description 9
- 238000004220 aggregation Methods 0.000 title claims abstract description 9
- 238000007906 compression Methods 0.000 claims description 20
- 230000006835 compression Effects 0.000 claims description 17
- 238000005457 optimization Methods 0.000 claims description 9
- 238000010845 search algorithm Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 12
- 238000012216 screening Methods 0.000 abstract 1
- 238000006062 fragmentation reaction Methods 0.000 description 6
- 238000013467 fragmentation Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0242—Determining effectiveness of advertisements
- G06Q30/0244—Optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0272—Period of advertisement exposure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0277—Online advertisement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种面向精准广告投放的时间聚合查询方法,包括:通过获取用户的在线时间数据,接收广告主的广告时段查询请求,根据广告主的广告投放时长、用户的在线时间数据筛选出有效在线时间区间,再对有效在线时间区间中的所有时间点构建索引结构,然后对构建好的索引结构进行压缩。根据广告主的广告投放时长,结合用户在线时间数据以及所有时间点的索引结构,查询满足广告投放时长并且能够让最多的用户同时在线的最佳广告投放时段。最终实现的功能是能够利用互联网及移动互联网媒体中海量的用户在线时间数据,根据广告主提供的广告投放时间长短,准确地、灵活地确定最佳广告投放时间段,使得该广告时间段上的广告受众最大化,提高广告投放的经济效益。
Description
技术领域
本发明属于时态数据库(Temporal Database)领域,主要解决互联网和移动互联网媒体在投放广告时,利用碎片化的用户历史在线时间数据精准确定最佳广告时段的问题。
背景技术
在广告行业,广告主经常需要利用各种媒体平台进行大规模的广告投放。广告投放时段的选择对广告投放的最终经济效益有着重大的影响。如何确定合适的广告投放时段让更多的目标消费者看到这条广告经常是广告主投放广告时考虑最多的问题。传统的广告投放模式是根据各种媒体平台的“黄金时间”(即历史收视率或者用户历史活跃度最高的时段)来购买大段时间的广告位进行广告投放。但在当前的互联网与移动互联网的背景下,人们更多地使用电脑、手机等网络设备进行社交和娱乐活动,并在各个网络媒体平台之间频繁地进行切换,如浏览新闻、刷微博、看视频、线上购物等等,这就造成了人们线上活跃时间的碎片化,此时传统的粗放型广告投放模式已经不再具备优势。例如用户在某个网络媒体平台上可能仅仅在线一小段时间,在线也不频繁的情况下,大段的广告投放时间无疑会造成广告成本的浪费。基于此,本专利提出了一种面向精准广告投放的时间聚合查询方法,用于解决互联网及移动互联网媒体在投放广告时利用碎片化的用户历史在线时间数据精准确定最佳广告时段的问题。
在目前的工业界,利用碎片化的海量用户在线时间数据自动生成最优广告投放时段的方法尚未被发明。在国外,Google、facebook等搜索和社交平台的广告投放时段是由广告主自己设定的,媒体平台只负责将广告投放在合适的位置。这种方式的局限在于没有利用用户的历史在线时间数据,因为广告主不知道哪段时间最适合投放广告,广告主可能会盲目地追求更长的广告时段以覆盖更多的用户的在线活跃时段,这将导致广告主浪费过多的广告经费,无法最大化广告投放的经济效益。在国内,微信、微博等社交媒体平台针对广告展示的具体时段,是大致根据用户最活跃的时间段来确定。例如微信朋友圈广告平台、微博营销平台的广告发布时间段的选择时,会选择在中午11:30至14:00之间发布,因为这时候是人们的午休时间,这个时段一般都看微信朋友圈、刷微博,所以广告在这个时间段发布会获得不错的浏览量和点击量。但是,在现实生活中,移动社交平台上很多用户的持续在线时间段很短,并且这些时间段分布都非常碎片化,稀疏化。比如用户的活跃时间虽然大范围在11:30至14:00之间,但是在线的持续时间段可能只有11:30~11:35、13:10~13:13、13:30~13:34。倘若广告的投放时段过长(如2小时),则无法精准覆盖用户的活跃时间,并且会浪费广告成本。另外,对于那些无法承担长时段广告费用的小成本广告,例如其投放时间是几分钟或者十几秒钟,目前还没有合适的方案使投放小成本广告的经济效益最大化(即投放短时间的广告,使该广告的受众最大化)。
确定最优广告时段问题的本质是根据每个用户的活跃时间段数据找到最佳广告投放时间段,需要对大量时序数据进行查询处理。因此该问题属于时态数据库的查询处理范畴。
发明内容
本发明要克服当前广告投放时间段不灵活、经济效益低、不能根据广告主提供的投放时间长短实时调整最佳广告投放时间段,使广告受众最大化的问题,提供一种精准广告投放的时间聚合查询方法。
为了能够更有效地解决该问题,为互联网和移动互联网媒体提供精准广告投放服务。本发明提出了一种基于bitmap索引结构的时间聚合查询技术,能够有效地解决上述三个问题。本发明最终实现的功能是能够根据海量的用户历史在线时间数据,以及广告主提供的广告投放持续时间,为广告主确定最佳的广告投放时段,保证该时段下看到这条广告的用户数最大化,进而提高广告投放的经济效益。
本发明提供了一种面向精准广告投放的时间聚合查询方法,包括如下步骤:
步骤1.建立bitmap索引结构
首先通过输入所有用户的在线区间数据和广告投放时长,给每个用户标记一个用户序号,并得到所有用户区间的开始时刻和结束时刻集合。给每个时刻分配一个bitmap,判断每一个用户的在线时间区间是否包含该时刻,如果该用户的某一在线时间区间能够覆盖该时刻,那么就把该用户的序号位置上的bit值记为true,如果不包含,则记为false。关于bitmap索引结构的详细描述如下:
表1列举了索引结构构建过程中使用的符号,如下所示:
表1建立bitmap索引结构符号列表
1.1所有时刻集合:
所有时刻集合包含了所有用户在线时间区间的I.start和I.end.并且集合中的每个时刻有且只有一个。这样可以避免在给每个时刻构建bitmap索引时,发生重复构建,造成构建索引结构效率底下的情况。
1.2用户序号
用户序号主要用来作为bitmap上每个bit的位置。某一时刻的bitmap的下标对应的bit值表示该序号位置上的用户是否存在某个在线时间区间包含这一时刻。存在则记为true,不存在则记为false。
步骤2.压缩bitmap索引结构
上一个步骤中构建好的bitmap索引结构存在如下缺点。(1)存储空间消耗巨大,对50000条用户在线时间记录构建bitmap索引所消耗的存储空间大概是1个G以上。(2)会拖慢接下去的查询算法的时间。查询算法中需要得到其中两个时刻的bitmap做按位与(&)操作的结果resBitMap。并取出resBitMap中bit值为true的bit位置上的用户,加入候选用户集。如果不做压缩操作,则需要对resBitMap的上万个bit做一次遍历,而这样会大大降低查询的时间效率。
基于此,很有必要对步骤1中构建好的bitmap索引结构进行步骤2的压缩bitmap索引结构操作。在压缩过程中,把bitmap中的连续bit值相同的部分作为一个压缩单元,每个压缩单元由bit值和bit值的数量构成。关于压缩bitmap索引结构的详细描述如下表所示:
表2列举了压缩bitmap索引结构过程中使用的符号,如下所示:
符号 | 意义 |
Time | 某一用户的在线区间的开始时刻或者结束时刻 |
CompBitmap | 某一时刻对应的压缩后的bitmap |
CompBitmap.Uniti | CompBitmap中的第i个压缩单元 |
Uniti.bit | 第i个压缩单元的bit值 |
Uniti.count | 第i个压缩单元的bit值的数量 |
表2压缩bitmap索引过程符号列表
步骤3.查询
表3列举了查询步骤中使用的符号,如下所示:
表3查询方法符号列表
为了精准确定最佳广告时间段,需要进行以下四个步骤的操作:
3.1获取候选时间区间和候选用户集合
这一步中,首先对包含所有用户在线时间区间的开始时刻和终止时刻集合allTimeArray按时间顺序,从小到大进行排序Time1、Time2、…、Timen;再对排好序的所有时刻sortedTimeArray进行遍历,当遍历到的时刻是某用户时间区间的开始时刻startTime时,从这个开始时刻startTime往后找到满足最小广告持续时间duration的第一个时刻afterTime;
那么候选时间区间就是I=[startTime,afterTime],对这两个时刻对应的CompBitMap做压缩与操作,得到与操作的结果resBitMap;最后遍历resBitMap的每一个bit值,找到bit值为true用户,将其加入候选用户集合preUserSet;
3.2过滤候选用户集合中的假用户
当完成第一个步骤后,需要通过计算来判断候选用户集合preUserSet中每个用户是否有区间完全覆盖候选区间I,如果其中的某个用户没有区间能够完全覆盖候选区间I=[startTime,afterTime],那么这个用户就是假用户fakeUser,需要从候选用户集合preUserSet中把它过滤掉。
这一步中的过滤方法是:
首先给候选用户集合preUserSet中的每一个用户添加一个index变量,并把它初始化为0。对每一个用户的区间集合intervals,从索引号为index的区间userInterval开始,判断它是否能覆盖I.startTime,(1)若userInterval不能覆盖I.startTime,index计数加一,并判断userInterval是否整个都在I.afterTime的后面。若是,则该用户是假用户,改变User.index=index,然后结束对该用户的区间集合的遍历。若否,继续对该用户的下一个userInterval进行判断。(2)若userInterval能覆盖I.startTime,继续判断它能否覆盖I.afterTime。若能,则该用户是真用户,改变User.index=index,结束对该用户的区间集合的遍历。若不能,则该用户是假用户。
通过上述过滤方法,就能够过滤掉候选用户集合preUserSet中的假用户。
3.3优化候选时间区间
当完成前两个步骤后,接下去遍历找到sortedTimeArray中startTime后的第二个时刻afterTime2。重复步骤一和步骤二的计算,再次得到[startTime,afterTime2]的候选用户集合folUserSet。
比较folUserSet和preUserSet。如果folUserSet.size=preUserSet.size,那么将I.afterTime1替换成I.afterTime2,然后继续找到sortedTimeArray中startTime后的第三个时刻afterTime3,重复步骤一和步骤二的运算。直到候选用户集合folUserSet.size<preUserSet.size。结束比较步骤,确定优化后的时间区间I。
然后再对优化后的时间区间做调整,对那些候选用户集合preUserSet相同并且存在交集的时间区间I进行区间合并。
由上述步骤可以确定以startTime作为开始时刻的最优区间I和其对应的候选用户集合preUserSet。
3.4最优方案选择
通过第三步得到所有候选方案后,再判断所有方案中的候选用户集合的用户数量是否最大,进一步确定最优的广告投放时间方案。同时也可以根据广告主的需要,确定前k个在线用户数量最大的广告投放时间方案。
本发明拟解决的问题是希望能够利用互联网及移动互联网媒体中海量的用户在线时间数据,根据广告主提供的广告投放时间长短,精准、灵活地确定最佳广告时间,使得该广告时间段的在线用户数量最大化,让广告投放的经济效益最大化。
本发明的优点在于:
(1)能够满足广告主对广告投放时间的需求,摆脱了互联网媒体原始广告投放模式对广告时间的约束,使得短时间、碎片化的广告投放新模式成为可能。
(2)能够实现广告投放的经济效益最大化。相比于传统广告的在长时间跨度上的粗犷式投放所造成的广告成本浪费,本发明实现了让广告时间段上的实时在线受众最大化。使得广告投放的精度更加准确、经济效益更加明显。
(3)能够在较快时间之内查询得到最优的广告投放时间。本发明通过构造和压缩bitmap索引结构,并利用相应的查询方法,能够将查询花费的时间大大节省,相比纯粹的暴力方法的查询快了2个数量级。
附图说明
图1是本发明方法的流程图;
图2是本发明一实施例示出的用户的在线时间区间在时间轴上的示意图;
图3是本发明一实施例示出的广告投放时段查询的最多用户在线的时段示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种面向精准广告投放的时间聚合查询方法,该方法用于最佳广告时段的查询服务,查询流程(如图1所示)。本实施例提供的方法流程包括:假设某移动新闻媒体App接到一个广告投放需求,广告投放时间至少为3分钟。广告主要求在该广告时间内,使看到这条广告的用户数量最大化。
新闻媒体APP在对用户一天之内的软件使用情况进行收集,得到所有用户一天时间之内的在线时间数据(如表4所示)后,开始利用本发明的查询方法,查询广告投放的最佳时间区间和最大的用户数量。
表4一天之内用户使用App的在线时间数据
步骤1.建立bitmap索引结构
首先通过输入所有用户的在线区间数据和广告投放时长,给每个用户标记一个用户序号,并得到所有用户区间的开始时刻和结束时刻集合,将所有排布在时间轴上(如图2所示)。给每个时刻分配一个bitmap,判断每一个用户的在线时间区间是否包含该时刻,如果该用户的某一在线时间区间能够覆盖该时刻,那么就把该用户的序号位置上的bit值记为true,如果不包含,则记为false。将每个时刻映射成一个bitmap,bitmap上每个bit位置表示该位置上的用户在该时刻是否在线(如表5所示)。
步骤2.压缩bitmap索引结构
对步骤1中构建好的bitmap索引结构进行压缩操作。在压缩过程中,把bitmap中的连续bit值相同的部分作为一个压缩单元,每个压缩单元由bit值和bit值的数量构成(如表6所示)。压缩后的bitmap能够节省存储空间以及遍历bitmap的时间。
步骤3.查询
为了精准确定最佳广告时间段,需要进行以下四个步骤的操作:
3.1获取候选时间区间和候选用户集合
这一步中,首先对包含所有用户在线时间区间的开始时刻和终止时刻集合按时间顺序从小到大进行排序,排序后变成3、4、…、39。再对排好序的所有时刻sortedTimeArray进行遍历,当遍历到的时刻是某用户时间区间的开始时刻3时,从这个开始时刻往后找到满足最小广告持续时间duration的第一个时刻6。
那么候选时间区间就是I=[3,6],对这两个时刻对应的CompBitMap做压缩与操作,得到与操作的结果resBitMap[2:0,1:1,1:0]。最后遍历resBitMap的每一个bit值,找到bit值为true用户,将其加入候选用户集合{C}。
3.2过滤候选用户集合中的假用户
当完成第一个步骤后,需要通过计算来判断候选用户集合{C}中每个用户是否有区间完全覆盖候选区间[3,6],如果其中的某个用户没有区间能够完全覆盖候选区间[3,6],那么这个用户就是假用户fakeUser,需要从候选用户集合{C}中把它过滤掉。通过上述过滤方法,可以验证用户C是有效用户,因此无需过滤。
3.3优化候选时间区间
当完成前两个步骤后,接下去遍历找到sortedTimeArray中3后的第二个时刻7。重复步骤一和步骤二的计算,再次得到[3,7]的候选用户集合folUserSet。
比较folUserSet和preUserSet。显然folUserSet.size<preUserSet.size。结束比较步骤,确定优化后的时间区间[3,6]。
然后再对优化后的时间区间做调整,对那些候选用户集合preUserSet相同并且存在交集的时间区间I进行区间合并。
由上述步骤可以确定以3作为开始时刻的最优区间[3,6]和其对应的候选用户集合{C}。重复执行步骤可以得到所有候选最有区间及其对应的候选用户集合(如表7所示)。如[3,6]→{C},[4,7]→{A},…,[31,36]→{A,B,D}。
表7
I | preUserSet |
[3,6] | {C} |
[4,7] | {A} |
[7,12] | {B,D} |
[17,25] | {A} |
[19,22] | {A,B,C} |
[29,36] | {D} |
[30,36] | {A,D} |
[31,36] | {A,B,D} |
表7显示了所有用户有效区间的开始时间点所对应的候选最佳时段及其候选最大覆盖用户集合。
3.4最优方案选择
通过第三步得到所有候选方案后,再判断所有方案中的候选用户集合的用户数量是否最大,进一步确定最优的广告投放时间方案,[19,22]和[31,36]这两个时间段上在线的用户数量最大(如图3所示),在该实施例中最佳的广告投放时间是[19,22]和[31,36](如表8所示)。同时也可以根据广告主的需要,确定前k个在线用户数量最大的广告投放时间方案。
表8
optInterval | preUserSet |
[19,22] | {A,B,C} |
[31,36] | {A,B,D} |
表8显示了广告投放的最佳时段及其对应的最大覆盖用户集合。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
Claims (1)
1.一种面向精准广告投放的时间聚合查询方法,包括如下步骤:
步骤1.建立bitmap索引结构
首先通过输入所有用户的在线区间数据和广告投放时长,给每个用户标记一个用户序号,并得到所有用户区间的开始时刻和结束时刻集合;给每个时刻分配一个bitmap,判断每一个用户的在线时间区间是否包含该时刻,如果该用户的某一在线时间区间能够覆盖该时刻,那么就把该用户的序号位置上的bit值记为true,如果不包含,则记为false;关于bitmap索引结构的详细描述如下:
表1列举了索引结构构建过程中使用的符号,如下所示:
表1
1.1建立所有时刻集合:
所有时刻集合包含了所有用户在线时间区间的I.start和I.end.并且集合中的每个时刻有且只有一个;这样可以避免在给每个时刻构建bitmap索引时,发生重复构建,造成构建索引结构效率底下的情况;
1.2建立用户序号
用户序号主要用来作为bitmap上每个bit的位置;某一时刻的bitmap的下标对应的bit值表示该序号位置上的用户是否存在某个在线时间区间包含这一时刻;存在则记为true,不存在则记为false;
步骤2.压缩bitmap索引结构
上一个步骤中构建好的bitmap索引结构存在如下缺点;(1)存储空间消耗巨大,对50000条用户在线时间记录构建bitmap索引所消耗的存储空间大概是1个G以上;(2)会拖慢接下去的查询算法的时间;查询算法中需要得到其中两个时刻的bitmap做按位与(&)操作的结果resBitMap;并取出resBitMap中bit值为true的bit位置上的用户,加入候选用户集;如果不做压缩操作,则需要对resBitMap的上万个bit做一次遍历,而这样会大大降低查询的时间效率;
基于此,很有必要对步骤1中构建好的bitmap索引结构进行步骤2的压缩bitmap索引结构操作;在压缩过程中,把bitmap中的连续bit值相同的部分作为一个压缩单元,每个压缩单元由bit值和bit值的数量构成;关于压缩bitmap索引结构的详细描述如下表所示:
表2列举了压缩bitmap索引结构过程中使用的符号,如下所示:
表2
步骤3.查询
表3列举了查询步骤中使用的符号,如下所示:
表3
为了精准确定最佳广告时间段,进行以下四个步骤的操作:
3.1获取候选时间区间和候选用户集合
这一步中,首先对包含所有用户在线时间区间的开始时刻和终止时刻集合allTimeArray按时间顺序,从小到大进行排序Time1、Time2、…、Timen;再对排好序的所有时刻sortedTimeArray进行遍历,当遍历到的时刻是某用户时间区间的开始时刻startTime时,从这个开始时刻startTime往后找到满足最小广告持续时间duration的第一个时刻afterTime;
那么候选时间区间就是I=[startTime,afterTime],对这两个时刻对应的CompBitMap做压缩与操作,得到与操作的结果resBitMap;最后遍历resBitMap的每一个bit值,找到bit值为true用户,将其加入候选用户集合preUserSet;
3.2过滤候选用户集合中的假用户
当完成第一个步骤后,需要通过计算来判断候选用户集合preUserSet中每个用户是否有区间完全覆盖候选区间I,如果其中的某个用户没有区间能够完全覆盖候选区间I=[startTime,afterTime],那么这个用户就是假用户fakeUser,需要从候选用户集合preUserSet中把它过滤掉;
这一步中的过滤方法是:
首先给候选用户集合preUserSet中的每一个用户添加一个index变量,并把它初始化为0;对每一个用户的区间集合intervals,从索引号为index的区间userInterval开始,判断它是否能覆盖I.startTime,(1)若userInterval不能覆盖I.startTime,index计数加一,并判断userInterval是否整个都在I.afterTime的后面;若是,则该用户是假用户,改变User.index=index,然后结束对该用户的区间集合的遍历;若否,继续对该用户的下一个userInterval进行判断;(2)若userInterval能覆盖I.startTime,继续判断它能否覆盖I.afterTime;若能,则该用户是真用户,改变User.index=index,结束对该用户的区间集合的遍历;若不能,则该用户是假用户;
通过上述过滤方法,就能够过滤掉候选用户集合preUserSet中的假用户;
3.3优化候选时间区间
当完成前两个步骤后,接下去遍历找到sortedTimeArray中startTime后的第二个时刻afterTime2;重复步骤一和步骤二的计算,再次得到[startTime,afterTime2]的候选用户集合folUserSet;
比较folUserSet和preUserSet;如果folUserSet.size=preUserSet.size,那么将I.afterTime1替换成I.afterTime2,然后继续找到sortedTimeArray中startTime后的第三个时刻afterTime3,重复步骤一和步骤二的运算;直到候选用户集合folUserSet.size<preUserSet.size;结束比较步骤,确定优化后的时间区间I;
然后再对优化后的时间区间做调整,对那些候选用户集合preUserSet相同并且存在交集的时间区间I进行区间合并;
由上述步骤可以确定以startTime作为开始时刻的最优区间I和其对应的候选用户集合preUserSet;
3.4最优方案选择
通过第三步得到所有候选方案后,再判断所有方案中的候选用户集合的用户数量是否最大,进一步确定最优的广告投放时间方案;同时也可以根据广告主的需要,确定前k个在线用户数量最大的广告投放时间方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338950.5A CN108090171A (zh) | 2017-12-14 | 2017-12-14 | 一种面向精准广告投放的时间聚合查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338950.5A CN108090171A (zh) | 2017-12-14 | 2017-12-14 | 一种面向精准广告投放的时间聚合查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108090171A true CN108090171A (zh) | 2018-05-29 |
Family
ID=62175739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711338950.5A Pending CN108090171A (zh) | 2017-12-14 | 2017-12-14 | 一种面向精准广告投放的时间聚合查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090171A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461018A (zh) * | 2018-09-21 | 2019-03-12 | 北京智行者科技有限公司 | 广告投放方法及系统 |
CN112686738A (zh) * | 2021-01-20 | 2021-04-20 | 杭州网易再顾科技有限公司 | 一种对象展示方法、装置、电子设备及存储介质 |
CN117593055A (zh) * | 2023-11-21 | 2024-02-23 | 广州吴凡科技服务有限公司 | 一种基于大数据的广告效果智能分析方法及系统 |
CN117651165A (zh) * | 2023-10-20 | 2024-03-05 | 广州太棒了传媒科技有限公司 | 基于客户数据的视频推荐方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956872A (zh) * | 2016-04-18 | 2016-09-21 | 乐视控股(北京)有限公司 | 基于人群行业的精准广告投放方法及装置 |
-
2017
- 2017-12-14 CN CN201711338950.5A patent/CN108090171A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956872A (zh) * | 2016-04-18 | 2016-09-21 | 乐视控股(北京)有限公司 | 基于人群行业的精准广告投放方法及装置 |
Non-Patent Citations (1)
Title |
---|
BIN CAO: "BMRC:A Bitmap-Based Maximum Range Counting Approach for Temporal Data in Sensor Monitoring Networks", 《MDPI》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461018A (zh) * | 2018-09-21 | 2019-03-12 | 北京智行者科技有限公司 | 广告投放方法及系统 |
CN112686738A (zh) * | 2021-01-20 | 2021-04-20 | 杭州网易再顾科技有限公司 | 一种对象展示方法、装置、电子设备及存储介质 |
CN112686738B (zh) * | 2021-01-20 | 2023-10-13 | 杭州网易再顾科技有限公司 | 一种对象展示方法、装置、电子设备及存储介质 |
CN117651165A (zh) * | 2023-10-20 | 2024-03-05 | 广州太棒了传媒科技有限公司 | 基于客户数据的视频推荐方法及装置 |
CN117651165B (zh) * | 2023-10-20 | 2024-05-24 | 力恒信息科技(广州)有限公司 | 基于客户数据的视频推荐方法及装置 |
CN117593055A (zh) * | 2023-11-21 | 2024-02-23 | 广州吴凡科技服务有限公司 | 一种基于大数据的广告效果智能分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090171A (zh) | 一种面向精准广告投放的时间聚合查询方法 | |
CN103024017B (zh) | 一种社交网络重要目标及社区群体识别方法 | |
CN104572889B (zh) | 一种搜索词推荐方法、装置和系统 | |
CN102999588A (zh) | 一种多媒体应用的推荐方法和系统 | |
CN103455515B (zh) | Sns社区中的用户推荐方法和系统 | |
CN104881800A (zh) | 一种基于移动群智感知的激励机制实现方法 | |
CN100424690C (zh) | 一种在线广告的播放方法及系统 | |
CN103001994B (zh) | 好友推荐方法及装置 | |
CN105389713A (zh) | 基于用户历史数据的移动流量套餐推荐算法 | |
CN102236711B (zh) | 一种用于确定推广关键词所对应的展现信息的方法与设备 | |
CN106228371A (zh) | 一种基于交往频度和交往指数的超大规模用户的社交网络分析及家庭关系识别算法 | |
CN103838814A (zh) | 一种动态展示人脉图谱关系的方法 | |
CN103379158A (zh) | 一种社交网络中推荐好友信息的方法及系统 | |
CN103823844A (zh) | 社区问答服务中基于主客观上下文的问题转发系统和方法 | |
CN103049440A (zh) | 一种相关文章的推荐处理方法和处理系统 | |
CN104834695A (zh) | 基于用户兴趣度和地理位置的活动推荐方法 | |
CN101510856A (zh) | 一种sns网络中成员关系圈的提取方法和装置 | |
CN103390194A (zh) | 用户意图预测及推荐建议的方法、设备和系统 | |
CN107528761A (zh) | 一种微信公众号自动回复信息的方法和系统 | |
CN103853838B (zh) | 一种数据处理方法和装置 | |
CN106815260A (zh) | 一种索引建立方法及设备 | |
CN103116611A (zh) | 社交网络意见领袖识别方法 | |
CN103136705A (zh) | 一种人际关系热度统计方法 | |
CN103218407A (zh) | 一种基于兴趣图谱的推荐引擎 | |
Bendle | The structures and flows of a large tourist itinerancy network |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180529 |