Louvain算法在反作弊上的应用

图片

作者 | ANTI

一、概述

随着互联网技术的发展,人们享受互联网带来的红利的同时,也面临着黑产对整个互联网健康发展带来的危害,例如薅羊毛、刷单、刷流量/粉丝、品控、诈骗、快排等等,反作弊作为打击黑产的中坚力量,持续跟黑产对抗着,保证搜索/feed效果的客观公正,保证广告主的合法权益。近年来反作弊算法能力持续提升,黑产很难通过大规模机刷方式获利,已从大规模机刷转向更加隐蔽的小团伙作弊,因此,反作弊进行了团伙作弊挖掘的探索,Louvain就是比较经典的一个算法,下面详细介绍下。

二、Louvain简介

2.1 模块度定义

模块度是对社区划分好坏程度的一种度量,当社区内部的点之间连边越多,社区之间的点连边越少时,模块度越大,表示当前的社区划分情况越好,公式定义如下:

模块度是对社区划分好坏程度的一种度量,当社区内部的点之间连边越多,社区之间的点连边越少时,模块度越大,表示当前的社区划分情况越好,公式定义如下:

图片

其中图片表示所有边权和,图片表示节点 i 和 j 之间的权重,图片表示与 i 相连的所有边的权重和,图片表示节点 i所在的社区,图片表示 x 和 y 是否相同,是的话为 1,否则为 0。

公式并不好直接理解,进行一定的变换可得

图片

其中 c 表示社团,图片表示社区 c 中所有节点的之间的边权和,图片表示社区 c 中所有节点与其他节点的边权和。

模块度前一项描述的是社团内节点之间的边权,该值越大,模块度越大。第二项描述每个社团中所有节点的边权和平方,分母为常量,当所有节点(严格来说是节点的度,即边权)在不同社区中分布越均匀,第二项越小,模块度越大。(第二项重要程度与社团实际的分布情况有关,比如风控场景社团大小分布极不均匀,就会导致第二项结果偏大,模块度偏小,导致模块度的优化目标与实际场景冲突。)

2.2 算法

louvain 以最大化模块度为优化目标,根据模块度公式,整个社区的模块度可以以各个社区为单位计算后求和得到,louvain算法的流程如下:

初始化
将社团中每个节点都看做一个单独的社区。

阶段1:节点合并
遍历所有节点,计算当前节点脱离当前社区,且加入到邻居节点所在社区时,带来的模块度增益,把当前节点移动到增益最大的邻居节点社区中。

图片

每次计算节点 i 从社团 D 移动到社团 C 中时,根据模块度计算公式可知,此时产生的模块度变化只与当前C、D社区相关,不与其他社区相关,因此计算成本较低,将节点 i 从社区 D 转移到 C 中带来的模块度增益为:

ΔQ=ΔQ(D→i)+ΔQ(i→C)

直至节点移动不再产生增益,阶段1停止。

阶段2:社区聚合
将同一个社区的多个节点,融合为一个新的节点,社区内节点之前的权重后续不再使用,当前社区与其他社区之间的权重为两个社区所有节点的权重和,从而构建出新的图结构。
回到阶段1不断迭代,直至图结构不再产生改变。

louvain基于贪心算法实现,实际数据中的平均复杂度为 O(nlog(n)),当每一轮迭代中节点数量降低一半时,能达到平均复杂度。

整体流程如下:

图片

三、在反作弊应用

因黑产作弊的收益较大,作弊者就算冒着违法被抓的风险,也有充足的时间和动力与风控团队对抗,在实际业务场景中,过去作弊者最常使用的方式是低成本批量机器作弊被我们严格打击殆尽,目前也只能逐步迁移成了高成本小批量团伙人为作弊,这是黑产攻击方式的演化趋势,也是风控团队技术发展的必要趋势。
我们看一个电商风控的业务场景。少数店铺为了构造虚假的用户体验评分、更优的算法推荐,铤而走险组建团队做起了刷单套利、刷评分等非法操作。而商家获得的非法收益最终却由用户买单。为了还原真实的互联网、给用户带来最优质的体验 ,我们对作弊团伙进行了持续挖掘对抗。
我们基于经典的Louvain算法实现关系网络模型,将作弊数据中错综复杂的关系抽象成数学表达,我们得到层次化的社区发现结果,如下图所示。其中第一张图描述了风险账户的社区发现结果,第二张图描述了交易订单的社区发现结果,精准定位了作弊团伙,拦截作弊订单/交易,增强了风险防控能力,联合公司法务部对多个作弊黑产团伙也进行了数次抓捕。

