一、 什么是用户画像
用户画像是指根据用户的属性、用户偏好、生活习惯、用户行为等信息而抽象出来的标签化用户模型。通俗说就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识。通过打标签可以利用一些高度概括、容易理解的特征来描述用户,可以让人更容易理解用户,并且可以方便计算机处理。
用户画像是对现实世界中用户的建模,用户画像应该包含目标,方式,组织,标准,验证这5个方面。
目标:指的是描述人,认识人,了解人,理解人。
方式:又分为非形式化手段,如使用文字、语言、图像、视频等方式描述人;形式化手段,即使用数据的方式来刻画人物的画像。
组织:指的是结构化、非结构化的组织形式。
标准:指的是使用常识、共识、知识体系的渐进过程来刻画人物,认识了解用户。
验证:依据侧重说明了用户画像应该来源事实、经得起推理和检验。
二、 用户画像的作用和应用场景
在互联网、电商领域用户画像常用来作为精准营销、推荐系统的基础性工作,其作用总体包括:
(1)精准营销:根据历史用户特征,分析产品的潜在用户和用户的潜在需求,针对特定群体,利用短信、邮件等方式进行营销。
(2)用户统计:根据用户的属性、行为特征对用户进行分类后,统计不同特征下的用户数量、分布;分析不同用户画像群体的分布特征。
(3)数据挖掘:以用户画像为基础构建推荐系统、搜索引擎、广告投放系统,提升服务精准度。
(4)服务产品:对产品进行用户画像,对产品进行受众分析,更透彻地理解用户使用产品的心理动机和行为习惯,完善产品运营,提升服务质量。
(5)行业报告&用户研究:通过用户画像分析可以了解行业动态,比如人群消费习惯、消费偏好分析、不同地域品类消费差异分析
根据用户画像的作用可以看出,用户画像的使用场景较多,用户画像可以用来挖掘用户兴趣、偏好、人口统计学特征,主要目的是提升营销精准度、推荐匹配度,终极目的是提升产品服务,起到提升企业利润。用户画像适合于各个产品周期:从新用户的引流到潜在用户的挖掘、从老用户的培养到流失用户的回流等。
三、 用户画像的分类
用户画像体系和标签分类从两个不同角度来梳理标签,用户画像体系偏战略和应用,标签分类偏管理和技术实现侧。
把标签分成不同的层级和类别:
- 一是方便管理数千个标签,让散乱的标签体系化;
- 二是维度并不孤立,标签之间互有关联;
- 三可以为标签建模提供标签子集,例如计算美妆总体偏好度,主要使用美妆分类的标签集合。
用户画像是对现实用户做的一个数学模型,在整个数学模型中,核心是怎么描述业务知识体系,而这个业务知识体系就是本体论,本体论很复杂,我们找到一个特别朴素的实现,就是标签。
一般来说,将能关联到具体用户数据的标签,称为叶子标签。对叶子标签进行分类汇总的标签,称为父标签。父标签和叶子标签共同构成标签体系,但两者是相对概念。例如:下表中,地市、型号在标签体系中相对于省份、品牌,是叶子标签。
四、 用户画像需要用到哪些数据
一般来说,根据具体的业务内容,会有不同的数据,不同的业务目标,也会使用不同的数据。在互联网领域,用户画像数据可以包括以下内容:
(1)人口属性:包括性别、年龄等人的基本信息
(2)兴趣特征:浏览内容、收藏内容、阅读咨询、购买物品偏好等
(3)消费特征:与消费相关的特征
(4)位置特征:用户所处城市、所处居住区域、用户移动轨迹等
(5)设备属性:使用的终端特征等
(6)行为数据:访问时间、浏览路径等用户在网站的行为日志数据
(7)社交数据:用户社交相关数据
五、 用户画像平台&架构
1、用户画像平台需要实现的功能。
2、用户画像系统技术架构
(1) 数据处理
a、数据指标的梳理来源于各个系统日常积累的日志记录系统,通过sqoop导入hdfs,也可以用代码来实现,比如spark的jdbc连接传统数据库进行数据的cache。还有一种方式,可以通过将数据写入本地文件,然后通过sparksql的load或者hive的export等方式导入HDFS。
b、通过hive编写UDF 或者hiveql根据业务逻辑拼接ETL,使用户对应上不同的用户标签数据(这里的指标可以理解为每个用户打上了相应的标签),生成相应的源表数据,以便于后续用户画像系统,通过不同的规则进行标签宽表的生成。
(2) 数据平台
a、数据平台应用的分布式文件系统为Hadoop的HDFS,因为Hadoop2.0以后,任何的大数据应用都可以通过ResoureManager申请资源,注册服务。比如(sparksubmit、hive)等等。而基于内存的计算框架的出现,就并不选用Hadoop的MapReduce了。当然很多离线处理的业务,很多人还是倾向于使用Hadoop,但是Hadoop封装的函数只有map和Reduce太过单一,而不像spark一类的计算框架有更多封装的函数(可参考博客spark专栏)。可以大大提升开发效率。
b、计算的框架选用Spark以及RHadoop,这里Spark的主要用途有两种,一种是对于数据处理与上层应用所指定的规则的数据筛选过滤,(通过Scala编写spark代码提交至sparksubmit)。一种是服务于上层应用的SparkSQL(通过启动spark thriftserver与前台应用进行连接)。 RHadoop的应用主要在于对于标签数据的打分,比如利用协同过滤算法等各种推荐算法对数据进行各方面评分。
c、MongoDB内存数据的应用主要在于对于单个用户的实时的查询,也是通过对spark数据梳理后的标签宽表进行数据格式转换(json格式)导入mongodb,前台应用可通过连接mongodb进行数据转换,从而进行单个标签的展现。(当然也可将数据转换为Redis中的key value形式,导入Redis集群)
d、mysql的作用在于针对上层应用标签规则的存储,以及页面信息的展现。后台的数据宽表是与spark相关联,通过连接mysql随后cache元数据进行filter、select、map、reduce等对元数据信息的整理,再与真实存在于Hdfs的数据进行处理。
(3) 算法部分
用户画像的核心是标签的建立,用户画像标签建立的各个阶段使用的模型和算法如下图所示。
原始数据层。对原始数据,我们主要使用文本挖掘的算法进行分析如常见的TF-IDF、LDA 等算法,主要是对原始数据的预处理和清洗,对用户数据的匹配和标识。
事实标签层。通过文本挖掘的方法,我们从数据中尽可能多的提取事实数据信息,如人口属性信息,用户行为信息,消费信息等。其主要使用的算法是分类和聚类。分类主要用于预测新用户,信息不全的用户的信息,对用户进行预测分类。聚类主要用于分析挖掘出具有相同特征的群体信息,进行受众细分,市场细分。对于文本的特征数据,其主要使用相似度计算,如余弦夹角,欧式距离等。
模型标签层。使用机器学习的方法,结合推荐算法。模型标签层完成对用户的标签建模与用户标识。其主要可以采用的算法有回归,决策树,支持向量机等。通过建模分析,我们可以进一步挖掘出用户的群体特征和个性权重特征,从而完善用户的价值衡量,服务满意度衡量等。
预测层。也是标签体系中的营销模型预测层。这一层级利用预测算法,如机器学习中的监督学习,计量经济学中的回归预测,数学中的线性规划等方法。实习对用户的流失预测,忠实度预测,兴趣程度预测等等,从而实现精准营销,个性化和定制化服务。
六、 用户画像标签体系的建立
1.标签的级别和属性
(1)标签级别(标签的体系结构)
分级有两个层面的含义,其一是:指标到最低层级的涵盖的层级;其二是指:指标的运算层级。其一非常好理解,这里重点说运算层级。
标签从运算层级角度可以分为三层:事实标签、模型标签、预测标签。
事实标签:是通过对于原始数据库的数据进行统计分析而来的,比如用户投诉次数,是基于用户一段时间内实际投诉的行为做的统计。
模型标签:模型标签是以事实标签为基础,通过构建事实标签与业务问题之间的模型,进行模型分析得到。比如,结合用户实际投诉次数、用户购买品类、用户支付的金额等,进行用户投诉倾向类型的识别,方便客服进行分类处理。
预测标签:则是在模型的基础上做预测,比如针对投诉倾向类型结构的变化,预测平台舆情风险指数。
(2)标签属性
标签属性可以理解为针对标签进行的再标注,这一环节的工作主要目的是帮助内部理解标签赋值的来源,进而理解指标的含义。如图所示,可以总结为5种来源:
1、固有属性:是指这些指标的赋值体现的是用户生而有之或者事实存在的,不以外界条件或者自身认知的改变而改变的属性。比如:性别、年龄、是否生育等。
2、推导属性:由其他属性推导而来的属性,比如星座,我们可以通过用户的生日推导,比如用户的品类偏好,则可以通过日常购买来推导。
3、行为属性:产品内外实际发生的行为被记录后形成的赋值,比如用户的登陆时间,页面停留时长等。
4、态度属性:用户自我表达的态度和意愿。比如说我们通过一份问卷向用户询问一些问题,并形成标签,如询问用户:是否愿意结婚,是否喜欢某个品牌等。当然在大数据的需求背景下,利用问卷收集用户标签的方法效率显得过低,更多的是利用产品中相关的模块做了用户态度信息收集。
5、测试属性:测试属性是指来自用户的态度表达,但并不是用户直接表达的内容,而是通过分析用户的表达,结构化处理后,得出的测试结论。比如,用户填答了一系列的态度问卷,推导出用户的价值观类型等。
2. 兴趣标签衰减
我们根据用户点击,计算用户对分类、主题、关键词的兴趣,得到用户兴趣标签的权重。最简单的计数方法是用户点击一个主题,就把用户对该主题的所有标签在用户兴趣上加一。
用户对每个标签词的兴趣计算就使用如下的公式:
其中:词在这次浏览的主题中出现C=1,否则C=0,weight表示词在这个主题中的权重。按道理,我们的主题不能仅仅使用一个主题所属分类来判断,主题应该有N个有序词语来概括。
这样做有两个问题:一个是用户的兴趣累加是线性的,数值会非常大,老的兴趣权重会特别高;另一个是用户的兴趣有很强的时效性,昨天的点击要比一个月之前的点击重要的多,线性叠加无法突出近期兴趣。
为了解决这个问题,需要要对用户兴趣得分进行衰减,我们使用如下的方法对兴趣得分进行次数衰减和时间衰减。
次数衰减的公式如下:
其中,α是衰减因子,每次都对上一次的分数做衰减,最终得分会收敛到一个稳定值 ,α取0.9时,得分会无限接近10。
时间衰减的公式如下:
它表示根据时间对兴趣进行衰减,这样做可以保证时间较早的兴趣会在一段时间以后变的非常弱,同时近期的兴趣会有更大的权重。根据用户兴趣变化的速度、用户活跃度等因素,也可以对兴趣进行周级别、月级别或小时级别的衰减。
七、 用户画像验证
方法:
对于兴趣画像的常用评估方法是设计小流量的A/B-test进行验证。我们可以筛选一部分标签用户,给这部分用户进行和标签相关的推送,看标签用户对相关内容是否有更好的反馈。
例如,在新闻推荐中,我们给用户构建了兴趣画像,我们从体育类兴趣用户中选取一小批用户,给他们推送体育类新闻,如果这批用户的点击率和阅读时长明显高于平均水平,就说明标签是有效的。
1. 效果评估
用户画像效果最直接的评估方法就是看其对实际业务的提升,如互联网广告投放中画像效果主要看使用画像以后点击率和收入的提升,精准营销过程中主要看使用画像后销量的提升等。
用户画像的评估指标主要是指准确率、覆盖率、时效性等指标。
1.1 准确率
标签的准确率指的是被打上正确标签的用户比例,准确率是用户画像最核心的指标,一个准确率非常低的标签是没有应用价值的。准确率的计算公式如下:
其中| Utag |表示被打上标签的用户数,| Utag=true |表示有标签用户中被打对标签的用户数。准确率的评估一般有两种方法:一种是在标注数据集里留一部分测试数据用于计算模型的准确率;另一种是在全量用户中抽一批用户,进行人工标注,评估准确率。
由于初始的标注数据集的分布和全量用户分布相比可能有一定偏差,故后一种方法的数据更可信。准确率一般是对每个标签分别评估,多个标签放在一起评估准确率是没有意义的。
1.2 覆盖率
标签的覆盖率指的是被打上标签的用户占全量用户的比例,我们希望标签的覆盖率尽可能的高。但覆盖率和准确率是一对矛盾的指标,需要对二者进行权衡,一般的做法是在准确率符合一定标准的情况下,尽可能的提升覆盖率。
我们希望覆盖尽可能多的用户,同时给每个用户打上尽可能多的标签,因此标签整体的覆盖率一般拆解为两个指标来评估。一个是标签覆盖的用户比例,另一个是覆盖用户的人均标签数,前一个指标是覆盖的广度,后一个指标表示覆盖的密度。
用户覆盖比例的计算方法是:
其中| U |表示用户的总数,| Utag |表示被打上标签的用户数。
人均标签数的计算方法是:
其中| tagi |表示每个用户的标签数,| Utag |表示被打上标签的用户数。覆盖率既可以对单一标签计算,也可以对某一类标签计算,还可以对全量标签计算,这些都是有统计意义的。
1.3 时效性
有些标签的时效性很强,如兴趣标签、出现轨迹标签等,一周之前的就没有意义了;有些标签基本没有时效性,如性别、年龄等,可以有一年到几年的有效期。对于不同的标签,需要建立合理的更新机制,以保证标签时间上的有效性。
1.4 其他指标
标签还需要有一定的可解释性,便于理解;同时需要便于维护且有一定的可扩展性,方便后续标签的添加。这些指标难以给出量化的标准,但在构架用户画像时也需要注意。
八、用户画像困难点、用户画像瓶颈
1.用户多渠道信息打通
同一个用户的数据面临多渠道的数据来源、格式、定义方式等,在数据清洗层面上就已经产生了很多的困难。
2.多渠道产品信息打通
同一个用户不同产品,比如微信数据、支付宝、百度检索数据。每个产品都能在不同层面对用户进行精准的定位,但结合起来又不太现实。
3.实时采集用户数据
目前收集用户的行为数据都属于敏感信息,过多或者过详细的数据都没有办法上报,更存在上报缺失等情况。假如再上升到实时收集用户信息,不止对产品来说,用户层面也会有诸多困难。
4.用户数据挖掘建模
挖掘用户有效信息,一直是很多企业想要做的事情,但数据量大,有效数据难以利用,并存在和现有的技术难以结合等。
5.亿级画像系统实践和应用
当用户数据上升到一定程度,就要面临技术上的问题,有些技术并不是不能实现或者准确产出结果,而是需要一定时间去计算,而某些场景迭代快,用户兴趣转移快又需要实时进行画像数据或者结果数据的变动,那对技术也是一方面的难点。
大数据、数据分析、爬虫群: 《453908562》