网站spam用户识别

tags:@Jarrmy spam 数据挖掘 幂律分布


前一段时间,在一家互联网公司实习,主要做一些数据整理相关的工作,期间完成了这样一个有趣的课题:spam detect。

初探幽径

接到这个任务时,手里掌握的是以用户UID为键值的数据表。由于刚接手工作,在原始数据表的基础上认识用户,占据初期的绝大多数时间。最先想到的是“臆测权值函数法”,将用户数据分为静态数据(注册邮箱、用户名、账户余额等)和动态行为数据(评论、关注、赠送礼物等)而后统计各种属性的不同值时user为spam的概率:

其中思考点有:

  • uname、email满足某种RE pattern,决定其度量值
  • 以评论、关注、赠送礼物的个数的分段函数决定动态行为的度量值

但是随着工作的深入发现,自己很难利用自己的知识和工具统计出度量的标准,同样在综合各属性值的加权也很难给出一个合理的数值。曾想过KNN最近邻的策略,但是由于自己数据挖掘方面实践基础薄弱,同时感觉到在范数的度量上同样存在很大不确定性最后采用了“特殊值豁免”的策略,得出了一部分spam用户信息。
(PS:虽然暴力,但为下一步发现更深层次的特征打下基础)

意外惊喜

在意识到上述方法的困难后,就想到了这样一个feature:多数spam是以PC端软件为基础的活动时间集中的一个群体,同时联想到spam软件中的UID基本以软件注册为基础(想象一下,某个地下室一个孤独的身影,鼠标键盘2小时注册了40个UID,简直伤心病狂),所以这个群体不但具有每日活动时间聚集同时具有UID聚集的双重特征。

在excel中对可以用户进行lastLoginTime增序排序后,奇迹发生了,UID序列出现某种小范围的聚集。而后,当以groupBy(uidGroup,lastLoginTimeGroup),观察到多数group中的UID数量即用户数为1,也就是说,大约占据每日活动用户的40%是独立出现的,但是group中UID数量为K(MAX(group))的活动用户所占比竟然为5%-10%,直觉+简单概率告诉我们,group[MAX]中的用户绝对不正常,我们找到了异常点。

高人点拨

在把这个连蒙带猜的idea告诉我的teamLeader后,一位数据挖掘的大神,终于揭开了蒙在spam身上的最后一层面纱——幂律分布,这个神奇的分布。当我们重新举起数学的琅琊榜,一切都回归了本原。关于这个定律,我觉得应该完全独占这篇文章的价值。下面一段是某知名豆友的总结

Power Law 一般满足几个性质(同人于野贡献了其中两个看法:
http://book.douban.com/review/1541336/

1)Scalable,比如如果你上班拿工资,你就不是 scalable 的,因为你的财富取决于你工作时间的长短,而你的工作时间是绝对有限的。反过来说如果你写书,那么你就是 scalable 的,你写一本书,这本书可以的销量可以无穷大。黑天鹅变量因为可以很极端,所以一定是 scalable的。Scalable, 意思就是可以随便做大数乘法。

2)self-reinforcing,这个性质与迭代性(分形性密切相关),越是自然的属性,就越蕴含着分形的原则,也就越蕴含着self-reinforcing的可能。举个例子,越富有的人,越容易赚到更多的钱;越出名的作家,书越容易卖,然后正反馈,作家就更出名。财富的增加几率随着财富本身的增大而增大。正是这个性质决定了 power law 的分布,这也表明,这其实是一种极其接近自然的规律。这个问题本身就有蕴含着另一本书“问题的解决之道”的循环为问题解决(或质量增加)的关键突破点这一智慧,见我的另一评论:http://book.douban.com/review/3128830/

再续前缘

当我们抛弃观察用户的其他行为关注、观看、礼物、交易等和属性标签 邮箱、用户名、头像等。我们仍然得到了稳定而确切的结果,不得不思考前期思路的偏差。

  • 假使我们能判断匹配某特定pattern的uname为spam,但spam软件注册用户时,完全可以从微博活跃用户名中随机抽取来注册用户,这样我们的评估函数中的uname一项就失效,同理email、头像URL等
  • spam用户可能是一个虚假关注者,一个红包收集者等,但是单一行为的频数完全不具备度量UID是否为spam的可能性,或者说从更为丰富的场景不能具有稳健性和一致性。

最后一点感想:一种群体行为或者self-reinforcing的行为,基于统计预测的模型可能都会遭遇这种瓶颈。


作者 @Jarrmy
2015 年 11月 4日

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,657评论 18 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,168评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,271评论 9 467
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,811评论 6 342
  • 今年春节前去上海参加SHE的活动,在FEI的工作室见到了00。 她不仅是一位资深摄影师,更是一位专业的视频摄影讲师...
    朱泓默阅读 1,113评论 7 9