44、网页链接分析与知识发现:从SALSA到网页包的应用

网页链接分析与知识发现:从SALSA到网页包的应用

1. 相关工作概述

在网页链接分析领域,有多种算法和模型被提出,用于解决不同的问题。下面将介绍几种具有代表性的算法。

1.1 SALSA算法

SALSA(Stochastic Approach for Link Structure Analysis)由Lempel和Moran提出,基于马尔可夫链理论,依赖于在一组网站上进行随机游走的随机特性。与Kleinberg的算法类似,SALSA从一个类似构建的基础集开始,然后通过交替执行以下两个步骤进行随机游走:
- 均匀地移动到链接到当前页面的页面之一。
- 均匀地移动到当前页面链接到的页面之一。

权威权重被定义为首先执行步骤(a)然后执行步骤(b)的两步链的平稳分布,而枢纽权重被定义为首先执行步骤(b)然后执行步骤(a)的两步链的平稳分布。

SALSA与Kleinberg的算法不同,它没有相互增强的结构。SALSA根据局部链接确定连接组件内网站的相对权威性,而不是根据组件的结构。在单组件的特殊情况下,SALSA可以被视为Kleinberg算法的一步截断版本。Kleinberg基于整个图的结构对权威进行排名,倾向于紧密结合的社区的权威;而SALSA基于权威在直接邻域中的受欢迎程度进行排名,倾向于不同社区的各种权威。通过在二分网页图上进行随机游走,SALSA克服了TKC效应,用于识别权威和枢纽。结果表明,得到的马尔可夫链是遍历的,平稳分布中的高条目表示在随机游走中最常访问的网站。如果网页图是加权的,权威和枢纽向量的平稳分布得分分别与入边和出边的权重之和成正比。

1.2 Borodin等人的方法

Borodin等人提出了一组用于超文本链接分析的算法,对Kleinberg的算法进行了一些修改,以消除其先前提到的错误行为。
- Hub - Averaging - Kleinberg算法 :这是Kleinberg和SALSA算法的混合,交替执行每个算法的一步。它像Kleinberg算法一样更新权威评级,但通过给每个枢纽一个等于它链接到的所有页面的权威评级的平均值的评级来更新枢纽评级。如果考虑一个完全二分图,Hub - Averaging算法中权威的权重增长速度是Kleinberg算法的平方根;如果一个枢纽指向组件外的节点,组件的权重会下降,这防止了Hub - Averaging算法完全跟随Kleinberg算法的漂移行为。此外,Hub - Averaging算法和SALSA算法都倾向于入度高的节点。
- Hub - Threshold算法 :基于这样的概念,一个网站不应该仅仅因为许多枢纽权重非常低的枢纽指向它就被认为是一个好的权威。在计算第i页的权威权重时,该算法只考虑那些枢纽权重至少是指向第i页的所有枢纽的平均枢纽权重的枢纽。
- Authority - Threshold算法 :基于这样的概念,一个网站不应该仅仅因为它指向一些“可接受”的权威就被认为是一个好的枢纽;要被认为是一个好的枢纽,它必须指向一些最好的权威。在计算第i页的枢纽权重时,该算法计算那些基于当前权威值属于前K个权威的权威。K的值作为参数传递给算法。
- 贝叶斯算法和简化贝叶斯算法 :基于贝叶斯网络方法,与更常见的代数/图论方法不同。实验验证表明,简化贝叶斯算法几乎与SALSA算法相同,在所有查询上至少有80%的重叠。而贝叶斯算法似乎兼具Kleinberg和SALSA算法的行为,更倾向于前者,与Kleinberg算法的交集比与SALSA算法的交集更多。

1.3 各种算法对比

算法名称 基础理论 权威排名依据 特点
SALSA 马尔可夫链理论,随机游走 局部链接,直接邻域受欢迎程度 无相互增强结构,克服TKC效应
Hub - Averaging - Kleinberg Kleinberg和SALSA算法混合 综合考虑权威和枢纽评级 防止漂移,倾向入度高节点
Hub - Threshold 改进Kleinberg算法 考虑枢纽权重阈值 避免低权重枢纽影响权威评级
Authority - Threshold 改进Kleinberg算法 考虑权威排名阈值 强调指向最好权威的枢纽
贝叶斯算法和简化贝叶斯算法 贝叶斯网络方法 兼具Kleinberg和SALSA特点 简化贝叶斯与SALSA相似

2. 网页包的概念

前面介绍的方法没有关注在仓储环境中确定网页文档的可见性、亮度以及相对于用户查询结果的发光路径的问题。为了解决这些问题,引入了网页包的概念。

