APP下载

社会语义网分析技术研究*

2013-09-29蔡国永

计算机工程与科学 2013年1期
关键词:网络分析语义节点

蔡国永,林 航

(桂林电子科技大学计算机科学与工程学院,广西 桂林 541004)

1 引言

在开放的互联网环境中,涌现出了大量不同类型的在线社会网络(也称在线社区)。在线社会网络是人们以计算机和网络为中介进行交互、联系和协作时所形成的人与人、人与物的逻辑网络[1]。根据Facebook在2011年7月公布的数据,Facebook的全球用户总数已达7.5亿,每天的分享次数达40亿。在线社会网络在全球范围内呈爆炸式增长,与此同时,在线社会网络分析成为学术界关注的热点之一。

传统社会网络分析方法侧重于研究在线社会网络的网络规模、中心性、聚类系数和异配性等网络拓扑特征[2~4]。这些研究通过提取单一网络服务平台的用户数据,分析社会网络的拓扑特征,而没有充分考虑社会网络中的语义信息[5]。

针对在线社会网络资源缺少统一语义模型问题,国外学者提出使用语义网技术描述在线社会网络。Mika P等[5]从语义角度将在线社会网络分成三个层,即社团层、本体层和超文本内容层,并根据三层模型构建了用于描述在线社会网络的本体。Finin T等人[6]提出基于朋友的朋友FOAF(the Friend of A Friend)的社会语义网络,利用启发式的方法确定和发现网络中的FOAF文档,并从中提取参与者相关信息。Kinsellal S等[7]利用社会语义网描述在线用户及其生成内容间的显性和隐性关系,侧重研究在线社会网络中用户生成内容的语义链接。这些研究表明:语义网技术可以为上层的应用和分析提供一致的语义模型,便于异构网络资源的整合,也赋予资源更丰富的语义信息;语义网技术的推理能力,使得资源的语义可被计算机理解,并能将隐性知识转换和共享。因此,引入语义网技术能更好地构建完整、非冗余的在线社会网络,并为进一步的社会网络分析提供重要支撑。

然而,现有研究侧重于将语义网技术用于在线社会网络的描述,在分析过程中探讨利用语义信息的研究还不多。本文其余部分安排如下:第2节给出在线社会网络表示与分析框架;第3节具体介绍在线社区社会语义网络的构建;第4节给出在线社区社会语义网络分析的原理和实现技术;第5节以真实在线社会网络为例,说明社会语义网络分析框架的实例分析过程。

2 在线社会网络分析框架

在线社会网络结构框架包括两部分:在线社会网络的语义表示和在线社会网络的语义分析,如图1所示。

Figure 1 Social semantic network structure framework diagram图1 社会语义网络结构框架图

图1中框架分为四层:最下面的第1层为数据层,它包括非资源描述框架RDF(Resource Description Framework)数据源集合和本体语言描述的实例数据集合,为框架提供原始数据;第2层为本体层,它包括用于描述网络资源的各类本体,如FOAF、Relationship、SIOC和SKOS等;第3层为RDF语义图模型,利用本体将原始数据集表示成RDF图模型,实现在线社会网络的语义表示;第4层为社会语义网分析层,在语义表示的基础上,利用SPARQL(Simple Protocol And RDF Query Language)的表达能力和语义检索引擎的推理能力实现对在线社会网络的语义分析。

社会语义网络分析的实现过程如图2所示。

Figure 2 Social semantic network analysis flow diagram图2 社会语义网分析流程图

首先,需要对待分析的网络数据进行社会语义提取,获取基本的结构化数据,并利用语义网技术对抽取的数据进行存储和表示。在线社会网络中,用户的信息多数以规则的网页形式出现,且网页含有明显的区域结构。因此,可以利用基于HTML结构的信息抽取方法[8],对待分析的社交网络中的用户信息进行提取。

信息提取获得的数据、用户数据库提供的数据和开放API获取的数据都属于结构化非RDF数据。需要用语义网技术对这些数据进行处理转换,将其存储为RDF或Web本体建模语言OWL(Ontology Web Language)格式。对转换生成的RDF数据和已有的RDF数据进行知识推理和一致性检测,最终生成在线社会网络的RDF语义图模型。在RDF语义图表示的基础上,可进行框架中的社会语义网分析。

3 在线社区社会语义网络的构建

框架中利用RDF语义图模型将在线社区构建成社会语义网络,使用已有的本体描述在线社会网络中的社会数据。社会数据包括网络结构数据和用户生成内容数据,其中网络结构数据包括用户个人信息和关系信息。

