通过层次分析法(AHP),建立电商用户综合评分模型

零基础学产品,BAT产品总监带,2天线下集训+1年在线课程,全面掌握优秀产品经理必备技能。了解详情

文章主要介绍了如何利用层次分析法建立电商用户综合评分模型,希望能够对你有所帮助。

层次分析法(Analytic Hierarchy Process,简称AHP)定义:是将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。关于层次分析法的具体解释大家可以使用搜索引擎搜索,篇幅有限,我们暂不展开。

一. 用户综合评分模型建立

1.从短期和中长期两个角度考虑用户综合评分模型

现实场景:一个用户经常光顾你的网站,有时只是来看看,有时候顺便买点东西,在计算这个用户的价值的时候,应该怎么做?是看TA最近一次购买行为,还是考虑用户在整个时间段内的表现?老祖宗早就告诉我们了,“日久见人心”。显然,用户行为错综复杂,一次网站会话行为可能只是管中窥豹,观察期留的长一些,才能建立更合理的评分模型。

本文的目旨在电商网站的用户建立起一个评分模型,动态计算出每个User的价值得分。我们从目标-用户评分出发,综合短期和中长期两个角度抽象出影响用户得分的因素作为准则层,然后选择准则层相应的指标层数据,建立一套科学的评分模型。

从短期来看,我们会关注用户活跃在在网站/APP上发生的一系列细致动作,浏览重点页面,点击预购等。因此,我们将影响目标层用户得分的第一个因素称之为“活跃度”。从中长期角度来看,用户的“忠诚度”和“购买能力”对用户得分影响至关重要。至此,我们确定了目标层为“用户价值得分”,影响目标层的准则层包含“活跃度”,“忠诚度”和“购买能力”

2.用户综合评分指标选择

准则层确定后,就涉及到选择衡量“活跃度”,“忠诚度”和“购买能力”关键指标。有几个重要的原则可以参考:

  • 可量化能被衡量的,才能被改进,目前电商网站大多通过JS,SDK埋点或者服务器日志分析,所以基本的量化数据能够拿到;
  • 有效性要覆盖重要的数据维度,且在合理可以调控的范围内;
  • 相互独立指标间尽量保持不相关。

笔者和团队小伙伴共同讨论了一下,选定的适合我司电商用户的指标内容如下:

  • 浏览页面数
  • 停留时间
  • 浏览商品数
  • 主动下单数:一些真正购买前的微转化,如点击“立即购买”,“立即开团”按钮等动作
  • 最近访问时间
  • 用户访问频率
  • 主动评价数 
  • 单次最高购买金额
  • 平均每次购买金额
  • 购买次数

3.适合于电商网站的用户综合评分模型

时间选择上,我们选择先选取近3个月的用户行为数据进行研究,因此“活跃度”对应的时间是“近三个月最后一次活跃的时候,即最近1天”,“忠诚度”和“购买能力”看的是“最近3个月”这个中长期时间段。实际业务中,按照已有的规则建立好数据表,每一天的数据自动入库,用户的评分是呈现随日期滑窗积累的效果,因此我们前面提到的是动态计算用户得分。至此,我们的用户综合评分模型如下:

二. 层次分析法(AHP)确定权重

目前,市面上可以搜到很多解决层次分析问题的软件,但是笔主认为思维比工具更重要,因此本文采用大家电脑里都有的Excel来解决这个问题,这样我们能把主要精力集中在实现方法上,而不是工具操作上。在用Excel实现AHP方法的时候,有两个重要问题需要解决:

构造判断矩阵:常见方法是小组投票,给出两两因素(例如A和B)间的比较值,1表示:A和B一样重要;3表示:A比B重要一些;5表示:A比B重要;7表示:A比B重要的多;9表示:A比B极其重要。这样,通过两两比较给出比较值,判断矩阵就出来了。如下图:可以看到“活跃度”,“忠诚度”和“购买能力”的判断矩阵

一致性检验:什么是一致性检验?举个例子,当两两比较认为A比B重要,B比C重要时,轮到A和C比较了,你给出C比A重要的比较值,此时就叫做“不一致”。层次分析法的计算不是简单得到一个结果,而是要得到一个令人满意的一致性的结果。

一致性的检验是通过计算一致性比例CR 来进行,其中CR=CI/RI,当CR<=0.1 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正,甚至推倒重做。

另外,公式中另外两个参数CI是一致性指标,RI是随机一致性指标,通过查表可以找到三阶矩阵的RI=0.5149,四阶矩阵的RI=0.8931。

这部分是数学知识,大家理解文章后可以直接拿来用,我们后面直接以下图“准则层”为例,阐述如何用Excel构建判断矩阵及单排序和一致性检验,想了解更多的,可以搜索引擎搜索一下。

  • 判断矩阵构造:对角线上表示“活跃度”比“活跃度”,“忠诚度”比“忠诚度”,“购买能力”比“购买能力”,因此全部值都是“1”,然后左下角,将团队投票的两两比较值填入,右上角做倒数映射即可;
  • 按行相乘:F6=PRODUCT(C6:E6),下拉
  • 开n次方:G6==POWER(F6,1/3),下拉,而G9=SUM(G6:G8)
  • 权重Wi: H6=G6/$G$9,下拉
  • 分向量AWi:I6==C6*$H$6+D6*$H$7+E6*$H$8
  • AWi/Wi =I6/H6,而J9=AVERAGE(J6:J8)
  • CI=(人-n)(n-1) , 这里面“人”其实是希腊字母“兰姆达”,其实就是J9单元格的数字,我打不出这个字母,希望你们understand 我,谢谢!n代表变量数,准则层的n=3,经过计算CI=0
  • 三阶矩阵RI=0.5149
  • CR=CI/RI=0

