序列模式挖掘在用户行为分析中的应用

背景

在互联网产品中,用户行为分析通常是指通过对产品中各种行为事件的统计和分析,挖掘和发现有用的信息,为产品设计和运营策略提供有意义的依据。

通常,用户行为分析包括以下流程:

数据采集数据清洗数据

在闲鱼中,我们有大量用户埋藏数据,信息丰富,但很少有效使用:

低利用率:埋点数据量大,非常混乱,通常只在特定场景下,会统计一些特定的埋点数据太原始:通常埋点是页面曝光、点击事件等,这些事件维度低,只有这些埋点不能表达一些高纬度事件,如点击搜索框->输入文字->进入搜索结果页面->点击搜索结果是一种完整的商品搜索行为。

那么,我们能否通过算法处理这些原始埋点,抽象出更高纬度的用户行为数据,并利用这些数据挖掘出有用的信息呢?

本文将分享闲鱼在用户行为分析中使用序列模式挖掘的尝试和应用。

1.什么是用户行为?

一般来说,我们将用户行为定义为由一系列行为事件串联而成的序列。这个定义对不同的粒度有不同的解释,如粗粒度、搜索商品->"聊天“->下单是一种用户行为,其中搜索商品是一种行为事件。

但在细粒度方面,搜索商品包含了许多较小的事件,如点击搜索框->输入文本->点击搜索按钮->查看搜索结果等,这些事件也可以从细粒度上定义为行为事件,此时搜索商品已成为用户行为。

因此,分析用户行为,首先要看我们从哪个维度进行分析。

在这篇文章,我们将行为事件定义为“页面跳转”和“按钮点击”两类事件,而用户行为则是“多个行为事件”根据时间顺序串联起来的序列。

对应到到数据形式上,每一个“页面跳转”都对应一个埋点,每一个“按钮点击”也都对应一个埋点,因此,用户行为分析,实际上也就变成了:埋点序列分析。

2.什么是序列模式挖掘?

序列模式挖掘是数据挖掘中的一种相关分析算法,用直白的话来理解,即:

挖掘出大量序列数据中频繁出现的子序列。

以我们埋点数据为例,用户产生的埋点数据,根据时间排列可以得到一串埋点序列(上图中埋点1到埋点7),而序列模式挖掘的作用,就是可以从大量用户的埋点序列中,找到其中隐藏着的模式:

埋点2->埋点4->埋点7(即大量用户出现埋点2->埋点4->埋点7这种行为模式,中间可能有其他埋点)。

利用序列模式挖掘,我们可以从用户埋点数据中找到一些有价值的用户行为模式。

3.如何应用3.1 发现未知行为

利用序列模式挖掘,可以总结和总结人群的行为共性。如果我们先根据行为数据对人群进行无监督聚类,然后对聚类人群进行行为序列模式挖掘,就可以总结人群的行为特征。

行为聚类的过程大致如下,感兴趣的朋友可以查阅相关资料,此处不再展开:

这里没有监督聚类可以根据人群的内在行为特征获得不同的人群。因为没有事先定义行为,你可以发现一些以前不知名的人,但也有一个缺点,那就是聚类结果的可解释性很差,为什么聚集在一起的人不知道。

行为序列挖掘可以解释一个人群的公共行为序列因此,结合聚类和序列模式挖掘,我们不仅可以找到不同的人,还可以解释这些人被分类的原因。

案例:发现未知黑产品人群

通过以上方案,我们分析了闲鱼用户的埋点,发现在聚集的人群中,有一个人群的行为序列是:

商品搜索结果页->打开商品->点击聊天->发送文件->返回商品搜索结果页面->打开商品->点击聊天->发送文件”

抽样查看这群人发送的文件,发现都是广告视频,也就是说,这些都是黑色生产账户,不断向其他用户发送广告视频,这些黑色生产行为是我们最初的未知(不需要提前知道这种行为的存在)。

与原来的补漏型黑产防控相比,这种方法具有以下优点:

没有经验预设,你可以快速从数据中找到数据中找到新的黑色生产行为模式,而无需等积的用户反馈来填补空白。算法抽象的行为模式将比手动总结更准确。(大多数原始的预防和控制都是基于用户反馈,然后手动观察这些人的行为,并使用规则来识别和匹配这些行为)3.2 发现更多同类人群

假设我们有一个特定的人群样本(比如一批黑产品账号),如何通过这批小样本找到更大的同类样本?

我们可以通过序列模式挖掘出这些人行为的序列模式,然后将这些序列模式与所有人匹配,从而获得更广泛的人来满足这种行为模式。

案例:发现更多骚扰用户的黑色生产账户

在闲鱼中,有很多成熟的黑产防控方案,会输出很多黑产人。

其中一组是将广告放在个人简介中,然后用带有看我的简介文字的图片替换头像,最后不断向其他用户发送表达式,吸引用户观看简介中的广告。

这个群体是按照原来的策略输出的,平均每天可以找到1800个左右的黑产账号。

我们利用上述方案挖掘这一群体的公共行为:

搜索商品-点击商品-发起聊天-发送消息-点击个人主页-关注用户

通过这种行为模式,我们匹配了所有用户,获得了更大的人群。这些人都是经过验证的黑人账户。

通过交叉比较和人工验证,匹配行为模式:

产生的黑产账户比原策略多57% 。黑产账户的准确率达到 99%3.3 提供新的数据视角

通过挖掘所有用户的公共行为序列,我们可以得到一个行为序列表。有了这个表,我们可以通过统计每个用户发生这些行为数据的次数来获得一个新的数据,即用户行为次数表。这样,我们就可以从不同行为次数的角度挖掘更多的信息。

(由于行为组合的多样性,挖掘出的行为表中会有许多实际意义上的重复行为序列,可以使用 PCA 主成分分析过滤掉重复行为序列)

例如,在这些行为次数上,可以比较不同用户群体的差异(一个id 4633等行为序列:

当然,这样的数据需要进一步挖掘才能获得实际可用的信息对于不同的业务和问题,也有不同的使用方法。这里我们只是一个想法,我们继续尝试,希望从这个新的数据角度挖掘有用的业务信息。

4. 更多应用

当然,以上只是分享了我们在用户行为分析中使用序列模式挖掘的尝试。除了 这些方法,还有更多的应用场景。

例如,除了上述大粒度用户行为分析外,序列模式挖掘也可以用于小粒度场景。例如,分析用户行为是否有一些特定的模式(此时的行为可以定义为更详细的操作,如点击、滑动、长按等),以进一步帮助优化用户体验,发现异常等。

对于用户行为分析和序列模式挖掘,本文的案例只是冰山一角,希望到抛砖引玉的作用。

本文作者鱼技术-楚丰

原文链接

更多技术干货请关注云栖社区知乎机构号:阿里云栖社区 - 知乎

本文为云栖社区原创内容,未经许可不得转载。

Copyright ©2021 All rights reserved | 粤ICP备2021138463号-3

扫码免费用

源码支持二开

申请免费使用

在线咨询