框架中使用本体FOAF描述用户信息,FOAF是基于OWL的词汇表,定义了用于描述用户个人信息、网络账户和社会关系的元数据。其中,family name、nick、interest等属性集合用来描述用户个人信息;knows属性用来建立用户的社会网络。在社会网络中,FOAF中的“knows”可以根据关系特征和亲密程度具体化为不同的社会关系,如家庭关系、朋友关系或职业关系等。使用Relationship本体具体化FOAF中的knows属性,如rel:friendOf属性表示一种具体的foaf:knows属性。Relationship中还定义了关系的属性特征,如传递性、对称性等。此外,框架使用SIOC本体具体化FOAF中的onlineAccount和HasOnlineAccout属性,用于描述用户的账号信息及对应账户所生成的内容。利用这些本体能完整描述在线社会网络中的用户信息,信息包括同一用户的不同SNS账户、不同服务平台上发布的内容以及用户通过不同网络服务建立的社会关系等。

然而,在社会网络中,大部分用户数据可能是以非RDF格式存在的,这些数据需要转换或封装成RDF格式才能被社会语义网分析框架使用。本文利用语义检索引擎CORESE[9]将非RDF数据转换为RDF语义图模型中的实例数据。CORESE是基于SPARQL的语义搜索引擎,支持内嵌的SQL和XPATH查询,能将SQL和XPATH查询的结果与SPARQL查询中的变量相互绑定。通过内嵌SQL和XPATH查询,CORESE可以从多个不同类型的数据源获取数据,并转换为RDF形式。

CORESE中利用函数sql()实现对关系型数据库的查询,sql()的参数包括:连接数据库服务的URL、JDBC驱动类名、数据库用户名、用户密码和SQL查询。sql()查询的结果将与SPARQL查询中的变量相绑定。

假设需要从一个关系型数据库中检索出friendOf关系,并用查询结果构建RDF图。在CORESE中可以使用construct块、函数sql()和函数getIdUrl()实现上述要求,其中函数getI-dUrL()用于将sql()查询的结果转换为URL形式。具体的实现过程如下:

PREFIX rel:<http://purl.org/vocab/relationship/>

construct{?url_user1rel:friendOf?url_user2}

