基于关联数据的应用框架,提出一种构建用户语义模型的基本框架,设计用户语义模型,并对所提出的框架进行详细的分析。该框架主要包括两个方面:从LOD云中发现并获取与用户相关的关联数据的方法和策略;利用获取的关联数据构建用户模型的基本过程,包括概念映射、同一性解析、数据融合和模型生成几个步骤。
Based on the framework of Linked Data application, this paper prensents a semantic user modeling framework, and designs a semantic user model in the context of semantic Web, then analyzes the framework in detail. This framework mainly consists of two parts: firstly, it discusses the methods and strategies for discovering and acquiring users data from the LOD cloud; secondly, it introduces the processes for constructing a user model using these data, which includes such steps as concept mapping, identity resolution, data fusion and model generation.
随着语义网的发展,用户建模方式开始从传统的基于用户兴趣的关键词或主题标识的用户文档(User Profile)建模方式向基于语义本体的方式转变。基于本体的用户模型主要是利用语义网中的概念和词汇来表示用户的特征,并通过概念的语义关系拓展用户的兴趣。自2006年Berners-Lee[ 1]提出关联数据以来,关联数据已经成为推动语义 Web 发展的重要力量,如何构建基于关联数据的应用成为目前很多领域研究的热点。本文主要研究如何从关联开放数据(Linked Open Data, LOD)云中挖掘与用户相关的数据以及如何利用关联数据构建用户语义
模型的方法。首先,笔者设计了一种面向科研领域的用户语义模型;然后基于关联数据应用的基本框架和方法,提出了关联数据驱动的用户建模框架,并详细分析了其中的主要过程和方法。
就用户语义建模而言,利用关联数据构建用户模型的主要优势在于:关联数据作为一个巨大的数据中心,其中分布着与用户相关的大量数据,能够为用户建模提供丰富的数据来源;关联数据本身富含语义或至少已经以RDF/OWL数据格式存在,能够为构建语义化的用户模型提供极大的便利。同时,关联数据可以通过数据之间的关联发现与获取更多的用户数据或用户情境信息,支持动态扩展和丰富用户语义模型。
早在20世纪70年代,用户建模作为个性化服务的基础就开始得到研究和关注[ 2]。随着语义网技术的不断发展,基于本体的用户建模方法和技术逐步成为主流。对用户语义建模的研究很多,下面介绍几种具有代表性的研究。Razmerita等[ 3]首次提出了基于本体的统一用户模型的概念和框架OntobUM,该框架集成了三个本体,即用户本体、领域本体和日志本体,提升了个性化服务的质量。Niederée等[ 4]提出了UUCM(Unified User Context Model)统一用户模型,其通过“情境护照”(Context Passport)的概念和方法来抽取和聚合不同的个性化系统收集的用户数据,形成了一个可扩展的多维度用户模型。Heckmann等[ 5]提出了用户模型的通用本体GUMO(General User Modeling Ontology),来支持语义网环境下分布式用户模型的统一表示。Dolog等[ 6]提出了使用领域本体和用户本体在e-Learning环境中构建用户模型,通过Java APIs实现不同服务间的数据交换,共享不同的学习用户模型。
本体在用户模型表示中起到了重要的作用,然而一个良好的用户模型还需要丰富的数据源作为支撑。当前, LOD云图中数据集的数量已经达到326个,这些数据大约包含310亿个RDF三元组和5.04亿条数据源间的RDF链接[ 7]。这些RDF数据中存在很多与用户相关的数据,为构建用户模型提供了便利条件。如何利用关联数据中的用户数据来构建模型是本文需要考虑的主要问题。Latif等[ 8]利用Journal of Universal Computer Science(JUCS)和DBpedia实现了从开放数字杂志中来发现和构建作者的简介信息,并提出了CAF-SIAL概念集成框架。该框架包括三层结构:集成知识层(使用DBpedia、YAGO和UMBEL本体进行资源的识别和分类)、属性集成层(使用DBpedia属性知识库识别资源类型)和推理面层(将人物信息分为不同的信息面)[ 9]。通过CAF-SIAL可以获取某一作者的介绍、照片、个人信息、职业信息、学术信息、发表作品等数据[ 10]。
从上述相关研究中可以看出,目前的用户建模技术主要是一种基于本体的用户建模。同时,关联数据作为语义网技术实现的主要方式,为用户语义建模开辟了新的路径。
本文在前人的研究基础上,提出了一种关联数据驱动的用户语义模型构建方法。该方法的基本思路如图1所示:
主要包括两个方面:用户语义模型的设计和关联数据的应用。用户语义模型由用户本体和兴趣本体组成,其中用户本体主要描述用户的基本信息,兴趣本体突出体现用户的兴趣;关联数据的应用主要指从LOD云中提取关于用户的基本信息(Web of Users)和领域信息(Web of Domain)以及利用获取的用户关联数据填充用户模型。用户语义模型实例数据还可以进一步发布成关联数据,鉴于本文主要关注用户语义模型的构建,对用户模型的实例数据的发布暂时不作研究。
本文的重点在于探讨如何利用关联数据构建用户语义模型的一般过程和方法,为后续研究和行文方便,在相关研究基础上,这里先提出一种基本的用户语义模型。
语义网背景下的用户模型,其实质是一种本体模型。基于本体的用户模型,具有支持建立用户兴趣的概念层次结构和支持逻辑推理的能力,能够更好地实现用户知识的规范化重用和共享。目前,已经有很多用户模型采用本体来达到语义表示的目的,如Quickstep系统[ 11]和Foxtrot系统[ 12]、U-Sem[ 13]、GUMO[ 5]等。在这些研究基础上,本文初步提出面向科研领域的用户语义模型,如图2 所示:
该用户语义模型由用户本体和兴趣本体组成:
(1)用户本体
为了识别不同的用户,用户本体中设置了不同的属性来标识用户。其中,“ID”主要用来对用户进行唯一标识,是互联网上用户身份识别的依据。由于构建用户模型主要是为了在个性化系统中得以应用,比如在个性化推荐系统中,可以通过邮箱向用户推送他们感兴趣的信息,所以用户本体中还设置了“邮箱”属性。用户的“工作单位”主要是对用户的一种描述,使用户的形象更加具体。
(2)兴趣本体
主要用来表征用户感兴趣的事物,是用户模型的主体部分。个性化服务的关键是针对不同用户提供他们感兴趣的不同信息和服务,用户兴趣表示的准确与否就显得至关重要。因此本文对用户兴趣进行了细分,包括“感兴趣的人”、“感兴趣的主题”、“感兴趣的事件”。科研人员的活动主要包括参与的项目、参加的会议以及发表的论文,通过这些科研活动,可以从中提取出用户的兴趣概念。比如,通过项目、会议、论文的主题可以推断出用户感兴趣的主题和事件;通过项目成员、论文的合著者可以推断出与该用户有关联的其他用户,进而由这些有关联的用户所具有的兴趣特征可以推断出该用户感兴趣的主题和事件,这是对用户兴趣的一种扩展。
该简单用户语义模型中包含的实体类和属性说明如表1所示:
基于关联数据构建用户语义模型的关键在于如何利用关联数据来填充用户模型。本文根据关联数据应用的一般框架[ 14],结合用户建模的过程,提出了关联数据应用于用户建模的框架,如图3所示:
其主要环节包括:
(1)筛选数据源:从LOD云图中筛选出可用的数据源,关键是找出包含用户信息(个人基本信息和兴趣等)的数据源。
(2)获取用户数据:根据用户模型框架中的信息需求,可以通过构建SPARQL查询语句或者以RDF Dump方式来直接下载获取用户关联数据。
(3)构建用户模型:对获取的用户数据进行概念映射、同一性解析和数据融合的处理,最终生成用户模型。
关联数据中的用户数据是构建用户模型的基础,它的质量影响着后期关联数据的聚合和用户模型的填充。选择合适的数据源并且从关联数据集中发现并获取与用户相关的数据,是关联数据驱动的用户建模需要考虑的首要问题。就科研领域用户建模而言,用户数据源的筛选与学科领域有较大关系。这里以计算机科学领域为例,从LOD云图中的数据可以发现,DBpedia、DBLP、ACM等数据集中都包含有大量该领域的用户数据,其中DBpedia中的person类有764 000个[ 15],占总资源的32.51%,是用户语义建模数据来源的良好选择。
常用的关联数据获取方法有语义网导航、语义网搜索、关联数据爬虫抓取、RDF Dump 文件下载和SPARQL查询等方法。对各种方法的优缺点以及应用实例做简要说明,如表2所示:
对于关联数据来说,很多数据源已经提供了SPARQL查询端点,可以直接构建SPARQL查询语句获取用户数据。对于没有提供SPARQL端点的数据源,可以直接下载RDF Dump文件来获取用户数据。以SPARQL查询方式获取DBpedia中用户数据为例,构建SPARQL查询语句,代码如下:
PREFIX foaf:
SELECT *
WHERE {
?person foaf:name ?name.
}
LIMIT 10
该查询语句可获得用户名称为主的用户数据,得到的查询结果如表3所示:
在实际应用中,可根据数据源的数据特点及应用需求,构造复杂的SPARQL查询来获得需要的数据结果。
尽管从LOD云图中获取的用户数据本身已经是RDF格式,但要构建符合要求的应用,还面临三个方面的问题[ 22]:
(1)各数据源利用不同的本体或术语来描述相同的实体,存在术语多相性(Vocabulary Heterogeneity)问题。
(2)相同的实体,比如人或地名等,在不同的数据源中被不同的URI所标识,这类情况也称为URI别名(URI Aliases)。
(3)来自不同数据源相同实体的属性值可能出现冲突。
如果没有意识到每个数据源本体的特殊性,那么就无法充分利用来自该数据源的数据。因此,为使得数据具有可用性,必须进行数据的集成。Schultz等[ 23]将数据集成分为词表映射(Vocabulary Mapping)、同一性解析(Identity Resolution)、质量评估(Quality Assessment)、数据融合(Data Fusion)几个步骤。针对本文需要,在构建用户模型中主要涉及以下几个方面:
(1)概念映射
来自不同关联数据源的相同实体常常被不同的概念所描述[ 24],而关联数据应用通常需要向用户提供纯粹的、一致性的数据,因此需要将概念进行规范,将不同概念映射到满足应用要求的目标模式。目前,对概念进行映射的方法很多。RDF Schema及OWL 只提供词汇间的简单映射关系,而SPARQL++[ 25]、Alignment API[ 26]、规则互换格式(Rules Interchange Format, RIF)及映射语言[ 27]等则提供更复杂的转换,包括结构转换(例如将两个不同的数据源合并)、值转换(例如分割字符串值)等。R2R框架[ 28]提供一种类似于SPARQL查询语言的R2R 映射语言,它是关联数据集成框架(Linked Data Integration Framework, LDIF)[ 22]中的一部分,可以将数据源中描述相同实体的不同概念词汇映射到满足一致性条件的单一概念词汇当中,不仅支持简单的一对一(1∶1)映射还支持一对多(1:n)和多对一(n:1)的映射。举例说明概念映射的过程,如图4所示:
从LOD中的FOAF和DBpedia中抓取到用户的关联数据,FOAF中关于人的描述为foaf:Person,而在DBpedia中关于人的描述为dbpedia-owl:person,这时通过同等类的关系owl:equivalentClass就可以把dbpedia-owl:person映射到FOAF中的foaf:Person类;同时DBpedia中的属性dbpprop:name可以通过同等属性关系owl:equivalentProperty映射到FOAF中的属性foaf:name。
(2)同一性解析
不同的关联数据源常常包含指向相同实体的不同URI,因此,为简化局部数据处理,通常需要进行URI别名解析(URI Aliases Resolution),用单个URI来标识所有相同的实体,这一过程称为同一性解析(Identity Resolution)。
对于从LOD云图获取的用户关联数据来说,Silk 链接发现框架(Silk Link Discovery Framework)[ 29]可以用来进行URI别名解析,它是一个被集成到LDIF框架[ 22]中的开源工具,通过找到各数据源中指向同一实体的不同URI并将各数据源中不同的URI归一到用户设置或预定义的单个目标URI。Silk链接发现框架通过声明Silk链接描述语言 (Link Specication Language,Silk-LSL)设置框架的别名解析方式,它可以设置一种或多种相似度衡量(Similarity Metrics)方法来判定两个URI是否指向同一实体,比如通过字符串、日期、URI比较并输出各自的相似度评分,然后进行加权得出最终评分结果,基于评分结果进行URI替换,并添加owl:sameAs指向源URI,以达到同一性解析的目的。如图5所示,在DBpedia中关于Tim Berners-Lee有三种不同的URI表示,但都指向同一实体,对这三种不同的URI进行同一性解析,可以得到“Link1=Link2=Link3=Tim Berners-Lee”的结果。
(3)数据融合
数据融合是指在概念映射、同一性解析的基础上,解决存在于各数据源中的值冲突问题的过程。Dong等[ 30]将数据融合定义为“将表示同一对象的多条记录融合成单个的、一致的、纯粹的表示”。目前,DERI Pipes[ 31]和KnoFuss架构[ 32]各自提供了解决数据融合问题的方案。开源LDIF的Sieve[ 33]中也集成了数据融合模块,它提供了过滤函数和转换函数这两种数据融合方法。过滤函数根据数据质量评估得出的评分,能够过滤掉不可靠信息或无关信息,保留较高质量的数据;转换函数则将初始提供的值转换成用户能够理解的形式。
从LOD云图中获取的用户数据本身已是RDF格式,可以直接通过语义Web技术进行融合处理,其大致过程如图6(a)所示,主要是将来自不同数据源的数据融合为一个具有新的关系的数据模型。RDF提供了一种灵活的、可扩展的数据模型,使得数据集组合到一个公共数据模型的工作更为简便。以FOAF和DBpedia为例,如图6(b)所示,从DBpedia和FOAF中都获得了用户的姓名、邮箱等信息,并且这些数据也经过了概念映射处理,进行去重和一致化融合可以获得纯粹的用户数据。
(4)用户模型生成
经概念映射、同一性解析、数据融合之后,可以得到纯粹的、一致性的用户关联数据,在此基础上生成用户模型。
①从融合后的关联数据中提取出用户基本信息,主要包括用户在网络中的唯一标识URI、工作单位、姓名、邮箱等信息,这些信息的描述可以通过Dublin Core、FOAF、DBpedia中定义的概念来描述。
②从关联数据中提取用户兴趣,主要包括感兴趣的人、主题、事件等,同样信息的描述可以通过FOAF本体中定义的概念来描述。
③合并用户本体和兴趣本体,最终生成用户语义模型。生成的用户模型可以根据应用系统的需要进行存储和调用。
使用RDF来表示设计的用户语义模型,描述用户的姓名、邮箱、工作单位、OpenID、感兴趣的事件以及与Tim Berners-Lee有联系的人。通过从DBpedia和FOAF中抓取关于Tim Berners-Lee的数据,经过概念映射、同一性解析、数据融合处理,最终生成关于Tim Berners-Lee的用户模型,代码如下:
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:owl="http://www.w3.org/2002/07/owl#">
关联数据驱动的用户建模框架是语义网背景下的一种新的建模方式,该框架提出了如何把关联数据与用户建模结合起来的一种思路。框架最终形成的用户模型其实质是一种本体模型,其中关联数据的利用是构建用户语义模型的关键。关联数据的数据源选取是基础,影响着后续数据的处理和模型的填充过程;概念的映射、同一性解析和数据融合技术的自动化实现是需要继续研究的问题。本文只是提出了关联数据驱动的用户建模的框架,后续的研究主要集中于如何具体实现每个过程。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|
[21] |
|
[22] |
|
[23] |
|
[24] |
|
[25] |
|
[26] |
|
[27] |
|
[28] |
|
[29] |
|
[30] |
|
[31] |
|
[32] |
|
[33] |
|