大咖说第1期:Unity 中基于图技术的欺诈检测
Lun Jiang,高级数据科学家
Unity Technologies SF
欺诈无处不在,甚至在游戏行业也是如此。在Graph+AI 2022 春季全球峰会上,来自游戏平台开发商Unity Technologies的高级数据科学家Lun Jiang,为大家分享了用于Unity游戏引擎中的欺诈检测的图技术。

Unity公司介绍

Unity是一家视频游戏软件开发公司,专门为游戏开发者提供实时3D开发平台。此外,Unity还帮助游戏开发者通过向广告商出售游戏内广告位来实现变现。手游是目前全球来看表现最好的行业之一,其2021年收入超过850亿美元,复合年均增长率超过18%,所以到2023年,游戏行业的大部分收入将来自手游。2020年第四季度的报告中显示,Unity每月服务的广告超过了230亿,玩家每周花在Unity手游上的平均时间为2小时22分钟。此外,50%的新手游都是由Unity提供技术支持,所以这是一个相当有前景的行业。

游戏广告是如何运作的?

在游戏广告领域里,既有供应方(游戏发行商),也有需求方(广告商)。Unity广告通过统一竞拍将两者联系起来。从供应方来看,欲出售广告位的源游戏将向Unity广告服务端提交请求,然后,来自需求方的广告商将对这些位置出价以展示他们的广告。因此中标者将能够提交他们的广告创意、添加展示位置并触发事件,尤其是广告事件。接着,当特定的广告事件被触发后,广告商将向游戏发行商支付费用。基本上,这就是游戏开发者在游戏广告领域赚钱的方式。
游戏广告是如何运作的?

那在此过程中,会出现什么问题呢?

有这样一个问题我们必须重点谈谈。在现实中,并非所有发行商在游戏广告方面都是“诚实的”,他们中的一些人,我们称为欺诈者,因为他们在这个体系中实施欺诈。欺诈是一种恶意活动,旨在不劳而获,大多数欺诈是游戏发行商实施的。而调查此类欺诈,就是我的工作,以及欺诈检测部门。我们的目标是保护我们的广告商免受“无效广告”的侵害,并确保广告商对我们的广告服务体系充满信心。

欺诈到底是什么?

欺诈有很多种,根据Unity的政策,游戏行业中存在非常多的欺诈,我们每天都能看到新类型的欺诈出现,这真的很恼火。根据我们以往的经验,有几种常见的欺诈类型,比如设备农场、SDK伪造、垃圾点击、机器人、滥用激励和其他类型的诈骗。所以在游戏广告的领域里欺诈无所不在,这就是为什么我们需要使用图技术。
游戏行业常见的欺诈类型

在使用图技术之前,我们是如何检测欺诈的呢?

正如我之前提到的,我们有广告事件。对于那些广告事件而言,它们在游戏中的某个广告时刻出现,而且不是单独出现。它们成群结队,按顺序排列,形成广告事件和模式。我们可以看到它们的模式:模式1,模式2,模式3,模式4……而模式又有许多不同的组合和不同的形状。
在使用图技术之前,我们是如何检测欺诈的呢?
现在,我们处理此类欺诈的方式是这样的:我们收集并分析这些广告事件,以发现潜在的欺诈模式,我们还根据不同的实体聚合不同类型的广告事件。例如,我们知道它们的实体有游戏发行商、游戏、玩家,将这些聚合结果与我们在其它地方得到的实体特征及其嵌入相结合。
在使用图技术之前,我们是如何检测欺诈的呢?
我们来看看一个我们正在做的例子。正如您在上图中看到的,我们有多个渠道,分别对应于发行商,游戏本身,还有玩家。除了它们都使用相同的来源和事件以外,它们彼此互相独立,然后我们聚合这些广告事件,并从不同的聚合层面将它们与不同类型的特征连接起来。例如,这里有一些发行商特征,和发行商嵌入,我们将它们与发行商层级的事件聚合连接起来。整个特征向量将通过我们的机器学习管道,然后将不同类型的模型组合在一起,在每个聚合层面进行预测。
在这三条管道运行之后,我们会有三种不同的预测,一个在发行商层面,一个在游戏层面,一个在用户层面。这就是我们在不使用图技术的情况下检测欺诈的方式。
现在的问题是,这些结果彼此之间不一定相符,或者说不一定总相符。而且我不认为它们真的彼此独立。例如,如果我们预测某个发行商存在欺诈行为,有没有可能,这个发行商旗下的所有游戏都是无辜的?这在现实世界中不太可能发生。在现实世界中,我们所编织的,是这样一张错综复杂的关系网。所以在真实的游戏广告网络中,彼此之间都是有联系的。例如,在下图中我们可以看到一个发行商旗下有许多游戏,而且一款游戏有很多玩家。此外,一个玩家,例如这里的3号玩家,这个玩家还可以玩另一个游戏,也就是3号游戏,并且2号玩家和3号玩家,他们可以共享相同的IP地址,或者说他们的IP非常接近,这种情况很可能是发生在同一个设备农场或同一个VPN地址中,这就是我们面临的现实问题。我们可以从这些关系模式中,看到很多诸如此类的例子,这就是我们的初衷和原因,我们试图利用图来解决欺诈问题。
那么这张图中什么是重要的?其中之一是邻域拓扑。我们可以看到游戏、发行商和玩家这三个实体,它们相互联系,形成社区和集群。两个实体之间也有许多共享信息。
邻域拓扑

