数据挖掘之链接分析
链接分析最重要的应用就是搜索引擎,另外,在论文检索、社交网络等方面也有应用。
1. 有过哪些链接分析技术?
2. PageRank技术的基本定义什么?
3. PageRank有哪些改进?考虑了哪些因素?
4. 有哪些链接作弊技术?如何消除这些作弊?
5. 什么HITS算法?与PageRank的区别是什么?
1. 有过哪些链接分析技术?
1)倒排索引:第一代搜索技术,将网页的数据分解成关键词项,然后按关键字建立索引,由关键字索引找到对应的网页。另外,还有非主属性值,有称副键值。带有倒排索引的文件被称为倒排文件,倒排文件中 次关键字索引被称为倒排表。由倒排表可以对集合进行并、交等操作,得到结果后再对记录进行操作。
2)PageRank:关注 链接 的入度和出度,即本网页与其他网页的关系,计算出一个PR值,由此,来判断网页的重要程度。而词项,是搜索引擎查询时另外一个依据,可以说是第一个过滤项。
3)HITS: 分析网页的导航度和权威度,由此来判断网页的作用。
2. PageRank的基本定义是什么?
一个有向图,每个顶点有入度和出度,并且附带一个网页跳转的概率,将这样一个图的关系用矩阵来表,形成了一个web转移矩阵M。
而冲浪者(上网者)位置的概率分布,可以通过一个n维向量v来描述,其中第j个分量代表着冲浪者在第j个网页的概率。
而v1 = M*v0,代表着冲浪者经历了一步操作/跳转,当冲浪者经过很多次跳转,冲浪者的分布就接近一个极限,即v = M*v,冲浪者的位置分布不再改变。
这个时候v刚好是M的特征向量。
PageRank的出现是受到引用分析的启发。
PageRank是一个概率分布,其值的计算需要通过一个迭代的过程。
普通PageRank的结构,会有两个问题:
1)终止点现象,即有些顶点只有入度,没有出度,这样到达该网页,冲浪者就会消失,不再出来。
2)采集器陷阱spider trap:一组网页,进入之后,只在内部相互跳转,从不指向外部网页。后果,冲浪者,进入后就只会出现在这组网页内,无法离开。
这两个问题都可以通过“抽税”的方法解决。
解决方法:
1)终止点问题:
a. 去除终止点,但可能会创造更多的终止点或孤立子图。
b. 修改随机冲浪者的冲浪过程,即“抽税”。同采集器陷阱的处理方式
2)采集器陷阱:
也是采用抽税的方式处理,允许每个随机冲浪者能以一个较小的概率随机跳转到一个随机的网页。即 v· = b*M*v + (1-b)*e/n, b是一个选定常数,通常是0.8到0.9之间。e是所有分量都为1的向量,n是图中所有节点的数目。
b*M*v是代表随机冲浪者以概率b选择一个出口进行跳转的情况,而(1-b)*M*e/n 是代表一个新的冲浪者以(1-b)的概率随机选择一个网友进行访问的情况。
这样就避开陷阱和终止点问题。
3. 什么是面向主题的PageRank?它解决了什么问题?
先说问题来源吧,单纯的pagerank算法,仅是考虑网页自身的因素,没有考虑用户自身的习惯、偏好等因素,每个人都有自己的特性,如果考虑这些因素,那么PageRank就会更加精准。所以每个人都要存储自己的PageRank,但是这又是不可能的,因为PageRank向量本身就很巨大n,所有人m都有特有的PageRank,这样所需空间就n*m。所需存储空间太大,也没这个必要。而且记录客户的历史操作,容易触发用户的隐私问题。
如何考虑用户的偏好?
即使用面向主题的PageRank,将网页分类,如体育、娱乐、政治、经济、军事等,每一类网页有一个PageRank值,而每个用户只需保留每类网页的特征数据。每类网页的表示就是采用面向主题的PageRank。
解决方法:
有偏的随机游走模型,面向主题的PageRank与普通的PageRank的形式雷同,即v· = b*M*v + (1-b)*Se/|S|,区别就在于Se是一个有偏的新的冲浪者向量,它将属于某同一主题的分量都置为1,其他分量为0,这样就形成了一个有偏的转移模型,经过迭代计算出的最终的PageRank值,就是某主题的PageRank值。
4. 有哪些链接作弊技术?危害程度有多大?如何消除这些作弊?
链接作弊,如果想方设法提高自己网页/网站的PageRank值。
如何做到?一般有两种方式:
1)自建一些网页,将一些链接指向需要作弊的网页,即自建的Farm,俗称垃圾农场;
2)通过其他网页的留言功能,将作弊链接放入留言,如 不错,关于...,请看www.spamfarm.com.
作弊危害程度有多大?
采用简单的模型来推导某spam网页的pagerank值的计算:
某目标网页的pagerank值假设为y,内部有m个链接它的网页,若”抽税“的参数是b,一般是0.85,则支持/链接spam网页的pagerank值为
b * y / m + (1 - b) / n
若来自外部的支持spam目标网页的值为x,而内部支持spam网页的值为 b * m * (b * y / m + (1 - b) / n),红色的部分就是上面每个支持网页的pagerank值,m个网页,就乘以m。
则 y = x + b * m * (b * y / m + (1 - b) / n) = x + (b^2) *y + b * (1-b) * m / n, 求解方程:
y = x / (1 - b^2) + c * m / n, 而c=b/(1+b)
b的值为0.85,则1/(1-b^2) = 3.6, c = 0.46. 所以,采用这种方式,能将外部链接的功效放大3.6倍,并加上0.46倍于 m/n所有垃圾网页与所有网页之比的值。
如何消除作弊?
完全消除是不可能的,而且会不断有新的作弊方法出来。
常见的方法:
1)TrustRank;采用面向主题的PageRank,来降低spam网页的pagerank值。
2)垃圾度(spam mass), 即识别可能会垃圾的网页,允许搜索引擎去掉或降低这些网页的pagerank值。
TrustRank:
需要获取主题网页,有两种方式:
a. 人工检查一系列网页,判断哪些可靠。可以先筛选pagerank为前几名的网页来考察,因此,前几名通过作弊手段比较难达到。
b. 选择受限的域名,这些域名的可信度比较高,如.edu., .gov.类的网页
垃圾度spam mass:
首先,计算普通pagerank值r,和Trust主题pagerank值t(有偏 的随机游走模型)
然后,每个网页p的垃圾度就可以计算出来: (r - t)/ r, 如果其接近1,那么表明网页p可能是垃圾网页,若其很小,接近0,那么表明网页p不是一个垃圾网页。r值与t接近,即网页的普通pagerank计算值与主题pagerank计算值类似的话,可信度就高,否则,其pagerank值,可能来源于一些垃圾网页贡献。
5. 什么HITS算法?与PageRank的区别是什么?
“导航页和权威页”的计算方式类似于pagerank,通过矩阵-向量的方式迭代,直到一个收敛的点。其算法又称HITS算法。
pagerank考虑的是网页重要性的一维重要性信息,而HITS认为网页具有二维的重要性信息:
1)权威页:某些网页提供某个主题的信息,而且具有非常重要的信息,这些网页被称为权威页。
2)导航页:不提供主题信息,但可以找到有关该主题的网页信息,这样网页的被称为导航页。
表示形式:每个网页都有一个权威度和导航度属性,若分别用h和a来表示网页的两个属性,那么h和a第j个分量就分别表示第j个网页的权威度值和导航度值。
每个网页的导航度就等于累加其链出网页的权威度,每个网页的权威度就等于累加其链入网页的导航度。并保证归一化。
这样会形成一个回归方程:“导航页会指向很多权威页,而权威页会被很多导航页指向”。本质上,其仍然是矩阵-向量的迭代乘法运算。
若网页的链接矩阵为L,导航度向量h,权威度向量a。
则 h = d* L * a, 其中d是一个常数,
及 a = u * Lt * h, 其中Lt是L的转置。 L是一个0-1矩阵。
由以上交迭的运算方式,再推导:
h = d * u * L * Lt * h
a = d * u * Lt * L * a
由于L*Lt的求解不太方便,所以,用交迭的方式来计算h和a更好,每次计算都需要进行归一化。
但终点和采集器陷阱不会影响 HITS 的求解。所以就也不需要抽税机制。