作者:闲鱼技术-楚丰

背景

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

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

  1. 数据埋点
  2. 数据采集
  3. 数据清洗
  4. 数据展现

在闲鱼中,我们有海量用户埋点数据,这些数据信息量丰富,但是却很少有效地利用起来:

  1. 利用率低:埋点数据量大并且非常杂乱,通常都只是某个特定场景下,会统计某些特定埋点数据
  2. 数据太“原始”:通常埋点都是某个页面曝光、某个点击事件等等,这些事件维度“低”,单用这些埋点不能表达某些“高纬”的事件,比如“点击搜索框->输入文字->进入搜索结果页->点击搜索结果”为一次完整搜索商品行为。

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

本文我们将分享闲鱼在用户行为分析中,利用“序列模式挖掘”所做的的一些尝试和应用。

1.什么是“用户行为”

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

但是从细粒度上来看,“搜索商品”包含了多个更小的事件,比如“点击搜索框->输入文本->点击搜索按钮->查看搜索结果”等,从细粒度上这几个事件同样可以定义为行为事件,此时“搜索商品”就变成了一个用户行为。

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

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

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

2.什么是“序列模式挖掘”

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

从大量的序列数据中,挖掘出频繁出现的“子序列”

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

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

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

3.如何应用

3.1 发现未知行为

利用序列模式挖掘,可以“归纳”和“总结”人群的行为共性,那么如果我们先根据行为数据对人群进行无监督聚类,然后再对聚类出的人群进行行为序列模式挖掘,就可以“归纳”出该人群的“行为特点”。

行为聚类的流程大致如下,有兴趣的朋友可以查阅相关资料,这里不再展开:

这里无监督聚类可以根据人群内在的行为特性,得到不同人群。因为没有事先进行行为定义,因此可以发现一些以前未知的人群,但是同时也产生了一个弊端,就是聚类结果可解释性差,聚类出的人群为什么被聚到一起不得而知。

而行为序列挖掘恰恰可以“解释”一个人群的公共行为序列,因此结合聚类和序列模式挖掘,既可以发现不同的人群,又可以解释这些人群被分类的“原因”。

案例:发现未知黑产人群

用上述方案,我们对闲鱼的用户埋点进行分析,发现聚类出的人群里,有一个人群的行为序列是:

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

抽样查看这群人发送的文件发现,全部都是广告视频,也就是说,这些都是黑产账号,不断的在发送广告视频给别的用户,而这些黑产行为,是我们原先“未知”的(不需要提前知道这种行为的存在)。

这种方式相比原来的“补漏”型黑产防控有以下优势:

  1. 没有经验预设,可以快速从数据中发现新型的黑产行为模式,而不必等到大面积用户反馈以后做补漏。
  2. 算法抽象出来的行为模式相比人工“总结”会更加准确。(原来的防控大多数是根据用户反馈,然后人工观察这些人的行为,并用规则去识别匹配这些行为)

3.2 发现更多同类人群

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

我们可以通过序列模式挖掘,挖掘出这些人群行为的序列模式,然后再用这些序列模式匹配所有人群,这样就可以得到一个更大范围的,满足这个行为模式的人群。

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

在闲鱼中,针对黑产的防控,有很多已有的成熟方案,这些方案会输出很多黑产人群。

其中一个人群,是将广告放在个人简介里,然后头像换成带有“看我简介”文字的图片,最后不断发送表情给别的用户,吸引用户去看简介里的广告。

这个人群是根据原来的策略产出的,平均每天能够发现大约 1800 个左右的黑产账号。

我们利用上述方案,挖掘这个人群的公共行为:

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

通过这个行为模式,我们再去匹配了所有用户,得到了更大的一个人群。这些人群经过验证,都是黑产账号。

经过交叉比对和人工验证,用行为模式匹配的方式:

  1. 比原来的策略多产生了 57% 的黑产账号。
  2. 产出的黑产账号准确率达到 99%

3.3 提供新的数据视角

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

(挖掘出的行为表,因为行为组合的多样性,所以会有很多实际意义上重复的行为序列,可以用 PCA 主成分分析法来过滤掉重复的行为序列)

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

当然,这种这样的数据还需要进一步挖掘才能得到实际可利用的信息,针对不同业务和问题,也有不同的利用方式,这里我们也还只是一个思路,我们也在继续尝试,希望能从这个新的数据视角挖掘到对业务有用的信息。

4. 更多应用

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

比如除了上述这些较大粒度的用户行为分析,序列模式挖掘还可以用在更小粒度的场景上。比如分析单个页面内,用户行为是否有一些特定的模式(此时的行为可以定义为更细致的操作,如点击、滑动,长按等),从而进一步帮助优化用户体验,发现异常等。

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

