让机器读懂用户——大数据中的用户画像-CSDN.NET http://www.csdn.net/article/a/2017-02-27/15855731
- Github项目: awesome-coder-resources:编程/学习/阅读资源(开源项目,面试题,网站,书,博客,教程等等)......【欢迎Star,欢迎围观】......
用户画像有什么作用,能帮助我们达到哪些目标呢?
大体上可以总结为以下几个方面:
- 精准营销:精准直邮、短信、App消息推送、个性化广告等。
- 用户研究:指导产品优化,甚至做到产品功能的私人定制等。
- 个性服务:个性化推荐、个性化搜索等。
- 业务决策:排名统计、地域分析、行业趋势、竞品分析等。
//
应用示例:个性化推荐
以电商网站的某种页面的个性化推荐为例,考虑到特征的可解释性、易扩展和模型的计算性能,很多线上推荐系统采用LR(逻辑回归)模型训练,这里也以LR模型举例。很多推荐场景都会用到基于商品的协同过滤,而基于商品协同过滤的核心是一个商品相关性矩阵W,假设有n个商品,那么W就是一个n * n的矩阵,矩阵的元素wij代表商品Ii和Ij之间的相关系数。而根据用户访问和购买商品的行为特征,可以把用户表示成一个n维的特征向量U=[ i1, i2, ..., in ]。于是UW可以看成用户对每个商品的感兴趣程度V=[ v1, v2, ..., vn ],这里v1即是用户对商品I1的感兴趣程度,v1= i1w11 + i2w12 + inw1n。如果把相关系数w11, w12, ..., w1n 看成要求的变量,那么就可以用LR模型,代入训练集用户的行为向量U,进行求解。这样一个初步的LR模型就训练出来了,效果和基于商品的协同过滤类似。
//
数据管理系统
用户画像涉及到大量的数据处理和特征提取工作,往往需要用到多数据来源,且多人并行处理数据和生成特征。因此,需要一个数据管理系统来对数据统一进行合并存储和分发。我们的系统以约定的目录结构来组织数据,基本目录层级为:/user_tag/属性/日期/来源_作者/。以性别特征为例,开发者dev1从用户姓名提取的性别数据存放路径为 /user_tag/gender/20170101/name_dev1,开发者dev2从用户填写资料提取的性别数据存放路径为 /user_tag/gender/20170102/raw_dev2。
从每种来源提取的数据可信度是不同的,所以各来源提取的数据必须给出一定的权重,约定一般为0-1之间的一个概率值,这样系统在做数据的自动合并时,只需要做简单的加权求和,并归一化输出到集群,存储到事先定义好的Hive表。接下来就是数据增量更新到HBase、ES、Spark集群等更多应用服务集群。
//
精确有效的用户画像,依赖于从大量的数据中提取正确的特征,这需要一个强大的数据管理系统作为支撑。
用户画像的生产
用户特征的提取即用户画像的生产过程,大致可以分为以下几步:
- 用户建模,指确定提取的用户特征维度,和需要使用到的数据源。
- 数据收集,通过数据收集工具,如Flume或自己写的脚本程序,把需要使用的数据统一存放到Hadoop集群。
- 数据清理,数据清理的过程通常位于Hadoop集群,也有可能与数据收集同时进行,这一步的主要工作,是把收集到各种来源、杂乱无章的数据进行字段提取,得到关注的目标特征。
- 模型训练,有些特征可能无法直接从数据清理得到,比如用户感兴趣的内容或用户的消费水平,那么可以通过收集到的已知特征进行学习和预测。
- 属性预测,利用训练得到的模型和用户的已知特征,预测用户的未知特征。
- 数据合并,把用户通过各种数据源提取的特征进行合并,并给出一定的可信度。
- 数据分发,对于合并后的结果数据,分发到精准营销、个性化推荐、CRM等各个平台,提供数据支持。