用户增长分析——用户分群分析
导语:在产品的增长分析当中,想关注符合某些条件的一部分用户,不仅想知道这些人的整体行为(访问次数,访问时长等),还希望知道其中差异较大的细分群体。用户分群方法,能帮助我们对差异较大的群体分别进行深入分析,从而探究指标数字背后的原因,探索实现用户增长的途径。
一、用户分群的应用场景
在日常的数据工作中,我们经常接到这样的需求:想关注符合某些条件的一部分用户,不仅想知道这些人的整体行为(访问次数,访问时长等),还希望知道具体是哪些人符合这些条件。然后查看这些人的数据导出用户名单,针对性的发送tips消息。有时还想进一步查看某些人在使用某功能上的具体操作行为。用户分群,就是用来满足这类需求的工具方法,它能帮助我们对差异较大的群体分别进行深入分析,从而探究指标数字背后的原因,探索实现用户增长的途径。
如用户画像分群,核心价值在于精细化的定位人群特征,挖掘潜在的用户群体。使网站、广告主、企业及广告公司充分认知群体用户的差异化特征,根据群体的差异化特征,帮助客户找到营销机会、运营方向,全面提高客户的核心影响力。
二、用户分群
图1:用户分群的5个类型
类型一:不分群,如全量活跃用户投放,群发短信等,缺点是没有针对性,容易引起用户反感。
类型二:用户基本信息分群,如根据用户注册的信息分群。相比不分群,这种方法已具备一定的针对性, 但是由于对用户不是真正了解,产生不了很好的结果预期。
类型三:用户画像分群,如年龄、性别、地域、用户偏好等,画像建设的焦点是为用户群打“标签”,一个标签通常是人为规定的高度精炼的特征标识,最后将用户分群的标签综合,即可勾勒出该用户群的立体“画像”。画像分群让我们真正了解了用户的某些特征,对业务推广帮助很大。
类型四:根据用户行为进行分群,此阶段会在画像分群的基础上关注用户的行为特征, 如根据用户的注册渠道和活跃习惯,制定不同的营销推广策略。
类型五:聚类和预测建模分群,聚类建模可以根据用户的综合特征指标,将用户分为不同的群体,如将用户划分为娱乐型、挂机型、社交型、办公型等;预测建模即尝试去猜测用户下一步的态度与行为(例如想知道什么,想做什么)。正因如此,它对将复杂的行为过程变为营销自动化,是十分有帮助的。
三、常见的用户分群维度
1. 统计指标:年龄,性别,地域
2. 付费状态:免费,试用,付费用户
3. 购买历史:未付费用户,一次付费用户,多次付费用户
4. 访问位置:用户使用产品的区域位置
5. 使用频率:用户使用产品的频率
6. 使用深度:轻度,中度,重度用户
7. 广告点击:用户点击了广告 vs 未点击广告
四、常用的聚类分群方法介绍
上面介绍了一些关于分群的方法和思路, 接下来重点讲解一下用户聚类分群,聚类分群可分为层次聚类(合并法,分解法,树状图)和非层次聚类(划分聚类,谱聚类等),而较常用的互联网用户聚类方法为K-means聚类方法和两步聚类法(均为划分聚类) 。
聚类分析的特征:
- 简单、直观;
- 主要应用于探索性的研究,其分析的结果可以提供多个可能的解,选择最终的解需要研究者 的主观判断和后续的分析;
- 不管实际数据中是否真正存在不同的类别,利用聚类分析都能得到若干类别的解;
- 聚类分析的解完全依赖于研究者所选择的聚类变量,增加或删除一些变量对最终的解都可能产生实质性的影响。
- 研究者在使用聚类分析时应特别注意可能影响结果的各个因素。
- 异常值和特殊的变量对聚类有较大影响
- 当分类变量的测量尺度不一致时,需要事先做标准化处理。
聚类分析的弱点:
- 聚类是一种无监督类分析方法,无法自动发现应该分成多少个类;
- 期望能很清楚的找到大致相等的类或细分市场是不现实的;
- 样本聚类,变量之间的关系需要研究者决定;
- 不会自动给出一个最佳聚类结果。
聚类分析的应用过程:
(1)选择聚类变量
在选取特征的时候,我们会根据一定的假设,尽可能选取对产品使用行为有影响的变量,这些变量一般包含与产品密切相关的用户态度、观点、行为。但是,聚类分析过程对用于聚类的变量还有一定的要求: 1.这些变量在不同研究对象上的值具有明显差异;2.这些变量之间不能存在高度相关。
首先,用于聚类的变量数目不是越多越好,没有明显差异的变量对聚类没有起到实质意义,而且可能使结果产生偏差;其次,高度相关的变量相当于给这些变量进行了加权,等于放大了某方面因素对用户分类的作用。 识别合适的聚类变量的方法:1.对变量做聚类分析,从聚得的各类中挑选出一个有代表性的变量;2.做主成份分析或因子分析,产生新的变量作为聚类变量。
(2)聚类分析
相对于聚类前的准备工作,真正的执行过程显得异常简单。数据准备好后,导入到统计工具中跑一下,结果就出来了。这里面遇到的一个问题是,把用户分成多少类合适?通常,可以结合几个标准综合判断: 1.看拐点(层次聚类会出来聚合系数图,一般选择拐点附近的几个类别);2.凭经验或产品特性判断(不同产品的用户差异性也不同);3.在逻辑上能够清楚地解释。
图2:聚合系数图
(3)找出各类用户的重要特征
确定一种分类方案之后,接下来,我们需要返回观察各类别用户在各个变量上的表现。根据差异检验的结果,我们以颜色区分出不同类用户在这项指标上的水平高低。其他变量以此类推。最后,我们会发现不同类别用户有别于其他类别用户的重要特征。
(4)聚类解释和命名
在理解和解释用户分类时,最好可以结合更多的数据,例如,人口统计学数据、功能偏好数据等等。然后,选取每一类别最明显的几个特征为其命名,大功告成。
五、K-means聚类在用户分群中的应用案例
在本案例中,我们首先来看最常用的K-Means聚类法(也叫快速聚类法),这是非层次聚类法当中最常用的一种。因其简单直观的计算方法和比较快的速度(相对层次聚类法而言),进行探索性分析时,K-Means往往是第一个采用的算法。并且,由于其广泛被采用,在协作沟通时也节省了不少用于解释的时间成本。
1. K-means的算法原理:
- 随机取k个元素,作为k个簇各自的中心。
- 计算剩下的元素到k个簇中心的相似度,将这些元素分别划归到相似度最高的簇。
- 根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。
- 将全部元素按照新的中心重新聚类。
- 重复第4步,直到聚类结果不再变化,然后结果输出。
假设我们提取到原始数据的集合为(X1, X2, …, Xn),并且每个Xi为d维的向量, K-means聚类的目的就是,在给定分类组数k(k ≤ n)值的条件下,将原始数据分成k类,S = {S1, S2, …, Sk},在数值模型上,即对以下表达式求最小值(μi 表示分类Si 的平均值):
2. 用户分群背景和目标:
某产品覆盖社会各种群体(不同年龄、不同行业、不同兴趣等),需要将大盘用户进行一定细分,然后针对性的开展运营活动。
3. 聚类变量选取:
用户画像特征、用户状态特征、用户活跃特征
4. 聚类分析和结果:
通过相关性分析和变量重要性分析,剔除部分效果差的变量,然后对剩余11个变量进行多次训练(目标聚类个数,参与的变量,组内个体差异容忍度),最终得出聚类结果
图3:用户分群K-means聚类效果
5. 结果解读和命名:
聚类1:低端低龄群体
聚类2:学生活跃群体
聚类3:职场高粘性群体
聚类4:职场低粘性群体
聚类5:高龄低活跃群体
表2:用户分群K-mean聚类结果
六、两步聚类和k-means聚类的效果对比
前面谈到的K-Means聚类法有简单、直观和快速的优点。但是其缺点是只能采用数值型变量,不能包含类别变量,并且对异常值非常敏感,离群值很容易严重影响聚类结果。并且,当数据集比较大(在腾讯,这种情况很常见),不能把所有数据点都装进内存的时候,K-Means就无法在单机上运行。而两步聚类法则克服了以上缺点,可以包含类别变量和数值型变量,并且当硬件条件不足或数据集非常大时,都能顺利运行。这种两步聚类法可以看成是改进版BIRCH聚类算法和层次聚类法的结合,先用BIRCH算法中的“聚类特征树”做预聚类,形成子类,然后把子类作为输入,做层次聚类。
1. 两步聚类的原理:
第一步:预聚类过程:
构建聚类特征树(CFT),分成很多子类。
开始时,把某个观测量放在树的根节点处,它记录有该观测量的变量信息,然后根据指定的距离测度作为相似性依据,使每个后续观测量根据它与已有节点的相似性,放到最相似的节点中,如果没有找到某个相似性的节点,就为它形成一个新的节点。在这一步当中,离群点将会被识别并剔除,不会像在K-Means当中那么容易地影响结果。
第二步:正式聚类:
将第一步完成的预聚类作为输入,对之使用分层聚类的方法进行再聚类(以对数似然函数作为距离的度量)。每一个阶段,利用施瓦兹贝叶斯信息准则(BIC)评价现有分类是否适合现有数据,
并在最后给出符合准则的分类方案。
2. 两步聚类的优点:
1.海量数据处理;
2.自动标准化数据;
3.能够处理分类变量和连续变量的混合数据;
4.可自动丢弃异常值或者将异常值归入最近的类。
5.可自动确定或者根据业务需要人工指定分类数目;
3. 两步聚类的效果对比:
对第六点同样的数据进行两步聚类,得到模型最优结果如下
图4:用户分群两步聚类效果
4. 两步聚类结果解读:
聚类1:低端低龄群体
聚类2:学生或新入职场高活跃群体
聚类3:青年低活跃群体
聚类4:青年挂机群体
聚类5:职场办公群体
聚类6:高龄低活跃群体
表3:用户分群两步聚类结果
七、业务案例 – 通过K-Means聚类,挖掘特殊行为模式的客户群
1. 业务需求
在本案中,产品经理希望了解登录不活跃用户的行为模式,并且能针对不同的行为组合,对庞大的用户群体进行细分,从而关注不同群体的不同需求,甚至挖掘垂直领域需求,从而在产品或运营侧采取措施,拉活沉默用户,提高DAU。
2. 分析目标
- 发现使用行为模式异于大盘典型用户的细分群体
- 粗估每个细分群体的用户数量
- 了解每个细分群体的行为特征和用户画像
- 基于上述结果,在拉活方面,提出产品或运营建议或明确进一步探索的方向
3. 分析过程
a) 特征提取
分析聚焦于用户的点击行为。在本例中,考虑到用户行为的典型性,选取了4个完整的周,共28天的数据,并且时间窗当中无任何节日。另外,考虑到计算性能和探索性分析需要反复迭代的场景,只从大盘当中随机抽取千份之一的用户作为代表。
b) 特征筛选
在特征提取阶段一共提取了接近200个功能点的点击数据。但是这些特征当中,有些覆盖面非常低,只有百份之一的用户在28天当中曾经使用,这些低覆盖的特征会首先被去除。
另外,前面谈到高度相关的变量也会干扰聚类过程,这里对所有特征对两两进行计算皮尔逊相关系数,对高相关特征(相关系数大于0.5)则只保留其中保留覆盖面最广的特征,以便最大限度地体现用户差异。
c) 特征改造-探索
经过上面两步后,笔者曾进行过多次聚类探索,但无一例外,聚类结果都呈现出一个超级大类搭配数十个非常小的小类(几个或十几个用户)。这样的结果,显然与我们的分析目标是想违背的。其一,这里挖掘出的小群体体积太小,从业务角度来说没有价值;其二,超级大类基本等同与大盘用户,没有能找出其中的用户差异。
为什么会有这样的结果呢,主要是因为点击行为基本上遵循的是幂率分布,大量用户集中在低频次区间,而极少量用户却会有极高的频次,这样在典型的聚类算法中,高频次用户都会被聚集成人数极少的小类,而大量的低频词用户就会被聚集成一个超级大类。
图6:点击行为数K-Means聚类示意图
对于这种情况,典型的解决方法是对频次取对数,使幂率分布转化为近似的正态分布再进行聚类,在本次研究中,取自然对数后,聚类效果仅有少量改善,但仍然停留在一个超级大类加上若干人数极少的小类的情况。背后原因,是点击行为数据的特点之一:核心功能和热门项目点击人数极多,而相对冷门的功能则有大量的0值。这样的情况下,取对数是没有改善的。
图8:打开次数分布(自然对数变换)
回到本次分析的目标当中,我们需要“发现使用行为模式异于大盘典型用户的细分群体”,如果丢弃这些冷门功能只看热门选项,则无法找出一些相对小众的行为模式达成分析目标。而这种数值稀疏的情况则让笔者想起了文本分类。在文本分类的词袋模型当中,每个“文档“的词向量同样存在大量的0值,词袋模型的解决方法是对词向量用TF-IDF方法进行加权。下面简单介绍这种方法
d) 特征改造-TF-IDF
在文本分类的词袋模型当中,需要将一篇篇“文档”(Document)(例如一篇新闻,一条微博,一条说说)按照其讨论的主题聚合在一起,而一篇文档里面有很多词(Term)。TF(Term Frequency 词频率)就是指一个词在一篇文档里的出现次数在整篇文档总词数当中的占比,这样简单的计算就知道一篇文档中什么词更多,而不会受到文档本身长度的影响。
另一方面,有些词是是什么文章都会用的“大众”词,这些词对于文章主题的分辨是没什么帮助的(例如新闻当中的“报道”“记者”等等)。对于这样的“大众”词,就要降低他的权重,所以可以通过(文档总数/含有某个词的文档数)这样的计算达到目的,每篇文章都有的词权重会取0,包含的文档数越少,数值越大。这计算就是IDF(Inverse Document Frequency 逆文档频率)。
按照上面的讨论,读者可能已经想到了,如果把“文档”的概念变为“用户”,把“词的出现次数”替换为“功能的点击次数“,就正好可以用来把用户行为的类型进行分类。首先是低频率用户的功能偏好会通过TF的计算得到反映,不会因为总体上用得少在与高频用户的对比当中被笼统归为一个低频用户的类。同时IDF也让一些小众功能有更大的权重,更容易在聚类中突出小众偏好。
e) 聚类结果
通过这样的特征改造,再用K-Means算法进行聚类,得出的结果就比较符合分析目标了,从大盘数据中,我们找到了各种具有鲜明行为特色的群体,并且初略估计出了各个群体的大小,行为特征和背景特征。并在此基础上结合用户研究数据去探索产品改进的建议。
八、小结
用户分群对于用户数据研究领域最大的改变,在于打破数据孤岛并真实了解用户。分析某个指标数字背后的用户具备哪些特征(他们的人群属性、行为特点等),进而发现产品问题背后的原因,并从中发现产品有效改进提升的机会或方向。
在进行聚类分析时,特征的选择和准备非常重要:1. 合适的变量在各个样本之类需要有明显差异;2.变量之间不能有强相关关系,否则需要用PCA等方法先进行降维;3.需要根据数据本身的特点和业务特性对数据进行变换(如标准化,取对数等);
而聚类算法的选择则需要结合数据特点(是否有变量,离群值,数据量,是否成簇状),以及计算速度(探索性分析往往需要较快的计算速度),精确度(能否精确识别出群落)等方面去选择合适的算法。对算法中的参数,例如K-Means当中的类别数K,则需要结合技术指标和业务背景,选取逻辑上说得通的分类方案。
聚类算法有非常多,各有其特点和擅长的地方,本文仅举其中两个较常用的方法为例,抛砖引玉,希望对读者有所启发。