2017 年 6 月 24 日,又拍云旗下技术沙龙 Open Talk 来到人工智能公司集中的城市之一——深圳,探讨了“大数据和机器学习最佳实践”这一热门话题,数果智能联合创始人、首席架构师黄强作了题为《海量用户行为数据的储存和分析》的分享。
海量用户数据的处理妙招
人工智能的训练需要大数据,面临大数据的处理也需要人工智能的参与。
“用一句话来说,用户行为数据就是用户在产品上的操作行为的记录。”黄强高度概括了用户行为数据的含义,“其中包括了时间、地点、页面信息等信息。”一般企业的用户数到了几十万,用户一天下来做的所有的操作行为,像一个用户行为数据包含用户的IP、sessionID、imei、终端 ID,这个数据量是非常庞大的,每一天就是一个 App 都是几百亿甚至上千亿的数据量。
这些数据里,高基数的维度很多。“我认为基数在百万以上就比较高了。”黄强认为。什么是基数?比如说用户ID有一个很大的量,一个维度下有多少个不重复的值,这种值就可以叫ID,如果基数很高,这个值会非常多。高基数产生的数据量非常庞大,几千万到上千亿都是有可能,还有用户行为是持续的。这些都是用户行为数据的处理难点。
黄强分享了用户行为数据处理环节的几个步骤:第一步是采集,通过 SDK 等方式、工具采集数据;采集到数据之后需要进行存储,“数据量非常大,需要拆成很多份,采用分布式资源,才能最大化利用一台设备的计算资源。”因为数据被拆散了,所以数据处理还需要加入“查询”功能,把查询结果做一个合并,输出最终结果。此外就是数据的索引,克分为倒排索引和正向索引两种方式。