浅谈活动场景下的图算法在反作弊应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈活动场景下的图算法在反作弊应用相关的知识,希望对你有一定的参考价值。
作者 | ANTI
导读
随着反作弊与作弊黑产对抗愈发激烈,作弊手段日新月异,我们也不断尝试新的方法解决新的作弊问题。本文主要介绍在活动场景下,应用图算法解决社团类型作弊问题。图模型不仅能够同时融入图的拓扑结构和节点的特征进行学习,而且其作为半监督模型,可以更好地利用未标注的数据,提升召回效果。文中提到的GCN图模型和SCGCN(多图串联模型)在作弊召回方面均取得很好的效果。
全文4102字,预计阅读时间11分钟。
01 引言
运营活动是企业保证用户增长与留存的重要手段,也是企业的核心竞争力之一。其主要形式包括拉新和促活,拉新是通过老用户邀请新用户的方式获取新的用户,增大用户资源池;促活即是通过做任务的活动形式提升DAU,增加用户粘性。举个例子,我们平时在某APP上参与的做任务领红包活动便是运营活动的具体形式之一。企业通过结合自己的产品特点开展运营活动,可以达到提升用户留存率和转化率的目的,从而提高企业收益和影响力。 百度系APP上也有各式各样的活动,例如「邀好友领红包」,「做任务领红包」等。但是活动中会有大量作弊者(比如网络黑产)通过作弊手段获取非正当利益,影响活动营销效果。此时就需要反作弊系统通过用户画像、用户行为、设备信息等多维度信息对黑产进行甄别,为公司的运营活动保驾护航。近年来,随着反作弊与黑产之间不断的攻防对抗,黑产的作弊手段也在不断迭代升级,从大规模机刷作弊逐渐演变为众包作弊,乃至小规模真人作弊,这使反作弊的作弊识别难度也不断增加,是此,我们需要不停的迭代新的方法对黑产进行识别和拦截。
02 难点
在运营活动中,以拉新活动为例。在拉新类型的活动中,邀请行为一旦发生,用户之间便会自动建立一种关联关系,这里我们称之为「师徒关系」(邀请者视为「师父」,将被邀请者视为「徒弟」)。举个例子,Pic.3是通过「邀新」操作产生的用户关系图,我们称上层人物为下层人物的「师父」,称下层人物为上层人物的「徒弟」。图中师父可以拉新多个徒弟,与此同时会获得相应奖励,通常情况下徒弟越多,奖励越多。
△Pic.1邀好友活动、Pic.2国庆活动
△Pic.3邀请活动人物关系说明
目前,拉新场景反作弊建模面临以下两个问题:
1、缺少刻画用户间联系信息的能力:活动反作弊业务目前应用模型包含树模型、DNN和机器学习模型。如果我们把用户看作节点,会发现这些模型的学习训练更关注于节点本身的特征,而缺少学习节点与节点之间的关系特征的能力。在近期的几次作弊攻击中,发现以「社团」为基本单位进行规模式攻击的作弊形式,他们在行为以及设备信息上具有明显的共享性,作弊者之间体现出信息强关联性,我们需要有更好的模型来学习这种「关联性」的能力。
2、样本纯度低导致召回受限:一般获取黑样本的方式是通过人工抽样评估和客诉反馈富集,白样本是按一定的比例随机抽样获得。但是这样做存在一个不好解决的问题,即这些白样本可能混入了未知作弊数据,会使白样本纯度降低,进而影响有监督模型的训练效果。
下面我们介绍图模型算法可以有效解决上面两个问题。
03 图算法应用
为解决上面提出的两个业务难题,选用图神经网络模型进行业务建模。图模型的优势在于能够同时融入了图的拓扑结构和节点的特征进行学习,不仅可以通过于节点之间建立的边关系,进行信息互联,补充模型对边关系的学习能力,从而扩大召回,而且图模型作为半监督模型,可以更好地利用未标注的数据,提升召回效果。
3.1 图模型简介
目前常用的图神经网络模型可以分为两大类:一类是基于图游走的方法,例如random-walk游走类模型;另一类是基于图卷积的方法,例如GCN、GAT以及GraphSAGE等图卷积神经网络模型。GCN从整图的角度出发,打通了原始图结构和神经网络之间的壁垒,但是基于整图的巨大计算量使其在大规模场景应用上遇到瓶颈,而从局部图角度出发的GraphSAGE可以一定程度解决这个问题。另一种常用图模型GAT加入了注意力机制,更多的模型参数在增强了学习能力的同时,也增加了时空复杂度,这使模型训练需要更充分的样本信息以及计算资源。在真实业务场景中,由于样本量规模可控,所以直接选取GCN图算法进行训练,下面简单介绍GCN原理。
GCN是一个多层的图卷积神经网络,每一个卷积层仅处理一阶邻域信息,通过叠加若干卷积层可以实现多阶邻域的信息传递。
每一个卷积层的传播规则如下[1]:
其中
- 是无向图的邻接矩阵加上自连接, 是单位矩阵
- 是的度矩阵,即
- 是第层的激活单元矩阵,
- 是每一层的参数矩阵
邻接矩阵代表了节点的邻居信息的传递,单位矩阵代表节点自身信息的传递,正因为这样GCN模型既可以学习到节点本身的特征,又可以学习到其与其它节点的关联信息,将自己和邻居节点的信息汇总到一起进行训练学习。
△Pic.4 GCN原理图
△Pic.5 举例说明
图神经网络领域作为研究热点之一,近年来已广泛应用到工业界的各个场景中,并取得了良好效果。
3.2 图算法应用
3.2.1 基于拉新活动作弊场景的GCN召回模型
拉新活动场景建模
拉新活动场景是活动主要作弊场景之一。以「师徒邀新场景」举例来说,如果师父用户成功邀请徒弟用户成为新用户,则师父用户和徒弟用户都会获得相应的奖励。黑产会使用批量虚假徒弟账号帮助师父完成邀新行为从而获得收益。通过数据统计分析,发现这些虚假徒弟用户存在共享IP、机型重合等现象。据此,尝试以「师父用户」作为图中基础节点,分别将「城市+机型」和「IP+机型」作为边关系进行图模型构建。
图裁剪
由于不是所有共享IP-机型的师父均存在作弊信号,只保留权重大于阈值T的边,达到特征增强的效果。
模型效果
△table 1 模型效果对比
实验结果表明,GCN算法效果显著,使作弊样本召回率提升42.97%。
3.2.2 多图融合方法应用探索
从以上实验中可以看出,不同的构图方式会召回不同的作弊群体。如果将在这些群体之间差异信息融合在一起,会不会获得更多的召回呢?于是,尝试找到一种有效的方式,将不同图信息整合到同一个模型中,提升作弊样本召回率。沿着多图融合的思路,提出以下三种方法分别进行实验.
融合方式
edge\\_union边融合将两图融合思路是「图A和图B边混建在同一图中进行训练学习」,以这样的方式将图A&图B包含的信息融合到一起。
△Pic.6 edge\\union模型
△Pic.7 edge\\union构图方式
scgcn-split embedding特征继承
将两图融合思路是「取训练好的图A的embedding表示作为图B的输入特征进行训练学习」,以这样的方式将图A&图B包含的信息融合到一起。
△Pic.8 scgcn-split模型
scgcn串联图合并训练
基于scgcn-split方案,将图A&图B串联起来同时进行训练学习。
△Pic.9 scgcn模型
模型效果
以下是不同方法在同一数据集上的表现对比结果:
△table 2 模型效果对比
从新增召回量级上角度看,scgcn方法最好,召回了最多的作弊样本;edge\\_union方法表现较差,其召回量级甚至不如GCN单图。简单分析原因,edge\\_union方法将不同类型的边合并到同一图结构中,在此过程中未区分边的类型与重要性,相当于将图边同质化,由此损失了一些边信息,从实验结果上看便是损失了一部分召回。与此同时,edge\\_union模型受到半监督学习场景和样本纯度不足的限制,在节点之间增加了边连接的同时,也有传递错误信息的风险。除以上实验外,也尝试了对embedding层进行concat/max-pool/avg-pool等图融合的方法,这些方法均存在召回损失,说明「并行」图融合的方法无法使模型学习到更多的信息,反而会因信息互斥效应损失召回。相反,「串行」图融合的方法显得更加有效。scgcn-split和scgcn相比于单图模型均有更多的召回,尤其是scgcn模型,将多图参数同时进行训练,可以真正将多图信息融合到一起,召回了比单模型召回并集更多的样本。
04 总结与展望
相较于传统模型,图模型不仅可以获取节点信息,还可以捕捉节点与节点之间的关系信息。通过于节点之间建立的边关系,进行信息互联,学习到更多的信息,从而扩大召回。在拉新活动反作弊的师徒活动场景中,通过对图算法的应用,使新增召回作弊样本在原有作弊样本基础上增加50%,召回率大幅度提升。
未来还将在以下方向进行进一步探索:
1、从之前的工作中可以看出边关系在图模型学习中产生了重要作用,后续会对边权重进行加工学习,同时也会对节点信息进行补充,通过增加数据信息和有效特征,增强模型的召回能力。
2、随着作弊手段不断升级,作弊形式逐渐由机器操作过渡到真人操作,作弊规模缩小,导致作弊特征稀疏,增加了识别难度。后续将尝试更多的图算法,例如引入注意力机制的GAT\\[2\\]模型,可堆叠多层网络的Deepgcn\\[3\\]模型等,以提高作弊识别敏感度。
——END——
参考文献:
[1]Kipf, Thomas N., and Max Welling. "Semi-supervised classification with graph convolutional networks." arXiv preprint arXiv:1609.02907 (2016).
[2]Veličković, Petar, et al. "Graph attention networks." arXiv preprint arXiv:1710.10903 (2017).
[3]Li, Guohao, et al. "Deepgcns: Can gcns go as deep as cnns?." Proceedings of the IEEE/CVF international conference on computer vision. 2019.
推荐阅读:
Serverless:基于个性化服务画像的弹性伸缩实践
百度工程师带你了解Module Federation
浅谈加密算法
前言
数字签名、信息加密 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加密算法 来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。
正文
1. 数字签名
数字签名,简单来说就是通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。一套 数字签名 通常定义两种 互补 的运算,一个用于 签名,另一个用于 验证。分别由 发送者 持有能够 代表自己身份 的 私钥 (私钥不可泄露),由 接受者 持有与私钥对应的 公钥 ,能够在 接受 到来自发送者信息时用于 验证 其身份。
注意:图中 加密过程 有别于 公钥加密,更多 介绍戳这里。签名 最根本的用途是要能够唯一 证明发送方的身份,防止 中间人攻击、CSRF
跨域身份伪造。基于这一点在诸如 设备认证、用户认证、第三方认证 等认证体系中都会使用到 签名算法 (彼此的实现方式可能会有差异)。
2. 加密和解密
2.1. 加密
数据加密 的基本过程,就是对原来为 明文 的文件或数据按 某种算法 进行处理,使其成为 不可读 的一段代码,通常称为 “密文”。通过这样的途径,来达到 保护数据 不被 非法人窃取、阅读的目的。
2.2. 解密
加密 的 逆过程 为 解密,即将该 编码信息 转化为其 原来数据 的过程。
3. 对称加密和非对称加密
加密算法分 对称加密 和 非对称加密,其中对称加密算法的加密与解密 密钥相同,非对称加密算法的加密密钥与解密 密钥不同,此外,还有一类 不需要密钥 的 散列算法。
常见的 对称加密 算法主要有 DES、3DES、AES 等,常见的 非对称算法 主要有 RSA、DSA 等,散列算法 主要有 SHA-1、MD5 等。
3.1. 对称加密
对称加密算法 是应用较早的加密算法,又称为 共享密钥加密算法。在 对称加密算法 中,使用的密钥只有一个,发送 和 接收 双方都使用这个密钥对数据进行 加密 和 解密。这就要求加密和解密方事先都必须知道加密的密钥。
数据加密过程:在对称加密算法中,数据发送方 将 明文 (原始数据) 和 加密密钥 一起经过特殊 加密处理,生成复杂的 加密密文 进行发送。
数据解密过程:数据接收方 收到密文后,若想读取原数据,则需要使用 加密使用的密钥 及相同算法的 逆算法 对加密的密文进行解密,才能使其恢复成 可读明文。
3.2. 非对称加密
非对称加密算法,又称为 公开密钥加密算法。它需要两个密钥,一个称为 公开密钥 (public key),即 公钥,另一个称为 私有密钥 (private key),即 私钥。
因为 加密 和 解密 使用的是两个不同的密钥,所以这种算法称为 非对称加密算法。
如果使用 公钥 对数据 进行加密,只有用对应的 私钥 才能 进行解密。
如果使用 私钥 对数据 进行加密,只有用对应的 公钥 才能 进行解密。
例子:甲方生成 一对密钥 并将其中的一把作为 公钥 向其它人公开,得到该公钥的 乙方 使用该密钥对机密信息 进行加密 后再发送给甲方,甲方再使用自己保存的另一把 专用密钥 (私钥),对 加密 后的信息 进行解密。
4. 常见的签名加密算法
4.1. MD5算法
MD5 用的是 哈希函数,它的典型应用是对一段信息产生 信息摘要,以 防止被篡改。严格来说,MD5 不是一种 加密算法 而是 摘要算法。无论是多长的输入,MD5 都会输出长度为 128bits 的一个串 (通常用 16 进制 表示为 32 个字符)。
4.2. SHA1算法
SHA1 是和 MD5 一样流行的 消息摘要算法,然而 SHA1 比 MD5 的 安全性更强。对于长度小于 2 ^ 64 位的消息,SHA1 会产生一个 160 位的 消息摘要。基于 MD5、SHA1 的信息摘要特性以及 不可逆 (一般而言),可以被应用在检查 文件完整性 以及 数字签名 等场景。
4.3. HMAC算法
HMAC 是密钥相关的 哈希运算消息认证码(Hash-based Message Authentication Code),HMAC 运算利用 哈希算法 (MD5、SHA1 等),以 一个密钥 和 一个消息 为输入,生成一个 消息摘要 作为 输出。
HMAC 发送方 和 接收方 都有的 key 进行计算,而没有这把 key 的第三方,则是 无法计算 出正确的 散列值的,这样就可以 防止数据被篡改。
4.4. AES/DES/3DES算法
AES、DES、3DES 都是 对称 的 块加密算法,加解密 的过程是 可逆的。常用的有 AES128、AES192、AES256 (默认安装的 JDK 尚不支持 AES256,需要安装对应的 jce 补丁进行升级 jce1.7,jce1.8)。
4.4.1. DES算法
DES 加密算法是一种 分组密码,以 64 位为 分组对数据 加密,它的 密钥长度 是 56 位,加密解密 用 同一算法。
DES 加密算法是对 密钥 进行保密,而 公开算法,包括加密和解密算法。这样,只有掌握了和发送方 相同密钥 的人才能解读由 DES加密算法加密的密文数据。因此,破译 DES 加密算法实际上就是 搜索密钥的编码。对于 56 位长度的 密钥 来说,如果用 穷举法 来进行搜索的话,其运算次数为 2 ^ 56 次。
4.4.2. 3DES算法
是基于 DES 的 对称算法,对 一块数据 用 三个不同的密钥 进行 三次加密,强度更高。
4.4.3. AES算法
AES 加密算法是密码学中的 高级加密标准,该加密算法采用 对称分组密码体制,密钥长度的最少支持为 128 位、 192 位、256 位,分组长度 128 位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的 区块加密标准。
AES 本身就是为了取代 DES 的,AES 具有更好的 安全性、效率 和 灵活性。
4.5. RSA算法
RSA 加密算法是目前最有影响力的 公钥加密算法,并且被普遍认为是目前 最优秀的公钥方案 之一。RSA 是第一个能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击,已被 ISO 推荐为公钥数据加密标准。
RSA 加密算法 基于一个十分简单的数论事实:将两个大 素数 相乘十分容易,但想要对其乘积进行 因式分解 却极其困难,因此可以将 乘积 公开作为 加密密钥。
4.6. ECC算法
ECC 也是一种 非对称加密算法,主要优势是在某些情况下,它比其他的方法使用 更小的密钥,比如 RSA 加密算法,提供 相当的或更高等级 的安全级别。不过一个缺点是 加密和解密操作 的实现比其他机制 时间长 (相比 RSA 算法,该算法对 CPU 消耗严重)。
5. 各种加密算法对比
5.1. 散列算法比较
5.4. 对称算法与非对称加密算法
5.4.1. 对称算法
密钥管理:比较难,不适合互联网,一般用于内部系统
安全性:中
加密速度:快好 几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特 数据),适合大数据量的加解密处理
5.4.2. 非对称算法
密钥管理:密钥容易管理
安全性:高
加密速度:比较慢,适合 小数据量 加解密或数据签名
本文介绍了 数字签名,加密和解密,对称加密和非对称加密,具体详细的使用和代码实例自行去网上查找,结合工作中实际需求更好哦!
以上是关于浅谈活动场景下的图算法在反作弊应用的主要内容,如果未能解决你的问题,请参考以下文章