搜索引擎anti-spam系统设计指南
Posted 张俊林博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搜索引擎anti-spam系统设计指南相关的知识,希望对你有一定的参考价值。
/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/
搜索引擎anti-spam系统设计指南
中科院软件所张俊林
TIMESTAMP:2006年5月20日
一. 设计原则与整体体系结构
1.1 设计原则
搜索引擎ANTI-SPAM作为一个新型的技术领域,目前逐渐引起学术届和搜索引擎市场的逐步重视.通过大量资料分析,我认为一个好的实用ANTI-SPAM系统应该遵循以下两个设计原则:
原则1.实用的搜索引擎ANTI-SPAM系统应该允许核心算法公布,并且在核心算法公布之后不会导致现有ANTI-SPAM系统的失效.
原则2.实用的搜索引擎ANTI-SPAM系统应该结合技术和非技术的手段形成一个综合防治系统.两者交互影响形成有效的互相促进作用.
其中原则1是为了避免提供搜索引擎服务的公司陷入以下疲于奔命的状态:核心算法被泄漏,SPAMER找到应付对策,搜索引擎服务公司更换核心算法,核心算法被泄漏…..
而原则2则是尽可能采取各种可能的手段更全面准确的判别作弊网页.
1.2 体系结构
现有的ANTI-SPAM措施可以划分为以下5个类别:
类别1:针对某种具体的作弊方式形成的ANTI-SPAM技术,比如识别LINK FARM的算法,识别内容作弊的算法等.这些方法的特点是技术细节不可公开性以及由此导致的存在寿命短暂性.因为这些技术细节一旦公布,作弊者会考虑相应的反制策略导致算法失效,这样会导致新的作弊方式,而搜索引擎公司不得不研究新的ANTI-SPAM技术.所以根据设计原则1,这样的算法不能是ANTI-SPAM系统的主体框架,只能是一种辅助措施.
类别2:通用的ANTI-SPAM技术.比如HILLTOP算法,TRUSTRANK算法等.这些方法的特点是技术细节可公开性以及由此导致的长期有效性.即使这些技术细节公布,作弊者也无能为力.所以根据设计原则1,这样的算法应该成为系统的主体框架.
类别3:类BADRANK方法.这类方法和类别2的算法是完全互补的两类算法.通用的ANTI-SPAM算法的出发点是寻找网页集合的子集,这些子集一定不是SPAM网页,其它网页根据与这个精英页面集合的关系来判断是否不是SPAM页面,而类BADRANK方法则从必定是SPAM页面的网页子集出发(可以看作是黑名单),从其它网页和这些黑名单页面的关系判断是否是SPAM页面.
类别4:人工举报.这种方法是切实可行的对BADRANK方法的补充手段.通过这种方式不断扩大黑名单的数量.
类别5:类SANDBOX方法.这种方法主要针对SEO市场,造成对于SEO市场的打压,以此避免大规模的作弊出现,因为目前主要的作弊者还是SEO市场造成的.
目前几乎所有的ANTI-SPAM技术可以归于以上5类技术之一,其中类别123是属于技术手段,而类别4和类别5属于非技术手段.通过两者结合来进行有效的ANTI-SPAM系统构造.
一个实用的ANTI-SPAM系统整体结构可以参考图1,图1将这5中技术手段有机的结合来构造综合的治理手段.可以看出系统技术手段围绕着两个核心互联网页面子集:SPAM POOL和NON-SPAM POOL.SPAM POOL代表了确认为是作弊页面的集合,而NON-SPAM POOL代表了确认不是作弊页面的集合.系统流程如下:
1. SPAM POOL可以通过以下三个手段构造:一个是通过人工举报形成黑名单,一个是通过针对具体某种作弊方式采取的ANTI-SPAM技术来获得部分类型的作弊页面并加入SPAM POOL中;另外一种方式是通过类BADRANK方式通过叠代计算来扩充黑名单的规模;这个过程可能需要进行人工确认过程以防治误判.
2. NON-SPAM POOL可以通过通用的ANTI-SPAM技术获得.
3. 类SANDBOX等非技术手段来打击SEO市场.
4. 可以看出系统中的核心技术手段是通用ANTI-SPAM方法以及类BADRANK方法,两者是互补的技术手段,处于系统的核心,人工举报和针对某种作弊方式的ANTI-SPAM技术作为类BADRANK技术的辅助手段发挥作用,而SANDBOX则作为主要的非技术手段发挥作用.通过5种手段相互结合构造实用的ANTI-SPAM系统.可以看出这个系统模型是符合ANTI-SPAM系统设计原则的.
图1. 搜索引擎anti-spam技术路线图
二. 组成部分详述
下面分别叙述构成ANTI-SPAM系统的5个部分的技术细节.
2.1通用的anti-spam方法
通用的ANTI-SPAM方法作为系统最重要的框架核心,目前的几种算法基本思想大同小异,其基本目的是确定所有互联网页面中哪些肯定不是SPAM页面.其基本思路都是如下考虑:
1. 首先从所有互联网页面中通过一定的技术手段找到部分精英页面子集.
2. 然后根据其它页面和精英页面子集的链接关系来确定哪些页面不是SPAM页面.
以下列出的三种主流方法基本思路如上所述,其区别无非在于判断精英页面的标准不同以及根据链接关系确定其它页面是否SPAM的技术细节不同.
2.1.1HILLTOP算法
HILLTOP是从检索模型本身出发,结合了相关排序以及anti-spam策略为一体的算法,已经被GOOGLE所采用.其基本假设和出发点是:网络中的权威页面和权威站点(EXPERT)所指向的页面一般来说不会是spam页面,而且被权威页面指向的页面排序应该提高.
所以其算法分解为以下两个步骤:
1. 如何从大量网页信息中识别权威页面;
首先识别Non-affiliated page,所谓Non-affiliated就是页面归属于不同组织的页面,因为基本假设是归属于同一组织的网站页面之间的链接其公信力是不高的.
然后寻找链接出度比较高的页面,如果这些页面所指向的页面都是Non-affiliated页面,那么这些页面可以作为权威页面.
权威页面单独进行索引,对于用户查询,首先在这个索引里面寻找,然后根据其它页面和权威页面的关系进行排序.
2. 根据选择的权威页面如何对其指向的页面排序进行评价;
如果是越多的权威页面指向的页面其权重越高.
2.1.2 TrusteRank方法
TrustRank方法的基本思路和HILLTOP算法类似,也是首先识别部分不可能是作弊网页的站点,然后根据类似的假设来从中推导出好的非anti-spam页面.已经被AltaVista(YAHOO)搜索引擎采用.
1. 从所有站点随机选择若干站点.比如随机选择2000个站点.(也可以有其它类似的优化策略,比如选择知名度高的网站或者YAHOO等收录的网站作为优良网站的基点)
2. 从2000个站点里面人工判断哪些是优良的网站
3. 链接分析.基本假设是优良网站指向的网站也是优良的.此时可以采取不同的策略,比如优良网站经过K个链接所指向的都认为是优良的.也可以引入衰减因素,离初始优良网站越远的网站其优良性越小.
4. 对遍历过的网站优良性能做评价.此评价作为判断是否作弊网页的依据.
2.1.3 SpamRank方法
SpamRank的基本思路与前面两个技术基本一致.它的基本假设是:对于非作弊网页来说,指向其的链接页面一般来说PAGERANK值是不均匀分布的,而对于作弊网页来说指向其的支持网页的PAGERANK值一般来说都是比较小的值.
1. 首先计算页面的支持页面的权重
2. 判断支持页面权重是否满足Power low 分布(这个分布是互联网的一个比较准确的估计)对于不满足该分布的页面判断为作弊网页进行惩罚,降低其PAGERANK值.
2.2 类BADRANK方法
类BADRANK方法是通用ANTI-SPAM方法的有效补充. 它的目的是发现哪些网页肯定是SPAM页面. BadRank的技术思路如下:
1. 首先维持一个SPAM网页黑名单,这个黑名单可以通过用户举报或者采取一定的技术来获得,GOOGLE提供了举报SPAM页面,所以采用BadRank的方法可能性是很高的.
2. 给定黑名单的网页非常高的BadRank值E(x);
3. 考虑其它网页的BadRank值,打分依据是如果网页含有指向黑名单的链接,那么这个网页的BadRank值会很高,依次类推来获得其它页面的BadRank值.其打分公式如下:
可以看出,其基本原理和PAGERANK是差不多的,区别在于BADRANK是倒着打分的,从已知的网页向未知的网页传播.
2. 3具体针对某种作弊方式采取的anti-spam方法
针对具体某种作弊方式的ANTI-SPAM方法可以作为辅助BADRANK构造SPAM POOL的辅助技术手段,这些技术花样繁多,基本没有一个统一的解决方案,目前常见的方法如下.
2.3.1 针对blog站点的honey pot类型的作弊
Honey pot作弊方式是作弊网页作者发布有价值信息比如介绍某项技术的技术文章,但是在发布的信息里面隐含指向作弊页面的隐藏链接,这样通过网页本身内容的价值来诱导其它网站增加指向该页面的链接从而间接增加作弊页面的排名.比如往blog站点,BBS站点,留言簿或者wiki等可以任意发言的站点增加评论.在发表的评论里面增加指向目标页面的链接,这样会间接增加目标页面的pagerank排名.根据发表评论类型可以分为以下两种:一种是直接发广告性质的与主题无关评论,这个我们经常在BBS或者留言版上看到.一种是评论与主题相关,但是在评论中隐藏无法看到的链接信息.这种情况一般比较难以发现.
利用语言模型方法判断链接所指向的页面是否作弊站点.首先通过评论的内容以及评论中链接指向页面内容构建每个评论的语言模型,然后依次和正文的语言模型进行比较,将差异比较大的看作是可能的作弊站点.
2.3.2针对内容作弊
l 比如针对标题作弊,如果发现正文内容出现标题文字比例失调,比例太高或者没有出现过,则认为可能是作弊网页.
l 而对于html页面的keyword内作弊词汇,很多搜索引擎采取不索引keyword域的方法.
2.3.3针对信息隐藏作弊
l 如果发现页面内部大量文本采用和背景相同的颜色设置,则判断为作弊页面.
l 对于链接跳转的页面进行惩罚,以防治通过页面自动重定向来隐藏作弊页面.
2.3.4针对多个域名DNS配置系统的设计指南?