在线社交网络 (OSN, Online Social Network) 会吸引攻击者通过滥用帐户(Abusive Account)进行恶意活动。作为反制措施,OSN 经常使用机器学习 (ML, Machine Learning) 方法部署恶意帐户分类器。然而,一个实用、有效的基于 ML 的防御方法需要精心设计对抗性操作的鲁棒性特征,然后获得足够的标记数据用于模型训练,并设计一个可以扩展到 OSN 上所有活动帐户的系统(上亿级)。
为了应对这些挑战,本研究提出了深度实体分类(DEC, Deep Entity Classifification),这是一种可以检测 OSN 中滥用账户的机器学习框架。虽然单独的账户可能难以分类,但它们在社交图中的嵌入——他们自己和周围人的网络结构、属性和行为——对于攻击者来说从根本上和规模上难以复制或操纵。系统具有:
• 通过聚合社交图中直接和间接邻居的属性和行为特征,提取账户的“深层特征”(deep features)。
• 采用“多阶段多任务学习”(MS-MTL, Multi-Stage Multi-Task Learning) 范式,通过在不同的阶段使用少量高精度人工标记样本和大量低-精密自动化标签。这种架构产生的模型可以为多种类型的滥用账户提供高精度分类。
• 通过降低系统负载的各种抽样和重新分类策略扩展到数十亿用户。 DEC 已部署在 Facebook中,它持续对所有用户进行分类,与其他传统方法相比,网络上的滥用账户减少了 27%。
0x01 Introduction
在线社交网络 (OSN) 连接了全球数十亿用户。最大的社交网络 Facebook 每月有超过 20 亿活跃用户分享内容。这些网络的庞大规模又吸引了试图利用这些平台谋取经济、政治和个人利益的攻击者。虽然大多数 OSN 活动来自合法用户,但攻击者在注册虚假账户(即不代表真人的账户)、创建冒充账户或盗取账户等方面投入了大量资源。这些滥用帐户被用来推动一系列负面行为,包括垃圾邮件、虚假热度、暴力等活动——所有这些行为都违反了社区规范,并且被广泛研究。
OSN 面临的一个核心挑战是如何以可扩展和精确的方式识别和修复滥用帐户。需要能够对数十亿用户和数百亿日常操作进行操作的可扩展性方法,以检测数十种不同的滥用类型。优先考虑精度的系统是必要的,因为滥用帐户相对较少,因此精度下降会导致 OSN 对大量良性用户采取错误行动。
OSN 使用了广泛的技术,从基于规则的启发式到现代机器学习算法对滥用帐户进行大规模分类和补救。基于规则的启发式作为第一道防线,识别基本或常见的攻击者工具、技术和资源。然而,这些启发式方法缺乏力量:它们专注于精确度而不是召回率,它们通常无法捕捉帐户行为的复杂性,并且它们根据定义是反应性的。机器学习系统克服了其中一些问题:它们从过去的标记数据中进行泛化以提高召回率,并且可以随着时间的推移进行迭代以适应对抗性进化。然而,精确的机器学习系统需要大量高质量的标记实况数据,部署成本可能很高(在工程工作和计算资源方面),并且可以被学习如何模仿真实账户的攻击者规避。基于规则的启发式和传统机器学习系统可以识别和纠正绝大多数滥用行为,但识别剩余的难以分类的账户——那些与真实用户非常相似和/或逃避 OSN 防御的账户——需要从根本上不同的和更复杂的解决方案。
一个关键的认识是,虽然攻击者可以生成看似合法的滥用帐户,但这些帐户嵌入和参与社交图谱从根本上难以伪造。例如,给定用户发送的好友请求数量很容易被攻击者控制,但该用户的所有好友发送的好友请求数量却超出了攻击者的控制范围。尽管攻击者可以尝试伪装他们的帐户通过连接到图中的合法节点,这种策略不仅难以大规模实施,而且还会产生传统方法可以检测到的副作用(例如,大量拒绝的朋友请求)。
本研究开发了深度实体分类,一种用于 OSN 滥用帐户检测的方法和支持系统。DEC 不是基于“直接”特征和行为对账户进行分类,而是利用社交网络结构,通过跨图操作为每个账户提取 20,000 多个特征。这些特征用于训练监督机器学习模型,将账户分类为多种不同类型的滥用行为。 DEC 系统包括标签生成和特征提取,以及模型训练、部署和更新。最终,DEC 会产生对对抗性迭代具有鲁棒性的每个帐户滥用分类结果。
DEC 的图遍历生成的大量特征在模型训练方面带来了两个挑战。首先,大的特征空间可能会显着增加底层模型的复杂性,导致泛化能力差和性能下降。其次,在如此多的特征上获得适当的泛化将需要在一个问题空间中使用非常大的训练集,在这个问题空间中,很难在十亿用户规模上获得高质量的人工标记数据。
除了小规模、高质量的人工标记数据外,还可以利用基于规则的启发式方法的结果作为额外的“近似标签”。这些规则的分类不是人工审查的,因此精度低于人工审查的数据,但绝对数量要高得多。基于这一观点,设计了一个MS-MTL框架。框架通过使用大量近似标签训练的深度神经网络提取低维可转移表示,然后根据学习的表示和高质量的人工标记数据微调专用模型。
模型训练发生在两个不同的阶段。第一阶段使用大量低精度近似标签在收集的特征上训练多任务深度神经网络 。由于由这些较低精度信号识别的帐户表现出多种不同的滥用类型(例如垃圾邮件、令人反感的内容或恶意软件),为每种滥用类型制定了一个学习“任务”。然后将神经网络的倒数第二层提取为低维特征向量。该向量被输入到模型的第二阶段,该模型使用每个任务的高精度人工标记数据和标准二元分类器进行训练。
MS-MTL 允许 DEC 在第一个模型阶段学习不同滥用类型的潜在共同表示,然后在第二阶段使用具有单独模型的高精度数据区分不同的滥用类型,从而为每个滥用产生一个分数每个帐户的类型。通过这种方式可以使用单一模型将表现出多种滥用类型(例如,诈骗、垃圾邮件、成人内容等)中的任何一种的滥用帐户标记为abusive。
DEC 被部署在 Facebook,并已在生产环境中运行了两年多。在此期间,DEC 导致了数亿个滥用帐户的识别和补救措施。通过将 DEC 采取行动的账户数量与平台上剩余的滥用账户数量的无偏估计进行比较,推断 DEC 负责将滥用账户的数量减少约 27%。
0x02 Background
A. 滥用账户
将Abusive Account即滥用帐户定义为任何违反给定 OSN 书面政策的帐户。 攻击者出于各种原因使用滥用帐户,包括出于经济动机的计划(例如,传播垃圾邮件、诈骗、令人反感的内容或网络钓鱼链接)和造成用户伤害(例如,在线骚扰)。 滥用帐户可以大致分为两个维度:
1)账户源: 滥用帐户可能是假的,其中帐户不代表真实的个人或组织。它也可能是真实的,它是合法用户帐户,但被攻击者劫持。
2)恶意行为: 滥用帐户可以通过其进行的恶意行为类型来表征,例如传播诈骗或垃圾邮件。
B. 防御方法
针对 OSN 上的滥用帐户有多种类型的防御措施。基于规则的启发式方法,例如对特定用户操作的速率限制,简单明了,易于设计和评估,并且在实践中非常强大。但是它们通常是被动的,允许在超过阈值并触发规则之前进行一定程度的滥用。此外,他们保守地关注精确度而不是召回率,以避免误报。
另一种大规模检测技术是基于机器学习的分类,它通过消化更多特征来增加检测算法的复杂性。然而,攻击者可以(有时很快)适应分类器的动作,这使得正确设计攻击者难以发现和逃避的特征变得具有挑战性。这种方法的另一个挑战是收集足够的高精度训练数据。人工标记通常是最可靠的来源,但在时间、金钱和人力方面可能很昂贵。
基于规则的启发式和典型的基于机器学习的分类器能够识别在线服务中的绝大多数滥用活动。识别那些能够逃避主要检测系统的账户是一项特别困难的挑战,因为它们代表了最难分类的账户。例如,此类帐户可能是攻击者在适应 OSN 防御时迭代的帐户,或者它们可能非常类似于真实用户。本文中介绍的系统旨在通过在社交图上采用攻击者难以操纵的稀疏聚合特征以及使用多阶段训练框架来缓解这些问题。
0x03 DEC System Overview
DEC可以从活跃的 Facebook 账户中提取特征并对其进行分类,然后对分类的滥用账户采取行动。为了以可扩展的方式部署这样的系统,需要解决多个挑战:包括可扩展性、延迟、各种滥用类型和误报。 DEC 使用多个组件来分别处理这些挑战。下图显示了 DEC 架构。在最高级别将 DEC 分解为在线和离线组件,随后进行讨论。
A. 在线组件
DEC 由 Facebook 用户操作触发。当一个动作发生时,DEC 可以基于启发式算法安排一个与用户活动并发的任务,以开始提取目标节点的原始特征和采样的相邻节点。对于 Facebook 上的普通帐户,DEC 需要为数百个相邻节点中的每个节点提取数百个特征,从而要提取数万个原始特征。这样的查询计算量很大,因此整个过程是异步离线完成的,不会影响用户的正常站点活动。在特征提取之后,DEC 聚合原始特征以形成数值稀疏特征。然后 DEC 根据聚合特征和生产模型为账户生成分类结果。如果该帐户被归类为滥用行为,DEC 将对该帐户进行强制措施。
B. 离线组件
DEC 的离线组件包括模型训练和反馈处理。为了对多种类型的滥用进行分类,DEC 维护了多个模型,其中每个模型处理不同类型的滥用。每个专用模型都在从作为并发特征提取(在线组件)的一部分收集的原始特征中学习到的低维嵌入上进行训练。 DEC 使用 MS-MTL 训练框架同时训练和维护不同滥用类型的模型。
作为在 Facebook 内实施的一部分,DEC 已将人工标签和用户反馈整合到培训和执行过程中。 Facebook 使用专门的专家团队,他们可以标记帐户是否存在滥用行为。这些专家主动(基于特征)和被动(基于用户反馈)标记帐户。对于主动标记,人工标记员检查各种检测信号所面临的帐户,取样、标记它们,然后采取相应的行动。对于反应性标签,该过程始于用户对执法行动提出上诉(通过 Facebook 产品显示)。然后,人工审核员会调查该帐户并接受上诉(从 DEC 的角度来看是误报)或拒绝上诉(真阳性)。主动和被动的人类标签结果都作为标记数据输入到 DEC 模型训练中。离线模型训练使用人工标记的数据与从在线组件中提取的特征相结合。经过反复的离线和在线测试,更新的模型被部署到生产中。 Facebook 定期对 DEC 进行再培训,以利用最新的滥用模式和信号。总而言之,DEC可以:
1)提取 Facebook 上所有活跃账户的“深度特征”以允许分类。
2)使用分类来预测所有活跃账户的滥用程度,为所有积极参与网络的用户保持最新的分类结果。
3)结合用户和标注者的反馈来迭代分类器模型。
0x04 Methods: Deep Feature Extraction
特征提取是DEC的核心部分。与传统的滥用检测系统相比,DEC 使用聚合特征计算过程,旨在提取“目标”帐户的深层特征。
A. 深层特征
在 DEC 的语境中,“深度”是指在社交图谱中扇出的过程。该图不仅包含用户,还包含平台支持的所有实体,例如群组、帖子等。直接特征是仅作为特定实体的函数的特征,例如帐户年龄或组大小。深层特征是与相关实体相关联的实体的直接特征的函数。例如,“帐户朋友的平均年龄”是该帐户的一个深层特征。深度特征可以递归定义,作为关联账户上深度特征的聚合;例如,一张照片的深层特征可能是“照片中标记的人的朋友加入的平均组数”。
深度特征对分类很有用,因为它们通过查看相邻节点来揭示目标节点在社交图中的位置。例如,在虚假账户的检测中,可以通过深度特征揭示的一个常见模式是批量创建虚假账户。在对虚假账户进行分类时,深度特征包括来自注册账户的 IP 地址的特征,以及从 IP 地址创建的所有其他账户。在使用上述特征进行分类时,可以很容易地检测到批量注册的脚本活动。
一个关键是,深度特征不仅提供有关帐户的额外信息,而且攻击者也难以操纵。控制实体的人可以轻松更改大多数直接特征。例如,帐户年龄由帐户所有者控制,组成员资格由组管理员控制。相比之下,从与目标帐户关联的实体生成的聚合特征更难更改。例如,如果考虑用户所有朋友的年龄,则该用户很难改变平均值,尤其是当朋友的数量很大时。最终甚至可以更进一步,审查所有朋友的朋友,而攻击者几乎不可能完全改变这些信息。
上表列出了 DEC 考虑的一些实体类型,包括用户、群组、设备、照片、状态更新和群组帖子。对于每种实体类型,列出了一些直接特征和深度实体的示例。对于直接特征,使用其他 ML 分类器有效利用的特征,以及在手动调查中发现有用的特征。
上图展示了一个示例深度特征。此特征基于示例帐户的两跳内的相邻节点(中心,橙色)。两个节点之间的边表示共同朋友的关系。与直接特征相比,这个 2 跳深度特征具有成倍增加的相关值构成特征。
B. 实施
为了将上述示例扩展到生产环境,需要解决三个问题:
(a) 查看什么样的相邻节点?
(b) 如何才能有意义地生成深层特征?
(c) 如何防止计算成本在扇出时爆炸?
OSN 产品的复杂性和多样性要求开发者尽可能通用地构建系统,允许在它们之间整合各种各样的实体和边。研究者还希望能够在 Facebook 上出现新特征和产品时添加新类型的实体或边。在社交图中,即使是一对实体也可以连接多种类型的边。例如,用户可以通过成为组的管理员来连接到组。他们也可以通过会员来连接,这是一种较弱的连接。更进一步,用户可以通过评论群组中的帖子来建立联系。
为了定义深层特征,研究者在节点的直接特征集上应用聚合技术,有效地利用跨账户集群的聚合特征来识别虚假账户。如上表所示,对数值特征和分类特征使用不同的聚合方法。为了聚合诸如年龄之类的数字特征,计算了它们分布的统计数据,例如平均值和百分位数。另一方面,对于诸如国籍之类的分类特征,策略是将它们统计地聚合成数字特征。最后还通过观察给定分类特征的数字特征的分布,将数字特征与分类特征联合聚合。例如,如果设备使用 Android 操作系统,则特征可以是从与目标帐户相同的设备登录的帐户数量。
使用聚合有两个优点:首先,它产生了密集的特征向量,降低了模型的维数。其次,它有助于模型抵抗对抗性适应。请注意不需要明确定义每个深度特征:可以定义各种图遍历步骤(例如,用户→用户或用户→组→照片)并自动将所有聚合方法应用于目标实体的所有直接特征。在实践中,这种方法会产生数千个不同的深度特征。
理想情况下,每次用户在 Facebook 上发生操作时,都会触发新的特征提取和分类。鉴于必要的计算资源,这在十亿用户规模上是不可能的。 DEC 依靠启发式方法来决定何时开始特征提取和(重新)分类过程。核心思想是在重新分类之间使用“冷却期”,冷却期的长度随着帐户在平台上花费更多时间而增加。可以想象,活跃时间较长的账户已经通过了许多先前的检查,通常不太可能被滥用,而新注册的账户更有可能被滥用。
虽然(重新)分类是在生产中实时触发的,但特征提取和聚合是异步计算的,而不会干扰帐户在 Facebook 上的体验。考虑到提取所有深度特征的成本,特别是对于在社交图中具有许多连接的帐户,本研究限制了每个帐户使用的计算资源量。具体来说,对用于计算深度特征的相邻节点的数量进行了限制,如果数量超过限制则随机采样。每次重新分类的随机样本都不同;目标是从许多不同的角度捕捉实体在图中的位置。这个采样过程允许在不减少特征多样性的情况下限制计算成本。
C. 特征选择
本研究只使用目标账户的深层特征,而不是直接特征,在 DEC 中进行分类。这种选择的主要动机是因为观察到直接目标帐户特征极有可能成为模型中的主要特征。这种不受欢迎的优势是由训练数据中固有的偏差引起的。例如,一个实验性垃圾邮件检测模型使用了用户是否发布 URL 作为特征;事实证明,这个特征很容易成为模型中的主要特征,因为垃圾邮件发送者比良性用户更有可能在他们的帖子中包含 URL。但是,它会产生大量误报,因为它将几乎所有发布 URL 的用户都归类为滥用。此外,直接特征很容易被攻击者操纵;一旦攻击者得知“已发布 URL”是一项特征,他们就可以从直接发布 URL 切换到将 URL 作为覆盖图放置在照片中以避免被发现。
D. 特征修改
随着攻击者的适应以及对其行为的新发现,将希望向 DEC 添加新特征和/或淘汰性能不佳的特征以节省计算成本。修改特征时需要考虑两个问题。首先是对当前检测模型的影响。一旦添加或删除任何特征,原始 DEC 模型的分类结果将受到影响,因为模型仍使用原始特征列表进行训练。解决方案是将特征记录拆分为两个管道:实验特征和生产特征。可以将新添加(或删除)的特征记录(或不记录)到实验组,从中可以训练一个新模型。同时,生产分类器仍然使用生产的特性列表。当新模型投入生产时,将实验特征集切换到生产管道中。
添加特征的第二个问题是在整个图上重新计算的计算成本。当向实体 A 添加新的直接特征时,它不仅会影响 A,还会影响所有连接的实体,因为它们使用 A 的特征来计算自己的深度特征。相反,大多数直接特征都有多个依赖的深度特征,当添加单个特征时,多个扇出级别很容易需要重新计算整个特征空间。例如,DEC 需要从朋友的所有朋友中提取 new_feature 以计算第 75 个百分位数 p75 (friends.friends.new_feature)。与朋友一起遍历其他特征最终会导致重新提取任何活动实体的特征。为了限制重新计算开销的影响,研究者定义了孤立的特征集合(universes of features)。新旧版本的特征将在平行集合中运行,现有模型使用旧的特征集合,直到新集合的特征生成完成。此时旧集合的特征被包含在内,它可以被丢弃,因为新模型将使用新的特征集合进行训练。
0x05 Methods: Multi-Stage Multi-Task Learning
多任务学习(MTL) 是一种迁移学习,用于提高模型泛化能力。 MTL 使用单个神经网络工作模型并行训练多个相关“任务”。 核心思想是模型为每个任务学习的内容可以提高其他任务的性能。 在帐户分类的上下文中,将“任务”和“标签”定义如下:
• 任务是指对 OSN 上特定类别的滥用帐户(例如,虚假帐户、垃圾邮件帐户)进行分类。
• 训练样本的标签是一个布尔值,指示样本是否属于滥用帐户类别。 每个训练示例都有多个标签,每个任务一个标签。 这个多标签由一个布尔值向量表示。
作为一个具体的例子,如果在 DEC 模型训练中采用四个任务来分类假冒、受损、垃圾邮件和诈骗账户,那么一个账户的标签向量可能是 [1,0,0,1]。该向量表明该帐户被识别为假冒并进行诈骗,但未被识别为已泄露或传播垃圾邮件。
A. 动机
采用多阶段框架来检测 Facebook 上的滥用帐户,框架解决了滥用账户分类中的三个关键挑战:同时支持各种滥用类型、利用高维特征空间以及克服高质量人类标签的短缺(相对于数十亿账户)。
首先,由于账户滥用的方式有很多种,使用不同的任务来表示不同的滥用子类型,并使用多任务学习来增加模型中编码的信息量。潜在的假设是,区分滥用账户和良性账户的特征在滥用类型之间是相关的。因此,针对一种滥用类型所学的知识有助于确定其他滥用类型,因为表现出一种滥用类型的账户更有可能表现出其他滥用行为。与根据滥用类型拆分标记数据并为每种类型训练单独的模型相比,多任务训练通过共同查看所有相关的滥用行为提供了帐户的全貌。期望这种跨任务的知识共享将能够使用多任务学习实现更好的预测准确性,尤其是对于较小的任务。
其次,多阶段框架通过将高维原始特征向量简化为低维表示来解决“维数诅咒”。具体来说,两个训练阶段将特征的数量从超过10^4个(原始的深度特征空间)减少到大约10^2个(学习到的低维表示空间)。通过使用多任务深度神经网络的最后一个隐藏层的嵌入作为第二阶段训练的输入特征来实现这一减少。
最后,一个实际的工程问题是人工标记的数据非常昂贵,尤其是在帐户标记领域。为了将帐户标记为滥用或良性,人工审核者需要查看帐户的许多方面并在做出决定时考虑多个因素。另一方面,有大量机器生成的标签形式的低置信度标签数据。这种情况非常适合多任务学习,因为它已被证明可以成功地从嘈杂的标记数据中提取有用信息。
B. 训练数据收集
本研究有两个关于 DEC 中滥用帐户的数据标签来源。第一个由人工审核员组成,他们会看到来自每个帐户的数百个信号,并要求他们判断该帐户是否存在滥用行为。以这种方式提供的标签具有很高的准确性,但计算成本也很高,因此只能以少量(相对于 Facebook 上的数十亿帐户)获得。
第二个标签源由旨在检测滥用帐户以及用户报告的滥用帐户的自动(非 DEC)算法组成。这些算法可能专注于特定的攻击或滥用类型,或者可能是以前版本的全局滥用检测模型。研究者认为由这些算法识别的帐户大致被标记为滥用帐户。然后,根据每个帐户的滥用类型将标签分成不同的任务。为了获得近似标记的非滥用账户,随机抽取从未被操作过的账户。近似标签的精度低于人工审查的数据,但获取成本要低得多,并且可以大量获取。例如,在评估中,训练数据集有超过 3000 万个近似标签,只有 240,000 个人工标签(下表)。
虽然 3000 万个标签看起来很重要,但它只占 Facebook 数十亿账户的不到 2%。因此,任何试图对训练数据进行中毒攻击的攻击者都需要创建数千个帐户,以确保其中一些被训练集采样为负样本(如果尝试,则为数万个)毒化第二阶段)。另一方面,有数百万个负样本这一事实意味着任何一个帐户都不能对模型产生过大的影响,从而进一步增加了所需的攻击规模。如此大的攻击对于基于规则的系统和人类审阅者来说都很容易检测和标记,因此攻击者毒害训练集的意图将被挫败。此外,即使攻击者以某种方式获得了足够多的账户来毒化训练过程,他们也需要操纵这些账户上的特征以产生非常具体的值,这很难用“深度特征”实现。为了深入了解这种方法的可靠性,随机抽取了近似标记的帐户样本,并通过前面描述的手动审核过程发送它们。在这些实验中,近似标记精度在 90% 和 95% 之间变化,表明近似标记仍然提供显着的识别能力。
C. 模型训练流程
下图显示了 MS-MTL 框架的两阶段训练流程。第一阶段在大量低精度数据上进行训练,学习原始特征的嵌入。然后,应用迁移学习技术并使用嵌入和高精度标签来训练第二阶段模型。生成分类结果作为第二阶段的输出。
(1)第一阶段:低精度训练
第一阶段的目标是将聚合的原始深度特征的高维向量减少为低维嵌入向量。这种降维是通过使用近似标签数据训练多任务深度神经网络模型来完成的。训练数据中的每个样本都有一个标签向量,其中每个标签对应一个任务,每个任务对应于 Facebook 上滥用帐户的子类型的分类。训练收敛后,将神经网络的最后一个隐藏层的输出作为学习的低维嵌入。
对于实现,使用具有 3 个完全连接的隐藏层的神经网络模型,分别具有 512、64 和 32 个神经元。对于每个任务,模型使用 sigmoid 激活函数输出一个概率。使用 Box-Cox 变换对输入进行归一化。使用 PyTorch使用每任务二进制交叉熵和 Adagrad 优化器训练模型,学习率为 0.01。
(2)第二阶段:高精度训练
利用迁移学习中的一种技术从第一阶段模型中提取最后一个隐藏层的输出作为第二阶段的输入。使用高精度人工标记数据训练第二阶段(GBDT 模型),以对滥用帐户进行分类,而不管违规的子类型如何。 GBDT 模型输出的分数就是最终的 DEC 分类分数。对 GBDT 模型的实现使用了 7 个树的集合,最大深度为 4。使用类似于 XGBoost 的公司内部梯度提升框架训练模型,使用惩罚性随机梯度提升,学习率为 0.03特征采样率为 0.2。
0x06 eva luation
在本节中将评估MS-MTL 方法和整个 DEC 系统的性能。具体来说分析了三种滥用账户模型:
1)仅行为模型,代表 OSN 采用的传统检测技术;
2)DEC 作为单个多任务神经网络(“Single Stage”,SS);
3)DEC 与 MS-MTL。
y研究者对 Facebook 上的活跃账户进行了评估。这些帐户已经通过了多个早期安全系统,例如注册或登录时间操作,但尚未通过完整的行为(即基于活动和内容)检测。本研究还研究了对抗性适应,特别是观察 DEC 精度和召回率随时间推移的稳定性。
A. 数据集
训练数据:在Facebook生产数据上测试 DEC 的性能。在MS-MTL 实施中考虑了四种类型的滥用帐户(任务):虚假、被盗、垃圾邮件和诈骗。将滥用类型分为这四个不同的类别有两个原因。首先,他们违反了 Facebook 的不同政策,这导致检测到的帐户由不同的执法系统采取行动,每个系统都使用不同的上诉流程。其次,不同滥用类型的阳性样本本质上是不均匀的。例如,虚假帐户主要是由脚本创建驱动的,而被盗帐户通常是由恶意软件或网络钓鱼引起的。这些帐户的行为模式和社会联系对于每种滥用类型都是独特的,在表述中很适合不同的“任务”。维护单独的近似(较低精度)和人类标签数据集。近似标签的数量明显大于人工标签。第一个训练阶段使用四个近似的滥用帐户和一个良性帐户的数据集,而第二个阶段只需要标记为滥用或良性的人工审核帐户。大致标记的数据来自三个来源:
1)用户举报:Facebook 上的用户可以举报其他用户被滥用。这个来源含噪量很高,但适合作为第一阶段训练的低精度标签。
2)基于规则的系统:在 DEC 之外,Facebook 上还有其他现有的执行规则。将被这些强制措施抓获的用户(按滥用类型分类)作为额外的近似标签来源。由基于规则的系统标记的用户示例包括:
• 用户发送好友请求太快;
• 用户有多项内容被垃圾邮件检测系统删除;
• 用户分发到已知网络钓鱼域的链接。
总的来说,基于规则的系统占滥用帐户标签的一半以上。
3)发现的攻击:对 OSN 的脚本攻击很常见,例如恶意软件或网络钓鱼攻击。当 Facebook 注意到这样的浪潮时,他们可以为所涉及的帐户识别一个“签名”,并将该签名用作第一阶段的大致标签。这些发现的攻击约占滥用帐户标签的 10%。
以上所有来源都提供了嘈杂的、低精度的滥用数据。虽然不适合全系统训练,但它们适合第一阶段的训练。在第一阶段,通过随机抽样活跃用户并排除包含在近似滥用数据集中的用户来构建一组良性用户。相比之下,通过让 Facebook 雇用的人工标注员手动审查平台上随机抽样的用户来生成第二阶段的训练数据。被标记为滥用的帐户被用作训练的正样本,被标记为良性的帐户是负样本。
评估数据:为了评估 DEC 的表现,通过对 Facebook 的活跃用户进行抽样来创建账户评估数据集。这些用户已经通过了几个早期滥用检测系统,因此包含最难分类的滥用账户。使用 Facebook 用于实况测量的相同方法和流程对大量随机选择的帐户进行人工人工标记。然后随机选择标记为滥用的 3×10^4 帐户和标记为良性的 。3×10^4 帐户进行离线评估。
B. 模型评估
使用三种不同的模型来单独评估DEC 方法(单阶段和使用 MS-MTL)的性能,并与传统技术进行比较。请注意,DEC 的目标是识别犯有广泛滥用类型的帐户。这种方法超越了主要专注于检测虚假账户的传统 Sybil 防御技术。这些模型、它们的训练数据和它们的评估数据的总结可以在下表中找到。比较的三个模型是:
1)行为:该GBDT模型仅根据每个账户的直接行为特征(例如,朋友数量)对账户进行分类,并输出该账户是否存在滥用行为(不考虑具体的滥用类型)。因此,该模型不使用深度特征,也不是多任务。由于行为特征的数量相对较少,使用人类标记的数据集来训练模型。该模型代表了 OSN 中使用的传统基于 ML 的检测技术,类似通过对从 Facebook 上已经经历过早期修复的活跃帐户提取的评估数据集进行操作,添加此行为(后期)系统代表了端到端解决方案。采用了一个 GBDT 架构,其中包含 200 棵深度为 16 的树,每棵树都有 32 个叶节点。
2)DEC-SS:该模型使用本文概述的 DEC 方法来提取深度特征,但没有利用 MS-MTL 学习方法。通过组合跨多个任务的所有近似数据来训练单个深度神经网络模型。如果用户被任何一项包含的任务识别为违反,将其视为正样本。由于 DEC 提取的特征数量巨大,人工标注的数据量太少,无法用于训练。
3)DEC-MS-MTL:这是完整的端到端框架和模型。它结合了仅 DEC 方法和 MS-MTL。
在此评估部分之外,对没有 MS-MTL 或 SS 限定符的 DEC 的引用指的是 DEC MS-MTL。
C. 性能比较
根据上述三个模型的结果比较了各种指标。
(1)ROC 曲线
下图检查了所有三个模型的 ROC 性能。 ROC 曲线捕捉分类器中误报和漏报之间的权衡。对于曲线上的所有操作点,DEC 模型(MS-MTL 和 SS)的性能明显优于仅行为方法 – 高达 20%,具体取决于操作点。从 ROC 的角度来看,两个 DEC 模型的表现相似。
虽然 ROC 曲线是衡量模型有效性的重要指标,但它们本质上是无标度的,因为 x 轴仅考虑实况负值,而 y 轴仅考虑实况正值。如果被分类的数据集是不平衡的,就像滥用账户的情况一样(良性账户比滥用账户要多得多),ROC 曲线可能无法捕捉分类系统的实际操作性能——尤其是精度,这是一个关键的衡量标准确保访问滥用检测系统。
(2)准确率和召回率
下图比较了模型的精度和召回率。研究发现行为模型无法获得高于 0.95 的精度,并且在整个精度范围内的召回率都很差。两种 DEC 模型的性能都明显优于行为模型,能够在所有相关操作区域实现更高的精度和更高的召回率。采用 MS-MTL 的 DEC 在高精度操作点上比单级 DEC 显着提高了系统召回率,提高了多达 30%。
注意到此评估针对已经通过其他安全分类的帐户,例如注册时间或登录时间补救措施(即最难分类的帐户)。因此,整体召回水平预计将低于在所有活动账户上运行的系统。DEC 与 MS-MTL 相比行为模型在召回方面的改进使其在现实世界的操作环境中特别有吸引力,在该环境中,对难以分类的账户进行召回是一个重要的操作特征。
(3)定量评估:(AUC)曲线下面积和精度/召回率
下表显示了三个模型之间的精度、召回率和 ROC 性能的比较。 ROC 性能计算为曲线下的总面积 (AUC)。精度固定为 0.95,这是评估性能的常用操作点。行为模型在任何召回时都无法达到 0.95 的精度,因此被排除在外。发现虽然 DEC 单阶段和 MS-MTL 具有相似的 AUC 性能,但添加 MS-MTL 会使模型召回率增加一倍以上,从 22% 增加到 50%。这种提高的性能,无论是在行为上还是在没有 MS-MTL 的 DEC 上,都可以在生产中部署时显着提高对现实世界的影响。
D. 生产环境中的结果
基于对 DEC(使用 MS MTL)的设计和评估,将该系统部署到 Facebook 的生产中。该系统不仅识别出滥用帐户,还触发面向用户的系统对识别出的帐户采取行动。为了评估模型对现实世界的影响和寿命,通过观察精度和召回率随时间推移的稳定性来评估生产系统。
随时间变化的精度:上图检查了在 Facebook 生产中使用 MS-MTL 系统的 DEC 精度的 3 天移动平均值。与之前的评估一样,依靠人工标记随机样本的账户来获得测量的基本事实,这些账户被 DEC 归类为滥用。发现系统的精度是稳定的,精度从不低于0.97,经常高于0.98。
随时间变化的召回率:通过考虑其漏报率(FNR)来检查生产 DEC-MS-MTL 模型召回的稳定性,其中 FNR = 1-召回。使用每天随机选择并手动标记的 2×10^4 个用户的纵向样本,计算了 Facebook 上滥用帐户数量的无偏 FNR 统计量度,而不管直接检测。该度量被表示为滥用账户的“流行度”,可以被认为是所有滥用账户检测系统(包括 DEC)的综合误报率。如果将被 DEC 专门(而不是其他检测系统)捕获的滥用帐户的数量添加到流行度测量中,可以估计在没有 DEC 的情况下滥用帐户的流行程度。
上图绘制了一个月期间观察到的滥用帐户(部署了 DEC)的流行率和没有 DEC 的推断流行率。与非 DEC 方法相比,DEC 召回的损失(相当于 DEC 的 FNR 增加)将表现为总体滥用帐户流行率的增加,或 DEC 的能力下降(差异的减少)两项措施之间。在为期一个月的实验中没有观察到这两种现象,这表明 DEC 的回忆在此期间没有发生有意义的变化,并表明对 DEC 没有对抗性适应。
在 DEC 推出之前,Facebook 报告了广告攻击者在数小时内适应新检测系统的实例;自 DEC 出现以来,一直没有这样的报告。此结论的假设是DEC 的“深度特征”架构使系统比其他滥用帐户检测系统更能抵抗对抗性适应。希望操纵通过图聚合的用户特征的攻击者必须控制与原始用户连接的所有相关实体上的该特征。当将此推理应用于众多不同的实体关联时——包括但不限于用户好友、群组成员资格、设备所有权和 IP 地址外观——得出的结论是,操纵许多此类特征将是遥不可及的。对于攻击者来说,比操纵“直接”用户特征(如国家、年龄或朋友数量)更昂贵。
自部署以来,DEC 已成为 Facebook 上主要的滥用帐户检测系统之一,负责识别和停用数亿个帐户。在评估期间,没有 DEC 的平均估计流行率为 5.2%,而在 Facebook 上观察到的平均滥用帐户量为 3.8%,提高了 27%。
DEC 所有帐户:迄今为止,对 DEC 的评估主要集中在最难分类的滥用类型上——其他生产滥用检测系统未识别出的帐户。另一个问题是 DEC 在识别所有滥用帐户方面的有效性如何,包括那些被其他系统捕获的帐户。为了回答这个问题,评估了从 Facebook 上所有账户中随机抽取的 1.6×10^4 个活跃账户的 DEC,包括那些被其他系统检测为滥用的账户。这些帐户由专业的人工标注员明确标记,并用作评估的基本事实。上表显示了 DEC 在所有账户中的表现。 DEC 在该人群中表现良好,AUC 为 0.981,召回率为 0.981 的精度为 0.95,召回率为 0.955 的精度为 0.99。正如预期的那样,固定精度下的 AUC 和召回率均显着高于其他系统未检测到的帐户子群体。
0x07 Discussion and Lessons Learned
在 Facebook 部署了两年多后,文章作者吸取了很多教训,并确定了开发和使用 DEC 的一些限制。
A. 减少计算和人力负担
为 Facebook 规模的所有活跃用户提取图形特征的计算成本很高。鉴于当前在图中目标节点的两跳内实现特征提取,对于每个用户可能需要接触成百上千个相邻节点,以便提取他们的所有信息并将其聚合回目标节点。为了缓解这个问题开发了缓存策略,尽可能地重用以前的特征提取结果。然而,由于许多特征具有时间敏感性,仍然需要在每次重新分类时更新和重新提取相当数量的特征。
DEC 的计算负载很高——相当于 Facebook 全球 CPU 资源的 0.7%。DEC 的部署实际上降低了 Facebook 的全球 CPU 使用率。 DEC 通过识别和删除如此大量的滥用账户来实现这一结果,以至于这些滥用账户的 CPU 使用率总和超过了 DEC 的特征提取、训练和部署所需的计算量。DEC 还大大降低了人力成本,即人工评估和删除滥用帐户所需的人力审查资源。 DEC 的部署将滥用帐户检测所需的总审查资源减少了 15% 到 20%。
B. 划分与公平
本研究的一个关键发现是单任务分类器在任务中的不同部分执行不同。例如,如果按照用户自报的年龄对账户进行细分,那么滥用账户分类器在一个年龄段上的误报率可能高于其他年龄段。同样,不同地区的性能可能会有所不同,因为正在构建一个模型以适应可能在不同文化中以不同方式使用的全球产品。这种变化在如此庞大和异质的用户群中是可以预期的,可能被解释为模型对待某些人群相对于其他人群不公平。 在用于本文的数据集中,无法找到任何细分群体哪个分类器的性能在统计上存在显着差异,但是通过再训练和/或不同的分割可能会出现这种不公平现象。因此,研究者主动考虑了一些措施来减少不同细分市场的差异。
一个主要发现是划分效果与训练数据中的偏差高度相关。例如,假设使用帐户所有者的年龄作为特征,并且训练数据中滥用样本的所有者平均比非滥用样本的所有者年轻。在这种情况下,如果不调整训练数据中不同部分的比例,分类器可能会得出这样的结论,即年轻人拥有的账户更容易被滥用。作为防止这种偏见的第一步,研究者从模型中移除了所有“直接”用户人口特征,包括年龄、性别和国家。虽然这些特征可能有助于预测滥用行为,但它们很容易在模型中引入不公平,就像上面的年龄示例一样——不想仅仅因为攻击者通常选择设置假账户的年龄小来惩罚年轻的良性用户。
考虑的另一种方法是对标记数据进行采样,以便创建一个尽可能接近地反映整体 OSN 分布的训练集。在正在进行的工作中,研究者正在尝试使用基于攻击聚类的分层抽样来训练 DEC,特别是对大型集群进行下采样,以最大限度地减少单次攻击对最终模型的影响。这种方法将确保来自给定用户群体的大规模攻击不会告诉模型来自该群体的大多数用户都是滥用的。然而,随着试图匹配越来越多的细分市场,分层抽样变得异常昂贵。此外,随着添加更多维度,片段会变得更小,并且统计噪声很快就会引入足够的误差,从而超过采样带来的精度增益。
最后一种方法是将特定的段拆分出来,并在 MS-MTL 框架中为它们创建专门的任务;但这种方法要求为每个部分收集足够的训练数据,并且维护成本随着所训练的模型数量的增加而增加。Facebook没有训练和维护多个模型,而是选择监控特定的高调片段的误报峰值,并通过调整整个模型来减少特定片段的误报来解决任何问题。
C. 在对抗环境中测量
由于滥用检测系统固有地在对抗环境中运行,因此衡量系统更改的影响是一个特别困难的问题。一个常见的对抗性迭代如下所示:
1)攻击者找到了滥用Facebook的成功方法;
2)Facebook调整其检测系统并减轻攻击;
3)攻击者迭代直到他们再次达到1),或者资源成本变得太高并且他们停止。
假设攻击者和 Facebook 不断努力,上述循环最终会达到平衡。由于这个循环,很难在部署期间使用 A/B 测试正确衡量模型的效果。如果实验组太小,将永远不会到达第 3 步,因为攻击者没有改变的动力。指标在实验组中可能看起来不错,但当更广泛地推出时,将达到第 3 步,性能会下降。
缓解此问题的一种方法是在特征启动中添加一个“保留组”。保留组是模型预测为滥用的用户的随机样本。没有在检测到后立即采取行动阻止这些帐户,而是在对这些用户强制执行之前退后并确认滥用行为按预期发生。这种坚持有助于更准确地衡量分类器的精度,但必须仔细权衡潜在影响,因为坚持可能会导致进一步的滥用。出于这个原因,坚持不用于所有类型的滥用。
D. 对 DEC 的对抗性攻击
攻击者可能会试图通过创建大量试图被基于规则的检测系统标记为良性的被盗帐户来毒化第一阶段的低质量标签。考虑到 DEC 训练数据的范围和相对较低的采样率,攻击者很难以显着影响训练模型的规模生成此类帐户,特别是考虑到其他(非 DEC ) 系统专门用于限制大规模创建虚假账户。
攻击者可能试图通过创建大量相互连接的虚假帐户来逃避分类器,以便他们可以控制所有深层特征。这个子图要么必须与友图的其余部分隔离(这本身就是可疑的),要么与主图有合理数量的连接。在后一种情况下,由于 DEC 在二阶连接上运行,几乎所有 DEC 特征都将包含来自攻击者无法控制的真实账户的数据。此外,虽然攻击者控制了虚假账户的行为,但他们不知道一组相似的连接合法用户的行为,并且虚假账户的协调活动将被 DEC 检测为异常。
攻击者还可以根据受害者无法控制的邻居的特征,试图诱骗 DEC 将良性用户错误分类为滥用行为。例如,攻击者可以创建上述滥用帐户的子图,并尝试与使用这些帐户的受害者成为朋友。如果受害者接受一个或多个好友请求,他们会将自己嵌入到滥用子图中,这可能导致 DEC 对受害者采取错误行动。这种“强制嵌入”在执行上也具有挑战性。首先,实体之间的“尝试”链接(例如,未解决或拒绝的好友请求)不是 DEC 中的特征。其次,受害者和滥用子图之间的单个坏边不足以导致错误分类。受害者需要被多次欺骗,才有可能被错误分类。最后,DEC 识别的账户有机会完成挑战或要求人工审查作为故障保险,以防止不正确的分类。
E. 局限性和未来方向
虽然 DEC 在实践中检测滥用帐户方面非常有效,但其设计提供了几个改进机会:
• DEC 的计算成本很高,尤其是由于它使用了深度特征。然而,请前文论了如何通过识别更多滥用帐户所节省的资源来平衡这种高计算成本。进一步降低计算成本是一个活跃的工作领域,至少与提高模型质量一样受到关注。
• 直观地说,DEC 的分类基于帐户在 Facebook 图表中的位置和连接。表现出低水平活动或连接的帐户为 DEC 提供的用于推理的信号较少,从而限制了其有效性。然而即使这样的账户是滥用的,它们本质上对 Facebook 及其用户的影响也较小。目前正在探索包含更好地捕获这些低信号帐户的特征的方法。
• DEC 的机器学习模型缺乏可解释性,因为它依赖 DNN 将深层特征的高维空间缩减为用于分类决策的低维嵌入。这一特性使得调试和理解 DEC 决策背后的推理变得困难。使模型可解释是一个活跃的研究领域。
• DEC 聚合来自许多用户的数据以生成用于分类的特征的方法对异常值的敏感性低于使用直接特征的方法。因此,与其他模型系列相比,DEC 对极端特征值的区分度可能较低。采取了“深度防御”的方法来应对这一挑战,因为手动规则可以非常有效地捕获极端异常值。在 DEC 框架内解决此类异常值仍然是一个悬而未决的问题。
• DEC 与其他监督或半监督机器学习系统一样,严重依赖于其训练数据标签的质量。设法大规模诱导不准确的人类标签的攻击者可能能够操纵或干扰 DEC 的分类。研究者一直在努力改进标签流程,以解决任何观察到的或潜在的限制。
即使有这些限制,对 Facebook 生产数据的评估表明DEC 提供了比传统检测方法更好的性能。
0x08 Conclusion
本研究提出了深度实体分类 (DEC),这是一种机器学习框架,用于检测 OSN 中的滥用账户。框架解决了现有滥用检测系统中的两个问题:首先,它的“深度特征”提取方法创建了强大的分类特征,并且(到目前为止)没有显示出针对帐户或行为特征的典型对抗性适应迹象。其次,它使用一种新颖的机器学习训练框架来利用大量、低精度和低数量、高精度的训练数据来提高模型性能。
在 Facebook 对生产数据的评估表明,DEC 提供了比传统检测方法更好的性能。此外,DEC 的性能随着时间的推移是稳定的,这表明它对对抗性适应具有鲁棒性。在 Facebook 部署 DEC 两年多期间,它已检测到数亿个滥用帐户。估计DEC 将平台上的活跃滥用账户数量减少了 27%。