基于本体Web页面聚类的多用户需求的策略分析
一、引言
随着云计算研究与应用的逐步展开和迅速普及, 服务的数量增长速度也不断加快。在这样一个海量的集合上,通过服务发现和组合来满足用户的服务需求, 其难度在不断增加。一方面由于服务具有分布、自治的特征, 且数量急剧增长,在海量的服务资源中选择可互操作的服务候选者存在巨大困难; 另一方面云计算环境中用户需求多变, 业务流程日益复杂, 服务资源无法即时适应其变化。计算要求面向用户需求,以服务为基本单位, 通过服务的协同和交互快速构建软件系统, 已经成为构建大规模分布式系统的主流计算方式, 这就迫切需要发展一种新的服务发现框架。
传统的服务发现机制通常关注服务本身的属性和内在特征,而忽略了服务发现的宗旨是来尽可能满足用户的需求,这必然成为按需服务发现的瓶颈。 要提高服务资源发现的效率和质量,需要以需求为引导,为需求者提供一种更好的服务表现形式,将需求者最关心的内容呈现给他们,而将服务实现的技术细节尽可能的隐藏起来,减少服务提供者和服务需求者对于服务理解上存在的鸿沟,让用户快速定位到自己真正需要的服务资源。
本体(Ontology)是用于描述或表达某一领域知识的一组概念或术语,它可以用来组织知识库较高层次的知识抽象,也可以用来描述特定领域的知识, 利用本体知识规则集的表现方式,聚类分析Web信息在语义层次上的共享和交换, 可以大大加强Web的功能, 使其成为自然语言处理, Web信息检索, 数据库和知识库的管理, 异构数据集成, Web页面语义研究,快速揭示海量信息资源中用户在语义、语用和知识上的需求。在越来越多的研究中开始利用本体解决特定环境下的语义搜索和标签聚类的需求, 发现用户共同关心的需求等核心问题。
从现有知识源(如文本、词典、遗留知识库或本体、数据库模式等)获取领域知识、以(半)自动方式构造或改编本体,即所谓的本体学习(Ontology Learning),是开发本体的有效途径。人们已进行了许多有关语义Web基础架构如本体语言OWL、编辑器、推理引擎等方面的工作,在聚类搜索引擎的理论研究中,O. Zamir提出Web信息聚类的STC(Shared Term Clustering)方法,依靠共同词组进行聚类, 以后缀树的层次结构作为类的层次结构,其中关键词组的发现没有考虑词组的稳定性和完整性,没有考虑语义的问题,不能适用于中文等语言, g等人提出Web信息聚类的Scatter/Gather系统,由于是采用传统的启发式聚类算法进行聚类,难以避免启发式聚类算法的种种缺点。Y. Wang等人提出基于超链接(hyperlink)进行万维网信息聚类,这种方法需要下载并分析实际的网页,因此不可能做到在线聚类。
本文提出一种基于本体的Web页面聚类系统,综合聚类方法和领域知识的优点,将用户提交的查询与领域本体匹配, 提取背景知识来提供聚类的参数确定同时也增强了聚类结果的可解释性, 通过将其应用到搜索引擎的背景下,大大方便了用户需求信息的查找,同时聚类用户需求,实现查询集合的优化。
二、本体的应用
Internet上的信息资源具有海量、分布、动态、复杂、开放等特点,需求本体信息的发现, 用户如何从这些海量的数据中查找自己所需要的有用的信息, 自动地从Web上发现、抽取和过滤信息,同时满足用户在特殊环境下的语义、语用和知识上的需求成为自动文本信息抽取的一个重要环节。文本信息抽取(text information extraction)是指从文本中自动抽取相关的或特定类型的信息。 目前文本信息抽取模型主要有三种: 基于词典的抽取模型, 基于规则的抽取模型和基于隐马尔可夫模型(Hidden Markov Model, HMM)的抽取模型。采用HMM 存在的主要问题是没有考虑文本的上下文特征信息和文本词汇本身包含的特征信息, 而这些信息对于实现正确的文本信息抽取是非常有用的。
面对快速增长的Web信息,很多基于Web的应用面临着相关领域本体缺乏的问题,因为许多的本体构建严重依赖于以专家为中心的方式实现的, 这种以手工为主的构建不仅代价很高,无法进行大规模扩展,同时要促使大量的用户和领域专家为语义Web来构建本体也存在相当的困难,因此研究自动的,通用的领域本体构建方法是解决这一问题的关键。
本体是共享概念模型的明确的形式化规范说明,它一方面可以帮助用户明确其信息需求,把未意识到的、未清晰表达的客观信息需求进一步显性化;同时让系统确定检索词在本体中的确定位置,从而帮助机器理解用户的检索意图,为用户提供更精确、更相关的知识和信息。 Web上的搜索引擎部分地解决了资源发现的问题,但由于它的策略是基于关键字的匹配,缺乏对Web文档内容的全面把握和深层语义的正确理解,因此返回的结果远不能使用户满意。搜索结果中包括大量与用户需求无关的信息, 从而使用户需要花费大量的时间去找到自己真正需要的信息, 因此找到一种有效的方法解决这些问题具有重要意义。 随着语义识别技术的发展,出现了多种基于Web的本体描述语言,如RDF(Resource Description Framework),DAML+OIL,OWL(Ontology Web Language,参考Http://)等。OWL作为W3C的推荐标准,是其所倡导的语义万维网(Semantic Web)的核心技术之一, 意在提供一种语言, 能够用于描述Web文档和应用中因有的类和类之间的关系。它通过定义类和类的属性来形式化一个领域, 声明和定义对象和对象的属性, 以及在OWL形式化语义允许的程度上对类(Class)和个体(Individual)进行推进。在这些方法中, 主要分为两大类:一类是脱机的聚类, 主要是通过网络蜘蛛(Spider)采用一定的爬行策略从各网站收集网页, 然后再对其聚类, 比较典型的有根据包法来给出一种相似度量;另一类是联机的方法,这种方法主要通过对查询结果聚类,主要是以主体为依据进行聚类。比较著名的Vivisimo就是采用的这种方法,还有相关的如Grouper与Carrot等。这些方法都在一定的程度上取得了好的效果。但在本质上没有对用户查询的意图很好现解,在聚类的时候决定聚类的个数时不能很好地确定,从而使得最后的聚类结果的可解释性方面比较差。
三、基于本体的Web页面聚类的具体实现过程
基于本体的Web页面聚类系
统,主要分为四个部分,如图1所示:页面采集与预处理,本体的应用,页面的特征表示,聚类。
图1 模型结构
具体的系统模型结构和处理过程为:在模型中根据用户提交的查询返回一个结果集, 同时解析用户提交的查询后将其匹配到一个领域本体,得到一个分类的背景知识,然后对结果集体进行分类区分为XML或HTML,然后分别对页面进行解析,再根据领域本体对解析后产生的特征向量进行降维,从而为下一步的聚类做好准备,然后在分类背景知识的启发下对页面的特征表示向量进行聚类,并用用户提交的查询与领域本体匹配得到的信息作为聚类结果的表示依据,这样的有效加快聚类的收敛速度,同时提高了结果的可解释性。
1. 页面的收集与预处理
页面的收集主要采用网络蜘蛛根据一定的策略从网站上采集相关的网页,然后对这些页页进行预处理。
Web数量预处理就是去掉Web页面中与需要信息无关的其他内容,提取对分类和过滤有用的信息。主要分为两个过程:一个是对页面中控制符的分析,然后是怎样处理这些控制符。页面中控制符主要包括标题,即网页源代码中用(<title>和[</title>标记的文字;关键字;页面描述,跟关键字类似的,在网页的头部说明中可以使用<meta name=
"description" content="..." />的形式来描述页面内容;链接,链接元素用来描述两个文档或者文档和URL之间的关系;网页的正文部分:除了少数的专业网站外,大部分网站都是主要用自然语言书写。对于在HTML文档中出现的各种控制符号没必要把所有的都考虑进去,在实际训练的过程中,为了简化分析处理过程,仅考虑下面的控制符:TITLE(标题),META(置标),HREF(链接)等。
在本文中挖掘时用到的本体侧重于一个较小的主题,对应于一个较小的领域应用。 因此在此描述的是现实中的一个较小的领域应用,同时在应用中采用OWL来描述。下面是一个计算机媒体OWL本体,其中的一个类层次如图2所示。
图2 类层次
其中一个类的OWL语言描述如下:
<owl:Class rdf:ID=“人工智能”>
<rdfs:subClassOf rdf:resource=“#媒体”/>
</owl:Class>
2. 本体的匹配
将一个词汇的集合映射到一个领域本体时,希望得到一个公认的概念集,开始我们有一个集合O={O1, O2,…,On},通过将集合O与领域本体匹配后我们得到一个概念集C={C1,C2,…, Cm},这个领域本体用OWL表示的本体有三种对象,制定四种不同的映射,具体如下:
(1)当集合O中Oi(i=1,2,…,n)与本体中类可以直接匹配时,将匹配到的概念Cj(j=1,2…m)直接加入集合C中。
(2)当集合O中Oi(i=1, 2,…, n)与本体中类属性可以直接匹配时,如果还和别的类匹配或那个类的实例匹配时,则遵循类的优先性最高,实例次之,属性最低,则将该类或实例所属的类作为匹配的概念输出,否则,则将该属性属于的类加入到集合C中。
(3)当集合O中Oi(i=1,2,…,n)与本体中某个个体匹配时,当不与其它的类或属性匹配时,则直接将其所属的类加入集合C中,否则根据优先级将其类名作为概念加入集合C中。
(4)当集合O中的元素与任何一个对象匹配不上时,则将其丢弃。
在语义相似度的计算中,在本文定义了一个新的计算概念之间的模型,具体的定义如下:一个概念C1和一个概念C2,它们各自在本体中定义的属性为C1={C11,C12,...,C1n }:C2={C21, C22, ..., C2m},当{C11,C12, ...,C1n }* C22, ..., C2m}={P1, P2, …, Pk},同时定义其中集合P={P1, P2, …,Pk}中每个概念的权重分别为{w1,w2,…,wk},则可以得到两概念之间的相似性为:
Sim(C1,C2)=(w1+w2+…+wk)/k
通过将两个概念的属性的集合相交,得到一个集合,然后根据每个集合中每个元素的权重相加后求平均值,这样把这个值作为两个概念之间的相似度。
3. 基于本体的VSM表示模型
通过对文本集进行一定的特征提取后,得到每个文档的一个特征向量,得到特征向量后,通过将每个特征项与领域本体匹配,然后得到一个与本体匹配的新的特征向量。
通过分词后,每个文档表示成di(t1,t2,…tn)(其中i=1,2,…m),将tj(j=1,2,…n)与领域本体匹配后得到一个新的向量Ont_d1=(c1,c2,…cn)。在传统的VSM模型中,文本空间被看作是一个有一组正交词条表示的向量空间,每个文本表示为其中一个规范化特征向量V(d)=((t1,w1(d);t2,w2(d)…tn,wn(d)),其中t1为词条项,w1(d)为t1在d中的权重。TF-IDF是一种常用的词条权重确定方法。由于ti在文本中既可以重复出现又应该有先后次序关系,分析起来有一定难度,为了简化分析,可以暂不考虑ti在文本中的先后次序并要求ti互异(即没有重复)。这时可以把t1,t2,…tn看成一个n维的坐标系,而w1,w2…wn为相应的坐标值,因此一个文本就表示为n维空间的一个向量,我们称V(d=(w1,w2…wn)为文本d的向量表示或向量空间模型。其中每个词条的权重计算如下:
tfidf(d,t):=tf(d,t)×log(■)
其中D为文档集,d为任意文档,t为一个文档中的词,tf(d,t)为t在文档d中出现的频率,|D|为文档集的总数,tf(t)为词t在文档集中出现的次数,那么tfidf(d,t)就为词t在文档d中的权重。
由于现在的词条都是通过把以前的词匹配到领域本体上得到的一个概念向量,因此会得到新的一个计算权重的公式:
cwi■ptwk
其中cwi为概念c在表示文档di时的权重,twk为匹配前的词根据TF-IDF计算得到的权重,其中p为:
p=1 twk与概念cwi匹配0 twk与概念cwi不匹配
通过将所有的与概念匹配的词条的权重相加,那么得到一个新的表示一个文本的词义表示模型,每一个文本可以表示成V(d)=(cw1,cw2,…cwm)。
4. 基于本体的K-Means聚类算法
以此初步构建的本体结构复杂,冗余数据较多,运用K-中心点聚类算法对其调整,完成用户兴趣本体构建。选用该聚类算法,是因为其考虑了概念间关系,避免了文本聚类带来的语
义信息丢失。在K-Means中需要初始的聚类参数,也就是确定聚类点的数目,这对用户来说是很难确定的,在这里通过将用户的查询匹配到领域本体上确定一个聚类点的数目Ont_k,然后再聚类完成后结果的展示也以匹配的概念来表示,这样很好地解决了传统方法中聚类的结果可解释性不强的问题。算法的描述如下:
(1)根据用户提交的查询的关键字匹配到一个领域本体上得到一个概念分类数Ont_k,作为要生成的聚簇数目k;
(2)按某种原则选取k个初始聚簇中心,C( c1,c2,…ck),采用随机选取原则,设置初始迭代次数为r=1;
(3)对文本集合中没有分好类的每个文本di,依次计算它与各个聚簇中心cj的相似度sim(di,cj),这里将欧风里德距离作为相似度计算公式;
(4)计算新的聚簇中心,新的聚簇中心为这一轮迭代中分到该聚簇中的所有文本特征向量的均值,即
cj=■■d
其中Fi为聚簇cj的文本集合,nj为Fj中的文本数,d为文本特征向量;
(5)如果所有聚簇中心均达到稳定或者说准则函数收敛,结束;否则,r=r+1,goto(4);
(6)通过将中心点与概念类匹配,确定其对应的表示方式。
由此可知,该算法是基于迭代的过程。通常,初始点不同,聚类结果也不同。该算法运行速度快,时间复杂性为o(knr),其中n为总文本数,k为聚簇数,r为迭代次数。算法的缺点是必须事先确定k值,而在许多情况下,无法事先知道文本集合中的主题类别数目,在这里通过与领域本体匹配,确定了k的数目,大大提高了收敛速度。
四、 多用户需求发现本体构建
多用户兴趣本体构建通过聚类调整得到更直观的用户兴趣本体,该本体概念由高频特征词组成,打破领域本体局限,实现多领域用户兴趣的挖掘。如果将有关联用户的兴趣本体合并,构建多用户兴趣本体,可发现用户潜在兴趣,其过程分为用户聚类和本体合并两步。
(1)用户聚类。从后台数据库中提取用户信息,包括性别、年龄、受教育程度、从事行业等维度。选用K-means 算法对其聚类,找出关联客户。
(2)用户兴趣本体合并。将关联客户的兴趣本体用数据模型表示并按如下公式逐一合并,可得到多用户兴趣本体。用Ca, Cb分别表示A,B用户兴趣概念,Ra, Rb分别表示用户的分类关系集合,合并公式如下:
(Ca∪Cb)∩(Ra∪Rb)∩((Ca*Ra)∪(Ca*Rb)) ∩ ((Cb*Ra)∪(Cb*Rb))
由此,完成多用户本体的构建。
该本体由多个用户兴趣本体合并而成,合并后概念和关系数量迅速增加,可对其再进行一次无尺度图K-Means聚类调整。
五、 结束语
本文通过将领域本体与文本的聚类方法结合,在搜索数据返回的结果的背景下,对页面集进行聚类,根据用户提交的查询与领域本体的匹配,得到聚类参数和最后可解释的概念表述方式,在特征向量模型的构建方面通过将页面分词后的词语与本体匹配得到一个概念的向量模型,这样有效地提高了聚类的速度和增加了聚类结果的可解释性,并在一个引擎的环境下实现。
本体构建方法还存在一些问题,用户本体概念数量较大,难以精准反映用户兴趣。而关系是通过词汇统计提取的,导致每个用户的概念间关系差别较大,合并后本体结构更为繁杂,这些方面还有待进一步的研究。
(作者单位:湖南广播电视大学)
下一篇:例谈小学数学概念的有效引入