FRAUDARCatchSync算法简介

news2024/11/17 13:22:13

参考:https://blog.51cto.com/u_15127663/2778705

1. 背景

        Fraudar 要解决的问题是:找出社交网络中最善于伪装的虚假用户簇。虚假用户会通过增加和正常用户的联系来进行伪装,而这些伪装(边)会形成一个很密集的子网络,可以通过定义一个全局度量,再移除二部图结构中的边,使得剩余网络结构对应的度量值最大,找到最紧密的子网络,即最可疑的作弊团伙。

1. 建立优先树(一种用于快速移除图结构的边的树结构);

2. 对于二部图中的任意节点,贪心的移除优先级最高的节点,直至整个网络结构为空;

3. 比较上述每一步得到的子网络对应的全局度量,取该值为最大的子网络(最密集的子网络),即最可疑的团伙。

2. 可疑程度度量

        最关键的地方是定义一个描述可疑程度的度量,要求其有如下性质:

1. 可扩展性;

2. 具备理论上的“界”;

3. 对抗虚假行为的鲁棒性。

特别地,该度量可以理解成子网络中每个节点的平均可疑程度。令A\subseteq U 代表用户节点的子集,B\subseteq W 代表目标节点的子集,那么 S=A\bigcup_{}^{}B ,而 g(s)=f(s)/|s|f(s)=f_{v}(s)+f_{e}(s)

那么可疑程度的度量被定义为:V=U\cup W

其中:f_{v}(s) 表示S 中节点本身的可疑程度之和,f_{e}(s) 表示  S 中节点之间边的可疑程度之和,整个公式表示点和边的总可疑程度。可以得出4条性质:

1. 如果其他条件不变,包含更高可疑度节点的子网络比包含较低可疑度节点的子网络更可疑;

2. 如果其他条件不变,在子网络中增加可疑的边会使得子网络更可疑;

3. 如果节点和边的可疑程度不变,那么大的子网络比小的子网络更可疑;

4. 如果节点和边的总可疑程度相同,那么包含节点数少的子网络更可疑。

        该算法的核心是:贪心地移除图中的点,使得每次变更f 的变化最大。在移除一个节点时,只有与之相邻的节点会发生变化,那么这样最多产生O(|E|)次变更,如果找到合适的数据结构使得访问节点的时间复杂度为O(log|V|),那么算法总的时间复杂度就是O(NlogN)。基于这样的考虑建立优先树(二叉树),图中的每个节点都是树的一个叶子节点,其父节点为子节点中优先级较高的节点。这棵树建完之后就可以按照O(log|V|)的速度获得优先级最高的节点。

3. 如何识别虚假行为?

        可通过列权重下降的方法来实现。不能简单的将每条边的嫌疑程度设为相等,因为出度和入度大的节点,可能真的就是很受欢迎的节点。

      如大V用户和销量不错的商品,这些节点都是天然存在的,并不是虚假的。如果每条边的嫌疑程度相等的话,那么在最大化可疑程度的度量时,就会聚焦于这些出度和入度较大的点,而不是聚焦于紧密的子网络。所以如果存在节点i 到一个出度和入度较大的节点j 的边,就需要将其边对应的嫌疑程度降低,这就是列权重下降法。

        该方法不仅关注出度和入度较大的节点,而且更关注紧密的子网络。eg: 在邻接矩阵中,令行代表用户节点,列代表目标节点,那么虚假用户向正常的目标节点增加边并不会使得子网络的嫌疑程度变低。因为虚假用户向正常的目标增加边只会使正常目标对应的嫌疑程度下降,而嫌疑子网络内的权重却不会发生变化。实验表明,列权重下降函数选择类似TF-IDF形式的函数时,算法表现会比较好。

4. 算法优缺点

1. 优点

1. 采用了“贪心”的计算思想,运行速度很快;

2. 原理清晰明了,且能够给出理论上的“界”;

3. 能够识别虚假行为。

2. 缺点:

1. 因采用贪心算法,所以不能保证得到全局最优解;

2. 原始算法只能找出一个最紧密的子网络,即可以程度最大的子网络;

3. 只考虑了边的权重,没有考虑节点的权重(或节点的权重都设为相等的常数),且节点和边的嫌疑程度需要自定义。

5. 应用

5.1 一个改进:循环Fraudar 算法

    在网络结构中找出最可疑的子网络后,移除子网络中所有相关的边,再使用Fraudar 算法对剩余的图结构进行挖掘,找出次可疑的子网络。最终得到可疑程度由高到低排列的多个子网络。

5.2 识别虚假社交关系

        在社交平台和电商网络中,用户与用户或用户与商品之间会形成巨大的有向网络。而由于虚假行为的存在,这个有向网络中被注入了异常的行为模式。如:

Twitter、Facebook、微博等社交平台中会有虚假的关注、转发等;

而Amazon、淘宝等电商平台中会有误导性评论、虚假交易等。

        在这些静态的有向网络中,可疑的异常行为会形成一个紧密的子网络(可通过Fraudar 算法贪心找到)。

