知识卡片

黑白双分类器与矩阵式风险判定框架

普通读书笔记卡

内容

腾讯防刷架构的风险学习引擎采用黑/白双分类器机制,而不是单一分类器——黑分类器判断本次请求”异常”的概率,白分类器判断”正常”的概率。用两个分类器而不是一个的原因是为了减少对正常用户的误伤:一个IP被判定为恶意,不代表这个IP上的所有用户都是黑产,比如大网关IP或ADSL拨号上网场景下,恶意用户和正常用户可能共用同一个IP——单靠”黑分类器判定异常就拦截”的逻辑,会连带误伤共享同一环境特征的正常用户,而白分类器提供了一个独立的”这个请求看起来像正常用户”的信号,用来对冲黑分类器的误判风险。风险学习引擎的线下训练用Python等工具做通用算法调优,线上判定用C++实现DBScan等快速聚类算法,不用太担心线上性能问题,因为学习工作已经提前放在线下完成。除了黑白双分类器,团队还设计了矩阵式逻辑框架来解决另一个问题:最初的黑分类器是”一把抓”,随意建立一个个针对黑产的检测规则模型,结果不是这个逻辑漏检、就是那个逻辑误伤量大,想针对某一类账号加强打击力度时改动起来也很麻烦。矩阵横向采用Adaboost方法(一种迭代算法,核心思想是针对同一训练集训练出多个弱分类器、再把它们集合成一个最终分类器),每个弱分类器只负责解决一种账号类型的安全风险判断,集合起来才能覆盖所有账户类型。这套矩阵式设计带来三个工程收益:便于轻重分离(比如某平台虚假账号集中在邮箱账号,就可以只加强邮箱账号策略,影响范围局限在邮箱账号、不波及其他账号类型);降低模型训练难度(拆分成子问题后,不需要考虑不同账号类型之间的数据配比均衡问题,正负样本比率的处理难度大大降低);提高逻辑健壮性(某个分类器出问题时,受影响范围不会扩展到全局)。

参考来源

- 位置:《高可用架构(第1卷)》第1章《高可用架构案例精选》"1.2 腾讯基于用户画像大数据的电商防刷架构"节,"1.2.3 腾讯内部防刷架构"(源文件:_epub-src/OEBPS/Text/Chapter1_2_4.xhtml) - 结论依据:原文说明"采用黑/白双分类器的原因就在于它能减少对正常用户的误伤……黑产通过ADSL拨号上网,那么就会造成恶意用户与正常用户共用一个IP的情况",并列出矩阵式框架带来的"便于实现轻重分离……减少模型训练的难度……逻辑的健壮性"三个工程收益,直接支撑本卡片结论。 - 原始内容:采用了矩阵式的逻辑框架……矩阵的横向采用了Adaboost方法……每一个弱分类器都只能解决一种账号类型的安全风险判断,集中起来才能解决所有账户的风险检测。这在工程实践上带来3个好处。