如何使用GraphCompute识别黄牛账号图计算服务

图计算服务:黄牛账号识别之GraphCompute解决方案

在交易、注册拉新场景,我们会经常面临黄牛账号的困扰,影响拉新效果和新用户的权益保证。针对这种业务场景,我们基于丰富表的图数据关系,通过OneID快速识别和定位黄牛账号、判定新人拉新规范,从而进一步赋予业务更准确和可解释的防控手段。

为了方便用户能够熟悉图计算服务GraphCompute,我们提供一份完整的OneID-黄牛账号识别Demo数据、查询Query和文档指南,帮助用户快速搭建一个图计算应用,并提供百万级别数据量的黄牛账号识别和挖掘能力。

GraphCompute是一个分布式的、万亿级数据规模下、高性能、高稳定性的图查询和计算解决方案。同时,搭载智能运维和离线系统,实现湖仓一体化的数据打通,支持多版本数据快速迭代和管理能力。结合阿里巴巴在电商、安全和社交等多个行业领域的积累,为全球企业及开发者提供图技术服务

数字经济时代下,数据成为推动创新发展的关键要素。数据的开放,推动了多行业、跨行业、跨组织的协同与创新,催生出新型的产业形态和商业模式。但随着数据价值的凸显,针对数据的攻击、窃取、滥用、劫持等活动持续泛滥,并呈现出产业化、高科技化等特性。在互联网企业,对于识别、追踪用户身份都有强烈的需求,通过用户的账号、设备之间信息关联,能够快速识别账户情况,做出更好的业务联动或者防护。在该类场景下,我们统一定义为OneID账户同人识别。

简单来说OneID是一套跨屏、跨域的自然人身份识别、追踪系统,类似于实际生活中的身份证号,对于每个互联网世界的每个自然人都通过算法赋予一个稳定的虚拟身份ID

-OneID,并且识别自然人所拥有的各类身份ID。身份ID包括三大类:

-账号类:业务账号,手机号,Email等等

-设备类:设备IMEI,设备IMSI,设备IDFA,

-cookie类:Acookie等等。

OneID体系能够将稀疏的信息通过实体之间的关系汇聚起来,聚焦到自然人,譬如从重要设备ID能够关联出大量的账号ID,说明这些账号可以属于一个人或者团伙共有,并挖掘出业务平台的黄牛或者非法团伙信息。

某款科技公司网站,主要售卖各种AI数字化产品和解决方案,针对活动都会发放优惠券权益,但是主要希望能对网站的注册账户做OneID风控识别,帮助公司挖掘黄牛账号、薅羊毛团伙,减少无效资金损失。

通过对黄牛党或者团伙行为分析,普遍的现象是最大程度的利用手上设备资源,实现账号体系的最大化;针对有部分用户通过重复注册账号领取优惠券薅羊毛的行为进行检测,需要进行用户到用户的多度查询;

根据业务的特点进行抽象定义,最终的业务逻辑可以理解为:

1)查询的业务场景:账户A-设备G-账号B二跳关系

2)需要获取多种设备关联的二跳用户后,对设备路径权重加分,最终得到

基于图数据在交易欺诈、垃圾注册场景下,我们就能够OneID快速识别和定位黄牛账号、新人拉新判定,从而进一步赋予业务更准确和可解释的防控手段。

首先从离线算法出发:探索的路线从图传播算法——>图聚类算法——>图表征算法,挖掘更大范围,更深层次的风险。最开始使用图传播算法,可以快速地挖掘出少量风险实例且较高的准确率效果,但是半监督的图传播算法只能从局部出发,挖掘出已知风险实体附近的少量风险实体。如何能够从全局出发,扩大风险实例的召回,这时候开始使用图聚类算法去挖掘风险团伙。除了图结构可以帮助挖掘风险外,实体的属性也可以帮助挖掘风险。充分结合账号的违规、处罚、行为特征以带来更多的信息增益,帮助挖掘更深层次的风险。