聚类分析在用户行为中的实例_序列模式挖掘在用户行为分析中的应用相关推荐

  1. c#中overlord实例_具有Overlord的WildFly 8.1中的API管理

    c#中overlord实例 昨天,我简要介绍了霸王项目家族. 今天是时候进行试驾了. API管理子项目两天前发布了1.0.0.Alpha1,并根据18个月的路线图介绍了第一组功能. APIMan到底是 ...

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

    背景 在互联网产品中,用户行为分析,通常是指通过统计.分析用户在产品上的各种行为事件,挖掘.发现出有用的信息,为产品的设计,运营策略提供有意义的依据. 通常,用户行为分析包含以下流程:数据埋点-> ...

  3. 聚类分析在用户行为中的实例_聚类分析的简单案例

    基本概念 聚类就是一种寻找数据之间一种内在结构的技术.聚类把全体数据实例组织成一些相似组,而这些相似组被称作聚类.处于相同聚类中的数据实例彼此相同,处于不同聚类中的实例彼此不同.聚类技术通常又被称为无 ...

  4. 聚类分析在用户行为中的实例_聚类分析案例

    一.数据挖掘的常用方法 利用数据挖掘进行数据分析常用的方法主要有分类.回归分析.聚类.关联规则.特征.变化和偏差分析.Web页挖掘等,它们分别从不同的角度对数据进行挖掘. 分类.分类是找出数据库中一组 ...

  5. 聚类分析在用户行为中的实例_用户关注行为数据分析过程详解-描述统计+聚类...

    以下是基于一小段用户关注产品的行为数据分析过程详细描述,各位老师如有不同意见或优化建议,还请不吝赐教. 一.数据大致是这样的(已经脱敏处理) 二.数据预处理 从年款提取出年限,从价格标识出价格区间,随 ...

  6. 聚类分析在用户行为中的实例_如何对用户进行聚类分析?

    需要搜集用户的哪些特征? 聚类分析变量选择的原则是:在哪些变量组合的前提,使得类别内部的差异尽可能的小,即同质性高,类别间的差异尽可能的大,即同质性低,并且变量之间不能存在高度相关. 常用的用户特征变 ...

  7. GEF入门实例_总结_04_Eclipse插件启动流程分析

    一.前言 本文承接上一节:GEF入门实例_总结_03_显示菜单和工具栏 注意到app目录下的6个类文件. 这6个文件对RCP应用程序而言非常重要,可能我们现在对这几个文件的理解还是云里雾里,这一节我们 ...

  8. 语义分割模型中分辨率恢复_语义模型在智慧工业运营中的作用

    语义分割模型中分辨率恢复 在围绕智慧地球解决方案的讨论中,我们经常描述三个关键要素. 有时会标记为三个" i",分别是"仪表","智能"和& ...

  9. 程序解析excel中的图片_产品日志丨支持导入Excel中的图片amp;批量修改后期实体字段...

    本次安捷秀又迎来了一个大版本更新,除了大家呼声很高的「实体模块导入 Excel 」外,还有「批量编辑实体」,「支持右击修改」以及针对海外用户的「全页面支持英文」等功能的新增与优化,一起来看看吧. 导入 ...

最新文章

  1. Linux_LAMP 最强大的动态网站解决方案
  2. 流控制、FlowControl
  3. 翻译题(map使用)
  4. linux下的文件系统,Linux根文件系统(“/”文件系统)下的目录介绍
  5. python安卓版开发环境搭建_React Native Android 开发环境搭建(Windows 版)
  6. 简易的深度学习框架Keras代码解析与应用
  7. NASA 遭攻击,安全 Bug 仍未解决!
  8. Flutter学习 — 创建一个 grid List
  9. MultipartFile多文件上传
  10. 汽车控制器软件开发模式调研
  11. 2020 Java 全栈工程师进阶路线图,不可错过
  12. OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
  13. WIN10企业版未激活如何解决
  14. AUTOEXEC.BAT及CONFIG.SYS文件用法
  15. 原生JS实现拖动拉开序幕特效
  16. JAVA 吃货联盟-北大青鸟--第十七章--
  17. 水果贵到吃不起,“水果自由”要电商平台来实现?
  18. Sublime text3 打开txt文本文件时出现乱码问题解决
  19. HTML5新特性结合PHP实现多图片格式转换功能 欢迎讨论
  20. 安装R的机器学习GUI工具rattle包

热门文章

  1. 基础 | 深度学习与神经网络-介绍
  2. 面向高精度领域的视觉伺服算法汇总
  3. 简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
  4. 激光雷达与相机—哪种更适合自动驾驶?
  5. CNN 的一些可视化方法!
  6. Lambda表达式关于like问题(未解决)
  7. SQL优化常用方法36
  8. Linux之 xstart调用 x11vnc远程图形化桌面
  9. Cocos2d入门--3--向量的应用
  10. API HTTP 请求调试:Postman