2.1 定义

  • 链接集相等 :设$t_i = \langle N(t_i), L(t_i) \rangle$和$t_j = \langle N(t_j), L(t_j) \rangle$是网页表$W$中的两个网页元组。如果$|L(t_i)| = |L(t_j)|$,并且对于每个$\ell_{pq}(t_i) \in L(t_i)$,都存在$\ell_{rs}(t_j) \in L(t_j)$,使得$url(n_p(t_i)) = url(n_r(t_j))$且$url(n_q(t_i)) = url(n_s(t_j))$,则称链接集$L(t_i)$和$L(t_j)$相等或相同,记为$L(t_i) = L(t_j)$。
  • 元组相等 :给定网页表$W$,两个网页元组$t_i, t_j \in W$,其中$t_i = \langle N(t_i), L(t_i) \rangle$,$t_j = \langle N(t_j), L(t_j) \rangle$,如果$N(t_i) = N(t_j)$且$L(t_i) = L(t_j)$,则称$t_i$和$t_j$相等或相同,记为$t_i = t_j$,$\forall i \neq j$,$0 < i, j \leq |W|$。
  • 网页包 :网页表$W_b$是一个网页包,当且仅当存在$t_i, t_j \in W_b$,使得$t_i = t_j$。
  • 多重集 :一组网页元组$M_b$是一个多重集,当且仅当$t_1 = t_2 = t_3 = \cdots = t_{|M_b|}$,其中$t_i \in M_b$,$1 \leq i \leq |M_b|$。

2.2 示例

考虑图8.2中的网页元组集合。第一个(记为$t_1$)和第二个(记为$t_2$)网页元组相等,因为$N(t_1) = N(t_2)$(每个集合中节点的URL是www.virtualhealth.com/、www.virtualhealth.com/diseases/和www.cancer.org/desc.html),$L(t_1) = L(t_2) = {(x_0, y_0)}$。所以,$\langle {t_1, t_2} \rangle$可以形成一个多重集,该集合可以被视为一个网页包。

2.3 网页包的创建条件

  • 通过消除节点创建 :网页包可以通过使用网页投影运算符从网页表的网页元组中消除一些节点来创建。但并不是每次从输入网页表的每个网页元组中消除节点都会导致创建网页包。例如,在某个网页表中,如果消除所有在$y$和$z$之间的节点,可能会创建一个网页包;但如果消除$x$和$y$,投影后的网页表可能不是一个网页包。
  • 网页元组数量条件 :设$W_b = \pi_{P_c}(W)$和$W_p = Distinct(W_b)$,其中$P_c$是一组投影条件。那么$W_b$是一个网页包,当且仅当$0 < |W_p| < |W|$。

2.4 多重集的性质

  • 多重集中相同网页元组的最小数量必须为2。
  • 由于网页投影操作可能创建的多重集的数量是有限的,范围在0到$|W|/2$之间。这是因为多重集中相同网页元组的数量至少为2,所以在对$W$进行任何投影条件后创建的最大多重集数量是$|W|/2$(每个多重集有两个相同的网页元组)。

下面是网页包创建和多重集性质的mermaid流程图:

graph LR
    A[输入网页表W] --> B{消除节点?}
    B -- 是 --> C{是否创建网页包?}
    C -- 是 --> D[形成网页包Wb]
    C -- 否 --> E[不形成网页包]
    B -- 否 --> E
    D --> F{是否有多重集?}
    F -- 是 --> G[创建多重集]
    F -- 否 --> H[无多重集]

3. 知识发现术语

在网页仓库的知识发现过程中,需要明确一些术语。
- 阈值 :网页仓库中的知识发现任务可能需要指定一组阈值,以通过限制对有用信息的搜索来控制其知识发现过程。不同类型的知识可能需要不同类型的阈值。阈值表示网页表中应该至少存在一些合理的实质性证据来证明一种模式的存在,从而值得展示。阈值由用户明确指定,值在0到1之间。
- 站点间连通性 :当考虑网页连通性时,更关注站点间的链接。站点间连通性使我们能够量化网页表中一个节点的站点连通性。设$x$是网页表$W$中的一个节点,$h_x$表示$x$的主机名。设$H$是$W$中所有与$x$有直接链接的节点的主机名的包。设$C_h$是$h_x$在$H$中出现的次数。站点间连通性$I$定义为$I = 1 - C_h/|H|$。
- 源节点 :网页表模式的起始节点类型标识符定义为源节点。这些标识符不能是模式的连通性集中的目标标识符。
- 汇节点 :模式的终端节点类型标识符定义为汇节点。这些标识符不能是模式的连通性集中的源标识符。

4. 网页文档的可见性和站点间连通性

假设查询$Q$的结果存储在网页表$W$中。网页表$W$中网页文档$D$的可见性衡量了$W$中链接到$D$的不同网页文档的数量。这些文档被称为可见节点,因为它们在网页表中最容易被看到,因为它们被大量不同的节点链接。可见节点$D$的重要性在于,对于查询$Q$,文档$D$相对于$W$中的其他文档或节点来说相对更重要。

