APP下载

基于大数据的个性化高校科研资源服务系统设计

2021-03-07刘冬邻

电子技术与软件工程 2021年24期
关键词:引擎个性化资源

刘冬邻

(四川外国语大学 重庆市 400031)

如今,从科研项目的前期筹划到项目申报、项目过程管理、科研协作、项目结题管理等科研流程都是基于互联网+信息系统的管理和运作模式[1]。科研活动无时不在快速的产生海量数据。大数据、云计算、机器学习为获取科研资源提供了便利,营造了便捷、高效的科研交流环境[2]。

高校科研用户在整个科研过程中,查阅科研文献获取数据的时间超过整个过程的一半以上,个性化资源需求复杂多样,但大多数老师获取所需科研资源的能力不足[3]。目前建设的各类高校科研管理系统和资源服务平台功能简单且单一,只能接受用户关键字信息查询检索,用户个性化的科研资源需求得不到满足[4-5]。本文即以某外语高校为例,研究高校科研资源个性化服务需求,探讨个性化科研资源服务系统的架构设计和实现。

1 功能需求

个性化高校科研服务系统的主要功能就是基于科研用户对科研数据的获取需求,采用大数据、用户画像、机器学习、数据挖掘等技术从分布于学校各单位的相关科研数据库中抽取满足需求的数据;对数据进行预处理以保证数据的正确性、一致性和有效性;分析并将数据整合进系统业务数据库中;在这些科研大数据支撑的基础上,通过架构的系统融合推荐引擎,分析科研用户对各种科研资源的兴趣度,为高校科研用户提供个性化的科研数据服务。

通过对学校师生进行问卷调研,总结出高校科研资源个性化服务的主要应用场景为:没有注册过或注册过但本次不登录的用户,进入系统后浏览科研资源项目;没有或只有较少系统使用记录的注册用户登录系统;有较多系统使用记录的注册用户登录并使用系统。在这些场景下,系统将基于不同的个性化推荐策略,采用不同的算法和模型实现个性化推荐引擎,满足用户的个性化科研资源服务需求。

2 系统架构设计

本文是基于以MapReduce、HDFS、HBase、Hive 为核心的Hadoop 技术框架和传统的三层推荐系统架构,进行个性化高校科研服务系统架构设计[6-7]。

由于推荐策略的复杂性,如果要在一个系统中把各种用户特征(用户属性:性别、专业、学历、职称、研究方向等,用户行为特征:浏览、点赞、下载等。)、资源项目特征(比如著作属性:包括作者、出版社、项目来源等)和环境因素等都综合考虑,系统将变得庞大而复杂[8]。因此,本系统被设计为由多个推荐引擎组成,每类推荐引擎负责一类特征和一种任务,通过整合多个推荐引擎的召回结果,按照一定权重或优先级合并、过滤、排序然后呈现给用户。多引擎融合系统架构如图1。

图1:多引擎融合系统架构

3 数据分析与处理

系统主要使用到用户数据,资源数据,情景数据。用户信息是个性化推荐的主要依据,高校科研用户数据可以分为基本信息数据和行为数据两大类。基本信息主要包括用户的基本属性和相关特征信息;行为数据是指用户在使用系统时产生的使用日志数据,是获取用户兴趣进行智能推荐的重要数据源。情境数据是与服务应用场景相关的数据。资源大数据是高校科研管理系统中的各类科研成果,比如:著作、论文、项目课题、专利等数据。

依据个性化服务系统的系统架构和功能需求,设计用户数据模型、科研资源数据模型、用户行为数据模型以及用于表示各种数据之间关系的关系数据模型。将分布在不同信息系统中的科研资源数据、科研用户数据、情境数据和用户行为数据从各个业务系统数据库中抽取、融合、同步到个性化推荐系统的MySQL 数据库中,并在用户基本信息数据,用户行为数据,资源数据和情景数据之间建立联系。选取系统需要字段,进行One-Hot 编码,建立科研用户基本信息表(见表1),各种科研成果信息表,如科研论文信息表(见表2)、用户行为信息表(见表3);相关信息编码表如语种、用户标签编码信息表等。

4 个性化推荐算法选择

推荐算法是个性化服务系统的核心,基于设计的高校科研大数据个性化服务系统的架构和系统的功能模块,在实现系统业务流程中,需要使用项目热度推荐算法、采用TF-IDF 获得项目特征向量从而进行基于内容相似度的推荐算法、基于UserCF 的推荐算法来构建系统的各类推荐引擎。

4.1 基于热度推荐

