写在前面: 博主是一名大数据的初学者,昵称来源于《爱丽丝梦游仙境》中的Alice和自己的昵称。作为一名互联网小白,
写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于起步阶段的萌新
。由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!个人小站:http://alices.ibilibili.xyz/ , 博客主页:https://alice.blog.csdn.net/ 尽管当前水平可能不及各位大佬,但我还是希望自己能够做得更好,因为一天的生活就是一生的缩影
。我希望在最美的年华,做最好的自己
!
之前已经给大家介绍了一个关于大数据实战的项目——千亿级数仓(感兴趣的同学可以?大数据实战项目)。本篇博客,为大家介绍的是一个相比于数仓,近几年发展火热,各位更耳熟能详的一个项目——用户画像。如果之前没听过也没有关系?,相信看了本篇博客对于用户画像概念的一个介绍,你也一定能收获“奇怪的知识”?
本章目标:
- 了解用户画像是什么?能做什么?如何做?
- 理解项目平台架构
1、用户画像
1.1、概念
什么是用户画像?
我们对于用户画像的一个初始理解应该停留在字面上的解释,大致就是描述一个用户的特征,细节。
那我们来看看其他学术网站对于用户画像的一个解释。
- 百度百科定义
用户画像又称用户角色,作为一种勾画目标用户、联系用户诉求与设计方向的有效工具,用户画像在各领域得到了广泛的应用。我们在实际操作的过程中往往会以最为浅显和贴近生活的话语将用户的属性、行为与期待联结起来。作为实际用户的虚拟代表,用户画像所形成的用户角色并不是脱离产品和市场之外所构建出来的,形成的用户角色需要有代表性能代表产品的主要受众和目标群体。
- 维基百科定义
A user profile is a visual display of personal data associated with a specific user, or a customized desktop environment 。
翻译过来就是:用户画像就是与该用户相关联的数据的可视化的展现
一句话来总结就是:用户信息标签化。
- 偏技术的定义
用户画像可以简单理解成是海量数据的标签,根据用户的目标、行为和观点的差异,将他们区分为不同的类型,然后每种类型中抽取出典型特征,赋予名字、照片、一些人口统计学要素、场景等描述,形成了一个人物原型 (personas)。
大概知道了用户画像的概念之后,我们可能开始思考,什么是标签?
什么是标签?
标签就是: 对某一类特定群体或对象的某项特征进行的抽象分类和概括
例如:“人” 这类群体,可将“男”、“女” 这类特征抽象概括,统称为“性别”,“性别”即一个标签。
可将“20岁”、“22岁” 这类特征抽象概括,统称为“年龄”,“年龄”即一个标签。
可将“内蒙古”、“山东” 这类特征抽象概括,统称为“户籍地”,“户籍地”即一个标签。
可将“足球”、“游泳” 这类特征抽象概括,统称为“兴趣爱好”,“兴趣爱好”即一个标签。
这里的标签就是“性别”,“年龄”,“户籍地”,“兴趣爱好”。 标签也可以理解为特征。
标签值就是:男,20,山东,游泳。 标签值也可以理解为特征值。
例如:学生信息表
学生这个对象的属性可以理解为特征。
1.2 、分类及方向
- 标签数据来源
1)、UserPersonal
基于用户基本信息(比如电商来说,用户注册时填写的信息)构建标签
2)、UserProfile
基于用户业务数据(用户产品产生的数据)构建标签
商业标签
行为标签
用户价值
用户画像方向
代码语言:javascript复制目前的用户画像研究主要集中在三个方向上:用户属性、用户偏好和用户行为三个主要方面。
1)、用户属性
用户基本信息构建标签,比如某个商城会员用户注册时填写基本信息构建标签
2)、用户偏好
业务数据(订单数据,浏览数据、购物车数据。。)
喜欢买什么,看什么,玩什么,。。。
比如针对某个商城来说,主要喜欢买什么
3)、用户行为
浏览数据
- 其一、用户属性的研究侧重于显式地搜集用户特征信息,主要体现在社会化标注系统领域,通过社会化标注系
- 其二、用户偏好研究侧重于制定兴趣度度量方法,评估用户的兴趣度,提高个性化推荐质量;
- 其三、用户行为的研究侧重于用户行为趋势的预测,如用户流失行为的 预测中,有利于提前发现问题,找出对应策略,防止客户流失;在用户的欠费预测问题中,有利于发现 电力客户欠费特征,为电力公司提供决策支持。
注意:不同研究领域的用户画像研究方法也会有所差异,常用 的有决策树、逻辑回归、支持向量机及神经网络等模型。
用户画像分类(技术)
代码语言:javascript复制1)、匹配类
根据用户基本信息进行匹配,完善标签体系。例如:性别,籍贯,学历
2)、统计类
根据用户基本信息或行为数据进行统计完善标签系统。例如:年龄段,客单价,单价最高,退货率
3)、挖掘类
根据用户行为数据挖掘完善标签系统。例如:商品偏好,消费能力,品牌偏好
1.3、应用场景
用户画像应用领域较为广泛,适合于各个产品周期,从新用户的引流到潜在用户的挖掘、从老用户 的培养到流失用户的回流等。通过挖掘用户兴趣、偏好、人口统计特征,可以直接作用于提升营销精准度、推荐匹配度,最终提升产品服务和企业利润。还包括广告投放、产品布局和行业报告等。
1.3.1、精准营销(广告投放)
常见的营销方式包括APP信息推送、短信营销和邮件营销等。随着运营方式从粗放式到精细化,用 户画像技术能更深入和直观的了解用户,而越了解用户就越能够做出正确的决策,通过产品或服务的潜 在用户进行分析,将用户划分成更细的粒度,针对特定群体进行营销,辅以短信、推送、邮件、活动等 手段,趋以关怀、挽回、激励等策略。既能减少全量推送造成的资源浪费,又能达到较好的营销转化效果。
例如类似的广告信息
思考如下两个问题:
代码语言:javascript复制1)、大家所有人都收到这个邮件和这个短信了吗?
2)、那为什么这个短信和邮件发给了某一些人, 而另一些人没有收到呢?
短信和邮件的发送也是有成本的, 所以对于一些企业来讲, 不可能会在每一次营销中对所有人发送短信和邮件, 在不同的活动中, 可能会选取不同特征的一类用户, 对其进行短信或者邮件的营销, 那么这里就需要对用户进行分群。
1.3.2、数据化运营(产品布局)
如果大家是一个公司的运营经理, 现在需要对不够活跃的地区举办一些活动, 刺激用户的参与, 那么应该需要这样的一张图:
如果大家是产品经理, 现在需要对整个产品的风格进行改版, 那我们应该需要一张图, 来看到我们的产品在哪个年龄段最受欢迎, 要致敬这个年龄段的用户。类似的场景还有很多, 通过数据来说话, 来找到运营的策略, 正是一种非常有必要的事情, 也是发展趋势。
1.3.3、推荐系统
用户画像常用在电商、社交和新闻等应用的个性化推荐系统中。互联网时代下的信息是过载的,用 户量级巨大且用户之间千差万别。如果根据用户的行为习惯,购物或阅读记录来打造基于内容推荐系 统,实现的千人千面个性化推荐可以加深应用的用户粘性。在电商行业中,推荐系统的价值在于挖掘用 户潜在购买需求,缩短用户到商品的距离,提升用户的购物体验。
代码语言:javascript复制 说到推荐系统, 其实现在各种公司都在做, 我们判断未来的所有应用应该都是个性化的,
都是千人千面的, 例如如果在京东上购买了手机壳, 那么京东应该会推荐给我们其它样式的
手机壳, 如果买了书, 应该推荐给我们更多同类型的书, 就例如如下.
但是问题来了:
代码语言:javascript复制什么是推荐, 如果针对不同的人, 展示的结果会不同?
其实推荐就是系统通过数据, 找到用户和用户所感兴趣的物品之间的关系, 更抽象和更准确的说, 就是找到用户和商品之间可能的连接. 可以表示为类似如下样子。
可以通过大量的数据样本, 从而使用算法找到User和Product之间的关系, 简单来讲, 这就是推荐系统的实现方式. 那么, 有一个问题。
代码语言:javascript复制表示一个用户的这些特征如何生成呢, 如何找到一个用户的向量表示呢?
1.3.4、场景间的共性
前面提到了几个场景和几个问题,现在回顾一下这些场景和问题。
代码语言:javascript复制1、精准营销
需要对用户进行分群, 找到某个特质的用户
2、数据化运营
需要生成用户的图标, 所以同样也需要对用户进行分群和统计
3、推荐系统
需要找到用户和商品之间的连接, 所以需要对用户进行向量化表示
如果能有一个系统,把用户特征标注出来,如下:
那么,对于上面的三个需求,就可以以如下方式解决:(用户画像在三个场景下使用)
代码语言:javascript复制1、精准营销, 按照地域或者性别筛选客群
2、数据化运营, 按照消费能力筛选客群
3、推荐系统, 得到每一个用户的标签(宅男富二代)
用户画像即对用户使用标签来进行标注,例如:U_1001:(男, 北京, 宅男, 高消费能力)
代码语言:javascript复制用户画像标签表: - 存储到HBase表中
tbl_profile (表名称)
标签分为两类:(列簇ColumnFamily)
用户标签:user
商品标签:item
表的RowKey:
用户ID:userId或者商品ID:productId
标签值:(列值)
实际存储标签标识符tagId
标签字段:tagIds
标签值形式:多个标签之间使用分割隔开,比如使用逗号隔开
384,391,421,434
标签信息表:
tagId, tagName, tagDesc
384 男 用户的性别为男性
385 女 用户的性别为女性
......
1.4、用户标注
前面说了几个场景, 这些场景想要实现,都借助于对用户的理解, 直白点说,就标注出来每个用户的特征,, 但是如何标注呢?
接下来让我们来探讨一下用户标注的体系建立
1.4.1、本体论
在开始之前, 先介绍一下本体论,在介绍本体论之前看如下图,羊这种可爱的动物大家一定是见过的。
问大家的问题是,什么是羊??我觉得大家可能给出的比较标准的答案也许是一种有四条腿四只蹄、白色覆毛、两只短耳朵、小眼睛、性格温顺的动物。
现在把刚才这个结论拆开:四条腿, 四只蹄, 白色覆毛, 长耳朵, 小眼睛, 性格温顺, 动物, 这些词并不是羊, 只是羊的符号, 我们说羊有四条腿, 有白色覆毛, 是一种动物, 那这些形容词, 甚至羊和动物这样的名词, 都是真实存在的这个本体的一种符号化表示, 而本体指的就是一个真实的存在, 这种理论, 就是哲学中说的 本体论, 是亚里士多德的形而上学的基本分支.
那么和用户画像有什么关系呢,大家仔细想一想, 其实本质上:用户画像就是对用户的符号化表示, 也就是说, 其实标注用户就是把用户当做本体来进行标注。
而本体论也逐渐的发展为描述知识的一个学科,如果大家以后要研究知识工程和知识图谱的话, 本体论是绕不过去的。
代码语言:javascript复制如何用本体论描述用户呢, 如何用本体来表示用户的画像呢? 如下所示, 这是一个非常复杂的表示法.
1.4.2、打标签
采用本体论的思路, 采用另外一种方式来存储用户画像, 这种方式就是给用户打上标签, 例如如下的表示方式:
转换存储格式如下:
仔细想想看, 使用标签来标注用户, 其实本质上还是本体论, 只是被简化了. 而市面上绝大多数的画像项目都使用这种方式来存储用户画像。
代码语言:javascript复制1)、用户画像的作用
–如果想为消费能力强的用户发送优惠券刺激消费, 那首先要知道哪些用户有 消费能力强 这个属性
–如果想针对使用用户最多的设备进行特殊优化, 那首先要知道每个用户用什么 设备 登录
–如果想为每个用户推荐不同的商品, 要知道每一个用户的向量表示, 而标签就是每个用户的维度
2)、如何生成用户的画像
–本体论是理论基础
–但是本体论表示太复杂, 所以使用标签来描述画像
任务提交流程
我们可以搭建一个用户画像的管理平台,在这个平台上,我们可以按照不同的等级去管理标签,或者定义标签的执行周期,以及计算任务的提交等等操作.
一个完整的任务提交流程如上图所示,我们需要先创建出123级标签,在创建4级标签的时候将任务的Jar包上传,以及指定运行参数,最后创建5级标签,之后就可以开始运行我们的任务。
任务执行流程
我们的任务提交后的具体执行流程又是怎样的呢?如何才能得到最终计算的标签结果?
任务在执行的时候,我们的数据获取有2部分,一个是MySQL中的标签规则数据,另一个是HBase中的原始数据,通过SparkSQL对数据进行计算,将最终得到的结果标签存入HBase。再用ES或者solr做二级索引,方便我们进行数据的查询操作。
小结
相信看到这里的你,可能已经懂了什么是用户画像。或许你还会有一些迷惑,但都不要慌。后续我会快马加鞭,更新关于大数据实战【360°全方位用户画像】的具体阶段操作,敬请期待?
如果以上过程中出现了任何的纰漏错误,烦请大佬们指正?
受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波?