4.1 可见节点的定义

设$x$是具有模式$S = \langle X_n, X_{\ell}, C, P \rangle$的网页表$W$的节点类型标识符,$x \in X_n$。设$x_i$是$x$的一个实例。设$N_{in}(i)$是$W$中包含指向$x_i$的链接的不同节点(具有不同URL的实例)的数量,设$N_{max} > 1$和$N_{min} > 1$分别是$W$中$x$的实例的最大和最小入链数量。则$x_i$的节点可见性$\alpha_i$由以下公式给出:
[
\alpha_i =
\begin{cases}
1 - K_1 \times \log_e \frac{N_{max}}{N_{in}(i)} & \text{如果 } \frac{N_{max}}{N_{in}(i)} < e \text{ 且 } N_{in}(i) > 1 \
0 & \text{如果 } N_{in}(i) = 1 \
K_2 - 0.1 \log_e \frac{N_{max}}{N_{in}(i)} & \text{如果 } \frac{N_{max}}{N_{in}(i)} \geq e \text{ 且 } N_{in}(i) > 1
\end{cases}
]
其中$e$是指数常数,$K_1$、$K_2$和$K$是常数,使得$K = \frac{N_{max}}{N_{min}} + \delta$,$K_1 = 1.1 - 0.1 \log_e K$,$K_2 = 1.1 - K_1$,其中$0 < \delta < 1$。如果$\alpha_i \geq \epsilon_v$,其中$0 \leq \epsilon_v \leq 1$是可见性阈值,则$x_i$是$x$的可见节点。

4.2 确定可见节点的算法

输入:网页表$W$、节点类型标识符$x$、可见性阈值$\epsilon_v$。
输出:可见节点集$V$。

(1) 初始化网页表Wv;
(2) 让Wv = CreateWv(W, x); /* 图11.6 */
(3) Wv = Distinct(Wv);
(4) Wb = WebProject(Wv, x - 1);/* 图8.14*/
(5) if (Wb是一个网页包)
(6)     V = CreateVisibleNodeSet(Wb, ϵv); /* 图11.7 */
(7) else
(8)     可见节点集不存在;
(9) 返回V;
4.3 算法步骤详细解释
  1. 创建网页表$Wv$
    • 使用网页投影运算符从$W$的每个网页元组中消除除$x$和$x^{-1}$之外的所有节点。
    • 对于每个网页元组,如果$x^{-1}$节点的数量$n > 1$,创建$n$个包含节点$x$和$x^{-1}$的不同网页元组。
    • 消除网页元组集合中的重复网页元组,并将结果集存储在$Wv$中,以确保节点类型标识符$x$的入站URL是不同的。
  2. 创建节点$x$的集合 :使用网页投影运算符从$Wv$的每个网页元组中消除节点$x^{-1}$,并将节点$x$的集合存储在$Wb$中。
  3. 检查网页包的存在性 :比较$Wb$中每个节点的URL与其他节点的URL,以确定URL是否相同。如果所有节点都不同,则$W$中不存在$x$的可见节点;如果存在相同URL的节点,则$Wb$是一个网页包。
  4. 创建多重集 :将$Wb$中相同节点的集合存储在多重集$M_{b_i}$中。
  5. 计算节点可见性 :对于网页包中的每个多重集$M_{b_i}$,使用公式计算节点可见性$\alpha_i$,其中$N_{in}(i) = count(M_{b_i})$。
  6. 确定可见节点 :如果$\alpha < \epsilon_v$,则该节点不是阈值$\epsilon_v$下的可见节点;否则,从$M_{b_i}$中获取一个节点(可见节点)并存储在可见节点集$V$中。
  7. 确定站点间连通性 :对于$V$中的每个元素,确定节点的主机名$H_{x_i}$,确定与该节点对应的$x^{-1}$节点,确定$x^{-1}$节点的主机名并存储在包$H_{x^{-1}}$中,计算$H_{x_i}$在$H_{x^{-1}}$中出现的次数$C_h$,站点间连通性$I_j = 1 - C_h/|H_{x^{-1}}|$。
4.4 示例

