个人博客:无奈何杨(wnhyang)
个人语雀:wnhyang
共享语雀:在线知识共享
Github:wnhyang - Overview
此前,我们已经成功搭建起最为基础的聚类指标体系,涵盖计数、求和、最大值、最小值、平均值、历史取值以及关联次数等维度,为数据的初步洞察提供了有力支撑。与此同时,规划在未来进一步拓展指标范畴,引入方差、标准差、趋势、连续次数等更为精细化的指标,力求全方位、深层次地挖掘数据价值。而此次探索之旅的重点,则聚焦于业务链指标。
究竟什么是业务链指标呢?其实,从名称便能直观知晓,业务链即由一系列紧密相连、按特定顺序排列的业务环节所构筑的链条。就拿互联网产品来说,用户从登录应用程序伊始,继而查看头像、切回首页、查看评论,这一连串流畅自然的用户行为轨迹,便是一条典型的业务链。在现实的业务场景之中,业务链的涵盖范畴极其广泛,无论是电商购物流程里的搜索商品、加入购物车、下单支付,还是在线教育平台上的课程选择、试听、报名缴费,无一不是业务链的鲜活例证。这些业务链背后潜藏的海量信息,能够借助业务链指标进行量化呈现,进而助力企业精准把脉业务流程的运行态势、洞悉用户行为的偏好与规律,为优化产品、提升用户体验以及精心制定营销策略筑牢坚实的数据根基。
业务链|埋点|行为模式
从前面阐述的内容来看,这些业务链本质上不就是对用户行为采集后所做的数据分析嘛!没错,而且在互联网产品的世界里,它还有一个更为人熟知的名字 —— 埋点系统。
埋点系统作为一种专门用于收集、存储以及分析用户行为数据的强大工具,在当今数字化运营的浪潮中扮演着至关重要的角色。其运作原理在于,通过在前端页面、移动端应用或者后端服务器等不同关键位置植入特定的代码片段(也就是我们所说的埋点),系统便能实时捕捉用户的一举一动,并将这些珍贵的数据迅速传输至数据存储中心。
从业务链指标的视角审视,埋点系统堪称业务链指标孕育的 “生命源泉”。它所采集到的海量用户行为数据,历经整理、聚合以及深度分析等一系列工序,最终蜕变成为一个个极具价值的业务链指标。就拿前文提及的电商购物业务链来说,埋点系统会全方位收集各个环节的用户参与数据,通过严谨计算不同阶段的转化率、精准洞察用户流失率等关键指标,直观且精准地反映出业务流程的健康状况。以搜索商品到下单支付这一典型业务链为例,埋点系统能够统计出搜索之后有多少用户毅然将商品加入购物车,又有多少用户最终顺利完成支付,进而水到渠成地得出各环节的转化率,助力企业精准揪出业务链中的瓶颈环节,进而有的放矢地优化购物流程。
在行为模式匹配的领域,埋点系统同样厥功至伟。它为行为模式匹配源源不断地输送丰富素材,使得企业能够基于海量用户行为数据,慧眼识别出特定的行为模式。例如,在游戏类应用场景中,通过埋点系统详细记录玩家从新手引导、关卡挑战、购买道具直至重复挑战关卡的一系列连贯行为,再巧妙利用精心设计的表达式进行深度解析。一旦发现玩家在某个关卡屡屡受挫、多次失败后频繁购买特定道具,继而重振旗鼓重新挑战的行为模式,企业便可对症下药,针对性地优化关卡难度、灵活调整道具定价策略,或者贴心推送相关引导教程,全方位提升玩家的游戏体验。与此同时,在防范刷单等恶意行为的战场上,埋点系统通过对用户行为展开密集采集与细致入微的分析,结合正向逐个匹配、反向最后匹配等先进的模式识别手段,能够以迅雷不及掩耳之势甄别出异常行为模式,为业务的正常运营保驾护航,营造公平竞争的良好环境。
无序业务链
无序业务链不关注业务发生的先后顺序,只要在特定时间范围内用户产生了某些既定行为,就会计算一次业务链。这种模式增加了数据采集与分析的灵活性,能挖掘不同行为组合的潜在价值。比如在视频网站上,用户在一天内观看了电影、电视剧、综艺节目等不同类型的视频,无论观看顺序如何,都可视为完成了一次无序业务链,通过分析此类数据,网站可了解用户的多样化视频喜好,为内容推荐提供依据。
顺序业务链
业务链指标通常对事件发生顺序有严格要求。以在线金融借贷业务为例,用户必须依次完成身份认证、填写详细个人资料,才能提交贷款申请,环节顺序不可颠倒。在程序实现时,要设置流程节点的先后校验机制,每触发下一步操作时,需验证前置步骤是否完成。从用户行为逻辑看,遵循顺序是正常流程的体现,关注顺序异常则可防范不法分子跳过关键审核环节骗取贷款,如未认证就提交申请等欺诈行为。
或业务链
“或” 逻辑为风控指标带来灵活性。以社交平台注册环节为例,用户完成手机号验证后,既可以接收短信验证码直接验证,也可以用微信、QQ 等第三方账号授权登录来完成后续流程,两种方式皆合规有效。开发中需用分支判断语句处理不同路径,引导用户顺利操作。从用户体验角度,多元选择可提高注册转化率;从风控层面,要确保各路径下身份真实性验证,防止虚假账号混入平台扰乱生态、进行恶意营销等。
时间间隔业务链
有时需引入事件时间间隔要素来精准洞察用户行为,即关联事件间的最大允许间隔时长。在证券交易风控领域,若用户频繁大额转账后,短时间内(如 1 小时内)又进行异常股票买卖操作,就会触发预警机制。程序员实现时,需用专业时间函数测算事件间隔并与预设阈值比对。正常投资者有思考决策周期,短期内仓促连续操作违背常规投资逻辑,可能是市场操纵、内幕交易前奏,风控及时拦截可维护市场公平公正。
次数业务链
除时间间隔外,有时还需增设次数限定条件。如某游戏平台为防刷道具行为,规定用户一日内登录游戏达 5 次后,才可用游戏金币兑换稀有道具。代码编写时要设置计数器变量跟踪用户行为次数,并依规则约束。普通玩家按正常节奏登录积累金币兑换道具,刷子账号则会短期内大量登录突破正常频率薅取虚拟资产,通过次数限制结合其他指标,可精准打击此类破坏游戏经济平衡的行为,保障多数玩家合法权益。
综合
通常各类业务链并非孤立存在,需相互协作配合,协同发挥最大功效。
业务链识别的实现方法
为了后面的讲述的方便,这里设定一种表达式表示业务链。
- a b c 无序,同时存在a、b、c即可。
- (a b c):表示顺序a、b、c。
- a|b|c:表示任意a、b或c(无序)。
- (a @1m b):表示a之后最大间隔1分钟后b。
- (a b|c d):表示a之后b或c后d。
- *3(a b) :表示重复3次顺序a、b。
- *n(a|b) :表示n次a或b。
(一)正向状态机
正向状态机是依据业务流程顺序精心构建的状态转换模型。以电商购物为例,起始于用户浏览商品,随后依次经过加入购物车、提交订单、支付成功等关键环节,每个环节均可视为一个明确的状态。我们可精心设计一个状态机,将初始状态设定为“浏览”,当用户把商品加入购物车时,触发“加入购物车”事件,状态随即切换至“购物车”状态;接着提交订单,进入“订单提交”状态,依此类推。在代码实现环节,借助如Spring Statemachine这类成熟的框架,清晰定义各个状态(如通过枚举类型呈现)以及状态间的转换条件(由特定事件触发)。在一个滑动的时间窗口内,比如统计过去1小时的业务链次数,每发生一次状态转换,就在相应计数器上加1,当窗口滑动时,更新过期状态的计数,这样就能精准算出该时段内业务链的完整次数,从而实时把握业务节奏。
具体思路:
在已配置业务链表达式的基础上将其转为一种业务链状态机,使用滑动的时间窗口用于计算一定时间内业务链的次数,如(a @1m b (c|d)),依次顺序匹配到事件,首先匹配到a将其加入时间窗口。
然后的事件可以是a也可以是b,a的话也加入时间窗口,用于在前一个a超过时间窗口时,作为头部。
b的话则需要比较与上一个a事件的时间间隔,如果大于最大时间间隔,那么后面匹配就提前失效了,所以状态机不用继续下去了,回到原点a吧。但是如果是在间隔范围内,那么就可以继续下一步,下一步就很复杂了不单单是c或d的事情了,同时还要考虑a和b,a事件再来了怎么办,新的b事件怎么办。要考虑的还是挺多的,而且对于复杂嵌套的业务链更是头疼,难搞。如果你有什么思路手段可以讲一下🥹。
(二)反向模式匹配
反向模式匹配采用的是从业务链末端逆向回溯的策略。假设在内容创作平台,最终业务链是用户发布文章后获取收益。我们逆向探寻,首先锁定“获得收益”这一终点状态,然后往前匹配是否有“文章审核通过”“文章提交”等前置条件在规定时间内发生。在代码实现方面,可以从存储用户行为日志的数据库入手,以收益记录为起始点,依时间倒序检索相关行为记录,借助正则表达式或精确的字段比对来识别符合业务链模式的记录,一旦匹配成功,对应的业务链次数计数器便增加。这种方式在挖掘潜在风险、追溯异常源头方面非常有效,例如排查刷量骗酬行为时,即便不法分子伪装了中间环节,通过反向追溯也能直击关键起始动作的真伪 。
具体思路:
简单的来讲有点像正则匹配,首先,将所有事件编码成串或是其他的什么形式,甚至是网格、树、网络等数据结构,做一种匹配算法能在这样的数据结构中匹配,还是上面的例子假如有设置这样的业务链(a @1m b (c|d)),事件数据已经采集下来了有:aabacadcsrgraskborgwnraf表示最新时间窗口内的事件,通过这样的算法能计算出满足这样的业务链的次数,而且算法还可以选择是否可以重复计算,也就是说同一个节点能不能利用多次!
讲实话,这个一点都不如上面的简单,尤其是想提升性能和灵活调整窗口的时候,数据结构如何设计,就是事件字符串的拼接?还是其他的?能不能说有一种神奇的物质,对于不同的事件能标记不同颜色,要匹配的业务链丢进去,同颜色的亮起来,连接到一起了?会有吧?!
Flink是如何做的
前面都是在没有flink情况下的讨论,至于flink我其实也不是特别熟,只是听过,大概是干嘛的,怎么用、核心是什么并不知道。
说个题外话:不知道你们相不相信有那种人,简单来讲就是天才,不是自夸🤣。比如在未接触过微积分的时候发现微积分的方法,然后偶然发现这个东西几百年前已经被牛顿和莱布尼茨等人搞出来并逐步完善。我想说的是,现实中也许真的有这样的天才,我遇到过,虽然没有发明微积分这么夸张,但是也是挺聪明的。好吧,题外话结束!
简单的聚类指标
Flink作为一款强大的分布式流处理框架,应用十分广泛。以简单的聚类指标为例,就电商用户行为而言,可借助Flink的K-Means聚类算法来实现。假设对用户的浏览、购买行为进行聚类,将消费模式相近的用户归为一组。首先从数据源(如日志系统收集的用户行为数据)读取数据,再通过Flink的DataStream API获取用户浏览商品的类别、价格区间,以及购买的频次、金额等特征来构建数据点。运用K-Means算法时,先初始随机设定几个聚类中心,在每一轮迭代中,Flink依据数据点与聚类中心的欧式距离(通过自定义函数实现距离计算),把数据点分配至最近的聚类中心,随后更新聚类中心位置,经多次迭代直至聚类中心稳定。借此,能够快速识别出高消费、低频浏览,或是低消费、高频浏览等不同行为模式的用户群体,进而针对不同群体优化推荐策略、调整相应侧重点,比如对高消费群体强化交易安全验证,对高频浏览低消费群体防范薅羊毛风险。
窗口计算
窗口计算是Flink处理流数据的核心技术,具有重要意义。例如在实时监测用户登录行为时,可运用滑动窗口统计一定时间内(如过去1小时)用户的登录次数。基于事件时间语义,能够确保在分布式环境下,无论数据何时到达,都能依据事件发生的真实时间划分窗口。通过Flink的Window API,设定窗口大小为1小时,滑动步长为15分钟,当新的登录事件流入时,窗口分配器会将其分配至对应的窗口,然后利用ReduceFunction对窗口内的登录次数进行累加统计。一旦发现某个用户在窗口内的登录次数超出预设阈值(如5次),结合IP地址、设备信息等其他特征,可判定可能存在账号安全风险,此时需及时触发预警,冻结账号或要求二次验证,以保障用户账户安全。
复杂的模式匹配
Flink CEP(Complex Event Processing)库能够处理复杂的事件模式匹配,从而精准识别风险行为模式。以金融交易为例,需监测用户短期内频繁转账且资金流向可疑账户的行为。可定义一个模式,先用.begin(“start”)指定起始事件为用户发起转账,通过.where()设置条件,如转账金额大于特定阈值(如5万元);接着.followedBy(“middle”)表示后续紧跟的事件,再次用.where()限定接收账户为高风险名单中的账户;还可设置.times(3).within(Time.hours(2)),即这种转账到可疑账户的行为在2小时内发生3次及以上。当Flink CEP引擎侦测到符合该模式的事件流时,会迅速触发风险处置流程,暂停交易、通知人工审核,阻拦潜在的诈骗资金转移,凭借其强大的模式构建与实时匹配能力,为金融交易保驾护航 。
实际案例深度解析
电商 “黄牛党” 行为模式剖析
电商大促期间,“黄牛党”十分猖獗,他们的行为有明显特征。他们会批量浏览高端电子产品、限量版运动鞋等高热度、高利润商品,完全不管正常购物顺序,短时间内高频点击商品详情页,这和普通用户精心挑选商品的行为很不一样。普通用户一般遵循浏览 - 加购 - 下单 - 支付的流程,而“黄牛”常利用程序脚本直接下单,跳过加购环节,扰乱业务流程。比如在某电商平台抢购茅台,普通用户限购两瓶,“黄牛”却凭借虚拟IP、多账号切换,批量下单抢购,再高价转卖。从购买时间间隔和次数来看,普通消费者买家电等大件商品,决策周期可能有好几天,期间会浏览、收藏、比对不同品牌款式,购买操作间隔久、次数少;“黄牛”为囤货套利,会在几小时内频繁下单,且订单都集中在热门紧俏商品上,与正常消费节奏完全不同。平台通过监测这些异常行为,精准识别并拦截“黄牛”订单,保障公平交易环境。
金融诈骗行为的模式识别原理和实现方法
金融诈骗行为很隐蔽,但风控手段能揭开其伪装。以常见的网络贷款诈骗为例,一开始,诈骗分子诱导受害者点击不明链接,受害者会在短时间内访问多个非法金融类网址,这些网址大多没备案、内容粗糙,和正规金融机构官网的严谨风格差别很大。正规贷款流程是用户主动申请 - 平台审核资质 - 评估额度 - 放款,诈骗分子却反着来,先以各种理由让受害者缴纳“手续费”“保证金”,跳过资质审核环节。在时间间隔上,正常贷款申请,用户提交资料后要等平台审核,时间以天计算,而诈骗场景下,犯罪分子催促受害者在半小时内连续转账多次,完成“缴费”后迅速失联。平台利用大数据分析用户上网行为、转账时间与频次等,构建风险模型,通过正向状态机追踪业务链异常中断、反向模式匹配追溯资金异常流向起点,识别出诈骗套路,及时冻结相关账户,阻止损失扩大。
社交平台虚假账号的行为模式及风控应对
社交平台虚假账号旨在营造虚假热度、传播不良信息。其行为模式表现为无序浏览各类话题,快速点赞、评论,内容多为无意义表情、简单重复语句,如在明星八卦话题下刷大量 “666”“支持”。注册后,不像真实用户逐步完善资料、寻觅好友互动,而是急于批量添加好友、加入群组,或注册后即刻向大量陌生用户发送广告链接。在注册环节,虚假账号常借助自动化工具,通过批量手机号注册或盗取社交账号权限登录,避开平台实名认证。平台借助机器学习算法,对用户发言内容、行为时间序列聚类分析,识别出行为模式偏离正常区间的账号,结合验证码升级、人脸识别等二次验证手段,阻断虚假账号渗透,净化社交生态。
小结
最近前端项目做了一点,es与kibana看了看。
写在最后
拙作艰辛,字句心血,望诸君垂青,多予支持,不胜感激。
个人博客:无奈何杨(wnhyang)
个人语雀:wnhyang
共享语雀:在线知识共享
Github:wnhyang - Overview