当前我们重点讲解的「黄牛账号识别」,该类风控场景就可以通过下图第一步【图传播算法】,从当前已经风险的节点往外传播影响决策能力,挖掘出高风险节点,以及对应的风险分数。

CommunitySearch根据网络中给出的已知种子节点的局部信息出发,去发现给定种子节点所在的局部社区,具有更强的社区针对性,是一种图传播的方法。可以使用半监督方法,基于已有的有标记的节点,为附近的无标记的节点打上伪标签,并不断迭代预测更多的无标记节点。

在反作弊时,通常只获取到少量有标签数据。同时,需要大量的无标签数据,这些无标签数据中存在着大量的风险实例,如何从大量的无标签数据中,挖掘风险实例,是该场景需要解决的问题。这里构建半监督学习的流程,基于业务提供的风险数据作为原始输入,挖掘风险数据周边的高风险实例,并将挖掘的实例反馈给业务校验,接下来将业务校验认为有风险的实例添加到原始输入中,继续迭代,从而召回更多的风险数据。半监督方法只能挖掘有限有标签附近的样例,无法发现特定结构的团伙.

工业界比较知名的基于半监督关系网络图上的风险实体挖掘方法有亚马逊在2018年提出的GraphRAD方法和蚂蚁集团在2021年提出的Risk-alike方法,这两种方法都是基于黑种子节点的输入在图上挖掘风险。也可以使用链接分析的方法,如PageRank,从已有的有标记的节点出发,计算网络中其他节点的重要程度。

例如:

Risk_alike

输入:黑种子节点,所有的边关系

step1:构图:基于与黑种子点有2跳以内关联关系的节点构图;

step3:基于pageRank计算每个节点的风险分并排序。从黑种子节点出发,计算每个节点对黑种子节点的重要程度,作为风险分;

step4:提纯Purify:基于louvain社区发现的结果和pageRank的结果筛选并输出挖掘的高风险节点。

输出:挖掘出的高风险节点,以及对应的风险分数。

根据对前面业务逻辑的了解,我们设计了多种图配置的业务模型来做相应的图构建;

【方案一】

【方案二】

【方案三】

特点:relation异构表

与原始的数据结构最贴近、表配置量过多

特点:relation同构表

图配置简单,只需要2张表:User用户表和设备关联表

特点:增加设备作为独立节点

问题:设备类型不能灵活增加,设备关系表需要人工添加,不利于扩展性

问题:牺牲一些查询性能,增加了设备到用户查询

基于业务考量,最终业务配置模型选择了【方案三】来支持,主要的考虑如下:

总结一:进行起点为指定medium类型的快速检索,通过type类型进行过滤和统计计算更方便

主要问题在于牺牲查询性能:用户到用户的跳数从1跳增加到2跳,综合考虑总结如下:通过【方案三】可以更好的简化离线更新链路的逻辑,同时对于性能影响不会太大。

根据前面的业务梳理和沉淀,我们最终按照【方案三】进行图配置,包括节点表User、medium设备表、relation用户设备关系表。

请根据自己的业务特点进行选择:

当前我们的快速接入采用【方案一:MaxCompute源数据表+API数据】、【方案二:API数据源】

【方案一:MaxCompute源数据表+API数据】

该方案依靠MaxCompute已有项目和源表数据。

如果没有现成的数据,可以选择直接使用我们提供的Demo数据源(已经定义好了节点和关系数据)。

如果业务数据已经存在CSV或者MaxCompute中,可以选择自己的MaxCompute源数据。

用户源表:

使用【igraph_mock.anti_cheating_demo_user_vertex】,节点表中包括100000个用户,其中有1%的风险账户(isbad=TRUE)

可参考的MaxCompute建表语句:

媒介表

