图计算服务:黄牛账号识别之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天级到小时级别。