2、网页 topic 归属。
这一步需要将每个页面归入最适合的分类,具体归类有很多算法,例如可使用 TF-IDF 基于词素归类,也可以聚类后人工归类,具体不再展开。这一步最终的成果是每个网页被归到其中一个 topic。
3、分 topic 向量计较。
在 Topic-Sensitive PageRank 中,向量迭代公式为
首先是单位向量e变成了s。s是这样一个向量:对某 topic 的s,如果网页k在此 topic 中,则s中第k个元素为1,不然为0。注意对每一个 topic 都有一个不合的s。而s暗示s中 1 的数量。
仍是以上面的四张页面为例,假定页面A归为 Arts,B归为 Computers,C归为 Computers,D归为 Sports。那么对 Computers 这个 topic,s就是:
而s=2。因此,迭代公式为:
最后算出的向量就是 Computers 这个 topic 的 rank。如果实际计较一下,会发现B、C页在这个 topic 下的权重相比上面非 Topic-Sensitive 的 rank 会升高,这说明如果用户是一个倾向于 Computers topic 的人(例如法度员),那么在给他显现的成果中B、C会更重要,因此可能排名更靠前。
4、确定用户 topic 倾向。
最后一步就是在用户提交搜索时,确定用户的 topic 倾向,以选择适合的 rank 向量。主要体例有两种,一种是列出所有 topic 让用户自己选择感兴趣的项目,这种体例在一些社交问答网站注册时常常使用;别的一种体例就是通过某种手段(如 cookie 跟踪)跟踪用户的行为,进行数据阐发判断用户的倾向,这自己也是一个很有意思的话题,按时这个话题超出本文的范围,不再展开细说。
针对 PageRank 的 Spam 抨击打击与反作弊
上文说过,Spammer 和搜索引擎反作弊工程师的斗法历来就没停止过。实际上,只要是算法,就一定有 spam 体例,不存在无懈可击的排名算法。下面看一下针对 PageRank 的 spam。
Link Spam
回到文章开首的例子,如果我想让我的博客在搜索"张洋博客"时排名靠前,显然在 PageRank 算法下靠 Term Spam 是无法实现的。不过既然我明白了 PageRank 主要靠内链数计较页面权重,那么我是不是可以斟酌成立很多空架子网站,让这些网站都链接到我博客首页,这样是不是可以提高我博客首页的 PageRank?很不幸,这种体例行欠亨。再看下 PageRank 算法,一个页面会将权重平均散播给被链接网站,所以除内链数外,上游页面的权重也很重要。而我那些空架子网站自己就没啥权重,所以来自它们的内链其实不克不及起到提高我博客首页 PageRank 的作用,这样只是自娱自乐罢了。
所以,Spam PageRank 的关头就在于想体例增加一些高权重页面的内链。下面具体看一下 Link Spam 怎么做。
首先明确将页面分为几个类型:
1、目标页
目标页是 spammer 要提高 rank 的页面,这里就是我的博客首页。
2、支持页
支持页是 spammer 能完全节制的页面,例如 spammer 自己成立的站点中页面,这里就是我上文所谓的空架子页面。
3、可达页
可达页是 spammer 无法完全节制,可是可以有接供词 spammer 发布链接的页面,例如天涯社区、新浪博客等等这种用户可发帖的社区或博客站。
4、不成达页
这是那些 spammer 完全无法发布链接的网站,例如政府网站、百度首页等等。
作为一个 spammer,我能操纵的资源就是支持页和可达页。上面说过,纯真通过支持页是没有体例 spam 的,因此我要做的第一件事情就是尽可能找一些 rank 较高的可达页去加上对我博客首页的链接。例如我可以去天涯、猫扑等处所回个这样的贴:"楼主的帖子很不错!出色内容:http://codinglabs"。我想年夜家一定在各年夜社区没少见这种帖子,这就是有人在做 spam。