文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

用户路径数据分析与挖掘

2024-11-30 11:10

关注

一、概览

首先和大家分享下业务场景和技术架构。文中的Demo数据都是脱敏后的假数据,业务场景也换成了一些更通用的基于信息流和电商的场景,这些场景与各种互联网场景都是适用的。

1、业务场景

用户路径是用户在网站或APP中的行为路径。上图的上半部分是一个用户路径的例子,所有的互联网场景在大的层面分为三部分:聚合页、列表页和正文页,我们的用户路径其实就是在这些不同类型的页面来回切换。

用户路径分析的价值主要体现在如下几方面:

2、方案和技术架构

整体的技术架构由底层的数据集成、中间的存储、上面的应用和服务部分组成。这里重点分享下与Session有关的部分。

二、业务实践

接下来将分享我们的一些业务实践,主要包括数据处理和算法挖掘两大部分。

1、数据处理

(1)切分会话

上图左边是切分会话的方式,右边是公开资料中的微信小程序的生命周期,其实左边这张图是右边这张图的技术变体。

我们从APP启动-进入首页-关闭-再启动-浏览各种各样页面-各种各样点击-看短视频-关闭APP,这其实是一个很长的过程。在一个类似信息流的地方,比较高频的刷,每天的曝光少则几十,多则人均曝光四五百。所以曝光日志加上各种各样非曝光日志(比如APP生命周期的启动、关闭及Push),整个链路是非常长的,如何去切分就非常关键,通常主要有两种切法:

在业务实践中,切分的方式有很多,也是很灵活的,比如可以基于首启进行切分,每天用户看的第一个内容是什么,也可以基于Push切分,用户每天点的第一条推送是什么,也可以基于最后一条记录切分,用户每天最后看的内容是什么。

这里有两点建议:

(2)数据处理

数据处理,主要包含两部分内容:

在看所有的分析报告时,异常数据是非常值得关注的。这里有三点需要注意:

数据抽样是为了快速地分析。有两种方法,一种是使用开源系统,另一种是使用算法挖掘。我们内部的做法是将ClickHouse数据直接读到内存中,然后用Jupyter计算,在Jupyter中有很多挖掘算法,因此非常需要抽样。

我们应注意的是抽样的合理性——无偏抽样,这本身也是数据科学中非常重要的内容。看抽样是否合理主要有以下方法:

以上三个内容可以做成模板或者包,这样每次做数据分析的时候,跑一下这个流水线,结论就出来了。

(3)数据结构

这里介绍下数据结构,也建议大家直接将其做成流水线。

在实践过程中,这四大类型的表是我们做一个完整的基于Session的数据工程或数据平台所必须的。从分析的角度,不建议非要全量,因为它算起来会比较麻烦,计算量非常大,我们应该做抽样。

一些垂类场景,比如搜索、信息流,本来就是一个非常强的基于时间次序的日志,应用得很多。但是从搜广推场景往外发展到跟产品相关的,Session日志相对来说没有那么多的成熟应用。我们看漏斗、用户增长等还是比较偏原始Event日志。建议大家考虑下自己的业务场景有没有可能把Session用起来,把Session之后的挖掘算法用起来。建议把一些与会话强相关的业务场景转换为Session日志,将基于Event的日志串成Session日志,这样更容易做分析。

2、算法挖掘

我们整理的数据,不能只靠业务直觉判断,需要用算法进行正确的分析。接下来将分享算法挖掘的一些工作。

关于频次挖掘,大家一定都听说过“啤酒与尿布”的例子。这里分享一些与Session有关的频次挖掘。

上图中左上角是一个Session,浏览了页面A、B、C、D,它天然是一个对话的句子,量化行为路径的思路是:

上面已通过降维后的2维向量获取到特征向量,就可以做聚类了。上图的左边是聚类的一个示例,不同颜色标代表不同的人群。

下一步就是频次挖掘。聚类后的人群是什么,这个是不知道的,因为它是一个Embedding的高维空间,所以需要用频次挖掘的算法,将人群放到各种各样的挖掘算法中,最后会得到分类。例如有薅羊毛的用户、闲逛的用户等。这样做的好处是,用Embedding和NLP相关的算法挖掘,而不是依赖于纯产品的预判去做数据分析,也可能看到让我们惊喜的部分。

