作者:vivo 互联网安全团队- Duan Yunxin
商业化广告流量变现,媒体侧和广告主侧的作弊现象严重,损害各方的利益,基于策略和算法模型的业务风控,有效保证各方的利益;算法模型可有效识别策略无法实现的复杂作弊模型,本文首先对广告反作弊进行简介,其次介绍风控系统中常用算法模型,以及实战过程中具体风控算法模型的应用案例。
广告流量作弊,即媒体通过多种作弊手段,获取广告主的利益。
作弊流量主要来自于:
模拟器或者被篡改了设备的广告流量;
真设备,但通过群控控制的流量;
真人真机,但诱导产生无效流量等。
机器行为: IP重复刷量、换不同IP重复刷量,流量劫持,换不同imei重复刷量等。
人工行为:素材交互要素诱导点击,媒体渲染文案诱导点击,突然弹出误触点击等。
按照广告投放流程顺序
展示作弊:媒体将多个展示广告同时曝光于同一个广告位,向广告主收取多个广告的展示费用。
点击作弊:通过脚本或计算机程序模拟真人用户,又或者雇佣和激励诱导用户进行点击,生成大量无用广告点击,获取广告主的CPC广告预算。
安装作弊:通过测试机或模拟器模拟下载,以及通过移动人工或者技术手段修改设备信息、SDK方式发送虚拟信息、模拟下载等等。
智能风控,运用大量行为数据构建模型,对风险进行识别和感知监控,相比规则策略,显著提升识别的准确性和覆盖率以及稳定性。
常见的无监督算法:
密度聚类(DBSCAN)
孤立森林(Isolation Forest)
K均值算法
常见有监督算法:
逻辑回归(logistic)
随机森林 (random forest)
体系分四层:
平台层:主要是依托spark-ml/tensorflow/torch算法框架基础上,引用开源以及自定义开发的算法应用于业务风控建模中。
数据层:搭建vaid/ip/媒体/广告位等多粒度下,请求、曝光、点击、下载、激活等多转化流程的画像和特征体系,服务于算法建模。
业务模型层:基于行为数据特征和画像数据,搭建点击反作弊审计模型、请求点击风险预估模型、媒体行为相似团伙模型以及媒体粒度异常感知等模型。
接入层:模型数据的应用,离线点击反作弊模型审计结果与策略识别审计结果汇总,同步业务下游处罚;媒体异常感知模型主要作为候选名单同步点检平台和自动化巡检进行。
背景:广告素材中添加虚拟的X关闭按钮,导致用户关闭广告时点击的虚假的X按钮,导致无效的点击流量,同时影响用户体验;左图是投放的原始素材,右侧是用户点击的坐标绘制热力图,虚拟X导致用户关闭广告时产生无效的点击流量。
模型识别感知:
1、密度聚类(DBSCAN):
先定义几个概念:
邻域:对于任意给定样本x和距离ε,x的ε邻域是指到x距离不超过ε的样本的集合;
核心对象:若样本x的ε邻域内至少包含minPts个样本,则x是一个核心对象;
密度直达:若样本b在a的ε邻域内,且a是核心对象,则称样本b由样本x密度直达;
密度可达:对于样本a,b,如果存在样例p1,p2,...,pn,其中,p1=a,pn=b,且序列中每一个样本都与它的前一个样本密度直达,则称样本a与b密度可达;
密度相连:对于样本a和b,若存在样本k使得a与k密度可达,且k与b密度可达,则a与b密度相连;
所定义的簇概念为:由密度可达关系导出的最大密度相连的样本集合,即为最终聚类的一个簇。
2、应用算法对诱导误触广告感知:
① 首先按照分辨率和广告位,对点击数据进行分组,筛选过滤掉量级较小的群组;
② 对每个群组,使用密度聚类算法进行聚类,设置邻域密度阈值为10,半径ε=5,进行聚类训练;
③ 对每个群组,密度聚类后,过滤掉簇面积较小的簇,具体训练代码如下:
④ 效果监控和打击,针对挖掘的簇,关联点击后向指标,针对异常转化指标广告位,进行复检,并对复检有问题广告位进行处置。
针对广告的点击环节建立作弊点击识别模型,提升反作弊审计覆盖能力,发现高纬度隐藏的作弊行为、有效补充点击场景的策略反作弊审计。
(1)特征建设
基于token粒度,计算事件发生前,设备、ip、媒体、广告位的等粒度特征。
频率特征:在过去1分钟,5分钟,30分钟、1小时、1天,7天等时间窗口的曝光,点击、安装行为特征、即对应的均值、方差、离散度等特征;
基本属性特征:媒体类型,广告类型,设备合法性、ip类型,网络类型,设备价值等级等。
2、模型训练和效果
① 样本选择:
样本均衡处理:线上作弊样本和非作弊样本非均衡,采用对非作弊样本下采样方式,使得作弊和非作弊样本量达到均衡(1:1)
鲁棒性样本选取:线上非作弊样本量级大,且群体行为多样性且分布不均等,为了小样本训练上线后覆盖所有行为模式,
使用K-means算法:针对线上非作弊样本进行分群,然后对每个群体按照占比再下采样,获得训练的非作弊样本。
② 特征预处理:
统计每个特征缺失率,去掉缺失率大于50%的特征;
特征贡献度筛选,计算每个特征对预测标签Y的区分度,过滤掉贡献度低于0.001的特征;
特征稳定性筛选,在模型上线前,选取最大和最小时间段的样本,计算两个时间段每个特征的PSI值,过滤掉PSI值(Population Stability Index)大于0.2的特征,保留稳定性较好的特征。
③ 模型训练:
采用随机森林算法,对点击广告作弊行为进行分类,随机森林有较多优势,比如:
(1)能处理很高维度的数据并且不用做特征选择;
(2)对泛化误差(Generalization Error)使用的是无偏估计,模型泛化能力强;
(3)训练速度快,容易做成并行化方法(训练时树与树之间是相互独立的);
(4)抗过拟合能力比较强;
超参数搜索优化,使用ParamGridBuilder,配置max_depth(树最大深度),numTrees(树的个数)等超参数的进行搜索优化最优超参数。
④ 模型稳定性监控:
模型上线后,如果特征随着时间迁移,推理时间的特征与训练时间的特征分布存在变动差异,需要对模型稳定性监控并迭代更新;
首先对当前版本训练样本进行存档,计算推理时间的数据和训练时间数据的对应每个特征的PSI值,计算的PSI值(Population Stability Index)每天可视化监控告警。
⑤ 模型可解释性监控:
模型上线后,为了更直观的定位命中模型风险的原因,对推理数据进行可解释性监控;即对每条数据,计算其对预测标签的影响程度;
采用Shapley值(Shapley Additive explanation)解释特征如何影响模型的输出,计算shap值输出到可视化平台,日常运营分析使用。
通过用户小时点击量序列,挖掘恶意行为对应的设备,挖掘检测远离占绝大多数正常行为外的异常模式用户群体、比如只有凌晨0~6点有低频的其他时间没点击行为的异常群体、或者每小时均衡点击的行为等异常模式用户等。
(1)特征建设
以设备作为用户,统计过去1/7/30天,每小时的点击量,形成1*24小时、7*24小时、30*24小时点击量序列,构建的特征具备时间尺度上特征完备性和每个特征数据连续条件,适用于异常检测算法。
(2)模型选择
孤立森林离群点检测算法,算法基于两个理论假设,即异常数据占总样本量的比例很小,异常点的特征值与正常点的差异很大。
检测分布稀疏且离密度高的群体较远的点,比如下图可以直观的看到,相对更异常Xo的只需要4次切割就从整体中被分离出来,即被‘孤立’了,而更加正常的Xi点经过了11次分割才从整体中分离出来。
(3)模型训练
使用IsolationForest算法,为了更好覆盖,针对多种粒度流量进行异常检测训练。
①全平台流量,训练异常感知模型,设置异常样本比例contamination=0.05;
②每类媒体类型的流量,训练异常感知模型,设置异常样本比例contamination=0.1;
③每种广告位类型流量,训练异常感知模型,设置异常样本比例contamination=0.1。
(4)感知监控
异常得分定义:如果异常得分接近 1,那么一定是异常点,如果异常得分远小于 0.5,一定不是异常点;
异常筛选:筛选异常得分大于0.7的用户作为高风险人群,介于0.5~0.7的人群作为中风险人群,对高中风险人群,同步审计平台人工二次审计;
案例分析:
案例①
2022年XX月XX号, 7*24小时点击量异常检测, 可疑恶意用户A ,过去7天大部分时间,每小时均衡产生较多点击记录远超正常用户。
(备注:features中每个点代表用户一个小时的点击量)
案例②
2022年XX月XX号,1*24小时点击量序列异常检测,可疑恶意用户B, 基本只在凌晨产生点击,其他白天基本无点击行为。
在流量反作弊领域,随着对抗手段的升级,算法模型能更好发现和挖掘黑产的隐藏的作弊模式;在广告流量反作弊领域,我们使用有监督和无监督等算法模型,从作弊流量识别,异常流量感知方面做了探索挖掘应用,有效提升识别能力,挖掘发现较复杂的异常行为模式。未来算法模型在机器流量识别上更多探索实践应用。