基于图搜索算法的自适应学习方法及计算机学习系统转让专利

申请号 : CN201910321955.X

文献号 : CN110032620A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔炜殷龙

申请人 : 上海乂学教育科技有限公司

摘要 :

本发明涉及一种基于图搜索算法的自适应学习方法及计算机学习系统,所述方法包括以下步骤:1)建立知识图谱,将知识图谱存储于图数据库中;2)采集并记录用户学习数据,判断是否满足前置知识点搜索的触发条件,若是,则执行步骤3),若否,则执行步骤5);3)利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点,获得各前置薄弱知识点的优先学习顺序;4)基于所述优先学习顺序推送相应学习内容;5)基于当前知识点推送相应学习内容。与现有技术相比,本发明具有搜索快速、提高学习效率等优点。

权利要求 :

1.一种基于图搜索算法的自适应学习方法,其特征在于,包括以下步骤:

1)建立知识图谱,将知识图谱存储于图数据库中;

2)采集并记录用户学习数据,判断是否满足前置知识点搜索的触发条件,若是,则执行步骤3),若否,则执行步骤5);

3)利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点,获得各前置薄弱知识点的优先学习顺序;

4)基于所述优先学习顺序推送相应学习内容;

5)基于当前知识点推送相应学习内容。

2.根据权利要求1所述的基于图搜索算法的自适应学习方法,其特征在于,所述图数据库采用JanusGraph图数据库。

3.根据权利要求1所述的基于图搜索算法的自适应学习方法,其特征在于,所述用户学习数据包括各知识点能力值、知识点学习次数和课程学习进度。

4.根据权利要求1所述的基于图搜索算法的自适应学习方法,其特征在于,所述前置知识点搜索的触发条件包括以下之一:a)某课次知识点均为薄弱知识点;

b)经过3轮同一个课程的学习之后,还存在薄弱知识点;

c)至少完成3个课次的学习阶段;

d)在某一课程内,薄弱知识点含有至少1个前置知识点。

5.根据权利要求1所述的基于图搜索算法的自适应学习方法,其特征在于,所述利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点具体是:使用Gremlin图搜索语言从图数据库中搜索设定层数的前置薄弱知识点。

6.根据权利要求1所述的基于图搜索算法的自适应学习方法,其特征在于,所述获得各前置薄弱知识点的优先学习顺序具体包括:考虑各前置薄弱知识点的薄弱程度、关联紧密程度和关联知识点数量,对各前置薄弱知识点进行权重排序,优先学习权重小的前置薄弱知识点。

7.一种基于图搜索算法的自适应计算机学习系统,其特征在于,包括:存储模块,用于建立知识图谱,并以图数据库存储所述知识图谱;

判断模块,用于采集并记录用户学习数据,判断是否满足前置知识点搜索的触发条件;

搜索模块,在所述判断模块的判断结果为是时响应,用于利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点,获得各前置薄弱知识点的优先学习顺序;

第一推送模块,用于根据所述优先学习顺序推送相应学习内容;

第二推送模块,用于根据当前知识点推送相应学习内容。

8.根据权利要求7所述的基于图搜索算法的自适应计算机学习系统,其特征在于,所述前置知识点搜索的触发条件包括以下之一:a)某课次知识点均为薄弱知识点;

b)经过3轮同一个课程的学习之后,还存在薄弱知识点;

c)至少完成3个课次的学习阶段;

d)在某一课程内,薄弱知识点含有至少1个前置知识点。

9.根据权利要求7所述的基于图搜索算法的自适应计算机学习系统,其特征在于,所述利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点具体是:使用Gremlin图搜索语言从图数据库中搜索设定层数的前置薄弱知识点。

10.根据权利要求7所述的基于图搜索算法的自适应计算机学习系统,其特征在于,所述获得各前置薄弱知识点的优先学习顺序具体包括:考虑各前置薄弱知识点的薄弱程度、关联紧密程度和关联知识点数量,对各前置薄弱知识点进行权重排序,优先学习权重小的前置薄弱知识点。

说明书 :

基于图搜索算法的自适应学习方法及计算机学习系统

技术领域

[0001] 本发明涉及一种用于在线教育的学习装置,尤其是涉及一种基于图搜索算法的自适应学习方法及计算机系统。

背景技术

