基于本体的个性化推荐系统研究与实现

2018-03-19 17:08董林林杨传龙黄学波
电脑知识与技术 2018年4期
关键词:个性化推荐协同过滤公共文化服务

董林林 杨传龙 黄学波

摘要:在大数据、云计算、数据挖掘、人工智能等现代网络技术的飞速发展的科技背景之下,公共文化服务平台的建设缺乏互联网新技术的应用,网站服务不够便捷,不能更好的把握用户需求,不能为公众提供更优质的的公共文化服务。尤其是,当前公共文化服务平台的建设缺乏对个性化服务的集成,不能有效的满足用户的个性化需求。针对此问题,该文提出在公共文化服务集成平台中集成协同过滤技术为用户提供个性化活动推荐,同时基于知识本体,利用本体在语义查询扩展方面的优势为用户提供当前浏览活动相关的文化资料推荐。

关键词:公共文化服务;个性化推荐;协同过滤;本体

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)04-0247-03

Research And Implementation Of Personalized Recommendation System Based on Ontology

DONG Lin-lin, YANG Chuan-long, HUANG Xue-bo

(School of Computer Engineering, Qingdao Technological University, Qingdao 266033, China)

Abstract:In big data, cloud computing, data mining, artificial intelligence and modern network technology the rapid development of science and technology under the background of application, the construction of public cultural service platform for the lack of new technology of the Internet, web service is not convenient, can better grasp of user needs, can provide better public cultural services for the public. In particular, the current construction of public cultural service platform lacks the integration of personalized services, and can not effectively meet the user's personalized needs. Therefore, to solve this problem, this paper proposes integrated collaborative filtering recommendation to provide users with personalized activities in public cultural service integration platform Based on knowledge, ontology, semantic query expansion in the advantage of providing the information related to the current browsing activities for users to recommend the use of ontology.

Key words: Public cultural services; Personalized recommendation; Collaborative filtering; Ontology

1 概述

現如今,为满足人们的个性化需求,个性化推荐技术已经广泛的应用在电子商务、社交网络、各种视频音乐网站等领域,例如 Amazon,淘宝,豆瓣等,都在不同程度上采用了个性化推荐系统[1]。由于个性化推荐技术能够很好的满足用户个性化需求,能够发掘用户潜在兴趣,因此,将个性化推荐服务集成到公共文化服务平台显得尤为重要。

2 个性化推荐系统总体架构

综合分析公共文化服务集成平台的用户需求以及实际应用场景,本文提出个性化推荐系统包含包含两部分:一是针对文化活动的推荐,二是针对当前用户浏览的文化活动内容而进行的文化资料的推荐。

对于文化活动的推荐着重突出个性化,强调用户兴趣偏好。因而需要利用用户的历史浏览行为数据,然后利用协同过滤推荐技术给用户进行文化活动推荐;对于文化资料的推荐着重突出文化活动主题相关性,期望做到的是推荐与当前活动主题具有语义相关的文化资料。

综合分析,本文提出的个性化推荐系统总体框架设计如图1所示。

其中,个性化活动的推荐采用协同过滤技术实现,首先通过收集用户的行为数据,比如用户的活动点赞数据、收藏活动的数据、参加活动记录数据等,形成用户的偏好模型,也就是用户-活动评分矩阵,然后应用协同过滤算法给用户进行活动推荐。在用户浏览文化活动详情时,系统会根据用户当前浏览的活动主题利用本体进行语义扩展,查询检索出与当前浏览活动相关的文化资料推荐给用户。

3 基于协同过滤的文化活动推荐

协同过滤推荐主要是利用群体的观点为当前活动用户来产生推荐项目,借助过去的用户行为记录,计算各个用户之间兴趣偏好的相似度,找出与当前用户兴趣偏好接近的邻居用户,并通过这些邻居用户组成的相似用户组的建议来产生对当前用户的推荐[2]。在文化活动的推荐中,协同推荐可以为当前用户找到有着相似兴趣背景或者相似文化需求的用户群体,通过相似用户群体推荐得到相关文化活动。