现在我们开始有大语言模型了,过去的做法是将其放到频次挖掘算法中,未来或许可以让GPT告诉我们用户到底关注什么。下一步将尝试用大模型取代Apriori、GSP等传统机器学习的算法来解决问题。

接下来介绍图挖掘算法,数据分析的关键就是我们想要看到平时想不到和未知的部分,这里介绍一个Louvain算法。上图的例子是有一个非常复杂的页面,如果将大量的页面显示出来,是无从分析的,根据这个算法聚类之后,用图的方法就可以很快形成像右下角这个图,就明显很多。聚类有以下好处:

这里用到了图数据库,因为图数据库本身有预处理的过程,性能要好很多。这里参考了腾讯云的KonisGraph解决方案,图数据库非常多,大家也可以用其他开源方案。

三、开源方案

下面分享SessionAnalytis这个开源方案,主要介绍工程实现和Demo示例。

1、工程实现

SessionAnalytics开源方案可以在GitHub中找到。该开源方案相对来说比较完备,有前端、后端、数据库以及Demo数据库,下载下来可以直接使用。该开源项目是将我们理解可以固化的部分尽量固化下来了,所以推荐给大家。

我们的项目架构如上图所示,主要包括:

数据结构为:

接下来讲下开源方案是怎么做的。左边是例子,右边是对应的代码供大家参考。数据导入后,可以指定用什么事件或什么时间间隔来切分。在这里,我们计算Session切割点,然后生成了Session_ID及Sub_Session_ID。

现在很多平台都支持用户路径,但是使用过程中,发现很多不好用的地方。比如Echarts随机生成桑基图颜色。例子中“娱乐”的每层颜色是不一样的,我们的解决方案是用颜色表,只要是相同的页面,每层颜色都是一样的,这是第一个优化点。

第二个是层级一致性,Echarts自带插件无法按照层级进行排列,数据显示比较混乱,我们将相同层级放到同一列,这是另外一个定制。

第三个是全局筛选,在实际业务场景中,数据量比较大的时候,维度是非常多的,所以该开源平台提供了全局筛选的能力。

第四个是联动筛选,数据量太大了,不想影响用户的关注,做了联动筛选。

第五个是维度分布,点桑基图的每一步,会弹出来一个框,显示具体的人群是什么,展示了细节的指标和分布,可以下钻。

我们要更多地站在用户的角度,去看为什么我们的数据平台用不起来,它遇到的问题是什么,其实很多是跟交互有关的。用户路径是一个例子,原生的桑基图出来之后,是非常散的颜色都是乱的,大家没法看,所以很多优化是在可视化方面。


最后一个是跟性能有关的异步上传,因为当用户量很大时,我们要离线跑流水线,不让用户等。

2、Demo示例

场景一是关于流量异动的,用它很容易看出来流量到底从哪儿变了。比如可能是Push带来很多人,后来又流失了很多。其实在看桑基图之前,我们会有一个直觉的判断,但是看到之后可能发现我们的直觉判断是不准的。尤其是像互联网这种用户增长,渠道分享到某个地方,或者某个地方来了很多黑产用户,或者某个业务场景忽然吸引了很多人,这种都会引起流量非常大的波动。因为我们做一个产品,真正用户喜欢什么,其实也很难完全百分百猜出来,通过这种桑基图,就容易确定问题和原因。

场景二与挖掘有关,举例是开源平台支持的时序聚类。在信息流或推荐系统场景中,一个很大的问题就是冷启动,包括用户冷启动和内容冷启动。因为冷启动的时候,我们没有那么多的上下文信息,我们并不知道什么东西会被喜欢,我们遇到一个很大的问题是一个很好的文章或视频就是分发不起来,或者一个不是很好的视频忽然火了,很难知道原因。但是对于我们做推荐的人或者内容分发的同学,就要去研究一个内容起来或没起来的原因。这种场景就比较偏爱时序聚类了,把维度换一下,用户换成文章,UserId换为DocId,也可以做基于内容的Session。所以遇到内容冷启动,也推荐使用时序聚类。