使用【igraph_mock.anti_cheating_demo_medium_vertex】,关系表中包括100000个媒介,其中0.3%的媒介被超过1个用户使用。

用户媒介关系表

使用【igraph_mock.anti_cheating_demo_medium_edge】,关系表中包括100000个媒介,其中0.3%的媒介被超过1个用户使用

score主要用于表示用户使用媒介的频繁程度/重要性,可以根据业务逻辑进行赋值,如没有特殊业务逻辑可以默认设置为1。

CREATETABLEIFNOTEXISTSanti_cheating_demo_user_medium_edge(user_idBIGINTCOMMENT'用户账号id',medium_idBIGINTCOMMENT'媒介id',scoredoubleCOMMENT'权重')COMMENT'用户媒介关系边表'PARTITIONEDBY(dsSTRINGCOMMENT'日期分区');【方案二:API数据源】

控制台写入窗口可参考:【图运维-选择User、Relation后右键-增量数据写入】。

【MaxCompute源表操作指南】

业务可参看如下步骤自行创建MaxCompute数据表:

在DataWorks创建数据表,每一种点表和边表需要有一张自己单独的数据表。

购买完毕之后需要等待【15分钟】实例初始化完毕。

购买活动:企业认证用户新客首购可以参加免费一个月活动。

Step4-2:创建业务的图模型

根据前面【Step1】中已总结完该场景的业务图模型,我们这里就可以直接创建;在右侧列表选择“图列表”,并点击新增,输入图的名字及描述。

Step4-3:创建节点表

创建节点表【User】

创建节点表【medium】

媒介源表:使用【项目名:igraph_mock,表名:anti_cheating_demo_medium_vertex】

创建用户到媒介的正向边

创建媒介到用户的反向边

Step4-5:图模型发布

节点User表、设备medium和关系Relation表创建号,即可依次点击【保存】、【发布】。

Step4-6:数据索引构建

图模型发布完成后就可以进行图计算的索引构建工作,点击【一键回流】功能即可触发海量数据的索引构建。

数据索引构建的耗时主要决定于数据量级的大小,一般百万级数据量,需要等待15-20分钟即可完成。通过【图运维】中图模型的节点和关系都绿色即可进行判断。

Step4-7:判定账户风险

通过前面的步骤,图计算应用及数据已经准备完成,下面就可以进行图数据的查询和分析;可以通过【图探索】-进行探索式交互或者控制台Gremlin语句查询。

图计算Proxy-Search多行架构让集群负载更高,提高资源利用率,节省机器资源50%;同时集群负载QPS更高1倍。

节点拆分、多种kkv类型,在数据构建时已经将数据进行分类、同时提供可定制的截断逻辑保证查询性能;iGraph在热点key的处理经验丰富,多级cache能够比较好的防御这类问题,同时可以支持动态扩容等;相比开源方案,查询耗时性能RT降低100%~500%

离线处理平台对接,风控安全业务都会由算法、数据团队建设完整的大数据分析,基于阿里云MaxCompute数仓,我们能够无缝对接数据源,同时支持数仓快速迭代,将数仓全量数据的迭代周期最快从T天级到小时级别。

