基于知识图谱的课程知识信息推荐系统的设计与实现
摘要: 随着在线教育平台的不断发展,在线教育推荐系统已经成为一项重要的技术和服务。知识推荐系统的成功,不仅提升了用户体验感,还为在线教育平台的多元化、广泛化发展开辟了新的前沿,这需要平台不断地创新,努力提高知识推荐系统的智能化和精准化,为用户带来更好的知识学习体验,更好地满足社会对知识的需求。
传统的个性化推荐方法主要包括基于内容的推荐算法、基于协同过滤的推荐算法以及混合推荐算法等技术。基于内容的推荐算法要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。基于协同过滤的推荐算法仍有许多的问题需要解决。最典型的问题有稀疏问题(Sparsity)和可扩展问题(Scalability)。混合推荐算法混合推荐需要考虑不同算法之间的权重分配问题,以及如何结合多种算法进行训练和评估的问题。
为进一步提高推荐系统在合理推荐方面的性能,将知识图谱引入推荐系统用于解决传统推荐问题的方法逐渐引起推荐领域研究者们的广泛关注,知识图谱以三元组的形式构建成一张巨大的网络结构,因此覆盖了推荐系统中大量用户一级项目的数据信息,通过知识图谱网络的连接,可以通过获取输入数据之间的连接,通过网络结构捕捉用户、项目之间的潜在关系,可以更好地提高推荐性能,同时通过知识图谱中节点与节点之间的连接,为推荐系统的可解释性方面也带来了一定的价值。
关键词:知识图谱,Flask,课程知识信息,推荐系统
Design and implementation of curriculum knowledge information recommendation system based on knowledge graph
Abstract: With the continuous development of online education platform, online education recommendation system has become an important technology and service. The success of the knowledge recommendation system not only improves the sense of user experience, but also opens up a new frontier for the diversified and extensive development of online education platforms, which requires continuous innovation of the platform, and efforts to improve the intelligence and precision of the knowledge recommendation system, so as to bring better knowledge learning experience to users and better meet the needs of society for knowledge.
Traditional personalized recommendation methods mainly include content-based recommendation algorithm, collaborative filtering based recommendation algorithm and hybrid recommendation algorithm. Content-based recommendation algorithms require that the content can be easily extracted into meaningful features, that the feature content has good structure, and that the user's taste must be expressed in the form of content features, and that the judgment of other users cannot be explicitly obtained. The recommendation algorithm based on collaborative filtering still has many problems to solve. The most typical problems are Sparsity and Scalability. Hybrid recommendation algorithm Hybrid recommendation needs to consider the weight distribution among different algorithms, and how to combine multiple algorithms for training and evaluation.
In order to further improve the performance of the recommendation system in rational recommendation, the method of introducing knowledge graph into the recommendation system to solve the traditional recommendation problem has gradually attracted extensive attention from researchers in the recommendation field. The knowledge graph is built into a huge network structure in the form of triples, so it covers a large number of data information of user-level items in the recommendation system. Through the connection of knowledge graph network, the connection between input data can be obtained, and the potential relationship between users and items can be captured through the network structure, which can better improve the recommendation performance. Meanwhile, the connection between nodes in the knowledge graph also brings certain value to the interpretability of the recommendation system.
Keywords: Knowledge graph, Flask, curriculum knowledge information, recommendation system
目 录
1 绪论
1.1选题的背景与意义
在传统的课程知识信息推荐系统中,通常使用协同过滤等方法,但这些方法在处理冷启动问题、用户兴趣变化和推荐解释等方面存在一定的局限性。随着知识图谱技术的发展,人们意识到将课程知识信息、用户行为等多维数据整合成一个知识图谱,能够更好地捕捉课程知识之间的关联性和用户的复杂兴趣。因此,这一课题的来源在于对传统课程知识信息推荐系统的不足之处的深入思考,并试图通过知识图谱的方式来解决这些问题。
提升推荐准确性: 通过构建课程知识知识图谱,能够更全面、深入地挖掘课程知识之间的关系,从而提高推荐系统的准确性。用户的历史行为、兴趣爱好等信息都可以以更精细的方式被纳入考量,使推荐更贴近用户的实际需求。
解决冷启动问题: 传统推荐系统在面对新用户或新课程知识时往往表现不佳,而知识图谱能够通过融入领域知识,迅速适应新的用户和课程知识,从而解决冷启动问题,提升系统的灵活性。
推荐解释可解性: 知识图谱不仅能提高推荐准确性,还能提供推荐的解释可解性。通过分析知识图谱中的关系,用户和课程知识之间的连接,系统能够向用户解释为何给出这样的推荐,提高用户对推荐结果的信任度。
促进课程知识交叉销售: 知识图谱的引入能够发现课程知识之间更为复杂的关联,有助于推动课程知识的交叉销售。系统可以更全面地了解用户的潜在需求,提供更具吸引力的横向推荐,促进销售多样性。
综上所述,基于知识图谱的课程知识信息推荐系统不仅是对传统推荐系统的改进,更是对推荐系统在提供个性化、准确、可解释等方面的全面优化,对电子商务和个性化推荐领域具有重要的实际意义。
1.2国内外现状
1.2.1传统推荐算法研究现状
推荐系统是一种帮助用户从海量数据中筛选出有效信息的技术,其利用用户的信息和交互记录,获取用户偏好,以个性化的方式向用户提供推荐服务,帮助用户解决其面对海量数据时无法有效获取信息的问题,提升用户检索信息的效率和对服务的满意度。传统的推荐算法主要有以下三种:基于内容的推荐算法、基于协同过滤的推荐算法以及混合推荐算法。
基于内容的推荐算法是推荐系统中一种重要的算法,它通过将用户历史偏好记录中的项目作为参考进行推荐,挖掘项目与项目之间的关联,从而推荐相似的项目。Liu 等[2]提出一种基于语义内容的推荐方法,该方法分析预期服务使用的上下文,以在用户反馈稀疏的情况下提供有效的推荐。Cami 等[3]提出一种以用户为中心的分析框架,将各用户的影片内容属性特征融入到混合的模型中,从而推测出用户的喜好,并给出推荐。
自二十世纪九十年代基于协同过滤的推荐算法首次被提出以来,该算法对促进个性化推荐的发展起到了积极的作用,并成为推荐系统中的核心技术。协同过滤的推荐算法利用用户历史交互数据,根据用户之间的相似性或项目之间的相似性来预测目标用户对目标项目的喜好程度,其主要包括基于用户的方法[4]和基于项目的方法[5]。Zhang 等[6]将二分网络结合到基于用户的协同过滤中,以提高新用户的推荐质量。Feng 等[7]通过考虑项目之间的非线性和高阶关系提出 DeepICF 方法,有效地对项目之间的高阶关系进行建模,捕捉用户决策中更复杂的影响。Nilashi M 等[8]在协同过滤部分使用奇异值分解来寻找每个项目和用户集群中最相似的项目和用户,可以显著提高推荐算法的可扩展性。Chen 等[9]为了提高学习效率,提出了一种新的带有记忆策略的高效非采样分解机的学习框架,将分解机与矩阵分解结合到一起,实现了有效的非抽样优化和高效的模型训练。Liu 等[10]提出了专门用于点击率预测的分类特定卷积神经网络,将类别知识和一个轻量级的注意力模块整合到每个卷积层上,提取具有表达能力的特定类别的视觉模式。Wang 等[11]提出的 NGCF 推荐框架将二分图结构集成到嵌入过程中,建模用户-项目图中的高阶连接,有效地将协作信号以显式的方式注入嵌入过程。
混合推荐技术是将不同的推荐技术结合起来,目的是通过混合多种推荐技术,发挥不同技术的优势,相互弥补缺点,从而实现更加合理的推荐,在现实生活中有着广阔的应用前景。文献[12]提出了一种深度混合推荐模型,融合深度学习与改进的机器学习模型,该方法能够更充分地体现出用户的偏好。Dong 等[13]利用加入新闻热点参数的方式对相关系数进行改进,提出基于新闻推荐的混合推荐系统。
虽然以上方法在实践中均获得了较好的效果,但是由于过分依赖用户和项目之间的交互数据,当新的用户或者项目添加到系统中时,系统中缺乏相应的交互历史,这就造成了冷启动问题,给推荐服务带来了巨大的挑战。除此之外,推荐系统中存在大量的用户和项目数据,而用户和项目之间的历史交互数据相对只有少数,例如电影推荐系统中有大量的用户和电影数据,然而大多数用户只会与其中极少部分的电影数据存在交互历史,由此导致的数据稀疏性也会影响推荐结果的合理性,这也是目前推荐系统研究者重点研究解决的问题。
1.2.2基于知识图谱的推荐技术研究现状
知识图谱是 Google 公司于 2012 年首次提出的一种知识库[14],其目的是优化搜索引擎的检索效率。由于其包含了大量实体以及实体之间关系的信息,在推荐系统中引入蕴含有效辅助信息的知识图谱,能够利用图谱中的知识提升推荐的准确性和效率,同时可以提供更多元化的推荐策略,改善推荐多样性,为用户提供更具选择性的结果。目前,基于知识图谱的推荐算法主要包括以下三类:
(1)基于嵌入的方法
基于嵌入的方法将图中的实体和关系通过嵌入的方法表征为低维向量,利用图中的实体关系信息来扩充用户或项目的表示,其中最具代表性的方法是基于Trans 系列的图谱嵌入方法,主要方法包括 TransE[15],TransH[16],TransR[17]和 TransD[18]。Zhang 等[19]提出 CKE 模型,通过将结构信息、文本数据和图像数据等辅助信息融合到推荐系统中,通过 TransR 提取项目的结构表示,提升推荐系统的质量。Wang 等[20]结合知识图谱和深度神经网络的优势构建了一种深度知识感知网络 DKN,将用户历史行为序列和知识图谱中的实体进行联合建模,同时引入注意力机制处理用户兴趣的多样性。Zhang 等[21]提出了利用异质实体嵌入进行推荐的 CFKG 模型,并在嵌入知识库的基础上提出一种软匹配算法,为推荐的项目生成个性化的解释。文献[22]提出一种基于会话的新闻推荐的上下文感知图嵌入方法 CAGE,它使用外部知识图来改进新闻文章的语义表示,还结合图神经网络进一步增强文章嵌入,通过考虑会话之间的相似性并设计注意力神经网络来模拟短期用户偏好。Cui 等[23]引入基于潜在嵌入优化的元学习模块来生成后续序列知识感知嵌入模块的用户条件参数,提出一种元学习顺序知识感知推荐器 Meta-SKR,利用顺序、时空和社会知识为基于位置的社交网络用户推荐兴趣点。
(2)基于路径的方法
基于路径的方法根据图谱中用户和项目之间的多种连接关系生成路径,以此发现与实体具有相似性的关联项目进行推荐。Zhao 等[24]提出的 FMG 方法通过将元路径替换为可以描绘更复杂特征信息的元图,对图中信息进行特征提取,从而捕获更丰富的语义信息。Wang[25]等提出了知识感知路径循环网络模型 KPRN,通过实体嵌入和关系嵌入来构造合格的路径序列,使用 LSTM 网络对路径进行编码。此外,还根据每条路径计算的预测分数使用平均方式聚合进行池化操作,区分不同路径对预测的贡献,起到注意机制的作用。Xian等[26]提出一种策略引导路径推理的方法PGPR,该方法通过在知识图中提供实际路径来结合推荐和可解释性,设计了一种策略引导的图搜索算法,以高效且有效地对推理路径进行抽样以进行推荐。Wang 等[27]通过使用辅助项目知识探索用户和项目交互背后的意图,提出了基于知识图谱的意图网络KGIN,将每个意图建模为知识图谱中关系的组合,以获得更好的模型能力和可解释性,此外,该方法设计了一种新的信息聚合方案,递归地集成远程连接的关系路径。Yang 等[28]提出的新型可解释关系学习模型 IRL 引入一种基于元路径的路径编码器,通过递归神经网络对节点之间的顺序依赖性进行建模,不仅可以预测节点对之间是否存在关系,还可以使推理更加透明。
(3)基于传播的方法
基于传播的方法利用递归传播的思想,通过聚合邻居节点的信息优化实体的嵌入表示,丰富实体包含的信息,提高预测准确度。Wang 等[29]提出的 RippleNet 模型利用实体节点的嵌入表示对用户的嵌入表示进行更新,通过在知识图谱上偏好传播的方式,沿着知识图谱迭代扩展用户的兴趣以发现其潜在的偏好。Wang 等[30]提出的KGCN 模型通过对每个实体进行采样捕捉其局部领域结构以自动发现知识图谱的高阶信息,捕获用户的潜在兴趣以实现推荐效果提升。KGCN-LS 模型[31]是在 KGCN模型的基础上增加了边权重的正则化过程,来防止过拟合。Wang 等[32]提出的 KGAT模型将用户交互历史和知识图谱相结合,其能够以端到端的方式直接建模图中的高阶关系,利用注意力机制区分邻居节点的重要性以优化节点之间的传播嵌入,最终通过聚合用户以及物品的嵌入表示实现有效推荐。Wang 等[33]提出的协作知识感知注意力网络模型 CKAN 采用异构传播策略对协同信号和知识进行显式编码,并应用知识感知注意机制来区分不同基于知识的邻居的贡献。Lyu 等[34]提出的 KEGNN 模型将外部知识库中的语义知识用于用户、项目和用户项目交互三个方面的表示学习,设计一个基于图神经网络的用户行为学习和推理模型,对用户行为图进行语义和关系知识传播和推理,以全面了解用户行为。
1.3 拟研究的内容
1.3.1 研究目标
本次研究需要构建一个完整的基于知识图谱的课程知识信息推荐系统,能读取用户课程知识的语义信息,首先进行文本预处理,然后通过实体识别模型抽取出其中的关键成分,即:课程名称、相关知识、具体知识点等信息。然后,这些语义信息会输入到平台后端的知识图谱(基于大规模数据集构建)中。最终,通过知识图谱的快速查询和计算,平台将返回基于用户描述的课程知识信息,信息来源以及其他有关内容。
本系统支持的功能包括,对网络中相关知识信息的爬取,对用户搜索内容的预处理,对关键字眼的识别和抽取,基于知识图谱的内容查询和推荐,课程相关知识信息的可视化推荐,对查询内容的不同排名方式等。
拟解决的问题,对基于知识图谱的推荐算法的选择与适当改进,使系统更加准确和高效。
1.3.2 研究方法
目前,我们拟采用基于Pycharm环境下的KG-NAMR模型,该模型融合了知识图谱辅助信息和深度学习领域的神经网络注意力机制的思想,框架图如图1所示在KG-NAMR模型中,将获取的数据集随机按照8:2 进行划分为训练集和测试集,把训练集知识图谱嵌入到模型当中进行模型训练:然后将测试集构建的知识图谱嵌入到训练好的模型当中,利用降噪自动编码器解决噪声带来的影响;接着就将构建的知识图谱嵌入到卷积层中,通过卷积运算之后将三元组矩阵形式降维为低维向量,将低维向量经过含有动态因子的注意力机制层,自动捕捉测试集当中候选项目与历史交互项目之间的注意力权值,经过MLP进行相似度分值计算,按照降序排序,最后进行TOP-K推荐。
1.4相关技术介绍
1.4.1 知识图谱技术
知识图谱是一种将实体、关系和属性组织成图形结构的技术,用于表示和存储丰富的语义信息。它可以帮助计算机理解和推理现实世界中的知识,是人工智能领域中重要的基础技术之一。以下是知识图谱技术的介绍:
1. 概念和组成
实体(Entity):在知识图谱中表示现实世界中的事物,如人、地点、物品等。
关系(Relation):连接实体之间的关联性,描述实体之间的联系,如“居住于”、“创作”等。
属性(Attribute):描述实体的特征或属性,如姓名、年龄、出生日期等。
2. 技术实现
数据建模:使用图形模型表示实体、关系和属性的结构,通常采用图数据库来存储和管理知识图谱数据。
语义表示:采用统一的语义表示方法,如RDF(Resource Description Framework)来描述实体、关系和属性之间的关联。
知识抽取:从结构化和非结构化数据中提取实体、关系和属性信息,包括自然语言处理和信息抽取技术。
推理和查询:利用知识图谱进行推理和查询,发现实体之间的关联性,回答复杂的语义查询问题。
3. 应用领域
搜索引擎:帮助搜索引擎更好地理解用户意图和搜索结果之间的关系,提供更精准的搜索服务。
智能对话系统:支持对话系统理解用户意图,并根据知识图谱中的信息做出智能响应。
推荐系统:利用知识图谱建立用户、课程知识、标签等之间的关系,为用户提供个性化的推荐服务。
医疗健康:整合医学知识,帮助医生和研究人员快速获取医学信息。
知识图谱技术在各领域得到了广泛的应用,能够帮助计算机更好地理解和利用丰富的语义信息,促进人工智能的发展和应用。
1.4.2 Flask技术
Flask是一个开放源代码的Web应用框架,由Python写成。采用了Mgoods的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯网络IP 集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Flask Reinhardt来命名的。2019年12月2日,Flask 3. 0发布 。
Flask是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Flask具有较强的可扩展性。Flask 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。其工作流程主要可划分为以下几步:
1.用manage .py runserver 启动Flask服务器时就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Flask哪个Python模块应该用作本站的URLConf,默认的是urls .py。
2.当访问url的时候,Flask会根据ROOT_URLCONF的设置来装载URLConf。
3.然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)。
4.最后该view函数负责返回一个HttpResponse对象。
2 需求分析
2.1 可行性分析
技术可行性:考虑系统的开发和实施所需的技术能力和资源。评估开发人员是否具备足够的技术知识和经验,同时确保系统能够兼容和集成商城现有的信息系统。此外,还要考虑系统的稳定性、可扩展性和安全性等方面的技术要求。
经济可行性:分析系统开发和运营所需的成本与收益。包括项目启动资金、人力资源、硬件设备、软件许可等方面的成本,并考虑系统使用后能够带来的效益,如提高工作效率、降低人力成本等。通过综合评估,判断项目是否具有经济回报且符合商城在教务管理上投资的合理范围。
组织可行性:评估商城内部组织部门对于引入课程知识信息推荐系统所需做出的配合与支持。需要确保高层管理者对项目有足够重视并提供必要资源支持,同时教师和学生也需要配合参与并积极使用新系统。
2.2 系统总体需求分析
通过大数据分析,系统旨在为用户提供更准确、个性化的课程知识推荐结果,帮助用户选择更合适的课程知识。系统将设计直观的用户界面和交互方式,让用户能够便捷地输入个人信息,了解推荐结果,并灵活地进行筛选和排序。通过精心设计的界面和功能,提升用户体验,使用户在选择课程知识时感到便利和满意。系统将收集和整理各个课程知识的相关信息,用户可以在系统中获取全面而详细的信息,帮助他们更好地了解不同课程知识及其特点,做出更明智的选取决策。
2.3 系统页面设计
系统的页面设计使用基于CSS、html实现。并且结合了Echarts前端框架。使用Vue 将后台数据和前端展示分离大大提高了开发效率,加上前端框架的使用,让网站更加美观,提高了用户的交互体验。
在网页界面的设计上。为了满足网站复杂的需求需要使用大量的页面展示。为了减少代码的冗余,可以给页面进行优化,抽取部分公共部分提高页面的复用性能提高开发效率。同时为了提高页面的美观性,在开发过程中也参考了行业中成功的网站的布局。
总结归纳出一下几点:
(1)网站总体的布局大致分为三个部分:头部、中间部分、底部。
(2)头部和尾部信息在不同页面中几乎没有变化,可以复用页面代码。
(3)网站首页信息不宜过多过细,尽量精简。
(4)可以借鉴其他网页模板设计。
(5)通过浏览器开发这模式,可以更好的调整网页布局。
(6)适当增加网站页面的层次感,可以提高用户的使用感受。
本系统界面包括注册登录页面,系统首页页面,课程知识数据管理页面,课程知识推荐页面等等。
3 软件设计
3.1 系统总体设计
本文前端使用Flask框架搭建了基于知识图谱的课程知识信息推荐系统。系统数据库使用了关系型数据库MySQL,在任何信息系统当中有价值的数据都是必不可少的重要部分,如何通过手上的资源获取得到有价值的数据便是开发系统。首先需要考虑的问题根据系统的功能设计数据获取和处理的流程以及其实现方法都已经基本上确定获取和处理流程。
图3-1系统架构图
3.1.1 数据采集设计
基于知识图谱的课程知识信息推荐系统旨在以个性化课程知识推荐模型为基础,使用B/S架构的形式实现。个性化推荐模型使用了 CNN等传统机器学习领域算法进行课程知识推荐的,同时使用了类似于Word2vec的词袋模型和词向量模型来对歌词进行文本处理,构建了异构文本网络,来标识用户的课程知识偏好,然后在此基础上引入了一个Flask方面深度学习库deepLearning4j来实现对课程知识特征提取,对课程知识进行标签化,可参考来进行混合推荐的。在本系统中,用户可以浏览课程知识,还可以收藏课程知识,同时还能为所喜爱的课程知识点赞,同时还可以进行登录和注册。管理员除了可以实现普通用户所实现的功能外,还可以进行课程知识、评论、用户的管理。系统通过隐式收集用户操作记录向用户推荐个性化的课程知识。
3.1.2 数据库的设计
整个系统的最重要的一部分就是对数据持久层的设计,因为整个系统的每个操作,包括注册登录,查询,展示其实都是对数据库的操作,因此如何设计一个健壮,扩展性强的数据库是非常必要的。
根据功能模块的划分结果可知,本系统的用户由于使用账号和密码进行登录,因此在本系统中需要分别进行数据记录。首先根据如下2个数据实体:用户、服务质量实体等数据库表。
3-2用户实体
图3-3课程实体
图3-4习题实体
3.1.3 知识图谱推荐程序设计
使用卷积神经网络来提取课程知识的深度特征。这包括以下步骤:
课程知识图像处理: 如果课程知识信息中包含图像数据,首先将课程知识图像输入到卷积神经网络中。卷积层将对图像进行特征提取,捕捉课程知识的视觉信息。卷积核将扫描图像,检测边缘、纹理等特征,形成图像的低级表示。
课程知识文本信息处理: 对课程知识的文本信息,如课程知识描述、评论等,采用自然语言处理技术进行预处理,并输入到卷积神经网络中。卷积层通过卷积运算捕捉文本的局部特征,形成文本的低级表示。
课程知识知识图谱信息整合: 将课程知识知识图谱中的关联信息与图像和文本特征整合。通过将图像和文本特征与知识图谱中的节点关联,建立课程知识的高级表示,使模型能够更好地理解课程知识之间的关系。
表3-1课程知识推荐算法
import tensorflow as tffrom tensorflow.keras.applications import VGG16from tensorflow.keras.preprocessing import imagefrom tensorflow.keras.applications.vgg16 import preprocess_inputimport numpy as npfrom sklearn.metrics.pairwise import cosine_similarity # 加载预训练的VGG16模型 model = VGG16(weights='imagenet', include_top=False) # 加载课程知识图像并提取特征def extract_features(image_path, model): img = image.load_img(image_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) features = model.predict(x) return features.flatten() # 课程知识图像路径 image_paths = ['image1.jpg', 'image2.jpg', 'image3.jpg', ...] # 提取课程知识图像特征 features_list = [extract_features(image_path, model) for image_path in image_paths] # 计算课程知识之间的相似性 similarities = cosine_similarity(features_list, features_list) # 基于相似性进行课程知识推荐def recommend_similar_products(product_index, similarities, n=5): similar_indices = np.argsort(-similarities[product_index])[:n] return similar_indices # 示例:为第一张图片进行课程知识推荐 recommended_indices = recommend_similar_products(0, similarities, n=3)print("推荐的课程知识索引:", recommended_indices) |
将知识图谱与CNN结合进行课程知识推荐可以提高推荐系统的效果,因为知识图谱可以提供丰富的课程知识关联信息和语义信息,而CNN可以帮助提取课程知识图像特征。
包括课程知识的基本信息、属性、以及课程知识之间的关联关系。这些信息构成了课程知识知识图谱的基础。我们对课程知识属性进行了编码和嵌入,以便在CNN中进行处理。课程知识之间的关联性信息构成了知识图谱的边。我们通过处理课程知识之间的关系,构建了一个完整的课程知识知识图谱,用于丰富模型对课程知识关联的理解。将准备好的数据转化为适合CNN输入的张量格式。确保数据的统一性和可用性,为模型的训练和特征提取做好准备。
通过精心的数据准备,我们确保了模型能够充分利用课程知识和用户的多维信息,有效地学习深度特征,为基于知识图谱的课程知识信息推荐系统的建设奠定了坚实的基础。
表3-2 基于知识图谱的课程知识推荐代码
# 加载预训练的CNN模型,提取课程知识图像特征def extract_image_features(image_path): # 使用预训练的CNN模型提取课程知识图像特征 # 返回图像特征向量 return image_features # 构建知识图谱,表示课程知识之间的关联信息 knowledge_graph = { '课程知识A': ['相关课程知识1', '相关课程知识2', '相关课程知识3'], '课程知识B': ['相关课程知识4', '相关课程知识5'], # 其他课程知识关联信息 } # 基于图像相似度和知识图谱进行课程知识推荐def recommend_products(image_path, knowledge_graph): # 提取课程知识图像特征 image_features = extract_image_features(image_path)
# 根据图像特征计算课程知识相似度
# 基于知识图谱获取相关课程知识
# 结合相似度和关联信息进行课程知识推荐
return recommended_products # 示例:为输入的课程知识图像进行推荐 input_image_path = 'image.jpg' recommended_products = recommend_products(input_image_path, knowledge_graph)print("推荐的课程知识:", recommended_products) |
4 编码
基于知识图谱的课程知识信息推荐系统可视化系统的基本业务功能是采用Python语言实现的, 数据存储采用关系型数据库 Mysql。 在本文的第四章将详细介绍后台系统的实现部分,包括详细阐述了系统功能模块的具体实现,并展示说明了部分模块的功能界面。
4.1 开发环境与配置
4.1.1 开发环境
可视化后台系统设计基于 B/S 架构,其中服务器包括应用服务器和数据库服务器。 这种架构模式,使用户只需要在有网络的地方即可通过浏览器访问,而不需要再安装客户端软件,交互性更强。基于知识图谱的课程知识信息推荐系统可视化系统后台使用Pycharm集成开发工具。
表4-1 系统开发环境和工具
项目 | 系统环境及版本 |
硬件环境 | Windows 64 位操作系统 |
语言 | Python |
Web服务器 | 本地 |
数据库 | MySql |
开发工具 | Pycharm |
项目架构 | 知识图谱 |
4.2 系统功能模块实现
用户界面(UI)是课程知识信息推荐系统与用户交互的桥梁,其设计的好坏直接影响到用户的使用体验和系统的接受度。在本推荐系统中,用户界面以直观、友好、易用为设计原则,通过简洁的布局和明确的操作流程,使用户能够快速上手并享受个性化的课程知识推荐服务。
4.2.1登录认证
用户登录时需要在登录界面输入用户名、 密码进行身份认证, 要求必须是合法的用户才可以访问系统。 当用户登录系统进行身份认证和权限控制时,在该类中从数据库获取到用户信息及其具有的权限信息, 并且比较用户输入的账号是否存在或者输入的密码与数据源中的密码是否匹配。 具体流程如时序图如4-2所示。
一
图4-1登录认证流程图
基于知识图谱的课程知识推荐首页图如下图所4-2,4-3所示:
图4-2登录页
图4-3 系统首页
4.2.2课程评论管理
评论管理功能通常包括审核评论的功能。管理员可以查看新提交的评论,并审核其内容是否符合平台的规定和标准。如果评论包含不当内容,管理员可以选择删除或编辑评论, 评论管理功能通常还包括评论统计和分析的功能。管理员可以查看课程的评论统计数据,如评论数量、平均评分、常见问题等,并分析这些数据以改进课程质量和学习体验。基于知识图谱的课程评论界面图如下图所4-4所示:
·
图4-4 课程评论管理
4.2.3课程习题管理
·管理员可以使用习题管理功能创建各种类型的习题,包括选择题、填空题、简答题等。他们可以设置题目的内容、选项、答案等信息。 习题管理功能通常允许管理员对习题进行分类和标记,以便学生更好地理解和应用知识。管理员可以随时编辑和更新习题内容。他们可以修改题目的文字、选项的顺序、答案的设置等,确保习题的准确性和有效性。基于知识图谱的习题解析界面图如下图所4-5所示:
·
图4-5 课程习题界面
在用户界面实现过程中,我们采用了前端技术栈,包括HTML、CSS等。通过合理的布局和样式设计,我们实现了美观、易用的用户界面。同时,我们注重了代码的可读性和可维护性,以确保系统的稳定性和可扩展性。
4.2.4课程知识谱图管理
基于知识图谱的课程知识信息推荐系统旨在以个性化课程知识推荐模型为基础,使用B/S架构的形式实现。个性化推荐模型使用了CNN等传统机器学习领域算法进行课程知识推荐的,来标识用户的课程知识偏好,然后在此基础上引入了一个Flask方面深度学习库deepLearning4j来实现对课程知识特征提取,对课程知识进行标签化,分为古典、流行等类别。可参考来进行混合推荐的。
图4-6 课程知识图谱界面
4.2.5课程浏览历史管理
如果您在浏览器中查看课程知识,您可以通过浏览器的历史记录来查找您浏览过的页面。如果您是通过在线学习平台或教育应用程序访问课程知识的,那么该平台可能会提供历史记录功能,您可以通过该功能查看您浏览过的课程知识内容。 如果您使用的是特定的应用程序或软件来学习课程知识,那么该应用程序可能会记录您的浏览历史,您可以在应用程序中查找历史记录功能。
图4-7 课程知识浏览历史界面
4.3 本章小结
本章主要分析了基于知识图谱的课程知识信息推荐系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍后台系统的搭建环境和开发步骤,包括程序中的一些数据库配置等。本章我们已完成课程知识推荐后台开发工作,将会给用户带来一定的便利,同时本系统还为用户提供个人信息管理,就业数据查询等功能,这样做便使得该系统成为功能相对完整,业务逻辑清晰。
5 总结与展望
5.1 总结
利用CNN对课程知识图像、描述文本等进行特征提取,捕捉课程知识的视觉和语义信息。这将有助于更全面地了解课程知识之间的相似性和差异性。
将用户的历史行为序列通过CNN进行处理,提取用户的深度兴趣特征。这有助于理解用户的个性化偏好,从而更准确地为其推荐课程知识。
将课程知识和用户的深度特征整合到课程知识知识图谱中,形成节点和边的关联关系。这将为推荐算法提供更丰富的信息,提高系统的智能化水平。
通过综合课程知识和用户的深度特征,预期推荐系统能够更准确、个性化地为用户提供课程知识推荐。提高推荐的准确性和用户满意度是预期的系统性能改进。 利用深度特征的学习能力,预期能够更好地应对新用户或新课程知识的冷启动问题,提供更有针对性的推荐。
5.2 展望
(1)学习研究知识图谱,研究用户行为数据的利用,提高推荐效能。本文只用到了众多知识图谱中的两个,以后在学习中不仅要对单个算法深入研究,还要研究算法的融合,用多种算法为用户作出有价值的推荐。
(2)对于冷启动、系统扩展性等问题进行进一步的考虑。 虽有研究人员报告称,只要用户喜欢你的产品,就会不断贡献新的数据,从而不必关心冷启动。但实际系统中要让用户获得较好的体验效果,我们还是应该认真对待这个问题。对于扩展性,可以采用分布式计算的方法来加以解决。
[1] Adomavicius G, Tuzhilin A. Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions[J]. IEEE Transactions on Knowledge and Data Engineering, 2005, 17(6): 734-749.
[2] Liu L, Lecue F, Mehandjiev N. Semantic content-based recommendation of software services using context[J]. ACM Transactions on the Web (TWEB), 2013, 7(3): 1-20.
[3] Cami B R, Hassanpour H, Mashayekhi H. A content-based movie recommender system based on temporal user preferences[C]//2017 3rd Iranian conference on intelligent systems and signal processing (ICSPIS). IEEE, 2017: 121-125.
[4] 王成,朱志刚,张玉侠等.基于用户的协同过滤算法的推荐效率和个性化改进[J].小型微型计算机系统,2016,37(03):428-432.
[5] Guo T, Luo J, Dong K, et al. Locally differentially private item-based collaborative filtering[J]. Information Sciences, 2019, 502: 229-246.
[6] Zhang Z, Dong M, Ota K, et al. Alleviating new user cold-start in user-based
collaborative filtering via bipartite network[J]. IEEE Transactions on Computational Social Systems, 2020, 7(3): 672-685.
[7] Xue F, He X, Wang X, et al. Deep item-based collaborative filtering for top-n recommendation[J]. ACM Transactions on Information Systems (TOIS), 2019, 37(3):
1-25.
[8] Nilashi M, Ibrahim O, Bagherifard K. A recommender system based on collaborative filtering using ontology and dimensionality reduction techniques[J]. Expert Systems with Applications, 2018, 92: 507-520.
[9]Chen C, Zhang M, Ma W, et al. Efficient non-sampling factorization machines for optimal context-aware recommendation[C]//Proceedings of the web conference 2020. 2020: 2400-2410.
[10] Liu H, Lu J, Yang H, et al. Category-Specific CNN for Visual-aware CTR Prediction at JD. com[C]//Proceedings of the 26th ACM SIGKDD international conference on knowledge discovery & data mining. 2020: 2686-2696.
[11] Wang X, He X, Wang M, et al. Neural graph collaborative filtering[C]//Proceedings of the 42nd international ACM SIGIR conference on Research and development in Information Retrieval. 2019: 165-174.
[12] Huang Z, Yu C, Ni J, et al. An efficient hybrid recommendation model with deep neural networks[J]. IEEE Access, 2019, 7: 137900-137912.
[13] Dong Y, Liu S, Chai J. Research of hybrid collaborative filtering algorithm based on news recommendation[C]//2016 9th international congress on image and signal processing, biomedical engineering and informatics (CISP-BMEI). IEEE, 2016: 898-902.
[14] 秦川,祝恒书,庄福振等.基于知识图谱的推荐系统研究综述[J].中国科学:信息科学,2020,50(07):937-956.
[15] Bordes A, Usunier N, Garcia-Duran A, et al. Translating embeddings for modeling multi-relational data[J]. Advances in neural information processing systems, 2013, 26.
[16] Wang Z, Zhang J, Feng J, et al. Knowledge graph embedding by translating on hyperplanes[C]//Proceedings of the AAAI conference on artificial intelligence. 2014, 28(1).
[17] Lin Y, Liu Z, Sun M, et al. Learning entity and relation embeddings for knowledge graph completion[C]//Proceedings of the AAAI conference on artificial intelligence. 2015, 29(1).
[18] Ji G, He S, Xu L, et al. Knowledge graph embedding via dynamic mapping matrix[C]//Proceedings of the 53rd annual meeting of the association for computational linguistics and the 7th international joint conference on natural language processing (volume 1: Long papers). 2015: 687-696.
[19] Zhang F, Yuan N J, Lian D, et al. Collaborative knowledge base embedding for recommender systems[C]//Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining. 2016: 353-362.
[20] Wang H, Zhang F, Xie X, et al. DKN: Deep knowledge-aware network for news recommendation[C]//Proceedings of the 2018 world wide web conference. 2018: 1835-1844.
[21] Ai Q, Azizi V, Chen X, et al. Learning heterogeneous knowledge base embeddings for explainable recommendation[J]. Algorithms, 2018, 11(9): 137.
[22] Sheu H S, Chu Z, Qi D, et al. Knowledge-guided article embedding refinement for session-based news recommendation[J]. IEEE Transactions on Neural Networks and Learning Systems, 2021, 33(12): 7921-7927.
[23]Cui Y, Sun H, Zhao Y, et al. Sequential-knowledge-aware next POI recommendation:A meta-learning approach[J]. ACM Transactions on Information Systems (TOIS), 2021, 40(2): 1-22.
[24] Zhao H, Yao Q, Li J, et al. Meta-graph based recommendation fusion over
heterogeneous information networks[C]//Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining. 2017: 635-644.
[25] Wang X, Wang D, Xu C, et al. Explainable reasoning over knowledge graphs for recommendation[C]//Proceedings of the AAAI conference on artificial intelligence. 2019, 33(01): 5329-5336.
[26] Xian Y, Fu Z, Muthukrishnan S, et al. Reinforcement knowledge graph reasoning for explainable recommendation[C]//Proceedings of the 42nd international ACM SIGIR conference on research and development in information retrieval. 2019: 285-294.
[27] Wang X, Huang T, Wang D, et al. Learning intents behind interactions with
knowledge graph for recommendation[C]//Proceedings of the Web Conference 2021. 2021: 878-887.
[28] Yang Q, Zhang Q, Zhang C, et al. Interpretable relation learning on heterogeneous graphs[C]//Proceedings of the Fifteenth ACM International Conference on Web Search and Data Mining. 2022: 1266-1274.
[29] Wang H, Zhang F, Wang J, et al. Ripplenet: Propagating user preferences on the knowledge graph for recommender systems[C]//Proceedings of the 27th ACM international conference on information and knowledge management. 2018: 417-426.
[30] Wang H, Zhao M, Xie X, et al. Knowledge graph convolutional networks for recommender systems[C]//The world wide web conference. 2019: 3307-3313.
[31] Wang H, Zhang F, Zhang M, et al. Knowledge-aware graph neural networks with label smoothness regularization for recommender systems[C]//Proceedings of the 25th ACM SIGKDD international conference on knowledge discovery & data mining. 2019: 968-977.
[32] Wang X, He X, Cao Y, et al. Kgat: Knowledge graph attention network for recommendation[C]//Proceedings of the 25th ACM SIGKDD international conference on knowledge discovery & data mining. 2019: 950-958.
[33] Wang Z, Lin G, Tan H, et al. CKAN: collaborative knowledge-aware attentive network for recommender systems[C]//Proceedings of the 43rd International ACM SIGIR conference on research and development in Information Retrieval. 2020: 219-228.
[34] Lyu Z, Wu Y, Lai J, et al. Knowledge Enhanced Graph Neural Networks for Explainable Recommendation[J]. IEEE Transactions on Knowledge and Data Engineering, 2022.
四年的大学时光,我不仅学习到了专业方面的相关知识,进一步扩充了眼界,更重要的是掌握了学习知识的能力,使我从多方面提升了自身能力。这些中除了知识方面的,我还学习到了为人处事的方法。
在整个写论文的过程中,前期搜寻了大量的相关资料,使我逐步了解到了当前形势下的就业困难现状以及设计与实现基于知识图谱的课程知识信息推荐系统的重要性,并明确了前进方向。虽然在后期遇到很多困难,我都努力去克服,最终得到学习能力、思考能力等各项综合的很大提升。
这其中,我得到了多方面的帮助。有导师的细心指导,同学的帮助关心以及在论文中借鉴的前人的部分成果,在此表示感谢。
附 录
附录正文。