单个维度的风控都容易误伤:账号正常但设备可疑、行为异常但设备干净——风控画像把账号、设备、行为三个维度的信号融成一个综合评分,多信号的融合让判断的准确率上一个台阶。
---三维评分:各维度的独立打分
function RiskScore.compute(uid)
local s = {}
-- 账号维度:注册时长、实名、历史违规
s.account = Account.ageDays(uid) >= 90 and 20 or 5
if RealName.ok(uid) then s.account = s.account + 20 end
-- 设备维度:设备的信用与常驻状态
s.device = Device.credit(Device.of(uid))
-- 行为维度:近期行为的正常度
s.behavior = Behavior.normalness(uid)
s.total = s.account + s.device + s.behavior
return s
end
三个维度的评分各管一摊:账号维度看资历与实名(老号与实名的可信度高)、设备维度看设备的信用与常驻(常用设备的可信度高)、行为维度看近期操作的正常度(行为模式的偏离即扣分)。三位的加权合成为综合分:综合分低于阈值的账号进风控的观察名单,操作的限制按分数分档——评分的分档让处置有渐变的余地而不是一刀切。
---评分的消费:不同阈值对应不同处置
function RiskScore.act(uid, score)
if score < 30 then
-- 低分:交易与提现要求二次验证
Risk.flag(uid, 'trade_2fa')
elseif score < 15 then
-- 极低分:冻结敏感操作
Risk.freeze(uid, 24)
end
end
评分的消费按区间分档:低分区要求敏感操作的二次验证、极低分区直接冻结 24 小时——处置的力度与风险的等级匹配。评分的动态更新:行为是流式的,每次敏感操作后重算评分,账号的信用可以修复也可以恶化——评分的流动性给改过者机会,也给持续作恶者持续的约束。误伤的申诉通道与评分的修正联动:申诉翻案的案例回灌评分的权重,模型的迭代有真实的纠错数据。
评分的分布与实际违规的命中率对比:高分区的违规占比验证评分的区分度;误伤的申诉翻案率监控,翻案率超标的维度权重回调。
账号的资历分曾经占比过高,盗来的老账号拿了高分,权重的再平衡把行为的权重提高。设备的信用曾经不分共享环境,网吧的全体玩家集体低分,设备簇的信用按个体计算。评分的规则曾经写死在代码,运营无法调整,规则的配置化让调参自助。
三维的权重进配置,权重的调整走数据驱动的评审。评分的构成对内透明、对外保密,透明给团队、保密给对抗。申诉的数据回灌模型,评分的生命力来自持续的纠错。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 悬赏捕杀把玩家之间的恩怨变成可托付的系统行为:仇家难以亲自复仇时,花费金条发布悬赏,全服玩家接单击杀目标…
实战应用:用在哪里 策划改表是日常动作,漏填字段、引用了不存在的编号、数值越界这三类问题占了配表故障的绝大多数。等玩家报错再…
实战应用:用在哪里 行会擂台给中小行会提供了固定的对抗出口:挑战方击败守擂方后接管擂台,连胜次数决定每日结算奖励档位。接口层…
实战应用:用在哪里 世界首领战里玩家最关心的是伤害前十名:榜单要求随时插入、随时能按序取出,每来一条伤害记录都重新排序一次太…
实战应用:用在哪里 百人同屏的攻城战里,把每条移动、施法消息广播给全地图是最常见的性能失误。九宫格视野的做法是把地图切成等大…
实战应用:用在哪里 留言板、行会招募语、邮件标题这类字段会被玩家自由填写,并写入角色变量或转发给持久层。拼接式的写法一旦遇到…