[0002] 随着互联网的发展,教育方式也在潜移默化的受到新技术的影响。人工智能的快速发展和应用为在线教育领域提供了新的思路,最近几年互联网教育中结合人工智能的产品发展非常迅速。这些产品中大多都有提出知识图谱的概念,在线智能教育产品中的知识图谱是将学生所在学科领域内所有知识点总结归纳细分,并且标记每个知识点的前后置关系,将其用完整的网络图的形式表现。知识图谱是一个复杂的描述知识点之间关系的图,图谱中包含很多属性,包括知识点名称、难度等。有了知识图谱,系统就会更清晰的了解学生目前在学科范围内的知识点所掌握的程度,并且为学生量身打造最合适的学习路径。
[0003] 现有技术中对知识图谱的存储,都是使用关系型数据库来存储节点信息,以及节点与节点之间的关联信息。关系型数据库本身是具有schema的设计,这就意味着需要提前设计表结构,用不同的表单独存储节点信息,再用其他表来存储节点关系信息。如果关系复杂存储的记录数会非常大。如果表结构中预先设计的字段量不足以满足快速发展的业务需求,需要新增字段存储更多的节点相关的属性信息。关系型数据库使用SQL来从表中查询或者插入数据,用SQL语句编写遍历图相关的操作。
[0004] 现有技术存在的缺陷包括:
[0005] 1)需要预先设计表结构,也就是schema的设计,后期改动成本较高;
[0006] 2)用SQL语句实现图搜索相关的算法非常复杂,难度高,且不容易调试;
[0007] 3)对于数据存储的冗余信息较多,浪费存储空间;
[0008] 4)扩展性较弱,当数据量超过亿级规模将不适用;
[0009] 5)无法支持外部索引。
[0010] 因此需要对现有技术进行改进。

发明内容

[0011] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于图搜索算法的自适应学习方法及计算机学习系统。
[0012] 本发明的目的可以通过以下技术方案来实现:
[0013] 一种基于图搜索算法的自适应学习方法,包括以下步骤:
[0014] 1)建立知识图谱,将知识图谱存储于图数据库中;
[0015] 2)采集并记录用户学习数据,判断是否满足前置知识点搜索的触发条件,若是,则执行步骤3),若否,则执行步骤5);
[0016] 3)利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点,获得各前置薄弱知识点的优先学习顺序;
[0017] 4)基于所述优先学习顺序推送相应学习内容;
[0018] 5)基于当前知识点推送相应学习内容。
[0019] 进一步地,所述图数据库采用JanusGraph图数据库。
[0020] 进一步地,所述用户学习数据包括各知识点能力值、知识点学习次数和课程学习进度。
[0021] 进一步地,所述前置知识点搜索的触发条件包括以下之一:
[0022] a)某课次知识点均为薄弱知识点;
[0023] b)经过3轮同一个课程的学习之后,还存在薄弱知识点;
[0024] c)至少完成3个课次的学习阶段;
[0025] d)在某一课程内,薄弱知识点含有至少1个前置知识点。
[0026] 进一步地,所述利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点具体是:使用Gremlin图搜索语言从图数据库中搜索设定层数的前置薄弱知识点。
[0027] 进一步地,所述获得各前置薄弱知识点的优先学习顺序具体包括:
[0028] 考虑各前置薄弱知识点的薄弱程度、关联紧密程度和关联知识点数量,对各前置薄弱知识点进行权重排序,优先学习权重小的前置薄弱知识点。
[0029] 本发明还提供一种基于图搜索算法的自适应计算机学习系统,包括:
[0030] 存储模块,用于建立知识图谱,并以图数据库存储所述知识图谱;
[0031] 判断模块,用于采集并记录用户学习数据,判断是否满足前置知识点搜索的触发条件;
[0032] 搜索模块,在所述判断模块的判断结果为是时响应,用于利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点,获得各前置薄弱知识点的优先学习顺序;
[0033] 第一推送模块,用于根据所述优先学习顺序推送相应学习内容;
[0034] 第二推送模块,用于根据当前知识点推送相应学习内容。
[0035] 进一步地,所述前置知识点搜索的触发条件包括以下之一:
[0036] a)某课次知识点均为薄弱知识点;
[0037] b)经过3轮同一个课程的学习之后,还存在薄弱知识点;
[0038] c)至少完成3个课次的学习阶段;
[0039] d)在某一课程内,薄弱知识点含有至少1个前置知识点。
[0040] 进一步地,所述利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点具体是:使用Gremlin图搜索语言从图数据库中搜索设定层数的前置薄弱知识点。
[0041] 进一步地,所述获得各前置薄弱知识点的优先学习顺序具体包括:
[0042] 考虑各前置薄弱知识点的薄弱程度、关联紧密程度和关联知识点数量,对各前置薄弱知识点进行权重排序,优先学习权重小的前置薄弱知识点。
[0043] 与现有技术相比,本发明具有以如下有益效果:
[0044] 1、本发明采用图数据库存储知识图谱,从图数据库中搜索节点,操作简洁,在搜索多层前置节点时不需要子查询,而且使用图数据库存储节点关系,进行图遍历操作非常节约CPU资源,提升性能。
[0045] 2、本发明采用JanusGraph图数据库,该图数据库使用Hadoop大数据分布式运算集群作为底层存储核心,因此JanusGraph可以灵活扩展存储节点,支持弹性和线性扩展,支持高可用,支持高容错机制,利用Hadoop计算框架可以对图数据进行实时分析作业。另外JanusGraph还支持外部索引系统,比如ElasticSearch,这样可以加快查询和搜索效率。
[0046] 3、本发明通过图搜索算法在图数据库搜索当前知识点的前置薄弱知识点,并对各知识点优先学习顺序进行排序,优先学习最为薄弱的知识点,有效提高了用户的学习效率。