社区发现示例图一

图片

社区发现示例图二

图片

四、优化

4.1优缺点

优点

1. 平均时间复杂度较低,计算速度相对较快;
2. 支持定义边权 ;
3. 包含层次结构的社团,可以依据社团大小、社团特殊属性来限制最后形成的社团。类似决策树中根据增益、叶子节点数量来限制节点分裂 。

缺点

1. 多轮迭代,不支持流式系统 ;
2. 最差时间复杂度较大,小概率遇到边界数据时,耗时较长;
3. 实际情况中数据分布不均匀时,模块度定义的第二项会产生一定负干扰。

4.2优化思路

模块度的最优求解本身是个 NP 问题,即时间复杂度为 O(M!),常规数据中无法在短时间内求到最优解。louvain就是利用贪心算法对求解过程做了一定优化,但在 louvain 的基础上,还可以做以下优化:

1. 利用边属性对社团中的边进行关于合并优先级的排序,能取消louvain的多轮迭代,适配流式计算系统。比如边介数:社团中任意两个点的最短路径通过该边的次数;
2. 实际数据中社团分布不均匀时,建议降低模块度中第二项的权重。

---------- END ----------

参考:

[1]原始paper:https://arxiv.org/abs/0803.0476 [2]stanford keynote:http://web.stanford.edu/class/cs224w/slides/14-communities.pdf [3]louvain:https://towardsdatascience.com/louvain-algorithm-93fde589f58c

推荐阅读【技术加油站】系列:

百度用户产品流批一体的实时数仓实践

ffplay视频播放原理分析

百度工程师眼中的云原生可观测性追踪技术

使用百度开发者工具 4.0 搭建专属的小程序 IDE

百度工程师教你玩转设计模式(观察者模式)

揭秘百度智能测试在测试自动执行领域实践

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61829.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

艾永亮:酒瓶中的战争,谁是下一瓶被拿起的葡萄酒

1972年2月,美国总统尼克松访华。为庆祝中美关系破冰,尼克松特意从美国带来了干红葡萄酒,并开玩笑道:“中国很大,但缺少葡萄酒和时尚女性。” 47年后,你站在酒柜前,面对着琳琅满目又大同小异的葡…

基础实验5-2.2 电话聊天狂人(Map的使用+例题)

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 文章字体风格: 红色文字表示:重难点 蓝色文字表示:思…

人员抽烟行为识别检测算法

人员抽烟行为识别检测系统基于YOLOv7 技术方法,对画面开展724h无间断分析。大大提升效率,减少了人力成本。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的 GPU 设备。除了架构优化之…

程序员哥们儿在面试提问环节被挂了!

扫 码 带 你 走 进 程 序 员 的 欢 乐 源 泉 最近看到一张网友分享的聊天截图: 一程序员面完技术三面,最后面试官说很不错,面试通过了,问这个人还有什么问题,于是这位“耿直”程序员说:你们面试太简单了&am…

培训机构出来的同学背了这些面试题,拿了12K,把我给羡慕坏了

前言: 首先介绍一下我的同学,专科毕业应用电子技术专业,已经毕业快两年了。因为专业的原因工作一年觉得没什么发展前途就想转行,身为他的“好基友”,他觉得我这个工作挺好的,就咨询了我一下,经…

软件测试整套面试流程要注意这些事情,做好了真的能收到offer【建议收藏】

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法…

面试施工员的时候你知道会问什么问题吗?

一、施工员常见面试题有哪些? 1、钢筋锚固长度的规定。 2、梁模板模起供高度。 3、混凝土道路施工有什么特别注意的地方吗? 4、施工现场用水量的计算依据。 5、外墙裂缝的产成原因? 6、你所知道的材料预控措施有哪些? 7、讲一讲你的工作经历,以前从事哪些项目的…

