曹梦川 欧阳仪 伍丹 杜朋轩
摘 要:随着在线教育的不断发展,微课作为一种便捷高效的学习方式越来越受到广大学生的喜爱。为了进一步提高学生利用微课学习的效果,文章提出了一种基于图结构的微课推荐系统。该系统通过构建知识点图和利用广度优先算法推荐合适的微课视频给学生,从而提升学生的学习效果。实验结果表明,该系统相比于随机推荐和基于内容的推荐方法,具有更高的召回率和更好的推荐效果,具有一定的实用价值和推广意义。
关键词:数据结构;图结构;广度优先算法;微課推荐
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)20-0140-04
Research on Intelligent Push Method of Micro-course Based on Artificial Intelligence
CAO Mengchuan, OUYANG Yi, WU Dan, DU Pengxuan
(Ningxia Polytechnic, Yinchuan 750021, China)
Abstract: With the continuous development of online education, micro-course has become a popular learning method among students. In order to further improve the learning effectiveness of students using micro-course, this paper proposes a graph-based micro-course recommendation system. The system recommends suitable micro-course videos to students by constructing knowledge point graphs and using the Breadth-First Search algorithm, thereby improving the learning effectiveness of students. The experimental results show that compared with random recommendation and content-based recommendation methods, the system has higher recall rate and better recommendation effectiveness, and it has certain practical value and promotion significance.
Keywords: data structure; graph structure; Breadth-First Search; micro-course recommendation
0 引 言
微课视频是当今一种非常流行的教学、自学方式,对于学校来说,也是一种需要去重视的学习资源,它可以为学生提供丰富的学习内容和多样的学习方式。然而因为每门课成所涉及的知识点繁多、关联的教学视频数量庞大,对于学生来说很难在众多的视频中找到适合自己学习进度的学习资源,因此需要一种高效的教育教学视频推荐方式来为学习者提供个性化的学习服务。
目前,已有很多学校和企业对微课视频推荐系统进行了研究和开发,其中大多数系统都是以协同算法为主,根据学生历史记录推荐相似视频,或按照一定的学习顺序推荐。这些方法在使用的过程中有一定的局限性,如推荐精度低、推荐内容不符合等问题。因为每一集微课的内容针对是一个知识点,非常利于构建图结构,因此,通过基于图结构的微课推荐功能能很好地解决上述的问题。
1 图结构概述
图结构是一种由节点和边构成的数据结构,节点表示一个实体、对象或者事件。边则表示节点之间的关系或者连接。通常表示为G(V,E),其中G表示一个图,V表示节点的集合,E表示图中边的集合。节点又称为顶点(vertex),是图中的基本单元,通常用圆形或者方形表示,每一个节点可以有一个或者多个属性边,又称为连接(edge),是节点之间的连线,用来表示两个节点之间的关系。
本次研究将采用邻接表(Adjacency List)的方式实现,邻接表采用的是数据和链表的方式存储。每一个节点由一条链表,所以共有| V |条链表的数组构成。对于每一个节点u ∈ V,链表代表图的边。图结构又分为有向图和无向图,因考虑到知识点是具有有向性的,所以本次研究采用有向图的方式实现。
2 系统设计实现
2.1 系统结构设计
本系统主要包括两个部分,构建知识点图和推荐算法,如图1所示。首先,教师需要将课程涉及的所有知识点及关联关系导入微课推荐系统中,生成知识点图并存储在数据库中;当学生观看微课后,前端将其标签发送到服务器端。服务器端接收到知识点标签后,通过使用广度优先算法查询该知识点标签在知识点图中的位置,并将该知识点所关联的其他知识点对应的课程视频信息推荐给学生,从而实现微课的推荐。
2.2 知识点图的构建
本次研究的是一种基于用户行为和视频内容之间的关系建立的结构模型,构建的核心思想是将对应课程的所有知识点构建成图结构,以知识点为节点,节点之间为关联关系,将这样的关系定义为边,从而实现知识点图的构建。它利用图结构的属性和知识点之间的关系来进行视频推荐,然后通过图算法计算节点之间的关系,更好的推荐学生需要的微课视频。
这里以“数据结构”课程为例构建有向的知识点图,如图2所示。在这个示意图中,每个长方形表示一个知识点,知识点之间的箭头表示它们之间的关系。例如,Sorting节点可能会有一个箭头指向Bubble和Merge节点,因为它们是排序算法的一部分。Stack节点可能会有一个箭头指向Push节点,因为Push操作是栈数据结构的一部分。
实现代码如下:
1. # 创建一个空的图
2. G = nx.Graph()
3. # 添加节点,每个节点代表一个数据结构知识点
4. G.add_node("Sorting")
5. G.add_node("Stack")
6. G.add_node("Queue")
7. # 添加边,表示不同知识点之间的关系
8. G.add_edge("Sorting", "Bubble", "Marge")
9. G.add_edge("Stack", "Merge" ,"Push")
10. G.add_edge("Queue", "Deqeue")
2.3 推荐算法的实现
推荐算法采用广度优先算法,该算法是一种图形遍历算法,用于给定的起始节点开始遍历一个图结构或树结构。该算法遍历的顺序是按照距离顺序,从起始节点开始,逐层遍历其邻居节点,直到遍历到目标节点或者整张图形中的所有节点。当遍历到目标节点时,算法会立即停止,并返回一条从起始节点到目标节点的路径。如果遍历完整张图形后仍未找到目标节点,则算法返回null。广度优先算法的时间复杂度为O(V + E),其中V是图形中节点的数量,E是边的数量。由于需要遍历整张图形,因此空间复杂度为O(V),其中V是节点的数量。在实践中,由于算法需要使用队列,因此空间复杂度可能会更高。
使用该推荐算法的优点在于能够很好地利用知识点之间的依赖关系进行推荐,从而提高推荐的准确性。同时,该功能也能够较好地处理冷启动问题,对于新加入系统的微课视频,只需要在对应的途中添加节点位置,即可实现推荐。
在本次研究中,学生观看的微课视频所携带的知识点标签传入服务端后,服务端从数据库中获取该知识点所对应的课程图谱,并通过广度优先算法查询该知识点在知识点图中的位置及关联的所有节点;将这些节点所对应的视频信息形成响应报文,返回给前端。实现流程如图3所示。
实现代码如下:
1. def get_neighbors(graph, node):
2. # 創建空队列和空集合
3. queue = deque()
4. visited = set()
5. # 将起始节点添加到队列中,并标记为visited
6. queue.append(node)
7. visited.add(node)
8. # 遍历队列中的节点,查询其邻居节点
9. neighbors = deque()
10. while queue:
11. curr_node = queue.popleft()
12. for neighbor in graph[curr_node]:
13. if neighbor not in visited:
14. queue.append(neighbor)
15. visited.add(neighbor)
16. neighbors.append(neighbor)
17. return neighbors
该函数接收一个图结构的graph和一个节点node作为参数,返回一个包含所有邻居节点的队列,通过将已经生成的知识点图和微课视频所对应的知识点标签带入,就可以通过广度优先算法查询到所有与该知识点关联的知识点,并将所有关联的知识点以队列的形式返回。系统将列表中知识点所对应的微课视频信息以标题和URL的形式返回给前端,从而实现微课的快速推荐。
3 实验结果分析
3.1 数据集介绍
本次实验的数据集来自Khan Academy(KA),KA是一个在线学习平台,旨在为全球范围内的任何人提供免费的教育资源。KA主要提供数学、自然科学、历史等各种学科的微课视频,每个视频通常涵盖一个知识点。本次实验选择了关于数学学科的微课视频,这些视频一共涵盖了412个知识点。通过调用KA官方提供的API获取了它们之间的关系,并使用知识点的关联性构建一个有向的知识点图结构,其中节点表示对应的知识点,边表示知识点之间的相关性。
3.2 实验设置
本次实验为了验证系统的有效性,将实验结果与随机推荐和基于内容的推荐进行比较。其中,随机推荐是指从数据集中随机选择微课视频进行推荐,而基于内容的推荐是指根据用户观看的微课视频的标签,推荐与这些标签相关的微课视频。在所有实验中,将数据集分成训练集和测试集,其中训练集占80%,测试集占20%。
为了评估算法的性能,将使用召回率(recall)作为评估指标。召回率(recall)是信息检索和统计学中常用的一个指标,用于衡量被检索出来的相关文档数与总相关文档数之间的比例。召回率在机器学习的领域中常用于指预测为正的样本中,真正样本所占的比例,在本次实验中假设对于用户u,推荐系统返回的关于知识点K的推荐列表为R (K),而该用户在真实情况下学习过K,记其实际学习的知识点集合为T (K),那么该推荐系统在知识点K上的召回率Recall (K)可以用以下公式表示:
其中,| R (K) ∩ T (K) |表示推荐系统推荐的知识点列表R (K) 与用户实际学习的知识点集合T (K)的交集大小,而| T (K) |则表示用户实际学习的知识点集合T (K)的大小,即该知识点的总体覆盖度。如果该召回率越大,说明该推荐系统对该用户的知识点需求的覆盖率越高,推荐效果越好。
3.3 实验结果
在实验中使用了不同数量的已观看微课视频的用户进行测试,每个用户观看的微课视频数量不同。表1是在不同用户数量和观看微课视频数量下,三种推荐算法的召回率进行了比较。
从表1可以看出,基于图结构的微课推荐算法相对于随机推荐和基于内容的推荐算法,具有更高的召回率。并且广度优先算法时间复杂度在最坏情况下,即需要遍历整个图才能找到目标节点的情况下,时间复杂度为O(| V | + | E |),在实际应用中,通常情况下图的边数比节点数多得多,因此BFS算法的时间复杂度可以近似地看作O(| E |),因此用户在观看的过程中产生的用户行为可以非常快速地转换成后续推荐的微课视频,通过实验表明,使用本文提出的功能的精準度、反应速度远高于常规的推荐方式。
4 结 论
本文提出的基于图结构的微课推荐系统利用知识点图和广度优先算法实现了有效的微课视频推荐。实验结果表明,该系统的推荐召回率优于随机推荐和基于内容的推荐方法,能够更好地满足学生在微课学习过程中的需求。该系统具有实用价值和推广意义。未来的研究方向包括优化算法,提高推荐的准确性和个性化程度,进一步探索微课推荐的可能性。本研究为视频推荐领域提供了新思路和新方法。
参考文献:
[1] 张萌,纪佳琪.基于标签的电影推荐算法研究 [J].微型电脑应用,2023,39(1):28-31.
[2] 赵晋巍,刘晓鹏,罗威.多匹配器自动聚合的知识图谱融合系统构建 [J].中华医学图书情报杂志,2019,28(9):51-57.
[3] 郭理,王嘉岐,张恒旭,等.基于Louvain重叠社区发现算法 [J].石河子大学学报:自然科学版,2020,38(3):384-389.
[4] 姜智.面向教学过程的几个度量模型研究 [J].教育探索,2005(9):59-61.
[5] 赵旭,吕鹤轩.个性化推荐技术在微课系统中的应用 [J].软件工程,2019,22(12):21-23.
[6] 郝国笑.智能仓储多AGV的控制策略研究 [D].青岛:青岛科技大学,2021.
[7] 张利钊.面向移动学习的土家音乐长廊导览系统研究 [D].武汉:华中师范大学,2018.
[8] ZHAO F,SUN J,ZHAO Z. A video recommendation system based on graph theory and semantic analysis [J].Multimedia Tools and Applications,2019,78(4):4363-4383.
[9] 方文. 基于知识图谱的个性化视频推荐算法研究 [D].广州:华南理工大学,2021.
[10] 李青,冯梅,申端明,等.一种基于用户行为的视频推荐算法 [J].信息系统工程,2020(9):142-144.
作者简介:曹梦川(1990—),男,汉族,宁夏银川人,助教,硕士,研究方向:数据分析、人工智能。
收稿日期:2023-03-27
基金项目:2020年宁夏回族自治区科学技术学会第五批自治区青年科技人才托举工程