至此,我们构造的判断矩阵,一致性检验通过。红色标记的Wi即为相应的权重,即准则层相对目标层有如下公式:用户价值得分=0.4*活跃度 + 0.4*忠诚度 + 0.2*购买能力。

指标层相应的判断矩阵及单排序和一致性检验如下图,请大家参考。

三. 指标数据标准化

我们前面选定了每个准则层对应可以量化的指标,这些指标的数量值和单位不尽相同,我们需要将其采用同一种计量方法,这样才能进行比较。我们本次采用的是5分制,即要把所有的指标数据,不管是“浏览页面数”,“停留时间”,还是“单次最高购买金额”,都标准化到[0,5]。

如下图,我们拉取最近个月的用户数据,通过对原始数据进行分析,最后建立的标准化规则,不同网站/APP的具体标准化规则可能不同,需要依据原始数据来定。

  • 第一行{0,1,2,3,4,5}表示标准化得分,即要把所有的指标数据映射到数据集里
  • 黄色行表示实际原始数值
  • 灰色字体行表示累计占比

以“浏览页面数”为例,首先拉取近三个月的原始数据,选择用户“最近1天”的在网站/APP上的活跃数据,如下图所示,左列表示用户id,右侧表示每个id在“最近1天”浏览的页面数。其次,按照PV进行从小到大的升序排列。第三,做截止到XXX-id为止的用户累计占比。因为是5分制,因此,理论上,找到累计占比约为“20%,30%,60%,80%”的,把相应的PV作为标准化后“1,2,3,4”数值的分割点即可。

有一点需要提醒,要尽可能保持原始数据被均匀标准化到[0,5],但是有的指标起点就非常高,比如“浏览商品数”指标,50.7%的用户没有浏览商品,那么接下来就要尽量在50%-100%之间均匀标准化。具体标准化过程,大家可以在实践中自己体会。

四. 数据结果和验证

前面工作顺利的话,应该会有如下图所示的一张表,以“客户ID”作维度,显示每一个客户对应“指标原始数据”,“准则层得分”以及“目标层得分”的数据。

我们使用tableau制图,进行数据分布的验证。如下图,当准则层,指标层权重系数确定,当指标标准化完成后,电商用户的价值得分出现如图所示的完美长尾分布。实际过程,从确定权重,要指标标准化这个过程,笔者和团队小伙伴进行了多次调参,和多次推到重做。所以,如果大家借鉴本文做其它平台用户综合评分模型,一定要有耐心。

Tableau图表中,我们用数据桶表示最终得分,纵坐标表示客户ID不重复计数,横坐标是标准化后的得分,横坐标为0.0的数据桶解读为“得分在[0,0.2)的客户占比为0.2%”,横坐标为0.2的数据桶解读为“得分在[0.2,0.4)的客户占比为16.64%”,依次类推。

五. 应用场景和意义

由于本文重点是给大家介绍建立电商用户综合评分模型的方法,针对应用场景和意义,笔者仅做抛砖引玉,欢迎大家主动思考,以及评论,同笔者交流。

  • 首先,根据上一部分用户最终得分分布图,可以找到高价值用户(比如定义得分大于3分的用户),极低价值用户(比如定义得分小于0.2的用户)等等,不同类别的用户,做针对性的营销,甚至一对一的沟通和客户管理。
  • 第二,目标层由指标层决定,我们用“活跃度”,“忠诚度”和“购买能力”三个维度,每个维度以中位数为分界线,得到2*2*2八大类用户集合。如下图所示为使用Tableau绘制的八大类用户占比情况。然后根据不同准则层的表现制定不同的沟通策略。

 

如下图为不同用户的沟通策略。

感谢阅读我在《人人都是产品经理》上的第一篇文章,希望和各位多交流,以及得到大家的肯定和鼓励,感谢!

 

本文由 @ sharon 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自PEXELS,基于CC0协议

欢迎打赏支持原创
6人打赏
评论
有话不说憋着难受
  1. 权重wi是怎么算的啊???

    回复
  2. 有小伙伴反馈不懂层次分析法(AHP)的人会完全看不懂,其实还是有解决办法的。第一,大家可以理解文章思路,直接拿过来用下试试;第二,权重不好定,那就本着“各打50大板”的原则,权重给一样的的试试。

    回复
  3. 表格计算的不太看得懂,有讲这个方法的书籍推荐么?

    回复
    1. 其实就是求矩阵的最大特征值所对应的特征向量,可以百度一下“层次分析法”,结合以前学的《线性代数》来理解。当然,也能直接拿来用!

      回复
  4. 给你666个赞

    回复
    1. 你是最棒哒! ;-)

      回复
  5. 看来要学的还有好多,数据分析一点不懂 :o

    回复
    1. 永远年轻,永远在路上 ;-)

      回复