用户评分设计与实现网络
维度 == 标签,泛指描述恶意行为的一类合集,没必要纠结文中用词,看官就当作一回事, 就是你理解的那回事就行。数据结构
不区分维度工具
无论你是IP维度、设备维度、xxx维度,只要能描述恶意倾向就算ui
不面向维度编码
不面向某一维度打分,只面向用户设计
不绝对公平代理
不一样维度之间的权重可能失衡,由基准分控制,或者说由“业务专家”配置;但保证在相同业务场景下相同标签,恶意次数、最近分布与得分正相关登录
不一样业务场景能够不一样侧重点基础
每一个业务场景能够各自一套基准分值逻辑,全部业务共用一套得分增值逻辑扩展
总原则:
天天基于前一天的分值,增量更新
得分越高,用户越黑
纵向分
下文,将全部具有恶意倾向的描述,统称为“标签”,好比代理IP登陆是一个维度,也能够说是一个标签,工程师喜欢说维度,运营喜欢说标签.看官随你本身
基准分
每一个标签命中一次就在原先基础上直接加的分数
基准分,用来度量不一样标签的危害程度,举例打架10分,骂人5分,事情危害程度不一样
浮动分(频次分)
每一个标签当天命中N次(次数,次数,不是人数,人数相关,下文单独会说),乘以浮动系数后加的分数
浮动分,用来度量某个恶意行为重复程度,偷盗1次,和偷盗100次,量刑不一样
级联分(组合分)
每一个标签与其余标签同时知足后,额外加的分,此分再也不追加浮动系数
级联分,用来描述特定组合下,危害加重程度,额外加分的场景。每每适用于几个弱标签,组合出一个强标签。
就像同时具有"夜晚活动"、“携带撬锁工具”、"走路躲躲藏藏"等特征,大几率是啥?三个单独看,未必多可恶吧。猫夜晚活动,开锁匠携带撬锁工具,便衣police还走路躲躲藏藏呢?
衰减分(随时间减分,慢性洗白)
每一个标签在考察周期(默认一个月),命中状况的分布,命中密集分布在近期,则不洗白或者低速洗白;不命中密集分布在近期,则洗白或者高速洗白
为什么要洗白,不用说了吧?总不能犯了一次错,撸了次羊毛,一生都不给改过自新啊?万一他是大R,后面刷个几十上百万呢
举例:假设考察周期是7天,1表示命中某标签,0表示没有命中
对于
A序列 1,1,1,1,0,0,0 和
B序列 0,0,0,0,1,1,1
显然A序列须要洗白,作减分操做;B序列须要加分或者不加不减,总之不能洗白
横向分
上述是 4个 基础分值,计算逻辑,全部标签通用,能够归为一类:纵向比较,始终是一个标签下的结果或状况在比较。下面介绍一些,横向比较, 哪一个标签更好使?
效果分(名字不重要,也能够叫评价分,反馈分,重点看下文解释)
举例:安装设备修改器 -- 通常用户不会安装这,安装这玩意的,大几率不是好人,是一个黑标签
假设uid abcdefghijk安装了设备修改器,那么设备号(uid): abcdefghijk就是这个黑标签下的一个值
那若是 abcdefghijk 设备上一共登陆了100个用户,其中90个都已经被标黑了,是否是说这个标签打在这个设备上很准啊,或者说这个设备在这类标签中很准啊
再举例:云商IP -- 通常用户的出口IP不会是云商IP,理由不解释,本文重在解释用户评分系统设计,不过多描述基础网络基础知识
假设IP 1.2.3.6 是云商IP,那么就说 1.2.3.6是这个黑标签下一个值
若是这个IP 1.2.3.6一共登陆了10000个用户,其中8000个已经被标黑了,是否是说明这个IP识别的很准啊
能够看出,效果分是为了标签之间横向对比,把识别效果好的突出来,让更准的标签多干活。就像团队里,让优秀的人,多机会表现,是一个意思。
那么问题来鸟,如何衡量谁更优秀?
方案A,谁的准确率高,谁更优秀
设备 abcdefghijk 准确率90%,胜出
方案B,谁准确的基数大,谁优秀
IP 1.2.3.6 准确基数8000 远大于上面的90, 胜出
方案C,方案AB结合
在某个阈值线如下,比较基数;超过阈值线之后,比较准确率
设备abcdefghijk 和 IP 1.2.3.6, 谁更优秀,你说了算,甚至,你能够设计成同样优秀
汇总
目标:让标签具有横向比较能力,让优秀的标签值发挥更大的做用
实现方式:根据其标识总数,有效标识数去计算,规则看官你定
实现
画完饼了,该讲如何实现了?代码是没有滴,看懂了,确定是阔以开工编码滴
数据层面(一)
为了计算每一个标签的4个纵向分(基础、浮动、级联、衰减),须要为每一个用户存储一个二维表格,每行是一个标签最近30天(周期看官能够本身定)的命中状况
标签名 30天前 29天前 ... 昨天
tag1 323(次) 1(次) .... 0(次)
tag2 3(次) 0(次) .... 9(次)
每一个用户一张表嘛?固然不是,数据结构,码农本身可随意换,能描述上述信息便可。
好比我有50个标签,1亿用户,彻底能够用户尾号分表,十张表,每张1千万用户,每一个用户50行记录,那么每张表数据量5千万,还好还好。
对于某个标签:
基准分怎么算?看昨天是否命中咯
浮动分怎么算? 看昨天命中多少次咯
级联分怎么算? 看昨天命中的标签汇总,是否知足指定组合咯
衰减分怎么算?获取最近30天的命中次数,非0分布越靠近越是正分,非0分布越远越是负分。具体权重,看官随便拍个值,你家码农绝壁搞的定。搞不定?盘他
数据层面(二)
为了计算每一个标签的效果分,须要统计每一个标签值,天天的命中用户的打标结果。若是无人工打标,能够直接粗暴一点点,被任意标签连续命中7天就算黑用户。
标签项 标签值 日期 准确 误判
代理IP 1.2.3.6 昨天 323(人) 1(人)
代理IP 1.2.3.6 前天 39(人) 0(人)
代理IP 1.2.3.6 .... .... ....
云商IP 6.3.2.1 昨天 23(人) 0(人)
云商IP 6.3.2.1 前天 31(人) 0(人)
云商IP 6.3.2.1 .... .... ....
其余标签 其余值 .... .... ....
明白了摸?有了怎么一张效果统计表,你是否是想怎么算都行?选出你爽的标签值或者标签项均可以!!!
效果好的标签值,好比1.2.3.6,能够增长其效果分,让命中它的人得分高
效果好的标签项,好比云商IP,能够反过来提升这个标签的基准分,这个很重要哦,造成反哺了哦
再进一步,不停的反哺,你最终将获得一份十分贴近业务的基准分配置,这就是知识沉淀。你能够拿它换2个肉夹馍了
业务(场景)层面
上文说了,能够获得一份贴合业务的基准分配置。那么不一样的业务,是否是有所差别,是否是应该有不一样一套基准分配置? 这个实现就不说了,找你家码农搞,让作个可配的。作不了,就盘他
扩展
效果分计算能够考虑漏报
阻断机制:假设某个标签数据被污染,须要有阻断机制,当即该标签的得分强制置零;甚至能够更暴力,全局阻断,全部标签得分为0
衰减力度:衰减实现,未举例,随意实现,可是衰减力度须要根据实际效果,适当调整,不要坏了十天,一天就洗白白了,也不能一百天也洗不白。拿不许,就找运营拍板。不要问板是谁?为什么要拍他?