针对社区网站的作弊行为大致可以分为两种,一种是个人在社区中发布的所谓的不和谐内容;另一种是利用社区的信息传播机制向社区内的其他用户进行的广告推广活动,社区进行SEO,信息诈骗,垃圾灌水等行为也属于此类。前者在西方国家算不算是作弊还不好说,但是广告贴,垃圾贴,却是任何社区都要认真对待的问题。单位时间内,垃圾信息的发布量要远大于正常用户,如果一个社区没有基本的反作弊系统,那么很可能出现正常信息被垃圾信息淹没的情况,这对于社区的危害是相当严重的。
不过在国内,这两种作弊究竟哪个更严重,还要根据具体情况而定。在某些敏感时期,如果不对第一类作弊行为严肃处理,很可能就要面对关站的风险,好多网站都曾上演过两会期间紧急删贴的好戏。所以需要一个强大的反作弊系统对这两种行为加以控制,将其对社区的影响减小到可以接受的范围。下面,笔者将之前工作中对于社区反作弊的一点心得体会写出来,与大家分享。我暂且管他们叫做社区反作弊的“七武器”。
武器一,多模式匹配算法
毋庸置疑,多模式匹配算法是反作弊工作最核心也是最基本的工具,几乎所有基于内容的反作弊系统都需要多模式匹配算法的支持。在我以前的文章中,也介绍过AC,WM这两个经典的多模式匹配算法。对于中小网站而言,一个好用的多模式匹配程序,往往就能够解决他们所遇到的绝大多数作弊问题。而在成熟的大型社区网站,无论是同步过滤,还是异步召回,没有多模式匹配算法的支持,基本的反作弊工作也将难以开展。
优秀的多模式匹配算法还可以大幅提高用户提交文本的分析效率,对于每天百万提交的网站而言,分析效率的提升所带来的收益是相当可观的。如果一个社区没有在多模式匹配算法方面做过投入,那么他们基本也就等同于没有搞过反作弊。但是遗憾的是,国内的好多社区网站在如此重要的环节,做的也不理想,好多网站目前还在用Trie来执行多模式匹配运算。
武器二,文本预处理
对于所谓的不和谐内容而言,其发布者往往认为自己是“人间正道”,一般不会对自己所发内容做太大的修饰。但是对于广告推广和水军作弊来说,为了要达到推广效果,内容中往往会夹带手机,QQ号,Email,URL,超链接这样的能够直接指向受益者的信息。作弊者往往会绞尽脑汁,修饰这些内容,利用程序和人的差异性,逃避反作弊系统的检测。比较典型的例子就是在数字书写中,用小写字母'l'代替数字1,用大写字母'O'代替数字0。这样的转义修饰五花八门,往往会让基于内容的反作弊系统一筹莫展。此时就必须要有足够强劲的文本预处理系统来降低修饰对于内容分析的影响。基本的预处理操作包括空格压缩,简繁体转换,全半角转换,特殊字符替换,火星文转换等等。不过即便是进行了上述处理,也只能解决一部分的内容修饰问题。从根本上说,预处理与内容修饰是“道高一尺,魔高一丈”的关系,作弊用户总会通过自己孜孜不倦的尝试,找到程序无法理解而又不影响人类阅读的书写方式(比如说经典的文本竖排)。但是这并不意味着我们就可以忽视文本预处理在反作弊工作中的重要性。有一点我们要牢记,推广类作弊是由利益链条支撑的,当作弊用户将自己的内容改的面目全非之时,同时也意味着其推广作用的下降。因为这既增加了其他用户阅读难