基于分区自适应亲和传播的网页聚类方法研究
一、引言
随着互联网和网页技术的普及与飞速发展,各类信息呈爆炸式增长。这既增加了获取信息的机会,也让找到真正有用的信息变得困难。因此,迫切需要能够智能、自动地将网络数据组织成组或集合的新技术和工具,网页数据聚类也成为了越来越重要的研究领域。
网页数据聚类是将网页对象分组为“类”的过程,使相似对象在同一类,不同对象在不同类。网页数据包括网页文档(如 HTML 文件、XML 文件、图像等相关网络资源的集合)和用户导航会话(用户在网站内的操作记录)。本文主要聚焦于网页文档的聚类。
当前网页聚类方法可分为层次聚类和分区聚类。层次聚类用于为数据集构建树结构;分区聚类则尝试将文档集合划分为若干组,以最大化预定义的适应度值。近年来,分区聚类方法因计算要求相对较低,更适合大型文档数据集的聚类。其中,最著名的分区聚类方法是 K - means 算法,它从随机选择的 C 个聚类中心开始,多次迭代更新中心,直到中心不再变化,但该方法对初始中心的选择很敏感,且容易收敛到局部最优。
亲和传播(AP)是一种较新的聚类方法,已用于人脸图像聚类、代表性句子识别、基因检测等。它将所有网页视为潜在中心,通过在网络节点间递归传递实值消息,直到形成一组良好的中心和相应的聚类。AP 是无监督聚类方法,适用于网页数量未知的情况,但实验表明,当给定网页数量时,使用 AP 进行网页聚类可能会产生不理想的聚类数量和较低的精度,且存在难以确定“偏好”参数的最优值以及无法自动消除振荡的问题。
分区自适应亲和传播(PAAP)是 AP 的扩展方法,它可以在重新运行亲和传播过程时自动调整“偏好”参数的值,使聚类数量收敛,还能通过自动调整阻尼因子消除或避免振荡。该方法在运行时将输入的相似性矩阵划分为多个分区,以提高处理速度和精度。
二、基于亲和传播的网页聚类
2.1 网页的表示
在大多数聚类算法中,待聚类的数据集表示为一组向量 X = {x1, x2, …, xn},其中向量 xi 对应单个对象,称为特征向量。网页可视为文档,文档对象可使用向量空间模型(VSM)表示。在该模型中,每个文档由 n 个“特征”的权重向量表示,di = {wi1, wi2, …, wij, …, win},其中 wij 是第 j 个特征在文档 i 中的频率,n 是特征数量。最常用的加权方案是词频 - 逆文档频率(TF - IDF),其定义为:
wij = tf(i, j) * idf(i, j) = tf(i, j) * (log(N / df(j)))
其中,tf(i, j) 是特征 j 在文档 di 中的频率,N 是整个集合中的文档数量,df(j) 是特征 j 出现的文档数量。
2.2 亲和传播算法
AP 由 Frey 和 Dueck 在 2007 年提出,与其他聚类方法不同,它将每个数据点视为潜在的聚类中心,通过在数据点对之间递归传递实值消息,直到形成一组良好的聚类。AP 算法以相似性矩阵为输入,在网页聚类中,网页 di 和 dj 之间的相似性定义为:s(i, k) = -∥di - dk∥2。
在消息传递过程中,网页之间交换两种消息:“责任”r(i, k) 表示网页 k 作为网页 i 中心的合适程度;“可用性”a(i, k) 反映网页 i 选择网页 k 作为中心的合适程度。AP 算法步骤如下:
Algorithm 1. AP 算法:
Initialization: r(i, k) = 0, a(i, k) = 0 for all i,k.
Responsibility updates:
r(i, k) ← s(i, k) − maxj:j̸=k{a(j, i) + s(i, j)}
Availability updates:
a(k, k) ← ∑j:j̸=k max{0, r(j, k)}
a(k, i) ← min{0, r(k, k) + ∑j:j∈{k,i} max{0, r(j, k)}}
Making assignments:
c∗i ← argmaxk{r(i, k) + a(k, i)}
AP 不需要预先指定聚类的数量,而是将 s(k, k) 作为每个点的输入,值越大的数据点越有可能被选为中心,这些值称为“偏好”,用 p 表示,会影响聚类结果的数量。此外,AP 还使用阻尼参数 λ ∈(0, 1) 来防止某些情况下出现的数值振荡。在消息传递过程中,每个消息更新为 λ 倍的上一次迭代值加上 (1 - λ) 倍的规定值。整个 AP 过程在固定迭代次数后或中心决策在若干次迭代中保持不变时终止。
三、基于分区自适应亲和传播的网页聚类
实验结果表明,AP 的聚类数量受输入偏好值的影响,且无法自适应消除振荡。对于密集且数量巨大的网页数据集,AP 难以获得最优聚类结果。为了利用 AP 的优势并在网页聚类中获得最优结果,采用了其扩展方法 PAAP。
PAAP 的自适应技术包括“精细调整”和“粗略调整”两部分。精细调整用于缓慢降低“偏好”参数的值,粗略调整则用于快速降低偏好值。实验结果表明,两者结合可以在高速执行的同时得到最优聚类。此外,为了提高执行速度,PAAP 将原始相似性矩阵分解为子矩阵。
PAAP 算法步骤如下:
Algorithm 2. PAAP 算法:
1): 执行 AP 过程,获取聚类数量: K(i)。
2): 如果 K(i) ⩽ K(i + 1),则转到步骤 4;否则,count = 0,转到步骤 3。
3): λ ← λ + λstep,然后转到步骤 1。如果 λ > 0.85,则 p ← p + pstep,s(i, i) ← p;否则转到步骤 1。(本文中,当 λ 的值大于 0.85 时,λstep = 0.025;当 λ 的值小于 0.85 时,λstep = 0.05)
4): 如果 | Cmax - K(i) | > CK,则 Astep = -20 * | K(i) - Cmin |,转到步骤 6;否则,延迟 10 次迭代后转到步骤 5。
5): 如果 K(i) ⩽ K(i + 1),则 count = count + 1,Astep = count * pstep,转到步骤 6;否则,转到步骤 1。
6): p = p + Astep,然后 s(i, i) ← p。
7): 如果 i = maxits 或 K(i) ⩽ Cmin,算法终止;否则,转到步骤 1。
其中,CK 是一个正整数,可根据经验确定,实验中设为 5;pstep 的值设为 0.1 * pm / √(K(i) + 50),其中 pm 是输入相似性的中位数。步骤 4 属于粗略调整,步骤 5 属于精细调整,两者结合可获得良好的结果和较高的执行速度,步骤 7 确定了参数 p 的下限。
为了提高执行速度,PAAP 将原始相似性矩阵分解为子矩阵的具体步骤如下:
1. 将矩阵 SN 平均划分为 k(1 < k < N / (4 * Cmax))个部分,得到的子矩阵 S11, S22, …, Skk 均为方阵。S11, S22, …, S(k - 1)(k - 1) 的大小均为 m = ⌊N / k⌋,Skk 的大小为 N - m * (k - 1)。
2. 使用子矩阵 S11, S22, …, Skk 作为 PAAP 的输入相似性矩阵,分别运行,得到 k 个可用性矩阵 A11, A22, …, Akk。
3. 按照以下规则组合 A11, A22, …, Akk 形成整个数据集的可用性矩阵 A′,将矩阵 A′ 的其他部分设为零:
A′ =
⎛
⎜
⎜
⎜
⎝
A11 0 · · · 0
0 A22 · · · 0
... ... ... ...
0 0 · · · Ann
⎞
⎟
⎟
⎟
⎠
- 使用 A′ 作为初始可用性矩阵运行 PAAP,直到满足算法终止条件。
这种方法通常能在更短的时间内得到分组结果,因为执行时间与输入矩阵的大小成正比,当相似性矩阵很大时,处理子矩阵的时间可以忽略不计。该方法先找到局部最优,再得到全局最优,实验表明其非常有效,能获得较高的精度。由于 PAAP 算法会输出一系列不同的聚类数量,因此需要使用聚类有效性指标来评估聚类结果的质量,本文使用轮廓验证指标。
四、评估方法和实验结果
4.1 数据准备和收集
为了比较算法的性能,使用了十个不同的网页集合。使用名为“Net - spider”的网页文本抓取器下载网页,它从某个网页(如 www.yahoo.com)开始,读取页面内容并下载该页面,然后找到页面中的其他链接地址,通过这些地址找到其他网页,重复此过程直到抓取完所有网页。共下载了约 5000 个网页。
由于网页数据存在噪声,如 HTML 标签和大量不必要的单词,在应用进一步算法之前,需要进行数据清洗和处理,主要包括超文本过滤和词干提取两个步骤。处理后得到纯文本,并将其分类为十个不同的文档集。为了评估 PAAP 是否适合网页聚类,每个数据集都进行了手动标注。
| 主题 | 网页数量 | 主题 | 网页数量 |
|---|---|---|---|
| 商业 | 75 | 体育 | 332 |
| 历史 | 93 | 博客 | 484 |
| 政治 | 125 | 新闻 | 518 |
| 技术 | 150 | 健康 | 750 |
| 教育 | 249 | 计算机 | 1008 |
4.2 评估方法
为了评估聚类结果的质量,使用 F - measure 和平均准确率。
-
F - measure 评估
:
- 精度 P(pi, ck) 和召回率 R(pi, ck) 定义为:
- P(pi, ck) = | pi ∩ ck | / | ck |
- R(pi, ck) = | pi ∩ ck | / | pi |
- 相应的 F - measure F(pi, ck) 定义为:
- F(pi, ck) = 2 * P(pi, ck) * R(pi, ck) / (P(pi, ck) + R(pi, ck))
- 整个聚类结果的 F - measure 定义为:
- Fm = ∑i = 1n{|pi| * maxk = 1,2,…,m[F(pi, ck)]} / ∑i = 1n |pi|
-
平均准确率
:
- 文档 di 和 dj 之间存在四种关系,如下表所示:
| 聚类后 di 和 dj 属于同一聚类 | 手动判定 di 和 dj 属于同一聚类 | 标签 |
| — | — | — |
| 是 | 是 | a |
| 是 | 否 | b |
| 否 | 是 | c |
| 否 | 否 | d |
- 正准确率(PA)和负准确率(NA)定义为:
- PA = a / (a + b)
- NA = a / (a + c)
- 平均准确率定义为:
- AA = 2 * (PA + NA) / (PA + NA)
- 平均准确率的范围是 0 到 1,值越大,聚类结果越好。
4.3 实验结果和分析
分别实现了传统的 K - means、AP 和 PAAP 算法。在 AP 和 PAAP 算法中,λ 的初始值设为 0.5,AP 的偏好值设为相似性的中位数,PAAP 的初始偏好值设为相似性中位数的一半。在 PAAP 中,不同数据集的 Cmax、Cmin 和 Kparts 值不同。假设 C 是一个数据集的理想聚类数量,本文中 Cmax = C + 1,Cmin = C - 1。当数据集的网页数量较少(如商业、历史和政治)时,Kparts 设为 3;在计算机主题中,Kparts 设为 15;其他数据集设为 10。
| 文档集 | K - means | AP | PAAP | |||
|---|---|---|---|---|---|---|
| F - measure | 平均准确率 | F - measure | 平均准确率 | F - measure | 平均准确率 | |
| 商业 | 0.7919 | 0.7499 | 0.9327 | 0.9203 | 0.7980 | 0.7726 |
| 历史 | 1 | 1 | 0.8373 | 0.7327 | 1 | 1 |
| 政治 | 0.8558 | 0.8272 | 0.7344 | 0.6010 | 0.7783 | 0.8407 |
| 技术 | 0.8406 | 0.8045 | 0.9862 | 0.9827 | 0.9866 | 0.9837 |
| 教育 | 0.7528 | 0.6554 | 0.6196 | 0.4893 | 0.7529 | 0.6558 |
| 体育 | 0.9164 | 0.9686 | 0.6476 | 0.4692 | 0.9816 | 0.9737 |
| 博客 | 0.5578 | 0.5056 | 0.9975 | 0.9989 | 0.9975 | 0.9989 |
| 新闻 | 0.9388 | 0.8726 | 0.7096 | 0.6910 | 0.9809 | 0.9606 |
| 健康 | 0.7865 | 0.7382 | 0.7337 | 0.6676 | 0.9576 | 0.9100 |
| 计算机 | 0.7655 | 0.7293 | 0.5907 | 0.5195 | 0.9960 | 0.9940 |
从 F - measure 的图表中可以看出,PAAP 在大多数数据集上表现良好,尤其是文档维度较高时。当网页数量大于 300 时,PAAP 优于 K - means 算法。平均准确率的图表显示,PAAP 在几乎所有文档集上都获得了比其他方法更高的平均准确率。综合这两个评估指标,可以得出 PAAP 是一种稳健且有效的网页聚类方法。不过,K - means 的执行速度最快。
五、总结与展望
本文围绕网页聚类展开,深入探讨了多种聚类算法,并着重研究了分区自适应亲和传播(PAAP)算法在网页聚类中的应用。
在引言部分,我们了解到随着互联网的发展,网页数据呈爆炸式增长,传统的网页聚类方法如 K - means 和亲和传播(AP)存在一定的局限性。K - means 对初始中心选择敏感,易收敛到局部最优;AP 难以确定“偏好”参数的最优值,且无法自动消除振荡。为解决这些问题,PAAP 算法应运而生。
在基于亲和传播的网页聚类中,我们介绍了网页的表示方法,采用向量空间模型(VSM)结合词频 - 逆文档频率(TF - IDF)来表示网页文档。AP 算法将每个数据点视为潜在的聚类中心,通过在数据点对之间递归传递实值消息来形成聚类。然而,AP 在处理网页聚类时可能会产生不理想的聚类数量和较低的精度。
基于分区自适应亲和传播的网页聚类部分,详细阐述了 PAAP 算法的自适应技术,包括“精细调整”和“粗略调整”,以及如何将原始相似性矩阵分解为子矩阵以提高执行速度。PAAP 能够自动调整“偏好”参数的值,使聚类数量收敛,并通过调整阻尼因子消除振荡,先找到局部最优,再获得全局最优。
评估方法和实验结果部分,我们使用了十个不同的网页集合进行实验,通过 F - measure 和平均准确率两个指标来评估聚类结果的质量。实验结果表明,PAAP 在大多数数据集上表现良好,尤其是文档维度较高或网页数量较大时,优于 K - means 和 AP 算法,具有较高的精度和稳健性。不过,K - means 的执行速度最快。
下面通过 mermaid 流程图来总结 PAAP 算法的整体流程:
graph TD
A[开始] --> B[执行 AP 过程,获取聚类数量 K(i)]
B --> C{K(i) ⩽ K(i + 1)}
C -- 是 --> D{ | Cmax - K(i) | > CK}
C -- 否 --> E[count = 0]
E --> F[λ ← λ + λstep]
F --> G{λ > 0.85}
G -- 是 --> H[p ← p + pstep,s(i, i) ← p]
G -- 否 --> B
H --> B
D -- 是 --> I[Astep = -20 * | K(i) - Cmin |]
D -- 否 --> J[延迟 10 次迭代]
J --> K{K(i) ⩽ K(i + 1)}
K -- 是 --> L[count = count + 1,Astep = count * pstep]
K -- 否 --> B
I --> M[p = p + Astep,s(i, i) ← p]
L --> M
M --> N{i = maxits 或 K(i) ⩽ Cmin}
N -- 是 --> O[算法终止]
N -- 否 --> B
未来的研究方向可以从以下几个方面展开:
1.
算法优化
:进一步改进 PAAP 算法,提高其执行速度和精度,例如探索更高效的子矩阵划分方法或更智能的自适应调整策略。
2.
多模态数据处理
:考虑将网页的其他模态信息(如图像、音频等)纳入聚类过程,以更全面地表示网页内容,提高聚类效果。
3.
实时聚类
:研究如何使算法能够实时处理不断更新的网页数据,满足动态网络环境的需求。
4.
与其他技术结合
:将网页聚类技术与机器学习、深度学习等其他技术相结合,探索新的聚类方法和应用场景。
总之,网页聚类是一个具有广阔应用前景的研究领域,PAAP 算法为解决网页聚类问题提供了一种有效的方法,但仍有许多方面值得进一步研究和探索。通过不断地改进和创新,我们有望开发出更高效、更准确的网页聚类算法,为用户提供更好的信息检索和组织服务。
超级会员免费看
14

被折叠的 条评论
为什么被折叠?