基于协同过滤的个性化推荐系统一般由三个模块组成:用户建模模块、推荐对象建模模块、推荐算法模块[3]。其中,用户建模模块也就是收集用户偏好信息的过程,数据收集是个性化推荐系统的基础[4]。

在本文的设计中,用户偏好信息的收集主要来自于用户的行为数据,比如对文化活动的点赞、收藏,参加某类文化活动等。然后根据提前设置好的打分机制,例如用户收藏了一个活动,则设置相应的评分为二等,形成用户-项目评分矩阵,也就是用户偏好模型。

其中,具体推荐过程步骤如下:

1) 用户进入系统平台中,系统平台会收集用户的行为历史数据,比如参加文化活动记录、活动点赞记录、活动收藏记录,这些数据记录表明了用户的喜好;

2) 系统根据预先设置的评分机制,生成用户-活动评分矩阵;

3) 开始推荐算法流程,利用公式计算用户的相似度,找出相似度最高的N个用户最为最近邻居集,利用最近邻居集进行评分预测,按预测评分排序,得到推荐结果,将结果呈现给用户。

4 基于本体的文化资料推荐

文化资料主要是针对用户当前浏览的文化活动来进行的文化资料的推荐,该模块涉及到自然语言处理(NLP)、本体语义查询扩展以及信息检索等相关技术。基于本体的文化资料推荐分为三大部分:活动主题关键词获取、基于本体的查询扩展、资源检索模块,其推荐流程如图2所示:

图2 基于本体的文化资料推荐流程图

4.1 活动主题关键词获取

在基于本体的文化资料推荐中,首先需要利用自然语言处理技术进行分词处理。经过分词处理得到了一个词组,但是并不是每一个词都是关键词,其中往往包含很多语气词、助词等,而该类词并不具有语义信息,因此并不能作为关键词。同时,在分词之后下一步需要对关键词进行扩展,如果对所有的词都进行关键词扩展的话,必然会影响效率,提升处理的复杂度,尤其是如果活动标题过长,进行完全关键词扩展的话影响时间过长,影响用户体验。

因此,需要以某种方式进行关键词过滤。一般来说,通常是按照词性来进行处理,词性的分类有很多,有很多词并没有实际意义,比如“叹词”、“语气词”等,这部分词不包含语义信息,因此本文采用根据词性对关键词进行筛选的方法,在分词的结果中,我们会对词性进行标注,根据获取到的词性对所有关键词进行过滤,主要保留名词、动词、形容词,然后得到一个词项集合。分析发现,其中仍然会包含有一些无意义的词项,因此本文在上述处理的基础上,再采用停用词库过滤的方法进行二次关键词过滤,该停用词库,可以由用户自己维护。

4.2 基于本体的查询扩展

目前在信息检索系统中,大部分都是基于关键词进行查询的,首先获取用户需要查询的关键词,然后自动进行查询扩展,对扩展后的结果进行检索,扩展方式通常采用同义词扩展法,也就是利用同义词词典、近义词词典进行扩展。

虽然基于关键词的查询扩展虽然在很大程度提高了资源检索的效果,但因为传统的查询扩展是在符号匹配的层次上进行扩展,它是以查询词为中心,机械地进行字符串扩展,从而忽略了查询词语义信息以及查询词与其它概念之间的语义关联,因此用户查询意图得不到充分表达。

由于本体能全面的、精确地描述和定义概念及概念之间的关系,具有较强的语义表达能力,能较好的理解用户的语义意图[5]。因此,为解决上述问题,在获取活动的主题关键词组之后,下一步需要利用本体处理相关技术对其进行优化处理,也就是所说的查询扩展。为了对本体概念相关内容扩展,本文首先考虑利用本体中的层次结构关系来进行处理。查询中常用到的本体中出现的关系有:

同义词关系:扩展概念为查询概念的同义词;

父子关系:扩展概念与查询概念是本体层次结构中的父子节点;

子树节点:扩展概念是查询概念的子树上的节点;

兄弟节点:扩展概念是查询概念的兄弟节点,有相同的父节点;