附图说明

[0047] 图1为本发明的结流程示意图;
[0048] 图2为本发明图搜索过程示意图;
[0049] 图3为本发明知识图谱的一个实例图。

具体实施方式

[0050] 下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0051] 实施例1
[0052] 如图1所示,本实施例提供一种基于图搜索算法的自适应学习方法,包括以下步骤:
[0053] 1)建立知识图谱,将知识图谱存储于图数据库中;
[0054] 2)采集并记录用户学习数据,判断是否满足前置知识点搜索的触发条件,若是,则执行步骤3),若否,则执行步骤5),用户学习数据包括各知识点能力值、知识点学习次数和课程学习进度;
[0055] 3)利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点,获得各前置薄弱知识点的优先学习顺序;
[0056] 4)基于所述优先学习顺序推送相应学习内容,进入知识点复习阶段;
[0057] 5)基于当前知识点推送相应学习内容,进入学习阶段。
[0058] 图搜索算法在知识图谱上的应用有着非常广泛的场景,比如可以使用深度优先搜索相关的算法在知识图谱上按照一定的条件搜索知识点,他能够根据学生在某个学科领域中的答题情况中,找到该学生的薄弱知识点,并且找到导致该知识点薄弱的更前置n层的薄弱知识点,从而为学生推荐那个更前置薄弱知识点的相关资源(包括讲解视频,讲义,题目)让学生学习或者作答,达到让学生掌握那些薄弱知识点的目的。
[0059] 本实施例中,图数据库采用JanusGraph图数据库。JanusGraph属于NoSQL类型的数据库,与普通关系型数据库不同的是他不需要预先设计表结构,他能将图数据(节点以及节点和节点之间的关系)存储起来,并且能够完整支持Gremlin的图搜索语言。
[0060] 图数据库的使用可以大大降低搜索过程的复杂度,提高搜索效率。
[0061] 如果使用关系型数据库存储图数据结构,应该会有两张表,分别是:实体表,关系表。实体表存储节点,以及节点熟悉等信息,关系表存储节点与节点之间的关系信息,以及关系上面的属性信息。基于上述场景,假设现在有个需求是从表中搜索某个特定节点的2层前置,分别用SQL和Gremlin的方式来实现上述需求。目前有两张表,表示节点和关系,两张表中的字段描述如下所示:
[0062] 表1节点表(Nodes)
[0063]字段 描述
name 节点名称
description 节点描述
property 节点属性
[0064] 表2关系表(Relationships)
[0065]字段 描述
relation 关系名称
pre 前置节点
post 后置节点
[0066] 关系型数据库查询语言SQL实现方式:
[0067] select pre from Relationships where  post in(select pre from Relationships where post=‘c’)
[0068] 图数据库查询语言Gremlin实现方式:
[0069] g.V().has(“name”,”c”).in(“relation”).in(“relation”)[0070] 可以看到SQL方式实现的取2层前置要比Gremlin实现的方式复杂很多,其中包括了一层子查询操作,如果是获取n层前置的节点,子查询的嵌套层数是n-1层。这不仅提高了人员编写SQL的复杂程度,而且增加了数据库的负担,数据库需要在语句解析中消耗大量的CPU和内存。如果这两张表的数据量变大,这个过程将非常耗时。
[0071] 而Gremlin的方式相对SQL的方式就简洁很多,编写人员能非常容易理解,也容易编写,如果是获取n层前置节点,只要在in()操作后面追加in()操作即可,不需要子查询。而且使用图数据库存储节点关系,进行图遍历操作非常节约CPU资源,提升性能。
[0072] 所述前置知识点搜索的触发条件包括以下之一:
[0073] a)某课次知识点均为薄弱知识点;
[0074] b)经过3轮同一个课程的学习之后,还存在薄弱知识点(3轮指同一个课程在不同时间点的3次学习过程);
[0075] c)至少完成3个课次的学习阶段(3个课次指某个学科中覆盖3个不同知识内容的3个课程的学习过程);
[0076] d)在某一课程内,薄弱知识点含有至少1个前置知识点。
[0077] 如图2所示,描述的是图搜索过程和前置薄弱知识点的优先学习顺序确认的应用场景流程图。所述利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点具体是:使用Gremlin图搜索语言从图数据库中搜索设定层数的前置薄弱知识点。所述获得各前置薄弱知识点的优先学习顺序具体包括:考虑各前置薄弱知识点的薄弱程度、关联紧密程度和关联知识点数量,对各前置薄弱知识点进行权重排序,权重越小,表示知识点越薄弱,优先学习权重小的前置薄弱知识点,进入后续复习流程。
[0078] 本实施例中,知识点权重计算时采用的影响因数包括:
[0079] (1)效果:薄弱程度(Weakness,W)--当前能力值(小于0.7)的薄弱程度;
[0080] (2)准确:关联紧密程度(Distance,D)--与当前节点的平均距离[1,+无穷);
[0081] (3)效率:关联知识点数量(Connection,C)--与当前节点关联的节点数量[1,+无穷)。
[0082] 将上述影响因素的值进行加权求和获得知识点权重。
[0083] A、图搜索场景模拟
[0084] 如图3所示的一个知识图谱,模拟一张具有10个知识点的知识图谱,前后置关系如图中所示,知识点编号从KP1-KP10。蓝色数字所示的是该学生在那个知识点上获得的能力值,设置0.72为阈值判定为知识点掌握状态。
[0085] 假设目前学生正在学习KP9知识点的相关课程,但是目前学生在KP9上的能力值为0.7,阈值为0.72,判定该学生在本知识点上为薄弱(未掌握)状态。此时需要查找该节点的n层前置节点,比如,查找KP9的能力值小于0.6的前2层以内的前置知识点。
[0086] Gremlin语句如下:
[0087] g.V().has(“id”,”KP9”).as(“weak_knowledge_point”)
[0088] .repeat(in(“back”)).times(2)
[0089] 这条语句返回的结果是KP5和KP7,KP4不满足条件所以被过滤掉了。
[0090] 可以看到Gremlin语句在图搜索相关的业务场景中使用起来非常方便。
[0091] B、计算薄弱知识点权重数据模拟
[0092] 数据举例如表3所示。
[0093] 表3
[0094]
[0095] KP1weighted ranking=2x 0.5+3x 0.3+5x 0.2=2.9
[0096] KP2weighted ranking=7x 0.5+2x 0.3+4x 0.2=4.9
[0097] 在这两个知识点中,应该优先学习weighted_ranking小的知识点,即KP1。当weighted_ranking出现等值时,按照weakness_ranking顺序学习,若也相等,则按照distance_ranking和connection_ranking依次进行判断;当存在N个知识点的三种ranking完全一致时,则优先推送图谱中更靠前的薄弱知识点。
[0098] 实施例2
[0099] 本实施例提供一种与实施例1相对应的基于图搜索算法的自适应计算机学习系统,包括:
[0100] 存储模块,用于建立知识图谱,并以图数据库存储所述知识图谱;
[0101] 判断模块,用于采集并记录用户学习数据,判断是否满足前置知识点搜索的触发条件;
[0102] 搜索模块,在所述判断模块的判断结果为是时响应,用于利用图搜索算法在所述图数据库搜索当前知识点的前置薄弱知识点,获得各前置薄弱知识点的优先学习顺序;
[0103] 第一推送模块,用于根据所述优先学习顺序推送相应学习内容;
[0104] 第二推送模块,用于根据当前知识点推送相应学习内容。
[0105] 以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。