6. CatchSync 算法

        利用了两个容易被欺诈者忽视的特点,一个是同步行为特性,另一个是稀有行为特性。大多数情况下,异常的行为模式往往是稀少而集中的,可以设计算法来捕捉它们,CatchSync正是基于同步行为特性和稀有行为特性来找到有向网络中的异常行为模式的。

6.1 原理

        是基于图的性质提出的异常识别算法,在有向图结构中,可以利用很多性质,如:

1. 基本的出度和入度;

2. HITS(Hyperlink-InducedTopic Search) 得分;

3. 中介中心性(betweenness centrality);

4. 节点的入权重和出权重;

5. 节点对应的左右奇异值向量的第i 个元素值。

        CatchSync 算法利用了HITS得分中的权威度和入度,将其作为基本的特征。并基于此提出了两个新概念来研究源节点的特性:

1. synchronicity(同步性|一致性):  用于描述源节点u 的目标节点在特征空间中的同步性;

2. normality(正常性):用于描述源节点u 的目标节点的正常性。

        在CatchSync 算法中用c(V,V*)来表示特征空间InF-plot中源节点的目标节点间的临近性(相似性)。为了快速计算,该算法将特征空间划分成G个网格,并将原有向图中的节点映射到每个网络中。有了这个网络之后,c(V,V*)的计算就非常容易了,如果两个节点在同一个网络中,那么临近性为1,否则为0。

sync(u)=\frac{\sum C(V,V*)}{d_{o}(u)*d_{o}(u)}

norm(u)=\frac{\sum C(V,V*)}{d_{o}(u)*N}

        通过synchronicity和normality就可以刻画出特征空间SN-plot,进而基于正态分布找出异常节点(高同步性和低正常性的节点)。为了评估直播业务中是否存在主播删粉丝关注量的情况,对现有直播业务中的关注关系应用CatchSync 算法进行挖掘,得到全站直播业务中关注关系的SN-plot 和 InF-plot,如图:

可以看出:直播业务的关注关系中存在一定的高同步性和低正常性的节点,这些节点很大程度上是可疑的。利用CatchSync提取异常节点后,人工验证,确实有问题。

7. 总结

        基于图的挖掘算法上线以来,识别团伙作弊在风控中的作用越来越显著,为打击黑灰产提供了充分的技术支撑,且建立起一套较完备的风险分析技术体系,包含了主流的ML技术:统计ML方法、DL方法和基于图的挖掘算法。同时,还搭建了平台化的风控系统,把ML和人工运营有效结合起来,不仅利用有标签的数据持续提高识别能力,还干预和控制了各种风险。在和黑灰产持续对抗的道路上,需要不断优化和提升风控技术手段,以应对未来充满挑战的业务安全生态环境。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构(二)单链表

一、链表 (一)概念 逻辑结构:线性 存储结构:链式存储,在内存中不连续 分为有头链表和无头链表 同时又细分为单向、循环、双向链表 (二)有头单向链表示意图 以下数据及地址只是为了方便理解…

STM32_ADC

1、ADC简介 ADC,即Analog-Digital Converter,模拟-数字转换器。 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。 12位逐次逼近型ADC,1us转换时间。 输入电压范围:0~3.3…

MySQL数据库单表查询中查询条件的写法

1.使用比较运算符作为查询条件 ; !; >; >; <; <; 如上图所示&#xff0c;可以使用命令select 字段&#xff0c;字段 from 表名 where Gender “M”; 即挑选出Gender “M” 的教师&#xff0c; 如上图所示&#xff0c;可以使用命令select 字段&#xff0c;…

fastadmin 树状菜单展开,合并;简要文件管理系统界面设计与实现

一&#xff0c;菜单合并效果图 源文件参考&#xff1a;fastadmin 子级菜单展开合并、分类父级归纳 - FastAdmin问答社区 php服务端&#xff1a; public function _initialize() {parent::_initialize();$this->model new \app\admin\model\auth\Filetype;$this->admin…

chatGPT预训练模型范例之GPT3系列模型的解密

目录 前言 一、GPT的背景 二、GPT的架构 那么如何实现零样本&#xff08;zero-shot&#xff09;学习呢? 这里我们还是主要来看一下 GPT-3 中所谓的 few-/one-/zero- shot 方式分别是什么意思&#xff1f; 三、GPT的应用 四、GPT3的局限性 前言 近年来&#xff0c;预训练…

分割训练日志的可视化

这一部分主要是将mmdetection训练得到的json文件可视化&#xff0c;代码主要源于github&#xff0c;具体哪一个忘记了&#xff08;readme里面没有原址…&#xff09;是专门做的mmdetection 结果可视化的&#xff0c;非常强&#xff01;&#xff01;。使用时如果出现keyerror的话…

MT3041 多项式变换求值

注意点&#xff1a; 1.使用单调栈 2.用ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);避免超时 3.此题除了ans最好不要用long long&#xff0c;如果a[]和b[]都是long long 类型&#xff0c;可能会超内存 4.ans (ans % p p) % p;防止负数 5.使用秦九韶算法计算指数…

MySQL用户管理操作