Unity使用了哪些基于图技术的方法来检测欺诈?

示例一:利用标签传播侦测欺诈信息的传播方法

我们基于图技术来检测欺诈的方法之一,是侦测欺诈信息的传播方式。比如我刚才提到的,我们有多个独立的管道用于不同聚合层面的预测,现在我们如何结合这些信息,全面了解每个实体的欺诈可能性?一种方法是通过消息传递算法传递和聚合节点特征及其各自的预测。例如,标签传播,是最常见的算法之一,而且它也很简单。因此,我们聚合来自邻居结点的信息,然后利用这些信息更新中心结点,从而更新预测,并且还可以更新其特征。然后在调整或消息传递阶段完成后,我们可以全面了解每个实体,然后将此实体用于后续的业务操作。我们也会将这些情况一起报告给我们的客户,使其更可信,更全面。
示例一:利用标签传播侦测欺诈信息的传播方法

示例二:利用社区检测算法(如Louvain算法)进行欺诈社区检测

我们使用的另一种方法是欺诈社区检测。正如我们从下图中看到的,欺诈类游戏和非欺诈类游戏,通常不会单独出现,它们往往成群聚集在一起,或者形成一个社区。欺诈类游戏往往与其它欺诈游戏是关联的,而非欺诈类游戏往往与其它非欺诈类的游戏是关联的。当然也有例外,我们可以在中心集群中看到。我们可以看到,非欺诈类游戏社区与一个欺诈类游戏相关联,这个欺诈类游戏混合在了无辜社区中。这就很难被侦测出来。
容易发现的是…我们可以找到非欺诈实体和欺诈实体的孤立节点,还有一个小集群,一个小社区,一个欺诈类游戏。这就是我们正在做的一个欺诈社区检测,我们试图找到欺诈团伙,通过社区检测算法,比如Louvain算法,和其他一些东西。在这里我们不能提供太多细节,因为欺诈者非常聪明,他们可能会利用这些信息对我们的技术进行反向工程。所以,这里只是宏观的总结和概述。
示例二:利用社区检测算法(如Louvain算法)进行欺诈社区检测

示例三:基于图技术,在游戏广告网络中生成节点嵌入

除了这些技术,我们还尝试基于图技术,在游戏广告网络中生成节点嵌入。正如我们从下图中所看到的,有很多方法可以创建嵌入,以前我们没有使用基于图技术的方法,直到我们意识到,游戏广告网络中的一切都是相互关联的。因此,使用基于图技术的嵌入方法,将能够创建包含实体邻域拓扑信息的嵌入,尤其是在一些特定的问题上,比如特定游戏的费用分析。
示例三:基于图技术,在游戏广告网络中生成节点嵌入
例如,我们可以看到在游戏广告网络中,发行商会有他们的源游戏(Source Game),广告商有他们的目标游戏(Target Game),这意味着每当用户打开源游戏点击上面的广告时,广告商希望在源游戏中显示广告,然后他们的目标游戏将被推广给用户。然后广告商将不得不为这些广告事件向发行商付费,并在每个源游戏中投钱。计划在不同源游戏中投入的资金、发行商或目标游戏的数量被称之为目标游戏的画像,这个画像对于创建嵌入非常有用。这些嵌入可以用于许多不同的地方,例如欺诈检测、营收优化和其他用例,这就是基于图技术的嵌入方法可以发挥重要作用的地方。
在这里,我们试图通过Node2Vec和FastRP等图算法创建图嵌入,并且结果也将用于后续的机器学习任务,并与其他嵌入相连接。这一切都为我们以后的工作提供了价值。
以上是分享的所有内容,如果您有更多问题,欢迎联系我们。

相关资源