TalkingData :如何做到30分钟内完成对数十亿受众数据的分析 | 会员专栏

2019 年 7 月 20 日 THU数据派


智能营销云(Smart Marketing Cloud,以下简称SMC),是TalkingData推出的数字化营销平台。依托TalkingData 及合作伙伴所提供的强大数据支撑,提供了一套从人群构建、客群洞察,再到同步投放、客观监测的一体化解决方案,帮助企业构建完整的数字化营销闭环。


一、受众分析需求及难点


SMC服务多个行业的广告主和广告代理,帮助他们对目标受众人群进行分析、洞察和触达。但是由于SMC汇集了包括一方企业数据、二方媒体数据和TalkingData自有数据在内的多源数据,数据量非常大;此外,为了对受众人群进行全面、深入的画像,TalkingData基于人口属性、移动端行为偏好等建立了拥有六大类别、800多个标签的标签体系,维度非常多。这对数据的处理分析提出了巨大的挑战。


在具体使用中,产品性能是企业非常重视的方面。为了提升SMC的性能,让用户能够快速、准确的实现目标受众洞察,我们从技术上对SMC的受众分析能力进行了三大方面的优化:


二、使用技术原理及方案


  • Bitmap计算


在SMC中,由于数据量巨大,我们对所有广告主构建的受众人群均会使用RoaringBitmap进行存储。由于RoaringBitmap只能存储整型数据,而我们需要处理的数据量在大多数情况下高达数十亿条,故我们将RoaringBitmap进行扩展,使之支持长整型数据。 


原生RoaringBitmap只支持int类型,最大数据存储量为2147483647,由于TalkingData设备数据量约80亿,已远远超过RoaringBitmap的存储范围,所以需要使用长整型来扩展RoaringBitmap。



以 set(long)方法为例,寻址方法大概如下代码所示:

public void set(long offset) {    int index = (int) (offset / max());    int value = (int) (offset % max());    bitmaps.get(index).set(value);}


扩展之后的RoaringBitmap,已经获得了比较好的存储和读取速度。但这还只是开始,随后还需要对这些人群数据进行多维度的分析和计算。


  • RocksDB加速计算


SMC的受众分析维度包含:人口属性维度、设备属性维度、商旅属性、App行为分析等。基于以上维度对某个广告受众人群包进行分析时,需要进行约10万次Bitmap的交并运算,此时系统CPU和I/O就成了瓶颈。于是我们采用RocksDB进行Bitmap的缓存,以减少I/O耗时。


RocksDB依靠大量灵活的配置,使之能针对不同的生产环境进行调优,包括直接使用内存、使用Flash、使用硬盘或者HDFS。支持使用不同的压缩算法,并且有一套完整的工具供生产和调试使用。


RocksDB优势如下:


  • 为需要存储TB级别数据到本地FLASH或者RAM的应用服务器设计;

  • 针对存储在高速设备的中小键值进行优化——支持存储在flash或者直接存储在内;

  • 性能随CPU数量线性提升,对多核系统友好。


RocksDB支持snappy、zlib、bzip2 lz4和lz4_hc压缩算法。对不同层的数据可以配置不同的压缩算法。一般来说,90%的数据保存在Lmax层。一个典型的安装可能是L0-L2层不配置压缩算法,中间层用snappy压缩算法,而Lmax层采用zlib压缩。使用RocksDB后,I/O性能显著提升,原来需要3个小时以上才能计算完成的任务,现在缩短到1.5小时即可计算完毕。


但这个时间仍然太长,让人无法忍受,于是我们想到对系统数据进行抽样,以加快运算速度。


  • 随机抽样算法


随机抽样是最为常用的算法之一,它最大的特点是能够通过抽取、计算较小的数据样本量,来尽可能客观的推断数据总体特征。


我们需要进行随机抽样且保持有序,当总设备量为n,需要随机挑选出m个设备,其中m < n。输出是[0 , n-1] 范围内m个随机整数的有序列表,不允许重复。从概率的角度说,我们希望得到没有重复的有序选择,其中每个选择出现的概率相等。简单来说就是从n个数中, 随机抽取m个数据,并保持有序。


轮流判断n个数组成的列表中每个数的概率(m/n),每次判断后n=n-1,若当前被判断的数被选择,则m=m-1,否则 m 不变。



实现方式:

public static Set<Long> random(long n,int m){    Set<Long> set = new TreeSet<Long>();    long remaining = n-1;    for (long i = 0; i<n ;i++){        if (Math.random() * remaining < m){            set.add(i);            m -= 1;        }        remaining -= 1;    }    return set;}


我们使用次方法从总设备量中随机抽取受众人群分析样本数据并加工成Bitmap。我们假设另此Bitmap为A,男性全量数据M,则计算X人群中的男性占比P的公式为:


采用随机抽样方式获得的占比结果还是会有一定偏差。经对比50组随机构建的受众人群包,对性别占比进行分析,相对误差率均未超过8%,在可接受范围之内。



经过随机抽样计算之后,Bitmap数据占用RocksDB存储显著减小,Bitmap计算效率显著提高,数十亿数据量的受众分析任务可在30分钟内计算完成。