用户权限管理操作 DCL语句 一.用户管理操作 MySQL软件内部完整的用户格式&#xff1a; 用户名客户端地址 admin1.1.1.1这个用户只能从1.1.1.1的客服端来连接服务器 admin1.1.1.2这个用户只能从1.1.1.2的客服端来连接服务器 rootlocal host这个用户只能从服务器本地进行连…

ptrade从零开始学习量化交易第11期【ptrade策略引擎简介之on_order_response - 委托主推(可选)】

策略引擎简介 更加详细的调用方法&#xff0c;后续会慢慢整理。 也可找寻博主历史文章&#xff0c;搜索关键词使用方案&#xff0c;比如本文涉及函数on_order_response &#xff01; 感谢关注&#xff0c;咨询开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xf…

经验分享:C++ error:‘syscall’ was not declared in this scope

明明已经加了头文件 #include <sys/syscall.h>#define gettid() syscall(__NR_gettid)但是依旧不能使用 syscall() 函数&#xff0c; 检查源码后&#xff1a; sys/syscall.h 内部表示&#xff0c;他封装了 打开对应的 syscall.h 文件内部依旧没有 syscall()函数的声明…

Vue02-黑马程序员学习笔记

一、今日学习目标 1.指令补充 指令修饰符v-bind对样式增强的操作v-model应用于其他表单元素 2.computed计算属性 基础语法计算属性vs方法计算属性的完整写法成绩案例 3.watch侦听器 基础写法完整写法 4.综合案例 &#xff08;演示&#xff09; 渲染 / 删除 / 修改数量 …

炫酷gdb

在VS里面调试很方便对吧&#xff1f;&#xff08;F5直接调试&#xff0c;F10逐过程调试--不进函数&#xff0c;F11逐语句调试--进函数&#xff0c;F9创建断点&#xff09;&#xff0c;那在Linux中怎么调试呢&#xff1f; 我们需要用到一个工具&#xff1a;gdb 我们知道VS中程…

qt中使用tableWidget不显示表头和内容的可能原因

需求是想要把sqlite数据库中的内容通过tableWidget显示出来&#xff0c;但是在使用过程中发现了一些问题 使用ui->tableWidget->setHorizontalHeaderLabels设置表头的时候&#xff0c;发现怎么样都不显示表头&#xff0c;参考这篇文章&#xff0c;应该使用ui->tableW…

Sping6 笔记(一)【优秀的轻量级框架】

Spring6 介绍&#xff1a; 发布时间&#xff1a;2022年11月Spring 框架是一款优秀的轻量级开源框架&#xff0c;为了解决企业应用开发的复杂性而出现Spring 框架的用途&#xff1a;服务器端的开发特点&#xff1a;简单性、可测试性、松耦合性 学习 Spring6 的前置知识&#x…

react组件中的共享数据

在前面的示例中&#xff0c;每个 MyButton 都有自己独立的 count&#xff0c;当每个按钮被点击时&#xff0c;只有被点击按钮的 count 才会发生改变&#xff1a; 然而&#xff0c;你经常需要组件 共享数据并一起更新。 为了使得 MyButton 组件显示相同的 count 并一起更新&…

Socket同步通讯

目录 引言 1. 建立连接 2. 数据传输 3. 同步机制 4. 处理延迟 5. 安全性 6、一对一Socket同步通讯 客户端 代码分析 服务端 代码分析 7、服务端操作 1、首先我们先运行客户端代码 2、服务端点击Connect连接客户端 3、服务端输入信息传输到客户端 4、断开连接 引…

芯片设计公司外协ERP数字化运营:科技与管理的融合

随着信息技术的快速发展&#xff0c;ERP(企业资源计划)系统已经成为现代企业管理不可或缺的一部分。在芯片设计行业&#xff0c;由于产品的复杂性、技术的高要求以及市场的快速变化&#xff0c;外协ERP数字化运营显得尤为重要。 芯片设计公司的外协ERP数字化运营&#xff0c;主…

javaSwing员工工资管理系统(文档+视频+源码)

摘要 由Java swing mysql数据库实现的员工工资管理系统&#xff0c;该项目功能相对完善&#xff0c;有管理员和普通用户两个角色&#xff0c;分别实现了一些列功能&#xff0c;数据库采用的是mysql 系统实现 我们先以员工的身份查询一下&#xff1a; 接下来我们以管理员身份…

Qt | QCalendarWidget 类(日历)

01、QCalendarWidget 类 1、QCalendarWidget 类是 QWidget 的直接子类,该类用于日历,见下图 02、QCalendarWidget 属性 ①、dateEditAcceptDelay:int 访问函数:int dateEditAcceptDelay()const; void setDateEditAcceptDelay(int) 获取和设置日期编辑器的延迟时间(以毫秒…

事务的ACID是什么及扁平化事务、链式事务

一、什么是事务 1.事务&#xff08;Transaction)是区别于数据库文件系统的重要特性之一。事务会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时&#xff0c;可以确保要么所有修改都已经保存&#xff0c;要么所有修改都不保存。 2.InnoDB存储引擎中的事物完…