系统在刚上线或者用户刚开始使用时,系统是无法向用户提供个性化服务的。无论是基于用户行为的个性化,还是基于内容相似度的个性化,都是建立在有大量用户行为的基础上。此时采用更加聚合的“热度算法”,就是把大家喜欢的内容优先推荐给用户。虽无法做到基于兴趣和习惯为每一个用户进行精准的推荐,但能将本专业用户当前关注的热点资源推荐给用户,同时解决了系统和用户冷启动问题[9]。

考虑科研项目热度随着时间衰减的趋势是呈指数增长的,本文采用结合牛顿冷却定律改进后的项目热度计算方法。

4.2 基于内容推荐

基于内容推荐是基于项目和用户相关信息以及用户对项目的操作行为,构建推荐算法模型,为用户提供推荐服务。可以将各种科研资源项目,映射到某个向量空间,有了资源的向量化表示,就可以通过余弦相似度计算两个项目之间的相似程度,然后将与用户曾经操作过的项目相似的项目推荐给用户

本系统的推荐对象是非结构化的科研资源和成果文档,无法将其直接映射到向量空间。我们主要根据包含项目核心信息的项目文档标题进行个性化推荐,利用TF-IDF 方法,从资源项目标题中获取关键词,构建资源关键词向量。TFj,Di表示词条j 在文档Di中的出现频率,IDFj表示词条j 在文档集合中的区分能力,最终词条j在文档Di中的TF-IDFj,Di值可以根据公式(1)计算得到[10]。

根据得到的每个词条的TF-IDF 值,就可以构建每个项目的词向量,进而使用该向量计算项目间的余弦相似度。

4.3 基于UserCF推荐

基于UserCF 推荐就是基于用户的历史行为数据,计算两个科研用户的兴趣相似度,找到和目标用户兴趣相似的用户集合,进而找到集合中的用户喜欢且目标用户没有使用过的资源推荐给用户[11]。该算法的核心是要构建高校科研用户和科研资源项目的关系矩阵。首先根据用户是否点击浏览或下载科研资源文档,构建用户向量,向量的维度就是项目的个数,向量维度项的取值为1 表示用户打开浏览或下载过资源项目,取值为0 表示用户没有进行相关操作即用户对该资源不感兴趣,根据建立的用户向量建立用户和项目关系矩阵。知名专家、教授的资源项目会成为大家都关注的热门,但不意味着这些用户兴趣就相同,因此本文采用了对热门项目进行惩罚的兴趣相似度公式(2):

其中,N(e)、N(f)分别表示用户e 和用户f 浏览或下载过的科研资源集合。

表 1:科研用户基本信息表

表 2:论文成果信息表

表 3:用户行为信息表

根据用户兴趣度模型公式(3),把和目标用户相近的用户喜欢的科研资源项目汇总起来,去掉用户已经浏览或下载过的项目,将剩下的项目排序后便可推荐给目标用户。

其中,n 是和用户e 相似的用户总数,sime,f是用户u 和用户f的相似度,Rf,i是用户f 对项目i 的评分,Pe,i为预估用户e 对项目i的评分。

5 系统推荐引擎实现

5.1 热度推荐引擎

当未注册用户和首次登录的注册用户使用系统时,系统面临用户“冷启动”问题,本文采用热度推荐策略,将各学科当前热度值较高的资源项目推荐给这类用户,主要实现代码如下:

5.2 相似资源项目推荐引擎

该模块使用Python 的jieba 库作为分词工具,对资源文档标题分词然后做去除停用词处理,通过计算单词的TF-IDF 值,构造标题关键词向量,主要实现代码如下:

5.3 基于用户协同的推荐引擎

该模块采用通过惩罚热门项目和建立项目用户倒查表优化算法计算复杂度的方式,进行优化的User-CF过滤算法,计算用户相似度,构建用户相似矩阵,计算目标用户对项目的兴趣度,主要代码如下:

6 结语

基于当今科研管理和服务平台功能单一,不能将用户感兴趣的资源主动推荐给用户的现状。分析了高校科研资源个性化服务涉及的数据源,从各相关数据库抽取所需数据;经过数据预处理再融合进MySQL 数据库引擎;选择并优化了所需推荐算法;设计并实现了多引擎融合推荐系统架构。系统实现了基于多种推荐策略的科研资源推荐,提高了资源利用率。

本研究还可为科研大数据的实时抽取、整合设计科学高效的数据仓库;基于组件和服务的思想为其它应用设计API 接口。

猜你喜欢

引擎个性化资源
基础教育资源展示
一样的资源,不一样的收获
资源回收
新闻的个性化写作
资源再生 欢迎订阅
上汽大通:C2B个性化定制未来
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
满足群众的个性化需求
One Engine Left只剩下一个引擎