select sql(′jdbc:mysql://localhost:3306/SNA′,′com.mysql.jdbc.Driver′,′userName′,′pwd′,′SELECT user1,user2from relations where rel=2′)as(?id1,?id2)

fun:genIdUrl(?id1,′http://semsni.fr/people/′)as?url_user1

fun:genIdUrl(?id2,′http://semsni.fr/people/′)as?url_user2

where{}

与之类似,对XML数据的查询可以通过内嵌函数XPATH()实现。函数XPATH()的参数包括:XML数据源的URL和需匹配的XPATH表达式。函数xpath()将返回XML数据源中与xpath表达式相匹配的元素。将结果与SPARQL查询中的变量相绑定,生成RDF图。

利用CORESE的上述功能,可将XML格式和关系型数据库存储的社会数据封装为RDF格式的数据。使用add子句代替construct子句,可以将封装好的RDF数据加入已有的社会网RDF语义图模型中。

4 在线社区社会语义网络分析

在在线社区社会语义网络表示的基础上,首先根据社会网络分析指标的定义,使用SPARQL语言描述待检索的社会网络分析指标,然后通过CORESE搜索引擎完成对在线社会网络RDF图的检索分析。在分析过程中,可以利用社会数据属性的层次结构实现对分析粒度的控制,利用属性路径的检索实现整体网分析。

4.1 社会语义数据的属性层次结构

在线社会网络中,社会数据含有丰富的类型信息,如用户类型、关系类型和生成内容类型等。这些类型存在语义上的层次结构,不同层次的类型具有不同的分析粒度。使用SPARQL描述网络分析的查询语句时,可以利用社会数据的属性层次结构控制分析的粒度。如图3所示,用户Jack所在的社会网络中存在多种类型的关系属性。关系属性的层次结构可以用树状结构表示。根节点know属性具有最大分析粒度,层次越高的属性具有的分析粒度越小。分析粒度不同将得到不同的分析结果。根据示例中的关系层次和图结构,如果分析网络中的know属性,Jack的节点度为5;若仅考虑家族关系,Jack的节点度则为3。

Figure 3 Combination of type hierarchy structure and the graph structure图3 类型层次结构和图结构的结合

4.2 社会语义数据的属性路径检索

对在线社会网络的RDF图模型进行网络结构分析需要借助于图的路径信息。在RDF图模型中,节点通过属性进行链接,所以节点间的路径取决于属性。由一组属性序列构成的路径称为属性路径。RDF图的路径检索通过属性路径匹配实现。属性路径匹配可形式化表示为:

其中,G=(EG,RG,nG,lG)表示RDF图模型;EG表示实体的点的集合;RG表示关系的集合;nG:RG→E*G表示关联函数,将关系与有限实体相关联;若nG(r)=(e1,…,ek),则niG(r)=ei表示关系r的第i个参数;lG:EG∪RG→L表示实体和关系的标签函数;reli,i+1表示属性序列中的第i+1个属性。

本文使用CORESE语法规定的正则表达式来描述属性路径。在CORESE语法中定义了描述路径的正则表达式操作符,正则表达式操作符及其含义如表1所示。

Table 1 Regular expression operator in CORESE表1 CORESE中的正则表达式操作符

属性路径是正则表达式操作符与待检索属性的组合,例如表达式“foaf:knows*/rel:works-With”表示以零个或以上的foaf:know属性开始且以rel:works属性结束的属性路径。属性路径的长度计算通过函数length()实现,路径的长度可以作为检索的过滤条件,如使用“filter(path-Length($path)<=5)”表示所查询的路径长度不超过5。CORESE中定义了描述路径特征的可选参数,其中,‘i’表示路径的可逆属性;‘s’表示一条最短路径;‘sa’表示所有最短路径。这些参数用于表示路径的正则表达式前。例如,在上述例子加入路径特征,检索所有满足正则表达式所描述属性的可逆最短路径,其表达式为“i sa foaf:knows*/worksWith?y”。

4.3 参数化社会语义网分析

通过参数可以实现社会网络分析指标的语义约束,参数化社会网络分析指标形式化表示为:SNA_Indice〈properties,contants〉(object)={description}其中,SNA_Indice表示待分析指标的名称;〈properties,constants〉表示参数集合,包括用户的类型、社会关系等属性参数和常数参数;object表示待分析的对象;description表示对该指标的详细描述。

根据参数化社会网络分析指标设计相应的SPARQL查询语句,可以直接实现在线社会语义网络分析。下面以计算中间中心度为例,简述语义网分析的过程。根据Freeman的定义[10],假设节点i和节点j之间的最短路径数用gij表示,经过第三点k的最短路径数用gij(k)表示,则节点k对节点对(i,j)的中介能力用中间度bij(k)表示。bij(k)为k处于i和j的最短路径上的概率,用参数化网络分析指标可将节点k的中间度表示为:

其中,〈type〉表 示 指 定 的 网 络 类 型,gcount〈type〉(k,from,to)是最短路径数gij(k)的参数化表示,gcount〈type〉(from,to)是最 短 路 径 数gij的 参 数 化 表示。可以使用相应的SPARQL查询计算出节点k的中间度值。

节点k的中间中心度CB(k)等于节点k相应于图中所有的点对的中间度之和,可表示为:

最后,将SPARQL检索结果中的非0值相加,便得到参数化的中间中心度Cb〈type〉(b)。后期处理的算法如下:

5 社会语义网分析示例

本节以朋友网部分用户构成的社会网络为例,演示社会语义网分析具体情况。实验数据集取自朋友网,通过网络爬虫工具收集了含有用户个人信息和用户网络关系信息的网页,并从中提取用户相关数据进行语义处理。获取的数据集包含了3 566个参与者,参与者组成的网络中存在179 592个关系。关系类型分为三种:家庭关系类型、朋友关系类型和其他关系类型。本文详细考察的家庭关系包括:父子关系、兄弟关系和配偶关系等;朋友关系中考虑relationship本体中定义的密友关系和熟人关系;其他关系中包括了除上述家庭和朋友关系以外的关系类型,如师生关系、雇佣关系等。

首先,根据类型的不同,实验分析了三类网络的规模、密度和直径等网络结构特点。原始网络、家庭关系网络、朋友关系网络和其他关系网络的参与者数量、关系数量以及网络密度、直径等分析数据如表2所示。

Table 2 Parameter contrast of different networks表2 不同类型网络的参数对比

从实验数据可以发现,家庭关系网络参与者仅占整体网络参与者的13%,家庭网络密度小且网络直径大。这是因为在线社会网络中年轻人的比例大,而家庭亲属网络需要通过年长的参与者进行联系。与家庭关系网络相比,朋友关系网络和其他关系网络具有较高的密度和较小的直径。数据反映了不同类型的网络具有不同的特征。因此,通过SPARQL查询的语义约束,可以分析出不同粒度的网络特征。

实验对家庭网络和朋友网络的度数中心度分布进行了对比分析,这两种类型网络的度数中心度分布如图4所示。

Figure 4 Degree centrality distribution diagram图4 度数中心度分布图

图4中纵坐标N(K)表示度值为K的节点的数量,横坐标表示度数。结果表明,两种网络的度数中心分布都服从幂律分布特性,且大部分节点的度值集中于[1,200],但朋友网络中存在多个高中心度节点,最高度值可达701,而家庭网络中最高度值仅为216。实验证明,两种网络的度数中心度分布存在差异,使用基于语义网技术的分析方法能很好地区分出不同类型的网络,使得分析更精细。

最后,实验对网络的中间中心性进行了分析。整体网络的中间中心度分布如图5所示。

Figure 5 Betweenness centrality distribution diagram of the overall network图5 整体网络的中间中心度分布图

图5中纵坐标N(Dc)表示中间中心度值为Dc的节点数量,横坐标表示中间中心度值。整体网络中有3 365个节点中间中心度值在[0,523 499]内,其中有46个节点的中间中心度值大于100 000,这些点在网络中起着重要的中介作用。借助于本文的语义分析方法,可以对这些节点做进一步的分析。经实验分析,朋友网络中1 004个节点的中间中心度值分布在[0,148 225]内,其中有5个节点的中间中心度值大于100 000,如图6所示。

Figure 6 Betweenness centrality distribution diagram of friend network图6 朋友网络的中间中心度分布图

图6中纵坐标N(Dc)表示中间中心度值为Dc的节点数量,横坐标表示中间中心度值。这5个节点恰好包含于整体网络中中间中心度值较高的46个节点中。因此,可以推断这5个节点是利用家庭关系的链接为网络提供中介作用。

6 结束语

本文根据已有研究成果,利用RDF图模型和已有的本体描述在线社会网络,并利用CORESE的内嵌函数对非RDF数据进行语义封装,为在线社会网络的语义分析提供基础数据。利用SPARQL对在线社会网络的语义数据进行检索,设计了基于SPARQL的参数化在线社会网络分析语句。在分析过程中利用社会数据的属性层次结构实现分析粒度的控制,并通过数据的属性路径检索实现整体网络分析。最后,利用真实网络数据进行实验,说明了所提框架的可行性和适用性。将语义网技术引入在线社会网络表示分析过程中,有利于表达的准确性,有利于对在线社区作深入的分析理解。

[1] Bai Yu,Hong Lei.Multi-scale analysis and modeling of user session traffic in social networks[C]∥Proc of the 11th IEEE International Conference on Communication Technology,2008:85-88.

[2] Freeman L C,White D R,Romney A K.Research methods in social network analysis[M].Iroince:Transaction Publishers,1989.

[3] Adamic L A,Buyukkokten O,Adar E.A social network caught in the Web[J].New York:First Monday,2003,8(6):1-22.

[4] Mislove A,Marcon M,Gummadi P K,et al.Measurement and analysis of online social networks[C]∥Proc of the 7th ACM SIGCOMM Conference on Internet Measurement,2007:29-42.

[5] Mika P.Social network and the sematic Web[M].New York:Springer Press,2007.

[6] Finin T,Sleeman J.Computing FOAF co-reference relations with rules and machine learning[C]∥Proc of the 3rd International Workshop on Social Data on Web,2010:595-608.

[7] Kinsella S,Breslin J,Passant A,et al.Applications of semantic web methodologies and techniques to social networks and social websites[C]∥Proc of Reasoning Web 2008,2008:171-199.

[8] Liu Ling,Pu Calton,Han Wei.XWRAP:An XML-enabled wrapper construction system for Web information sources[C]∥Proc of the 16th International Conference on Data Engineering,2000:611-621.

[9] Corby O,Dieng-kuntz R,Faron-zucker.Querying the semantic web with the CORESE search engine[C]∥Proc of the 15th ECAI/PAI,2004:1-5.

[10] Freeman L C.Centrality in social network:Conceptual clarification[J].Social Networks,1979,1(3):215-239.

[11] Kochut K J,Janik M.SPARQLeR:Extended sparql for semantic association discovery[C]∥Proc of ESWC’07,2007:145-159.

猜你喜欢

网络分析语义节点
CM节点控制在船舶上的应用
基于ISM模型的EPC项目风险网络分析
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的门窗节点图快速构建
语言与语义
铁路有线调度通信的网络分析
2016年社交网络分析
“上”与“下”语义的不对称性及其认知阐释
抓住人才培养的关键节点
大班幼儿同伴交往的社会网络分析