THE END
1.AI技术深度解析:从基础到应用的全面介绍掌握线性代数、概率论和统计学等数学概念,以及熟悉Python等编程语言是必要的。接下来,可以学习机器学习的基础知识和常用算法,如线性回归、逻辑回归、支持向量机等。通过实践项目来应用所学知识,如构建简单的分类或回归模型,逐步提升自己的实践能力。此外,参加在线课程、阅读专业书籍和论文也是提升机器学习技能的有效途径。https://developer.aliyun.com/article/1645526
2.人工智能基础知识速成什么是机器学习? 机器学习是人工智能的一个分支,通过从数据中学习和改进算法,使计算机系统在没有明确编程的情况下也能够自动地学习和改进。机器学习是一种实现人工智能的技术手段,能够让计算机“自我学习”,从而实现更准确的预测和决策。 机器学习的基本原理 https://www.jianshu.com/p/ebf29ca6e0d7
3.离线算法vs在线算法在计算机科学中,离线和在线算法的本质不同是:在处理数据流和资源使用方面 离线和在线不是具体的某种算法公式,而是一种思维模式,取决于在所给的问题背景下,数据资源是否能够通盘考虑,或是现实场景中不断地有新数据介入 离线算法(OfflineAlgorithm) 离线算法是指在开始处理数据之前,所有需要的输入数据都是已知的。算法https://blog.csdn.net/m0_61678439/article/details/141088418
4.在线算法离线算法今天面试的时候面试官提到了在线算法和离线算法的区别,我之前没有了解过这个概念,所以面试完学习了一下,并在这里记录一下。 在线算法(online algorithm)和离线算法(offline algorithm) 维基百科举了这样一个例子,选择排序是离线算法,而插入排序是在线算法。那就从这两个算法来看看在线算法和离线算法的区别。 选择排序https://zhuanlan.zhihu.com/p/89341847
5.推荐算法中的在线学习和离线学习有何区别,各自的优缺点是什么在线学习和离线学习是推荐算法中常见的训练方式,各自有不同的优缺点。在实际应用中可以根据需求选择合适的方式或结合两者优势。https://www.mbalib.com/ask/question-ec5c1bbee149c6534d0a725ffdb15235.html
6.在对齐AI时,为什么在线方法总是优于离线方法?澎湃号·湃客尽管这些假设听上去似乎是对的,但实验结果表明它们无法可信地解释在线和离线算法的性能差距。 他们通过消融研究发现,提升离线优化的一种有效方法是生成分布上接近起始 RLHF 策略(这里就刚好是 SFT 策略)的数据,这本质上就模仿了在线算法的起始阶段。 优化性质 https://www.thepaper.cn/newsDetail_forward_27434433
7.在线算法因为在线算法并不知道整个的输入,所以它被迫做出的选择最后可能会被证明不是最优的,对在线算法的研究主要集中在当前环境下怎么做出选择。对相同问题的在线算法和离线算法的对比分析形成了以上观点。如果想从其他角度了解在线算法可以看一下流算法(关注精确呈现过去的输入所使用的内存的量),动态算法(关注维护一个在线https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947
8.离线强化学习图18-2 在线算法(橙色)和对应的离线算法(蓝色)的实验结果,从左到右依次为完全回放、同步训练、模仿训练 让人惊讶的是,3 个实验中,离线 DDPG 智能体的表现都远远差于在线 DDPG 智能体,即便是第二个实验的同步训练都无法提高离线智能体的表现。在第三个模仿训练实验中,离线智能体面对非常优秀的数据样本却什么都https://hrl.boyuai.com/chapter/3/%E7%A6%BB%E7%BA%BF%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/
9.漫话地图数据处理之道路匹配篇文化&方法高德技术实时算法主要用于在线导航,时间和空间复杂度低,离线算法用于数据处理的离线计算,算法复杂,追求最高准确度。 空间距离 线要素的匹配,主要通过几何、拓扑或语义相似度来进行识别,其中通过空间距离来进行要素匹配的常用方式有: 闵可夫斯基距离(Minkowski Distance) https://www.infoq.cn/article/aXrXVv5H801wkkhEkDOv
10.在线匹配问题研究进展:如何应对一般图以及顶点全在线的挑战?在在线优化研究中最为常用的方法称为竞争比分析方法,即以竞争比来衡量某个在线算法的性能。在线匹配问题中,竞争比的定义如下:如果一个在线算法在任何可能的图以及任何可能的在线顶点到达顺序中,均能保证其在线解大于图离线最大匹配的倍,那么我们就称该算法为-竞争的。在Karp等人的工作中,他们首先证明了贪心算法(在https://www.orsc.org.cn/wechat/article/detail?id=760
11.科学网—[转载]强化学习在资源优化领域的应用这一工作的实验结果表明,基于RLHO框架,将PPO算法和模拟退火算法结合的方式能够取得比仅使用PPO算法或仅使用基于随机初始化的模拟退火算法更好的结果。 5.2 在线装箱问题 与离线装箱问题不同的是,在线装箱问题无法得知未来到达物件的信息,因而只能通过动态策略求解,不存在静态装箱解,相比之下,在线装箱问题要取得一个好https://blog.sciencenet.cn/blog-3472670-1312677.html
12.在线/离线规划机器之心在线/离线规划 简介 规划问题是希望在运动期间在线计算目标的轨迹,以允许机器人对移动目标的环境变化和运动过程中遇到的误差作出反应。然而,解决这些问题,是一定困难的。这源于搜索空间的高维度,障碍物的几何性质,优化的成本函数,和机器人的运动学和动力学模型。来在给定的合理的计算资源里,这些问题都会妨碍它足够快的https://www.jiqizhixin.com/graph/technologies/6b18674f-9092-4262-8f6e-b6c5db69b8a3
13.SpaceX告诉你:火箭垂直回收,什么“姿势”最正确新闻频道北京理工大学宇航学院特聘研究员刘新福告诉科技日报记者,在发动机推力可调及着陆缓冲机构等硬件条件的基础上,火箭回收最大的难点是,在着陆段怎样根据火箭的当前位置、速度、姿态等信息,在线实时计算出发动机推力的大小和方向,以实现安全精确着陆,其最核心的技术是着陆段的制导算法。 https://news.cctv.com/m/a/index.shtml?id=ARTIA3OF8Lw42kR6o57Vimha190507
14.LCA算法51CTO博客后两个算法都是在线算法,也很相似,时间复杂度在O(logn)~O(nlogn)之间,我个人认为较难理解。 有的题目是可以用线段树来做的,但是其代码量很大,时间复杂度也偏高,在O(n)~O(nlogn)之间,优点在于也是简单粗暴。 倍增寻找(ST算法): 此算法基于动态规划。 https://blog.51cto.com/u_15072920/3489365
15.多台平行批处理机在线排序和带有运输时间的在线排序我们称一个在线算法是ρ-竞争的是指:对于任何一个实例,在线算法产生的目标函数值至多是离线情形下最优排序目标函数值的ρ倍。给定一个在线排序问题P,称算法A是问题P)的一个最好可能的在线算法是指不存在比算法A具有更好竞争比的在线算法。 批处理排序也是近20年来被研究者们广泛研究的一个现代排序模型。它一般https://wap.cnki.net/touch/web/Dissertation/Article/-2010043431.html
16.年终总结&算法数据的思考&结尾彩蛋RecSys2013的best paper通过调整节点顺序从而优化矩阵分块策略,极大改善了矩阵分解算法的效率,你就要去跟踪来更新自己的旧有离线算法;微软亚研搞出了一个Light LDA允许在低网络流量下去做LDA的多机并行,你就要兴冲冲地跑过去读他们啰啰嗦嗦的几十页的paper,因为终于不用忍受LDA低劣的性能了,而这些追踪往往是无穷无尽https://www.douban.com/note/472267231/?qq-pf-to=pcqq.group
17.什么是自动泊车系统?自动泊车路径规划和跟踪技术分析AVM算法又分为离线阶段和在线阶段两部分,在线阶段是对离线阶段的简化,更加适合于工程实现。 avm系统示意图 离线阶段算法pipeline 先来粗略浏览下AVM算法Pipeline包含那些算子: 2D AVM 2D AVM Pipeline 3D AVM 3D AVM Pipeline 基于畸变表的鱼眼相机去畸变 1.1鱼眼相机畸变模型 普通相机和广角相机的投影方式一般为透视https://m.elecfans.com/article/2020392.html