软件测试面试技巧 这么准备,拿下心仪offer不是问题

拥有一个心仪的offer,是每个软件测试工程师们都梦寐以求的事情,那如何才能通过最后的面试一关,拿到offer呢? 俗话说,知己知彼百战不殆,作为测试员,在面试前对面试官可能提出的问题进行总结和准…

软件测试面试话术 这样准备,让你成功拿到高薪offer

面试就是就是进入岗位前的临门一脚,如果因为准备不足而导致面试失败那可就亏大了!因此,为了帮助大家提高面试成功率,尽快拿到高薪offer,我为你们准备了一套面试话术以及技巧,希望对即将参加软件测试面试的你…

今天面试招了个18K的人,从腾讯出来的果然都有两把刷子···

公司前段时间缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-20k,面试的人很多,但平均水平很让人失望。看简历很多都是4年工作经验,但面试中,不…

软件测试100%(打包票必问)面试题:介绍下你做过得项目、学会必拿offer

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法…

开学季,孩子们怎么学习?

(1)学习 我首先想告诉大家一下: 素质教育靠家庭知识教育学校技能教育靠自己 你想在学校里学到工作挣钱的本事,你想在企业里学到工作挣钱的本事,门儿都没有,这个大家要有清醒的认识。 一、小学学什么 小学其…

优秀期刊《儿童绘本》CN刊物征稿

《儿童绘本》 《儿童绘本》是由国家新闻出版管理部门批准,由吉林省舆林报刊发展有限责任公司主管主办,国内外公开发行的全国优秀期刊。国内统一连续出版物号CN 22-1406/J;国际标准连续出版物号ISSN 1673-954X 以“普及绘本知识,推…

steam/csgo搬砖靠谱吗?难做吗?

Steam-csgo搬砖难不难做?我告诉你并不难,任何行业都是入局简单,但是你先搞懂里面的思维逻辑,稳定利润的话就需要花点功夫~有两条路可走,一就是不断踩坑试错,用自身去换取经验。第二就是知识付费&#xff0c…

备战系统分析师——第2章经济管理部分

正在备考2023年5月底的软考--系统分析师。这次让我们聊一下第2章的经济管理部分。 首先是会计常识,这是我第一次接触会计知识,很多东西还是很新奇的。会计计价有两种方式,历史成本计价和公允价值计价,我理解历史成本计价就是在做会…

【人工智能】突破界限:LLM 大语言模型在推动基于AI的语言处理方面的极限,大模型发展历史,对AI带来的变革,对各行各业的影响,未来的发展趋势,大模型的能力极限在哪里?

突破界限:大型语言模型推动基于AI的语言处理发展 文章目录 突破界限:大型语言模型推动基于AI的语言处理发展1. 引言2. 大型语言模型的发展史时间线关键阶段3. 基于大型语言模型的AI变革4. 对各行各业的影响各行各业影响LLM的应用5. 未来的发展趋势6. 大型语言模型的能力极限总…

学生如何使用chatGTP提升学习能力?

短短两三个月,ChatGPT炸圈范围越来越大,很快就从科技圈来到了教育界。前段时间,北密歇根大学的哲学教授Antony Aumann在批改论文的过程中发现一篇论文好到令人感到震惊。这篇论文逻辑严谨,措辞得当,结构清晰&#xff0…

搭建一个定制版New Bing吧

项目介绍 项目地址:https://github.com/adams549659584/go-proxy-bingai 引用项目简介:用 Vue3 和 Go 搭建的微软 New Bing 演示站点,拥有一致的 UI 体验,支持 ChatGPT 提示词,国内可用,国内可用&#xff…

用AI生成思维导图的方法

写在前边: 这篇文章很简单,只为给自己做个记录。并且做一个简单的思考:明明很容易的东西,一旦陷入了思维困境中,就无法找到出去的路。这时候需要扩展思维或者他人提点。 正文: 就挺尴尬,之前…

AI 迈入职场,人类该如何保持竞争力?

AI(人工智能)这个术语最早是在 1956 年由约翰麦卡锡(John McCarthy)等人提出的。当时,人们对 AI 的定义是:能够模拟人类思维过程的机器。 然而,最初的 AI 系统往往是基于人类专家知识的规则系统…