考虑图6.10中的网页表Cancer,假设我们想找到节点类型标识符$z$的可见节点,并且只考虑可见性阈值大于或等于0.8的节点。
1. 图11.3显示了在从网页表Cancer的每个网页元组中消除除$z$的实例和相对于$z$的实例的$x^{-1}$节点之外的所有节点后投影的网页表$Wv$。注意,$Wv$中消除了一个重复的网页元组。
2. 接下来从$Wv$中投影$x^{-1}$节点,得到的元组集合如图11.4所示。
3. 由于图11.4中的第一个元组(记为$t_1$)和第三个元组(记为$t_3$)相同(具有相同的URL http://www.cancer.org/desc.html),图11.4中的元组集合是一个网页包。
4. 创建多重集$M_{b1} = \langle {t_1, t_3} \rangle$。
5. $count(M_{b1}) = N_{in}(1) = 2$,$N_{max} = |M_{max}(W_b)| = 2$。因此,$\frac{N_{max}}{N_{in}(1)} = 2/2 = 1$,即$\frac{N_{max}}{N_{in}(1)} < e$。根据定义11.11,$z_1$的节点可见性$\alpha_1 = 1 - K_1 \log_e \frac{N_{max}}{N_{in}(1)} = 1$。
6. 由于可见性阈值$\epsilon_v = 0.8$,存在节点类型标识符$z$的可见节点($\alpha_1 > \epsilon_v$)。
7. 可见节点集$V = {www.cancer.org/desc.html}$。
8. 对于上述可见节点,$H_{x1} = {www.cancer.org/}$。从网页表$Wv$中,$H_{x^{-1}} = {www.cancer.org/, www.medicalstore.com/}$。因此,$C_h = 1$,$|H_{x^{-1}}| = 2$。可见节点的站点间连通性$I_1 = 1 - 1/2 = 0.5$。

通过上述方法,可以在网页仓库中利用网页包进行知识发现,特别是发现网页文档的可见性和站点间连通性等知识。

5. 知识发现的实际应用与拓展

5.1 可见性知识在信息检索中的应用

在信息检索场景中,确定网页文档的可见性可以帮助搜索引擎更好地为用户提供相关且重要的搜索结果。例如,当用户输入一个查询词时,搜索引擎可以利用可见性算法,找出可见性较高的网页文档,将其优先展示给用户。具体操作步骤如下:
1. 数据收集 :收集与查询相关的网页文档,构建网页表$W$。
2. 参数设置 :根据用户的需求,设置节点类型标识符$x$和可见性阈值$\epsilon_v$。
3. 执行算法 :按照确定可见节点的算法,计算出可见节点集$V$。
4. 结果展示 :将可见节点集中的网页文档按照可见性得分进行排序,展示给用户。

5.2 站点间连通性在网络分析中的应用

站点间连通性可以用于分析网页之间的关联程度和网络结构。例如,在网络安全领域,可以通过分析站点间连通性,发现异常的网络连接。具体操作步骤如下:
1. 数据准备 :获取目标网络的网页表$W$。
2. 节点选择 :选择需要分析的节点类型标识符$x$。
3. 计算连通性 :确定可见节点集$V$,并计算每个可见节点的站点间连通性$I_j$。
4. 异常检测 :设置连通性阈值,当某个节点的站点间连通性低于阈值时,认为该节点可能存在异常连接。

5.3 知识发现的拓展思考

  • 多模式支持 :目前的知识发现过程假设网页表具有单一的网页模式,但在实际应用中,网页表可能具有多个网页模式。可以考虑将知识发现过程扩展到支持多模式的网页表,以提高知识发现的准确性和适用性。
  • 动态更新 :网页数据是动态变化的,因此知识发现结果也需要及时更新。可以设计一种动态更新机制,当网页数据发生变化时,自动更新可见节点集和站点间连通性等知识。

6. 总结与展望

6.1 总结

本文介绍了网页链接分析中的多种算法,包括SALSA算法、Borodin等人提出的一系列算法,并对它们进行了对比分析。同时,引入了网页包的概念,详细阐述了其定义、创建条件和多重集的性质。在知识发现方面,明确了相关术语,重点介绍了确定网页文档可见性和站点间连通性的算法,并通过示例进行了说明。这些方法和算法可以帮助我们在网页仓库中发现有价值的知识,提高信息检索和网络分析的效率。

6.2 展望

未来,随着互联网的不断发展,网页数据量将不断增加,知识发现的需求也将更加迫切。可以进一步研究如何优化现有的算法,提高知识发现的效率和准确性。同时,可以探索将知识发现与其他领域相结合,如人工智能、机器学习等,以挖掘更多潜在的知识和价值。例如,可以利用机器学习算法对可见节点集进行分类和预测,为用户提供更个性化的信息服务。

下面是知识发现应用和拓展的mermaid流程图:

graph LR
    A[网页数据] --> B{应用场景?}
    B -- 信息检索 --> C[确定可见节点集V]
    C --> D[按可见性排序展示]
    B -- 网络分析 --> E[计算站点间连通性Ij]
    E --> F{是否异常?}
    F -- 是 --> G[标记异常节点]
    F -- 否 --> H[正常节点]
    B -- 拓展应用 --> I[多模式支持]
    B -- 拓展应用 --> J[动态更新机制]

总之,网页链接分析和知识发现是一个充满挑战和机遇的领域,通过不断的研究和实践,我们可以更好地利用网页数据,为用户提供更优质的服务。

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样统计,通过模拟系统元件的故障修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值