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

22 评论 42363 浏览 264 收藏 14 分钟

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

层次分析法(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协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 感谢楼主!
    “找到累计占比约为“20%,30%,60%,80%”,应该是“20%,40%,60%,80%”

    来自浙江 回复
  2. 你好,请问如果是百分制的话,指标数据的标准化也是用同样的方法吗?

    来自上海 回复
  3. 您好,请问下20%40%60%80%,这个是按照人数均分吗?
    如果样本数据呈现长尾,不是正态分布形式:例如:消费,最近一年消费情况,消费0单的占了70%,消费1单的人数占了20%,剩余的人数占了10%,那怎么将他们均分20%40%60%80%?
    比如按照文章提供的思路:0单的70%人数(分数=0),消费1单(分数=1) 好像就没办法人数均分了。

    我现在的思路是,将消费人数进行log化,log化之后消费人数,通过系统聚类进行分成5类,但这样的话有个问题,就是人数肯定不是均分,这就回到我一开始提的问题,20%40%60%80%,这个是不是人数的均分,但我这种情况还行没办法均分了。

    谢谢了!

    来自广东 回复
  4. 您好,请问如果两层权重相乘以后导致权重衰减得厉害,最后的指数方差过小,没有区分度怎么处理?

    来自江苏 回复
    1. 可以回过头去看看初始判断矩阵两两比较是不是给的值太大了,可能要多摸索几次

      来自上海 回复
  5. 非常非常感谢楼主,学习啦。
    PS:CI=(人-n)(n-1) 这个公式不对哈 ,应该是CI=(人-n)/ (n-1)

    来自北京 回复
    1. 是相除,感谢提醒,谢谢!

      来自上海 回复
  6. 学习了,感谢!

    回复
  7. 指标数据标准化中 灰色字体 累计占比的百分比,是怎么来的

    来自上海 回复
    1. 累计占比为辅助数据。对各个指标从小到大排序,增加辅助列计算“累计用户占比”,为保证数据均匀,尽可能找20%,40%,60%,80%的点,比如有100条数据,“浏览页面数PV”=0有3条,PV=1有25条,则PV=1的累计占比记录28%。

      来自上海 回复
  8. 请问一下姐姐,这样的数据在哪里找,电子商务系大四学生最近在准备写关于数据分析的论文,但是缺乏数据 😥

    来自上海 回复
  9. 仔细学习了一遍,因为最近也在做一个评分系统,文章开阔了思路,写得很好,谢谢po主,期待更多的文章!

    来自四川 回复
  10. 你可以考虑开一节课了,我做你第一个小白学生。

    来自湖北 回复
    1. 谢谢你喜欢这篇文章,互相学习 😉

      来自上海 回复
  11. 权重wi是怎么算的啊???

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

    来自上海 回复
  13. 给你666个赞

    回复
    1. 你是最棒哒! 😉

      来自上海 回复
  14. 看来要学的还有好多,数据分析一点不懂 😮

    来自广东 回复
    1. 永远年轻,永远在路上 😉

      来自上海 回复
    2. 1

      来自北京 回复