兄弟子树节点:扩展概念是查询概念的兄弟子树上的节点;

本文主要考虑的是对父子关系节点来对查询概念进行扩展,因为在本体层次结构中父子关系是最为普遍的,也是最为容易获取的。其处理流程为:

1) 对获取的活动主题每个关键词,判断它是本体中的概念、实例还是属性;

2) 若均为概念或者实例,则主要利用本体结构中的父子关系进行扩展,也就说查找其上位词以及下位词;若存在属性,则利用属性和概念之间的关系,根据属性查找相关的实例;

3) 将扩展结果保存,以便后续进行文化资源信息的检索。

4.3 Lucene资源检索模块

文化资源的检索模块的实现采用了基于Java的Lucene全文检索引擎工具包。Lucene作为一个优秀的全文检索引擎,其系统结构具有强烈的面向对象特征。首先定义了一个与平台无关的索引文件格式,其次将系统的核心组成部分设计成抽象类,具体的平台实现部分设计为抽象类的实现,此外与具体平台相关部分比如文件存储也封装为类[6]。因此,Lucene可以很方便的应用到各类系统中。

利用Lucene进行文化资源的检索必然经过两个步骤:一是对平台中的文化资源进行创建索引,二是对上一步利用本体进行语义扩展的关键词词組进行检索。下面给出各个步骤的具体实现。

利用Lucene对文化资料建立索引需要经过定义词法分析器、确定索引文件位置、创建IndexWriter、进行索引文件的写入存储等过程,相关核心代码为:

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);

Directory dire = FSDirectory.open(new File(Constants.INDEX_STORE_PATH));

IndexWriterConfig iwc=new IndexWriterConfig(Version.LUCENE_4_10_2,analyzer);

IndexWriter iw = new IndexWriter(dire, iwc);

LuceneIndex.addDoc(iw);

iw.close();

以上是索引的创建过程,利用关键词进行文化资料的查询过程,包括打开文件存储位置、创建搜索器、进行关键词查询等步骤,核心代码如下所示:

Directory dire = FSDirectory.open(new File(Constants.INDEX_STORE_PATH));

IndexReader ir = DirectoryReader.open(dire);

IndexSearcher is = new IndexSearcher(ir);

TopDocs td = is.search(query, 1000);

System.out.println("共为您查找到" + td.totalHits + "条结果");

ScoreDoc[] sds = td.scoreDocs;

for (ScoreDoc sd : sds) {

System.out.println();

Document d = is.doc(sd.doc);

System.out.println(d.get("path") + ":[" + d.get("path") + "]");

System.out.println(d.get("name"));

System.out.println(sd.score);

}

5 结论

本文分析了公共文化服务集成平台集成个性化推荐服务的重要性,并给出了个性化推荐服务集成方案。基于现实用户使用场景分析,提出的个性化推荐服务包含两部分:文化活动推荐以及与该文化活动相关的文化资料的推荐。其中,对于文化活动的推荐采用基于用户行为偏好的协同过滤算法进行推荐;对于文化资料推荐,通过引入基于本体的查询扩展,解决文化资料检索过程中语义扩展问题。

参考文献:

[1] 冯蓓蓓. 个性化推荐系统综述[J]. 科技展望, 2017, 27(12).

[2] 程光华. 融合内容过滤和协同过滤的智能推荐系统[D]. 东南大学, 2010.

[3] 安维, 刘启华, 张李义. 个性化推荐系统的多样性研究进展[J]. 图书情报工作, 2013, 57(20):127-135.

[4] 沈西挺,董智佳.反映用户兴趣变化的协同过滤算法[J].计算机应用与软件,2013(6):295-297.

[5] 曾维明. 基于领域本體的语义检索及个性化推荐算法研究[D]. 南京理工大学, 2010.

[6] 潘志文, 邓丹君. 基于Lucene的web信息检索系统的设计与实现[J]. 软件, 2014(5):37-37.

猜你喜欢
个性化推荐协同过滤公共文化服务
政府公共文化服务的法理分析与法律构建
搞好公共文化服务,推动艺术普及