场景三与漏斗有关,这里分享一个关于用户增长的例子:Push拉活进入APP之后,用户莫名其妙的就丢了。

早期我们只看用户增长的时候,只是说一个漏斗流下来,当100个人漏到50个人的时候,后面的50可能来自另外100个人。但是现在有了时序和Session的好处是我们能够明确这50个人是基于这100个人的,用Session将其串起来是有明确价值的。

建议大家有了Session挖掘的框架之后,可以根据具体业务场景进行替换。

该应用可以发散出很多场景,维度和指标都是可以换的,可以帮助我们发现很多想象不到的现象。

四、对比

很多数仓是基于Event的,基于Session的正慢慢兴起。在有些场景中,Session变成至关重要的日志。这里从多个角度对比,基于Session的用户路径分析与基于Event的用户事件分析,能够提供的额外价值。

五、Q&A

Q1:页面曝光实际是有多个控件都需要上报吗?具体时间是SDK做自动采集还是代码埋点,如何保证上报逻辑一致?终端后台是否session合并起来?

A:在实际做的过程中,我们是把能上报的尽量放到一起,能用的先用起来。因为数据团队相对比较偏下游,对上游很难做到完全不遗漏的数据治理,所以尽量把那些能用起来的先用起来。对于保证逻辑一致,我建议两种做法,一种做非常重的监控,因为我们没有办法完全保证上游,所以做非常重的智能监控,将各种各样的都监控起来,有问题后马上去查;第二种建议考虑所有场景采用无埋点的SDK去解决这个问题,报上来的东西同一套标准,就可以比较好的解决这个问题。

Q2:key要选什么样的trick,聚成几类?

A:聚成几类,可以按k-means做法中的手肘原则,或者有轮廓系数等参数。开源框架中会预先帮大家把手肘的那个图画出来,也会预先帮大家将轮廓系数算出来,在实践中也是这样参考的。

Q3:用户路径数据分析可用到推荐系统的方面有哪些?

A:跟推荐系统有关的有两大部分,一个是跟算法关系特别强的,一个是比较偏运营的部分。主要还是看有次序的日志,算法本来就有类似LSTM等去串次序。除此之外,我们把用户依次序来看,比如多次召回,之后又做多次Ranking,这中间的用户和内容的变化关系,是可以深入分析的。

Q4:策略产品可以做什么?

A:关于策略,这里分享两个点,一个是用户冷启动,一个是内容冷启动。我相信做推荐的同学,经常被灵魂拷问的就是一个内容怎么推荐不来,好文章为什么起不来。内容冷启动,可以去看为什么起不来。在次序的角度去看内容是特别多的场景。然后就是用户冷启动,那把日志串起来去看用户的热身过程。

Q5:可否具体介绍一下冷启动?

A:用户冷启动就是在用户画像不足的时候,一个用户进来到底推什么,有很多算法可以做,比方说MAB多臂老虎机,或者算法中这种E&E问题,关键还是用户进来的前几百条日志,也就是对前几百个行为去更深地看细节。内容冷启动解决的问题是一个好的内容怎么快速热起来,因为通常来说一个经验值吧,一个好的文章进来,如果24小时起不来那基本就很难起来了。一个好的视频进来,我的经验是2-3天起不来,那也就起不来了,那在这个时候会做很多工作去细看那些出不来是怎么样。

Q6:怎么做渠道归因?

A:渠道归因有很多做法。通过不同渠道拉来的用户都是不一样的。很多快速做法是看首启。比较智能的做法是,用机器学习和训练的方式来做,比如定义关键影响指标为Y,在多重渠道X的情况下,去看每个渠道对最终结果的影响,相当于每个渠道的权重系数是智能的。如果跟用户路径有关,可以结合次序定义参数,其实很多时候比较麻烦的是:今天买了一个商品,可能是因为看了一个短视频,购物车逛了一下,又逛了下信息流,然后别人又给社交推荐,它有多个次序,单看单个动作是很难归因的。这种用户量级比较大场景多变复杂的时候,我们去用统计或机器学习的方法,就方便得出量化参数。

来源:DataFunTalk内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