基于以上这些优化,智能营销云可以快速完成对广告受众的分析,让广告主在整个广告投放过程中及时了解自己的目标受众特点以及分布情况,从而指导广告主及时对广告投放受众群体进行调整。


【会员企业】TalkingData 

TalkingData 成立于2011年,是国内领先的数据服务提供商。TalkingData秉承“数据改变企业决策,数据改善人类生活”的愿景,围绕TalkingData SmartDP数据智能平台(TalkingData数据中台)构建“连接、安全、共享”的数据智能应用生态,致力于用数据+科技的能力为合作伙伴创造价值,帮助商业企业和现代社会实现以数据为驱动力的智能化转型。


会员专栏


会员专栏是针对会员企业的高质量原创内容与精彩观点的分享栏目,为会员企业提供深度思考、创新理念、案例经验、专业成就等内容分享的平台,旨在扩大会员企业先进思想的影响,传播AI大数据的正确理念,促进AI大数据落地应用,助力传统产业智能化转型升级。

会员专栏欢迎广大会员企业积极参与、踊跃投稿,投稿请注意须为原创。


投稿邮箱:contact@tsingdata.com
合作联系:小数点(decimal_point)


编辑:黄继彦

校对:林亦霖

登录查看更多
1

相关内容

SMC:IEEE International Conference on Systems,Man, and Cybernetics Explanation:IEEE系统、人与控制论国际会议。 Publisher:IEEE。 SIT: https://dblp.uni-trier.de/db/conf/smc/
专知会员服务
30+阅读 · 2020年5月20日
大数据安全技术研究进展
专知会员服务
92+阅读 · 2020年5月2日
【电子书】大数据挖掘,Mining of Massive Datasets,附513页PDF
专知会员服务
103+阅读 · 2020年3月22日
【图神经网络(GNN)结构化数据分析】
专知会员服务
115+阅读 · 2020年3月22日
缺失数据统计分析,第三版,462页pdf
专知会员服务
108+阅读 · 2020年2月28日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
137+阅读 · 2019年12月12日
[综述]基于深度学习的开放领域对话系统研究综述
专知会员服务
78+阅读 · 2019年10月12日
【综述】视频摘要最新综述文章,附45页综述全文下载
专知会员服务
33+阅读 · 2019年9月20日
一文教你构建图书推荐系统【附代码】
机器学习算法与Python学习
10+阅读 · 2018年9月16日
多媒体大数据分析研究进展综述导读
专知
8+阅读 · 2018年3月19日
基于大数据搭建社交好友推荐系统
云栖社区
8+阅读 · 2018年2月2日
思路+步骤+方法,三步教你如何快速构建用户画像
产品100干货速递
9+阅读 · 2017年12月21日
2017全球大数据产业八领域典型公司盘点分析
人工智能学家
3+阅读 · 2017年12月6日
如何利用动态信息数据构建用户画像?
NPDP产品经理资讯
6+阅读 · 2017年10月11日
【大数据】如何用大数据构建精准用户画像?
产业智能官
12+阅读 · 2017年9月21日
如何七周成为数据分析师
R语言中文社区
4+阅读 · 2017年7月19日
Image Captioning: Transforming Objects into Words
Arxiv
7+阅读 · 2019年6月14日
Arxiv
3+阅读 · 2018年12月18日
VIP会员
相关VIP内容
专知会员服务
30+阅读 · 2020年5月20日
大数据安全技术研究进展
专知会员服务
92+阅读 · 2020年5月2日
【电子书】大数据挖掘,Mining of Massive Datasets,附513页PDF
专知会员服务
103+阅读 · 2020年3月22日
【图神经网络(GNN)结构化数据分析】
专知会员服务
115+阅读 · 2020年3月22日
缺失数据统计分析,第三版,462页pdf
专知会员服务
108+阅读 · 2020年2月28日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
137+阅读 · 2019年12月12日
[综述]基于深度学习的开放领域对话系统研究综述
专知会员服务
78+阅读 · 2019年10月12日
【综述】视频摘要最新综述文章,附45页综述全文下载
专知会员服务
33+阅读 · 2019年9月20日
相关资讯
一文教你构建图书推荐系统【附代码】
机器学习算法与Python学习
10+阅读 · 2018年9月16日
多媒体大数据分析研究进展综述导读
专知
8+阅读 · 2018年3月19日
基于大数据搭建社交好友推荐系统
云栖社区
8+阅读 · 2018年2月2日
思路+步骤+方法,三步教你如何快速构建用户画像
产品100干货速递
9+阅读 · 2017年12月21日
2017全球大数据产业八领域典型公司盘点分析
人工智能学家
3+阅读 · 2017年12月6日
如何利用动态信息数据构建用户画像?
NPDP产品经理资讯
6+阅读 · 2017年10月11日
【大数据】如何用大数据构建精准用户画像?
产业智能官
12+阅读 · 2017年9月21日
如何七周成为数据分析师
R语言中文社区
4+阅读 · 2017年7月19日
Top
微信扫码咨询专知VIP会员